From 1b63962bffce2f3f6be760d9e353f1b057c8cc0c Mon Sep 17 00:00:00 2001 From: xiadc <251308692@qq.com> Date: Sat, 31 May 2025 22:22:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(shopro):=20=E4=BF=AE=E5=A4=8D=E4=BD=93?= =?UTF-8?q?=E8=82=B2=E6=B8=B8=E6=88=8F=E8=87=AA=E5=8A=A8=E9=80=80=E5=9D=91?= =?UTF-8?q?=E5=92=8C=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E5=BE=97=E5=88=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 Game 控制器中,为 teamAuser 查询添加 status > -1 的条件,以确保只更新有效用户的得分 - 在 OrderAutoOper 任务中,修复 GameJoin 表格的 status 字段更新逻辑,并添加 Participant 表格的状态更新 --- addons/shopro/controller/zy/Game.php | 4 +++- addons/shopro/job/OrderAutoOper.php | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/shopro/controller/zy/Game.php b/addons/shopro/controller/zy/Game.php index a531a5a..2d14363 100644 --- a/addons/shopro/controller/zy/Game.php +++ b/addons/shopro/controller/zy/Game.php @@ -388,7 +388,9 @@ class Game extends Base // 更新用户得分 $teamA = json_decode($match->teamA, true); - $teamAuser = Participant::where('game_id', $game['id'])->where('user_id', 'IN', array_column($teamA['user'], 'user_id'))->select(); + $teamAuser = Participant::where('game_id', $game['id']) + ->where('user_id', 'IN', array_column($teamA['user'], 'user_id')) + ->where('status', '>', -1)->select(); // dd($teamAuser); foreach ($teamAuser as $u) { $u->team = $teamA['name']; //队伍名 diff --git a/addons/shopro/job/OrderAutoOper.php b/addons/shopro/job/OrderAutoOper.php index 0e9d657..f7e05d7 100644 --- a/addons/shopro/job/OrderAutoOper.php +++ b/addons/shopro/job/OrderAutoOper.php @@ -2,6 +2,7 @@ namespace addons\shopro\job; +use think; use think\Db; use think\Log; use think\queue\Job; @@ -41,10 +42,11 @@ class OrderAutoOper extends BaseJob Db::transaction(function () use ($order, $data) { $orderOper = new OrderOper(); $order = $orderOper->close($order, null, 'system'); + // zy体育报名处理(未支付,自动退坑) $join = GameJoin::where('order_id', $data['order']['id'])->find(); if (!empty($join)) { - $join->save([' status' => -1]); + $join->save(['status' => -1]); Participant::where('game_join_id', $join['id'])->update(['status' => -1]); } return $order;