合肥金麓客户积分系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

90 lines
4.1 KiB

<?php
namespace app\task\controller;
use think\Db;
use think\facade\Env;
use think\Controller;
class Task extends Controller{
// 定时任务 每日过期积分
public function outUserPoint(){
$now = time();
//获取所有的用户所有已到期的有剩余积分的数据 求和
$admin_out_points = Db::table('admin_point_log')->field("SUM(use_point) AS user_point, aid")->where(['type'=>0,'status'=>0])->where('use_point','>',0)->where('out_time','<',$now)->group('aid')->select();
foreach ($admin_out_points as $admin_out_point){
//用户的总积分不变 有效积分扣除
$admin_point = Db::table('admin_point') ->where(['aid' => $admin_out_point['aid']])->find();
$update = [
"use_point"=>0,
"status"=>1,
];
if(!$admin_point){
Db::table('admin_point_log')->where("aid",$admin_out_point['aid'])->where(['type'=>0,'status'=>0])->where('use_point','>',0)->where('out_time','<',$now)->update($update);
continue;
}
$out_point = $admin_point['in_point']>=$admin_out_point['use_point']?$admin_out_point['use_point']:$admin_point['in_point'];
Db::table('admin_point') ->where(['aid' => $admin_out_point['aid']])->setDec('in_point',$out_point); //有效积分扣除
Db::table('admin_point') ->where(['aid' => $admin_out_point['aid']])->setInc('out_point',$out_point); //过期积分增加
//历史记录可用积分清0
Db::table('admin_point_log')->where("aid",$admin_out_point['aid'])->where(['type'=>0,'status'=>0])->where('use_point','>',0)->where('out_time','<',$now)->update($update);
//生成过期记录
$out_point_log = [];
$out_point_log['aid'] = $admin_out_point['aid'];
$out_point_log['take_id'] = 0;
$out_point_log['change'] = -$out_point;
$out_point_log['type'] = 2;
$out_point_log['in_point'] = $admin_point['in_point'];
$out_point_log['active_id'] = 0;
$out_point_log['active_name'] = "";
$out_point_log['money'] = 0;
$out_point_log['point'] = 0;
$out_point_log['remark'] = date("Y年m月d日")."到期积分";
$out_point_log['out_time'] = 0;
$out_point_log['add_time'] = time();
Db::table('admin_point_log')->insert($out_point_log);
}
}
// 定时任务 每日监测
public function autotask(){
$daynum = date('d');
$sysinfo = Db::table('system')->where(['id'=>1])->field('maxgetnum,autoday')->find();
$maxgetnum = $sysinfo['maxgetnum'];
$autoday = $sysinfo['autoday'];
if ($daynum == 17) {
// 循环所有用户 每月一日抢客户次数恢复30
$udata = [];
$udata['curgetnum'] = 0;
var_dump('月次数恢复:'. $maxgetnum);
//Db::name('admin')->where('1=1')->update($udata);
}
// 所有客户跟进时间 7日未跟进自动划入公海
// 查询所有未成交的客户
$kehulist = Db::name('crm_leads')->where(['status'=>1,'issuccess'=>-1])->select();
foreach ($kehulist as $key => $value) {
$last_up_time = $value['last_up_time'];
$currentTime=time();//当前时间
if(!empty($last_up_time)){
$cnt=$currentTime-strtotime($last_up_time);//与已知时间的差值
$days = floor($cnt/(3600*24));//算出天数
if ($days >= $autoday && $days < 365) {
// 自动转入公海
//$data['pr_gh_type'] = $pr_gh_type;
var_dump($value['id'].'记录时间:'.$last_up_time . ' ---未跟进天数:'.$days.' ---间隔时间:'.$autoday);exit;
$data['to_gh_time'] = date("Y-m-d H:i:s",time());
$data['status'] = 2;//0-线索,1客户,2公海
$data['id'] = $value['id'];
$result = Db::table('crm_leads')->where(['id'=>$data['id']])->update($data);
}
}
}
}
}