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('提交失败');
}
}
}