独联体1
This commit is contained in:
@@ -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";
|
||||
}
|
||||
|
||||
|
@@ -33,6 +33,7 @@ public enum BillDomainTypeEnum {
|
||||
GUILD_POLICY2(26, "土耳其公会政策2"),
|
||||
DAILY_TASK(27, "日任务奖励"),
|
||||
GUILD_TASK(28, "公会开业奖励"),
|
||||
EXTRA_GOLD(29, "公会额外奖励"),
|
||||
;
|
||||
|
||||
private int value;
|
||||
|
@@ -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) {
|
||||
|
@@ -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<Integer, ExtraDiamondRateConfigDto> partitionMap = new HashMap<>();
|
||||
|
||||
public ExtraDiamondRateConfigDto getConfigByPartitionId(Integer partitionId){
|
||||
if (partitionMap == null) {
|
||||
partitionMap = new HashMap<>();
|
||||
}
|
||||
return partitionMap.getOrDefault(partitionId, new ExtraDiamondRateConfigDto());
|
||||
}
|
||||
}
|
@@ -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;
|
||||
|
||||
|
||||
}
|
@@ -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;
|
||||
|
||||
|
||||
}
|
@@ -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();
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(receiverUid);
|
||||
if (null != guildMember) {
|
||||
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());
|
||||
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())) {
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(time, partitionInfo.getZoneId());
|
||||
String statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId());
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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<GuildExtraDiamondDay> {
|
||||
|
||||
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);
|
||||
}
|
@@ -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<RoomExtraDiamondDay> {
|
||||
|
||||
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);
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
@@ -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<GuildExtraDiamondDayMapper, GuildExtraDiamondDay> {
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
@@ -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<RoomExtraDiamondDayMapper, RoomExtraDiamondDay> {
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
@@ -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<GuildGiftRecordMapper, GuildGiftRecord> {
|
||||
|
||||
@@ -47,6 +51,8 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
|
||||
private ApplicationContext applicationContext;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsPolicy2Service guildDiamondStatisticsPolicy2Service;
|
||||
@Autowired
|
||||
private ExtraDiamondDayService extraDiamondDayService;
|
||||
|
||||
@Async
|
||||
public void insertGuildGiftRecord(GiftSendRecord giftSendRecord) {
|
||||
@@ -55,10 +61,18 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
|
||||
}
|
||||
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(giftSendRecord.getReciveUid());
|
||||
if (null == guildMember) {
|
||||
Users receiver = usersService.getNotNullUsersByUid(giftSendRecord.getReciveUid());
|
||||
|
||||
PartitionInfo partitionInfo = partitionInfoService.getById(receiver.getPartitionId());
|
||||
if (null == partitionInfo) {
|
||||
return;
|
||||
}
|
||||
|
||||
String cycleDate = null, statDate = null;
|
||||
Date createTime = giftSendRecord.getCreateTime();
|
||||
Double totalDiamondNum = giftSendRecord.getTotalDiamondNum();
|
||||
|
||||
if (null != guildMember) {
|
||||
GuildGiftRecord guildGiftRecord = new GuildGiftRecord();
|
||||
guildGiftRecord.setPartitionId(guildMember.getPartitionId());
|
||||
guildGiftRecord.setGiftSendRecordId(giftSendRecord.getSendRecordId());
|
||||
@@ -70,22 +84,15 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
|
||||
guildGiftRecord.setTotalDiamondNum(giftSendRecord.getTotalDiamondNum());
|
||||
save(guildGiftRecord);
|
||||
|
||||
Users receiver = usersService.getNotNullUsersByUid(giftSendRecord.getReciveUid());
|
||||
PartitionInfo partitionInfo = partitionInfoService.getById(receiver.getPartitionId());
|
||||
if (null == partitionInfo) {
|
||||
return;
|
||||
}
|
||||
|
||||
Date createTime = giftSendRecord.getCreateTime();
|
||||
if (Constant.ClanMode.GUILD.equals(partitionInfo.getClanMode())) {
|
||||
String cycleDate = CycleTimeUtil.getCycleDateByZoneId(createTime, partitionInfo.getZoneId());
|
||||
guildMemberDiamondStatisticsService.update(cycleDate, guildMember, giftSendRecord.getTotalDiamondNum());
|
||||
String statDate = CycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsDayService.updateDayDiamondStatistics(cycleDate, statDate, guildMember, giftSendRecord.getTotalDiamondNum());
|
||||
cycleDate = CycleTimeUtil.getCycleDateByZoneId(createTime, partitionInfo.getZoneId());
|
||||
guildMemberDiamondStatisticsService.update(cycleDate, guildMember, totalDiamondNum);
|
||||
statDate = CycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsDayService.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum);
|
||||
} else if (Constant.ClanMode.GUILD_POLICY2.equals(partitionInfo.getClanMode())) {
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(createTime, partitionInfo.getZoneId());
|
||||
String statDate = FullMonthCycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsPolicy2Service.updateDayDiamondStatistics(cycleDate, statDate, guildMember, giftSendRecord.getTotalDiamondNum());
|
||||
cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(createTime, partitionInfo.getZoneId());
|
||||
statDate = FullMonthCycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsPolicy2Service.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum);
|
||||
}
|
||||
|
||||
guildRankService.updateRank(guildGiftRecord);
|
||||
@@ -102,4 +109,13 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
|
||||
)));
|
||||
}
|
||||
|
||||
if (partitionInfo.getId() == PartitionEnum.SOVIET.getId()) {
|
||||
extraDiamondDayService.updateGuildExtraDiamond(guildMember, cycleDate, statDate, 0D, totalDiamondNum, createTime);
|
||||
statDate = DateTimeUtil.convertWithZoneId(createTime, partitionInfo.getZoneId()).format(dateFormatter);
|
||||
extraDiamondDayService.updateRoomExtraDiamond(guildMember, giftSendRecord.getReciveUid(), partitionInfo.getId(),
|
||||
statDate, giftSendRecord.getRoomUid(), 0D, totalDiamondNum, createTime);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.accompany.business.mybatismapper.extradiamond.GuildExtraDiamondDayMapper">
|
||||
|
||||
<update id="updateExtraDiamond">
|
||||
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)
|
||||
</update>
|
||||
</mapper>
|
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.accompany.business.mybatismapper.extradiamond.RoomExtraDiamondDayMapper">
|
||||
<update id="updateExtraDiamond">
|
||||
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)
|
||||
</update>
|
||||
</mapper>
|
Reference in New Issue
Block a user