| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- <?php
- namespace Modules\Admin\Http\Controllers\Api;
- use App\Http\Controllers\Controller;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Http;
- use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
- use \Exception;
- use AlibabaCloud\Tea\Exception\TeaError;
- use AlibabaCloud\Tea\Utils\Utils;
- use Darabonba\OpenApi\Models\Config;
- use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendBatchSmsRequest;
- use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
- use Modules\Admin\Services\SmsServices;
- class SmsController extends Controller
- {
- // 会议短信
- public function sendMeetingSms(Request $request) {
- $sms_type = $request->get("sms_type");
- if ($sms_type == 'mds_meeting') {
- return $this->getMdsMeetingInfo($request);
- }
- return [
- "code"=>-1,
- "msg"=>"缺少参数",
- "data"=>[]
- ];
- }
- // 麦垛山会议
- private function getMdsMeetingInfo(Request $request) {
- // 会议id
- $meeting_id = $request->get("meeting_id");
- // 通知类型
- $notice_type = $request->get("notice_type");
- if (empty($meeting_id) || empty($notice_type)) {
- return [
- "code"=>-1,
- "msg"=>"缺少参数",
- "data"=>[]
- ];
- }
- // 获取会议信息
- try {
- $meeting_info = DB::connection('mysql_fwe10')->table('uf_mdshyyy')->where('id', '=', $meeting_id)->first();
- }
- catch (Exception $error) {
- return [
- "code"=>-1,
- "msg"=>"会议室信息数据连接失败",
- "data"=>[]
- ];
- }
- if (empty($meeting_info)) {
- return [
- "code"=>-1,
- "msg"=>"找不到会议信息",
- "data"=>[]
- ];
- }
- $smsServices = new SmsServices();
- $meeting_date = date('Y年m月d日 H:i:s', strtotime($meeting_info->ksrq)); // 开始时间
- $meeting_title = $meeting_info->hyzt; // 会议主题
- $meeting_room_id = $meeting_info->hys; // 会议室id
- $meeting_room_info = DB::connection('mysql_fwe10')->table('uf_mdshysgl')->where('id', '=', $meeting_room_id)->first();
- $meeting_room_name = $meeting_room_info->hysmc; // 会议室名称
- if ($notice_type == 1) {
- // 部门领导审批
- // 申请人信息
- $apply_user_id = $meeting_info->sqr;
- $apply_user_info = DB::connection('mysql_fwe10')->table('eteams.employee')->where('id', '=', $apply_user_id)->first();
- $apply_user_name = $apply_user_info->USERNAME;
- // 申请人部门领导
- $leader_id = $meeting_info->bmld;
- $leader_info = DB::connection('mysql_fwe10')->table('eteams.employee')->where('id', '=', $leader_id)->first();
- $leader_mobile[] = $leader_info->MOBILE;
- $template_info[] = [
- "username"=>$apply_user_name,
- "begindate"=>$meeting_date,
- "meetingname"=>$meeting_title
- ];
- $smsServices->sendBatchSms($leader_mobile, $template_info, 1);
- return [
- "code"=>200,
- "msg"=>"已发送",
- "data"=>[
- "leader" =>$template_info
- ]
- ];
- } else if ($notice_type == 2) {
- // 会议室管理员审批
- // 通知类型
- $manage_id = $request->get("manage_id");
- if (empty($manage_id)) {
- return [
- "code"=>-1,
- "msg"=>"缺少管理员信息参数",
- "data"=>[]
- ];
- }
- // 申请人信息
- $apply_user_id = $meeting_info->sqr;
- $apply_user_info = DB::connection('mysql_fwe10')->table('eteams.employee')->where('id', '=', $apply_user_id)->first();
- $apply_user_name = $apply_user_info->USERNAME;
- // 管理员信息
- $leader_info = DB::connection('mysql_fwe10')->table('eteams.employee')->where('id', '=', $manage_id)->first();
- $leader_mobile[] = $leader_info->MOBILE;
- $template_info[] = [
- "username"=>$apply_user_name,
- "begindate"=>$meeting_date,
- "meetingname"=>$meeting_title
- ];
- $smsServices->sendBatchSms($leader_mobile, $template_info, 1);
- return [
- "code"=>200,
- "msg"=>"已发送",
- "data"=>[
- "manage" =>$template_info
- ]
- ];
- } else if ($notice_type == 3) {
- // 通知参会人员
- $attendee = $meeting_info->chry; // 参会人员
- $attend_dept = $meeting_info->chbm; // 参会部门
- // 参会人信息
- $attendee_arr = explode(',', $attendee);
- $attendee_info = DB::connection('mysql_fwe10')->table('eteams.employee')->where('id', $attendee_arr)->get();
- $attendee_mobile = [];
- $template_info = [];
- // ${uname},您好,${meetdate} 在“${meetroom}”会议室有主题为“${meetname}”的会议需要您的参加,详情登录安宁查看。
- for($i = 0; $i < count($attendee_info); $i++) {
- $info = $attendee_info[$i];
- $attendee_mobile[] = $info->MOBILE;
- $template_info[] = [
- "uname"=>$info->USERNAME,
- "meetdate"=>$meeting_date,
- "meetroom"=>$meeting_room_name,
- "meetname"=>$meeting_title
- ];
- }
- // 给参会人 发送短信
- if (count($template_info) > 0) {
- $smsServices->sendBatchSms($attendee_mobile, $template_info, 2);
- }
- // 参会部门信息
- $dept_arr = explode(',', $attend_dept);
- $dept_info = DB::connection('mysql_fwe10')->table('eteams.department')->where('id', $dept_arr)->get();
- $dept_leader = DB::connection('mysql_fwe10')
- ->table('eteams.employee')
- ->where("sec_level","=","65")
- ->where('DEPARTMENT', $attend_dept)
- ->get();
- // 组装部门信息map
- $dept_info_map = [];
- for($i = 0; $i < count($dept_info); $i ++) {
- $info = $dept_info[$i];
- $dept_info_map[$info->ID] = $info->NAME;
- }
- $attendee_dept_mobile = [];
- $template_dept_info = [];
- for($i = 0; $i < count($dept_leader); $i++) {
- $info = $dept_leader[$i];
- $mobile = $info->MOBILE;
- $attendee_dept_mobile[] = $mobile;
- // 如果已经给个人发了,就跳过
- if (in_array($mobile, $attendee_mobile)) {
- continue;
- }
- // 您好,${meetdate} 在“${meetroom}”会议室有主题为“${meetname}”的会议需要您的部门参加,详情登录安宁查看。
- $template_dept_info[] = [
- "meetdate"=>$meeting_date,
- "meetroom"=>$meeting_room_name,
- "meetname"=>$meeting_title
- ];
- }
- // 给部门领导发送短信
- if (count($template_dept_info) > 0) {
- $smsServices->sendBatchSms($attendee_dept_mobile, $template_dept_info, 3);
- }
- return [
- "code"=>200,
- "msg"=>"已发送",
- "data"=>[
- "attendee" =>$template_info,
- "dept" => $template_info
- ]
- ];
- }
- return [
- "code"=>200,
- "msg"=>"已发送",
- "data"=>[]
- ];
- }
- }
|