2025-04-03 15:50:14 +08:00

114 lines
3.0 KiB
PHP

<?php
namespace app\api\controller\backend;
use app\common\controller\Api;
use app\api\model\Admin as AdminModel;
use think\Db;
/**
* 投诉建议
*/
class Politics extends Api
{
protected $noNeedLogin = ['*'];
protected $noNeedRight = ['*'];
public function _initialize()
{
parent::_initialize();
$id = $this->request->header('Token');
if(!$id){
return $this->error('缺少参数');
}
$user = Db::name('user')->where('token', $id)->find();
if(!$user){
return $this->error('用户不存在','',99998);
}
}
/**
* 首页
*
*/
public function index()
{
$param = $this->request->param();
// // 参数验证
$validate = $this->validate($param, [
'page' => 'number',
'limit' => 'number',
]);
if (true !== $validate) {
return $this->error($validate);
}
$where = [];
if(!empty($param['group_id'])){
$where['a.group_id'] = $param['group_id'];
}
$query = Db::name('politics')
->field([
'a.*',
// 使用 CASE 表达式处理 user_name
Db::raw('CASE WHEN a.open_status = 1 THEN "匿名" ELSE w.nickname END AS user_name'),
'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($where)
->where('a.deletetime', 'null')
->order('a.id', 'asc');
// 分页查询
$list = $query->paginate([
'page' => $param['page'] ?? 1,
'list_rows' => $param['limit'] ?? 10,
]);
// 处理返回数据
$data = [
'total' => $list->total(),
'list' => $list->items(),
];
return $this->success('查询成功', $data);
}
/**
* 编辑投诉建议
* @param int $id 记录ID
*/
public function update()
{
$param = $this->request->param();
$id = $param['id'] ?? 0;
// 参数验证
$validate = $this->validate($param, [
'id' => 'require|number',
'acceptance_content' => 'require',
]);
if (true !== $validate) {
return $this->error($validate);
}
$param['acceptance_status'] = 2;
$param['acceptance_time'] = date('Y-m-d H:i:s');
// 更新数据
$result = Db::name('politics')
->where('id', $id)
->update($param);
if ($result === false) {
return $this->error('编辑失败');
}
$user = Db::name('politics')->where('id', $id)->find();
Mail::createMail($user['user_id'],'您的投诉建议已受理,请查看');
return $this->success('编辑成功');
}
}