定时任务:提醒24小时内未办理的用户,每两小时提醒

38 阅读1分钟

image.png


<?php

namespace app\admin\cron;

use app\notice\logic\NoticeDetail;
use think\Db;

class FlowToSms
{
    public function execute()
    {
        //当前时间不在当晚上9点到第二天早上7点
        $currentHour = (int)date('H');
        if (($currentHour >= 21) || ($currentHour < 7)) {
            return '夜间不提醒(21点至早上7点)';
        }
        $type = [3];
        $flowData = Db::query("SELECT
	`flow_run_prcs`.`id`,
	`flow_run_prcs`.`run_id`,
	`flow_run_prcs`.`flow_id`,
	`flow_run_prcs`.`prcs_name`,
	`flow_run_prcs`.`prcs_id`,
	`flow_run_prcs`.`user_id`,
	`flow_run_prcs`.`user_name`,
	`flow_run_prcs`.`real_name`,
	`flow_run_prcs`.`status`,
	`flow_run_prcs`.`pid`,
	`flow_run_prcs`.`up_prcs`,
	`flow_run_prcs`.`end_time`,
	`flow_run_prcs`.`create_time`,
	`flow_run_prcs`.`update_time`,
	`flow_run_prcs`.`is_end_prcs`,
	`flow_run_prcs`.`is_delete`,
	`flowRun`.`id` AS `flowRun__id`,
	`flowRun`.`flow_id` AS `flowRun__flow_id`,
	`flowRun`.`run_name` AS `flowRun__run_name`,
	`UpRunPrcs`.`user_id` AS `up_user_id`,
	`UpRunPrcs`.`real_name` AS `up_real_name`,
	`UpRunPrcs`.`prcs_name` AS `up_prcs_name` 
FROM
	`zztd_flow_run_prcs` `flow_run_prcs`
	LEFT JOIN `zztd_flow_run` `flowRun` ON `flow_run_prcs`.`run_id` = `flowRun`.`id`
	LEFT JOIN `zztd_flow_run_prcs` `UpRunPrcs` ON `flow_run_prcs`.`pid` = `UpRunPrcs`.`id` 
WHERE
	`flow_run_prcs`.`status` = 0 
	AND `flow_run_prcs`.`is_delete` = 0 
	AND `flow_run_prcs`.`end_time` = 0 
	AND `flow_run_prcs`.`up_prcs` <> ''
	AND `flow_run_prcs`.`create_time` < UNIX_TIMESTAMP() - 86400
	ORDER BY id DESC");
        //计数发了多少条
        $count = count($flowData);
        foreach ($flowData as $flow){
            $title = "请办理流程!流水号:{$flow['run_id']},标题: {$flow['flowRun__run_name']},转交人:{$flow['up_real_name']},当前步骤:{$flow['up_prcs_name']}";
            file_put_contents('sms_log.txt',$title.PHP_EOL,FILE_APPEND);
            NoticeDetail::send($type,$flow['user_id'],$title,$flow['up_user_id'],9,$flow['run_id']);
        }
        //转发消息提醒 请办理流程!流水号:{流水号},标题: {流程名称},转交人:{转交人},当前步骤:{当前步骤}
//        NoticeDetail::send(3,$userIds,$title,$addUserId,9);
        return '提醒了'.$count.'条消息';
    }
}