123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <?php
- namespace wecom;
- use app\common\model\base\user\User;
- use app\common\model\base\user\UserRole;
- use app\common\model\enroll\JdfEnrollVolunteer;
- use app\common\model\msgPushConfig\MsgPushConfig;
- use daorui\platform\platformAuth;
- class Wecom
- {
- /**
- * Notes:获取推送用户的uuid列表
- * User: zhang
- * Date: 2025/2/22
- * Time: 21:37
- */
- protected static function getPushIds($org_id)
- {
- $res = MsgPushConfig::where('org_id', $org_id)->find();
- if (!empty($res)) {
- $role_ids = $res['role_ids'];
- $user_ids = UserRole::where('role_id', 'IN', $role_ids)->column('user_id');
- if (empty($user_ids)) return Result(false, '未找到推送用户');
- $uuids = User::where('user_id', 'IN', $user_ids)->column('uuid');
- return $uuids;
- } else {
- return Result(false, '未配置推送用户');
- }
- }
- /**
- * Notes:获取推送模板内容
- * User: zhang
- * Date: 2025/2/22
- * Time: 21:53
- * @param $student_name
- * @param $grade_name
- * @param $org_id
- * @param $school_name
- * @param $semester_date
- * @param string $former_school
- */
- protected static function getMsgTemplate(string $student_name, string $grade_name, int $org_id, string $school_name, string $semester_date, string $former_school = '')
- {
- // 查询转学生和非转学生的数量
- $transferCount = JdfEnrollVolunteer::alias('a')
- ->join('jdf_enroll_students b', 'a.enroll_id=b.enroll_id')
- ->where('b.is_transfer', 1)
- ->where('a.org_id', $org_id)
- ->count();
- $nonTransferCount = JdfEnrollVolunteer::alias('a')
- ->join('jdf_enroll_students b', 'a.enroll_id=b.enroll_id')
- ->where('b.is_transfer', 2)
- ->where('a.org_id', $org_id)
- ->count();
- $contet = "";
- $contet .= "【报名预约信息】\r\n";
- $contet .= "学生姓名:$student_name\r\n";
- $contet .= "预约年级:$grade_name\r\n";
- $contet .= "预约校区:$school_name\r\n";
- $contet .= "原就读园校:$former_school\r\n";
- $contet .= "预约日期:$semester_date\r\n";
- $contet .= "截止目前,预约新生$nonTransferCount.,插班生$transferCount\r\n";
- WLog('getPushId', $contet);
- return $contet;
- }
- /**
- * Notes:发送消息
- * User: zhang
- * Date: 2025/2/22
- * Time: 22:05
- * @param $data
- */
- public static function sendMsg($data)
- {
- $uuids = self::getPushIds($data['org_id']);
- WLog('getPushId', $uuids);
- $centent = self::getMsgTemplate($data['name'], $data['grade_name'], $data['org_id'], $data['school_name'], $data['semester_date'], $data['former_school']);
- WLog('getPushId', $centent);
- $sendData = [
- "uuid" => $uuids,
- "tal_data" => [
- "agentid" => 1000071,
- "msgtype" => "text",
- "text" => [
- "content" => $centent,
- ],
- ],
- ];
- WLog('getPushId', $sendData);
- $res = (new platformAuth())->interfaceRequest('sendWeComMsg', $sendData);
- WLog('getPushId', $res);
- if (!$res['code']) return Result(false, $res['msg']);
- return Result(true, '发送成功');
- }
- /**
- * Notes:推送消息给集团管理员
- * User: zhang
- * Date: 2025/2/26
- * Time: 11:27
- */
- public static function sendMsgAdmin($data)
- {
- $uuids = self::getPushIds(1);
- $centent = self::getMsgTemplate($data['name'], $data['grade_name'], $data['org_id'], $data['school_name'], $data['semester_date'], $data['former_school']);
- WLog('getPushId', $centent);
- $sendData = [
- "uuid" => $uuids,
- "tal_data" => [
- "agentid" => 1000071,
- "msgtype" => "text",
- "text" => [
- "content" => $centent,
- ],
- ],
- ];
- WLog('getPushId', $sendData);
- $res = (new platformAuth())->interfaceRequest('sendWeComMsg', $sendData);
- WLog('getPushId', $res);
- if (!$res['code']) return Result(false, $res['msg']);
- return Result(true, '发送成功');
- }
- public function demo()
- {
- // $contet = "";
- // $contet.= "【报名预约信息】\r\n";
- // $contet.= "学生姓名:xxx\r\n";
- // $contet.= "预约年级:初一\r\n";
- // $contet.= "预约校区:金东方XXX学校\r\n";
- // $contet.= "原就读园校:XXX学校\r\n";
- // $contet.= "预约日期:2025-02-21\r\n";
- // $contet.= "截止目前,预约新生1XXXX,插班生2XX\r\n";
- // // $contet =
- // // <<<TEXT
- // // 【报名预约信息】
- // // 您好!XX老师,预约消息:
- // // 学生姓名:xxx
- // // 预约年级:初一
- // // 原就读院校:XXX学校
- // // 预约日期:2025-02-21
- // // 截止目前,预约新生1XXXX,插班生2XX
- // // TEXT;
- // $data = [
- // "touser" => "13477191977",
- // "msgtype" => 'text',
- // "agentid" => 1000071,
- // "text" => [
- // "content" => $contet,
- // ]
- // ];
- // dump($data);
- // $res = (new workAuth())->interfaceRequest('messageSend', $data);
- // halt($res);
- }
- }
|