Jelajahi Sumber

入库不了的问题

doge 3 jam lalu
induk
melakukan
24cd28791e
1 mengubah file dengan 28 tambahan dan 8 penghapusan
  1. 28 8
      app/Services/IssueService.php

+ 28 - 8
app/Services/IssueService.php

@@ -351,16 +351,30 @@ class IssueService extends BaseService
         $winArr = array_map('intval', explode(',', $winning_numbers));
         // 计算中奖
         $awards = self::award(explode(',', $winning_numbers));
+        $kenoJson = self::encodePlayNowKeno($keno);
         DB::beginTransaction();
         try {
-            $info->status = self::model()::STATUS_DRAW;
-            $info->winning_numbers = $winning_numbers;
-            $info->combo = $combo;
-            $kenoJson = self::encodePlayNowKeno($keno);
+            $updatePayload = [
+                'status' => self::model()::STATUS_DRAW,
+                'winning_numbers' => $winning_numbers,
+                'combo' => $combo,
+            ];
             if ($kenoJson) {
-                $info->keno = $kenoJson;
+                $updatePayload['keno'] = $kenoJson;
             }
-            $info->saveQuietly();
+            self::model()::where('id', $info->id)->update($updatePayload);
+            $info->status = $updatePayload['status'];
+            $info->winning_numbers = $updatePayload['winning_numbers'];
+            $info->combo = $updatePayload['combo'];
+            if (isset($updatePayload['keno'])) {
+                $info->keno = $updatePayload['keno'];
+            }
+
+            Log::channel('issue')->info('官方期开奖写入源头号码', [
+                'issue_no' => $info->issue_no,
+                'keno_saved' => $kenoJson ? 'yes' : 'no',
+                'keno_preview' => $kenoJson ? substr($kenoJson, 0, 80) : '',
+            ]);
 
 
             $size = in_array("大", $awards);
@@ -1193,15 +1207,21 @@ class IssueService extends BaseService
         $kenoJson = self::encodePlayNowKeno($drawInfo['source_numbers']);
         if ($kenoJson) {
             $drawIssue = self::findOne(['issue_no' => (string)$drawNo]);
-            if ($drawIssue && $drawIssue->status == self::model()::STATUS_DRAW && empty($drawIssue->keno)) {
+            if ($drawIssue && empty($drawIssue->keno)) {
+                self::model()::where('id', $drawIssue->id)->update(['keno' => $kenoJson]);
                 $drawIssue->keno = $kenoJson;
-                $drawIssue->saveQuietly();
 
                 Log::channel('issue')->info('PlayNow源头号码已补写', [
                     'issue_no' => $drawNo,
                     'source_numbers' => implode(',', $drawInfo['source_numbers']),
+                    'status' => $drawIssue->status,
                 ]);
             }
+        } else {
+            Log::channel('issue')->info('PlayNow源头号码跳过写入', [
+                'issue_no' => $drawNo,
+                'source_numbers_type' => gettype($drawInfo['source_numbers'] ?? null),
+            ]);
         }
 
         $new = true;