初始上传

This commit is contained in:
2026-04-04 17:27:12 +08:00
parent 4d80d28eb4
commit b7e11774ee
11191 changed files with 1588469 additions and 0 deletions

View 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');
}
}
}

View 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");
}
}
}

View 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>

View 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>