diff --git a/accompany-base/accompany-core/src/main/java/com/accompany/common/constant/Constant.java b/accompany-base/accompany-core/src/main/java/com/accompany/common/constant/Constant.java index 56b262049..d0d5a7ba5 100644 --- a/accompany-base/accompany-core/src/main/java/com/accompany/common/constant/Constant.java +++ b/accompany-base/accompany-core/src/main/java/com/accompany/common/constant/Constant.java @@ -1393,6 +1393,8 @@ public class Constant { public static final String GUILD_MEMBER_NEW_UP_ACCEPT_REGION = "guild_member_new_up_accept_region"; + public static final String EXTRA_DIAMOND_RATE_CONFIG = "extra_diamond_rate_config"; + public static final String CP_MIC_SVGA_URL = "cp_mic_svga_url"; } diff --git a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillDomainTypeEnum.java b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillDomainTypeEnum.java index ba4617a3b..268206fa3 100644 --- a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillDomainTypeEnum.java +++ b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillDomainTypeEnum.java @@ -33,6 +33,7 @@ public enum BillDomainTypeEnum { GUILD_POLICY2(26, "土耳其公会政策2"), DAILY_TASK(27, "日任务奖励"), GUILD_TASK(28, "公会开业奖励"), + EXTRA_GOLD(29, "公会额外奖励"), ; private int value; diff --git a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillObjTypeEnum.java b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillObjTypeEnum.java index d35520632..1b774fa55 100644 --- a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillObjTypeEnum.java +++ b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillObjTypeEnum.java @@ -292,6 +292,9 @@ public enum BillObjTypeEnum { DAILY_TASK_NEW_ANCHOR_DIAOMND( 196, "新公会主播金币", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DAILY_TASK), DAILY_TASK_NEW_ANCHOR_GOLD( 197, "新公会主播钻石", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.DAILY_TASK), DAILY_SHOP_BUY_DIAMOND( 198, "金豆兑换金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DAILY_TASK), + ANCHOR_EXTRA_GOLD( 199, "主播额外钻石收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.EXTRA_GOLD), + OWNER_EXTRA_GOLD( 200, "公会长额外钻石收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.EXTRA_GOLD), + ROOM_EXTRA_GOLD( 201, "房间额外钻石收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.EXTRA_GOLD), ; BillObjTypeEnum(int value, String desc, BillTypeEnum type, CurrencyEnum currency, BillDomainTypeEnum domain) { diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/dto/ExtraDiamondRateConfigDto.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/dto/ExtraDiamondRateConfigDto.java new file mode 100644 index 000000000..15997111a --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/dto/ExtraDiamondRateConfigDto.java @@ -0,0 +1,29 @@ +package com.accompany.business.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; + +@Data +public class ExtraDiamondRateConfigDto { + + private BigDecimal anchorExtraRate = BigDecimal.valueOf(0.0); + private BigDecimal anchorExtraLuckyRate = BigDecimal.valueOf(0.0); + + private BigDecimal ownerExtraRate = BigDecimal.valueOf(0.0); + private BigDecimal ownerExtraLuckyRate = BigDecimal.valueOf(0.0); + + private BigDecimal roomExtraRate = BigDecimal.valueOf(0.0); + private BigDecimal roomExtraLuckyRate = BigDecimal.valueOf(0.0); + + private Map partitionMap = new HashMap<>(); + + public ExtraDiamondRateConfigDto getConfigByPartitionId(Integer partitionId){ + if (partitionMap == null) { + partitionMap = new HashMap<>(); + } + return partitionMap.getOrDefault(partitionId, new ExtraDiamondRateConfigDto()); + } +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/extradiamond/GuildExtraDiamondDay.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/extradiamond/GuildExtraDiamondDay.java new file mode 100644 index 000000000..3dcc5e1ca --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/extradiamond/GuildExtraDiamondDay.java @@ -0,0 +1,74 @@ +package com.accompany.business.model.extradiamond; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 公会钻石流水额外收入记录实体类 + * + * @author + * @since 2025-09-16 + */ +@Data +public class GuildExtraDiamondDay implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id" , type = IdType.AUTO) + private Long id; + private String cycleDate; + private Integer partitionId; + /** + * 统计日期 + */ + private String statDate; + private Long guildMemberId; + /** + * 公会id + */ + private Integer guildId; + /** + * 主播ID + */ + private Long uid; + /** + * 公会长UID + */ + private Integer ownerUid; + /** + * 普通礼物钻石流水 + */ + private BigDecimal diamondNum; + /** + * 幸运礼物钻石流水 + */ + private BigDecimal luckyDiamondNum; + /** + * 主播普通额外奖励 + */ + private BigDecimal anchorExtraNum; + /** + * 主播lucky额外奖励 + */ + private BigDecimal anchorExtraLuckyNum; + /** + * 公会长普通额外奖励 + */ + private BigDecimal ownerExtraNum; + /** + * 公会长lucky额外奖励 + */ + private BigDecimal ownerExtraLuckyNum; + /** + * 创建时间 + */ + private Date createTime; + private Date updateTime; + + +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/extradiamond/RoomExtraDiamondDay.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/extradiamond/RoomExtraDiamondDay.java new file mode 100644 index 000000000..c51564495 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/extradiamond/RoomExtraDiamondDay.java @@ -0,0 +1,65 @@ +package com.accompany.business.model.extradiamond; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 房间钻石流水额外收入记录实体类 + * + * @author + * @since 2025-09-16 + */ +@Data +public class RoomExtraDiamondDay implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id" , type = IdType.AUTO) + private Long id; + private Integer partitionId; + /** + * 统计日期 + */ + private String statDate; + private Long guildMemberId; + /** + * 所属厅id + */ + private Integer guildId; + /** + * 主播ID + */ + private Long uid; + /** + * 房间UID + */ + private Integer roomUid; + /** + * 普通礼物钻石流水 + */ + private BigDecimal diamondNum; + /** + * 幸运礼物钻石流水 + */ + private BigDecimal luckyDiamondNum; + /** + * 房间普通额外奖励 + */ + private BigDecimal roomExtraNum; + /** + * 房间lucky额外奖励 + */ + private BigDecimal roomExtraLuckyNum; + /** + * 创建时间 + */ + private Date createTime; + private Date updateTime; + + +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/SuperLuckyGiftDiamondIncomeListener.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/SuperLuckyGiftDiamondIncomeListener.java index 84d79c8bf..67ff27ba1 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/SuperLuckyGiftDiamondIncomeListener.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/SuperLuckyGiftDiamondIncomeListener.java @@ -3,16 +3,17 @@ package com.accompany.business.event.listener; import com.accompany.business.event.SuperLuckyGiftDiamondIncomeMessageEvent; import com.accompany.business.message.SuperLuckyGiftDiamondIncomeMessage; import com.accompany.business.model.guild.GuildMember; +import com.accompany.business.service.extradiamond.ExtraDiamondDayService; import com.accompany.business.service.guild.GuildDiamondStatisticsDayService; import com.accompany.business.service.guild.GuildMemberDiamondStatisticsService; import com.accompany.business.service.guild.GuildMemberService; import com.accompany.business.service.guild.GuildRankService; import com.accompany.business.service.guildpolicy2.GuildDiamondStatisticsPolicy2Service; -import com.accompany.business.service.room.RoomDayDiamondNumService; import com.accompany.business.service.user.UsersService; import com.accompany.business.util.CycleTimeUtil; import com.accompany.business.util.FullMonthCycleTimeUtil; import com.accompany.common.constant.Constant; +import com.accompany.core.enumeration.PartitionEnum; import com.accompany.core.model.PartitionInfo; import com.accompany.core.model.Users; import com.accompany.core.service.partition.PartitionInfoService; @@ -39,9 +40,9 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener< @Autowired private GuildDiamondStatisticsDayService guildDiamondStatisticsDayService; @Autowired - private RoomDayDiamondNumService roomDayDiamondNumService; - @Autowired private GuildDiamondStatisticsPolicy2Service guildDiamondStatisticsPolicy2Service; + @Autowired + private ExtraDiamondDayService extraDiamondDayService; @Async @Override @@ -57,23 +58,29 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener< return; } - GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(receiverUid); - if (null == guildMember) { - return; - } + String cycleDate = null, statDate = null; Date time = message.getCreateTime(); - Double totalDiamondNum = message.getTotalDiamondNum(); - if (Constant.ClanMode.GUILD.equals(partitionInfo.getClanMode())) { - String cycleDate = CycleTimeUtil.getCycleDateByZoneId(time, partitionInfo.getZoneId()); - String statDate = CycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId()); - guildMemberDiamondStatisticsService.update(cycleDate, guildMember, totalDiamondNum); - guildDiamondStatisticsDayService.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum); - } else if (Constant.ClanMode.GUILD_POLICY2.equals(partitionInfo.getClanMode())) { - String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(time, partitionInfo.getZoneId()); - String statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId()); - guildDiamondStatisticsPolicy2Service.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum); + GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(receiverUid); + if (null != guildMember) { + Double totalDiamondNum = message.getTotalDiamondNum(); + if (Constant.ClanMode.GUILD.equals(partitionInfo.getClanMode())) { + cycleDate = CycleTimeUtil.getCycleDateByZoneId(time, partitionInfo.getZoneId()); + statDate = CycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId()); + guildMemberDiamondStatisticsService.update(cycleDate, guildMember, totalDiamondNum); + guildDiamondStatisticsDayService.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum); + } else if (Constant.ClanMode.GUILD_POLICY2.equals(partitionInfo.getClanMode())) { + cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(time, partitionInfo.getZoneId()); + statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId()); + guildDiamondStatisticsPolicy2Service.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum); + } + //todo 时区 zoneId + guildRankService.updateRank(guildMember.getGuildId(), guildMember.getUid(), totalDiamondNum, receiver.getPartitionId()); + } + + if (partitionInfo.getId() == PartitionEnum.SOVIET.getId()) { + extraDiamondDayService.updateGuildExtraDiamond(guildMember, cycleDate, statDate, 0D, message.getTotalDiamondNum(), time); + extraDiamondDayService.updateRoomExtraDiamond(guildMember, receiverUid, partitionInfo.getId(), statDate, + message.getRoomUid(),0D, message.getTotalDiamondNum(), time); } - //todo 时区 zoneId - guildRankService.updateRank(guildMember.getGuildId(), guildMember.getUid(), totalDiamondNum, receiver.getPartitionId()); } } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/extradiamond/GuildExtraDiamondDayMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/extradiamond/GuildExtraDiamondDayMapper.java new file mode 100644 index 000000000..008e09e1d --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/extradiamond/GuildExtraDiamondDayMapper.java @@ -0,0 +1,23 @@ +package com.accompany.business.mybatismapper.extradiamond; + +import com.accompany.business.model.extradiamond.GuildExtraDiamondDay; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 公会钻石流水额外收入记录 Mapper 接口 + * + * @author + * @since 2025-09-16 + */ +public interface GuildExtraDiamondDayMapper extends BaseMapper { + + int updateExtraDiamond(@Param("cycleDate") String cycleDate, @Param("statDate") String statDate, @Param("partitionId") Integer partitionId, + @Param("guildMemberId") Long guildMemberId, @Param("guildId") Integer guildId, + @Param("ownerUid") Long ownerUid, @Param("uid") Long uid, @Param("diamondNum") BigDecimal diamondNum, + @Param("luckyDiamondNum") BigDecimal luckyDiamondNum, @Param("ownerDiamondNum") BigDecimal ownerDiamondNum, + @Param("ownerLuckyDiamond") BigDecimal ownerLuckyDiamond, @Param("time") Date time); +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/extradiamond/RoomExtraDiamondDayMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/extradiamond/RoomExtraDiamondDayMapper.java new file mode 100644 index 000000000..88c90762b --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/extradiamond/RoomExtraDiamondDayMapper.java @@ -0,0 +1,22 @@ +package com.accompany.business.mybatismapper.extradiamond; + +import com.accompany.business.model.extradiamond.RoomExtraDiamondDay; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +/** + * 房间钻石流水额外收入记录 Mapper 接口 + * + * @author + * @since 2025-09-16 + */ +public interface RoomExtraDiamondDayMapper extends BaseMapper { + + int updateExtraDiamond(@Param("guildMemberId") Long guildMemberId, @Param("guildId") Integer guildId, + @Param("uid") Long uid, @Param("partitionId") Integer partitionId, + @Param("statDate") String statDate, @Param("roomUid") Long roomUid, + @Param("normalDiamondNum") Double normalDiamondNum, @Param("luckyDiamondNum") Double luckyDiamondNum, + @Param("time") Date time); +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/extradiamond/ExtraDiamondDayService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/extradiamond/ExtraDiamondDayService.java new file mode 100644 index 000000000..2eaf5d71e --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/extradiamond/ExtraDiamondDayService.java @@ -0,0 +1,80 @@ +package com.accompany.business.service.extradiamond; + +import com.accompany.business.dto.ExtraDiamondRateConfigDto; +import com.accompany.business.model.guild.Guild; +import com.accompany.business.model.guild.GuildMember; +import com.accompany.business.service.guild.GuildService; +import com.accompany.business.service.purse.UserPurseService; +import com.accompany.core.service.SysConfService; +import com.accompany.core.util.StringUtils; +import com.alibaba.fastjson.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; + +import static com.accompany.common.constant.Constant.SysConfId.EXTRA_DIAMOND_RATE_CONFIG; +import static com.accompany.core.enumeration.BillObjTypeEnum.OWNER_EXTRA_GOLD; + +@Service +public class ExtraDiamondDayService { + @Autowired + private GuildExtraDiamondDayService guildExtraDiamondDayService; + @Autowired + private RoomExtraDiamondDayService roomExtraDiamondDayService; + @Autowired + private GuildService guildService; + @Autowired + private SysConfService sysConfService; + @Autowired + private UserPurseService userPurseService; + + public void updateGuildExtraDiamond(GuildMember guildMember, String cycleDate, String statDate, + Double normalDiamondNum, Double luckyDiamondNum, Date time) { + if (guildMember == null) { + return; + } + Long guildMemberId = guildMember.getId(); + Integer guildId = guildMember.getGuildId(); + Integer partitionId = guildMember.getPartitionId(); + ExtraDiamondRateConfigDto diamondRateConfig = this.getExtraDiamondRateConfig(guildMember.getPartitionId()); + BigDecimal decimalNormal = BigDecimal.valueOf(normalDiamondNum); + BigDecimal decimalLucky = BigDecimal.valueOf(luckyDiamondNum); + BigDecimal ownerDiamondNum = diamondRateConfig.getOwnerExtraRate().multiply(decimalNormal); + BigDecimal ownerLuckyDiamond =diamondRateConfig.getOwnerExtraLuckyRate().multiply(decimalLucky); + Guild guild = guildService.getVaildGuildById(guildId); + Long ownerUid = guild.getOwnerUid(); + guildExtraDiamondDayService.updateExtraDiamond(cycleDate, statDate, partitionId, guildMemberId, guildId, ownerUid, guildMember.getUid(), + decimalNormal, decimalLucky, ownerDiamondNum, ownerLuckyDiamond, time); + if (ownerDiamondNum.compareTo(BigDecimal.ZERO) > 0) { + userPurseService.addGold(ownerUid, ownerDiamondNum.doubleValue(), OWNER_EXTRA_GOLD); + } + if (ownerLuckyDiamond.compareTo(BigDecimal.ZERO) > 0) { + userPurseService.addGold(ownerUid, ownerDiamondNum.doubleValue(), OWNER_EXTRA_GOLD); + } + } + + public void updateRoomExtraDiamond(GuildMember guildMember, Long uid, Integer partitionId, String statDate, Long roomUid, + Double normalDiamondNum, Double luckyDiamondNum, Date time) { + if (roomUid == null) { + return; + } + Long guildMemberId = 0L; + Integer guildId = 0; + if (guildMember != null) { + guildMemberId = guildMember.getId(); + guildId = guildMember.getGuildId(); + } + roomExtraDiamondDayService.updateExtraDiamond(guildMemberId, guildId, uid, partitionId, statDate, roomUid, normalDiamondNum, luckyDiamondNum, time); + } + + private ExtraDiamondRateConfigDto getExtraDiamondRateConfig(Integer partitionId) { + String valueById = sysConfService.getSysConfValueById(EXTRA_DIAMOND_RATE_CONFIG); + if (StringUtils.isEmpty(valueById)) { + return new ExtraDiamondRateConfigDto(); + } + ExtraDiamondRateConfigDto configDto = JSONObject.parseObject(valueById, ExtraDiamondRateConfigDto.class); + return configDto.getConfigByPartitionId(partitionId); + } +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/extradiamond/GuildExtraDiamondDayService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/extradiamond/GuildExtraDiamondDayService.java new file mode 100644 index 000000000..fa0b36580 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/extradiamond/GuildExtraDiamondDayService.java @@ -0,0 +1,26 @@ +package com.accompany.business.service.extradiamond; + +import com.accompany.business.model.extradiamond.GuildExtraDiamondDay; +import com.accompany.business.mybatismapper.extradiamond.GuildExtraDiamondDayMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 公会钻石流水额外收入记录 服务实现类 + * + * @author + * @since 2025-09-16 + */ +@Service +public class GuildExtraDiamondDayService extends ServiceImpl { + + public int updateExtraDiamond(String cycleDate, String statDate, Integer partitionId, Long guildMemberId, + Integer guildId, Long ownerUid, Long uid, BigDecimal diamondNum, + BigDecimal luckyDiamond, BigDecimal ownerDiamondNum, BigDecimal ownerLuckyDiamond, Date time) { + return baseMapper.updateExtraDiamond(cycleDate, statDate, partitionId, guildMemberId, guildId, ownerUid, uid, + diamondNum, luckyDiamond, ownerDiamondNum, ownerLuckyDiamond, time); + } +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/extradiamond/RoomExtraDiamondDayService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/extradiamond/RoomExtraDiamondDayService.java new file mode 100644 index 000000000..f1b185f13 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/extradiamond/RoomExtraDiamondDayService.java @@ -0,0 +1,23 @@ +package com.accompany.business.service.extradiamond; + +import com.accompany.business.model.extradiamond.RoomExtraDiamondDay; +import com.accompany.business.mybatismapper.extradiamond.RoomExtraDiamondDayMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.Date; + +/** + * 房间钻石流水额外收入记录 服务实现类 + * + * @author + * @since 2025-09-16 + */ +@Service +public class RoomExtraDiamondDayService extends ServiceImpl { + + public int updateExtraDiamond(Long guildMemberId, Integer guildId, Long uid, Integer partitionId, + String statDate, Long roomUid, Double normalDiamondNum, Double luckyDiamondNum, Date time) { + return baseMapper.updateExtraDiamond(guildMemberId, guildId, uid, partitionId, statDate, roomUid, normalDiamondNum, luckyDiamondNum, time); + } +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildGiftRecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildGiftRecordService.java index f67ebeba8..3cccf47c1 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildGiftRecordService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildGiftRecordService.java @@ -5,6 +5,7 @@ import com.accompany.business.message.GuildMemberIncreaseFlowMessage; import com.accompany.business.model.guild.GuildGiftRecord; import com.accompany.business.model.guild.GuildMember; import com.accompany.business.mybatismapper.guild.GuildGiftRecordMapper; +import com.accompany.business.service.extradiamond.ExtraDiamondDayService; import com.accompany.business.service.guildpolicy2.GuildDiamondStatisticsPolicy2Service; import com.accompany.business.service.user.UsersService; import com.accompany.business.util.CycleTimeUtil; @@ -12,6 +13,7 @@ import com.accompany.business.util.FullMonthCycleTimeUtil; import com.accompany.common.constant.Constant; import com.accompany.common.status.BusiStatus; import com.accompany.common.utils.DateTimeUtil; +import com.accompany.core.enumeration.PartitionEnum; import com.accompany.core.exception.ServiceException; import com.accompany.core.model.PartitionInfo; import com.accompany.core.model.Users; @@ -26,6 +28,8 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.Date; +import static com.accompany.common.utils.DateTimeUtil.dateFormatter; + @Service public class GuildGiftRecordService extends ServiceImpl { @@ -47,6 +51,8 @@ public class GuildGiftRecordService extends ServiceImpl + + + + + INSERT INTO `guild_extra_diamond_day` (`cycle_date`, `partition_id`, `stat_date`, + `guild_member_id`, `guild_id`, `uid`, `owner_uid`, `diamond_num`, `lucky_diamond_num`, + `owner_extra_num`, `owner_extra_lucky_num`, `create_time`, `update_time`) + VALUES (#{cycleDate}, #{partitionId}, #{statDate}, #{guildMemberId}, #{guildId}, #{uid}, #{ownerUid}, #{diamondNum}, #{luckyDiamondNum}, + #{ownerDiamondNum}, #{ownerLuckyDiamond},#{time} ,#{time}) + ON DUPLICATE KEY UPDATE + diamond_num = diamond_num + values (diamond_num), + lucky_diamond_num = lucky_diamond_num + values (lucky_diamond_num), + owner_extra_num = owner_extra_num + values (owner_extra_num), + owner_extra_lucky_num = owner_extra_lucky_num + values (owner_extra_lucky_num), + update_time = values (update_time) + + diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/RoomExtraDiamondDayMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/RoomExtraDiamondDayMapper.xml new file mode 100644 index 000000000..7b62a1966 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/RoomExtraDiamondDayMapper.xml @@ -0,0 +1,14 @@ + + + + + INSERT INTO `room_extra_diamond_day` (`partition_id`, `stat_date`, `guild_member_id`, `guild_id`, `uid`, + `room_uid`, `diamond_num`, `lucky_diamond_num`, `create_time`, `update_time`) + VALUES (#{partitionId}, #{statDate}, #{guildMemberId}, #{guildId}, #{uid}, #{roomUid}, #{normalDiamondNum}, + #{luckyDiamondNum}, #{luckyDiamondNum},#{time} ,#{time}) + ON DUPLICATE KEY UPDATE + diamond_num = diamond_num + values (diamond_num), + lucky_diamond_num = lucky_diamond_num + values (lucky_diamond_num), + update_time = values (update_time) + +