Sfoglia il codice sorgente

crm book shelf status

zz 5 anni fa
parent
commit
b7c8cc4005

+ 7 - 0
app/Http/Controllers/Wap/Book/ChapterController.php

@@ -15,6 +15,7 @@ use App\Modules\Subscribe\Services\CrmChapterOrderDetailService;
 use App\Modules\Subscribe\Services\CustomChapterOrderService;
 use App\Modules\Subscribe\Services\OrderService;
 use App\Modules\Subscribe\Models\Order;
+use App\Modules\User\Services\CrmUserService;
 use App\Modules\User\Services\ForceGuidePersonAccountService;
 use App\Modules\User\Services\ForceSubscribeUserIService;
 use App\Modules\User\Services\ReadRecordStatsService;
@@ -1580,6 +1581,12 @@ class ChapterController extends BaseController
             }
             return true;
         }
+        //crm上架
+        if($book_info->is_on_shelf == 5){
+            if(!CrmUserService::isCrmUser($this->uid,$this->is_paid)){
+                return true;
+            }
+        }
         return false;
     }
 

+ 13 - 0
app/Modules/Subscribe/Services/BookOrderService.php

@@ -42,6 +42,19 @@ class BookOrderService
     }
 
     /**
+     * 三日内是否订阅短片 crm上架状态需要
+     * @param $uid
+     * @return mixed
+     */
+    public static function isHasBookOrderInThreeDay($uid){
+        $result =  BookOrder::where('uid',$uid)->select('id')->where('created_at','>=',date('Y-m-d',time()-86400*3))->first();
+        if($result){
+            return true;
+        }
+        return false;
+    }
+
+    /**
      * 根据用户id获取用户的订购记录
      * @param $uid  用户id
      * @param string $startTime 开始时间

+ 13 - 0
app/Modules/Subscribe/Services/ChapterOrderService.php

@@ -206,4 +206,17 @@ class ChapterOrderService
 
     }
 
+    //三日内是否有订阅 crm上架需要
+    public static function isHasChapterOrderInThreeDay(int $uid)
+    {
+        $chapterOrder = new ChapterOrder();
+        $chapterOrder->setCurrentTable($uid);
+
+        $info = $chapterOrder->where('uid',$uid)->where('created_at','>=',date('Y-m-d',time()-86400*3))->select('id')->first();
+        if($info){
+            return true;
+        }
+        return false;
+    }
+
 }

+ 11 - 0
app/Modules/User/Models/CrmUser.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Modules\User\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class CrmUser extends Model
+{
+    protected $table = 'crm_users';
+    protected $fillable = ['uid','is_enable'];
+}

+ 53 - 0
app/Modules/User/Services/CrmUserService.php

@@ -0,0 +1,53 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: z-yang
+ * Date: 2019/7/18
+ * Time: 10:09
+ */
+
+namespace App\Modules\User\Services;
+
+use App\Modules\Subscribe\Services\BookOrderService;
+use App\Modules\Subscribe\Services\ChapterOrderService;
+use App\Modules\User\Models\CrmUser;
+
+class CrmUserService
+{
+    public static function isCrmUser($uid,$is_paid){
+        $model = new CrmUser();
+        $crmuser = $model->where('uid',$uid)->where('is_enable',1)->select('id')->first();
+        if($crmuser) return true;
+        //是否充值过
+        if(!$is_paid) return false;
+        //是否领过书币
+        if(!UserBindHkWelfareService::isHasGetCrm($uid)){
+            return false;
+        }
+        //3日内有订阅
+        //本订
+        if(BookOrderService::isHasBookOrderInThreeDay($uid)){
+            self::create($uid);
+            return true;
+        }
+        //章订
+        if(ChapterOrderService::isHasChapterOrderInThreeDay($uid)){
+            self::create($uid);
+            return true;
+        }
+
+        return false;
+    }
+
+    private static function create(int $uid){
+        $model = new CrmUser();
+        $crmuser = $model->where('uid',$uid)->where('is_enable',0)->select('id')->first();
+        if($crmuser){
+            $crmuser->is_enable = 1;
+            $crmuser->save();return ;
+        }
+        $model->uid = $uid;
+        $model->is_enable = 1;
+        $model->save();
+    }
+}

+ 9 - 0
app/Modules/User/Services/UserBindHkWelfareService.php

@@ -20,6 +20,15 @@ class UserBindHkWelfareService
         return   $result;
     }
 
+    public static function isHasGetCrm(int $uid){
+        $result = UserBindHkWelfare::join('users','users.openid','=','user_bind_hk_welfare.openid')
+            ->where('users.id',$uid)
+            ->where('user_bind_hk_welfare.type','CRM')
+            ->select('user_bind_hk_welfare.id','user_bind_hk_welfare.fee','users.distribution_channel_id','users.id as uid')
+            ->first();
+        return   $result;
+    }
+
     public static function getfreeCurrency($uid,$fee=200,$type='BIND_HK',$source=''){
         if(self::isHasGet($uid)){
             return false;