维护客户自动更改状态
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -1,23 +1,38 @@
|
||||
<?php
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: kangkang
|
||||
* @Date: 2020-10-16 14:44:02
|
||||
* @LastEditors: kangkang
|
||||
* @LastEditTime: 2020-11-18 16:42:07
|
||||
*/
|
||||
|
||||
namespace app\manager\model;
|
||||
|
||||
use fastphp\base\Model;
|
||||
use enum\user\User as UserEnum;
|
||||
|
||||
class FollowRecord extends Model
|
||||
{
|
||||
protected $table = 'follow_record';
|
||||
|
||||
/**
|
||||
* @description: 获取最新的跟进记录
|
||||
* @param {*}
|
||||
* @return {*}
|
||||
*/
|
||||
public function getNewRecord($where)
|
||||
{
|
||||
return $this->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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {*}
|
||||
|
||||
135
script/auto_set_follow_status_script.php
Normal file
135
script/auto_set_follow_status_script.php
Normal file
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
|
||||
$is_script = 1;
|
||||
include __DIR__ . '/../index.php';
|
||||
|
||||
use app\manager\model\FollowRecord;
|
||||
use app\manager\model\ProductOrder;
|
||||
use app\manager\model\User;
|
||||
use enum\user\User as UserEnum;
|
||||
|
||||
$user_model = new User;
|
||||
$product_order_model = new ProductOrder;
|
||||
$follow_rcord_model = new FollowRecord;
|
||||
$user_enum = new UserEnum;
|
||||
|
||||
$date1 = date("Y-m-01", time());
|
||||
$date2 = date("Y-m-d H:i:s", time());
|
||||
$flag = date("d", time()) == date("t", time());
|
||||
$date3 = date("Y-m-01", strtotime("-1 month"));
|
||||
$date4 = $flag ? date("Y-m-t H:i:s", strtotime("-1 month")) : date("Y-m-d H:i:s", strtotime("-1 month"));
|
||||
|
||||
$time_where1 = '';
|
||||
$time_where2 = '';
|
||||
|
||||
$user_id_list = [];
|
||||
$register_id_list = [];
|
||||
$cost_user_id_list = [];
|
||||
$uncost_user_id_list = [];
|
||||
$record_data = [];
|
||||
$finish_record_data = [];
|
||||
$unfollow_record_data = [];
|
||||
$last_cost_list = [];
|
||||
|
||||
//本月
|
||||
$time_where1 .= " UpdateTime>='" . $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);
|
||||
Reference in New Issue
Block a user