Message.php
3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/12/30
* Time: 17:17
*/
namespace app\api\controller;
use app\common\controller\Api;
use think\Db;
/**
* 平台消息模块
*/
class Message extends Api
{
/**
* @ApiTitle (平台消息列表)
* @ApiSummary (平台消息列表)
* @ApiMethod (POST)
* @ApiRoute (/api/message/index)
*
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
*
* @ApiReturn({
"code": 1,
"msg": "SUCCESS",
"time": "1553839125",
"data": {
'title'://标题,
'user_id'://用户ID
'is_read': //是否已读(0未读1已读),
'content'://内容,
'type'://类型(1普通2活动3奖品)
'num'://未读消息数量
'total'://通知数量
'createtime'://创建时间
}
})
*/
public function index()
{
$user_id = $this->getUserId();
$data['list'] = Db::name('message')
->where('user_id',$user_id)
->whereOr('user_id','null')
->order('is_read desc,createtime desc')
->select();
$data['num'] = Db::name('message')
->where('is_read',0)
->where(function ($query)use($user_id){
$query->where('user_id',$user_id)
->whereOr('user_id','null');
})
->order('is_read desc,createtime desc')
->count();
$data['total'] = Db::name('message')
->where('user_id',$user_id)
->whereOr('user_id','null')
->order('is_read desc,createtime desc')
->count();
$this->success('success',$data);
}
/**
* @ApiTitle (平台消息详情)
* @ApiSummary (平台消息详情)
* @ApiMethod (POST)
* @ApiRoute (/api/message/detail)
*
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="id", type="int", required=false, description="平台消息ID")
*
* @ApiReturn({
"code": 1,
"msg": "SUCCESS",
"time": "1553839125",
"data": {
'title'://标题,
'user_id'://用户ID
'is_read': //是否已读(0未读1已读),
'content'://内容,
'type'://类型(1普通2活动3奖品)
'createtime'://创建时间
}
})
*/
public function detail()
{
$user_id = $this->getUserId();
$id = $this->request->param('id');
if(empty($id)){
$this->error('缺少必要参数');
}
//判断该消息是否为平台通知
$info = Db::name('message')->where('id',$id)->find();
if($info['user_id'] == ''){
//是
$read['user_id'] = $user_id;
$read['message_id'] = $id;
$read['createtime'] = time();
Db::name('read')->insertGetId($read);
$data = Db::name('message')
->where('id',$id)
->find();
Db::name('message')->where('id',$id)->update(['is_read'=>1]);
$data['createtime'] = date('Y-m-d H:i:s',$data['createtime']);
}else{
//不是
$data = Db::name('message')
->where('id',$id)
->find();
Db::name('message')->where('id',$id)->update(['is_read'=>1]);
$data['createtime'] = date('Y-m-d H:i:s',$data['createtime']);
}
$this->success('success',$data);
}
}