吴昊天 29dd67bc0b fix(网盘订单): 列表合并扩展字段、打通搜索并按业务调整展示列
- 新增 OrderCenterListExtend 监听器:从 eb_pt_virtual_order 合并
  product_id/status/complete_time 到列表行,修复商品ID与状态空白
- list() 搜索契约映射:order_no 走中台 keyword 前缀搜索、status 对应
  status_code,修复搜索不生效
- 列表去掉发货时间/退款状态/商品ID(网盘自动发货、无退款流程),
  新增商品名称/规格/金额
2026-10-08 16:02:18 +08:00

72 lines
2.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
declare(strict_types=1);
namespace modules\product\virtual\controller\admin;
use app\adminapi\controller\AuthController;
use app\services\order\OrderCenterServices;
use modules\product\virtual\service\OrderServices;
/**
* 网盘商品后台订单控制器
* 通过订单中台 eb_order_center 查询网盘商品订单
*/
class OrderController extends AuthController
{
/**
* 订单列表
* 从中台表查询 product_type=virtual 的订单
* 页面搜索契约:order_no 前缀搜索(走中台 keyword)、status 对应中台 status_code
* @param OrderCenterServices $centerServices
* @return \think\Response
*/
public function list(OrderCenterServices $centerServices)
{
$where = ['product_type' => 'virtual'];
$orderNo = trim((string) $this->request->param('order_no', ''));
if ($orderNo !== '') {
$where['keyword'] = $orderNo;
}
$status = (string) $this->request->param('status', '');
if ($status !== '') {
$where['status_code'] = $status;
}
$page = (int) $this->request->param('page', 1);
$limit = (int) $this->request->param('limit', 20);
$list = $centerServices->getAdminList($where, $page, $limit);
return app('json')->success($list);
}
/**
* 订单详情
* 从中台获取完整订单数据,合并网盘商品扩展信息
* @param string $orderNo
* @param OrderCenterServices $centerServices
* @param OrderServices $service
* @return \think\Response
*/
public function read(string $orderNo, OrderCenterServices $centerServices, OrderServices $service)
{
try {
$detail = $centerServices->getDetailByOrderNo($orderNo);
// 合并网盘商品扩展信息
$extendInfo = $service->getExtendInfo($orderNo);
if (!empty($extendInfo)) {
$detail['virtual_extend'] = $extendInfo;
}
return app('json')->success($detail);
} catch (\RuntimeException $e) {
return app('json')->fail($e->getMessage());
}
}
}