114 lines
3.0 KiB
PHP
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('编辑成功');
|
|
}
|
|
}
|