充值代理星级
This commit is contained in:
@@ -27,6 +27,8 @@ public class RechargeUserAdminDto {
|
||||
*/
|
||||
@ApiModelProperty("代充地区")
|
||||
private String userRegions;
|
||||
@ApiModelProperty("星级")
|
||||
private Integer starLevel;
|
||||
|
||||
public List<RechargeUserRegionAdminDto> getUserRegions() {
|
||||
if (StrUtil.isNotEmpty(userRegions)) {
|
||||
|
@@ -42,4 +42,7 @@ public class RechargeUserAdminVo extends RechargeUser {
|
||||
@ApiModelProperty("地区")
|
||||
private List<RechargeUserRegion> userRegions;
|
||||
|
||||
@ApiModelProperty("星级")
|
||||
private Integer starLevel;
|
||||
|
||||
}
|
||||
|
@@ -135,6 +135,7 @@ public class RechargeUserAdminServiceImpl implements RechargeUserAdminService {
|
||||
}
|
||||
}
|
||||
}
|
||||
rechargeUser.setStarLevel(param.getStarLevel());
|
||||
rechargeUser.setType(type);
|
||||
rechargeUser.setUpdateTime(now);
|
||||
rechargeUserService.saveOrUpdate(rechargeUser);
|
||||
|
@@ -39,6 +39,9 @@ public class RechargeUser {
|
||||
@ApiModelProperty("地区类型 0b1 台湾 0b10 新加坡 0b100 马来西亚 0b1000 香港")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty("星级")
|
||||
private Integer starLevel;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
|
@@ -5,6 +5,8 @@ import com.accompany.payment.model.RechargeUser;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
* @date: 2023/8/17 19:02
|
||||
@@ -50,4 +52,6 @@ public class RechargeUserVo extends RechargeUser {
|
||||
@ApiModelProperty("排序")
|
||||
private Integer seq = 0;
|
||||
|
||||
@ApiModelProperty("近三十天转赠的金币")
|
||||
private Long giveGold;
|
||||
}
|
||||
|
@@ -1,11 +1,15 @@
|
||||
package com.accompany.payment.service;
|
||||
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.payment.model.RechargeUser;
|
||||
import com.accompany.payment.vo.RechargeUserVo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.springframework.web.bind.annotation.RequestHeader;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.accompany.common.constant.ApplicationConstant.PublicParameters.PUB_UID;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
* @date: 2023/8/15 11:20
|
||||
@@ -32,4 +36,6 @@ public interface RechargeUserService extends IService<RechargeUser> {
|
||||
* @return
|
||||
*/
|
||||
Boolean isRechargeUser(Long uid);
|
||||
|
||||
BusiResult<RechargeUserVo> info(Long uid);
|
||||
}
|
||||
|
@@ -3,6 +3,7 @@ package com.accompany.payment.service.impl;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.redis.RedisKey;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.common.JedisService;
|
||||
import com.accompany.core.service.user.UsersBaseService;
|
||||
@@ -15,6 +16,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -56,12 +58,10 @@ public class RechargeUserServiceImpl extends ServiceImpl<RechargeUserMapper, Rec
|
||||
if (CollectionUtil.isEmpty(list)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(list)) {
|
||||
for (RechargeUserVo user : list) {
|
||||
user.setIsOnline(jedisService.hget(RedisKey.user_online_status.getKey(), user.getUid().toString()) != null ? Constant.Yes1No0.YES : Constant.Yes1No0.NO);
|
||||
}
|
||||
for (RechargeUserVo user : list) {
|
||||
user.setIsOnline(jedisService.hget(RedisKey.user_online_status.getKey(), user.getUid().toString()) != null ? Constant.Yes1No0.YES : Constant.Yes1No0.NO);
|
||||
}
|
||||
return list.stream().sorted(Comparator.comparing(RechargeUserVo::getIsOnline).reversed().thenComparing(RechargeUserVo::getSeq)).collect(Collectors.toList());
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -90,4 +90,23 @@ public class RechargeUserServiceImpl extends ServiceImpl<RechargeUserMapper, Rec
|
||||
.eq(RechargeUser::getUid, uid)) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BusiResult<RechargeUserVo> info(Long uid) {
|
||||
RechargeUser rechargeUser = baseMapper.selectOne(Wrappers.<RechargeUser>lambdaQuery()
|
||||
.eq(RechargeUser::getUid, uid)
|
||||
.ne(RechargeUser::getType, 0), false);
|
||||
if (rechargeUser == null) {
|
||||
return BusiResult.success(null);
|
||||
}
|
||||
RechargeUserVo rechargeUserVo = new RechargeUserVo();
|
||||
BeanUtils.copyProperties(rechargeUser, rechargeUserVo);
|
||||
Users usersByUid = usersBaseService.getUsersByUid(uid);
|
||||
if (usersByUid != null) {
|
||||
rechargeUserVo.setAvatar(usersByUid.getAvatar());
|
||||
rechargeUserVo.setErbanNo(usersByUid.getErbanNo().toString());
|
||||
rechargeUserVo.setNick(usersByUid.getNick());
|
||||
}
|
||||
return BusiResult.success(rechargeUserVo);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -8,7 +8,8 @@
|
||||
u.nick,
|
||||
rur.seq,
|
||||
cr.type,
|
||||
r.room_id as roomId
|
||||
r.room_id as roomId,
|
||||
ru.star_level starLevel
|
||||
from recharge_user as ru
|
||||
left join users as u on u.uid = ru.uid
|
||||
left join charge_region as cr on ((ru.`type` <![CDATA[ & ]]> cr.`type`) != 0)
|
||||
@@ -20,7 +21,9 @@
|
||||
<select id="listByPartitionId" resultType="com.accompany.payment.vo.RechargeUserVo">
|
||||
select u.uid,
|
||||
u.erban_no as erbanNo,
|
||||
u.nick, u.avatar
|
||||
u.nick,
|
||||
u.avatar,
|
||||
ru.star_level starLevel
|
||||
from recharge_user ru
|
||||
inner join users u on ru.uid = u.uid
|
||||
where u.partition_id = #{partitionId}
|
||||
|
@@ -23,6 +23,8 @@ public interface DiamondGiveHistoryMapper extends BaseMapper<DiamondGiveHistory>
|
||||
|
||||
List<DiamondGiveHistoryVo> getUserGiveDiamondRecordVos(@Param("uid") Long uid, @Param("date") Date date);
|
||||
|
||||
List<DiamondGiveHistoryVo> getUserGiveTotalDiamond(@Param("fromUids") List<Long> fromUids, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
|
||||
|
||||
List<DiamondGiveHistoryVo> giveRecordVoByType(@Param("uid") Long uid, @Param("toUid") Long toUid, @Param("date") Date date, @Param("type") Byte type);
|
||||
|
||||
IPage<DiamondGiveHistoryVo> listRecordVoByType(@Param("page") Page<DiamondGiveHistoryVo> page, @Param("type") Byte type, @Param("fromUid") Long fromUid);
|
||||
|
@@ -196,7 +196,8 @@ public class GuildUsdChannelService {
|
||||
}
|
||||
|
||||
Map<Long, BigDecimal> recordMap = recordList.stream().collect(Collectors.toMap(GuildUsdBillRecord::getTargetUid, GuildUsdBillRecord::getOperateCurrency));
|
||||
List<RechargeUserVo> voList = rechargeUserVoList.stream().sorted(Comparator.comparing(rechargeUserVo -> recordMap.getOrDefault(rechargeUserVo.getUid(), BigDecimal.ZERO)))
|
||||
List<RechargeUserVo> voList = rechargeUserVoList.stream().sorted(Comparator.comparing(RechargeUserVo::getStarLevel).reversed()
|
||||
.thenComparing(rechargeUserVo -> recordMap.getOrDefault(rechargeUserVo.getUid(), BigDecimal.ZERO), Comparator.reverseOrder()))
|
||||
.collect(Collectors.toList());
|
||||
Collections.reverse(voList);
|
||||
return voList;
|
||||
|
@@ -534,4 +534,16 @@ public class DiamondGiveHistoryService extends ServiceImpl<DiamondGiveHistoryMap
|
||||
}
|
||||
return diamondGiveHistoryVos.stream().collect(Collectors.toMap(DiamondGiveHistoryVo::getTargetUid, x->x.getDiamondNum()));
|
||||
}
|
||||
|
||||
public Map<Long, Long> getFromUserGiveGoldMap(List<Long> fromUids, Date startDate, Date endDate) {
|
||||
List<DiamondGiveHistoryVo> userGiveTotalDiamond = diamondGiveHistoryMapper.getUserGiveTotalDiamond(fromUids, startDate, endDate);
|
||||
Map<Long, Long> resultMap = new HashMap<>();
|
||||
if (CollectionUtils.isEmpty(userGiveTotalDiamond)) {
|
||||
return resultMap;
|
||||
}
|
||||
for (DiamondGiveHistoryVo diamondGiveHistoryVo : userGiveTotalDiamond) {
|
||||
resultMap.put(diamondGiveHistoryVo.getFromUid(), diamondGiveHistoryVo.getDiamondNum());
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
}
|
@@ -41,6 +41,20 @@
|
||||
group by from_uid, to_uid)
|
||||
order by dgh.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getUserGiveTotalDiamond" resultType="com.accompany.business.vo.DiamondGiveHistoryVo">
|
||||
select
|
||||
from_uid fromUid,
|
||||
sum(ifnull(diamond_num, 0)) diamondNum
|
||||
from diamond_give_history
|
||||
where create_time >= #{startDate}
|
||||
and create_time < #{endDate}
|
||||
<foreach collection="fromUids" close=")" item="uidTemp" open="and from_uid in(" separator=",">
|
||||
#{uidTemp}
|
||||
</foreach>
|
||||
group by from_uid
|
||||
</select>
|
||||
|
||||
<select id="giveRecordVoByType" resultType="com.accompany.business.vo.DiamondGiveHistoryVo">
|
||||
select
|
||||
dgh.id,
|
||||
|
@@ -1,18 +1,24 @@
|
||||
package com.accompany.business.controller.recharge;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.service.purse.DiamondGiveHistoryService;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.core.service.common.JedisService;
|
||||
import com.accompany.payment.model.RechargeUser;
|
||||
import com.accompany.payment.service.RechargeUserService;
|
||||
import com.accompany.payment.vo.RechargeUserVo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.accompany.common.constant.ApplicationConstant.PublicParameters.PUB_UID;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
@@ -28,7 +34,13 @@ public class RechargeUserController {
|
||||
private RechargeUserService rechargeUserService;
|
||||
|
||||
@Autowired
|
||||
private JedisService jedisService;
|
||||
private DiamondGiveHistoryService diamondGiveHistoryService;
|
||||
|
||||
@ApiOperation("代充身份信息")
|
||||
@GetMapping("/info")
|
||||
public BusiResult<RechargeUserVo> info(@RequestHeader(value = PUB_UID) Long uid) {
|
||||
return rechargeUserService.info(uid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表
|
||||
@@ -39,7 +51,23 @@ public class RechargeUserController {
|
||||
@ApiOperation("列表")
|
||||
@GetMapping("list")
|
||||
public BusiResult<List<RechargeUserVo>> list(@RequestParam("regionCode") String regionCode) {
|
||||
return BusiResult.success(rechargeUserService.selectList(regionCode));
|
||||
|
||||
List<RechargeUserVo> rechargeUserVos = rechargeUserService.selectList(regionCode);
|
||||
if (CollectionUtils.isNotEmpty(rechargeUserVos)) {
|
||||
List<Long> uids = rechargeUserVos.stream().map(RechargeUser::getUid).collect(Collectors.toList());
|
||||
Date date = new Date();
|
||||
Map<Long, Long> fromUserGiveGoldMap = diamondGiveHistoryService.getFromUserGiveGoldMap(uids, DateUtil.offsetDay(date, -30), date);
|
||||
for (RechargeUserVo rechargeUserVo : rechargeUserVos) {
|
||||
Long goldNum = fromUserGiveGoldMap.get(rechargeUserVo.getUid());
|
||||
goldNum = goldNum == null ? 0 : goldNum;
|
||||
rechargeUserVo.setGiveGold(goldNum);
|
||||
}
|
||||
Comparator<RechargeUserVo> comparator2 = Comparator.comparing(RechargeUserVo::getStarLevel).reversed();
|
||||
comparator2 = comparator2.thenComparing(RechargeUserVo::getIsOnline, Comparator.reverseOrder());
|
||||
comparator2 = comparator2.thenComparing(RechargeUserVo::getGiveGold, Comparator.reverseOrder());
|
||||
rechargeUserVos.stream().sorted(comparator2) .collect(Collectors.toList());
|
||||
}
|
||||
return BusiResult.success(rechargeUserVos);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user