|
@@ -842,24 +842,46 @@ class Guild extends Api
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 公会贡献榜排行
|
|
|
- * @return void
|
|
|
+ * 公会魅力榜排行
|
|
|
*/
|
|
|
public function getRankList()
|
|
|
{
|
|
|
- try {
|
|
|
+ //今日
|
|
|
+ $todaystatime = strtotime(date('Y-m-d'));
|
|
|
+ $todayendtime = $todaystatime + 86399;
|
|
|
+ //昨日
|
|
|
+ $yestodaystatime = $todaystatime - 86400;
|
|
|
+ $yestodayendtime = $todaystatime - 1;
|
|
|
+ //近七日
|
|
|
+ $servenday_statime = $todaystatime - 86400*6;
|
|
|
+ $servenday_endtime = $todayendtime;
|
|
|
+
|
|
|
+ //时间条件
|
|
|
+ $where_time = [];
|
|
|
+ $timetype = input('timetype',1);
|
|
|
+ $where_time['a.createtime'] = ['BETWEEN',[$todaystatime,$todayendtime]];
|
|
|
+ if($timetype == 2){
|
|
|
+ $where_time['a.createtime'] = ['BETWEEN',[$yestodaystatime,$yestodayendtime]];
|
|
|
+ }
|
|
|
+ if($timetype == 3){
|
|
|
+ $where_time['a.createtime'] = ['BETWEEN',[$servenday_statime,$servenday_endtime]];
|
|
|
+ }
|
|
|
+
|
|
|
$id = input('guild_id',0);
|
|
|
+
|
|
|
$guildMemberWhere['guild_id'] = $id;
|
|
|
-// $guildMemberWhere['status'] = 1;
|
|
|
$guildMember = model('GuildMember')->field('id,user_id,role')->where($guildMemberWhere)->select();
|
|
|
+
|
|
|
$list = [];
|
|
|
if (!empty($guildMember)) {
|
|
|
$userIds = array_column($guildMember,'user_id');
|
|
|
$where = [];
|
|
|
$where['a.user_to_id'] = ['in', $userIds];
|
|
|
+ $where['a.is_baobi'] = 1;
|
|
|
$list = model('GiftUserParty')->alias("a")
|
|
|
->field('sum(a.value) as total_price,a.user_to_id,u.avatar,u.nickname,u.is_online,u.onlinetime')
|
|
|
->where($where)
|
|
|
+ ->where($where_time)
|
|
|
->join('user u','u.id = a.user_to_id')
|
|
|
->group('a.user_to_id')
|
|
|
->order('total_price',"desc")
|
|
@@ -901,9 +923,91 @@ class Guild extends Api
|
|
|
}
|
|
|
|
|
|
$this->success(__('Operation completed'),$list);
|
|
|
- } catch (Exception $e) {
|
|
|
- $this->error($e->getMessage());
|
|
|
+
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 公会财富榜
|
|
|
+ */
|
|
|
+ public function getwealthList()
|
|
|
+ {
|
|
|
+ //今日
|
|
|
+ $todaystatime = strtotime(date('Y-m-d'));
|
|
|
+ $todayendtime = $todaystatime + 86399;
|
|
|
+ //昨日
|
|
|
+ $yestodaystatime = $todaystatime - 86400;
|
|
|
+ $yestodayendtime = $todaystatime - 1;
|
|
|
+ //近七日
|
|
|
+ $servenday_statime = $todaystatime - 86400*6;
|
|
|
+ $servenday_endtime = $todayendtime;
|
|
|
+
|
|
|
+ //时间条件
|
|
|
+ $where_time = [];
|
|
|
+ $timetype = input('timetype',1);
|
|
|
+ $where_time['a.createtime'] = ['BETWEEN',[$todaystatime,$todayendtime]];
|
|
|
+ if($timetype == 2){
|
|
|
+ $where_time['a.createtime'] = ['BETWEEN',[$yestodaystatime,$yestodayendtime]];
|
|
|
+ }
|
|
|
+ if($timetype == 3){
|
|
|
+ $where_time['a.createtime'] = ['BETWEEN',[$servenday_statime,$servenday_endtime]];
|
|
|
}
|
|
|
+
|
|
|
+ $id = input('guild_id',0);
|
|
|
+
|
|
|
+ $guildMemberWhere['guild_id'] = $id;
|
|
|
+ $guildMember = model('GuildMember')->field('id,user_id,role')->where($guildMemberWhere)->select();
|
|
|
+
|
|
|
+ $list = [];
|
|
|
+ if (!empty($guildMember)) {
|
|
|
+ $userIds = array_column($guildMember,'user_id');
|
|
|
+ $where = [];
|
|
|
+ $where['a.user_id'] = ['in', $userIds];
|
|
|
+ $where['a.is_baobi'] = 1;
|
|
|
+ $list = model('GiftUserParty')->alias("a")
|
|
|
+ ->field('sum(a.value) as total_price,a.user_id,u.avatar,u.nickname,u.is_online,u.onlinetime')
|
|
|
+ ->where($where)
|
|
|
+ ->where($where_time)
|
|
|
+ ->join('user u','u.id = a.user_id')
|
|
|
+ ->group('a.user_id')
|
|
|
+ ->order('total_price',"desc")
|
|
|
+ ->autopage()
|
|
|
+ ->select();
|
|
|
+ if (!empty($list)) {
|
|
|
+ $role = [0=>'成员',1=>'副会长',2=>'会长'];
|
|
|
+ $guildMemberData = [];
|
|
|
+ foreach ($guildMember as $mKey => $mVal) {
|
|
|
+ $guildMemberData[$mVal['user_id']] = [
|
|
|
+ 'id' => $mVal['id'],
|
|
|
+ 'role' => $mVal['role'],
|
|
|
+ 'role_text' => isset($role[$mVal['role']]) ? $role[$mVal['role']] : '',
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ foreach ($list as $key => &$value) {
|
|
|
+ $member = isset($guildMemberData[$value['user_id']]) ? $guildMemberData[$value['user_id']] : [];
|
|
|
+ $value['member_id'] = isset($member['id']) ? $member['id'] : 0;
|
|
|
+ $value['role'] = isset($member['role']) ? $member['role'] : 0;
|
|
|
+ $value['role_text'] = isset($member['role_text']) ? $member['role_text'] : '';
|
|
|
+ if ($value['is_online'] == 1) {
|
|
|
+ $onlineText = '在线';
|
|
|
+ } else {
|
|
|
+ $onlineTime = get_last_time($value['onlinetime']);
|
|
|
+ $onlineText = $onlineTime.'在线';
|
|
|
+ $limitTime = time() - (3600 * 6);
|
|
|
+ if ($value['onlinetime'] < $limitTime) {
|
|
|
+ $onlineText = '离线';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $value['online_text'] = $onlineText;
|
|
|
+ $value['total_price_text'] = $value['total_price'];
|
|
|
+ if ($value['total_price'] >= 10000) {
|
|
|
+ $value['total_price_text'] = bcdiv($value['total_price'],10000,1).'w';
|
|
|
+ }
|
|
|
+ unset($value['total_price']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->success(__('Operation completed'),$list);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|