diff --git a/application/admin/controller/Client.php b/application/admin/controller/Client.php index b8e0aaf..78a8559 100644 --- a/application/admin/controller/Client.php +++ b/application/admin/controller/Client.php @@ -1051,7 +1051,6 @@ class Client extends Common{ $out_point_log['take_id'] = $result; $out_point_log['change'] = $in_point; $out_point_log['type'] = 0; - $out_point_log['aid'] = $data['aid']; $out_point_log['in_point'] = $admin_point['in_point']; $out_point_log['active_id'] = $data['active_id']; $out_point_log['active_name'] = $activeInfo['name']; diff --git a/application/task/controller/Task.php b/application/task/controller/Task.php index 16ba55f..5209822 100644 --- a/application/task/controller/Task.php +++ b/application/task/controller/Task.php @@ -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');