mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-29 05:50:50 +00:00
149 lines
4.0 KiB
PHP
149 lines
4.0 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||
// +----------------------------------------------------------------------
|
||
// | Author: CRMEB Team <admin@crmeb.com>
|
||
// +----------------------------------------------------------------------
|
||
|
||
declare(strict_types=1);
|
||
|
||
namespace app\adminapi\controller\driver\sms;
|
||
|
||
use app\adminapi\controller\AuthController;
|
||
use app\services\driver\sms\SmsDriverServices;
|
||
|
||
/**
|
||
* 短信驱动管理控制器
|
||
* Class SmsDriverController
|
||
* @package app\adminapi\controller\driver\sms
|
||
*/
|
||
class SmsDriverController extends AuthController
|
||
{
|
||
/**
|
||
* @var SmsDriverServices
|
||
*/
|
||
protected $services;
|
||
|
||
/**
|
||
* 初始化
|
||
*/
|
||
protected function initialize()
|
||
{
|
||
parent::initialize();
|
||
$this->services = app()->make(SmsDriverServices::class);
|
||
}
|
||
|
||
/**
|
||
* 获取短信驱动列表
|
||
* @return mixed
|
||
*/
|
||
public function index()
|
||
{
|
||
try {
|
||
$where = [];
|
||
if ($this->request->has('status', 'param')) {
|
||
$where['status'] = $this->request->param('status');
|
||
}
|
||
$list = $this->services->getList($where);
|
||
return app('json')->success($list);
|
||
} catch (\Throwable $e) {
|
||
return app('json')->fail('获取列表失败:' . $e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine());
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 同步驱动信息(扫描 driver/sms/ 目录写入数据库)
|
||
* @return mixed
|
||
*/
|
||
public function sync()
|
||
{
|
||
try {
|
||
$result = $this->services->syncDrivers();
|
||
return app('json')->success('同步成功', $result);
|
||
} catch (\Throwable $e) {
|
||
return app('json')->fail('同步失败:' . $e->getMessage());
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 修改驱动状态(互斥模式:启用一个会禁用其他)
|
||
* @param int $id
|
||
* @return mixed
|
||
*/
|
||
public function status(int $id)
|
||
{
|
||
$status = (int)$this->request->param('status', 0);
|
||
$this->services->updateStatus($id, $status);
|
||
return app('json')->success('修改成功');
|
||
}
|
||
|
||
/**
|
||
* 获取驱动详情(含配置字段和当前配置值)
|
||
* @param int $id
|
||
* @return mixed
|
||
*/
|
||
public function detail(int $id)
|
||
{
|
||
$data = $this->services->getDetail($id);
|
||
return app('json')->success($data);
|
||
}
|
||
|
||
/**
|
||
* 获取驱动配置字段定义
|
||
* @param string $driverKey
|
||
* @return mixed
|
||
*/
|
||
public function configFields(string $driverKey)
|
||
{
|
||
$fields = $this->services->getConfigFields($driverKey);
|
||
return app('json')->success($fields);
|
||
}
|
||
|
||
/**
|
||
* 获取所有已扫描的驱动列表
|
||
* @return mixed
|
||
*/
|
||
public function drivers()
|
||
{
|
||
$drivers = $this->services->getDrivers();
|
||
return app('json')->success($drivers);
|
||
}
|
||
|
||
/**
|
||
* 获取所有启用的驱动列表
|
||
* @return mixed
|
||
*/
|
||
public function enabled()
|
||
{
|
||
$drivers = $this->services->getAvailableDrivers();
|
||
return app('json')->success($drivers);
|
||
}
|
||
|
||
/**
|
||
* 保存驱动配置
|
||
* @param int $id
|
||
* @return mixed
|
||
*/
|
||
public function saveConfig(int $id)
|
||
{
|
||
$data = $this->request->param();
|
||
$this->services->saveConfig($id, $data);
|
||
return app('json')->success('保存成功');
|
||
}
|
||
|
||
/**
|
||
* 批量排序
|
||
* @return mixed
|
||
*/
|
||
public function sort()
|
||
{
|
||
$sortData = $this->request->param('sort_data', []);
|
||
$this->services->setSort($sortData);
|
||
return app('json')->success('修改成功');
|
||
}
|
||
}
|