MemberMedalService.class.php
2.99 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
<?php
/**
* MemberMedalService.class.php
* 用户勋章 service
* @reader zs_anything 2017-05-27
*/
namespace Common\Service;
use Common\Common\Attach;
use Common\Model\MedalModel;
use Common\Model\MemberMedalModel;
class MemberMedalService extends AbstractService
{
// 构造方法
public function __construct()
{
parent::__construct();
$this->_d = new MemberMedalModel();
}
/**
* 获取我的勋章
* @param $loginUid
* @return array|bool|mixed
*/
public function getMyMedals($loginUid)
{
$medalModel = new MedalModel();
$medalList = $medalModel->list_all();
if (empty($medalList)) {
return [];
}
$myDiffMedalTotal = $this->getMemberDiffMedalTotal($loginUid);
$customIconIds = [];
foreach ($medalList as &$medal) {
// 勋章icon是自定义
if (MedalModel::ICON_TYPE_USER_UPLOAD == $medal['icon_type']) {
$customIconIds[] = $medal['icon'];
}
$medal['total'] = 0;
if (isset($myDiffMedalTotal[$medal['im_id']])) {
$medal['total'] = $myDiffMedalTotal[$medal['im_id']];
}
}
$medalList = $this->formatCustomIconAddress($customIconIds, $medalList);
return $medalList;
}
/**
* 格式化用户自定义的勋章icon地址
* @param $customIconIds
* @param $medalList
* @return mixed
*/
private function formatCustomIconAddress($customIconIds, $medalList)
{
$attachUtil = new Attach();
$attArr = $attachUtil->listAttachUrl($customIconIds);
foreach ($medalList as &$medal) {
if (isset($attArr[$medal['icon']])) {
$medal['icon'] = $attArr[$medal['icon']]['atAttachment'];
}
}
return $medalList;
}
/**
* 获取用户不同勋章的获得总数
* @param $loginUid
* @return array
*/
private function getMemberDiffMedalTotal($loginUid)
{
$myMedalsList = $this->_d->list_by_conds([
'mem_uid' => $loginUid
]);
$resArr = [];
foreach ($myMedalsList as $item) {
$resArr[$item['im_id']] = $item['im_total'];
}
return $resArr;
}
/**
* 增加人员获得勋章数
* @param $imId
* @param $uid
* @return mixed
*/
public function addMedalTotal($imId, $uid)
{
return $this->_d->addMedalTotal($imId, $uid);
}
/**
* 根据用户IDS 获取用户获得勋章总数
* @param $uids
* @return array|bool
*/
public function getMemMedalTotal($uids = [])
{
if (count($uids) < 1) {
return false;
}
return $this->_d->getMemMedalTotal($uids);
}
/**
* 取获得勋章的用户
* @author tangxingguo
* @param $conds
* @return array
*/
public function getUids($conds)
{
return $this->_d->getUids($conds);
}
}