金币转赠统一国家代理

This commit is contained in:
2025-09-10 16:01:58 +08:00
parent dabcb7c946
commit 580304f7dc

View File

@@ -34,11 +34,13 @@ 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.SysConfService;
import com.accompany.core.service.common.JedisLockService;
import com.accompany.core.service.common.JedisService;
import com.accompany.core.service.partition.PartitionInfoService;
import com.accompany.core.service.region.RegionInfoService;
import com.accompany.core.util.I18NMessageSourceUtil;
import com.accompany.core.util.PartitionUtil;
import com.accompany.core.vo.UserLevelVo;
@@ -66,6 +68,8 @@ import java.time.ZonedDateTime;
import java.util.*;
import java.util.stream.Collectors;
import static com.accompany.common.constant.Constant.GLOBAL_CODE;
/**
* 用户转赠钻石记录表
*
@@ -118,6 +122,9 @@ public class DiamondGiveHistoryService extends ServiceImpl<DiamondGiveHistoryMap
@Autowired
private PartitionInfoService partitionInfoService;
@Autowired
private RegionInfoService regionInfoService;
/**
* 获取当前用户曾转赠过的用户(去重)
* @param uid
@@ -408,6 +415,21 @@ public class DiamondGiveHistoryService extends ServiceImpl<DiamondGiveHistoryMap
&& (CollectionUtils.isEmpty(erbanNoList) || !erbanNoList.contains(users.getErbanNo()))) {
throw new ServiceException(BusiStatus.NO_TRANSFER_PERMISSION_CURRENTLY_AVAILABLE);
}
boolean partitionLimit = users.getPartitionId() == PartitionEnum.ARAB.getId()
|| users.getPartitionId() == PartitionEnum.TURKEY.getId()
|| users.getPartitionId() == PartitionEnum.ENGLISH2.getId();
List<String> regionCodeList = rechargeUserService.regionCodeList(uid);
Users toUser = usersService.getUsersByUid(toUid);
if (partitionLimit && CollectionUtils.isEmpty(regionCodeList)) {
throw new ServiceException(BusiStatus.RECHARGE_REGION_GIVE_LIMIT);
}else if (partitionLimit && toUser.getRegionId() != null && !regionCodeList.contains(GLOBAL_CODE)) {
RegionInfo regionInfo = regionInfoService.getById(toUser.getRegionId());
if (regionInfo == null || !regionCodeList.contains(regionInfo.getCode())) {
throw new ServiceException(BusiStatus.RECHARGE_REGION_GIVE_LIMIT);
}
}
// 條件限制檢測2
giveCheck(uid, toUid, diamondNum, realSpendDiamondNum);
}