|
|
|
@ -4,6 +4,49 @@ 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'); |
|
|
|
|