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