diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/recharge/UserRechargeLevelAdminMapper.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/recharge/UserRechargeLevelAdminMapper.java index da1cf3cc7..ed9ae2e15 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/recharge/UserRechargeLevelAdminMapper.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/recharge/UserRechargeLevelAdminMapper.java @@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; + @Mapper public interface UserRechargeLevelAdminMapper { Page page(Page page, @Param("uid") Long uid, @Param("partitionId") Integer partitionId, - @Param("level") String level); + @Param("level") String level, + @Param("currencyRatio")BigDecimal currencyRatio); } \ No newline at end of file diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/charge/impl/ChargeChannelAdminServiceImpl.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/charge/impl/ChargeChannelAdminServiceImpl.java index 0d13be2ca..85604f296 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/charge/impl/ChargeChannelAdminServiceImpl.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/charge/impl/ChargeChannelAdminServiceImpl.java @@ -7,8 +7,10 @@ import com.accompany.admin.service.charge.ChargeChannelAdminService; import com.accompany.admin.vo.charge.ChargeChannelAdminVo; import com.accompany.common.constant.Constant; import com.accompany.common.redis.RedisKey; +import com.accompany.core.enumeration.CurrencyEnum; import com.accompany.core.exception.AdminServiceException; import com.accompany.core.service.common.JedisService; +import com.accompany.payment.constant.CurrencyTypeEnum; import com.accompany.payment.mapper.ChargeProdMapper; import com.accompany.payment.model.ChargeChannel; import com.accompany.payment.model.ChargeProd; @@ -207,7 +209,7 @@ public class ChargeChannelAdminServiceImpl implements ChargeChannelAdminService .multiply(BigDecimal.valueOf(100) .subtract(handlingRate) .divide(BigDecimal.valueOf(100), 4, RoundingMode.DOWN)) - .multiply(BigDecimal.valueOf(7000)) + .multiply(CurrencyEnum.DIAMOND.getExchangeRate()) .setScale(0, RoundingMode.HALF_UP); } diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/recharge/UserRechargeLevelAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/recharge/UserRechargeLevelAdminService.java index b842a3d89..8fd91c813 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/recharge/UserRechargeLevelAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/recharge/UserRechargeLevelAdminService.java @@ -4,6 +4,7 @@ import com.accompany.admin.mapper.recharge.UserRechargeLevelAdminMapper; import com.accompany.admin.vo.recharge.UserRechargeLevelAdminVo; import com.accompany.business.service.user.UsersService; import com.accompany.common.model.PageReq; +import com.accompany.core.enumeration.CurrencyEnum; import com.accompany.core.model.Users; import com.accompany.payment.model.UserRechargeLevelConfig; import com.accompany.payment.service.UserRechargeLevelConfigService; @@ -34,7 +35,7 @@ public class UserRechargeLevelAdminService { uid = u.getUid(); } - adminMapper.page(page, uid, partitionId, level); + adminMapper.page(page, uid, partitionId, level, CurrencyEnum.DIAMOND.getExchangeRate()); return page; } diff --git a/accompany-admin/accompany-admin-service/src/main/resources/mapper/UserRechargeLevelAdminMapper.xml b/accompany-admin/accompany-admin-service/src/main/resources/mapper/UserRechargeLevelAdminMapper.xml index a721dafac..7b26984bd 100644 --- a/accompany-admin/accompany-admin-service/src/main/resources/mapper/UserRechargeLevelAdminMapper.xml +++ b/accompany-admin/accompany-admin-service/src/main/resources/mapper/UserRechargeLevelAdminMapper.xml @@ -7,12 +7,12 @@ u.partition_id, pi.`desc` `partition_desc`, u.region_id, ri.name `region_desc`, url.`level`, url.`is_recharge_user`, - round(url.total_gold / 7000, 2) `total_gold`, - round(url.recharge_gold / 7000, 2) `recharge_gold`, - round(url.give_gold / 7000, 2) `give_gold`, - round(url.last_60_total_gold / 7000, 2) `last_60_total_gold`, - round(url.last_60_recharge_gold / 7000, 2) `last_60_recharge_gold`, - round(url.last_60_give_gold / 7000, 2) `last_60_give_gold`, + round(url.total_gold / #{currencyRatio}, 2) `total_gold`, + round(url.recharge_gold / #{currencyRatio}, 2) `recharge_gold`, + round(url.give_gold / #{currencyRatio}, 2) `give_gold`, + round(url.last_60_total_gold / #{currencyRatio}, 2) `last_60_total_gold`, + round(url.last_60_recharge_gold / #{currencyRatio}, 2) `last_60_recharge_gold`, + round(url.last_60_give_gold / #{currencyRatio}, 2) `last_60_give_gold`, url.update_time from user_recharge_level url inner join users u on url.uid = u.uid diff --git a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/CurrencyEnum.java b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/CurrencyEnum.java index 4cf3baeae..f47ccc6fa 100644 --- a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/CurrencyEnum.java +++ b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/CurrencyEnum.java @@ -1,5 +1,8 @@ package com.accompany.core.enumeration; +import java.math.BigDecimal; +import lombok.Getter; + import java.util.Arrays; import java.util.Optional; @@ -9,16 +12,17 @@ import java.util.Optional; * @author xiaoyuyou * @date 2019/6/11 18:32 */ +@Getter public enum CurrencyEnum { - DIAMOND((byte)1, "金币", 0.00001667), - CRYSTAL((byte)2, "水晶", 0.00001667), - GOLD((byte)3, "钻石", 0.00001667), - GUILD_USD((byte)4, "公会薪资", 1), - GAME_USD((byte)5, "游戏薪资", 1), + DIAMOND((byte)1, "金币", BigDecimal.valueOf(30000)), + CRYSTAL((byte)2, "水晶", BigDecimal.valueOf(30000)), + GOLD((byte)3, "钻石", BigDecimal.valueOf(30000)), + GUILD_USD((byte)4, "公会薪资", BigDecimal.ONE), + GAME_USD((byte)5, "游戏薪资", BigDecimal.ONE), ; - CurrencyEnum(byte value, String desc, double exchangeRate) { + CurrencyEnum(byte value, String desc, BigDecimal exchangeRate) { this.value = value; this.desc = desc; this.exchangeRate = exchangeRate; @@ -26,23 +30,11 @@ public enum CurrencyEnum { private byte value; private String desc; - private double exchangeRate; - - public byte getValue() { - return value; - } - - public String getDesc() { - return desc; - } - - public double getExchangeRate() { - return exchangeRate; - } + private BigDecimal exchangeRate; public static CurrencyEnum get(byte value) { Optional result = Arrays.stream(CurrencyEnum.values()).filter(currencyEnum -> currencyEnum.value == value).findAny(); - return result.isPresent() ? result.get() : null; + return result.orElse(null); } } diff --git a/accompany-base/accompany-payment/accompany-payment-service/src/main/java/com/accompany/payment/service/HighRechargeUserService.java b/accompany-base/accompany-payment/accompany-payment-service/src/main/java/com/accompany/payment/service/HighRechargeUserService.java index 62362baa8..79d1e7636 100644 --- a/accompany-base/accompany-payment/accompany-payment-service/src/main/java/com/accompany/payment/service/HighRechargeUserService.java +++ b/accompany-base/accompany-payment/accompany-payment-service/src/main/java/com/accompany/payment/service/HighRechargeUserService.java @@ -1,6 +1,7 @@ package com.accompany.payment.service; import com.accompany.common.constant.Constant; +import com.accompany.core.enumeration.CurrencyEnum; import com.accompany.core.model.Users; import com.accompany.core.service.user.UsersBaseService; import com.accompany.payment.mapper.ChargeRecordMapperMgr; @@ -23,7 +24,7 @@ public class HighRechargeUserService extends ServiceImpl partitionEnumList) { for (PartitionEnum partitionEnum: partitionEnumList){ bizExecutor.execute(() -> { @@ -116,7 +115,7 @@ public class WeekRechargeAgentPartitionStatService { statDto.setReceiveTotalGuildUsd(guildUsdCountMap.getOrDefault(uid, BigDecimal.ZERO)); statDto.setTransformTotalDiamond(transformDiamondCountMap.getOrDefault(uid, BigDecimal.ZERO)); statDto.setTransformTotalUsd(!transformDiamondCountMap.containsKey(uid)? BigDecimal.ZERO: - transformDiamondCountMap.get(uid).divide(usdRate, 2, RoundingMode.HALF_UP)); + transformDiamondCountMap.get(uid).divide(CurrencyEnum.DIAMOND.getExchangeRate(), 2, RoundingMode.HALF_UP)); statDto.setRemainUsd(statDto.getTransformTotalUsd().subtract(statDto.getReceiveTotalGuildUsd())); return statDto; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityOfChargeService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityOfChargeService.java index d6fb93de8..133d24a97 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityOfChargeService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityOfChargeService.java @@ -12,6 +12,7 @@ import com.accompany.common.push.MarkdownMessage; import com.accompany.common.status.BusiStatus; import com.accompany.common.utils.DateTimeUtil; import com.accompany.common.utils.EnvComponent; +import com.accompany.core.enumeration.CurrencyEnum; import com.accompany.core.enumeration.PartitionEnum; import com.accompany.core.exception.ServiceException; import com.accompany.core.model.PartitionInfo; @@ -75,8 +76,6 @@ public class ActivityOfChargeService { */ private final int expire = 60; - public static final BigDecimal GOLD_TO_USB_DIVISOR = BigDecimal.valueOf(7000D); - private final long QYWX_SEND_AMOUNT = 300L; @@ -104,7 +103,7 @@ public class ActivityOfChargeService { ZonedDateTime zdt = DateTimeUtil.convertWithZoneId(date, null != partitionInfo ? partitionInfo.getZoneId() : ZoneId.systemDefault().getId()); String currentDate = getCurrentDate(zdt); - BigDecimal totalNum = BigDecimal.valueOf(goldNum).divide(GOLD_TO_USB_DIVISOR, 2, RoundingMode.HALF_UP); + BigDecimal totalNum = BigDecimal.valueOf(goldNum).divide(CurrencyEnum.DIAMOND.getExchangeRate(), 2, RoundingMode.HALF_UP); log.info("ActivityOfChargeService.addTotalNum:uid:{},totalNum:{}", uid, totalNum.toString()); //添加总值 String totalNumKey = getTotalNumKey(currentDate, partitionId); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildIncomeService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildIncomeService.java index b67bbeb0b..5c325af29 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildIncomeService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildIncomeService.java @@ -49,8 +49,6 @@ public class GuildIncomeService { @Autowired private GuildUsdBillRecordService guildUsdBillRecordService; @Autowired - private GuildDiamondWageService guildDiamondWageService; - @Autowired private GuildMemberDiamondStatisticsService guildMemberDiamondStatisticsService; @Autowired private GuildMemberRoomMicRecordService guildMemberRoomMicRecordService; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/homeV2/sort/HomeRoomSorterEnum.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/homeV2/sort/HomeRoomSorterEnum.java index c15dd36b5..5df07270a 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/homeV2/sort/HomeRoomSorterEnum.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/homeV2/sort/HomeRoomSorterEnum.java @@ -9,6 +9,7 @@ import com.accompany.common.constant.Constant; import com.accompany.common.constant.RankConstant; import com.accompany.common.redis.RedisKey; import com.accompany.core.base.SpringContextHolder; +import com.accompany.core.enumeration.CurrencyEnum; import com.accompany.core.model.Room; import com.accompany.core.service.common.JedisService; import org.springframework.beans.BeanUtils; @@ -120,7 +121,7 @@ public enum HomeRoomSorterEnum { if (null == score) { score = 0d; } - BigDecimal roomSerial = BigDecimal.valueOf(score).divide(BigDecimal.valueOf(7000L), 2, RoundingMode.HALF_UP); + BigDecimal roomSerial = BigDecimal.valueOf(score).divide(CurrencyEnum.DIAMOND.getExchangeRate(), 2, RoundingMode.HALF_UP); BigDecimal roomOnlineValue = BigDecimal.valueOf(vo.getOnlineNum()).multiply(BigDecimal.valueOf(2.75d)); vo.setHotValue(roomSerial.add(roomOnlineValue)); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/record/BillRecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/record/BillRecordService.java index 9954dc489..cb8c03ed9 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/record/BillRecordService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/record/BillRecordService.java @@ -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; @@ -73,7 +74,7 @@ public class BillRecordService extends ServiceImpl */ 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); } @@ -90,7 +91,7 @@ public class BillRecordService extends ServiceImpl } 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); }