Panda před 3 měsíci
rodič
revize
d0df102ac2

+ 1 - 1
application/api/controller/HotelCanteen.php

@@ -30,7 +30,7 @@ class HotelCanteen extends Api
     {
         $params = $this->request->param();
         $params['sort_type'] = !empty($params['sort_type']) ? $params['sort_type'] : 1;
-        $field = ['id','name','image','price','original_price','tags','lat','lng'];
+        $field = ['id','name','image','price','original_price','tags','lat','lng','address'];
         if (!empty($params['lng']) && !empty($params['lng'])){
             $field[] = "(st_distance(point ({$params['lng']}, {$params['lat']}),point(lng,lat))*111195) as distance";
         }

+ 39 - 1
application/api/controller/UniversityCourse.php

@@ -5,10 +5,13 @@ namespace app\api\controller;
 use addons\epay\library\Service;
 use app\common\controller\Api;
 use app\common\model\PayOrderModel;
+use app\common\model\UniversityCourseApplyModel;
 use app\common\model\UniversityCourseModel;
+use app\common\model\UniversityEventApplyModel;
 use app\common\model\UniversityEventModel;
 use app\common\model\Wallet;
 use app\utils\CurlUtil;
+use app\utils\RedisUtil;
 use think\Db;
 
 /**
@@ -91,6 +94,27 @@ class UniversityCourse extends Api
         if (!empty($info['apply'])) {
             return $this->error('您已报过名了');
         }
+
+        $coupon = Db::name('vip_coupon_user')->where('user_id',$user_id)->where('id',$params['course_id'])->find();
+        if (!$coupon || $coupon['status'] != 1){
+            return $this->error('优惠券不存在或已使用');
+        }
+
+        if ($coupon['end_time'] < time()){
+            return $this->error('优惠券已过期');
+        }
+
+        if ($coupon['use_frequency_day'] > 0 && $coupon['use_frequency_times'] > 0){
+            $use_frequency_times = Db::name('vip_coupon_user')->where('user_id',$user_id)
+                ->where('coupon_id',$coupon['coupon_id'])
+                ->where('status',2)
+                ->whereBetween('use_time',[time() - (86400 * $coupon['use_frequency_day']),time()])
+                ->count();
+            if ($use_frequency_times >= $coupon['use_frequency_times']){
+                return $this->error("优惠券{$coupon['use_frequency_day']}天内仅可使用{$coupon['use_frequency_times']}次!");
+            }
+        }
+
         $nowTime = time();
         // 开始报名
         $data = [
@@ -107,10 +131,24 @@ class UniversityCourse extends Api
             Db::rollback();
             return $this->error('订单创建失败');
         }
-        // TODO 抵扣券
+        // 抵扣券
+        if (!Db::name('vip_coupon_user')->where('id',$params['course_id'])->update(['order_id'=>$apply_id,'status' => 2,'use_time' => time()])) {
+            Db::rollback();
+            return $this->error('订单创建失败');
+        }
         Db::commit();
 
         return $this->success('报名成功');
     }
 
+    public function applyList()
+    {
+        $user_id = $this->auth->id;
+        $query = UniversityCourseApplyModel::with([
+            'course' => function ($query) {
+                $query->field(['id','name','image']);
+            }
+        ])->where('user_id',$user_id)->where('status',1)->order('id','desc')->autopage()->select();
+        $this->success('success', $query);
+    }
 }

+ 8 - 3
application/api/controller/UniversityEvent.php

@@ -5,6 +5,7 @@ namespace app\api\controller;
 use addons\epay\library\Service;
 use app\common\controller\Api;
 use app\common\model\PayOrderModel;
+use app\common\model\UniversityEventApplyModel;
 use app\common\model\UniversityEventModel;
 use app\common\model\Wallet;
 use app\utils\CurlUtil;
@@ -147,7 +148,7 @@ class UniversityEvent extends Api
                 'age'      => $v['age'],
             ];
         }
-        if (!Db::name('university_event_info')->insertAll($apply_info)) {
+        if (!Db::name('university_event_apply_info')->insertAll($apply_info)) {
             Db::rollback();
             return $this->error('订单创建失败');
         }
@@ -218,7 +219,11 @@ class UniversityEvent extends Api
     public function applyList()
     {
         $user_id = $this->auth->id;
-        $query = Db::name('university_event_apply')->where('user_id',$user_id);
-
+        $query = UniversityEventApplyModel::with([
+            'events' => function ($query) {
+                $query->field(['id','name','image']);
+            }
+        ])->where('user_id',$user_id)->where('status',1)->order('id','desc')->autopage()->select();
+        $this->success('success', $query);
     }
 }

+ 8 - 4
application/api/controller/Vip.php

@@ -20,11 +20,15 @@ class Vip extends Api
     // VIP抵扣券
     public function coupon()
     {
+        $params = $this->request->param();
         $user_id = $this->auth->id;
-        $list = Db::name('vip_coupon_user')
+        $query = Db::name('vip_coupon_user')
             ->field(['id','coupon_no','type','name','info','end_time','use_frequency_day','use_frequency_times','status','create_time'])
-            ->where('user_id',$user_id)
-            ->whereIn('status',[1,2])
+            ->where('user_id',$user_id);
+        if (!empty($params['type'])){
+            $query->where('type',$params['type']);
+        }
+            $list = $query->whereIn('status',[1,2])
             ->order('id desc')
             ->autopage()
             ->select();
@@ -57,7 +61,7 @@ class Vip extends Api
         if ($info['status'] != 1){
             $this->error('券已使用');
         }
-        if (!Db::name('vip_coupon_user')->where(['id'=>$params['coupon_id'],'status'=>1])->update(['status'=>2])){
+        if (!Db::name('vip_coupon_user')->where(['id'=>$params['coupon_id'],'status'=>1])->update(['status'=>2,'use_time' => time()])){
             $this->error('操作失败');
         }
         $this->error('使用成功');

+ 5 - 0
application/common/model/UniversityCourseApplyModel.php

@@ -24,4 +24,9 @@ class UniversityCourseApplyModel extends Model
     {
         return $this->hasOne(UserModel::class, 'id', 'user_id');
     }
+
+    public function course()
+    {
+        return $this->hasOne(UniversityCourseModel::class, 'id', 'course_id');
+    }
 }

+ 5 - 0
application/common/model/UniversityEventApplyModel.php

@@ -24,4 +24,9 @@ class UniversityEventApplyModel extends Model
     {
         return $this->hasOne(UserModel::class, 'id', 'user_id');
     }
+
+    public function events()
+    {
+        return $this->hasOne(UniversityEventModel::class, 'id', 'event_id');
+    }
 }