Просмотр исходного кода

wesmiler 更新第5期更新代码合并

wesmiler 4 лет назад
Родитель
Сommit
3bed97eb3f

+ 1 - 1
app/api/controller/MemberController.php

@@ -57,7 +57,7 @@ class MemberController extends BaseController
         $type = input('type', 0);
         $id = input('id', 0); // 当前浏览的用户ID
         $userId = $this->userId;
-        $cacheKey = "caches:member:temp:{$userId}_{$type}";
+
         $memberInfo = PRedis::get($cacheKey);
         if($memberInfo){
             showJson(1005, 1001, $memberInfo);

+ 25 - 12
app/api/controller/TaskController.php

@@ -367,28 +367,31 @@ class TaskController extends Controller
             showJson(1004, 2009, '', "\n");
         }
 
-        if(date("H:i") >= '06:00'){
+        if(date("H:i") >= '06:00' && date("H:i") <= '23:00'){
             showJson(1004, '非更新时间段', '', "\n");
         }
 
         $count = 0;
         $datas = [];
         $result = PoolModel::alias('p')
-//            ->where('p.expire_at', '<', date('Y-m-d H:i:s'))
+            ->where('p.expire_at', '>', date('Y-m-d H:i:s', time() - 7*86400))
             ->where(['p.type' => 0, 'p.status' => 1])
             ->field('id,sale_uid,user_id,followup_num,follow_time,expire_at')
             ->limit(100)
-            ->order('p.expire_at asc,p.id asc')
+            ->order('p.stop_time asc,p.expire_at asc')
             ->select()
-            ->each(function ($item, $k) use ($count, $datas) {
+            ->each(function ($item, $k) use (&$count, &$datas) {
                 $userId = isset($item['user_id']) ? $item['user_id'] : 0;
+                $saleUid = isset($item['sale_uid']) ? $item['sale_uid'] : 0;
                 $expireAt = isset($item['expire_at']) ? $item['expire_at'] : '';
                 $followTime = isset($item['follow_time']) ? $item['follow_time'] : '';
                 $followTime = $followTime && $followTime != '0000-00-00 00:00:00'? $followTime : '';
-                $updateData = ['updated_at' => date('Y-m-d H:i:s')];
-
+                $updateData = ['updated_at' => date('Y-m-d H:i:s'),'stop_time'=> date('Y-m-d H:i:s')];
                 // 到期数据处理
+                $state = false;
                 if($expireAt && $expireAt <= date('Y-m-d H:i:s')){
+                    $updateData['status'] = 2;
+                    $updateData['type'] = 2;
                     $data = [
                         'sale_uid' => 0,
                         'user_id' => $userId,
@@ -408,11 +411,11 @@ class TaskController extends Controller
                     }
 
                     // 到期未跟进
-                    $updateData['stop_time'] = date('Y-m-d H:i:s');
                     if($item['followup_num'] <= 0 || ($followTime && $followTime <date('Y-m-d H:i:s'))){
                         $updateData['agency'] = 3;
+                        $state = true;
                     }
-                    $count++;
+
                 }else if ($expireAt){
                     // 今日坠海
                     $time = strtotime($expireAt);
@@ -421,29 +424,39 @@ class TaskController extends Controller
                     if($followTime < date('Y-m-d',  $dayTime+ 86400) && $followTime >= date('Y-m-d')){
                         $updateData['agency'] = 1;
                         $item['expire_text'] = '今日需跟进';
+                        $state = true;
                     }else if($followTime < date('Y-m-d',  $dayTime+ 2*86400) && $followTime >= date('Y-m-d', $dayTime + 86400)){
                         $updateData['agency'] = 2;
                         $item['expire_text'] = '明日需跟进';
+                        $state = true;
                     }else if($followTime < date('Y-m-d')){
                         $updateData['agency'] = 3;
                         $item['expire_text'] = '到期未跟进';
+                        $state = true;
                     }
 
                     if($time >= time() && $time < $dayTime + 86400){
                         $item['expire_text'] = '今天坠海';
                         $updateData['agency'] = 4;
+                        $state = true;
                     }else if($time>=$dayTime+86400 && $time < $dayTime + 2 * 86400){
                         $item['expire_text'] = '明天坠海';
                         $updateData['agency'] = 5;
-                    }else if($time>=$dayTime+7*86400 && $time < $dayTime + 15 * 86400){
+                        $state = true;
+                    }else if($time>=$dayTime+7*86400 && $time < $dayTime + 8 * 86400){
                         $item['expire_text'] = '一礼拜后坠海';
+                        $updateData['agency'] = 6;
+                        $state = true;
+                    }else if ($time >= $dayTime + 8 * 86400){
+                        $item['expire_text'] = '超过7天';
+                        $updateData['agency'] = 7;
+                        $state = true;
                     }
-                    $updateData = [];
 
                 }
 
                 // 更新待办事项
-                if($updateData){
+                if($updateData && $state == true){
                     $count++;
                     PoolModel::where(['id' => $item['id']])->update($updateData);
                 }
@@ -454,7 +467,7 @@ class TaskController extends Controller
         }
 
         // 缓存
-        PRedis::set("caches:sales:expired", ['datas'=> $datas,'result'=> $result, 'date'=> date('Y-m-d H:i:s')], 86400);
+        PRedis::set("caches:sales:expired", ['count'=> $count,'datas'=> $datas,'result'=> $result, 'date'=> date('Y-m-d H:i:s')], 86400);
         showJson(1005, 1008, ['count' => $count, 'date' => date('Y-m-d H:i:s')]);
 
     }

+ 1 - 1
app/weixin/model/UserCollect.php

@@ -222,7 +222,7 @@ class UserCollect extends Model
         if($dataList){
             $dataList['total'] = $query->count();
         }
-        PRedis::set($cacheKey, $dataList, 30);
+        PRedis::set($cacheKey, $dataList, rand(2,5));
         return $dataList;
     }
 

+ 7 - 2
app/weixin/service/Member.php

@@ -410,6 +410,11 @@ class Member
             ->where('created_at','<', date('Y-m-01 01:00:00'))
             ->sum('money');
 
+        // 退还的爱心
+        $totalCost1 = AccountLog::where(['user_id'=> $userId,'type'=>3,'status'=> 2,'account_type'=> 1,'change_type'=>1])
+            ->where('created_at','>=', $time)
+            ->where('created_at','<', date('Y-m-01 01:00:00'))
+            ->sum('money');
 
         $totalSign = AccountLog::where(['user_id'=> $userId,'type'=> 12,'status'=> 2])
             ->where('created_at','>=', $time)
@@ -418,8 +423,8 @@ class Member
 
         // 清除还有未消费爱心
         $redheart = isset($info['redheart'])? $info['redheart'] : 0;
-        $clearRedheart = ($totalSign-$totalCost);
-        PRedis::set($cacheKey, ['first' => $firstSign,'cost'=> $totalCost,'sign'=> $totalSign,'user'=> $info], 120);
+        $clearRedheart = ($totalSign+$totalCost1-$totalCost);
+        PRedis::set($cacheKey, ['first' => $firstSign,'cost'=> $totalCost,'refund'=>$totalCost1,'sign'=> $totalSign,'user'=> $info,'time'=>$time,'month'=>$month], 120);
         if($clearRedheart>0 && $clearRedheart <= $redheart){
             db()->startTrans();
             if(!db()->name('user')->where(['id' => $userId])->setDec('redheart',$clearRedheart)){

+ 2 - 2
public/themes/admin_simpleboot3/admin/pools/setting.html

@@ -15,8 +15,8 @@
                             <label for="input-site-name" class="col-sm-2 control-label"><span
                                     class="form-required">*</span>坠海时长/天</label>
                             <div class="col-md-4 col-sm-6">
-                                <input type="text" class="form-control" id="input-site-name" name="options[pool_expire]"
-                                       value="{$site_info.pool_expire|default='7'}">
+                                <input type="text" class="form-control" id="input-site-name" name="options[pool_time]"
+                                       value="{$site_info.pool_time|default='7'}">
                             </div>
                         </div>
                         <div class="form-group">

+ 1 - 4
public/themes/admin_simpleboot3/admin/sales/tips.html

@@ -101,12 +101,9 @@
     </form>
     <form class="form-horizontal js-ajax-form margin-top-20" role="form">
         <div class="table-actions tags">
+            <a  href="{:url('admin/sales/tips',['intention'=> -1])}" <if condition="$params.intention eq -1">class="btn btn-primary margin-left-10"<else>class="btn btn-default margin-left-10"</if>>全部({$total})</a>
             <foreach name="tagCounts" item="vo" key="k">
-                <if condition="$k gt 0">
                     <a  href="{:url('admin/sales/tips',['intention'=> $k])}" <if condition="$k eq $params.intention">class="btn btn-primary margin-left-10"<else>class="btn btn-default margin-left-10"</if>>{$vo.name}({$vo.num})</a>
-                <else>
-                    <a  href="{:url('admin/sales/tips',['intention'=> $k])}" <if condition="$k eq $params.intention">class="btn btn-primary margin-left-10"<else>class="btn btn-default margin-left-10"</if>>全部({$total})</a>
-                </if>
             </foreach>
         </div>
         <table class="table table-hover table-bordered">

+ 13 - 13
vendor/thinkcmf/cmf-app/src/admin/controller/SalesController.php

@@ -72,7 +72,7 @@ class SalesController extends AdminBaseController
         // 获取分页显示
         $page = $list->render();
         $datas = $list ? $list->toArray() : [];
-        $tags = ['','意向强','有意向','完全不考虑','已到店','已成交','待沟通','其他'];
+        $tags = ['新分配','意向强','有意向','完全不考虑','已到店','已成交','待沟通','其他'];
         $agencys = ['无','今天需跟进','明天需跟进','到期未跟进','今天坠海','明天坠海','一礼拜后坠海','其他'];
         if ($datas) {
             $educations = config('weixin.educations');
@@ -132,7 +132,7 @@ class SalesController extends AdminBaseController
                 }else if($time>=$dayTime+86400 && $time < $dayTime + 2 * 86400){
                     $item['expire_text'] = '明天坠海';
                     $item['is_expired'] = 1;
-                }else if($time>=$dayTime+7*86400 && $time < $dayTime + 15 * 86400){
+                }else if($time>=$dayTime+7*86400 && $time < $dayTime + 8 * 86400){
                     $item['expire_text'] = '一礼拜后坠海';
                 }else if($expireTime <= 0 ){
                     $item['mobile'] = formatStr($item['mobile']);
@@ -141,7 +141,7 @@ class SalesController extends AdminBaseController
                 }
 
                 $intention = isset($item['intention'])? $item['intention'] : 0;
-                $item['intention_text'] = $intention && isset($tags[$intention])? $tags[$intention] : '';
+                $item['intention_text'] = $intention>=0 && isset($tags[$intention])? $tags[$intention] : '';
                 $item['reg_time'] = $item['reg_time']? date('Y-m-d H:i:s', $item['reg_time']) : '';
 
             }
@@ -174,7 +174,7 @@ class SalesController extends AdminBaseController
 
         $params = input();
         $params['sort'] = isset($params['sort'])? $params['sort'] : 0;
-        $params['intention'] = isset($params['intention'])? $params['intention'] : 0;
+        $params['intention'] = isset($params['intention'])? $params['intention'] : -1;
         $params['sort_type'] = isset($params['sort_type'])? $params['sort_type'] : 'desc';
         $sort = $params['sort']==1? "p.create_time {$params['sort_type']}" : ($params['sort']==2? "p.expire_at {$params['sort_type']}" : ($params['sort'] == 4? "u.create_time {$params['sort_type']}" : "p.last_follow_time {$params['sort_type']}"));
         $list  = PoolModel::alias('p')
@@ -189,8 +189,8 @@ class SalesController extends AdminBaseController
                     $query->where(['u.id'=> $uid]);
                 }
 
-                $intention = isset($params['intention'])? intval($params['intention']) : 0;
-                if($intention){
+                $intention = isset($params['intention'])? intval($params['intention']) : -1;
+                if($intention>=0){
                     $query->where('p.intention',$intention);
                 }
 
@@ -216,7 +216,7 @@ class SalesController extends AdminBaseController
         // 获取分页显示
         $page = $list->render();
         $datas = $list ? $list->toArray() : [];
-        $tags = ['','意向强','有意向','完全不考虑','已到店','已成交','待沟通','其他'];
+        $tags = ['新分配','意向强','有意向','完全不考虑','已到店','已成交','待沟通','其他'];
         $agencys = ['无','今天需跟进','明天需跟进','到期未跟进','今天坠海','明天坠海','一礼拜后坠海','其他'];
         if ($datas) {
             $educations = config('weixin.educations');
@@ -276,7 +276,7 @@ class SalesController extends AdminBaseController
                 }else if($time>=$dayTime+86400 && $time < $dayTime + 2 * 86400){
                     $item['expire_text'] = '明天坠海';
                     $item['is_expired'] = 1;
-                }else if($time>=$dayTime+7*86400 && $time < $dayTime + 15 * 86400){
+                }else if($time>=$dayTime+7*86400 && $time < $dayTime + 8 * 86400){
                     $item['expire_text'] = '一礼拜后坠海';
                 }else if($expireTime <= 0 ){
                     $item['mobile'] = formatStr($item['mobile']);
@@ -285,7 +285,7 @@ class SalesController extends AdminBaseController
                 }
 
                 $intention = isset($item['intention'])? $item['intention'] : 0;
-                $item['intention_text'] = $intention && isset($tags[$intention])? $tags[$intention] : '';
+                $item['intention_text'] = $intention>=0 && isset($tags[$intention])? $tags[$intention] : '';
                 $item['reg_time'] = $item['reg_time']? date('Y-m-d H:i:s', $item['reg_time']) : '';
 
             }
@@ -379,7 +379,7 @@ class SalesController extends AdminBaseController
         // 获取分页显示
         $page = $list->render();
         $datas = $list ? $list->toArray() : [];
-        $tags = ['','意向强','有意向','完全不考虑','已到店','已成交','待沟通','其他'];
+        $tags = ['新分配','意向强','有意向','完全不考虑','已到店','已成交','待沟通','其他'];
         $agencys = ['无','今天需跟进','明天需跟进','到期未跟进','今天坠海','明天坠海','一礼拜后坠海','其他'];
         if ($datas) {
             $educations = config('weixin.educations');
@@ -439,7 +439,7 @@ class SalesController extends AdminBaseController
                 }else if($time>=$dayTime+86400 && $time < $dayTime + 2 * 86400){
                     $item['expire_text'] = '明天坠海';
                     $item['is_expired'] = 1;
-                }else if($time>=$dayTime+7*86400 && $time < $dayTime + 15 * 86400){
+                }else if($time>=$dayTime+7*86400 && $time < $dayTime + 8 * 86400){
                     $item['expire_text'] = '一礼拜后坠海';
                 }else if($expireTime <= 0 ){
                     $item['mobile'] = formatStr($item['mobile']);
@@ -448,7 +448,7 @@ class SalesController extends AdminBaseController
                 }
 
                 $intention = isset($item['intention'])? $item['intention'] : 0;
-                $item['intention_text'] = $intention && isset($tags[$intention])? $tags[$intention] : '';
+                $item['intention_text'] = $intention>=0 && isset($tags[$intention])? $tags[$intention] : '';
                 $item['reg_time'] = $item['reg_time']? date('Y-m-d H:i:s', $item['reg_time']) : '';
                 $item['follow_time'] = $item['follow_time'] && $item['follow_time'] != '0000-00-00 00:00:00'? date('Y/m/d', strtotime($item['follow_time'])) : date('Y/m/d');
 
@@ -526,7 +526,7 @@ class SalesController extends AdminBaseController
             ->field('u.id,u.openid,u.avatar,u.sex,u.birthday,u.user_nickname,u.real_name,p.follow_time,p.id as pool_id,p.intention,p.remark')
             ->where(['p.id'=> $id, 'u.user_type'=> 2])
             ->find();
-        $tags = ['','意向强','有意向','完全不考虑','已到店','已成交','待沟通','其他'];
+        $tags = ['新分配','意向强','有意向','完全不考虑','已到店','已成交','待沟通','其他'];
         if($info){
             $info['follow_time'] = $info['follow_time'] && $info['follow_time'] != '0000-00-00 00:00:00'? date('Y-m-d', strtotime($info['follow_time'])) : date('Y-m-d');
         }

+ 57 - 2
vendor/thinkcmf/cmf-app/src/user/model/PoolModel.php

@@ -39,12 +39,27 @@ class PoolModel extends Model
             'type'=> $type,
             'followup_num'=> 0,
             'intention'=> 0,
+            'agency'=> 0,
             'create_time'=> date('Y-m-d H:i:s'),
             'updated_at'=> date('Y-m-d H:i:s'),
             'expire_at'=> $poolTime==0? null : $expireAt,
             'status'=> 1,
         ];
 
+        if($expireAt>0){
+            $time = strtotime($expireAt);
+            $dayTime = strtotime(date('Y-m-d'));
+            if($time >= time() && $time < $dayTime + 86400){
+                $data['agency'] = 4;
+            }else if($time>=$dayTime+86400 && $time < $dayTime + 2 * 86400){
+                $data['agency'] = 5;
+            }else if($time>=$dayTime+7*86400 && $time < $dayTime + 8 * 86400){
+                $data['agency'] = 6;
+            }else if($time >= $dayTime + 8 * 86400 ){
+                $data['agency'] = 7;
+            }
+        }
+
         if(!$info = PoolModel::check($saleUid, $userId)){
             return PoolModel::insertGetId($data);
         }else{
@@ -85,6 +100,7 @@ class PoolModel extends Model
                 'type'=> 0,
                 'followup_num'=> 0,
                 'intention'=> 0,
+                'agency'=> 0,
                 'create_time'=> date('Y-m-d H:i:s'),
                 'updated_at'=> date('Y-m-d H:i:s'),
                 'expire_at'=> $poolTime==0? null : $expireAt,
@@ -94,6 +110,21 @@ class PoolModel extends Model
                 'status'=> 1,
             ];
 
+            if($expireAt>0){
+                $time = strtotime($expireAt);
+                $dayTime = strtotime(date('Y-m-d'));
+                if($time >= time() && $time < $dayTime + 86400){
+                    $data['agency'] = 4;
+                }else if($time>=$dayTime+86400 && $time < $dayTime + 2 * 86400){
+                    $data['agency'] = 5;
+                }else if($time>=$dayTime+7*86400 && $time < $dayTime + 8 * 86400){
+                    $data['agency'] = 6;
+                }else if($time >= $dayTime + 8 * 86400 ){
+                    $data['agency'] = 7;
+                }
+            }
+
+
             if(!PoolModel::check($saleUid, $id)){
                 $datas[] = $data;
             }else{
@@ -153,7 +184,6 @@ class PoolModel extends Model
 
         $datas = [];
         $counts = $counts? $counts->toArray() : [];
-        //var_dump($counts);
         return $counts;
     }
 
@@ -260,7 +290,7 @@ class PoolModel extends Model
      * @return PoolModel|bool|mixed
      */
     public static function checkData($userId){
-        $cacheKey = "caches:pools:sale_2_{$userId}";
+        $cacheKey = "caches:pools:sale_2_{$userId}";
         $info = PRedis::get($cacheKey);
         if($info){
             return $info;
@@ -272,4 +302,29 @@ class PoolModel extends Model
 
         return $info;
     }
+
+    /**
+     * 是否有效
+     * @param $userId
+     * @return array|bool|\PDOStatement|string|Model|null
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public static function checkExpire($userId){
+        $cacheKey = "caches:pools:sale_1_{$userId}";
+        $info = PRedis::get($cacheKey);
+        if($info){
+            return $info;
+        }
+
+        if($info = PoolModel::where(['user_id'=> $userId])
+            ->where('expire_at','>',date('Y-m-d H:i:s'))
+            ->where('sale_uid','>',0)
+            ->order('expire_at desc')->find()){
+            PRedis::set($cacheKey, $info, rand(300, 600));
+        }
+
+        return $info;
+    }
 }