100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.5 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 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('编辑失败');
 | 
						|
        }
 | 
						|
 
 | 
						|
        return $this->success('编辑成功');
 | 
						|
    }
 | 
						|
}
 |