初始上传
This commit is contained in:
38
addon/alisms/config/diy_view.php
Executable file
38
addon/alisms/config/diy_view.php
Executable file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
return [
|
||||
|
||||
// 自定义模板页面类型,格式:[ 'title' => '页面类型名称', 'name' => '页面标识', 'path' => '页面路径', 'value' => '页面数据,json格式' ]
|
||||
'template' => [],
|
||||
|
||||
// 后台自定义组件——装修
|
||||
'util' => [],
|
||||
|
||||
// 自定义页面路径
|
||||
'link' => [],
|
||||
|
||||
// 自定义图标库
|
||||
'icon_library' => [],
|
||||
|
||||
// uni-app 组件,格式:[ 'name' => '组件名称/文件夹名称', 'path' => '文件路径/目录路径' ],多个逗号隔开,自定义组件名称前缀必须是diy-,也可以引用第三方组件
|
||||
'component' => [],
|
||||
|
||||
// uni-app 页面,多个逗号隔开
|
||||
'pages' => [],
|
||||
|
||||
// 模板信息,格式:'title' => '模板名称', 'name' => '模板标识', 'cover' => '模板封面图', 'preview' => '模板预览图', 'desc' => '模板描述'
|
||||
'info' => [],
|
||||
|
||||
// 主题风格配色,格式可以自由定义扩展,【在uni-app中通过:this.themeStyle... 获取定义的颜色字段,例如:this.themeStyle.main_color】
|
||||
'theme' => [],
|
||||
|
||||
// 自定义页面数据,格式:[ 'title' => '页面名称', 'name' => "页面标识", 'value' => [页面数据,json格式] ]
|
||||
'data' => []
|
||||
];
|
||||
34
addon/alisms/config/event.php
Executable file
34
addon/alisms/config/event.php
Executable file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
// 事件定义文件
|
||||
return [
|
||||
'bind' => [
|
||||
|
||||
],
|
||||
|
||||
'listen' => [
|
||||
//短信方式
|
||||
'SmsType' => [
|
||||
'addon\alisms\event\SmsType'
|
||||
],
|
||||
'DoEditSmsMessage' => [
|
||||
'addon\alisms\event\DoEditSmsMessage'
|
||||
],
|
||||
'SendSms' => [
|
||||
'addon\alisms\event\SendSms'
|
||||
],
|
||||
//启用回调,使用这个短信,就要关闭其他短信插件
|
||||
'EnableCallBack' => [
|
||||
'addon\alisms\event\EnableCallBack'
|
||||
],
|
||||
//查询启用的短信插件
|
||||
'EnableSms' => [
|
||||
'addon\alisms\event\EnableSms'
|
||||
],
|
||||
'SmsTemplateInfo' => [
|
||||
'addon\alisms\event\SmsTemplateInfo'
|
||||
]
|
||||
],
|
||||
|
||||
'subscribe' => [
|
||||
],
|
||||
];
|
||||
21
addon/alisms/config/info.php
Executable file
21
addon/alisms/config/info.php
Executable file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
return [
|
||||
'name' => 'alisms',
|
||||
'title' => '阿里云短信',
|
||||
'description' => '阿里云短信功能',
|
||||
'type' => 'system', //插件类型 system :系统插件(自动安装), business:业务插件 promotion:营销插件 tool:工具插件
|
||||
'status' => 1,
|
||||
'author' => '',
|
||||
'version' => '5.5.3',
|
||||
'version_no' => '553250709001',
|
||||
'content' => '',
|
||||
];
|
||||
30
addon/alisms/config/menu_shop.php
Executable file
30
addon/alisms/config/menu_shop.php
Executable file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 平台端菜单设置
|
||||
// +----------------------------------------------------------------------
|
||||
return [
|
||||
[
|
||||
'name' => 'ALI_SMS_CONFIG',
|
||||
'title' => '阿里云短信配置',
|
||||
'url' => 'alisms://shop/sms/config',
|
||||
'parent' => 'SMS_MANAGE',
|
||||
'is_show' => 0,
|
||||
'is_control' => 1,
|
||||
'is_icon' => 0,
|
||||
'picture' => '',
|
||||
'picture_select' => '',
|
||||
'sort' => 1,
|
||||
'type' => 'button',
|
||||
],
|
||||
[
|
||||
'name' => 'ALI_MESSAGE_SMS_EDIT',
|
||||
'title' => '编辑阿里云短信模板',
|
||||
'url' => 'alisms://shop/message/edit',
|
||||
'parent' => 'MESSAGE_LISTS',
|
||||
'is_show' => 0,
|
||||
'picture' => '',
|
||||
'picture_select' => '',
|
||||
'sort' => 1,
|
||||
'type' => 'button',
|
||||
],
|
||||
];
|
||||
34
addon/alisms/event/DoEditSmsMessage.php
Executable file
34
addon/alisms/event/DoEditSmsMessage.php
Executable file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alisms\event;
|
||||
|
||||
use addon\alisms\model\Config as ConfigModel;
|
||||
|
||||
/**
|
||||
* 短信模板 (后台调用)
|
||||
*/
|
||||
class DoEditSmsMessage
|
||||
{
|
||||
/**
|
||||
* 短信发送方式方式及配置
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$config_model = new ConfigModel();
|
||||
$config_result = $config_model->getSmsConfig();
|
||||
$config = $config_result["data"];
|
||||
if ($config["is_use"] == 1) {
|
||||
return ["edit_url" => "alisms://shop/message/edit", "shop_url" => "alisms://shop/message/edit"];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
37
addon/alisms/event/EnableCallBack.php
Executable file
37
addon/alisms/event/EnableCallBack.php
Executable file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alisms\event;
|
||||
|
||||
use addon\alisms\model\Config;
|
||||
|
||||
/**
|
||||
* 使用这个短信,就要关闭其他短信插件
|
||||
*/
|
||||
class EnableCallBack
|
||||
{
|
||||
/**
|
||||
* 短信发送方式方式及配置
|
||||
*/
|
||||
public function handle($param)
|
||||
{
|
||||
if ($param[ 'sms_type' ] != 'alisms') {
|
||||
$config_model = new Config();
|
||||
$sms_config = $config_model->getSmsConfig($param[ 'site_id' ]);
|
||||
$is_use = $sms_config[ 'data' ][ 'is_use' ];
|
||||
if ($is_use) {
|
||||
$is_use = 0;
|
||||
$res = $config_model->enableCallBack($is_use, $param[ 'site_id' ]);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
40
addon/alisms/event/EnableSms.php
Executable file
40
addon/alisms/event/EnableSms.php
Executable file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alisms\event;
|
||||
|
||||
use addon\alisms\model\Config;
|
||||
|
||||
/**
|
||||
* 查询启用的短信插件
|
||||
*/
|
||||
class EnableSms
|
||||
{
|
||||
/**
|
||||
* 短信发送方式方式及配置
|
||||
*/
|
||||
public function handle($param)
|
||||
{
|
||||
$info = array (
|
||||
"sms_type" => "alisms",
|
||||
"sms_type_name" => "阿里云短信",
|
||||
"edit_url" => "alisms://shop/sms/config",
|
||||
"shop_url" => "alisms://shop/sms/config",
|
||||
"desc" => "阿里云短信服务(Short Message Service)支持国内和国际快速发送验证码、短信通知和推广短信,服务范围覆盖全球200多个国家和地区。国内短信支持三网合一专属通道,与工信部携号转网平台实时互联。电信级运维保障,实时监控自动切换,到达率高达99%。"
|
||||
);
|
||||
|
||||
$config_model = new Config();
|
||||
$config = $config_model->getSmsConfig($param[ 'site_id' ]);
|
||||
if ($config[ 'data' ][ 'is_use' ] == 1) {
|
||||
return $info;
|
||||
}
|
||||
}
|
||||
}
|
||||
26
addon/alisms/event/Install.php
Executable file
26
addon/alisms/event/Install.php
Executable file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
|
||||
namespace addon\alisms\event;
|
||||
|
||||
/**
|
||||
* 应用安装
|
||||
*/
|
||||
class Install
|
||||
{
|
||||
/**
|
||||
* 执行安装
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
return success();
|
||||
}
|
||||
}
|
||||
34
addon/alisms/event/SendSms.php
Executable file
34
addon/alisms/event/SendSms.php
Executable file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
|
||||
namespace addon\alisms\event;
|
||||
|
||||
use addon\alisms\model\Sms;
|
||||
|
||||
/**
|
||||
* 短信发送
|
||||
*/
|
||||
class SendSms
|
||||
{
|
||||
/**
|
||||
* 短信发送方式方式及配置
|
||||
* @param $param
|
||||
* @return array|mixed
|
||||
* @throws \Overtrue\EasySms\Exceptions\InvalidArgumentException
|
||||
*/
|
||||
public function handle($param)
|
||||
{
|
||||
$sms = new Sms();
|
||||
$res = $sms->send($param);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
35
addon/alisms/event/SmsTemplateInfo.php
Executable file
35
addon/alisms/event/SmsTemplateInfo.php
Executable file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alisms\event;
|
||||
|
||||
use addon\alisms\model\Config;
|
||||
|
||||
/**
|
||||
* 获取短信模板数据
|
||||
*/
|
||||
class SmsTemplateInfo
|
||||
{
|
||||
/**
|
||||
* 获取短信模板数据
|
||||
*/
|
||||
public function handle($param)
|
||||
{
|
||||
$config_model = new Config();
|
||||
$sms_config = $config_model->getSmsConfig($param['site_id'], 'shop')[ 'data' ];
|
||||
if ($sms_config['is_use']) {
|
||||
$template_info = model('message_template')->getInfo([ ['keywords', '=', $param['keywords'] ]]);
|
||||
if (!empty($template_info['sms_json'])) {
|
||||
return json_decode($template_info['sms_json'], true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
38
addon/alisms/event/SmsType.php
Executable file
38
addon/alisms/event/SmsType.php
Executable file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alisms\event;
|
||||
|
||||
use addon\alisms\model\Config;
|
||||
|
||||
/**
|
||||
* 短信方式 (后台调用)
|
||||
*/
|
||||
class SmsType
|
||||
{
|
||||
/**
|
||||
* 短信发送方式方式及配置
|
||||
*/
|
||||
public function handle($param)
|
||||
{
|
||||
$info = array (
|
||||
"sms_type" => "alisms",
|
||||
"sms_type_name" => "阿里云短信",
|
||||
"edit_url" => "alisms://shop/sms/config",
|
||||
"shop_url" => "alisms://shop/sms/config",
|
||||
"desc" => "阿里云短信服务(Short Message Service)支持国内和国际快速发送验证码、短信通知和推广短信,服务范围覆盖全球200多个国家和地区。国内短信支持三网合一专属通道,与工信部携号转网平台实时互联。电信级运维保障,实时监控自动切换,到达率高达99%。"
|
||||
);
|
||||
|
||||
$config_model = new Config();
|
||||
$config = $config_model->getSmsConfig($param[ 'site_id' ]);
|
||||
$info[ 'status' ] = $config[ 'data' ][ 'is_use' ] ?? 0;
|
||||
return $info;
|
||||
}
|
||||
}
|
||||
27
addon/alisms/event/UnInstall.php
Executable file
27
addon/alisms/event/UnInstall.php
Executable file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
|
||||
namespace addon\alisms\event;
|
||||
|
||||
/**
|
||||
* 应用卸载
|
||||
*/
|
||||
class UnInstall
|
||||
{
|
||||
/**
|
||||
* 执行卸载
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
return success();
|
||||
}
|
||||
}
|
||||
BIN
addon/alisms/icon.png
Executable file
BIN
addon/alisms/icon.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
64
addon/alisms/model/Config.php
Executable file
64
addon/alisms/model/Config.php
Executable file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alisms\model;
|
||||
|
||||
use app\model\system\Config as ConfigModel;
|
||||
use app\model\BaseModel;
|
||||
|
||||
/**
|
||||
* 支付宝支付配置
|
||||
*/
|
||||
class Config extends BaseModel
|
||||
{
|
||||
/**
|
||||
* 设置短信配置
|
||||
* array $data
|
||||
*/
|
||||
public function setSmsConfig($data, $is_use, $site_id = 1, $app_module = 'shop')
|
||||
{
|
||||
$config = new ConfigModel();
|
||||
$res = $config->setConfig($data, '阿里云短信配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'ALI_SMS_CONFIG' ] ]);
|
||||
event('EnableCallBack', [ 'sms_type' => 'alisms', 'is_use' => $is_use, 'site_id' => $site_id ]);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取短信配置
|
||||
*/
|
||||
public function getSmsConfig($site_id = 1, $app_module = 'shop')
|
||||
{
|
||||
$config = new ConfigModel();
|
||||
$res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'ALI_SMS_CONFIG' ] ]);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置开关
|
||||
*/
|
||||
public function modifyConfigIsUse($is_use, $site_id = 1, $app_module = 'shop')
|
||||
{
|
||||
$config = new ConfigModel();
|
||||
$res = $config->modifyConfigIsUse($is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'ALI_SMS_CONFIG' ] ]);
|
||||
event('EnableCallBack', [ 'sms_type' => 'alisms', 'is_use' => $is_use, 'site_id' => $site_id ]);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 事件修改开关状态
|
||||
*/
|
||||
public function enableCallBack($is_use, $site_id = 1, $app_module = 'shop')
|
||||
{
|
||||
$config = new ConfigModel();
|
||||
$res = $config->modifyConfigIsUse($is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'ALI_SMS_CONFIG' ] ]);
|
||||
return $res;
|
||||
}
|
||||
|
||||
}
|
||||
76
addon/alisms/model/Sms.php
Executable file
76
addon/alisms/model/Sms.php
Executable file
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alisms\model;
|
||||
|
||||
use app\model\BaseModel;
|
||||
use Overtrue\EasySms\EasySms;
|
||||
use Overtrue\EasySms\Exceptions\InvalidArgumentException;
|
||||
use Overtrue\EasySms\Exceptions\NoGatewayAvailableException;
|
||||
use Overtrue\EasySms\Strategies\OrderStrategy;
|
||||
|
||||
/**
|
||||
* 阿里云短信
|
||||
*/
|
||||
class Sms extends BaseModel
|
||||
{
|
||||
/**
|
||||
* 短信发送
|
||||
* @param array $param
|
||||
* @return array|mixed
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function send($param = [])
|
||||
{
|
||||
|
||||
$config_model = new Config();
|
||||
$config_result = $config_model->getSmsConfig();
|
||||
if ($config_result[ "data" ][ "is_use" ]) {
|
||||
$config = $config_result[ "data" ][ "value" ];
|
||||
$sms_info = $param[ "message_info" ][ "sms_json_array" ];//消息类型模板 短信模板信息
|
||||
if (empty($sms_info[ "alisms" ])) return $this->error([], "消息模板尚未配置");
|
||||
$sms_info = $sms_info[ "alisms" ];
|
||||
$var_parse = $param[ "var_parse" ];//变量解析
|
||||
$account = $param[ "sms_account" ];//发送手机号
|
||||
//加入阿里云短信配置
|
||||
$sms_config = [
|
||||
// HTTP 请求的超时时间(秒)
|
||||
'timeout' => 5.0,
|
||||
// 默认发送配置
|
||||
'default' => [
|
||||
// 网关调用策略,默认:顺序调用
|
||||
'strategy' => OrderStrategy::class,
|
||||
// 默认可用的发送网关
|
||||
'gateways' => [ 'aliyun' ],
|
||||
],
|
||||
// 可用的网关配置
|
||||
'gateways' => [
|
||||
"aliyun" => [
|
||||
'access_key_id' => $config[ "access_key_id" ],
|
||||
'access_key_secret' => $config[ "access_key_secret" ],
|
||||
'sign_name' => $config[ "smssign" ],
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
try {
|
||||
$easySms = new EasySms($sms_config);
|
||||
$easySms->send($account, [
|
||||
'template' => $sms_info[ "template_id" ],
|
||||
'data' => $var_parse,
|
||||
]);
|
||||
return $this->success([ "addon" => "alisms", "addon_name" => "阿里云短信", "content" => $sms_info[ "content" ] ]);
|
||||
} catch (NoGatewayAvailableException $exception) {
|
||||
$message = $exception->getException('aliyun')->getMessage();
|
||||
return $this->error([ "content" => $sms_info[ "content" ] ], $message ? : '短信发送异常');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
86
addon/alisms/shop/controller/Message.php
Executable file
86
addon/alisms/shop/controller/Message.php
Executable file
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alisms\shop\controller;
|
||||
|
||||
use app\model\message\Message as MessageModel;
|
||||
use app\model\message\MessageTemplate as MessageTemplateModel;
|
||||
use app\shop\controller\BaseShop;
|
||||
|
||||
/**
|
||||
* 阿里云短信消息管理
|
||||
*/
|
||||
class Message extends BaseShop
|
||||
{
|
||||
/**
|
||||
* 编辑模板消息
|
||||
* @return array|mixed|string
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$message_model = new MessageModel();
|
||||
$keywords = input("keywords", "");
|
||||
$info_result = $message_model->getMessageInfo($this->site_id, $keywords);
|
||||
$info = $info_result[ "data" ];
|
||||
if (request()->isJson()) {
|
||||
if (empty($info))
|
||||
return error("", "不存在的模板信息!");
|
||||
|
||||
$sms_is_open = input('sms_is_open', 0);
|
||||
$sms_json_array = !empty($info[ "sms_json_array" ]) ? $info[ "sms_json_array" ] : [];//短信配置
|
||||
$template_id = input("template_id", '');//短信模板id
|
||||
$smssign = input("smssign", '');//短信签名
|
||||
$content = input("content", '');//短信签名
|
||||
|
||||
$ali_array = [];
|
||||
if (!empty($sms_json_array[ "alisms" ])) {
|
||||
$ali_array = $sms_json_array[ "alisms" ];
|
||||
}
|
||||
$ali_array[ 'template_id' ] = $template_id;//模板ID (备注:服务商提供的模板ID)
|
||||
$ali_array[ 'content' ] = $content;//模板内容 (备注:仅用于显示)
|
||||
$ali_array[ 'smssign' ] = $smssign;//短信签名 (备注:请填写短信签名(如果服务商是大于请填写审核成功的签名))
|
||||
$sms_json_array[ "alisms" ] = $ali_array;
|
||||
$data = array (
|
||||
'sms_json' => json_encode($sms_json_array),
|
||||
);
|
||||
$condition = array (
|
||||
[ "keywords", "=", $keywords ]
|
||||
);
|
||||
$template_model = new MessageTemplateModel();
|
||||
$res = $template_model->editMessageTemplate($data, $condition);
|
||||
if ($res[ 'code' ] == 0) {
|
||||
$res = $message_model->editMessage([ 'sms_is_open' => $sms_is_open, 'site_id' => $this->site_id, 'keywords' => $keywords ], [
|
||||
[ "keywords", "=", $keywords ],
|
||||
[ 'site_id', '=', $this->site_id ],
|
||||
]);
|
||||
}
|
||||
return $res;
|
||||
} else {
|
||||
if (empty($info))
|
||||
$this->error("不存在的模板信息!");
|
||||
|
||||
$sms_json_array = $info[ "sms_json_array" ];//短信配置
|
||||
$ali_array = [];
|
||||
if (!empty($sms_json_array[ "alisms" ])) {
|
||||
$ali_array = $sms_json_array[ "alisms" ];
|
||||
}
|
||||
$this->assign("info", $ali_array);
|
||||
$this->assign("keywords", $keywords);
|
||||
|
||||
//模板变量
|
||||
$message_variable_list = $info[ "message_json_array" ];
|
||||
$this->assign("message_variable_list", $message_variable_list);
|
||||
|
||||
$this->assign('sms_is_open', $info[ 'sms_is_open' ]);
|
||||
return $this->fetch('message/edit');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
44
addon/alisms/shop/controller/Sms.php
Executable file
44
addon/alisms/shop/controller/Sms.php
Executable file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\alisms\shop\controller;
|
||||
|
||||
use addon\alisms\model\Config as ConfigModel;
|
||||
use app\shop\controller\BaseShop;
|
||||
|
||||
/**
|
||||
* 阿里云短信 控制器
|
||||
*/
|
||||
class Sms extends BaseShop
|
||||
{
|
||||
public function config()
|
||||
{
|
||||
$config_model = new ConfigModel();
|
||||
if (request()->isJson()) {
|
||||
$access_key_id = input("access_key_id", "");
|
||||
$access_key_secret = input("access_key_secret", "");
|
||||
$smssign = input("smssign", '');//短信签名
|
||||
|
||||
$status = input("status", 0);//启用状态
|
||||
$data = array (
|
||||
"access_key_id" => $access_key_id,
|
||||
"access_key_secret" => $access_key_secret,
|
||||
"smssign" => $smssign
|
||||
);
|
||||
$result = $config_model->setSmsConfig($data, $status, $this->site_id, $this->app_module);
|
||||
return $result;
|
||||
} else {
|
||||
$info_result = $config_model->getSmsConfig($this->site_id, $this->app_module);
|
||||
$info = $info_result[ "data" ];
|
||||
$this->assign("info", $info);
|
||||
return $this->fetch("sms/config");
|
||||
}
|
||||
}
|
||||
}
|
||||
105
addon/alisms/shop/view/message/edit.html
Executable file
105
addon/alisms/shop/view/message/edit.html
Executable file
@@ -0,0 +1,105 @@
|
||||
<style>
|
||||
.layui-btn-primary:hover {border-color: #C9C9C9;}
|
||||
.number-con {margin-right: 10px;}
|
||||
</style>
|
||||
|
||||
<div class="layui-form form-wrap">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">短信类型:</label>
|
||||
<div class="layui-input-block">阿里云短信</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否开启:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="sms_is_open" value="1" {if $sms_is_open == 1}checked{/if} lay-skin="switch">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>模板CODE:</label>
|
||||
<div class="layui-input-block">
|
||||
<input name="template_id" type="text" value="{if !empty($info)}{$info.template_id}{/if}" lay-verify="required" placeholder="短信模板ID" class="layui-input len-long">
|
||||
</div>
|
||||
<div class="word-aux">必须与阿里云短信模板中要使用的模版CODE一致,否则无效!</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">数据值:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $message_variable_list as $message_variable_k => $message_variable_v}
|
||||
<button class="layui-btn layui-btn-primary number-con" onclick="clickBtn('{$message_variable_k}')">{$message_variable_v}</button>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">短信内容:</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea id="text_area" name="content" class="layui-textarea len-long">{if !empty($info)}{$info.content}{/if}</textarea>
|
||||
</div>
|
||||
<div class="word-aux">变量只能使用上方数据值中的变量,否则不会被解析</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
|
||||
</div>
|
||||
<input type="hidden" name="keywords" value="{$keywords}">
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use('form', function() {
|
||||
var form = layui.form;
|
||||
var repeat_flag = false; //防重复标识
|
||||
form.render();
|
||||
|
||||
/**
|
||||
* 监听提交
|
||||
*/
|
||||
form.on('submit(save)', function(data) {
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
|
||||
$.ajax({
|
||||
dataType: 'JSON',
|
||||
type: 'POST',
|
||||
url: ns.url("alisms://shop/message/edit"),
|
||||
data: data.field,
|
||||
success: function(res){
|
||||
repeat_flag = false;
|
||||
|
||||
if (res.code == 0) {
|
||||
layer.confirm('编辑成功', {
|
||||
title:'操作提示',
|
||||
btn: ['返回列表', '继续编辑'],
|
||||
yes: function(index, layero) {
|
||||
location.hash = ns.hash("shop/message/lists")
|
||||
layer.close(index);
|
||||
},
|
||||
btn2: function(index, layero) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
layer.msg(res.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function back(){
|
||||
location.hash = ns.hash("shop/message/lists");
|
||||
}
|
||||
|
||||
function clickBtn(con) {
|
||||
var txtArea = $("#text_area")[0];
|
||||
var content = txtArea.value;//文本域内容
|
||||
var start = txtArea.selectionStart; //光标的初始位置,selectionStart:选区开始位置;selectionEnd:选区结束位置。
|
||||
|
||||
txtArea.value = content.substring(0, txtArea.selectionStart) + '{' + con + '}' + content.substring(txtArea.selectionEnd, content.length);
|
||||
var position = start + con.length;
|
||||
$("#text_area").focus();
|
||||
txtArea.setSelectionRange(position + 2, position + 2); //setSelectionRange()方法用来设置<input>元素当前选中的文本的开始和结束位置
|
||||
}
|
||||
</script>
|
||||
80
addon/alisms/shop/view/sms/config.html
Executable file
80
addon/alisms/shop/view/sms/config.html
Executable file
@@ -0,0 +1,80 @@
|
||||
<div class="layui-form form-wrap">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否开启:</label>
|
||||
<div class="layui-input-block" id="isOpen">
|
||||
<input type="checkbox" name="status" lay-filter="isOpen" value="1" lay-skin="switch" {if condition="$info.is_use == 1"} checked {/if} />
|
||||
</div>
|
||||
<div class="word-aux">当前使用阿里云短信配置</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">APP_KEY:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="access_key_id" placeholder="请输入内容APP_KEY" {if $info.value } value="{$info.value.access_key_id}" {/if} autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">SECRET_KEY:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="access_key_secret" placeholder="请输入SECRET_KEY" {if $info.value } value="{$info.value.access_key_secret}" {/if} autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">短信内容签名:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="smssign" placeholder="请输入短信内容签名" {if $info.value } value="{$info.value.smssign}" {/if} autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 表单操作 -->
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="backSms()">返回</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use('form', function() {
|
||||
var form = layui.form,
|
||||
repeat_flag = false; //防重复标识
|
||||
form.render();
|
||||
|
||||
form.on('submit(save)', function(data) {
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("alisms://shop/sms/config"),
|
||||
data: data.field,
|
||||
dataType: 'JSON',
|
||||
type: 'POST',
|
||||
success: function(res) {
|
||||
repeat_flag = false;
|
||||
|
||||
if (res.code == 0) {
|
||||
layer.confirm('编辑成功', {
|
||||
title:'操作提示',
|
||||
btn: ['返回列表', '继续编辑'],
|
||||
yes: function(index, layero) {
|
||||
location.hash = ns.hash("shop/message/sms")
|
||||
layer.close(index);
|
||||
},
|
||||
btn2: function(index, layero) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
layer.msg(res.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function backSms() {
|
||||
location.hash = ns.hash("shop/message/sms");
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user