后台-赠送钻石水晶-提取公共方法并实现对应的机器人推送

This commit is contained in:
2025-09-11 18:36:48 +08:00
parent 158c9786e4
commit db41be407d
8 changed files with 365 additions and 595 deletions

View File

@@ -1,7 +1,9 @@
package com.accompany.business.constant;
import com.accompany.common.constant.Constant;
import com.accompany.core.enumeration.CurrencyEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
@@ -9,65 +11,34 @@ import java.util.Optional;
/**
* 后台管理赠送类型
*/
@AllArgsConstructor
@Getter
public enum OfficalSendTypeEnum {
OFFICAL_GOLD(Constant.OfficialType.interSendGold, "官方赠送钻石", (byte)0),
OFFICAL_DIAMOND(Constant.OfficialType.interSendDiamond, "官方赠送金币", (byte)2),
OFFICAL_GOLD(Constant.OfficialType.interSendGold, "官方赠送钻石", CurrencyEnum.GOLD),
OFFICAL_DIAMOND(Constant.OfficialType.interSendDiamond, "官方赠送金币", CurrencyEnum.DIAMOND),
ACTIVITY_GOLD(Constant.OfficialType.actReward, "活动奖励钻石", (byte)0),
COMPANY_ACCOUNT_DIAMOND(Constant.OfficialType.chargeByCompanyAccount, "公款充值金币", CurrencyEnum.DIAMOND),
COMPANY_ACCOUNT_DIAMOND(Constant.OfficialType.chargeByCompanyAccount, "公款充值金币", (byte)2),
OFFICAL_REDUCE_DIAMONDS(Constant.OfficialType.officalDiamondReduce,"官方金币消除", CurrencyEnum.DIAMOND),
CLEAR_USER_GOLD(Constant.OfficialType.clearUserGold, "官方清除钻石", CurrencyEnum.GOLD),
CLEAR_USER_GOLD(Constant.OfficialType.clearUserGold, "后台清除钻石", (byte)0),
OFFICAL_MINUS_GUILD_USD(Constant.OfficialType.miunsGuildUsd, "消除公会薪资", CurrencyEnum.GUILD_USD),
OFFICAL_PLUS_GUILD_USD(Constant.OfficialType.plusGuildUsd,"赠送公会薪资", CurrencyEnum.GUILD_USD),
OFFICAL_REDUCE_DIAMONDS(Constant.OfficialType.officalDiamondReduce,"官方金币消除", (byte)2),
OFFICAL_MINUS_GUILD_USD(Constant.OfficialType.miunsGuildUsd, "消除薪资", Constant.WalletCurrencyType.guildUsd),
OFFICAL_PLUS_GUILD_USD(Constant.OfficialType.plusGuildUsd,"赠送薪资", Constant.WalletCurrencyType.guildUsd),
OFFICAL_MINUS_GUILD_CRYSTAL(Constant.OfficialType.miunsGuildCrystal, "消除公会紫晶", Constant.WalletCurrencyType.guildCrystal),
OFFICAL_PLUS_GUILD_CRYSTAL(Constant.OfficialType.plusGuildCrystal,"赠送公会紫晶", Constant.WalletCurrencyType.guildCrystal),
OFFICAL_MINUS_GUILD_CRYSTAL(Constant.OfficialType.miunsGuildCrystal, "消除公会紫晶", CurrencyEnum.GUILD_CRYSTAL),
OFFICAL_PLUS_GUILD_CRYSTAL(Constant.OfficialType.plusGuildCrystal,"赠送公会紫晶", CurrencyEnum.GUILD_CRYSTAL),
;
private byte value;
private String desc;
private Byte currencyType;
public byte getValue() {
return value;
}
public void setValue(byte value) {
this.value = value;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public Byte getCurrencyType() {
return currencyType;
}
public void setCurrencyType(Byte currencyType) {
this.currencyType = currencyType;
}
OfficalSendTypeEnum(byte value, String desc, Byte currencyType) {
this.value = value;
this.desc = desc;
this.currencyType = currencyType;
}
private CurrencyEnum currencyType;
public static OfficalSendTypeEnum get(byte value) {
Optional<OfficalSendTypeEnum> result = Arrays.stream(OfficalSendTypeEnum.values()).filter(officalSendTypeEnum ->
officalSendTypeEnum.value == value).findAny();
return result.isPresent() ? result.get() : null;
return result.orElse(null);
}
}

View File

@@ -33,6 +33,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Duration;
import java.time.ZoneId;
import java.time.ZonedDateTime;
@@ -75,7 +76,7 @@ public class BillRecordService extends ServiceImpl<BillRecordMapper, BillRecord>
*/
public void insertGiftSendBillRecord(Long uid, Long targetUid, Long roomUid, String objId, BillObjTypeEnum eventEnum,
Double amount, Integer giftId, Integer giftNum, Long giftTotalGoldNum, Date createTime, UserPurse after) {
Double rmbAmount = DoubleUtil.mul(amount, eventEnum.getCurrency().getExchangeRate());
Double rmbAmount = BigDecimal.valueOf(amount).divide(eventEnum.getCurrency().getExchangeRate(), 2 , RoundingMode.HALF_UP).doubleValue();
insertBillRecordV2(uid, targetUid, roomUid, objId, eventEnum, amount, rmbAmount, giftId, giftNum, giftTotalGoldNum, createTime, after);
}
@@ -92,7 +93,7 @@ public class BillRecordService extends ServiceImpl<BillRecordMapper, BillRecord>
}
public void insertGeneralBillRecord(Long uid, Long targetUid, Long roomUid, String objId, BillObjTypeEnum eventEnum, Double amount, UserPurse afterPurse) {
Double rmbAmount = amount * eventEnum.getCurrency().getExchangeRate();
Double rmbAmount = BigDecimal.valueOf(amount).divide(eventEnum.getCurrency().getExchangeRate(), 2 , RoundingMode.HALF_UP).doubleValue();
insertBillRecord(uid, targetUid, roomUid, objId, eventEnum, amount, rmbAmount, afterPurse);
}