From 7a5eb97edefc0fc91c315d22a0c77beba62997ed Mon Sep 17 00:00:00 2001 From: chuan <2154243450@qq.com> Date: Thu, 27 Feb 2025 14:14:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E9=80=81=E9=82=AE=E4=BB=B6=E6=88=96?= =?UTF-8?q?=E7=9F=AD=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/Config.php | 14 +++++++ app/admin/route/app.php | 2 + app/admin/service/AdminService.php | 46 +++++++++++++++++++---- app/admin/service/ConfigService.php | 57 ++++++++++++++++++++++++++++- app/model/SmsTemplateModel.php | 14 +++++++ 5 files changed, 124 insertions(+), 9 deletions(-) create mode 100644 app/model/SmsTemplateModel.php diff --git a/app/admin/controller/Config.php b/app/admin/controller/Config.php index 3b01bed7..71fd941c 100644 --- a/app/admin/controller/Config.php +++ b/app/admin/controller/Config.php @@ -70,4 +70,18 @@ class Config extends AdminBaseController $returnData = (new ConfigService())->editEmailTemplate($this->request->param()); return json($returnData); } + + // 短信模板列表 + public function smsTemplateList() + { + $returnData = (new ConfigService())->smsTemplateList($this->request->param()); + return json($returnData); + } + + // 编辑邮短信板列表 + public function editSmsTemplate() + { + $returnData = (new ConfigService())->editSmsTemplate($this->request->param()); + return json($returnData); + } } \ No newline at end of file diff --git a/app/admin/route/app.php b/app/admin/route/app.php index 6e38e68c..a99d19ed 100644 --- a/app/admin/route/app.php +++ b/app/admin/route/app.php @@ -26,6 +26,8 @@ Route::group('/', function () { Route::post('config/email_template_list', 'Config/emailTemplateList'); //获取邮箱模板列表 Route::post('config/edit_email_template', 'Config/editEmailTemplate'); //编辑邮箱模板 + Route::post('config/sms_template_list', 'Config/smsTemplateList'); //获取短信模板列表 + Route::post('config/edit_sms_template', 'Config/editSmsTemplate'); //编辑短信模板 // 渠道列表 Route::post('/channel/list', 'Channel/list'); //渠道列表 diff --git a/app/admin/service/AdminService.php b/app/admin/service/AdminService.php index 19b9901e..4a2b8cee 100644 --- a/app/admin/service/AdminService.php +++ b/app/admin/service/AdminService.php @@ -8,8 +8,10 @@ use app\home\service\BaseHomeService; use app\model\AdminLogModel; use app\model\AdminModel; use app\model\AuthRoleModel; +use app\model\EmailTemplateModel; use app\model\PurchaseVipLogModel; use app\model\PurchaseVipModel; +use app\model\SmsTemplateModel; use app\model\TranslatorCustomerModel; use app\model\UserAccessLogModel; use app\model\UserChatGroupModel; @@ -648,19 +650,49 @@ class AdminService extends AdminBaseService return $this->toData('400', '参数错误'); } + $user = UserModel::where(['user_id'=>$param['user_id']])->find(); + if (empty($user)) { + return $this->toData('500', '用户不存在'); + } + // 发送邮件 if ($param['type'] == 1) { - + if (empty($user->email)) { + return $this->toData('500', '用户邮箱为空'); + } + $emailTemplate = EmailTemplateModel::where('tpl_type', EmailTemplateModel::TPL_TYPE_ONE)->find(); + if (empty($emailTemplate)) { + return json(['code'=>500, 'message'=>'邮件模板为空']); + } + $emailTemplate = $emailTemplate->toArray(); + $emailTemplate['email'] = $user->email; + $phpEmail = new \app\utility\SendEmail(); + $bool = $phpEmail->sendEmail($emailTemplate['email'], $emailTemplate['title'], $emailTemplate['content']); + if (!$bool) { + return $this->toData('500', '邮件发送失败'); + } } // 发送短信 if ($param['type'] == 2) { - // 推送短信 - $to = '18582301860'; - $content = '测试短信推送'; - $accessKey = 'LTAI5tMYUS9asodB6n2qSL9Y'; - $secret = 'TIMy9s5m7mHSPZN4uRahok4GRdWH1p'; - (new \app\utility\SendSms())->send($to, $content, $accessKey, $secret); + if (empty($user->phone_number)) { + return $this->toData('500', '用户手机号为空'); + } + $accessKey = env('SMS.ACCESS_KEY_ID'); + $secret = env('SMS.ACCESS_KEY_SECRET'); + if (empty($accessKey) || empty($secret)) { + return $this->toData('500', '短信账号配置错误'); + } + $smsTemplate = SmsTemplateModel::where(['tpl_type'=> SmsTemplateModel::TPL_TYPE_ONE])->find(); + if (empty($smsTemplate)) { + return json(['code'=>500, 'message'=>'短信模板为空']); + } + $to = $user->phone_number; + $content = $smsTemplate->content; + $bool = (new \app\utility\SendSms())->send($to, $content, $accessKey, $secret); + if (!$bool) { + return $this->toData('500', '短信发送失败'); + } } return $this->toData('0', 'success'); diff --git a/app/admin/service/ConfigService.php b/app/admin/service/ConfigService.php index 84e65f59..636d4cb1 100644 --- a/app/admin/service/ConfigService.php +++ b/app/admin/service/ConfigService.php @@ -3,6 +3,7 @@ namespace app\admin\service; use app\admin\service\AdminBaseService; use app\model\EmailTemplateModel; +use app\model\SmsTemplateModel; use app\model\VideoOnDemandModel; class ConfigService extends AdminBaseService @@ -52,12 +53,64 @@ class ConfigService extends AdminBaseService return $this->toData('500', '修改的模板数据不存在'); } $emailTemplate->email = $param['email'] ?? ""; - $emailTemplate->title = $param['title'] ?? ""; - $emailTemplate->content = $param['content'] ?? ""; + $emailTemplate->title = $param['title']; + $emailTemplate->content = $param['content']; $emailTemplate->save(); return $this->toData('0', 'success'); } catch (\Exception $e) { return $this->toData('500', 'The system is busy. Please try again later.', [$e->getMessage(), $e->getTrace()]); } } + + // 短息模板列表 + public function smsTemplateList($param) + { + try { + if (empty($param['page']) || !is_numeric($param['page'])) { + return $this->toData('400', '参错错误'); + } + if (empty($param['limit']) || !is_numeric($param['limit'])) { + return $this->toData('400', '参错错误'); + } + $where = []; + if (isset($param['tpl_type'])) { + $where['tpl_type'] = $param['tpl_type']; + } + $list = SmsTemplateModel::where($where)->order('id', 'desc')->paginate([ + 'list_rows' => $param['limit'], + 'page' => $param['page'], + ]); + return $this->toData('0', 'SUCCESS', [ + 'list' => $list->items(), + 'page' => $list->currentPage(), + 'total' => $list->total(), + 'last_page' => $list->lastPage(), + ]); + } catch (\Exception $e) { + return $this->toData('500', 'The system is busy. Please try again later.', [$e->getMessage(), $e->getTrace()]); + } + } + + // 编辑短信模板 + public function editSmsTemplate($param) + { + try { + if (empty($param['id']) || !is_numeric($param['id'])) { + return $this->toData('400', '参错错误'); + } + if (empty($param['content'])) { + return $this->toData('400', '参错错误'); + } + + $smsTemplate = SmsTemplateModel::where(['id'=>$param['id']])->find(); + if (empty($smsTemplate)) { + return $this->toData('500', '修改的模板数据不存在'); + } + $smsTemplate->content = $param['content']; + $smsTemplate->save(); + return $this->toData('0', 'success'); + } catch (\Exception $e) { + return $this->toData('500', 'The system is busy. Please try again later.', [$e->getMessage(), $e->getTrace()]); + } + } } \ No newline at end of file diff --git a/app/model/SmsTemplateModel.php b/app/model/SmsTemplateModel.php new file mode 100644 index 00000000..5ac2a65a --- /dev/null +++ b/app/model/SmsTemplateModel.php @@ -0,0 +1,14 @@ +