From 2e267e2f6ac23dbf0a80d7130e8f86cff6652a90 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Mon, 22 Jul 2024 15:30:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E4=BA=86CommissionLo?= =?UTF-8?q?gic,=20StoreFinanceFlowLogic,=20StoreOrderLogic=20=E5=92=8C=20T?= =?UTF-8?q?ask=20=E6=96=87=E4=BB=B6=E4=B8=AD=E7=9A=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/logic/CommissionLogic.php | 46 +++++++++---------- app/common/logic/StoreFinanceFlowLogic.php | 3 +- .../logic/store_order/StoreOrderLogic.php | 6 +++ process/Task.php | 35 +++++++++++--- 4 files changed, 59 insertions(+), 31 deletions(-) diff --git a/app/common/logic/CommissionLogic.php b/app/common/logic/CommissionLogic.php index c95453d10..4334d5029 100644 --- a/app/common/logic/CommissionLogic.php +++ b/app/common/logic/CommissionLogic.php @@ -169,29 +169,29 @@ class CommissionLogic extends BaseLogic $fees = bcmul($pay_price, $userRate, 2); if ($fees > 0) { //记录用户余额收入 - if ($uid) { - if(in_array($enum,[14,15])&&$userRate==0.05){ - $purchase_funds=User::where('id', $uid)->value('purchase_funds'); - if($purchase_funds>0){ - $fees_two = bcmul($purchase_funds, $userRate, 2); - if($fees_two<$fees){ - $fees=$fees_two; - } - } - } - if($enum==12&&$userRate==0.07){ - $purchase_funds=User::where('id', $uid)->value('purchase_funds'); - if($purchase_funds>0){ - $fees_two = bcmul($purchase_funds, $userRate, 2); - if($fees_two<$fees){ - $fees=$fees_two; - } - } - } - $GiveUser = User::where('id', $order['uid'])->find(); - $capitalFlowDao = new CapitalFlowLogic($GiveUser); - $capitalFlowDao->userIncome('system_balance_add', 'order', $order['id'], $fees); - } + // if ($uid) { + // if(in_array($enum,[14,15])&&$userRate==0.05){ + // $purchase_funds=User::where('id', $uid)->value('purchase_funds'); + // if($purchase_funds>0){ + // $fees_two = bcmul($purchase_funds, $userRate, 2); + // if($fees_two<$fees){ + // $fees=$fees_two; + // } + // } + // } + // if($enum==12&&$userRate==0.07){ + // $purchase_funds=User::where('id', $uid)->value('purchase_funds'); + // if($purchase_funds>0){ + // $fees_two = bcmul($purchase_funds, $userRate, 2); + // if($fees_two<$fees){ + // $fees=$fees_two; + // } + // } + // } + // $GiveUser = User::where('id', $order['uid'])->find(); + // $capitalFlowDao = new CapitalFlowLogic($GiveUser); + // $capitalFlowDao->userIncome('system_balance_add', 'order', $order['id'], $fees); + // } $financeLogic->user['uid'] = $order['uid']; $financeLogic->other_arr['vip_uid'] = $uid; $financeLogic->order = $order; diff --git a/app/common/logic/StoreFinanceFlowLogic.php b/app/common/logic/StoreFinanceFlowLogic.php index ab6999160..a845c7ed1 100644 --- a/app/common/logic/StoreFinanceFlowLogic.php +++ b/app/common/logic/StoreFinanceFlowLogic.php @@ -134,7 +134,8 @@ class StoreFinanceFlowLogic extends BaseLogic */ public function updateStatusUser($id, $uid, $money, $order_id) { - StoreFinanceFlow::where('id', $id)->update(['status' => 1]); + $flow=StoreFinanceFlow::where('id', $id)->find(); + StoreFinanceFlow::where('order_id',$order_id)->where('financial_type',$flow['financial_type'])->update(['status'=>1]); $find = User::where('id', $uid)->find(); $capitalFlowDao = new CapitalFlowLogic($find); $capitalFlowDao->userIncome('system_balance_add', 'order', $order_id, $money); diff --git a/app/common/logic/store_order/StoreOrderLogic.php b/app/common/logic/store_order/StoreOrderLogic.php index 88adab808..53e5d26fd 100644 --- a/app/common/logic/store_order/StoreOrderLogic.php +++ b/app/common/logic/store_order/StoreOrderLogic.php @@ -12,6 +12,7 @@ use app\common\model\order\Cart; use app\common\model\store_branch_product\StoreBranchProduct; use app\common\model\store_order\StoreOrder; use app\common\model\store_order_cart_info\StoreOrderCartInfo; +use app\common\model\store_product\StoreProduct; use app\common\model\store_product_unit\StoreProductUnit; use app\common\model\user\User; use app\common\service\pay\PayService; @@ -207,10 +208,15 @@ class StoreOrderLogic extends BaseLogic 'stock' => $stock-$v['cart_num'], 'sales' => ['inc', $v['cart_num']] ]; + $updateDataTwo[] = [ + 'id' => $v['product_id'], + 'sales' => ['inc', $v['cart_num']] + ]; } (new StoreOrderCartInfo())->saveAll($goods_list); $where = ['is_pay' => 0]; (new StoreBranchProduct())->saveAll($updateData); + (new StoreProduct())->saveAll($updateDataTwo); Cart::whereIn('id', $cartId)->where($where)->update(['is_pay' => 1]); Db::commit(); return $order; diff --git a/process/Task.php b/process/Task.php index fa0e66504..2fe2a6536 100644 --- a/process/Task.php +++ b/process/Task.php @@ -1,7 +1,11 @@ 0]; - $where[]=['create_time','<',time() - 600];// 10分钟前创建的订单 + new Crontab('0 */10 * * * *', function () { + $where = ['paid' => 0]; + $where[] = ['create_time', '<', time() - 600]; // 10分钟前创建的订单 // 删除10分钟未支付的订单 - StoreOrder::where($where)->update(['delete_time'=>time()]); // 删除时间设置为当前时间,即删除 + $oid = StoreOrder::where($where)->column('id'); // 删除时间设置为当前时间,即删除 + if($oid){ + StoreOrder::where('id', 'in', $oid)->update(['delete_time' => time()]); + $arr = StoreOrderCartInfo::where('oid', 'in', $oid)->field('store_id,product_id,cart_num')->select(); + $updateData = []; + $updateDataTwo = []; + foreach ($arr as $v) { + $updateData[] = [ + 'id' => $v['branch_product_id'], + 'sales' => ['dec', $v['cart_num']] + ]; + $updateDataTwo[] = [ + 'id' => $v['product_id'], + 'sales' => ['dec', $v['cart_num']] + ]; + } + (new StoreBranchProduct())->saveAll($updateData); + (new StoreProduct())->saveAll($updateDataTwo); + } + }); - - } -} \ No newline at end of file +}