123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?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);
- }
- }
|