消息提醒提交

This commit is contained in:
wong
2025-09-29 09:44:43 +08:00
parent a923615190
commit 5102f02083
4 changed files with 141 additions and 0 deletions

View File

@@ -0,0 +1,117 @@
<?php
namespace app\command;
use app\chukebao\model\FollowUp;
use app\chukebao\model\NoticeModel;
use app\chukebao\model\ToDo;
use library\ResponseHelper;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\console\input\Option;
use think\Db;
use think\facade\Log;
use think\Queue;
use app\job\AllotFriendJob;
use think\facade\Cache;
class KfNoticeCommand extends Command
{
// 队列名称
protected $queueName = 'kf_notice';
protected function configure()
{
$this->setName('kfNotice:run')
->setDescription('消息通知');
}
protected function execute(Input $input, Output $output)
{
$output->writeln('开始处理消息通知任务...');
$where = [
['isRemind', '=', 0],
['reminderTime', '<=', time()],
];
$notice = [];
Db::startTrans();
try {
$followUp = FollowUp::where($where)->alias('a')
->field('a.*,f.nickname,f.avatar,f.alias,f.wechatId')
->join(['s2_wechat_friend f'], 'a.friendId = f.id')
->select();
if (!empty($followUp)) {
foreach ($followUp as $k => $v) {
switch ($v['type']) {
case 1:
$title = '电话回访';
break;
case 2:
$title = '发送消息';
break;
case 3:
$title = '安排会议';
break;
case 4:
$title = '发送邮件';
break;
default:
$title = '其他';
break;
}
$wechatId = !empty($v['alias']) ? $v['alias'] : $v['wechatId'];
$nickname = $v['nickname'] . '(' . $wechatId . ')';
$message = $nickname . '' . $v['description'];
$notice[] = [
'type' => 2,
'userId' => $v['userId'],
'companyId' => $v['companyId'],
'bindId' => $v['id'],
'title' => $title,
'message' => $message,
'createTime' => $v['reminderTime'],
];
}
FollowUp::where($where)->update(['isRemind' => 1]);
}
$toDo = ToDo::where($where)->alias('a')
->field('a.*,f.nickname,f.avatar,f.alias,f.wechatId')
->join(['s2_wechat_friend f'], 'a.friendId = f.id')
->select();
if (!empty($toDo)) {
foreach ($toDo as $k => $v) {
$wechatId = !empty($v['alias']) ? $v['alias'] : $v['wechatId'];
$nickname = $v['nickname'] . '(' . $wechatId . ')';
$message = $nickname . '' . $v['description'];
$notice[] = [
'type' => 1,
'userId' => $v['userId'],
'companyId' => $v['companyId'],
'bindId' => $v['id'],
'title' => $v['title'],
'message' => $message,
'createTime' => $v['reminderTime'],
];
}
FollowUp::where($where)->update(['isRemind' => 1]);
}
$noticeModel = new NoticeModel();
$noticeModel->insertAll($notice);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
return false;
}
}
}