123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace wx\offiaccount\client;
- use app\model\Employee;
- use app\model\Org;
- use app\model\User;
- use think\facade\Cache;
- use wx\offiaccount\msg\Template;
- use app\model\Setting;
- /**
- * 模板消息集合
- */
- class TmpMsg
- {
- /**
- * 管理层通知
- *
- * {{first.DATA}}
- * 服务类型:{{keyword1.DATA}}
- * 处理状态:{{keyword2.DATA}}
- * 反馈时间:{{keyword3.DATA}}
- * {{remark.DATA}}
- *
- * 示例:
- * 行为通知:
- * 服务类型:客户信息编辑/客户确认到店/客户签单/转发素材
- * 处理状态:员工张三对客户李四信息编辑/客户确认到店/客户签单/转发素材
- * 反馈时间:2023/4/4
- * 请悉知
- *
- */
- static public function sendMsgToLeader($data, $orgId)
- {
- //查询企业是否开启发送通知
- $root_id = Employee::where([['org_id','=',$orgId],['state', '=', '在职']])->value('root_id');
- $magnotify = Setting::where([['root_id', '=', $root_id], ['name', '=', 'magnotify']])->find();
- if (empty($magnotify) || (!empty($magnotify) && $magnotify->content == 0)) return;
- // 查找部门领导
- $p = Org::where(['id' => $orgId])->field('path,name,pid')->find();
- $l = explode('-', rtrim($p['path'], '-'));
- if(in_array($data['keyword1'],['客户信息编辑','转发素材'])){
- //获取员工部门及上级部门
- $shangorg_name = '';
- if($p['pid']) $shangorg_name = Org::where(['id'=>$p['pid']])->value('name');
- $twolevel_orgname = !empty($shangorg_name) ? $shangorg_name.'/'.$p['name'] : $p['name'];
- $data['keyword2'] = $twolevel_orgname.$data['keyword2'];
- }
- $uOp = Employee::where([
- ['org_id', 'in', $l],
- ['is_manager', '=', 1],
- ['state', '=', '在职'],
- ])->column('official_openid');
- foreach ($uOp as $i) {
- if(empty($i)) continue;
- $tmpId = 'jWwtOOOp6rWY-hTlodoS0n38tZ0VAPoOW6Tf8hxmd24';
- $token = static::getToken();
- $wxTemp = new Template();
- $rs = $wxTemp->sendTemplateMsg($token, [
- "touser" => $i,
- "template_id" => $tmpId,
- "data" => [
- "first" => [
- "value" => $data['first'],
- "color" => "#173177"
- ],
- "keyword1" => [
- "value" => $data['keyword1'],
- "color" => "#173177"
- ],
- "keyword2" => [
- "value" => $data['keyword2'],
- "color" => "#173177"
- ],
- "keyword3" => [
- "value" => $data['keyword3'],
- "color" => "#173177"
- ],
- "remark" => [
- "value" => $data['remark'],
- "color" => "#173177"
- ]
- ]
- ]);
- trace($rs);
- }
- }
- /**
- * 获取token
- */
- static public function getToken()
- {
- $wxTemp = new Template();
- if (!$token = Cache::get('zqxg_offi_access_token')) {
- $token = $wxTemp->getAccessToken(config('app.official_appid'), config('app.official_secret'));
- Cache::set('zqxg_offi_access_token', $token, 7100);
- }
- return $token;
- }
- }
|