diff --git a/app/manager/controller/UserFollow.php b/app/manager/controller/UserFollow.php index 95f1139..f1d10d3 100644 --- a/app/manager/controller/UserFollow.php +++ b/app/manager/controller/UserFollow.php @@ -5,7 +5,7 @@ * @Author: kangkang * @Date: 2020-10-13 19:52:37 * @LastEditors: Please set LastEditors - * @LastEditTime: 2020-11-20 15:17:18 + * @LastEditTime: 2020-11-23 15:47:36 */ namespace app\manager\controller; @@ -249,9 +249,11 @@ class UserFollow extends Controller $user_model = new User; $user_enum = new UserEnum; if ($user_model->updateOne(['Id' => $data['user_id']], ['follow_status' => $data['status']])) { + $follow_rcord->updateOne(['user_id'=>$data['user_id']],['active' => 0]); $info = []; $info['user_id'] = $data['user_id']; $info['op_user'] = $this->userinfo['OperaterID']; + $info['follow_status'] = $data['status']; $info['record'] = $data['old_status'] . '=>' . $user_enum::$FollowStatus[$data['status']]; $info['remark'] = $data['remark']; $follow_rcord->add($info); diff --git a/app/manager/model/FollowRecord.php b/app/manager/model/FollowRecord.php index df196c1..b4ad7c4 100644 --- a/app/manager/model/FollowRecord.php +++ b/app/manager/model/FollowRecord.php @@ -1,23 +1,38 @@ where($where)->order()->limit('3')->fetchAll(); } + + /** + * @description: 获取待跟进状态超过15天 + * @param {*} + * @return {*} + */ + public function getOverTime() + { + $user_enum = new UserEnum; + $time = date('Y-m-d H:i:s', time() - (86400 * 15)); + $where = [ + 'active' => 1, + 'follow_status' => ['in', $user_enum::$Unfollow], + 'create_time' => ['<',$time] + ]; + return $this->field('user_id,follow_status')->where($where)->fetchAll(); + } } diff --git a/enum/user/User.php b/enum/user/User.php index adb9eb3..9d87e85 100644 --- a/enum/user/User.php +++ b/enum/user/User.php @@ -4,8 +4,8 @@ * @version: * @Author: kangkang * @Date: 2020-10-22 15:35:49 - * @LastEditors: kangkang - * @LastEditTime: 2020-11-18 17:38:12 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2020-11-23 11:42:37 */ namespace enum\user; @@ -26,6 +26,20 @@ class User 11 => '已完成', ]; + public static $UnfollowNotBuy = 1; + public static $FollowOverTimeNotBuy = 2; + public static $UnfollowBuyReduce = 3; + public static $FollowOverTimeBuyReduce = 4; + public static $LostReduce = 5; + public static $LostNotUsed = 6; + public static $LostPrice = 7; + public static $LostProduct = 8; + public static $LostAuto = 9; + public static $HighUser = 10; + public static $Finish = 11; + + public static $Unfollow = [1,3]; + /** * @description: 格式化方便选择处理 * @param {*} diff --git a/script/auto_set_follow_status_script.php b/script/auto_set_follow_status_script.php new file mode 100644 index 0000000..4354a1f --- /dev/null +++ b/script/auto_set_follow_status_script.php @@ -0,0 +1,135 @@ +='" . $date1 . "' and UpdateTime<='" . $date2 . "' "; +$time_where2 .= " UpdateTime>='" . $date3 . "' and UpdateTime<='" . $date4 . "' "; + +//获取本月注册的用户 +$register_user_list = $user_model->getAllManagerUser([]); + +foreach ($register_user_list as $info) { + + //本月注册用户 + if (strtotime($info['CreateTime']) >= strtotime($date1) && strtotime($info['CreateTime']) <= strtotime($date2)) { + $register_id_list[] = $info['Id']; + } else { + $user_id_list[] = $info['Id']; + } +} +//本月注册用户消费 +$user_month_cost_list = $product_order_model->getPreMonthCost($register_id_list, $time_where1); + +foreach ($user_month_cost_list as $info) { + $cost_user_id_list[] = $info['UserId']; +} + + +//老用户本月消费 +$user_now_cost_list = $product_order_model->getPreMonthCost($user_id_list, $time_where1); +//老用户上月消费 +$user_last_cost_list = $product_order_model->getPreMonthCost($user_id_list, $time_where2); + +foreach ($user_last_cost_list as $cost){ + $last_cost_list[$cost['UserId']] = $cost; +} + +foreach ($user_now_cost_list as $cost){ + $user_follow_status = $user_model->getOne(['Id'=>$cost['UserId']],'follow_status')['follow_status']; + if (isset($last_cost_list[$cost['UserId']])){ + if($last_cost_list[$cost['UserId']]['money']>$cost['money']){ + $temp = []; + $temp['user_id'] = $cost['UserId']; + $temp['op_user'] = $this->userinfo['OperaterID']; + $info['follow_status'] = $user_enum::$UnfollowBuyReduce; + $temp['record'] = $user_enum::$FollowStatus[$user_follow_status].'=>'.$user_enum::$FollowStatus[$user_enum::$UnfollowBuyReduce]; + $temp['remark'] = '系统自动更改状态'; + $record_data[] = $temp; + $uncost_user_id_list[] = $cost['UserId']; + } else { + $temp = []; + $temp['user_id'] = $cost['UserId']; + $temp['op_user'] = $this->userinfo['OperaterID']; + $info['follow_status'] = $$user_enum::$Finish; + $temp['record'] = $user_enum::$FollowStatus[$user_follow_status].'=>'.$user_enum::$FollowStatus[$user_enum::$Finish]; + $temp['remark'] = '系统自动更改状态'; + $record_data[] = $temp; + //已完成 + $cost_user_id_list[] = $cost['UserId']; + } + } else { + //记录需要将状态·修改为 待跟进-消费减少 + $uncost_user_id_list[] = $cost['UserId']; + } +} + +//获取待跟进状态超过15天 +$over_15_list = $follow_rcord_model->getOverTime(); +foreach ($over_15_list as $info){ + switch($info['follow_status']){ + case $user_enum::$UnfollowNotBuy: + $temp = []; + $temp['user_id'] = $info['user_id']; + $temp['op_user'] = $this->userinfo['OperaterID']; + $info['follow_status'] = $user_enum::$FollowOverTimeNotBuy; + $temp['record'] = $user_enum::$FollowStatus[$info['follow_status']].'=>'.$user_enum::$FollowStatus[$user_enum::$FollowOverTimeNotBuy]; + $temp['remark'] = '系统自动更改状态'; + $record_data[] = $temp; + break; + case $user_enum::$UnfollowBuyReduce: + $temp = []; + $temp['user_id'] = $info['user_id']; + $temp['op_user'] = $this->userinfo['OperaterID']; + $info['follow_status'] = $user_enum::$FollowOverTimeBuyReduce; + $temp['record'] = $user_enum::$FollowStatus[$info['follow_status']].'=>'.$user_enum::$FollowStatus[$user_enum::$FollowOverTimeBuyReduce]; + $temp['remark'] = '系统自动更改状态'; + $record_data[] = $temp; + break; + } +} + + + +$user_model->updateOne(['Id' => ['in', $cost_user_id_list]], ['follow_status' => $user_enum::$Finish]); +$user_model->updateOne(['Id' => ['in', $uncost_user_id_list]], ['follow_status' => $user_enum::$UnfollowBuyReduce]); +//未跟进=》已完成 +foreach ($cost_user_id_list as $info) { + $temp = []; + $temp['user_id'] = $info; + $temp['op_user'] = $this->userinfo['OperaterID']; + $info['follow_status'] = $user_enum::$Finish; + $temp['record'] = $user_enum::$FollowStatus[$user_enum::$UnfollowNotBuy].'=>'.$user_enum::$FollowStatus[$user_enum::$Finish]; + $temp['remark'] = '系统自动更改状态'; + $record_data[] = $temp; +} +$follow_rcord_model>addAll($record_data); \ No newline at end of file