|
@@ -0,0 +1,243 @@
|
|
|
+<?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"=>[]
|
|
|
+ ];
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|