From 5bbaaeab44fd27a5d2a01ea6325c01291db1402c Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sat, 10 Aug 2024 17:50:14 +0800 Subject: [PATCH 1/4] 1 --- .../store_order/StoreOrderController.php | 9 +++-- .../logic/store_order/StoreOrderLogic.php | 27 +++++++++---- app/api/logic/order/CartLogic.php | 40 ++++++++++--------- 3 files changed, 45 insertions(+), 31 deletions(-) diff --git a/app/admin/controller/store_order/StoreOrderController.php b/app/admin/controller/store_order/StoreOrderController.php index eb351028b..ba50162d3 100644 --- a/app/admin/controller/store_order/StoreOrderController.php +++ b/app/admin/controller/store_order/StoreOrderController.php @@ -52,12 +52,13 @@ class StoreOrderController extends BaseAdminController */ public function add() { - $params = (new StoreOrderValidate())->post()->goCheck('add'); + $params = $this->request->post(); $result = StoreOrderLogic::add($params); - if (true === $result) { - return $this->success('添加成功', [], 1, 1); + if (StoreOrderLogic::hasError()) { + return $this->fail(StoreOrderLogic::getError()); + }else{ + return $this->success('添加成功,请在30分钟内支付', [], 1, 1); } - return $this->fail(StoreOrderLogic::getError()); } diff --git a/app/admin/logic/store_order/StoreOrderLogic.php b/app/admin/logic/store_order/StoreOrderLogic.php index 96ded6ae2..6bb973eca 100644 --- a/app/admin/logic/store_order/StoreOrderLogic.php +++ b/app/admin/logic/store_order/StoreOrderLogic.php @@ -2,11 +2,14 @@ namespace app\admin\logic\store_order; +use app\api\logic\order\CartLogic; +use app\api\logic\order\OrderLogic; use app\common\enum\PayEnum; use app\common\model\store_order\StoreOrder; use app\common\logic\BaseLogic; use app\common\logic\PayNotifyLogic; use app\common\model\store_order_cart_info\StoreOrderCartInfo; +use app\common\model\user\User; use think\facade\Db; @@ -28,15 +31,23 @@ class StoreOrderLogic extends BaseLogic */ public static function add(array $params): bool { - Db::startTrans(); - try { - StoreOrder::create([]); - - Db::commit(); + $cartId = []; + foreach ($params['product_arr'] as $k => $v) { + $v['uid'] = $params['user_id']; + $v['store_id'] = $params['store_id']; + $v['product_id'] = $v['id']; + $v['cart_num'] = $v['stock']; + $res = CartLogic::add($v); + $cartId[] = $res['id']; + } + $user = User::where('id', $params['user_id'])->find(); + $params['shipping_type'] = 2; + $params['pay_type'] = 7; + $order = OrderLogic::createOrder($cartId, null, $user, $params); + if ($order != false) { return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); + } else { + OrderLogic::getError(); return false; } } diff --git a/app/api/logic/order/CartLogic.php b/app/api/logic/order/CartLogic.php index 9b2d32d14..06af9f768 100644 --- a/app/api/logic/order/CartLogic.php +++ b/app/api/logic/order/CartLogic.php @@ -25,9 +25,9 @@ class CartLogic extends BaseLogic * @author likeadmin * @date 2024/04/24 10:37 */ - public static function add(array $params): bool + public static function add(array $params) { - if($params['store_id']<=0){ + if ($params['store_id'] <= 0) { self::setError('门店ID不能为空'); return false; } @@ -38,35 +38,35 @@ class CartLogic extends BaseLogic 'uid' => $params['uid'], 'store_id' => $params['store_id'], 'product_id' => $params['product_id'], - 'is_pay'=>0 + 'is_pay' => 0 ])->field('id')->find(); - if($check){ - Cart::where('id',$check['id'])->inc('cart_num',$params['cart_num']) + if ($check) { + Cart::where('id', $check['id'])->inc('cart_num', $params['cart_num']) ->update(); $cart['id'] = $check['id']; - }else{ + } else { $cart = Cart::create([ 'uid' => $params['uid'], - 'type' => $params['type']??'', + 'type' => $params['type'] ?? '', 'product_id' => $params['product_id'], - 'store_id' => $params['store_id']??0, - 'staff_id' => $params['staff_id']??0, + 'store_id' => $params['store_id'] ?? 0, + 'staff_id' => $params['staff_id'] ?? 0, 'product_attr_unique' => '', 'cart_num' => $params['cart_num'], - 'is_new' => $params['is_new']??0, + 'is_new' => $params['is_new'] ?? 0, ]); } StoreProductLog::create([ - 'type'=>'cart', + 'type' => 'cart', 'uid' => $params['uid'], 'cart_id' => $cart['id'], - 'store_id' => $params['store_id']??0, + 'store_id' => $params['store_id'] ?? 0, 'visit_num' => 1, 'product_id' => $params['product_id'], 'cart_num' => $params['cart_num'], ]); Db::commit(); - return true; + return $cart; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); @@ -82,14 +82,16 @@ class CartLogic extends BaseLogic * @author likeadmin * @date 2024/04/24 10:37 */ - public static function edit(array $params,$type='inc'): bool + public static function edit(array $params, $type = 'inc'): bool { Db::startTrans(); try { - Cart::where(['uid'=>$params['uid'], - 'store_id'=>$params['store_id'], - 'product_id'=>$params['product_id']]) - ->update(['cart_num'=>$params['cart_num']]); + Cart::where([ + 'uid' => $params['uid'], + 'store_id' => $params['store_id'], + 'product_id' => $params['product_id'] + ]) + ->update(['cart_num' => $params['cart_num']]); Db::commit(); return true; } catch (\Exception $e) { @@ -124,4 +126,4 @@ class CartLogic extends BaseLogic { return Cart::findOrEmpty($params['id'])->toArray(); } -} \ No newline at end of file +} From 7365d1830ac170361d15235e0917c1609300d9d4 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sat, 10 Aug 2024 18:00:18 +0800 Subject: [PATCH 2/4] 1 --- app/admin/logic/store_product/StoreProductLogic.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/admin/logic/store_product/StoreProductLogic.php b/app/admin/logic/store_product/StoreProductLogic.php index cada0b7d8..a559210eb 100644 --- a/app/admin/logic/store_product/StoreProductLogic.php +++ b/app/admin/logic/store_product/StoreProductLogic.php @@ -547,8 +547,8 @@ class StoreProductLogic extends BaseLogic if($warehouse['nums']< $product_arr['stock']){ $storage['status'] = -1; $data['status'] = -1; - $storage['mark'] = '库存不足,分库存为:' .$warehouse['nums']; - $data['mark'] = '库存不足,分库存为:' .$warehouse['nums'].' 总仓库存为:'.$find['stock']; + $storage['mark'] = '库存【'.$warehouse_id.'】不足,分库存为:' .$warehouse['nums']; + $data['mark'] = '库存【'.$warehouse_id.'】不足,分库存为:' .$warehouse['nums'].' 总仓库存为:'.$find['stock']; } $res=WarehouseProductLogic::add($data); $storage['outbound_id']=$res['id']??0; From 7eaa1db32eba0c366da3644d85dc34a0239dee72 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sat, 10 Aug 2024 19:48:18 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=BA=93=E5=AD=98=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=BA=93=E5=AD=98=E6=A3=80=E6=9F=A5=E4=B8=8E=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=A4=84=E7=90=86=EF=BC=8C=E5=A2=9E=E5=BC=BA=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=AE=89=E5=85=A8=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store_product/StoreProductController.php | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/admin/controller/store_product/StoreProductController.php b/app/admin/controller/store_product/StoreProductController.php index b4f1ecd20..2849be262 100644 --- a/app/admin/controller/store_product/StoreProductController.php +++ b/app/admin/controller/store_product/StoreProductController.php @@ -7,6 +7,7 @@ use app\admin\controller\BaseAdminController; use app\admin\lists\store_product\StoreProductLists; use app\admin\logic\store_product\StoreProductLogic; use app\admin\validate\store_product\StoreProductValidate; +use app\common\model\store_product\StoreProduct; use app\common\model\warehouse_product_storege\WarehouseProductStorege; use Webman\RedisQueue\Redis; @@ -101,26 +102,31 @@ class StoreProductController extends BaseAdminController $store_arr = $this->request->post('store_arr'); $stock_type = $this->request->post('stock_type', 1); $warehouse_id = $this->request->post('warehouse_id'); - $count=count($store_arr); + $count = count($store_arr); foreach ($product_arr as $key => $arr) { - $stock=bcmul($arr['stock'],$count); - $nums=WarehouseProductStorege::where('warehouse_id',$warehouse_id)->where('product_id',$arr['id'])->value('nums'); - if($nums<$stock){ + $stock = bcmul($arr['stock'], $count); + $nums = WarehouseProductStorege::where('warehouse_id', $warehouse_id)->where('product_id', $arr['id'])->value('nums'); + if ($nums < $stock) { return $this->fail('商品库存不足'); } } if ($count == 1) { $store_id = $store_arr[0]; foreach ($product_arr as $key => $arr) { - Redis::send('store-storage', ['product_arr' => $arr, 'store_id' => $store_id, 'stock_type' => $stock_type, 'admin_id' => $this->adminId, 'warehouse_id' => $warehouse_id]); + $find = StoreProduct::where('id', $product_arr['id'])->findOrEmpty()->toArray(); + StoreProductLogic::ordinary($arr, $store_id, $this->adminId, $find, $warehouse_id); + + // Redis::send('store-storage', ['product_arr' => $arr, 'store_id' => $store_id, 'stock_type' => $stock_type, 'admin_id' => $this->adminId, 'warehouse_id' => $warehouse_id]); } } else { foreach ($product_arr as $key => $arr) { foreach ($store_arr as $k => $store_id) { - Redis::send('store-storage', ['product_arr' => $arr, 'store_id' => $store_id, 'stock_type' => $stock_type, 'admin_id' => $this->adminId, 'warehouse_id' => $warehouse_id]); + $find = StoreProduct::where('id', $product_arr['id'])->findOrEmpty()->toArray(); + StoreProductLogic::ordinary($arr, $store_id, $this->adminId, $find, $warehouse_id); + // Redis::send('store-storage', ['product_arr' => $arr, 'store_id' => $store_id, 'stock_type' => $stock_type, 'admin_id' => $this->adminId, 'warehouse_id' => $warehouse_id]); } } } - return $this->success('已导入后台队列,请在门店入库记录中查看',[],1,1); + return $this->success('已导入后台队列,请在门店入库记录中查看', [], 1, 1); } } From 4b2a0642f620ba01ddb5e28d86ccb1e43e0706e6 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sat, 10 Aug 2024 19:49:53 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=BA=93=E5=AD=98=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=BA=93=E5=AD=98=E6=A3=80=E6=9F=A5=E4=B8=8E=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=A4=84=E7=90=86=EF=BC=8C=E5=A2=9E=E5=BC=BA=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=AE=89=E5=85=A8=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/store_product/StoreProductController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/admin/controller/store_product/StoreProductController.php b/app/admin/controller/store_product/StoreProductController.php index 2849be262..d7fb722f5 100644 --- a/app/admin/controller/store_product/StoreProductController.php +++ b/app/admin/controller/store_product/StoreProductController.php @@ -113,7 +113,7 @@ class StoreProductController extends BaseAdminController if ($count == 1) { $store_id = $store_arr[0]; foreach ($product_arr as $key => $arr) { - $find = StoreProduct::where('id', $product_arr['id'])->findOrEmpty()->toArray(); + $find = StoreProduct::where('id', $arr['id'])->findOrEmpty()->toArray(); StoreProductLogic::ordinary($arr, $store_id, $this->adminId, $find, $warehouse_id); // Redis::send('store-storage', ['product_arr' => $arr, 'store_id' => $store_id, 'stock_type' => $stock_type, 'admin_id' => $this->adminId, 'warehouse_id' => $warehouse_id]); @@ -121,7 +121,7 @@ class StoreProductController extends BaseAdminController } else { foreach ($product_arr as $key => $arr) { foreach ($store_arr as $k => $store_id) { - $find = StoreProduct::where('id', $product_arr['id'])->findOrEmpty()->toArray(); + $find = StoreProduct::where('id', $arr['id'])->findOrEmpty()->toArray(); StoreProductLogic::ordinary($arr, $store_id, $this->adminId, $find, $warehouse_id); // Redis::send('store-storage', ['product_arr' => $arr, 'store_id' => $store_id, 'stock_type' => $stock_type, 'admin_id' => $this->adminId, 'warehouse_id' => $warehouse_id]); }