wesmiler před 1 týdnem
rodič
revize
d7c8428409
1 změnil soubory, kde provedl 92 přidání a 60 odebrání
  1. 92 60
      app/Services/Api/MemberService.php

+ 92 - 60
app/Services/Api/MemberService.php

@@ -328,7 +328,7 @@ class MemberService extends BaseService
             return $info;
         }
 
-        $defaultField = ['id', 'user_type', 'realname', 'mobile', 'nickname', 'is_zg_vip', 'zg_vip_expired', 'is_zsb_vip', 'is_zsb_vip', 'zsb_vip_expired', 'is_video_vip', 'video_vip_expired', 'city', 'district', 'balance', 'code', 'openid', 'status', 'avatar'];
+        $defaultField = ['id', 'user_type', 'realname', 'mobile', 'nickname', 'is_vip_1', 'vip_1_expired', 'is_vip_2', 'vip_2_expired', 'is_vip_3', 'vip_3_expired', 'is_vip_4', 'vip_4_expired', 'is_video_vip', 'video_vip_expired', 'city', 'district', 'balance', 'code', 'openid', 'status', 'avatar'];
         $field = $field ? $field : $defaultField;
         if (is_array($where)) {
             $info = $this->model->where(['mark' => 1])->where($where)->select($field)->first();
@@ -352,25 +352,47 @@ class MemberService extends BaseService
 
             $isVip = 0;
             $vipExpired = '';
-            $isZgVip = isset($info['is_zg_vip']) ? $info['is_zg_vip'] : 0;
-            $zgVipExpired = isset($info['zg_vip_expired']) && !empty($info['zg_vip_expired']) ? $info['zg_vip_expired'] : '';
-            if ($isZgVip == 1 && $zgVipExpired && $zgVipExpired > date('Y-m-d H:i:s')) {
+            $isVip1 = isset($info['is_vip_1']) ? $info['is_vip_1'] : 0;
+            $vip1Expired = isset($info['vip_1_expired']) && !empty($info['vip_1_expired']) ? $info['vip_1_expired'] : '';
+            if ($isVip1 == 1 && $vip1Expired && $vip1Expired > date('Y-m-d H:i:s')) {
                 $isVip = 1;
-                $isZgVip = 1;
-                $vipExpired = $zgVipExpired;
+                $isVip1 = 1;
+                $vipExpired = $vip1Expired;
             } else {
-                $isZgVip = 0;
+                $isVip1 = 0;
             }
 
-            $isZsbVip = isset($info['is_zsb_vip']) ? $info['is_zsb_vip'] : 0;
-            $zsbVipExpired = isset($info['zsb_vip_expired']) && !empty($info['zsb_vip_expired']) ? $info['zsb_vip_expired'] : '';
-            if ($isZsbVip == 1 && $zsbVipExpired && $zsbVipExpired > date('Y-m-d H:i:s')) {
+            $isVip2 = isset($info['is_vip_2']) ? $info['is_vip_2'] : 0;
+            $vip2Expired = isset($info['vip_2_expired']) && !empty($info['vip_2_expired']) ? $info['vip_2_expired'] : '';
+            if ($isVip2 == 1 && $vip2Expired && $vip2Expired > date('Y-m-d H:i:s')) {
                 $isVip = 1;
-                $vipExpired = $zsbVipExpired > $vipExpired ? $zsbVipExpired : $vipExpired;
+                $isVip2 = 1;
+                $vipExpired = $vip2Expired;
             } else {
-                $isZsbVip = 0;
+                $isVip2 = 0;
             }
 
+            $isVip3 = isset($info['is_vip_3']) ? $info['is_vip_3'] : 0;
+            $vip3Expired = isset($info['vip_3_expired']) && !empty($info['vip_3_expired']) ? $info['vip_3_expired'] : '';
+            if ($isVip3 == 1 && $vip3Expired && $vip3Expired > date('Y-m-d H:i:s')) {
+                $isVip = 1;
+                $isVip3 = 1;
+                $vipExpired = $vip3Expired;
+            } else {
+                $isVip3 = 0;
+            }
+
+            $isVip4 = isset($info['is_vip_4']) ? $info['is_vip_4'] : 0;
+            $vip4Expired = isset($info['vip_4_expired']) && !empty($info['vip_4_expired']) ? $info['vip_4_expired'] : '';
+            if ($isVip4 == 1 && $vip4Expired && $vip4Expired > date('Y-m-d H:i:s')) {
+                $isVip = 1;
+                $isVip4 = 1;
+                $vipExpired = $vip4Expired;
+            } else {
+                $isVip4 = 0;
+            }
+
+
             $isVideoVip = isset($info['is_video_vip']) ? $info['is_video_vip'] : 0;
             $videoVipExpired = isset($info['video_vip_expired']) && !empty($info['video_vip_expired']) ? $info['video_vip_expired'] : '';
             if ($isVideoVip == 1 && $videoVipExpired && $videoVipExpired > date('Y-m-d H:i:s')) {
@@ -380,13 +402,19 @@ class MemberService extends BaseService
             }
 
             $info['is_vip'] = $isVip;
-            $info['is_zg_vip'] = $isZgVip;
-            $info['is_zsb_vip'] = $isZsbVip;
+            $info['is_vip_1'] = $isVip1;
+            $info['is_vip_2'] = $isVip2;
+            $info['is_vip_3'] = $isVip3;
+            $info['is_vip_4'] = $isVip4;
             $info['vip_expired'] = $vipExpired;
-            $info['zg_vip_expired'] = $zgVipExpired;
-            $info['zg_vip_day'] = max(0, intval((strtotime($zgVipExpired) - time()) / 86400));
-            $info['zsb_vip_expired'] = $zsbVipExpired;
-            $info['zsb_vip_day'] = max(0, intval((strtotime($zsbVipExpired) - time()) / 86400));
+            $info['vip_1_expired'] = $vip1Expired;
+            $info['vip_1_day'] = max(0, intval((strtotime($vip1Expired) - time()) / 86400));
+            $info['vip_2_expired'] = $vip2Expired;
+            $info['vip_2_day'] = max(0, intval((strtotime($vip2Expired) - time()) / 86400));
+            $info['vip_3_expired'] = $vip3Expired;
+            $info['vip_3_day'] = max(0, intval((strtotime($vip3Expired) - time()) / 86400));
+            $info['vip_4_expired'] = $vip4Expired;
+            $info['vip_4_day'] = max(0, intval((strtotime($vip4Expired) - time()) / 86400));
             $info['is_video_vip'] = $isVideoVip;
             $info['video_vip_expired'] = $videoVipExpired;
             $info['video_vip_day'] = max(0, intval((strtotime($videoVipExpired) - time()) / 86400));
@@ -539,21 +567,6 @@ class MemberService extends BaseService
         $realname = isset($params['realname']) ? trim($params['realname']) : '';
         $university = isset($params['university']) ? trim($params['university']) : '';
         $entryType = isset($params['entry_type']) ? intval($params['entry_type']) : 0;
-//        if(empty($realname)){
-//            $this->error = '请输入姓名';
-//            return false;
-//        }
-//
-//        if(empty($realname)){
-//            $this->error = '请输入毕业院校';
-//            return false;
-//        }
-//
-//        if($entryType<=0){
-//            $this->error = '请选择报考类型';
-//            return false;
-//        }
-
         // 用户验证
         RedisService::set($cacheLockKey.'_temp', ['user_id' => $userId, 'params' => $params], 3600);
         RedisService::set($cacheLockKey, ['user_id' => $userId, 'params' => $params], rand(2, 3));
@@ -687,11 +700,6 @@ class MemberService extends BaseService
             return false;
         }
 
-        // if($vipId== 4){
-        //     $this->error = '套餐价格:'.$price;
-        //     RedisService::clear($cacheKey . '_lock');
-        //     return false;
-        // }
 
         if ($price <= 0 || $day <= 0) {
             $this->error = '该VIP参数错误';
@@ -699,21 +707,25 @@ class MemberService extends BaseService
             return false;
         }
 
-        $showZsb = ConfigService::make()->getConfigByCode('show_zsb_entry', 0);
-        if($vipType == 2 && !$showZsb){
+        $showVip = ConfigService::make()->getConfigByCode("show_{$vipType}_entry", 1);
+        if($showVip != 1){
             $this->error = '该VIP套餐暂未开放~';
             RedisService::clear($cacheKey . '_lock');
             return false;
         }
 
         $info = $this->model->where(['id' => $userId, 'mark' => 1])
-            ->select(['id', 'openid', 'mobile', 'is_zg_vip', 'zg_vip_expired', 'is_zsb_vip', 'zsb_vip_expired', 'is_video_vip', 'video_vip_expired', 'status'])
+            ->select(['id', 'openid', 'mobile', 'is_vip_1', 'vip_1_expired', 'is_vip_2', 'vip_2_expired', 'is_vip_3', 'vip_3_expired', 'is_vip_4', 'vip_4_expired', 'is_video_vip', 'video_vip_expired', 'status'])
             ->first();
-        $isZgVip = isset($info['is_zg_vip']) ? $info['is_zg_vip'] : 0;
-        $isZsbVip = isset($info['is_zsb_vip']) ? $info['is_zsb_vip'] : 0;
+        $isVip1 = isset($info['is_vip_1']) ? $info['is_vip_1'] : 0;
+        $isVip2 = isset($info['is_vip_2']) ? $info['is_vip_2'] : 0;
+        $isVip3 = isset($info['is_vip_2']) ? $info['is_vip_2'] : 0;
+        $isVip4 = isset($info['is_vip_2']) ? $info['is_vip_2'] : 0;
+        $vip1Expired = isset($info['vip_1_expired']) ? $info['vip_1_expired'] : '';
+        $vip2Expired = isset($info['vip_2_expired']) ? $info['vip_2_expired'] : '';
+        $vip3Expired = isset($info['vip_3_expired']) ? $info['vip_3_expired'] : '';
+        $vip4Expired = isset($info['vip_4_expired']) ? $info['vip_4_expired'] : '';
         $isVideoVip = isset($info['is_video_vip']) ? $info['is_video_vip'] : 0;
-        $zgVipExpired = isset($info['zg_vip_expired']) ? $info['zg_vip_expired'] : '';
-        $zsbVipExpired = isset($info['zsb_vip_expired']) ? $info['zsb_vip_expired'] : '';
         $videoVipExpired = isset($info['video_vip_expired']) ? $info['video_vip_expired'] : '';
         $openid = isset($info['openid']) ? $info['openid'] : '';
         if (!$info || $info['status'] != 1) {
@@ -732,7 +744,7 @@ class MemberService extends BaseService
         $goodsId = 0;
         $scene = 'vip';
         $expiredTime = time();
-        if ($vipId == 5) {
+        if ($vipId == 11 && $vipType==5) {
             // 单节视频验证是否已付费过
             if (VideoOrderModel::where(['goods_id' => $vipId, 'status' => 2, 'mark' => 1])->where('expired_at', '>', date('Y-m-d H:i:s'))->value('id')) {
                 $this->error = '抱歉,您已购买过该节视频课,请刷新后尝试观看~';
@@ -758,33 +770,53 @@ class MemberService extends BaseService
             $goodsId = $vipId;
             $vipLimitOpen = ConfigService::make()->getConfigByCode('vip_limit_more', 0);
             if ($vipLimitOpen) {
-                // 已开通职高VIP无法再开通
-                if ($vipType == 1 && ($isZgVip == 1 && $zgVipExpired >= date('Y-m-d H:i:s'))) {
-                    $this->error = '抱歉,您的职高VIP未到期,到期后再尝试~';
+                // 已开通VIP1无法再开通
+                if ($vipType == 1 && ($isVip1 == 1 && $vip1Expired >= date('Y-m-d H:i:s'))) {
+                    $this->error = '抱歉,您的医师资格VIP未到期,到期后再尝试~';
                     return false;
                 }
 
-                // 已开通专升本VIP无法再开通
-                if ($vipType == 2 && ($isZsbVip == 1 && $zsbVipExpired >= date('Y-m-d H:i:s'))) {
-                    $this->error = '抱歉,您的专升本VIP未到期,到期后再尝试~';
+                // 已开通VIP2无法再开通
+                if ($vipType == 2 && ($isVip2 == 1 && $vip2Expired >= date('Y-m-d H:i:s'))) {
+                    $this->error = '抱歉,您的护士执业VIP未到期,到期后再尝试~';
+                    return false;
+                }
+
+                // 已开通VIP3无法再开通
+                if ($vipType == 3 && ($isVip3 == 1 && $vip3Expired >= date('Y-m-d H:i:s'))) {
+                    $this->error = '抱歉,您的医学技师VIP未到期,到期后再尝试~';
+                    return false;
+                }
+
+                // 已开通VIP4无法再开通
+                if ($vipType == 4 && ($isVip4 == 1 && $vip4Expired >= date('Y-m-d H:i:s'))) {
+                    $this->error = '抱歉,您的执业药师VIP未到期,到期后再尝试~';
                     return false;
                 }
 
                 // 已开通全部视频VIP无法再开通
-                if ($vipType == 3 && ($isVideoVip && $videoVipExpired >= date('Y-m-d H:i:s'))) {
+                if ($vipType == 5 && ($isVideoVip && $videoVipExpired >= date('Y-m-d H:i:s'))) {
                     $this->error = '抱歉,您的已开通全部视频VIP,请到期后再尝试~';
                     return false;
                 }
             } else {
-                if ($vipType == 1 && $isZgVip == 1 && $zgVipExpired >= date('Y-m-d H:i:s')) {
-                    $expiredTime = strtotime($zgVipExpired);
+                if ($vipType == 1 && $isVip1 == 1 && $vip1Expired >= date('Y-m-d H:i:s')) {
+                    $expiredTime = strtotime($vip1Expired);
+                }
+
+                if ($vipType == 2 && $isVip2 == 1 && $vip2Expired >= date('Y-m-d H:i:s')) {
+                    $expiredTime = strtotime($vip2Expired);
+                }
+
+                if ($vipType == 3 && $isVip3 == 1 && $vip3Expired >= date('Y-m-d H:i:s')) {
+                    $expiredTime = strtotime($vip3Expired);
                 }
 
-                if ($vipType == 2 && $isZsbVip == 1 && $zsbVipExpired >= date('Y-m-d H:i:s')) {
-                    $expiredTime = strtotime($zsbVipExpired);
+                if ($vipType == 4 && $isVip4 == 1 && $vip4Expired >= date('Y-m-d H:i:s')) {
+                    $expiredTime = strtotime($vip4Expired);
                 }
 
-                if ($vipType == 3 && $isVideoVip == 1 && $videoVipExpired >= date('Y-m-d H:i:s')) {
+                if ($vipType == 5 && $isVideoVip == 1 && $videoVipExpired >= date('Y-m-d H:i:s')) {
                     $expiredTime = strtotime($videoVipExpired);
                 }
             }
@@ -792,7 +824,7 @@ class MemberService extends BaseService
 
         // 创建订单
         $orderNo = get_order_num('VP');
-        $remark = $vipType == 3 ? "购买{$vipName}" : "购买{$vipName}VIP";
+        $remark = $vipType == 5 ? "购买{$vipName}" : "购买{$vipName}VIP";
         $order = [
             'order_no' => $orderNo,
             'user_id' => $userId,
@@ -806,7 +838,7 @@ class MemberService extends BaseService
         ];
 
         DB::beginTransaction();
-        $model = $vipId == 5 ? new VideoOrderModel : new OrderModel;
+        $model = $vipId ==11 ? new VideoOrderModel : new OrderModel;
         if (!$orderId = $model::insertGetId($order)) {
             $this->error = '创建VIP订单失败';
             return false;