From d8b5695891e4a03f097b159c8e273986e3dc0378 Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Wed, 5 Jun 2024 14:27:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E3=80=81=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lists/store_branch_product/StoreBranchProductLists.php | 2 +- app/admin/lists/store_order/StoreOrderLists.php | 4 +++- app/api/logic/order/OrderLogic.php | 5 ++++- app/common/model/store_order/StoreOrder.php | 6 ++++++ .../model/store_order_cart_info/StoreOrderCartInfo.php | 4 +++- .../controller/store_product/StoreProductController.php | 1 + 6 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/admin/lists/store_branch_product/StoreBranchProductLists.php b/app/admin/lists/store_branch_product/StoreBranchProductLists.php index 7e36de816..d9b1cb6ba 100644 --- a/app/admin/lists/store_branch_product/StoreBranchProductLists.php +++ b/app/admin/lists/store_branch_product/StoreBranchProductLists.php @@ -47,7 +47,7 @@ class StoreBranchProductLists extends BaseAdminDataLists implements ListsSearchI { $status = $this->params['status'] ?? ''; return StoreBranchProduct::where($this->searchWhere) - ->field(['id', 'image', 'store_name', 'cate_id', 'price', 'sales', 'stock', 'unit', 'cost', 'status']) + ->field(['id', 'product_id', 'image', 'store_name', 'cate_id', 'price', 'sales', 'stock', 'unit', 'cost', 'status']) ->when(!empty($this->adminInfo['store_id']), function ($query) { $query->where('store_id', $this->adminInfo['store_id']); }) diff --git a/app/admin/lists/store_order/StoreOrderLists.php b/app/admin/lists/store_order/StoreOrderLists.php index 5c869c85f..737a07a0a 100644 --- a/app/admin/lists/store_order/StoreOrderLists.php +++ b/app/admin/lists/store_order/StoreOrderLists.php @@ -44,7 +44,9 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface */ public function lists(): array { - return StoreOrder::with('user')->where($this->searchWhere) + return StoreOrder::with(['user', 'product' => function ($query) { + $query->field(['id', 'oid', 'product_id', 'cart_info']); + }])->where($this->searchWhere) ->when(!empty($this->request->adminInfo['store_id']), function ($query) { $query->where('store_id', '=', $this->request->adminInfo['store_id']); }) diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php index 926936caf..7585a7d7b 100644 --- a/app/api/logic/order/OrderLogic.php +++ b/app/api/logic/order/OrderLogic.php @@ -62,7 +62,10 @@ class OrderLogic extends BaseLogic $cart_select[$k]['old_cart_id'] = implode(',', $cartId); $cart_select[$k]['cart_num'] = $v['cart_num']; $cart_select[$k]['verify_code'] = $params['verify_code'] ?? ''; - $cart_select[$k]['cart_info'] = json_encode($cart_select[$k]); + $cartInfo = $cart_select[$k]; + $cartInfo['name'] = $find['store_name']; + $cartInfo['image'] = $find['image']; + $cart_select[$k]['cart_info'] = json_encode($cartInfo); //理论上每笔都是拆分了 $cart_select[$k]['name'] = $find['store_name']; $cart_select[$k]['imgs'] = $find['image']; diff --git a/app/common/model/store_order/StoreOrder.php b/app/common/model/store_order/StoreOrder.php index 8319620b8..3f6b77783 100644 --- a/app/common/model/store_order/StoreOrder.php +++ b/app/common/model/store_order/StoreOrder.php @@ -5,6 +5,7 @@ namespace app\common\model\store_order; use app\common\enum\OrderEnum; use app\common\enum\PayEnum; use app\common\model\BaseModel; +use app\common\model\store_order_cart_info\StoreOrderCartInfo; use app\common\model\system_store\SystemStore; use app\common\model\user\User; use think\model\concern\SoftDelete; @@ -44,4 +45,9 @@ class StoreOrder extends BaseModel return $this->hasOne(User::class, 'id', 'uid')->bind(['nickname', 'avatar']); } + public function product() + { + return $this->hasMany(StoreOrderCartInfo::class, 'oid', 'id'); + } + } diff --git a/app/common/model/store_order_cart_info/StoreOrderCartInfo.php b/app/common/model/store_order_cart_info/StoreOrderCartInfo.php index a563736ae..2939ba149 100644 --- a/app/common/model/store_order_cart_info/StoreOrderCartInfo.php +++ b/app/common/model/store_order_cart_info/StoreOrderCartInfo.php @@ -11,9 +11,11 @@ class StoreOrderCartInfo extends BaseModel use SoftDelete; protected $name = 'store_order_cart_info'; protected $deleteTime = 'delete_time'; + protected $json = ['cart_info']; + protected $jsonAssoc = true; public function goodsName() { return $this->hasOne(StoreBranchProduct::class,'id','product_id')->bind(['store_name','image','unit','price']); } -} \ No newline at end of file +} diff --git a/app/store/controller/store_product/StoreProductController.php b/app/store/controller/store_product/StoreProductController.php index ccf7ea746..c1aa3e16e 100644 --- a/app/store/controller/store_product/StoreProductController.php +++ b/app/store/controller/store_product/StoreProductController.php @@ -33,6 +33,7 @@ class StoreProductController extends BaseAdminController ApiDoc\Query(ref: [Definitions::class, "page"]), ApiDoc\ResponseSuccess("data", type: "array", children: [ ['name' => 'id', 'desc' => 'ID', 'type' => 'int'], + ['name' => 'product_id', 'desc' => '商品ID', 'type' => 'int'], ['name' => 'image', 'desc' => '图片', 'type' => 'string'], ['name' => 'store_name', 'desc' => '商品名称', 'type' => 'string'], ['name' => 'price', 'desc' => '零售价', 'type' => 'float'],