InstallController.class.php
2.66 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
/**
* 应用安装时的消息回调
* 2017-11-23 17:13:22 可以去掉 初始化 已经挪到了 RPC 内
* User: zhuxun37
* Date: 16/8/11
* Time: 下午3:44
*/
namespace Frontend\Controller\Callback;
use Common\Service\PluginService;
use Think\Log;
class InstallController extends AbstractController
{
// 应用表默认数据
const PLUGIN_DEFAULT_DATA = [
'integral_center' => [
'name' => '积分中心',
'url' => ''
],
];
/**
* 安装消息回调
*
* $this->callBackData 格式如下:
* {
* "epId":"772FF3D97F0000017A0F28797968B245",
* "plPluginid":"D194A216C0A8C7BD2C339C03334A40EE",
* "thirdIdentifier":"QY",
* "eplAvailable":1,
* "epEnumber":"t5thr",
* "qysSuiteid":"tjb2af82c5590f1698",
* "flag":false,
* "corpid": "wx59cc12dbc3a0fe4c",
* "url":"http://thr.vchangyi.com/t5thr/Jobtrain/Frontend/Callback/Install"
* }
*
* @return bool
*/
public function Index()
{
Log::record(sprintf('---%s %s INSTALL START---', QY_DOMAIN, APP_IDENTIFIER), Log::INFO);
Log::record(var_export($this->callBackData, true), Log::INFO);
Log::record(sprintf('---%s %s INSTALL END ---', QY_DOMAIN, APP_IDENTIFIER), Log::INFO);
// 初始化 plugin 表数据
$this->initPluginData();
// 存在安装管理助手 但没安装通讯录 再点击邀请人员 通讯录相关时 会报错的问题
// 所以这里也去通知通讯录安装
try {
$rpc = \Com\Rpc::phprpc(rpcUrl('/Contact/Rpc/Common/Install'));
call_user_func([$rpc, 'index']);
} catch (\Exception $e) {
\Think\Log::record('企业 Domain:' . QY_DOMAIN . '应用初始化失败:' . var_export($e, true));
}
exit('SUCCESS');
}
/**
* 初始化 plugin 表数据
*/
private function initPluginData()
{
// 查询 应用表数据
$pluginServ = new PluginService();
$pluginList = $pluginServ->list_by_conds([
'ap_key' => [
'integral_center'
]
]);
$pluginList = array_combine_by_key($pluginList, 'ap_key');
// 写入 应用表数据
$pluginInsertList = [];
foreach (self::PLUGIN_DEFAULT_DATA as $apKey => $item) {
if (!isset($pluginList[$apKey])) {
$pluginInsertList[] = [
'ap_key' => $apKey,
'name' => $item['name'],
'url' => $item['url']
];
}
}
$pluginServ->insert_all($pluginInsertList);
return true;
}
}