货币-调整比例
This commit is contained in:
@@ -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<UserRechargeLevelAdminVo> page(Page<UserRechargeLevelAdminVo> page,
|
||||
@Param("uid") Long uid,
|
||||
@Param("partitionId") Integer partitionId,
|
||||
@Param("level") String level);
|
||||
@Param("level") String level,
|
||||
@Param("currencyRatio")BigDecimal currencyRatio);
|
||||
|
||||
}
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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<CurrencyEnum> result = Arrays.stream(CurrencyEnum.values()).filter(currencyEnum ->
|
||||
currencyEnum.value == value).findAny();
|
||||
return result.isPresent() ? result.get() : null;
|
||||
return result.orElse(null);
|
||||
}
|
||||
}
|
||||
|
@@ -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<HighRechargeUserMapper,
|
||||
@Autowired
|
||||
private ChargeRecordMapperMgr chargeRecordMapperMgr;
|
||||
|
||||
private final BigDecimal GOLD_LOW_LIMIT = new BigDecimal("700000");
|
||||
private final BigDecimal GOLD_LOW_LIMIT = CurrencyEnum.DIAMOND.getExchangeRate().multiply(Constant.HUNDRED);
|
||||
|
||||
public boolean isHighRechargeUser(Long uid) {
|
||||
HighRechargeUser hru = getBaseMapper().selectById(uid);
|
||||
|
@@ -16,6 +16,7 @@ import com.accompany.business.vo.firstcharge.FirstChargeVo;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.utils.StringUtils;
|
||||
import com.accompany.core.enumeration.BillObjTypeEnum;
|
||||
import com.accompany.core.enumeration.CurrencyEnum;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.SysConfService;
|
||||
import com.accompany.core.util.I18NMessageSourceUtil;
|
||||
@@ -37,7 +38,6 @@ import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.accompany.business.constant.activity.ActivityType.FIRST_CHARGE;
|
||||
import static com.accompany.business.service.activity.h5.ActivityOfChargeService.GOLD_TO_USB_DIVISOR;
|
||||
import static com.accompany.common.constant.Constant.SysConfId.FIRST_CHARGE_BANNER_CONFIG;
|
||||
import static com.accompany.common.redis.RedisKey.*;
|
||||
import static com.accompany.core.enumeration.I18nAlertEnum.FIRST_CHARGE_REWARD_SYS;
|
||||
@@ -199,7 +199,7 @@ public class FirstChargeService {
|
||||
break;
|
||||
}
|
||||
}
|
||||
BigDecimal usd = BigDecimal.valueOf(totalGoldNum).divide(GOLD_TO_USB_DIVISOR, 2, RoundingMode.DOWN);
|
||||
BigDecimal usd = BigDecimal.valueOf(totalGoldNum).divide(CurrencyEnum.DIAMOND.getExchangeRate(), 2, RoundingMode.DOWN);
|
||||
activityRankRuleService.sendLevelRankAwardOnlyLevelWithBill(FIRST_CHARGE, uid, diffExpVo.getLevel(),
|
||||
"" , partitionId, BillObjTypeEnum.FIRST_CHARGE_REWARD_BILL);
|
||||
String message = I18NMessageSourceUtil.getMessage(FIRST_CHARGE_REWARD_SYS, new Object[]{usd.doubleValue(), rewardGold}, uid);
|
||||
|
@@ -9,6 +9,7 @@ import com.accompany.business.mybatismapper.WeekRechargeAgentPartitionStatMapper
|
||||
import com.accompany.business.mybatismapper.guild.GuildUsdBillRecordMapper;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.CurrencyEnum;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.payment.mapper.RechargeUserMapper;
|
||||
@@ -45,8 +46,6 @@ public class WeekRechargeAgentPartitionStatService {
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
|
||||
private final BigDecimal usdRate = new BigDecimal("7000");
|
||||
|
||||
public void stat(List<PartitionEnum> 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;
|
||||
|
@@ -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);
|
||||
|
@@ -49,8 +49,6 @@ public class GuildIncomeService {
|
||||
@Autowired
|
||||
private GuildUsdBillRecordService guildUsdBillRecordService;
|
||||
@Autowired
|
||||
private GuildDiamondWageService guildDiamondWageService;
|
||||
@Autowired
|
||||
private GuildMemberDiamondStatisticsService guildMemberDiamondStatisticsService;
|
||||
@Autowired
|
||||
private GuildMemberRoomMicRecordService guildMemberRoomMicRecordService;
|
||||
|
@@ -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));
|
||||
|
||||
|
@@ -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<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);
|
||||
}
|
||||
|
||||
@@ -90,7 +91,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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user