房间贡献,修改本周贡献接口

This commit is contained in:
tianfeng 2025-10-28 20:02:19 +08:00
parent cefa78bdea
commit 8313c3536f

View File

@ -45,46 +45,23 @@ public class RoomContributionActivityQueryCmdExe {
public RoomContributionCountCO execute(AppRoomIdCmd cmd) {
Long roomId = roomProfileManagerService.getRoomId(cmd.getReqUserId());
ResponseAssert.notNull(CommonErrorCode.NOT_FOUND_RECORD_INFO, roomId);
// 是否为请求人自己的房间
boolean isOwn = Objects.equals(roomId, cmd.getRoomId());
// 是否为本周一
boolean isThisMonday = Objects.equals(ZonedDateTimeAsiaRiyadhUtils.getThisMonday(),
ZonedDateTimeAsiaRiyadhUtils.nowDateToInt());
RoomProfile roomProfile = roomProfileManagerService.getProfileById(cmd.getRoomId());
ResponseAssert.notNull(CommonErrorCode.NOT_FOUND_RECORD_INFO, roomProfile);
ResponseAssert.notNull(CommonErrorCode.NOT_FOUND_RECORD_INFO, roomProfile.getId());
// 获得金币可领取比例
SysRegionAssistProbabilityDTO activityRatio = getAssistRoomContributionActivityRatio(
roomProfile);
// 非本周且没有领取且积分大于最低领取要求的数据集合
List<RoomContributionActivityCount> activityCounts = roomContributionActivityCountService
.listRoomContribution(cmd.getRoomId(), cmd.requireReqSysOriginEnum());
RoomContributionActivityCount activityCount = roomContributionActivityCountService.getThisWeekData(cmd.getRoomId());
ImmutablePair<String, BigDecimal> thisWeekData = getThisWeekData(cmd, activityRatio.getRatio());
if (CollectionUtils.isEmpty(activityCounts)) {
if (activityCount == null) {
return new RoomContributionCountCO()
.setThisWeekIntegral(thisWeekData.getLeft())
.setThisWeekAmount(thisWeekData.getRight())
.setAvailableAmount(BigDecimal.ZERO)
.setIsNotHighProportion(activityRatio.getRatio().compareTo(BigDecimal.valueOf(0.05)) <= 0)
.setIsShowReceiveButton(Boolean.FALSE)
.setImgUrl(activityRatio.getImgUrl());
.setThisWeekIntegral(NumUtils.formatLong(0L))
.setThisWeekAmount(BigDecimal.ZERO);
}
// 可领取金额不含本周
BigDecimal availableAmount = getAvailableAmount(cmd, activityRatio, activityCounts);
return new RoomContributionCountCO()
.setThisWeekIntegral(thisWeekData.getLeft())
.setThisWeekAmount(thisWeekData.getRight())
.setAvailableAmount(availableAmount)
.setIsNotHighProportion(activityRatio.getRatio().compareTo(BigDecimal.valueOf(0.05)) <= 0)
.setIsShowReceiveButton(
isOwn && isThisMonday && availableAmount.compareTo(BigDecimal.ZERO) > 0)
.setImgUrl(activityRatio.getImgUrl());
.setThisWeekIntegral(NumUtils.formatBigDecimal(activityCount.getContributionValue()))
.setThisWeekAmount(activityCount.getContributionValue());
}
private BigDecimal getAvailableAmount(AppRoomIdCmd cmd,