make(QueuePoolServices::class); $queueServices->enqueue($uid, $orderId, $amount); Log::info("[HjfOrderPay] 公排入队成功 uid={$uid} orderId={$orderId}"); } catch (ValidateException $e) { Log::warning("[HjfOrderPay] 入队被锁,延迟重试 uid={$uid} orderId={$orderId}: " . $e->getMessage()); static::dispatchSece(5, [$uid, $orderId, $amount]); return true; } catch (\Throwable $e) { Log::error("[HjfOrderPay] 公排入队异常 uid={$uid} orderId={$orderId}: " . $e->getMessage()); return false; } $preUpgradeLevels = []; try { /** @var UserServices $userServices */ $userServices = app()->make(UserServices::class); $userInfo = $userServices->getUserCacheInfo($uid); $spreadUid = $userInfo ? (int)($userInfo['spread_uid'] ?? 0) : 0; $twoSpreadUid = 0; if ($spreadUid > 0 && $oneUserInfo = $userServices->getUserCacheInfo($spreadUid)) { $twoSpreadUid = $userServices->getSpreadUid($spreadUid, $oneUserInfo, false); } $uids = array_unique([$uid, $spreadUid, $twoSpreadUid]); // fsgx B2:在升级前快照各上级用户的 agent_level,避免触发升级的那笔订单发放积分 foreach ($uids as $u) { if ($u <= 0) continue; $uInfo = $userServices->get((int)$u, ['uid', 'agent_level']); $preUpgradeLevels[(int)$u] = $uInfo ? (int)($uInfo['agent_level'] ?? 0) : 0; } /** @var AgentLevelServices $agentLevelServices */ $agentLevelServices = app()->make(AgentLevelServices::class); $agentLevelServices->checkUserLevelFinish($uid, $uids); Log::info("[HjfOrderPay] 等级升级检查完成 uid={$uid}"); } catch (\Throwable $e) { Log::error("[HjfOrderPay] 等级升级检查失败 uid={$uid}: " . $e->getMessage()); } // 等级升级完成后发放积分奖励(确保使用升级后的 agent_level) try { $orderRow = Db::name('store_order') ->where('order_id', $orderId) ->where('is_queue_goods', 1) ->field('id,uid,is_queue_goods') ->find(); if ($orderRow) { // fsgx B3:计算订单中报单商品的总数量,积分按数量倍乘 $queueQty = 1; try { $cartRows = Db::name('store_order_cart_info') ->where('oid', (int)$orderRow['id']) ->column('cart_info'); $qtySum = 0; foreach ($cartRows as $row) { $item = is_string($row) ? json_decode($row, true) : $row; if (!empty($item['productInfo']['is_queue_goods'])) { $qtySum += (int)($item['cart_num'] ?? 1); } } if ($qtySum > 0) { $queueQty = $qtySum; } } catch (\Throwable $qe) { Log::warning("[HjfOrderPay] 计算报单商品数量异常,使用默认值1: " . $qe->getMessage()); } /** @var PointsRewardServices $pointsService */ $pointsService = app()->make(PointsRewardServices::class); $pointsService->reward($uid, $orderId, (int)$orderRow['id'], $preUpgradeLevels, $queueQty); Log::info("[HjfOrderPay] 积分奖励发放完成 uid={$uid} orderId={$orderId} qty={$queueQty}"); } } catch (\Throwable $e) { Log::error("[HjfOrderPay] 积分奖励发放失败 uid={$uid} orderId={$orderId}: " . $e->getMessage()); } return true; } }