Browse Source

发送邮件或短信

master
chuan 4 months ago
parent
commit
7a5eb97ede
  1. 14
      app/admin/controller/Config.php
  2. 2
      app/admin/route/app.php
  3. 46
      app/admin/service/AdminService.php
  4. 57
      app/admin/service/ConfigService.php
  5. 14
      app/model/SmsTemplateModel.php

14
app/admin/controller/Config.php

@ -70,4 +70,18 @@ class Config extends AdminBaseController
$returnData = (new ConfigService())->editEmailTemplate($this->request->param()); $returnData = (new ConfigService())->editEmailTemplate($this->request->param());
return json($returnData); 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);
}
} }

2
app/admin/route/app.php

@ -26,6 +26,8 @@ Route::group('/', function () {
Route::post('config/email_template_list', 'Config/emailTemplateList'); //获取邮箱模板列表 Route::post('config/email_template_list', 'Config/emailTemplateList'); //获取邮箱模板列表
Route::post('config/edit_email_template', 'Config/editEmailTemplate'); //编辑邮箱模板 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'); //渠道列表 Route::post('/channel/list', 'Channel/list'); //渠道列表

46
app/admin/service/AdminService.php

@ -8,8 +8,10 @@ use app\home\service\BaseHomeService;
use app\model\AdminLogModel; use app\model\AdminLogModel;
use app\model\AdminModel; use app\model\AdminModel;
use app\model\AuthRoleModel; use app\model\AuthRoleModel;
use app\model\EmailTemplateModel;
use app\model\PurchaseVipLogModel; use app\model\PurchaseVipLogModel;
use app\model\PurchaseVipModel; use app\model\PurchaseVipModel;
use app\model\SmsTemplateModel;
use app\model\TranslatorCustomerModel; use app\model\TranslatorCustomerModel;
use app\model\UserAccessLogModel; use app\model\UserAccessLogModel;
use app\model\UserChatGroupModel; use app\model\UserChatGroupModel;
@ -648,19 +650,49 @@ class AdminService extends AdminBaseService
return $this->toData('400', '参数错误'); 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 ($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) { if ($param['type'] == 2) {
// 推送短信 if (empty($user->phone_number)) {
$to = '18582301860'; return $this->toData('500', '用户手机号为空');
$content = '测试短信推送'; }
$accessKey = 'LTAI5tMYUS9asodB6n2qSL9Y'; $accessKey = env('SMS.ACCESS_KEY_ID');
$secret = 'TIMy9s5m7mHSPZN4uRahok4GRdWH1p'; $secret = env('SMS.ACCESS_KEY_SECRET');
(new \app\utility\SendSms())->send($to, $content, $accessKey, $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'); return $this->toData('0', 'success');

57
app/admin/service/ConfigService.php

@ -3,6 +3,7 @@ namespace app\admin\service;
use app\admin\service\AdminBaseService; use app\admin\service\AdminBaseService;
use app\model\EmailTemplateModel; use app\model\EmailTemplateModel;
use app\model\SmsTemplateModel;
use app\model\VideoOnDemandModel; use app\model\VideoOnDemandModel;
class ConfigService extends AdminBaseService class ConfigService extends AdminBaseService
@ -52,12 +53,64 @@ class ConfigService extends AdminBaseService
return $this->toData('500', '修改的模板数据不存在'); return $this->toData('500', '修改的模板数据不存在');
} }
$emailTemplate->email = $param['email'] ?? ""; $emailTemplate->email = $param['email'] ?? "";
$emailTemplate->title = $param['title'] ?? ""; $emailTemplate->title = $param['title'];
$emailTemplate->content = $param['content'] ?? ""; $emailTemplate->content = $param['content'];
$emailTemplate->save(); $emailTemplate->save();
return $this->toData('0', 'success'); return $this->toData('0', 'success');
} catch (\Exception $e) { } catch (\Exception $e) {
return $this->toData('500', 'The system is busy. Please try again later.', [$e->getMessage(), $e->getTrace()]); 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()]);
}
}
} }

14
app/model/SmsTemplateModel.php

@ -0,0 +1,14 @@
<?php
namespace app\model;
use think\Model;
/**
* @mixin \think\Model
*/
class SmsTemplateModel extends Model
{
const TPL_TYPE_ONE = 1; // 管理端配置的给用户发短信模板
protected $name = 'sms_template';
}
Loading…
Cancel
Save