RpcFavoriteHelper.class.php
5.21 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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<?php
/**
* Created by PhpStorm.
* User: liyifei2012it
* Date: 17/6/7
* Time: 15:21
*/
namespace Common\Common;
class RpcFavoriteHelper
{
/**
* 是否收藏:未收藏(所有常量值,必须和RPC规定一致)
*/
const COLLECTION_NO = 0;
/**
* 是否收藏:已收藏
*/
const COLLECTION_YES = 1;
/*
* 封面类型:无
*/
const COVER_TYPE_NONE = 0;
/*
* 封面类型:图片
*/
const COVER_TYPE_IMAGE = 1;
/*
* 封面类型:音频
*/
const COVER_TYPE_RADIO = 2;
/*
* 封面类型:视频
*/
const COVER_TYPE_VIDEO = 3;
/*
* 是否为文件夹:否
*/
const IS_DIR_FALSE = 0;
/*
* 是否为文件夹:1
*/
const IS_DIR_TRUE = 1;
/*
* RPC查询收藏状态的url
*/
const COLLECTION_STATUS ='/Public/Rpc/Collection/CollectionStatus';
/*
* 删除应用数据,同步标记收藏状态的url
*/
const COLLECTION_UPDATE = '/Public/Rpc/Collection/CollectionUpdate';
/*
* RPC新增收藏的url
*/
const COLLECTION_NEW = '/Public/Rpc/Collection/CollectionNew';
/*
* RPC取消收藏的url
*/
const COLLECTION_DELETE = '/Public/Rpc/Collection/CollectionDelete';
/**
* 实例化
* @author zhonglei
* @return RpcFavoriteHelper
*/
public static function &instance()
{
static $instance;
if (is_null($instance)) {
$instance = new self();
}
return $instance;
}
/**
* 查询收藏状态
* @author liyifei
* @param array $data 被收藏数据
* + string app 被收藏数据所在应用模块目录标识名
* + string uid 当前用户的uid
* + int dataId 被收藏数据的原始数据 Id
* @return array
* array(
* 'collection' => 1, // 收藏状态(0:未收藏,1:已收藏)
* )
*/
public function getStatus($data)
{
if (empty($data) || !is_array($data)) {
return [];
}
// 必传参数
$data['app'] = APP_DIR;
if (!isset($data['uid'], $data['dataId'])) {
return [];
}
$url = rpcUrl(self::COLLECTION_STATUS);
$resJson = \Com\Rpc::phprpc($url)->invoke('index', $data);
if (!$resJson) {
return [];
}
return json_decode($resJson, true);
}
/**
* 新增收藏
* @author liyifei
* @param array $data 被收藏数据信息
* + string app 被收藏数据所在应用模块目录标识名
* + string uid 当前用户的uid
* + int dataId 被收藏数据的原始数据 Id
* + string title 收藏标题(同事圈内容,资料库文件(夹)名等)
* + int cover_type 封面类型(0:无封面,1:图片,2:音频,3:视频)
* + string cover_id 封面附件ID
* + string cover_url 封面附件URL
* + int url 详情跳转地址(请传php相对地址,方便后续维护[/Course/Frontend/Index/Detail?article_id=1&data_id=2])
* + string file_type 文件类型(JPG,TXT,PDF等)(资料库必传)
* + int file_size 文件大小(单位:字节)(资料库必传)
* + int is_dir 是否为文件夹(0:否,1:是)(资料库必传)
* @return bool
*/
public function addFavorite($data)
{
if (empty($data) || !is_array($data)) {
return false;
}
// 必传参数
$data['app'] = APP_DIR;
if (!isset($data['uid'], $data['dataId'], $data['title'], $data['url'])) {
return false;
}
// 资料库必传参数
if (APP_DIR == 'Doc') {
if (!isset($data['file_type'], $data['file_size'], $data['is_dir'])) {
return false;
}
}
$url = rpcUrl(self::COLLECTION_NEW);
return \Com\Rpc::phprpc($url)->invoke('index', $data);
}
/**
* 取消收藏
* @author liyifei
* @param array $data 收藏信息
* + string app 被收藏数据所在应用模块目录标识名
* + string uid 当前用户的uid
* + int dataId 被收藏数据的原始数据 Id
* @return bool
*/
public function cancelFavorite($data)
{
// 必传参数
$data['app'] = APP_DIR;
if (!isset($data['uid'], $data['dataId'])) {
return false;
}
$url = rpcUrl(self::COLLECTION_DELETE);
return \Com\Rpc::phprpc($url)->invoke('index', $data);
}
/**
* 删除应用数据时,RPC同步收藏状态
* @author liyifei
* @param array $dataIds 被收藏数据的原始数据 Id。如果是多个使用逗号分割(如:'1,25,65')
* @return bool
*/
public function updateStatus($dataIds)
{
if (empty($dataIds) || !is_array($dataIds)) {
return false;
}
$url = rpcUrl(self::COLLECTION_UPDATE);
$param = [
'app' => APP_DIR,
'dataId' => implode(',', $dataIds),
];
return \Com\Rpc::phprpc($url)->invoke('index', $param);
}
}