新增内网ip判断,内网返回所属地为"未知"

This commit is contained in:
gaoqr
2024-11-07 09:59:36 +08:00
parent 5ababb60c1
commit f4f167bcfa
2 changed files with 17 additions and 1 deletions
@@ -1,5 +1,6 @@
package com.cf.imes.framework.ip.core.service.imp; package com.cf.imes.framework.ip.core.service.imp;
import cn.hutool.core.net.NetUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpResponse;
@@ -35,6 +36,10 @@ public class IPQueryServiceImpl implements IPQueryService {
@Override @Override
public IPQueryDataRespDTO querySource(String ip) { public IPQueryDataRespDTO querySource(String ip) {
// 校验是否内部ip
if (NetUtil.isInnerIP(ip)) {
return new IPQueryDataRespDTO().setIp(ip).setProv("未知");
}
ErrorCode queryError = ErrorCodeConstants.IP_QUERY_ERROR; ErrorCode queryError = ErrorCodeConstants.IP_QUERY_ERROR;
try { try {
String apiUrl = ipQueryProperties.getApiUrl(); String apiUrl = ipQueryProperties.getApiUrl();
@@ -1,6 +1,7 @@
package com.cf.imes.module.system.convert.auth; package com.cf.imes.module.system.convert.auth;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.cf.imes.framework.ip.core.service.dto.IPQueryDataRespDTO; import com.cf.imes.framework.ip.core.service.dto.IPQueryDataRespDTO;
import com.cf.imes.module.system.api.sms.dto.code.SmsCodeSendReqDTO; import com.cf.imes.module.system.api.sms.dto.code.SmsCodeSendReqDTO;
@@ -36,11 +37,21 @@ public interface AuthConvert {
default AuthPermissionInfoRespVO convert(AdminUserDO user, OrganizationDO organizationDO, IPQueryDataRespDTO ipQueryDataRespDTO, List<RoleDO> roleList, List<MenuDO> menuList) { default AuthPermissionInfoRespVO convert(AdminUserDO user, OrganizationDO organizationDO, IPQueryDataRespDTO ipQueryDataRespDTO, List<RoleDO> roleList, List<MenuDO> menuList) {
boolean ipQuerySuccess = ObjectUtil.isNotNull(ipQueryDataRespDTO); boolean ipQuerySuccess = ObjectUtil.isNotNull(ipQueryDataRespDTO);
String region = null;
if (ipQuerySuccess) {
String prov = ipQueryDataRespDTO.getProv();
if (CharSequenceUtil.contains(prov, "未知")) {
region = prov;
} else {
region = StringUtils.join(List.of(prov, ipQueryDataRespDTO.getCity(), ipQueryDataRespDTO.getArea()), "/");
}
}
return AuthPermissionInfoRespVO.builder() return AuthPermissionInfoRespVO.builder()
.user(AuthPermissionInfoRespVO.UserVO.builder() .user(AuthPermissionInfoRespVO.UserVO.builder()
.id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).organId(user.getOrganId()).needSetPwd(StringUtils.isEmpty(user.getPassword())) .id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).organId(user.getOrganId()).needSetPwd(StringUtils.isEmpty(user.getPassword()))
.expireTime(organizationDO.getExpireTime()).ip(ipQuerySuccess ? ipQueryDataRespDTO.getIp() : "") .expireTime(organizationDO.getExpireTime()).ip(ipQuerySuccess ? ipQueryDataRespDTO.getIp() : "")
.region(ipQuerySuccess ? ipQueryDataRespDTO.getProv() + "/" + ipQueryDataRespDTO.getCity() + "/" + ipQueryDataRespDTO.getArea() : "") .region(region)
.build()) .build())
.roles(convertSet(roleList, RoleDO::getCode)) .roles(convertSet(roleList, RoleDO::getCode))
// 权限标识信息 // 权限标识信息