MsgPushController.class.php
2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
/**
* Created by PhpStorm.
* User: Slok
* Date: 2016/10/20
* Time: 14:58
*/
namespace Frontend\Controller\Callback;
use Common\Common\Msg;
use Common\Service\InviteSettingService;
use Common\Service\InviteUserService;
use Common\Service\TaskService;
use Think\Log;
use VcySDK\Config;
class MsgPushController extends AbstractController
{
/**
* 待审批消息推送
* @author zhonglei
*/
public function Index()
{
Log::record(sprintf('---%s %s MSGPUSH START---', QY_DOMAIN, APP_IDENTIFIER), Log::INFO);
// 更新计划任务最后一次执行时间
$taskServ = new TaskService();
$task = $taskServ->get_by_conds([]);
$taskServ->update_by_conds(['task_id' => $task['task_id']], ['runtime' => MILLI_TIME]);
// 获取待审批列表
$inviteUserServ = new InviteUserService();
$list = $inviteUserServ->list_by_conds(['check_status' => InviteUserService::CHECK_STATUS_WAIT]);
$waitCount = count($list);
Log::record("wait count: {$waitCount}", Log::INFO);
if ($waitCount > 0) {
// 获取待审批用户姓名
$namelist = array_column($list, 'username');
$names = implode('、', $namelist);
// 获取审核人uid
$settingServ = new InviteSettingService();
$setting = $settingServ->get_by_conds([]);
$uids = unserialize($setting['check_uids']);
Log::record(sprintf('check uids: %s', var_export($uids, true)), Log::INFO);
if (is_array($uids) && $uids) {
// 消息发至管理助手
$app = Config::instance()->config['pluginIdentifier'];
Config::instance()->setConfig(['pluginIdentifier' => 'yqassistant']);
$msgServ = new Msg();
$msgServ->sendNews($uids, '', [
[
'title' => "您有{$waitCount}条待处理的邀请审批",
'description' => "姓名:{$names}",
'url' => frontUrl('/app/page/contacts/myinvite-audit', ['list_type' => InviteUserService::MY_CHECK_LIST]),
]
]);
// 改回应用标识
Config::instance()->setConfig(['pluginIdentifier' => $app]);
}
}
Log::record(sprintf('---%s %s CREATE TASK END ---', QY_DOMAIN, APP_IDENTIFIER), Log::INFO);
exit('SUCCESS');
}
}