Files
huangjingfen/pro_v3.5.1/app/controller/admin/v1/system/SystemTimer.php
panchengyong 965ac7bc86 fix(fsgx): 积分释放定时任务、佣金轮巡与 UniApp 体验
- PointsReleaseServices: 使用 Db::table 查询与更新,构造函数注入 UserDao;日志与账单独立 try/catch\n- SystemTimer: implement_timer 捕获后重新抛出异常,便于 run_now 返回错误\n- SystemTimerServices / 控制器: runNow 返回任务结果并在 API 中带回 result\n- StoreOrderCreateServices: 报单佣金位次修正与多件轮巡\n- UniApp: 佣金记录跳转 type=2、余额提现免手续费展示、状态页与资产页头部渐变与提现页一致\n- docs: 增加 fsgx-issues-0328-1 问题跟踪

Made-with: Cursor
2026-03-29 10:45:16 +08:00

156 lines
4.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\controller\admin\v1\system;
use app\controller\admin\AuthController;
use app\services\system\timer\SystemTimerServices;
use think\annotation\Inject;
/**
* 定时任务表控制器
* Class SystemTimer
* @package app\controller\admin\v1\system
*/
class SystemTimer extends AuthController
{
/**
* @var SystemTimerServices
*/
#[Inject]
protected SystemTimerServices $services;
/**
* 定时任务名称及标识
* @return mixed
*/
public function task_name()
{
return $this->success($this->services->getTasKName());
}
/**
* 显示列表
* @return mixed
*/
public function index()
{
$where['is_del'] = 0;
return $this->success($this->services->getTimerList($where));
}
/**
* 删除指定资源
* @param string $id
* @return \think\Response
*/
public function delete($id)
{
$this->services->del($id);
$this->services->delOneTimerCache($id);
return $this->success('删除成功');
}
/**
* 修改状态
* @param string $is_show
* @param string $id
*/
public function set_show($id = '', $is_show = '')
{
if ($is_show == '' || $id == '') return $this->fail('缺少参数');
$this->services->setShow($id, $is_show);
$this->services->updateOneTimerCache($id);
return $this->success($is_show == 1 ? '显示成功' : '隐藏成功');
}
/**获取单条定时器数据
* @param $id
* @return void
*/
public function get_timer_one($id)
{
return $this->success($this->services->getOneTimer($id));
}
/**
* 保存定时任务
* @return mixed
*/
public function save()
{
$data = $this->request->postMore([
['name', ''],
['mark', ''],
['type', 0],
['title', ''],
['is_open', 0],
['cycle', '']
]);
if (!$data['name']) {
return $this->fail('请输入定时任务名称');
}
if (!$data['mark']) {
return $this->fail('请输入定时任务标识');
}
$this->services->createData($data);
$this->services->setAllTimerCache();
return $this->success('添加定时器成功!');
}
/**
* 手动立即触发一个定时任务
* @param $id
* @return mixed
*/
public function run_now($id)
{
$timer = $this->services->getOneTimer($id);
$mark = $timer['mark'] ?? '';
if (!$mark) {
return $this->fail('定时任务标识不存在');
}
try {
$result = $this->services->runNow($mark);
return $this->success('任务已触发并执行成功', ['result' => $result]);
} catch (\Throwable $e) {
return $this->fail($e->getMessage());
}
}
/**
* 更新定时任务
* @param $id
* @return mixed
*/
public function update($id)
{
$data = $this->request->postMore([
['name', ''],
['mark', ''],
['type', 0],
['title', ''],
['is_open', 0],
['cycle', '']
]);
if (!$data['name']) {
return $this->fail('请输入定时任务名称');
}
if (!$data['mark']) {
return $this->fail('请输入定时任务标识');
}
$this->services->editData($id, $data);
$this->services->updateOneTimerCache($id);
return $this->success('修改成功!');
}
}