From 97e0704cecc070a50e59231a8d4700d041372ab9 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Mon, 21 Oct 2024 15:43:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(beforehand=5Forder):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E9=80=BB=E8=BE=91=E5=92=8C=E5=95=86=E5=93=81?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在订单列表中添加更多商品属性字段 - 完善订单逻辑,增加商品属性保存 - 优化商品详情接口,添加单位名称 - 移除商品分类冗余代码 --- .../BeforehandOrderCartInfoLists.php | 12 ++++++--- .../beforehand_order/BeforehandOrderLogic.php | 25 +++++++++++++++++++ .../logic/store_product/StoreProductLogic.php | 15 +++-------- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/app/admin/lists/beforehand_order_cart_info/BeforehandOrderCartInfoLists.php b/app/admin/lists/beforehand_order_cart_info/BeforehandOrderCartInfoLists.php index 7e8ed2422..9194087e5 100644 --- a/app/admin/lists/beforehand_order_cart_info/BeforehandOrderCartInfoLists.php +++ b/app/admin/lists/beforehand_order_cart_info/BeforehandOrderCartInfoLists.php @@ -71,7 +71,7 @@ class BeforehandOrderCartInfoLists extends BaseAdminDataLists implements ListsSe } $list = BeforehandOrderCartInfo::where($this->searchWhere) - ->field(['id', 'bhoid', 'uid', 'is_buyer', 'buyer_uid', 'product_id', 'attr_value_id', 'purchase', 'price', 'total_price', 'cart_num', 'mark']) + ->field(['id', 'bhoid','package','store_info','marques','gross_weight','net_weight','accept_num','after_sales','loss', 'uid', 'is_buyer', 'buyer_uid', 'product_id', 'attr_value_id', 'purchase', 'price', 'total_price', 'cart_num', 'mark']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select()->each(function ($item) use($system_store,$order_mark) { @@ -140,12 +140,18 @@ class BeforehandOrderCartInfoLists extends BaseAdminDataLists implements ListsSe 'bhoid' => '订单id', 'store_name' => '商品名称', 'system_store' => '门店', - 'warehouse_stock' => '仓库数量', - 'cart_num' => '需求数量', + 'marques' => '型号', + 'package' => '包装', 'top_cate_name' => '分类', 'unit_name' => '单位', + 'gross_weight' => '毛重', + 'net_weight' => '净重', + 'warehouse_stock' => '仓库数量', + 'cart_num' => '需求数量', 'price' => '单价', 'total_price' => '总价', + 'after_sales' => '售后', + 'loss' => '损耗', 'mark' => '备注', 'order_mark' => '订单备注', diff --git a/app/admin/logic/beforehand_order/BeforehandOrderLogic.php b/app/admin/logic/beforehand_order/BeforehandOrderLogic.php index a80e7d829..7856e3ce0 100644 --- a/app/admin/logic/beforehand_order/BeforehandOrderLogic.php +++ b/app/admin/logic/beforehand_order/BeforehandOrderLogic.php @@ -55,11 +55,23 @@ class BeforehandOrderLogic extends BaseLogic $total_price = 0; $uid = $params['uid'] ?? 0; foreach ($params['product_arr'] as $k => $v) { + if($v['product_id']<=0){ + unset($params['product_arr'][$k]); + continue; + } $datas[$k]['mark'] = $v['mark'] ?? ''; $datas[$k]['product_id'] = $v['product_id']; $datas[$k]['uid'] = $uid; + $datas[$k]['marques'] = $v['marques']; + $datas[$k]['store_info'] = $v['store_info']; + $datas[$k]['after_sales'] = $v['after_sales']; + $datas[$k]['loss'] = $v['loss']; + $datas[$k]['unit'] = $v['unit']; + $datas[$k]['gross_weight'] = $v['gross_weight']; + $datas[$k]['net_weight'] = $v['net_weight']; $datas[$k]['cart_num'] = $v['nums']; $datas[$k]['price'] = $v['purchase']; + $datas[$k]['package'] = $v['package']; $datas[$k]['total_price'] = $v['total_price']; $datas[$k]['create_time'] = time(); $datas[$k]['update_time'] = time(); @@ -84,9 +96,22 @@ class BeforehandOrderLogic extends BaseLogic 'arrival_time' => strtotime($params['arrival_time']), 'order_type' => $order_type ]); + $product_arr=[]; foreach ($datas as $k => $v) { $datas[$k]['bhoid'] = $order['id']; + + $data['id']=$v['product_id']; + $data['marques']=$v['marques']; + $data['store_info']=$v['store_info']; + $data['after_sales']=$v['after_sales']; + $data['package']=$v['package']; + $data['loss']=$v['loss']; + $data['gross_weight']=$v['gross_weight']; + $data['net_weight']=$v['net_weight']; + $data['mark']=$v['mark']; + $product_arr[]=$data; } + (new StoreProduct())->saveAll($product_arr); (new BeforehandOrderCartInfo())->saveAll($datas); Db::commit(); return true; diff --git a/app/admin/logic/store_product/StoreProductLogic.php b/app/admin/logic/store_product/StoreProductLogic.php index fddb50f2e..c109eaee2 100644 --- a/app/admin/logic/store_product/StoreProductLogic.php +++ b/app/admin/logic/store_product/StoreProductLogic.php @@ -11,6 +11,7 @@ use app\common\model\store_branch_product_exchange\StoreBranchProductExchange; use app\common\model\store_category\StoreCategory; use app\common\model\store_product_attr_value\StoreProductAttrValue; use app\common\model\store_product_cate\StoreProductCate; +use app\common\model\store_product_unit\StoreProductUnit; use app\common\model\system_store\SystemStore; use app\common\model\system_store_storage\SystemStoreStorage; use Illuminate\Support\Facades\Log; @@ -288,18 +289,10 @@ class StoreProductLogic extends BaseLogic public static function detail($params): array { $data = StoreProduct::where('id', $params['id'])->findOrEmpty()->toArray(); - if ($data) { - $data['cate_arr'] = []; - $id_1 = StoreCategory::where('id', $data['cate_id'])->value('pid'); - if ($id_1) { - $id_2 = StoreCategory::where('id', $id_1)->value('pid'); - if ($id_2 == 0) { - $data['cate_arr'] = [$id_1, $data['cate_id']]; - } else { - $data['cate_arr'] = [$id_2, $id_1, $data['cate_id']]; - } - } + if(empty($data)){ + throw new BusinessException('商品不存在'); } + $data['unit_name']=StoreProductUnit::where('id', $data['unit'])->value('name'); return $data; }