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); } } } } }