122 lines
3.4 KiB
PHP
122 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace app\api\controller\mobile;
|
|
|
|
use app\common\controller\Api;
|
|
use think\Db;
|
|
|
|
/**
|
|
* 投诉建议
|
|
*/
|
|
class Politics extends Api
|
|
{
|
|
protected $noNeedLogin = ['*'];
|
|
protected $noNeedRight = ['*'];
|
|
|
|
/**
|
|
* 首页
|
|
*
|
|
*/
|
|
|
|
public function index()
|
|
{
|
|
$token = $this->request->param('token');
|
|
$param = $this->request->param();
|
|
if (!$token) {
|
|
return $this->error('参数错误');
|
|
}
|
|
// 参数验证
|
|
$validate = $this->validate($param, [
|
|
'page' => 'number',
|
|
'limit' => 'number',
|
|
]);
|
|
|
|
if (true !== $validate) {
|
|
return $this->error($validate);
|
|
}
|
|
$user = Db::name('user')
|
|
->where('token', $token)
|
|
->find();
|
|
if(!$user){
|
|
return $this->error('该用户不存在');
|
|
}
|
|
|
|
$query = Db::name('politics')
|
|
->field([
|
|
'a.*','p.name AS user_group_name'
|
|
])
|
|
->alias('a')
|
|
->join('user w','a.user_id = w.id','LEFT')
|
|
->join('user_group p','a.group_id = p.id','LEFT')
|
|
->where('a.user_id', $user['id'])
|
|
->where('a.deletetime', 'null')
|
|
->order('a.createtime', 'desc');
|
|
|
|
// 分页查询
|
|
$list = $query->paginate([
|
|
'page' => $param['page'] ?? 1,
|
|
'list_rows' => $param['limit'] ?? 10,
|
|
]);
|
|
|
|
// 处理返回数据
|
|
$data = [
|
|
'total' => $list->total(),
|
|
'list' => $list->items(),
|
|
];
|
|
|
|
return $this->success('查询成功', $data);
|
|
}
|
|
|
|
|
|
|
|
public function add()
|
|
{
|
|
// 获取请求参数
|
|
$param = $this->request->param();
|
|
$token = $this->request->param('token');
|
|
if (!$token) {
|
|
return $this->error('参数错误');
|
|
}
|
|
$user = Db::name('user')
|
|
->where('token', $token)
|
|
->find();
|
|
if(!$user){
|
|
return $this->error('该用户不存在');
|
|
}
|
|
|
|
// 数据验证规则
|
|
$validate = $this->validate($param, [
|
|
'group_id' => 'require|number|>:0',
|
|
'politics_content' => 'require',
|
|
'politics_images' => 'max:65535', // 根据实际存储格式调整验证规则
|
|
'open_status' => 'in:1,2',
|
|
]);
|
|
|
|
// 验证失败返回错误信息
|
|
if (true !== $validate) {
|
|
return $this->error($validate);
|
|
}
|
|
|
|
// 构建插入数据(自动过滤非表字段)
|
|
$data = [
|
|
'group_id' => $param['group_id'],
|
|
'user_id' => $user['id'],
|
|
'politics_content' => $param['politics_content'],
|
|
'politics_images' => $param['politics_images'] ?? '',
|
|
'open_status' => $param['open_status'] ?? '1', // 默认匿名
|
|
'weigh' => 99,
|
|
'createtime' => date('Y-m-d H:i:s'), // 自动填充创建时间
|
|
'updatetime' => date('Y-m-d H:i:s'), // 自动填充更新时间
|
|
];
|
|
|
|
$result = Db::name('politics')->insert($data);
|
|
|
|
if ($result) {
|
|
return $this->success('提交成功', ['id' => Db::name('politics')->getLastInsID()]);
|
|
} else {
|
|
return $this->error('提交失败');
|
|
}
|
|
|
|
}
|
|
}
|