地区-注册地区列表
This commit is contained in:
@@ -11,6 +11,7 @@ public class RegionNetworkVo {
|
||||
private String regionName = "0";
|
||||
private String city = "0";
|
||||
private String isp = "0";
|
||||
private String countryCode;
|
||||
|
||||
public boolean isSuccess(){
|
||||
return StringUtils.equals("success", status);
|
||||
|
@@ -20,14 +20,18 @@ public class RegionNetworkSearchService {
|
||||
private static final String IP_API = "https://pro.ip-api.com/json/%s?key=CNziZ12dU01uo0f&fields=60415&lang=zh-CN";
|
||||
|
||||
@SneakyThrows
|
||||
private String search(String ipStr){
|
||||
public RegionNetworkVo networkSearch(String ipStr){
|
||||
String requestUrl = String.format(IP_API, ipStr);
|
||||
String s = HttpUtils.doGet(requestUrl, Collections.emptyMap());
|
||||
RegionNetworkVo result = JSON.parseObject(s, RegionNetworkVo.class);
|
||||
if (!result.isSuccess()){
|
||||
throw new ServiceException(BusiStatus.SERVERBUSY);
|
||||
}
|
||||
return result.format();
|
||||
return result;
|
||||
}
|
||||
|
||||
private String search(String ipStr){
|
||||
return networkSearch(ipStr).format();
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
|
@@ -9,7 +9,8 @@
|
||||
ri.id id,
|
||||
ri.partition_id partitionId,
|
||||
pi.`desc` partitionDesc,
|
||||
ri.`name` regionDesc
|
||||
ri.`name` regionDesc,
|
||||
ri.`icon`
|
||||
FROM
|
||||
region_info ri
|
||||
LEFT JOIN partition_info pi ON ri.partition_id = pi.id
|
||||
|
@@ -7,4 +7,5 @@ import lombok.Data;
|
||||
public class RegionInfoVo extends RegionInfo {
|
||||
private String partitionDesc;
|
||||
private String regionDesc;
|
||||
private Boolean checked = Boolean.FALSE;
|
||||
}
|
||||
|
@@ -4,13 +4,20 @@ import com.accompany.business.common.BaseController;
|
||||
import com.accompany.common.annotation.Authorization;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.common.utils.IPUtils;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.RegionInfo;
|
||||
import com.accompany.core.service.region.RegionInfoService;
|
||||
import com.accompany.core.service.region.RegionNetworkSearchService;
|
||||
import com.accompany.core.vo.RegionInfoVo;
|
||||
import com.accompany.core.vo.RegionNetworkVo;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -24,9 +31,29 @@ import java.util.List;
|
||||
@RequestMapping("/regionInfo")
|
||||
public class RegionInfoController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private RegionNetworkSearchService regionNetworkSearchService;
|
||||
@Autowired
|
||||
private RegionInfoService service;
|
||||
|
||||
@ApiOperation("获取地区列表")
|
||||
@GetMapping("/listAll")
|
||||
public BusiResult<List<RegionInfoVo>> listAll(HttpServletRequest request) {
|
||||
List<RegionInfoVo> regionInfos = service.getAllList();
|
||||
if (!CollectionUtils.isEmpty(regionInfos)) {
|
||||
String ip = IPUtils.getRealIpAddress(request);
|
||||
RegionNetworkVo regionNetworkVo = regionNetworkSearchService.networkSearch(ip);
|
||||
String countryCode = StringUtils.hasText(regionNetworkVo.getCountryCode()) ? regionNetworkVo.getCountryCode() : "";
|
||||
for (RegionInfoVo regionInfoVo : regionInfos) {
|
||||
regionInfoVo.setPartitionDesc(null);
|
||||
if (regionInfoVo.getCode().equalsIgnoreCase(countryCode)) {
|
||||
regionInfoVo.setChecked(Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
return new BusiResult<>(regionInfos);
|
||||
}
|
||||
|
||||
@ApiOperation("获取地区列表")
|
||||
@GetMapping("/list")
|
||||
@Authorization
|
||||
|
Reference in New Issue
Block a user