wesmiler 1 year ago
parent
commit
5f84301c4d

+ 2 - 1
app/Http/Controllers/Api/v1/TestController.php

@@ -24,7 +24,8 @@ class TestController extends webApp
     public function check()
     {
         $kw = request()->post('kw','');
-        $result = MessageService::make()->filterMessage($kw, 1);
+        $result = [];
+        #$result = MessageService::make()->filterMessage($kw, 1);
         return message(FinanceService::make()->getError(), true, $result);
     }
 }

+ 0 - 2
app/Http/Controllers/Api/webApp.php

@@ -47,8 +47,6 @@ class webApp extends BaseController
      */
     public function __construct()
     {
-        $st = microtime(true);
-        RedisService::set("caches:temp:st_".time(), ['params'=>request()->post(),'st'=>$st], 600);
         // 初始化分页参数
         $this->initConfig();
 

+ 21 - 2
app/Services/Api/CouponService.php

@@ -71,6 +71,8 @@ class CouponService extends BaseService
                 if($time){
                     $query->where('start_time','<=', time())
                         ->where('end_time','>=', time());
+
+                    $query->whereRaw('received_num < num');
                 }
 
                 $merchId = isset($params['merch_id'])? $params['merch_id'] : 0;
@@ -202,9 +204,11 @@ class CouponService extends BaseService
                    });
                }
 
+               $query->whereRaw('received_num < num');
+
                $query->where('start_time','<=', time())
                    ->where('end_time','>=', time());
-           })->count('id');
+           })->count('sid');
    }
 
     /**
@@ -241,7 +245,7 @@ class CouponService extends BaseService
        $info = $this->model->where(['id'=> $id,'mark'=>1,'status'=>1])
            ->where('start_time','<=', time())
            ->where('end_time','>=', time())
-           ->select(['id as coupon_id','name','coupon_type','reduce_price','discount','min_price','expire_day','start_time','end_time','apply_merch_ids'])
+           ->select(['id as coupon_id','name','num','received_num','coupon_type','reduce_price','discount','min_price','expire_day','start_time','end_time','apply_merch_ids'])
            ->first();
        $info = $info? $info->toArray() : [];
        if(empty($info)){
@@ -249,6 +253,12 @@ class CouponService extends BaseService
            return false;
        }
 
+
+       if($info['received_num'] >= $info['num']){
+           $this->error = 2909;
+           return false;
+       }
+
        $userInfo = MemberModel::where(['id'=> $userId,'mark'=>1,'status'=>1])
            ->select(['id','status'])
            ->first();
@@ -264,11 +274,20 @@ class CouponService extends BaseService
        $info['update_time'] = time();
        $info['status'] = 1;
        $info['mark'] = 1;
+       DB::beginTransaction();
        if(!MemberCouponModel::insertGetId($info)){
            $this->error = 2907;
+           DB::rollBack();
+           return false;
+       }
+
+       if(!$this->model->where(['id'=> $id])->setInc('received_num', 1)){
+           $this->error = 2907;
+           DB::rollBack();
            return false;
        }
 
+       DB::commit();
        $this->error = 2908;
        return true;
    }

+ 2 - 0
app/Services/Common/CouponsService.php

@@ -5,6 +5,7 @@ namespace App\Services\Common;
 
 
 use App\Models\CouponModel;
+use App\Models\MerchantModel;
 use App\Services\BaseService;
 
 class CouponsService extends BaseService
@@ -48,6 +49,7 @@ class CouponsService extends BaseService
         if ($count > 0) {
             $list = $this->model->getList($map,[['id', 'desc']]);
             foreach ($list as &$item) {
+                $item['merch'] = $item['merch_id']?MerchantModel::where(['id'=> $item['merch_id'],'mark'=>1])->select(['id','name'])->first():[];
                 $item['apply_merch_ids'] = explode(',', $item['apply_merch_ids']);
             }
         }

+ 1 - 0
config/app.php

@@ -185,6 +185,7 @@ return [
         App\Providers\RouteServiceProvider::class,
         // 导出Excel
         Maatwebsite\Excel\ExcelServiceProvider::class,
+
         // 第三方微信
         \Laravel\Socialite\SocialiteServiceProvider::class,
         \SocialiteProviders\Manager\ServiceProvider::class,