InviteEmailController.class.php
2.52 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
<?php
/**
* 发送管理员邀请邮件
*/
namespace Apicp\Controller\Admin;
use Common\Common\Cache;
use Common\Common\ShortUrl;
use Common\Common\Sms;
use VcySDK\Adminer;
use VcySDK\Service;
class InviteEmailController extends AbstractAnonymousController
{
public function Index()
{
$eaId = I('post.eaId');
if (empty($eaId)) {
E(L('_ERR_PLS_SUBMIT_ID', ['name' => 'ID']));
return false;
}
try {
$enterpriseData = Cache::instance()->get(
'Common.EnterpriseDetail',
'',
['expire' => cfg('ENTERPRISE_DETAIL_CACHE_EXPIRE')]
);
$adminerSdk = new Adminer(Service::instance());
$adminer = $adminerSdk->fetch(['eaId' => $eaId]);
$sdk = new Adminer(Service::instance());
$aiaToken = md5(NOW_TIME . QY_DOMAIN . $eaId . random(8));
$mobileFrontUrl = oaUrl(
'Frontend/Index/InviteEmail/Index',
['aiaToken' => $aiaToken]) . '?_identifier=common';
$eaMobile = substr(
$this->_login->user['eaMobile'], 0, 3) . '****' . substr($this->_login->user['eaMobile'], - 4);
$inviteEmailData = [
'eaId' => $eaId,
'mcTplName' => Adminer::INVITE_EMAIL_TYPE_INVITE,
'aiaToken' => $aiaToken,
'mcSubject' => '畅移员圈管理员邀请',
'mcVars' => [
"%adminer_name%" => $adminer['eaRealname'],
"%qy_name%" => $enterpriseData['epName'],
"%user_name%" => $this->_login->user['eaRealname'],
"%adminer_mobile%" => $eaMobile,
"%qrcode%" => $enterpriseData['corpWxqrcode'],
"%date%" => rgmdate(NOW_TIME, 'Y-m-d'),
"%url%" => $mobileFrontUrl,
],
'smsChannel' => Sms::CHANNEL_SENDCLOUD,
'smsMessage' => json_encode([
'username' => $adminer['eaRealname'],
'adminname' => $this->_login->user['eaRealname'],
'epname' => $enterpriseData['epName'],
'url' => ShortUrl::create($mobileFrontUrl)
]),
'smsTemplateId' => Sms::SMS_TMP_ID_ADMINCP_ADMINER_INVITE
];
$sdk->inviteSendInvitation($inviteEmailData);
} catch (\Exception $e) {
E($e->getMessage());
return false;
}
return true;
}
}