Ken 3 روز پیش
والد
کامیت
cc108c40e0
3فایلهای تغییر یافته به همراه12 افزوده شده و 0 حذف شده
  1. 4 0
      app/Http/Controllers/api/ActivityReward.php
  2. 6 0
      app/Models/PhoneCode.php
  3. 2 0
      app/Services/PhoneCodeService.php

+ 4 - 0
app/Http/Controllers/api/ActivityReward.php

@@ -22,6 +22,7 @@ class ActivityReward extends BaseController
 
     public function verifyPhone(): JsonResponse
     {
+        DB::beginTransaction();
         try {
             $params = request()->validate([
                 'member_id' => ['required', 'integer'],
@@ -30,9 +31,12 @@ class ActivityReward extends BaseController
                 'visitor_id' => ['required', 'string', 'min:1', 'max:32'],
             ]);
             PhoneCodeService::verify($params['phone'], $params['code'], $params['member_id'], $params['visitor_id']);
+            DB::commit();
         } catch (ValidationException $e) {
+            DB::rollBack();
             return $this->error($e->validator->errors()->first());
         } catch (Exception $e) {
+            DB::rollBack();
             return $this->error($e->getMessage(), [], $e->getCode());
         }
         return $this->success();

+ 6 - 0
app/Models/PhoneCode.php

@@ -2,6 +2,12 @@
 
 namespace App\Models;
 
+/**
+ * @property $phone
+ * @property $code
+ * @property $ext
+ * @property $status
+ */
 class PhoneCode extends BaseModel
 {
     protected $table = 'phone_code';

+ 2 - 0
app/Services/PhoneCodeService.php

@@ -44,6 +44,8 @@ class PhoneCodeService extends BaseService
         if (!$phoneCode) throw new Exception("验证码错误", HttpStatus::CUSTOM_ERROR);
         $time = time();
         if ($phoneCode->ext < $time) throw new Exception("验证码过期", HttpStatus::CUSTOM_ERROR);
+        $phoneCode->status = 1;
+        $phoneCode->save();
         $user = UserService::findOne(['member_id' => $memberId]);
         if (!$user) throw new Exception('用户不存在', HttpStatus::CUSTOM_ERROR);
         $registerIp = request()->ip();