薪资转赠统一国家代理
This commit is contained in:
@@ -13,9 +13,11 @@ import com.accompany.business.vo.guild.*;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.PartitionInfo;
|
||||
import com.accompany.core.model.RegionInfo;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.SysConfService;
|
||||
import com.accompany.core.service.partition.PartitionInfoService;
|
||||
import com.accompany.core.service.region.RegionInfoService;
|
||||
import com.accompany.payment.service.RechargeUserService;
|
||||
import com.accompany.payment.vo.RechargeUserVo;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -32,6 +34,7 @@ import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.accompany.common.constant.Constant.GLOBAL_CODE;
|
||||
import static com.accompany.common.constant.Constant.SysConfId.GUILD_USD_PROD_TAB_SHOW_CONFIG;
|
||||
|
||||
@Slf4j
|
||||
@@ -62,6 +65,8 @@ public class GuildUsdChannelService {
|
||||
private GuildUsdToRechargeUserLimitService guildUsdToRechargeUserLimitService;
|
||||
@Autowired
|
||||
private SysConfService sysConfService;
|
||||
@Autowired
|
||||
private RegionInfoService regionInfoService;
|
||||
|
||||
public GuildMemberDiamondWithdrawVo getDiamondWithDrawVo(Long uid) {
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||
@@ -201,8 +206,10 @@ public class GuildUsdChannelService {
|
||||
if (null == partitionInfo){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
RegionInfo regionInfo = regionInfoService.getById(u.getRegionId());
|
||||
String regionCode = regionInfo == null ? GLOBAL_CODE : regionInfo.getCode();
|
||||
|
||||
List<RechargeUserVo> rechargeUserVoList = rechargeUserService.listByPartitionIdByGuildTab(u.getPartitionId());
|
||||
List<RechargeUserVo> rechargeUserVoList = rechargeUserService.listByPartitionIdByGuildTab(u.getPartitionId(), regionCode);
|
||||
if (CollectionUtils.isEmpty(rechargeUserVoList)){
|
||||
return rechargeUserVoList;
|
||||
}
|
||||
|
@@ -25,11 +25,14 @@ import com.accompany.core.enumeration.I18nAlertEnum;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.PartitionInfo;
|
||||
import com.accompany.core.model.RegionInfo;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.partition.PartitionInfoService;
|
||||
import com.accompany.core.service.region.RegionInfoService;
|
||||
import com.accompany.core.util.I18NMessageSourceUtil;
|
||||
import com.accompany.payment.service.RechargeUserService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.redisson.api.RBucket;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -38,9 +41,11 @@ import java.math.BigDecimal;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static com.accompany.common.constant.Constant.ClanMode.GUILD_POLICY2;
|
||||
import static com.accompany.common.constant.Constant.GLOBAL_CODE;
|
||||
|
||||
@Service
|
||||
public class GuildUsdOperateService {
|
||||
@@ -67,6 +72,10 @@ public class GuildUsdOperateService {
|
||||
private PartitionInfoService partitionInfoService;
|
||||
@Autowired
|
||||
private EnvComponent envComponent;
|
||||
@Autowired
|
||||
private RechargeUserService rechargeUserService;
|
||||
@Autowired
|
||||
private RegionInfoService regionInfoService;
|
||||
|
||||
public void withdrawDiamond(Long uid, BigDecimal guildUsdNum) {
|
||||
GuildMemberDiamondWithdrawVo vo = guildUsdChannelService.getDiamondWithDrawVo(uid);
|
||||
@@ -118,7 +127,22 @@ public class GuildUsdOperateService {
|
||||
if (GUILD_POLICY2.equals(partitionInfo.getClanMode())) {
|
||||
throw new ServiceException(BusiStatus.FAMILY_PERMISSION_DENIED);
|
||||
}
|
||||
RBucket<Integer> guildUsdWithdrawLimit = null;
|
||||
|
||||
if (GuildUsdOperateTypeEnum.USD_TO_RECHARGE_USER.getType() == type) {
|
||||
List<String> regionCodeList = rechargeUserService.regionCodeList(targetUid);
|
||||
if (CollectionUtils.isEmpty(regionCodeList)) {
|
||||
throw new ServiceException(BusiStatus.RECHARGE_REGION_SALARY_LIMIT);
|
||||
}
|
||||
Optional.ofNullable(u.getRegionId())
|
||||
.map(regionInfoService::getById)
|
||||
.map(RegionInfo::getCode)
|
||||
.ifPresent(regionCode -> {
|
||||
if (!regionCodeList.contains(GLOBAL_CODE) && !regionCodeList.contains(regionCode)) {
|
||||
throw new ServiceException(BusiStatus.RECHARGE_REGION_SALARY_LIMIT);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ((GuildUsdOperateTypeEnum.OWNER_USD_WITHDRAW.equals(typeEnum) || GuildUsdOperateTypeEnum.MEMBER_USD_WITHDRAW.equals(typeEnum))
|
||||
&& !envComponent.getDevOrNativeEnv()){
|
||||
ZonedDateTime now = ZonedDateTime.now(ZoneId.of(partitionInfo.getZoneId()));
|
||||
|
Reference in New Issue
Block a user