This repository has been archived on 2024-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
yoshop/source/application/store/controller/Setting.php
2020-04-25 22:53:20 +08:00

133 lines
3.2 KiB
PHP

<?php
namespace app\store\controller;
use app\store\model\Printer as PrinterModel;
use app\store\model\Setting as SettingModel;
use app\common\library\sms\Driver as SmsDriver;
/**
* 系统设置
* Class Setting
* @package app\store\controller
*/
class Setting extends Controller
{
/**
* 商城设置
* @return mixed
* @throws \think\exception\DbException
*/
public function store()
{
return $this->updateEvent('store');
}
/**
* 交易设置
* @return mixed
* @throws \think\exception\DbException
*/
public function trade()
{
return $this->updateEvent('trade');
}
/**
* 短信通知
* @return mixed
* @throws \think\exception\DbException
*/
public function sms()
{
return $this->updateEvent('sms');
}
/**
* 发送订阅消息
* @return mixed
* @throws \think\exception\DbException
*/
public function tplMsg()
{
return $this->updateEvent('tplMsg');
}
/**
* 发送短信通知测试
* @param $AccessKeyId
* @param $AccessKeySecret
* @param $sign
* @param $msg_type
* @param $template_code
* @param $accept_phone
* @return array
* @throws \think\Exception
*/
public function smsTest($AccessKeyId, $AccessKeySecret, $sign, $msg_type, $template_code, $accept_phone)
{
$SmsDriver = new SmsDriver([
'default' => 'aliyun',
'engine' => [
'aliyun' => [
'AccessKeyId' => $AccessKeyId,
'AccessKeySecret' => $AccessKeySecret,
'sign' => $sign,
$msg_type => compact('template_code', 'accept_phone'),
],
],
]);
$templateParams = [];
if ($msg_type === 'order_pay') {
$templateParams = ['order_no' => '2018071200000000'];
}
if ($SmsDriver->sendSms($msg_type, $templateParams, true)) {
return $this->renderSuccess('发送成功');
}
return $this->renderError('发送失败 ' . $SmsDriver->getError());
}
/**
* 上传设置
* @return mixed
* @throws \think\exception\DbException
*/
public function storage()
{
return $this->updateEvent('storage');
}
/**
* 小票打印设置
* @return mixed
* @throws \think\exception\DbException
*/
public function printer()
{
// 获取打印机列表
$printerList = PrinterModel::getAll();
return $this->updateEvent('printer', compact('printerList'));
}
/**
* 更新商城设置事件
* @param $key
* @param $vars
* @return array|mixed
* @throws \think\exception\DbException
*/
private function updateEvent($key, $vars = [])
{
if (!$this->request->isAjax()) {
$vars['values'] = SettingModel::getItem($key);
return $this->fetch($key, $vars);
}
$model = new SettingModel;
if ($model->edit($key, $this->postData($key))) {
return $this->renderSuccess('操作成功');
}
return $this->renderError($model->getError() ?: '操作失败');
}
}