ip隔离-测试环境跳过

This commit is contained in:
khalil
2023-11-20 17:10:15 +08:00
parent 10ca39dcce
commit afbcbd5873
2 changed files with 7 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ import com.accompany.common.constant.Constant;
import com.accompany.common.device.DeviceInfo;
import com.accompany.common.status.BusiStatus;
import com.accompany.common.utils.CommonUtil;
import com.accompany.common.utils.EnvComponent;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.model.Account;
import com.accompany.core.service.SysConfService;
@@ -28,11 +29,13 @@ public class IpRegionService {
private AccountService accountService;
@Autowired
private RegionService regionService;
@Autowired
private EnvComponent envComponent;
public Long check(Long uid, String ip, DeviceInfo deviceInfo) {
String ipRegion = regionService.getRegion(ip);
if (recordService.isInLimitRecord(uid, ip, ipRegion, deviceInfo.getDeviceId())){
if (!recordService.isInLimitRecord(uid, ip, ipRegion, deviceInfo.getDeviceId())){
log.error("[ipRegionCheck] 被拦截,已在限制访问记录中 uid {} ip {} ipRegion {} deviceId {} mcc {} lang {}",
uid, ip, ipRegion, deviceInfo.getDeviceId(), deviceInfo.getMcc(), deviceInfo.getLang());
throw new ServiceException(BusiStatus.IP_REGION_HAD_LIMIT);
@@ -45,7 +48,7 @@ public class IpRegionService {
throw new ServiceException(BusiStatus.IP_REGION_HAD_LIMIT);
}
if (whiteService.isInWhileList(account.getUid(), account.getPhone())){
if (whiteService.isInWhileList(account.getUid(), account.getPhone()) || envComponent.getDevEnv()){
return getNextTimestampInterval();
}

View File

@@ -30,6 +30,8 @@ public class IpRegionController extends BaseController {
private BusiResult<Long> check(HttpServletRequest request, String mcc, String lang){
Long uid = getUid(request);
DeviceInfo deviceInfo = getDeviceInfo(request);
deviceInfo.setMcc(mcc);
deviceInfo.setLang(lang);
String ip = IPUtils.getRealIpAddress(request);
Long nextTime = SpringContextHolder.getBean(IpRegionService.class).check(uid, ip, deviceInfo);
return new BusiResult<>(nextTime);