徐总多门店
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

138 lines
4.2 KiB

<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\controller\admin\v1\notification\sms;
use app\services\message\sms\SmsAdminServices;
use app\services\serve\ServeServices;
use crmeb\services\CacheService;
use app\controller\admin\AuthController;
use crmeb\services\SystemConfigService;
use think\facade\App;
/**
* 短信配置
* Class SmsConfig
* @package app\controller\admin\v1\notification\sms
*/
class SmsConfig extends AuthController
{
/**
* 构造方法
* SmsConfig constructor.
* @param App $app
* @param SmsAdminServices $services
*/
public function __construct(App $app, SmsAdminServices $services)
{
parent::__construct($app);
$this->services = $services;
}
/**
* 保存短信配置
* @return mixed
*/
public function save_basics()
{
[$account, $token] = $this->request->postMore([
['sms_account', ''],
['sms_token', '']
], true);
$this->validate(['sms_account' => $account, 'sms_token' => $token], \app\validate\admin\notification\SmsConfigValidate::class);
if(sys_config('sms_account') && sys_config('sms_token')){
return $this->success('保存成功');
}
if ($this->services->updateSmsConfig($account, $token)) {
return $this->success('保存成功');
} else {
return $this->fail('保存失败');
}
}
/**
* 检测登录
* @return mixed
*/
public function is_login(ServeServices $services)
{
$sms_info = CacheService::redisHandler()->get('sms_account');
$data = ['status' => false, 'info' => ''];
if ($sms_info) {
try {
$result = $services->user()->getUser();
} catch (\Throwable $e) {
$result = [];
}
if (!$result) {
$this->logout();
} else {
$data['status'] = true;
$data['info'] = $sms_info;
}
return $this->success($data);
} else {
\crmeb\services\SystemConfigService::clear();
$data = SystemConfigService::more(['sms_account', 'sms_token']);
$account = $data['sms_account'] ?? '';
$password = $data['sms_token'] ?? '';
//没有退出登录 清空这两个数据 自动登录
if ($account && $password) {
try {
$res = $services->user()->login($account, $password);
} catch (\Throwable $e) {
return $this->success(['status' => false, 'info' => '']);
}
if ($res) {
CacheService::redisHandler()->set('sms_account', $account);
$data['status'] = true;
$data['info'] = $account;
}
}
}
return $this->success($data);
}
/**
* 退出
* @return mixed
* @throws \Psr\SimpleCache\InvalidArgumentException
*/
public function logout()
{
CacheService::redisHandler()->delete('sms_account');
$this->services->updateSmsConfig('', '');
return $this->success('退出成功');
}
/**
* 短信发送记录
* @return mixed
*/
public function record(ServeServices $services)
{
[$page, $limit, $status] = $this->request->getMore([
[['page', 'd'], 0],
[['limit', 'd'], 10],
['type', '', '', 'status'],
], true);
return $this->success($services->user()->record($page, $limit, 1, $status));
}
/**
* @return mixed
*/
public function data()
{
return $this->success($this->services->getSmsData());
}
}