DetailController.class.php
4.5 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
<?php
/**
* 【销售活动-后台】活动详情接口
*
* User: WJY
* Date: 2017-11-02
*/
namespace Apicp\Controller\Activity;
use Common\Common\User;
use Common\Service\ActivityService;
use Common\Service\CommentService;
use Common\Service\LikeService;
use Common\Service\PacketService;
use Common\Service\RightService;
use VcySDK\Member;
use VcySDK\Service;
class DetailController extends \Apicp\Controller\AbstractController
{
/** @var ActivityService 活动信息表 */
protected $_activity_serv;
/** @var RightService 权限信息表 */
protected $_right_serv;
/** @var PacketService 红包主表 */
protected $packet_serv;
public function before_action($action = '')
{
if (!parent::before_action($action)) {
return false;
}
// 实例化活动信息表
$this->_activity_serv = new ActivityService();
// 实例化权限表
$this->_right_serv = new RightService();
// 实例化红包表
$this->packet_serv = new PacketService();
return true;
}
public function Index_post()
{
$ac_id = I('post.ac_id', 0, 'intval');
// 活动ID存在性验证
if (empty($ac_id)) {
E('_EMPTY_ACTIVITY_ID');
}
// 获取活动详情
$data = $this->_activity_serv->get($ac_id);
if (empty($data)) {
// 活动存在性验
E('_ERR_ACTIVITY_DATA');
}
if ($data['activity_status'] != ActivityService::ACTIVITY_DRAFT) {
$comment_s = new CommentService();
$comment_num = $comment_s->count_by_conds([
'ac_id' => $ac_id,
'check_status' => CommentService::CHECK_OK
]);
$like_s = new LikeService();
$like_num = $like_s->count_by_conds([
'obj_id' => $ac_id,
'type' => ActivityService::LIKE_ACTIVITY_TYPE
]);
// 更新活动点赞数与评论数
$this->_activity_serv->update($ac_id, ['likes' => $like_num, 'comments' => $comment_num]);
$data['likes'] = $like_num;
$data['comments'] = $comment_num;
}
// 格式化详情数据
$result = $this->_activity_serv->format_activity_detail($data);
// 获取权限数据
list($right_list, $right_data) = $this->_right_serv->get_data(['ac_id' => $ac_id]);
// 获取红包数据
$red_list = $this->packet_serv->get_by_conds(['ac_id' => $ac_id]);
// 格式化数据
$red_list = $this->_activity_serv->red_format($red_list);
// 红包内加入红包祝福语
$red_list['packet_bless'] = $result['packet_bless'];
$red_list['is_show_red'] = $result['is_show_red'];
// 获取有权限的人员数据
$result['check_user_list'] = $this->get_check_auth($result);
// 删除result中的红包祝福语
unset($result['packet_bless']);
// 加入权限数组
$result['right'] = $right_data;
// 加入红包数组
$result['red_content'] = $red_list;
$this->_result = $result;
return true;
}
/**
* 获取有权限审核的人员数据列表
* @param array $data 获取的活动详情信息
* @return array
*/
protected function get_check_auth($data = [])
{
// 初始化权限人员数据列表
$check_user_list = [];
// 如果审核人员不为空
if (!empty($data['check_user_list'])) {
// 初始化用户类
$member = User::instance();
// 获取当前用户基本信息
$users = $member->listAllBasic(['memUids' => array_column($data['check_user_list'], 'memID')]);
// 如果有用户数据
if (!empty($users)) {
// 重新组装数据已用户UID为主键
$user_list = array_combine_by_key($users, 'memUid');
// 重新组装数据
foreach ($data['check_user_list'] as $check_user) {
if (!empty($user_list[$check_user['memID']])) {
$check_user_list[] = [
'memID' => $check_user['memID'],
'memUsername' => $user_list[$check_user['memID']]['memUsername'],
'memFace' => $user_list[$check_user['memID']]['memFace'],
];
}
}
}
}
return $check_user_list;
}
}