国王皇后我的排名字段处理
This commit is contained in:
parent
e44e3cfbff
commit
12b9151f21
@ -32,14 +32,21 @@ public class WeekKingQueenUserContributeQueryExe {
|
|||||||
|
|
||||||
public UserCharmWealthContributeCO execute(AppExtCommand cmd) {
|
public UserCharmWealthContributeCO execute(AppExtCommand cmd) {
|
||||||
UserProfile baseInfo = userProfileGateway.getByUserId(cmd.getReqUserId());
|
UserProfile baseInfo = userProfileGateway.getByUserId(cmd.getReqUserId());
|
||||||
|
|
||||||
|
// 获取带排名的魅力和财富数据
|
||||||
|
WeekKingQueenCount charmData = getContributeWithRank(cmd, KingQueenType.CHARM);
|
||||||
|
WeekKingQueenCount wealthData = getContributeWithRank(cmd, KingQueenType.WEALTH);
|
||||||
|
|
||||||
return new UserCharmWealthContributeCO()
|
return new UserCharmWealthContributeCO()
|
||||||
.setUserId(baseInfo.getId())
|
.setUserId(baseInfo.getId())
|
||||||
.setUserSex(baseInfo.getUserSex())
|
.setUserSex(baseInfo.getUserSex())
|
||||||
.setAccount(baseInfo.getAccount())
|
.setAccount(baseInfo.getAccount())
|
||||||
.setUserAvatar(baseInfo.getUserAvatar())
|
.setUserAvatar(baseInfo.getUserAvatar())
|
||||||
.setUserNickname(baseInfo.getUserNickname())
|
.setUserNickname(baseInfo.getUserNickname())
|
||||||
.setCharmQuantity(getContribute(cmd, KingQueenType.CHARM))
|
.setCharmQuantity(charmData != null ? NumUtils.formatLong(charmData.getQuantity()) : "0")
|
||||||
.setWealthQuantity(getContribute(cmd, KingQueenType.WEALTH));
|
.setWealthQuantity(wealthData != null ? NumUtils.formatLong(wealthData.getQuantity()) : "0")
|
||||||
|
.setCharmRank(charmData != null ? charmData.getRank() : null)
|
||||||
|
.setWealthRank(wealthData != null ? wealthData.getRank() : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getContribute(AppExtCommand cmd, KingQueenType type) {
|
private String getContribute(AppExtCommand cmd, KingQueenType type) {
|
||||||
@ -50,6 +57,15 @@ public class WeekKingQueenUserContributeQueryExe {
|
|||||||
.orElse("0");
|
.orElse("0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取带排名的贡献数据.
|
||||||
|
*/
|
||||||
|
private WeekKingQueenCount getContributeWithRank(AppExtCommand cmd, KingQueenType type) {
|
||||||
|
return weekKingQueenCountService
|
||||||
|
.getUserThisWeekCountWithRank(cmd.getReqSysOrigin().getOrigin(), type,
|
||||||
|
cmd.getReqUserId());
|
||||||
|
}
|
||||||
|
|
||||||
private UserRankCO getUserProfile(WeekKingQueenCount charm,
|
private UserRankCO getUserProfile(WeekKingQueenCount charm,
|
||||||
Map<Long, UserProfileDTO> userBaseMap) {
|
Map<Long, UserProfileDTO> userBaseMap) {
|
||||||
return Optional.ofNullable(charm)
|
return Optional.ofNullable(charm)
|
||||||
|
|||||||
@ -53,4 +53,14 @@ public class UserCharmWealthContributeCO extends ClientObject {
|
|||||||
*/
|
*/
|
||||||
private String wealthQuantity;
|
private String wealthQuantity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 魅力排名.
|
||||||
|
*/
|
||||||
|
private Integer charmRank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 财富排名.
|
||||||
|
*/
|
||||||
|
private Integer wealthRank;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,11 @@ public interface WeekKingQueenCountService {
|
|||||||
*/
|
*/
|
||||||
WeekKingQueenCount getUserThisWeekCount(String sysOrigin, KingQueenType type, Long userId);
|
WeekKingQueenCount getUserThisWeekCount(String sysOrigin, KingQueenType type, Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户在本周的排名信息.
|
||||||
|
*/
|
||||||
|
WeekKingQueenCount getUserThisWeekCountWithRank(String sysOrigin, KingQueenType type, Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取本周统计记录top.
|
* 获取本周统计记录top.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -44,6 +44,15 @@ public class WeekKingQueenCountServiceImpl implements WeekKingQueenCountService
|
|||||||
private final MongoPrimaryService mongoPrimaryService;
|
private final MongoPrimaryService mongoPrimaryService;
|
||||||
private final UserProfileGateway userProfileGateway;
|
private final UserProfileGateway userProfileGateway;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WeekKingQueenCount getUserThisWeekCount(String sysOrigin, KingQueenType type,
|
||||||
|
Long userId) {
|
||||||
|
return mongoTemplate
|
||||||
|
.findOne(Query.query(getUniquenessCriteria(userId, type)
|
||||||
|
.and("sysOrigin").is(sysOrigin))
|
||||||
|
, WeekKingQueenCount.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void incrThisWeekQuantity(String sysOrigin, Long userId, KingQueenType type,
|
public void incrThisWeekQuantity(String sysOrigin, Long userId, KingQueenType type,
|
||||||
Long quantity) {
|
Long quantity) {
|
||||||
@ -57,12 +66,36 @@ public class WeekKingQueenCountServiceImpl implements WeekKingQueenCountService
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WeekKingQueenCount getUserThisWeekCount(String sysOrigin, KingQueenType type,
|
public WeekKingQueenCount getUserThisWeekCountWithRank(String sysOrigin, KingQueenType type, Long userId) {
|
||||||
Long userId) {
|
// 先获取用户的本周数据
|
||||||
return mongoTemplate
|
WeekKingQueenCount userCount = getUserThisWeekCount(sysOrigin, type, userId);
|
||||||
.findOne(Query.query(getUniquenessCriteria(userId, type)
|
if (userCount == null) {
|
||||||
.and("sysOrigin").is(sysOrigin))
|
return null;
|
||||||
, WeekKingQueenCount.class);
|
}
|
||||||
|
|
||||||
|
// 构建查询条件(根据业务规则过滤性别)
|
||||||
|
Criteria criteria = Criteria.where("sysOrigin").is(sysOrigin)
|
||||||
|
.and("group").is(getThisWeekDate())
|
||||||
|
.and("type").is(type);
|
||||||
|
|
||||||
|
// 根据类型过滤性别
|
||||||
|
if (type == KingQueenType.CHARM) {
|
||||||
|
// 魅力类型:只显示女性(0)
|
||||||
|
criteria.and("userSex").is(0);
|
||||||
|
} else if (type == KingQueenType.WEALTH) {
|
||||||
|
// 财富类型:只显示男性(1)
|
||||||
|
criteria.and("userSex").is(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统计比用户数量更高的人数(即排名)
|
||||||
|
long rank = mongoTemplate.count(
|
||||||
|
Query.query(criteria.and("quantity").gt(userCount.getQuantity())),
|
||||||
|
WeekKingQueenCount.class
|
||||||
|
) + 1;
|
||||||
|
|
||||||
|
// 设置排名并返回
|
||||||
|
userCount.setRank((int) rank);
|
||||||
|
return userCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user