游戏薪资转赠统一国家代理

This commit is contained in:
2025-09-10 16:28:42 +08:00
parent 24c972d106
commit c60ab162b3
2 changed files with 29 additions and 1 deletions

View File

@@ -28,8 +28,12 @@ import com.accompany.core.enumeration.CurrencyEnum;
import com.accompany.core.enumeration.I18nAlertEnum;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.model.RegionInfo;
import com.accompany.core.model.Users;
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.RLock;
import org.redisson.api.RedissonClient;
@@ -48,6 +52,7 @@ import java.util.List;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import static com.accompany.common.constant.Constant.GLOBAL_CODE;
import static com.accompany.core.enumeration.BillObjTypeEnum.GAME_RECE_USD_IN;
@Service
@@ -77,6 +82,10 @@ public class GameUsdOperateService {
private GameUsdProdService gameUsdProdService;
@Autowired
private SendSysMsgService sendSysMsgService;
@Autowired
private RechargeUserService rechargeUserService;
@Autowired
private RegionInfoService regionInfoService;
public BusiResult receiveGameUsd(Long uid, Long guildMemberId, String statDate, Double usd) throws InterruptedException {
@@ -193,6 +202,18 @@ public class GameUsdOperateService {
throw new ServiceException(BusiStatus.PARAMETERILLEGAL);
}
} else if (GameUsdOperateTypeEnum.USD_TO_RECHARGE_USER.equals(typeEnum)) {
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);
}
});
gameUsdToRechargeUserLimitService.validUsdToRechargeUser(guildMember, targetUid, gameUsdNum);
} else if (GameUsdOperateTypeEnum.OWNER_USD_WITHDRAW.equals(typeEnum) || GameUsdOperateTypeEnum.MEMBER_USD_WITHDRAW.equals(typeEnum)) {
gameUsdToRechargeUserLimitService.validUsdWithdraw(guildMember);

View File

@@ -22,8 +22,10 @@ import com.accompany.common.utils.StringUtils;
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.payment.service.RechargeUserService;
import com.accompany.payment.vo.RechargeUserVo;
import lombok.extern.slf4j.Slf4j;
@@ -73,6 +75,8 @@ public class GameUsdService {
private PartitionInfoService partitionInfoService;
@Autowired
private GameUsdToRechargeUserLimitService guildUsdToRechargeUserLimitService;
@Autowired
private RegionInfoService regionInfoService;
public GuildGameSalaryVo getGameUsdInfo(Long uid, String monthDate) {
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
@@ -288,7 +292,10 @@ public class GameUsdService {
return Collections.emptyList();
}
List<RechargeUserVo> rechargeUserVoList = rechargeUserService.listByPartitionIdByGuildTab(u.getPartitionId());
RegionInfo regionInfo = regionInfoService.getById(u.getRegionId());
String regionCode = regionInfo == null ? null : regionInfo.getCode();
List<RechargeUserVo> rechargeUserVoList = rechargeUserService.listByPartitionIdByGuildTab(u.getPartitionId(), regionCode);
if (org.springframework.util.CollectionUtils.isEmpty(rechargeUserVoList)){
return rechargeUserVoList;
}