|  | @@ -0,0 +1,102 @@
 | 
	
		
			
				|  |  | +<?php
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +namespace app\api\controller;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +use app\common\controller\Api;
 | 
	
		
			
				|  |  | +use think\Db;
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 消息
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +class Message extends Api
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +    protected $noNeedLogin = [];
 | 
	
		
			
				|  |  | +    protected $noNeedRight = ['*'];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    //个人消息全部改为已读
 | 
	
		
			
				|  |  | +    public function message_read(){
 | 
	
		
			
				|  |  | +        Db::startTrans();
 | 
	
		
			
				|  |  | +        //读取即为已读
 | 
	
		
			
				|  |  | +        $map = [
 | 
	
		
			
				|  |  | +            'user_id'  => $this->auth->id,
 | 
	
		
			
				|  |  | +            'status'   => 0,
 | 
	
		
			
				|  |  | +        ];
 | 
	
		
			
				|  |  | +        $rs = Db::name('message')->where($map)->update(['status'=>1]);
 | 
	
		
			
				|  |  | +        if($rs === false){
 | 
	
		
			
				|  |  | +            Db::rollback();
 | 
	
		
			
				|  |  | +            $this->error('操作失败');
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //系统消息
 | 
	
		
			
				|  |  | +        //全部未读
 | 
	
		
			
				|  |  | +        $rs = Db::name('user_messagesys')->where('user_id',$this->auth->id)->delete();
 | 
	
		
			
				|  |  | +        if($rs === false){
 | 
	
		
			
				|  |  | +            Db::rollback();
 | 
	
		
			
				|  |  | +            $this->error('操作失败');
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //循环全部已读
 | 
	
		
			
				|  |  | +        $list = Db::name('message_sys')->column('id');
 | 
	
		
			
				|  |  | +        if(!empty($list)){
 | 
	
		
			
				|  |  | +            $newall = [];
 | 
	
		
			
				|  |  | +            foreach($list as $key => $msg_id){
 | 
	
		
			
				|  |  | +                $newall[] = [
 | 
	
		
			
				|  |  | +                    'user_id' => $this->auth->id,
 | 
	
		
			
				|  |  | +                    'msg_id' => $msg_id,
 | 
	
		
			
				|  |  | +                ];
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if(!empty($newall)){
 | 
	
		
			
				|  |  | +                $rs = Db::name('user_messagesys')->insertAll($newall);
 | 
	
		
			
				|  |  | +                if($rs === false){
 | 
	
		
			
				|  |  | +                    Db::rollback();
 | 
	
		
			
				|  |  | +                    $this->error('操作失败');
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        Db::commit();
 | 
	
		
			
				|  |  | +        $this->success();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    //我的个人消息列表
 | 
	
		
			
				|  |  | +    public function mylist(){
 | 
	
		
			
				|  |  | +        $list = Db::name('message')
 | 
	
		
			
				|  |  | +            ->field('message.*,user.nickname,user.avatar,topic_dongtai.images')
 | 
	
		
			
				|  |  | +            ->join('user','user.id = message.user_id','LEFT')
 | 
	
		
			
				|  |  | +            ->join('topic_dongtai','topic_dongtai.id = message.dt_id','LEFT')
 | 
	
		
			
				|  |  | +            ->where('message.to_user_id',$this->auth->id)
 | 
	
		
			
				|  |  | +            ->autopage()->order('message.id desc')->select();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if(!empty($list)){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            foreach($list as $key => $value){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                $dongtai_image = explode(',',$value['images']);
 | 
	
		
			
				|  |  | +                $value['dongtai_image'] = isset($dongtai_image[0]) ? localpath_to_netpath($dongtai_image[0]) : '';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if($value['infotype'] == 'dongtai_answer'){
 | 
	
		
			
				|  |  | +                    $value['content'] = Db::name('topic_dongtai_answer')->where('id',$value['infotype_id'])->value('content');
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                $value['createtime_text'] = get_last_time($value['createtime']);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                $list[$key] = $value;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //读取即为已读
 | 
	
		
			
				|  |  | +        $map = [
 | 
	
		
			
				|  |  | +            'to_user_id' => $this->auth->id,
 | 
	
		
			
				|  |  | +            'status' => 0,
 | 
	
		
			
				|  |  | +        ];
 | 
	
		
			
				|  |  | +        Db::name('message')->where($map)->update(['status'=>1]);
 | 
	
		
			
				|  |  | +        $this->success('success',$list);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 |