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.
242 lines
10 KiB
242 lines
10 KiB
<?php
|
|
declare (strict_types=1);
|
|
|
|
/**
|
|
* Created by 安徽云掌.
|
|
* User: 云掌.帮德
|
|
* Date: 2020/3/8 22:30
|
|
* Desc: 统一参考类
|
|
*/
|
|
|
|
namespace app\api\controller;
|
|
|
|
use think\App;
|
|
|
|
/**
|
|
* Demo类添加、修改等公共请求参数
|
|
* @OA\Schema (
|
|
* schema = "DemoField",
|
|
* required={"id","username","password","sex","phone"},
|
|
* @OA\Property(property="username",type="string",minLength=2,maxLength=20,mock={"mock":"@uname"},default="Jessica Smitch",description="管理员名称"),
|
|
* @OA\Property(property="truename",type="string",minLength=2,maxLength=20,mock={"mock":"@uname"},default="jack ",description="管理员真实姓名"),
|
|
* @OA\Property(property="password",type="string",minLength=6,maxLength=20,mock={"mock":"@string"},default="",description="管理员密码"),
|
|
* @OA\Property(property="phone",type="integer",format="int15",minLength=11,maxLength=11,default="",description="手机号"),
|
|
* @OA\Property(property="email",type="string",minLength=5,maxLength=50,mock={"mock":"@email"},default="",description="管理员邮箱"),
|
|
* @OA\Property(property="birthday",type="string",default="2017-02-02 18:31:45",format="datetime",description="管理员生日"),
|
|
* @OA\Property(property="age",type="integer",format="int32",default="1",minimum=1,exclusiveMinimum=true,maximum=150,exclusiveMaximum=true,minLength=1,maxLength=3,description="年龄"),
|
|
* ),
|
|
*/
|
|
class Demo extends Common
|
|
{
|
|
public $model = null;
|
|
|
|
public function __construct(App $app)
|
|
{
|
|
parent::__construct($app);
|
|
$this->model = new \app\api\model\Demo();
|
|
}
|
|
|
|
/**
|
|
* @OA\Get (
|
|
* path="demo/index",tags={"测试案例"},summary="获取DEMO列表",description="根据相关参数获取DEMO列表",
|
|
* @OA\Parameter(ref="#/components/parameters/token"),
|
|
* @OA\Parameter(name="username",in="query",description="用户名称",@OA\Schema (type="string")),
|
|
* @OA\Parameter (name="sex",in="query",description="用户年龄",@OA\Schema (type="integer",format="int15")),
|
|
* @OA\Parameter (name="page",in="query",description="当前页码",@OA\Schema (type="integer",format="int15")),
|
|
* @OA\Parameter (name="limit",in="query",description="分页数量",@OA\Schema (type="integer",format="int15")),
|
|
* @OA\Response(
|
|
* response=200,
|
|
* description="返回DEMo用户数据信息",
|
|
* @OA\JsonContent(ref="#/components/schemas/DemoMsgExport"),
|
|
* ),
|
|
* )
|
|
*/
|
|
public function index()
|
|
{
|
|
//接受参数
|
|
$_get = $this->request->get();
|
|
|
|
//验证参数
|
|
validate(\app\api\validate\Demo::class)->scene('lists')->check($_get);
|
|
|
|
//指定搜索参数
|
|
$this->model->search_arr = ['username', 'phone:OR', 'sex:OR', 'truename'];
|
|
|
|
//数据处理
|
|
$_data = $this->model->index();
|
|
|
|
//返回数据
|
|
return send_http_status($_data);
|
|
}
|
|
|
|
/**
|
|
* @OA\Get (
|
|
* path="demo/read/{id}",tags={"测试案例"},summary="获取DEMO详情",description="根据ID查询DEMO信息",
|
|
* @OA\Parameter(ref="#/components/parameters/token"),
|
|
* @OA\Parameter(name="id",in="path",required=true,description="ID",@OA\Schema (type="integer",format="int32")),
|
|
* @OA\Response(
|
|
* response=200,
|
|
* description="返回DEMO单条用户数据信息",
|
|
* @OA\JsonContent(ref="#/components/schemas/DemoMsgExport"),
|
|
* ),
|
|
* )
|
|
*/
|
|
public function read(int $id = 0)
|
|
{
|
|
//验证参数
|
|
validate(\app\api\validate\Demo::class)->scene('read')->check(['id' => $id]);
|
|
|
|
//返回数据
|
|
return send_http_status($this->model->parentRead($id));
|
|
}
|
|
|
|
/**
|
|
* @OA\Post (path="demo/add",tags={"测试案例"},summary="添加DEMO数据",description="添加后台DEMO管理数据",
|
|
* @OA\Parameter(ref="#/components/parameters/token"),
|
|
* @OA\RequestBody(
|
|
* @OA\MediaType(mediaType="application/json",
|
|
* @OA\Schema(ref="#/components/schemas/DemoField"),
|
|
* ),
|
|
* ),
|
|
* @OA\Response(
|
|
* response=200,
|
|
* description="添加成功",
|
|
* @OA\JsonContent(type="object",
|
|
* @OA\Property(property="code", type="integer",format="int32",description="状态码"),
|
|
* @OA\Property(property="msg", type="string",description="提示信息"),
|
|
* @OA\Property(property="count", type="integer",format="int32",description="记录数"),
|
|
* @OA\Property(property="data", type="integer",format="int32",description="添加成功的的数据ID"),
|
|
* ),
|
|
* ),
|
|
* )
|
|
* @Log [sys_name] 在 [sys_time] 创建了测试:[username]
|
|
*/
|
|
public function add()
|
|
{
|
|
//接收参数
|
|
$_post = $this->request->post();
|
|
|
|
//验证参数
|
|
validate(\app\api\validate\Demo::class)->check($_post);
|
|
|
|
//处理并返回参数
|
|
$insertId = $this->model->parentAdd($_post);
|
|
return send_http_status($insertId, $insertId ? 201 : 202);
|
|
}
|
|
|
|
/**
|
|
* @OA\Post (path="demo/edit/id/{id}",tags={"测试案例"},summary="修改DEMO数据",description="修改后台DEMO管理数据",
|
|
* @OA\Parameter(ref="#/components/parameters/token"),
|
|
* @OA\RequestBody(
|
|
* @OA\MediaType(mediaType="application/json",
|
|
* @OA\Schema(ref="#/components/schemas/DemoField"),
|
|
* ),
|
|
* ),
|
|
* @OA\Response(
|
|
* response=200,
|
|
* description="修改数据状态",
|
|
* @OA\JsonContent(type="object",
|
|
* @OA\Property(property="code", type="integer",format="int32",description="状态码"),
|
|
* @OA\Property(property="msg", type="string",description="提示信息"),
|
|
* @OA\Property(property="count", type="integer",format="int32",description="记录数"),
|
|
* @OA\Property(property="data", type="string",description="不返回"),
|
|
* ),
|
|
* ),
|
|
* )
|
|
* @Log [sys_name]在[sys_time]修改了测试账号[username]的数据
|
|
*/
|
|
public function edit(int $id = 0)
|
|
{
|
|
//接收参数
|
|
$_post = $this->request->post();
|
|
$_post['id'] = empty($_post['id']) ? $id : 0; //安全赋值,以免客户端没传id,修改需要id字段
|
|
|
|
//验证参数
|
|
validate(\app\api\validate\Demo::class)->scene('update')->check($_post);
|
|
|
|
//处理并返回数据
|
|
return send_http_status('', $this->model->parentEdit($_post, $id) ? 203 : 204);
|
|
}
|
|
|
|
|
|
/**
|
|
* @OA\Post (
|
|
* path="demo/delete",tags={"测试案例"},summary="删除DEMO数据",description="根据ID删除DEMO信息",
|
|
* @OA\Parameter(ref="#/components/parameters/token"),
|
|
* @OA\RequestBody(
|
|
* @OA\MediaType(mediaType="application/json",
|
|
* @OA\Schema (
|
|
* required={"id"},
|
|
* @OA\Property(property="id",type="string",description="数据ID或数据ID集合 id=1或 id=1,2,8"),
|
|
* ),
|
|
* ),
|
|
* ),
|
|
* @OA\Response(
|
|
* response=200,
|
|
* description="删除数据状态",
|
|
* @OA\JsonContent(type="object",
|
|
* @OA\Property(property="code", type="integer",format="int32",description="状态码"),
|
|
* @OA\Property(property="msg", type="string",description="提示信息"),
|
|
* @OA\Property(property="count", type="integer",format="int32",description="记录数"),
|
|
* @OA\Property(property="data", type="string",description="不返回"),
|
|
* ),
|
|
* ),
|
|
* )
|
|
* @Log [sys_name] 在 [sys_time] 删除了测试账号:[username]
|
|
*/
|
|
public function delete()
|
|
{
|
|
//接收参数
|
|
$ids = $this->request->post('id');
|
|
|
|
//验证参数
|
|
validate(['ids|id' => 'require|length:1,1000'])->check(['ids' => $ids]);
|
|
|
|
//处理并返回数据
|
|
return send_http_status('', $this->model->parentDel($ids) ? 205 : 206);
|
|
}
|
|
|
|
/**
|
|
* @OA\Post (
|
|
* path="demo/status",tags={"测试案例"},summary="更新DEMO状态",description="根据ID及status更新DEMO状态",
|
|
* @OA\Parameter(ref="#/components/parameters/token"),
|
|
* @OA\RequestBody(
|
|
* @OA\MediaType(mediaType="application/json",
|
|
* @OA\Schema (
|
|
* required={"id","status"},
|
|
* @OA\Property(property="id",type="string",description="数据ID或数据ID集合 id=1或 id=1,2,8"),
|
|
* @OA\Property(property="status",type="integer",format="int15",description="数据状态 0禁用 1启用"),
|
|
* ),
|
|
* ),
|
|
* ),
|
|
* @OA\Response(
|
|
* response=200,
|
|
* description="删除数据状态",
|
|
* @OA\JsonContent(type="object",
|
|
* @OA\Property(property="code", type="integer",format="int32",description="状态码"),
|
|
* @OA\Property(property="msg", type="string",description="提示信息"),
|
|
* @OA\Property(property="count", type="integer",format="int32",description="记录数"),
|
|
* @OA\Property(property="data", type="string",description="不返回"),
|
|
* ),
|
|
* ),
|
|
* )
|
|
* @Log [sys_name] 在 [sys_time] 设置ID为[id]测试账号为:[dictionary_status]
|
|
*/
|
|
public function status()
|
|
{
|
|
//接收参数
|
|
$ids = $this->request->param('id');
|
|
$status = $this->request->param('status');
|
|
|
|
//验证参数
|
|
$_rules = [
|
|
'ids|id' => 'require|length:1,100',
|
|
'status|状态值' => 'require|number|length:1',
|
|
];
|
|
validate($_rules)->check(['ids' => $ids, 'status' => $status]);
|
|
|
|
//处理并返回数据
|
|
return send_http_status('', $this->model->parentStatus($ids, $status) !== false ? 207 : 208);
|
|
}
|
|
|
|
}
|
|
|