seven 3 zile în urmă
părinte
comite
eb2cbf8582
3 a modificat fișierele cu 60 adăugiri și 0 ștergeri
  1. 23 0
      app/Http/Controllers/admin/Issue.php
  2. 36 0
      app/Services/IssueService.php
  3. 1 0
      routes/admin.php

+ 23 - 0
app/Http/Controllers/admin/Issue.php

@@ -96,4 +96,27 @@ class Issue extends Controller
         }
         return $this->success([], $ret['msg']);
     }
+    /**
+     * @description: 开奖
+     * @return {*}
+     */    
+    public function lotteryDraw()
+    {
+        $id = request()->input('id');
+        $winning_numbers = request()->input('winning_numbers');
+        if (!$id) {
+            return $this->error(HttpStatus::VALIDATION_FAILED, '参数错误');
+        }
+        if (!$winning_numbers) {
+            return $this->error(HttpStatus::VALIDATION_FAILED, '参数错误');
+        }
+        if(explode(',', $winning_numbers) < 3){
+            return $this->error(HttpStatus::VALIDATION_FAILED, '开奖号码格式错误');
+        }
+        $ret = IssueService::lotteryDraw($id,$winning_numbers);
+        if ($ret['code'] == IssueService::NOT) {
+            return $this->error($ret['code'], $ret['msg']);
+        }
+        return $this->success([], $ret['msg']);
+    }
 }

+ 36 - 0
app/Services/IssueService.php

@@ -169,6 +169,42 @@ class IssueService extends BaseService
         return ['code'=>self::YES, 'msg'=>'封盘成功'];
     }
 
+    /**
+     * @description: 开奖
+     * @param {*} $id
+     * @param {*} $winning_numbers
+     * @return {*}
+     */
+    public static function  lotteryDraw($id, $winning_numbers)
+    {
+        $info = self::findOne(['id'=>$id]);
+        if(!$info){
+            return ['code'=>self::NOT, 'msg'=>'期号不存在'];
+        }
+
+        if($info->status != self::model()::STATUS_CLOSE){
+            return ['code'=>self::NOT, 'msg'=>'期号状态不正确'];
+        }
+
+        // 计算中奖
+        $awards = self::award(explode(',',$winning_numbers));
+        DB::beginTransaction();
+        try {
+            $info->status = self::model()::STATUS_DRAW;
+            $info->winning_numbers = $winning_numbers;
+            $info->save();
+            
+
+            DB::commit();
+            return ['code'=>self::YES, 'msg'=>'开奖成功'];
+        } catch (\Exception $e) {
+            DB::rollBack();
+            Log::error('开奖失败: '.$e->getMessage());
+            return ['code'=>self::NOT, 'msg'=>'开奖失败'];
+        }
+    }
+
+
     /**
      * @description: 获取中奖的奖项
      * @param {*} $winning_numbers

+ 1 - 0
routes/admin.php

@@ -48,6 +48,7 @@ Route::middleware(['admin.jwt'])->group(function () {
             Route::post('/submit', [Issue::class, 'store']);
             Route::post('/betting', [Issue::class, 'betting']);
             Route::post('/close', [Issue::class, 'close']);
+            Route::post('/lotteryDraw', [Issue::class, 'lotteryDraw']);
         });