计划任务 - 获客场景

This commit is contained in:
柳清爽
2025-04-03 17:52:30 +08:00
parent 505a7c53d4
commit 179a90d23b
4 changed files with 160 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
<?php
// +----------------------------------------------------------------------
// | 计划模块路由配置
// +----------------------------------------------------------------------
use think\facade\Route;
// 定义RESTful风格的API路由
Route::group('v1/', function () {
// 获客场景相关
Route::group('plan/scenes', function () {
Route::get('', 'app\\plan\\controller\\Scene@index'); // 获取场景列表
Route::get(':id', 'app\\plan\\controller\\Scene@read'); // 获取场景详情
});
})->middleware(['jwt']);

View File

@@ -0,0 +1,67 @@
<?php
namespace app\plan\controller;
use think\Controller;
use think\Request;
use app\plan\model\PlanScene;
/**
* 获客场景控制器
*/
class Scene extends Controller
{
/**
* 获取场景列表
*
* @return \think\response\Json
*/
public function index()
{
$page = Request::param('page', 1, 'intval');
$limit = Request::param('limit', 10, 'intval');
$keyword = Request::param('keyword', '');
// 构建查询条件
$where = [];
if (!empty($keyword)) {
$where[] = ['name', 'like', "%{$keyword}%"];
}
// 默认只显示有效场景
$where[] = ['status', '=', 1];
// 查询列表
$result = PlanScene::getSceneList($where, 'id desc', $page, $limit);
return json([
'code' => 200,
'msg' => '获取成功',
'data' => $result
]);
}
/**
* 获取单个场景详情
*
* @param int $id 场景ID
* @return \think\response\Json
*/
public function read($id)
{
// 查询场景信息
$scene = PlanScene::getSceneInfo($id);
if (!$scene) {
return json([
'code' => 404,
'msg' => '场景不存在'
]);
}
return json([
'code' => 200,
'msg' => '获取成功',
'data' => $scene
]);
}
}

View File

@@ -0,0 +1,75 @@
<?php
namespace app\plan\model;
use think\Model;
/**
* 获客场景模型类
*/
class PlanScene extends Model
{
// 设置表名
protected $name = 'plan_scene';
protected $prefix = 'tk_';
// 设置主键
protected $pk = 'id';
// 自动写入时间戳
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'createTime';
protected $updateTime = 'updateTime';
protected $deleteTime = 'deleteTime';
// 定义字段类型
protected $type = [
'id' => 'integer',
'status' => 'integer',
'createTime' => 'integer',
'updateTime' => 'integer',
'deleteTime' => 'integer'
];
/**
* 获取场景列表
*
* @param array $where 查询条件
* @param string $order 排序
* @param int $page 页码
* @param int $limit 每页数量
* @return array 场景列表和总数
*/
public static function getSceneList($where = [], $order = 'id desc', $page = 1, $limit = 10)
{
// 构建查询
$query = self::where($where);
// 计算总数
$total = $query->count();
// 分页查询数据
$list = $query->page($page, $limit)
->order($order)
->select();
return [
'list' => $list,
'total' => $total,
'page' => $page,
'limit' => $limit
];
}
/**
* 获取单个场景信息
*
* @param int $id 场景ID
* @return array|null 场景信息
*/
public static function getSceneInfo($id)
{
return self::where('id', $id)->find();
}
}

View File

@@ -27,4 +27,7 @@ include __DIR__ . '/../application/store/config/route.php';
// 加载CozeAI模块路由配置
include __DIR__ . '/../application/cozeai/config/route.php';
// 加载Plan模块路由配置
include __DIR__ . '/../application/plan/config/route.php';
return [];