This commit is contained in:
2025-09-29 15:51:36 +08:00
parent c8961081d3
commit d2e2654ecf
4 changed files with 48 additions and 3 deletions

View File

@@ -13,6 +13,7 @@ import com.accompany.business.service.family.FamilyGiftRecordService;
import com.accompany.business.service.guild.BdGuildService;
import com.accompany.business.service.guild.BdInfoService;
import com.accompany.business.service.guild.GuildDiamondStatisticsDayService;
import com.accompany.business.service.guildsoviet.GuildExtraDiamondDayService;
import com.accompany.business.service.invite.UserInviteFissionRecordService;
import com.accompany.business.service.user.UsersService;
import com.accompany.business.vo.guild.GuildInfoVo;
@@ -56,6 +57,8 @@ public class BdInfoAdminService {
private GuildDiamondStatisticsDayService guildDiamondStatisticsDayService;
@Autowired
private FamilyGiftRecordService familyGiftRecordService;
@Autowired
private GuildExtraDiamondDayService guildExtraDiamondDayService;
public final int BOUND_EXPIRE_LIMIT_DAY = 7;
@@ -134,6 +137,8 @@ public class BdInfoAdminService {
Map<Integer, Double> guildDiamondOrGoldMap;
if (PartitionEnum.ENGLISH.getId() == partitionId) {
guildDiamondOrGoldMap = familyGiftRecordService.mapByFamilyId(DateUtil.formatDateTime(beginTime), DateUtil.formatDateTime(endTime), guildIdList);
} else if (PartitionEnum.SOVIET.getId() == partitionId) {
guildDiamondOrGoldMap = guildExtraDiamondDayService.mapByStatDate(DateUtil.formatDate(beginTime), DateUtil.formatDate(endTime), partitionId, guildIdList);
} else {
guildDiamondOrGoldMap = guildDiamondStatisticsDayService.mapByStatDate(DateUtil.formatDate(beginTime), DateUtil.formatDate(endTime), partitionId, guildIdList);
}
@@ -355,6 +360,16 @@ public class BdInfoAdminService {
record.setGoldNum(BigDecimal.valueOf(guildDiamondMap.getOrDefault(record.getGuildId(), 0D)));
}
}
} else if (PartitionEnum.SOVIET.getId() == users.getPartitionId()) {
guilds = bdGuildService.guildsByBdId(bdId, pageNo, pageSize);
List<GuildInfoVo> records = guilds.getRecords();
if (records != null) {
List<Integer> guildIds = records.stream().map(x -> x.getGuildId().intValue()).collect(Collectors.toList());
Map<Integer, Double> guildDiamondMap = guildExtraDiamondDayService.mapByStatDate(DateUtil.formatDate(beginTime), DateUtil.formatDate(endTime), partitionId, guildIds);
for (GuildInfoVo record : records) {
record.setDiamondNum(BigDecimal.valueOf(guildDiamondMap.getOrDefault(record.getGuildId(), 0D)));
}
}
} else {
guilds = bdGuildService.guildsByBdId(bdId, pageNo, pageSize);
List<GuildInfoVo> records = guilds.getRecords();

View File

@@ -1,6 +1,7 @@
package com.accompany.business.mybatismapper.guildsoviet;
import com.accompany.business.model.guildsoviet.GuildExtraDiamondDay;
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
import com.accompany.business.vo.guild.GuildInfoVo;
import com.accompany.business.vo.guildsoviet.GuildMemberSovietAdminVo;
import com.accompany.business.vo.guildsoviet.GuildSovietAdminVo;
@@ -55,4 +56,7 @@ public interface GuildExtraDiamondDayMapper extends BaseMapper<GuildExtraDiamond
IPage<GuildInfoVo> listBdGuildDiamondNum(@Param("ipage") IPage<GuildInfoVo> ipage, @Param("startDate")String startDate, @Param("endDate")String endDate,
@Param("bdId")Long bdId);
List<GuildDiamondStatisticsDayVo> listByStatDateGuildIds(@Param("startDate")String startDate, @Param("endDate")String endDate,
@Param("guildIds") List<Integer> guildIds, @Param("partitionId") Integer partitionId);
}

View File

@@ -2,6 +2,7 @@ package com.accompany.business.service.guildsoviet;
import com.accompany.business.model.guildsoviet.GuildExtraDiamondDay;
import com.accompany.business.mybatismapper.guildsoviet.GuildExtraDiamondDayMapper;
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
import com.accompany.business.vo.guild.GuildInfoVo;
import com.accompany.business.vo.guildsoviet.GuildMemberSovietAdminVo;
import com.accompany.business.vo.guildsoviet.GuildSovietAdminVo;
@@ -11,12 +12,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
* 公会钻石流水额外收入记录 服务实现类
@@ -93,4 +94,12 @@ public class GuildExtraDiamondDayService extends ServiceImpl<GuildExtraDiamondDa
public Long totalBdGuildCount(String statDate, String endDate, Long bdId) {
return baseMapper.totalBdGuildCount(statDate, endDate, bdId);
}
public Map<Integer, Double> mapByStatDate(String statDate, String endDate, int partitionId, List<Integer> guildIds) {
List<GuildDiamondStatisticsDayVo> guildDiamondStatisticsDayVos = baseMapper.listByStatDateGuildIds(statDate, endDate, guildIds, partitionId);
if (CollectionUtils.isEmpty(guildDiamondStatisticsDayVos)) {
return new HashMap<>();
}
return guildDiamondStatisticsDayVos.stream().collect(Collectors.toMap(GuildDiamondStatisticsDayVo::getGuildId, x -> x.getDiamondNum()));
}
}

View File

@@ -209,4 +209,21 @@
where gm.`enable` = 1 and b.partition_id != 1 and b.bd_id = #{bdId} and b.`status` = 1
group by b.guild_id
</select>
<select id="listByStatDateGuildIds" resultType="com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo">
select gd.guild_id guildId,
sum(gd.diamond_num + gd.lucky_diamond_num) diamondNum
from guild_extra_diamond_day gd
LEFT JOIN guild g ON gd.guild_id = g.id
left join guild_member gm on gm.id = gd.guild_member_id
where gd.stat_date &gt;= #{startDate}
and gd.stat_date &lt;= #{endDate}
and gd.partition_id = ${partitionId}
and gm.`enable` = 1
and g.`enable` = 1
<foreach collection="guildIds" item="guildId" open="and gd.guild_id in (" separator="," close=")">
#{guildId}
</foreach>
group by gd.guild_id
</select>
</mapper>