流量标签
This commit is contained in:
@@ -12,4 +12,9 @@ Route::group('v1/', function () {
|
||||
Route::get('', 'app\\plan\\controller\\Scene@index'); // 获取场景列表
|
||||
Route::get(':id', 'app\\plan\\controller\\Scene@read'); // 获取场景详情
|
||||
});
|
||||
|
||||
// 流量标签相关
|
||||
Route::group('traffic/tags', function () {
|
||||
Route::get('', 'app\\plan\\controller\\TrafficTag@index'); // 获取标签列表
|
||||
});
|
||||
})->middleware(['jwt']);
|
||||
64
Server/application/plan/controller/TrafficTag.php
Normal file
64
Server/application/plan/controller/TrafficTag.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
namespace app\plan\controller;
|
||||
|
||||
use think\Controller;
|
||||
use think\facade\Request;
|
||||
use app\plan\model\TrafficTag as TrafficTagModel;
|
||||
|
||||
/**
|
||||
* 流量标签控制器
|
||||
*/
|
||||
class TrafficTag extends Controller
|
||||
{
|
||||
/**
|
||||
* 获取标签列表
|
||||
*
|
||||
* @return \think\response\Json
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
try {
|
||||
// 获取登录用户信息
|
||||
$userInfo = request()->userInfo;
|
||||
|
||||
// 获取查询条件
|
||||
$where = [];
|
||||
|
||||
// 关键词搜索
|
||||
$keyword = Request::param('keyword', '');
|
||||
if (!empty($keyword)) {
|
||||
$where[] = ['tagName', 'like', "%{$keyword}%"];
|
||||
}
|
||||
|
||||
// 添加公司ID过滤条件
|
||||
$where[] = ['companyId', '=', $userInfo['companyId']];
|
||||
|
||||
// 获取分页参数
|
||||
$page = (int)Request::param('page', 1);
|
||||
$limit = (int)Request::param('limit', 200); // 默认每页显示200条
|
||||
|
||||
// 获取排序参数
|
||||
$sort = Request::param('sort', 'id');
|
||||
$order = Request::param('order', 'desc');
|
||||
|
||||
// 查询列表
|
||||
$list = TrafficTagModel::getTagsByCompany($where, "{$sort} {$order}", $page, $limit);
|
||||
|
||||
return json([
|
||||
'code' => 200,
|
||||
'msg' => '获取成功',
|
||||
'data' => [
|
||||
'total' => $list->total(),
|
||||
'list' => $list->items(),
|
||||
'page' => $page,
|
||||
'limit' => $limit
|
||||
]
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return json([
|
||||
'code' => 500,
|
||||
'msg' => '获取失败:' . $e->getMessage()
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
56
Server/application/plan/model/TrafficTag.php
Normal file
56
Server/application/plan/model/TrafficTag.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace app\plan\model;
|
||||
|
||||
use think\Model;
|
||||
|
||||
/**
|
||||
* 流量标签模型
|
||||
*/
|
||||
class TrafficTag extends Model
|
||||
{
|
||||
// 设置表名
|
||||
protected $name = 'traffic_tag';
|
||||
protected $prefix = 'tk_';
|
||||
|
||||
// 设置主键
|
||||
protected $pk = 'id';
|
||||
|
||||
// 自动写入时间戳
|
||||
protected $autoWriteTimestamp = 'int';
|
||||
|
||||
// 定义时间戳字段名
|
||||
protected $createTime = 'createTime';
|
||||
protected $updateTime = false; // 没有更新时间字段
|
||||
protected $deleteTime = 'deleteTime';
|
||||
|
||||
// 定义软删除
|
||||
protected $defaultSoftDelete = 0;
|
||||
|
||||
// 定义字段类型
|
||||
protected $type = [
|
||||
'id' => 'integer',
|
||||
'tagName' => 'string',
|
||||
'companyId' => 'integer',
|
||||
'createTime' => 'integer',
|
||||
'deleteTime' => 'integer'
|
||||
];
|
||||
|
||||
/**
|
||||
* 获取标签列表,支持分页和搜索
|
||||
*
|
||||
* @param array $where 查询条件
|
||||
* @param string $order 排序方式
|
||||
* @param int $page 页码
|
||||
* @param int $limit 每页数量
|
||||
* @return \think\Paginator 分页对象
|
||||
*/
|
||||
public static function getTagsByCompany($where = [], $order = 'id desc', $page = 1, $limit = 200)
|
||||
{
|
||||
return self::where($where)
|
||||
->where('deleteTime', 0) // 只查询未删除的记录
|
||||
->order($order)
|
||||
->paginate($limit, false, [
|
||||
'page' => $page
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user