From ed9ffc8d8c279a1c5d7891a9434923bda8c713bc Mon Sep 17 00:00:00 2001 From: lewis <604446095@qq.com> Date: Wed, 15 Jan 2025 15:05:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98=E8=B0=83?= =?UTF-8?q?=E6=8B=A8=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8=EF=BC=8C=E9=A2=84?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=B7=BB=E5=8A=A0=E5=90=8C=E6=AD=A5=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BeforehandOrderCartInfoController.php | 9 +++++++- .../lists/store_order/StoreOrderLists.php | 16 ++++++++++++-- .../beforehand_order/BeforehandOrderLogic.php | 1 + .../BeforehandOrderCartInfoLogic.php | 22 +++++++++++++++++++ .../WarehouseProductStoregeLogic.php | 7 ++++-- app/common/logic/ChangeLogLogic.php | 3 ++- .../beforehand_order/BeforehandOrder.php | 16 +++++++++++++- 7 files changed, 67 insertions(+), 7 deletions(-) diff --git a/app/admin/controller/beforehand_order_cart_info/BeforehandOrderCartInfoController.php b/app/admin/controller/beforehand_order_cart_info/BeforehandOrderCartInfoController.php index 2f1793710..51b8ccabd 100644 --- a/app/admin/controller/beforehand_order_cart_info/BeforehandOrderCartInfoController.php +++ b/app/admin/controller/beforehand_order_cart_info/BeforehandOrderCartInfoController.php @@ -166,7 +166,14 @@ class BeforehandOrderCartInfoController extends BaseAdminController { $params = $this->request->get(); BeforehandOrderCartInfoLogic::fixAcceptNum($params); - return $this->data([]); + return $this->success('操作成功', [], 1, 1); + } + + public function syncPrice() + { + $params = $this->request->get(); + BeforehandOrderCartInfoLogic::syncPrice($params); + return $this->success('操作成功', [], 1, 1); } } \ No newline at end of file diff --git a/app/admin/lists/store_order/StoreOrderLists.php b/app/admin/lists/store_order/StoreOrderLists.php index 652fafa17..83aedbb0e 100644 --- a/app/admin/lists/store_order/StoreOrderLists.php +++ b/app/admin/lists/store_order/StoreOrderLists.php @@ -6,6 +6,7 @@ namespace app\admin\lists\store_order; use app\admin\lists\BaseAdminDataLists; use app\common\enum\OrderEnum; use app\common\enum\PayEnum; +use app\common\model\beforehand_order\BeforehandOrder; use app\common\model\store_order\StoreOrder; use app\common\lists\ListsSearchInterface; use app\common\model\store_branch_product\StoreBranchProduct; @@ -31,7 +32,7 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface public function setSearch(): array { return [ - '=' => ['store_id', 'pay_type', 'staff_id', 'shipping_type', 'delivery_id', 'paid', 'status', 'is_writeoff', 'is_merge', 'uid', 'source'], + '=' => ['store_id', 'pay_type', 'staff_id', 'shipping_type', 'delivery_id', 'paid', 'status', 'is_writeoff', 'is_merge', 'uid'], 'between_time' => 'create_time', '%like%' => ['order_id'], ]; @@ -52,6 +53,14 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface if ($this->request->get('is_delivery') >= 1) { $this->searchWhere[] = ['delivery_uid', '>', 0]; } + if (!empty($this->params['source'])) { + if ($this->params['source'] < 10) { + $this->searchWhere[] = ['source', $this->params['source']]; + } else { + $orderType = substr($this->params['source'], 1); + $this->searchWhere[] = ['order_type', $orderType]; + } + } return StoreOrder::with(['staff', 'store'])->where($this->searchWhere) ->when(!empty($this->request->adminInfo['store_id']), function ($query) { $query->where('store_id', $this->request->adminInfo['store_id']); @@ -64,7 +73,7 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface $query->whereIn('status', $status); } }) - ->field(['id', 'store_id', 'staff_id', 'order_id', 'paid', 'source', 'pay_price', 'total_price', 'pay_time', 'pay_type', 'status', 'uid', 'refund_status', 'create_time', 'delivery_name', 'delivery_id', 'refund_price']) + ->field(['id', 'store_id', 'staff_id', 'order_id', 'paid', 'source', 'pay_price', 'total_price', 'pay_time', 'pay_type', 'status', 'uid', 'refund_status', 'create_time', 'delivery_name', 'delivery_id', 'refund_price', 'order_type']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select()->each(function ($item) { @@ -91,6 +100,9 @@ class StoreOrderLists extends BaseAdminDataLists implements ListsSearchInterface } else { $item['source_name'] = '普通订单'; } + if (!empty($item['order_type'])) { + $item['source_name'] = BeforehandOrder::getOrderTypeName($item['order_type']); + } $product = StoreOrderCartInfo::where('oid', $item['id'])->field(['id', 'oid', 'product_id', 'cart_info']) ->limit(3)->select(); foreach ($product as &$items) { diff --git a/app/admin/logic/beforehand_order/BeforehandOrderLogic.php b/app/admin/logic/beforehand_order/BeforehandOrderLogic.php index 5b620003f..035ca11a7 100644 --- a/app/admin/logic/beforehand_order/BeforehandOrderLogic.php +++ b/app/admin/logic/beforehand_order/BeforehandOrderLogic.php @@ -260,6 +260,7 @@ class BeforehandOrderLogic extends BaseLogic 'shipping_type' => 2, //配送方式 1=快递 ,2=门店自提 'deduction_price' => 0, //抵扣金额 'source' => 2, //后台下单 + 'order_type' => $order['order_type'], 'is_storage' => 0, 'verify_code' => createCode($code), ]; diff --git a/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php b/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php index c79fdbb57..22b456f3b 100644 --- a/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php +++ b/app/admin/logic/beforehand_order_cart_info/BeforehandOrderCartInfoLogic.php @@ -317,4 +317,26 @@ class BeforehandOrderCartInfoLogic extends BaseLogic } } + public static function syncPrice($params) + { + $cartInfo = BeforehandOrderCartInfo::where('bhoid', $params['bhoid'])->where('price', 0)->select()->toArray(); + $productIds = array_column($cartInfo, 'product_id'); + $products = StoreProduct::whereIn('id', $productIds)->select()->toArray(); + $products = reset_index($products, 'id'); + $update = []; + foreach ($cartInfo as $v) { + $product = $products[$v['product_id']]; + if (empty($product) || empty($product['price'])) { + continue; + } + $update[] = [ + 'id' => $v['id'], + 'price' => $product['price'], + 'total_price' => $product['price'] * $v['cart_num'], + 'pay_price' => $product['price'] * $v['cart_num'], + ]; + } + (new BeforehandOrderCartInfo())->saveAll($update); + } + } diff --git a/app/admin/logic/warehouse_product_storege/WarehouseProductStoregeLogic.php b/app/admin/logic/warehouse_product_storege/WarehouseProductStoregeLogic.php index 52b9d1feb..e084b7466 100644 --- a/app/admin/logic/warehouse_product_storege/WarehouseProductStoregeLogic.php +++ b/app/admin/logic/warehouse_product_storege/WarehouseProductStoregeLogic.php @@ -6,7 +6,7 @@ namespace app\admin\logic\warehouse_product_storege; use app\common\model\warehouse_product_storege\WarehouseProductStorege; use app\common\logic\BaseLogic; use think\facade\Db; -use Webman\Exception\BusinessException; +use support\exception\BusinessException; /** * 仓库商品存储逻辑 @@ -39,12 +39,15 @@ class WarehouseProductStoregeLogic extends BaseLogic */ public static function edit(array $params,$admin_id=0): bool { + if (empty($params['remark'])) { + throw new BusinessException('请输入备注'); + } Db::startTrans(); try { $find=WarehouseProductStorege::where('id',$params['id'])->find(); if($find){ $find->save(['nums'=>$params['nums']]); - SqlChannelLog('WarehouseProductStorege', $params['id'], $params['nums'], 0,Request()->url(),$admin_id); + SqlChannelLog('WarehouseProductStorege', $params['id'], $params['nums'], 0,Request()->url(),$admin_id, $params['remark']); } Db::commit(); return true; diff --git a/app/common/logic/ChangeLogLogic.php b/app/common/logic/ChangeLogLogic.php index 497b94e82..b7fa2a033 100644 --- a/app/common/logic/ChangeLogLogic.php +++ b/app/common/logic/ChangeLogLogic.php @@ -7,7 +7,7 @@ use app\common\model\change_log\ChangeLog; class ChangeLogLogic extends BaseLogic { - public function insert($model='',$link_id=0,$nums=0,$pm=0,$url='',$admin_id=0):void + public function insert($model='',$link_id=0,$nums=0,$pm=0,$url='',$admin_id=0, $remark = ''):void { $info=\Chance\Log\facades\OperationLog::getLog(); ChangeLog::create([ @@ -16,6 +16,7 @@ class ChangeLogLogic extends BaseLogic 'nums' => $nums, 'pm' => $pm, 'mark' => $info, + 'remark' => $remark, 'url' => $url, 'admin_id' => $admin_id, 'create_time' => time() diff --git a/app/common/model/beforehand_order/BeforehandOrder.php b/app/common/model/beforehand_order/BeforehandOrder.php index ee34f8863..1ec1322f3 100644 --- a/app/common/model/beforehand_order/BeforehandOrder.php +++ b/app/common/model/beforehand_order/BeforehandOrder.php @@ -20,5 +20,19 @@ class BeforehandOrder extends BaseModel protected $json = ['other_data']; // 不生成该表的日志 public $doNotRecordLog = true; - + + public static function getOrderTypeName($type) + { + $typeMap = [ + 1 => '铺货订单', + 2 => '摊贩订单', + 3 => '一条龙订单', + 4 => '线上订单', + 5 => '仓库补货', + 6 => '采购订单', + 7 => '其他订单', + ]; + return $typeMap[$type] ?? ''; + } + } \ No newline at end of file