// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\store\controller; use app\store\model\Order as OrderModel; use think\response\Json; /** * 订单管理 * Class Order * @package app\store\controller */ class Order extends Controller { /** * 订单列表 * @param string $dataType * @return Json */ public function list(string $dataType): Json { // 订单列表 $model = new OrderModel; $result = $model->getList($this->request->param()); $data = $result->items(); if (!empty($data)) { foreach ($data as $key => $value) { $data[$key]['address_match_text'] = '--'; $copy_text = "订单号:{$value['order_no']}\n"; foreach ($value['goods'] as $good) { $copy_text .= "商品名称:{$good['goods_name']}\n"; if (!empty($good['goods_no'])) { $copy_text .= "商品编码:{$good['goods_no']}\n"; } $copy_text .= "单价:{$good['goods_price']}\n"; $copy_text .= "数量:{$good['total_num']}\n"; $copy_text .= "总价:{$good['total_price']}\n"; $copy_text .= "\n"; } if (!empty($value['address'])) { $copy_text .= "\n"; $copy_text .= "收件人:{$value['address']['name']}\n"; $copy_text .= "电话:{$value['address']['phone']}\n"; $address = ''; if (!empty($value['address']['region'])) { $address = $value['address']['region']['province'] . $value['address']['region']['city'] . $value['address']['region']['region']; } $copy_text .= "地址:$address{$value['address']['detail']}\n"; } $data[$key]['copy_text'] = $copy_text; if ($value['delivery_type'] == 10) { if ($value['address_match'] == 20) { $data[$key]['address_match_text'] = '匹配'; } else { $data[$key]['address_match_text'] = '不匹配'; } } } } $list['current_page'] = $result->currentPage(); $list['last_page'] = $result->lastPage(); $list['total'] = $result->total(); $list['data'] = $data; return $this->renderSuccess(compact('dataType', 'list')); } /** * 订单详情 * @param int $orderId * @return Json */ public function detail(int $orderId): Json { // 订单详情 $model = new OrderModel; if (!$detail = $model->getDetail($orderId)) { return $this->renderError('未找到该订单记录'); } return $this->renderSuccess(compact('detail')); } }