From 13adf9a931c339ffb7910da803bf28c4ed4d1d9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=98=8A=E5=A4=A9?= <442384644@qq.com> Date: Wed, 14 Sep 2022 12:11:35 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=A8=8B=E5=BA=8F=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E3=80=91=E4=BF=AE=E5=A4=8D=E8=85=BE=E8=AE=AF=E4=BA=91=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v1/setting/SystemNotification.php | 2 +- crmeb/app/common.php | 35 ++++++++++------ crmeb/app/dao/BaseDao.php | 4 +- .../services/message/notice/SmsService.php | 41 ++++++++++++++++++- crmeb/crmeb/services/sms/storage/Tencent.php | 4 +- 5 files changed, 68 insertions(+), 18 deletions(-) diff --git a/crmeb/app/adminapi/controller/v1/setting/SystemNotification.php b/crmeb/app/adminapi/controller/v1/setting/SystemNotification.php index ea8378bf2..56fa92e6c 100644 --- a/crmeb/app/adminapi/controller/v1/setting/SystemNotification.php +++ b/crmeb/app/adminapi/controller/v1/setting/SystemNotification.php @@ -91,7 +91,7 @@ class SystemNotification extends AuthController if ($data['mark'] == 'verify_code') $data['type'] = 'is_sms'; if (!$data['id']) return app('json')->fail(100100); if ($this->services->saveData($data)) { - CacheService::delete('NOTCE_' . $data['mark']); + CacheService::delete('NOTICE_SMS_' . $data['mark']); return app('json')->success(100001); } else { return app('json')->fail(100007); diff --git a/crmeb/app/common.php b/crmeb/app/common.php index 43932f1d7..95d6b5bb4 100644 --- a/crmeb/app/common.php +++ b/crmeb/app/common.php @@ -14,8 +14,9 @@ use crmeb\services\CacheService; use think\exception\ValidateException; use crmeb\services\FormBuilder as Form; use app\services\other\UploadService; -use think\facade\Config; -use think\facade\Lang; +use app\services\system\lang\LangTypeServices; +use app\services\system\lang\LangCodeServices; +use app\services\system\lang\LangCountryServices; if (!function_exists('getWorkerManUrl')) { @@ -916,25 +917,33 @@ if (!function_exists('getLang')) { */ function getLang($code, array $replace = []) { - $config = Config::get('lang'); $request = app()->request; - //获取接口传入的语言类型 if (!$range = $request->header('cb-lang')) { - $range = $request->cookie($config['cookie_var']); + if ($request->header('accept-language') !== null) { + $range = explode(',', $request->header('accept-language'))[0]; + } else { + $range = 'zh-CN'; + } } - //如果找到当前语言类型,默认中文 - $langData = array_values($config['accept_language']); - if (!in_array($range, $langData)) { - $range = 'zh_cn'; - } + // 获取type_id + /** @var LangCountryServices $langCountryServices */ + $langCountryServices = app()->make(LangCountryServices::class); + $typeId = $langCountryServices->value(['code' => $range], 'type_id') ?: 1; + + // 获取缓存key + /** @var LangTypeServices $langTypeServices */ + $langTypeServices = app()->make(LangTypeServices::class); + $langData = $langTypeServices->getColumn(['status' => 1, 'is_del' => 0], 'file_name', 'id'); + $langStr = 'lang_' . str_replace('-', '_', $langData[$typeId]); //读取当前语言的语言包 - $lang = CacheService::redisHandler()->remember('lang_' . $range, function () use ($config, $range) { - return include $config['extend_list'][$range]; + $lang = CacheService::redisHandler()->remember($langStr, function () use ($typeId, $range) { + /** @var LangCodeServices $langCodeServices */ + $langCodeServices = app()->make(LangCodeServices::class); + return $langCodeServices->getColumn(['type_id' => $typeId, 'is_admin' => 1], 'lang_explain', 'code'); }, 3600); - //获取返回文字 $message = (string)($lang[$code] ?? 'Code Error'); diff --git a/crmeb/app/dao/BaseDao.php b/crmeb/app/dao/BaseDao.php index 83acfa530..35dfebf3c 100644 --- a/crmeb/app/dao/BaseDao.php +++ b/crmeb/app/dao/BaseDao.php @@ -65,7 +65,7 @@ abstract class BaseDao * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ - public function selectList(array $where, string $field = '*', int $page = 0, int $limit = 0, bool $search = false) + public function selectList(array $where, string $field = '*', int $page = 0, int $limit = 0, string $order = '', bool $search = false) { if ($search) { $model = $this->search($where); @@ -74,6 +74,8 @@ abstract class BaseDao } return $model->field($field)->when($page && $limit, function ($query) use ($page, $limit) { $query->page($page, $limit); + })->when($order !== '', function ($query) use ($order) { + $query->order($order); })->select(); } diff --git a/crmeb/app/services/message/notice/SmsService.php b/crmeb/app/services/message/notice/SmsService.php index 69a0b6969..0d8d53bbb 100644 --- a/crmeb/app/services/message/notice/SmsService.php +++ b/crmeb/app/services/message/notice/SmsService.php @@ -101,6 +101,9 @@ class SmsService extends NoticeService //获取发送短信驱动类型 $type = $this->smsType[sys_config('sms_type', 0)]; + if ($type == 'tencent') { + $data = $this->handleTencent($mark, $data); + } $smsMake = $services->sms($type); //发送短信 $res = $smsMake->send($phone, $templateId, $data); @@ -182,5 +185,41 @@ class SmsService extends NoticeService return true; } - + /** + * 处理腾讯云参数 + * @param $mark + * @param $data + * @return array + */ + public function handleTencent($mark, $data) + { + $result = []; + switch ($mark) { + case 'verify_code': + $result = [(string)$data['code'], (string)$data['time']]; + break; + case 'order_pay_false': + $result = [$data['order_id']]; + break; + case 'price_revision': + $result = [$data['order_id'], (string)$data['pay_price']]; + break; + case 'order_pay_success': + $result = [(string)$data['pay_price'], $data['order_id']]; + break; + case 'order_take': + $result = [$data['order_id'], $data['store_name']]; + break; + case 'send_order_apply_refund': + case 'admin_pay_success_code': + case 'send_admin_confirm_take_over': + $result = [$data['admin_name'], $data['order_id']]; + break; + case 'order_deliver_success': + case 'order_postage_success': + $result = [$data['nickname'], $data['store_name'], $data['order_id']]; + break; + } + return $result; + } } diff --git a/crmeb/crmeb/services/sms/storage/Tencent.php b/crmeb/crmeb/services/sms/storage/Tencent.php index 1a5c6e50f..5d795084d 100644 --- a/crmeb/crmeb/services/sms/storage/Tencent.php +++ b/crmeb/crmeb/services/sms/storage/Tencent.php @@ -104,14 +104,14 @@ class Tencent extends BaseSms */ public function send(string $phone, string $templateId, array $data) { - $boby = json_encode([ + $body = json_encode([ 'PhoneNumberSet' => [$phone], 'SmsSdkAppId' => $this->smsSdkAppId, 'SignName' => $this->signName, 'TemplateId' => $templateId, 'TemplateParamSet' => $data, ]); - $res = HttpService::request(self::API_URL, 'post', $boby, $this->getHeader($boby)); + $res = HttpService::request(self::API_URL, 'post', $body, $this->getHeader($body)); $res = json_decode($res, true); if (!empty($res['Response']['Error'])) {