From d9bb85651eb5458d5537b00a882e79736c20c4ed Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Tue, 30 Jul 2024 10:25:21 +0800
Subject: [PATCH 1/3] 1

---
 app/api/controller/order/OrderController.php |  6 +++--
 process/Task.php                             | 26 ++++++++++++++++++++
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/app/api/controller/order/OrderController.php b/app/api/controller/order/OrderController.php
index 299cbc2bb..3fbb8e1fb 100644
--- a/app/api/controller/order/OrderController.php
+++ b/app/api/controller/order/OrderController.php
@@ -16,6 +16,7 @@ use app\common\model\store_order\StoreOrder;
 use app\common\model\system_store\SystemStoreStaff;
 use app\common\model\user\User;
 use app\common\model\user\UserAddress;
+use think\facade\Db;
 use Webman\RedisQueue\Redis;
 
 class OrderController extends BaseApiController
@@ -181,7 +182,8 @@ class OrderController extends BaseApiController
                     if (isset($result['trade_state_desc']) && $result['trade_state_desc'] == '支付成功') {
                         PayNotifyLogic::handle('StoreOrder', $result['out_trade_no'], $result);
                     } else {
-                        Redis::send('send-code-pay', ['number' => $order['number']]);
+                        Db::name('wechat_micropay')->insert(['order_id'=>$order['order_id'],'create_time'=>time(),'update_time'=>time()]);
+                        Redis::send('send-code-pay',['order_id' => $order['order_id']]);
                         return $this->success('用户支付中');
                     }
                     return $this->success('支付成功', ['out_trade_no' => $result['out_trade_no'], 'pay_type' => PayEnum::WECHAT_PAY_BARCODE, 'transaction_id' => $result['transaction_id']]);
@@ -290,7 +292,7 @@ class OrderController extends BaseApiController
                 if (isset($result['trade_state_desc']) && $result['trade_state_desc'] == '支付成功') {
                     PayNotifyLogic::handle('StoreOrder', $result['out_trade_no'], $result);
                 } else {
-                    Redis::send('send-code-pay', ['number' => $order['number']]);
+                    Redis::send('send-code-pay', ['order_id' => $order['order_id']]);
                     return $this->success('用户支付中');
                 }
                 return $this->success('支付成功', ['out_trade_no' => $result['out_trade_no'], 'pay_type' => PayEnum::WECHAT_PAY_BARCODE, 'transaction_id' => $result['transaction_id']]);
diff --git a/process/Task.php b/process/Task.php
index 789c98e80..56a913db8 100644
--- a/process/Task.php
+++ b/process/Task.php
@@ -2,13 +2,16 @@
 
 namespace process;
 
+use app\common\logic\PayNotifyLogic;
 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\user_recharge\UserRecharge;
+use think\facade\Db;
 use Webman\RedisQueue\Redis;
 use Workerman\Crontab\Crontab;
+use app\common\service\pay\PayService;
 
 class Task
 {
@@ -58,5 +61,28 @@ class Task
                 Redis::send('task-recharge-query', ['order_id' => $v]);
             }
         });
+        //每10秒执行一次
+        // new Crontab('*/10 * * * * *', function () {
+        //     $select=Db::name('wechat_micropay')->limit(100)->select();
+        //     $pay = new PayService();
+        //     foreach ($select as $k=>$v) {
+        //         $time = time();
+        //         if ($time - $v['create_time'] > 60){
+        //             Db::name('wechat_micropay')->where('id',$v['id'])->delete();
+        //             continue;
+        //         }
+        //         $order = [
+        //             'out_trade_no' => $v['order_id'],
+        //         ];
+        //         $res = $pay->wechat->query($order);
+        //         if ($res['trade_state'] == 'SUCCESS' && $res['trade_state_desc'] == '支付成功') {
+        //             if(isset($data['pay_type']) && $data['pay_type']=='recharge'){
+        //                 PayNotifyLogic::handle('recharge', $res['out_trade_no'], $res);
+        //             }else{
+        //                 PayNotifyLogic::handle('wechat_common', $res['out_trade_no'], $res);
+        //             }
+        //         }
+        //     }
+        // });
     }
 }

From 58cf67956965ec86f2c78cc5de81b5f5c792b17b Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Tue, 30 Jul 2024 14:21:57 +0800
Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E8=AE=A2?=
 =?UTF-8?q?=E5=8D=95=E5=88=9B=E5=BB=BA=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=8C=85?=
 =?UTF-8?q?=E6=8B=AC=E6=9B=B4=E6=96=B0=E5=95=86=E5=93=81=E5=BA=93=E5=AD=98?=
 =?UTF-8?q?=E5=92=8C=E9=94=80=E9=87=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/api/logic/order/OrderLogic.php | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php
index d6e84dfff..e63c90afd 100644
--- a/app/api/logic/order/OrderLogic.php
+++ b/app/api/logic/order/OrderLogic.php
@@ -330,19 +330,30 @@ class OrderLogic extends BaseLogic
         try {
             $order = StoreOrder::create($_order);
             $goods_list = $orderInfo['cart_list'];
+
+            $updateData = [];
+            $updateDataTwo = [];
             foreach ($goods_list as $k => $v) {
                 $goods_list[$k]['oid'] = $order->id;
                 $goods_list[$k]['uid'] = $uid;
                 $goods_list[$k]['cart_id'] = implode(',', $cartId);
                 $goods_list[$k]['delivery_id'] = $params['store_id']; //商家id
-                //                $StoreBranchProduct = StoreBranchProduct::where('id', $v['branch_product_id'])->withTrashed()->find();
-                //                if ($StoreBranchProduct['stock'] - $v['cart_num'] <= 0) {
-                //                    Db::name('store_product_cate')->where(['cate_id' => $StoreBranchProduct['cate_id'], 'store_id' => $params['store_id']])->update(['count' => 0]);
-                //                }
+
+                $updateData[] = [
+                    'id' => $v['branch_product_id'],
+                    'sales' => ['inc', $v['cart_num']],
+                    'stock' => ['dec', $v['cart_num']],
+                ];
+                $updateDataTwo[] = [
+                    'id' => $v['product_id'],
+                    'sales' => ['inc', $v['cart_num']]
+                ];
             }
             (new StoreOrderCartInfo())->saveAll($goods_list);
             $where = ['is_pay' => 0];
             Cart::whereIn('id', $cartId)->where($where)->update(['is_pay' => 1]);
+            (new StoreBranchProduct())->saveAll($updateData);
+            (new StoreProduct())->saveAll($updateDataTwo);
             Db::commit();
             return $order;
         } catch (\Exception $e) {

From bcf270583bd6913a2b413180b53331e8e3c26dad Mon Sep 17 00:00:00 2001
From: mkm <727897186@qq.com>
Date: Tue, 30 Jul 2024 14:41:37 +0800
Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=BA=93?=
 =?UTF-8?q?=E5=AD=98=E6=9B=B4=E6=96=B0=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 process/Task.php | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/process/Task.php b/process/Task.php
index 56a913db8..0d5b35169 100644
--- a/process/Task.php
+++ b/process/Task.php
@@ -32,7 +32,8 @@ class Task
                 foreach ($arr as $v) {
                     $updateData[] = [
                         'id' => $v['branch_product_id'],
-                        'sales' => ['dec', $v['cart_num']]
+                        'sales' => ['dec', $v['cart_num']],
+                        'stock' => ['inc', $v['cart_num']],
                     ];
                     $updateDataTwo[] = [
                         'id' => $v['product_id'],