|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|