1、后端把获取ip信息提取出来当成工具模块功能
This commit is contained in:
parent
9f208c4df1
commit
8240941634
|
|
@ -368,6 +368,28 @@
|
|||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<div class="table2_col_div">
|
||||
<el-form :inline="true" :rules="rules" :model="chineseDictForm" ref="chineseDictForm">
|
||||
<el-form-item label="IP查询" label-width="100px" prop="dict">
|
||||
<el-input v-model="chineseDictForm.dict" placeholder="请输入单个中文"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-popover
|
||||
placement="left"
|
||||
width="560"
|
||||
trigger="manual"
|
||||
v-model="chineseDictVisible">
|
||||
|
||||
<el-button @click="close" icon="el-icon-close" circle plain size="mini"
|
||||
style="float: right"></el-button>
|
||||
<el-button v-loading="loading10" type="primary" slot="reference"
|
||||
@click="getChineseDict('chineseDictForm')">搜索
|
||||
</el-button>
|
||||
</el-popover>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -483,6 +505,9 @@ export default {
|
|||
name: [
|
||||
{required: true, message: '请输入垃圾名称!!!', trigger: 'blur'},
|
||||
],
|
||||
content:[
|
||||
{required: true, message: '请输入垃圾名称!!!', trigger: 'blur'},
|
||||
],
|
||||
dict: [
|
||||
{required: true, message: '请输入简体中文!!!', trigger: 'blur'},
|
||||
{min: 1, max: 1, message: '长度在 1 个字符', trigger: 'blur'}
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ public class ApiToolsController {
|
|||
@Log(title = "获取IP")
|
||||
@RequiresPermissions("open:apitools:ipinfo")
|
||||
public R<IPInfoVo> getIPApiData(@PathVariable("ip")String ip) {
|
||||
return R.ok(ipService.getIPApiData());
|
||||
return R.ok(ipService.getIPApiData(ip));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,13 @@ public interface IPFactory<T> {
|
|||
* 获取ip工厂方法
|
||||
* @return T
|
||||
*/
|
||||
T IpApi();
|
||||
T ipApi();
|
||||
|
||||
/**
|
||||
* 获取ip工厂方法
|
||||
* @param ip ip
|
||||
* @return T
|
||||
*/
|
||||
T ipApi(String ip);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,9 +35,14 @@ public class RollIPFactory implements IPFactory<IPInfoVo> {
|
|||
private RedisService redisService;
|
||||
|
||||
@Override
|
||||
public IPInfoVo IpApi() {
|
||||
RequestBody requestBody = new RequestBody();
|
||||
public IPInfoVo ipApi() {
|
||||
String ip = Optional.ofNullable(IPUtils.getV4IP()).orElse(LOCAL_IP);
|
||||
return ipApi(ip);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPInfoVo ipApi(String ip) {
|
||||
RequestBody requestBody = new RequestBody();
|
||||
requestBody.setIp(ip);
|
||||
requestBody.setApp_id(rollProperties.getApp_id());
|
||||
requestBody.setApp_secret(rollProperties.getApp_secret());
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public class SpeedTestIPFactory implements IPFactory<IPInfoVo> {
|
|||
|
||||
@Override
|
||||
@Deprecated
|
||||
public IPInfoVo IpApi() {
|
||||
public IPInfoVo ipApi() {
|
||||
String v4IP = IPUtils.getV4IP();
|
||||
String ip = Optional.ofNullable(v4IP).orElse(LOCAL_IP);
|
||||
JSONObject jsonObject = speedTestIPFeignClient.IpApi(ip);
|
||||
|
|
@ -41,4 +41,9 @@ public class SpeedTestIPFactory implements IPFactory<IPInfoVo> {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPInfoVo ipApi(String ip) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,4 +15,12 @@ public interface IPService {
|
|||
*/
|
||||
IPInfoVo getIPApiData();
|
||||
|
||||
|
||||
/**
|
||||
* 获取IP的数据
|
||||
* @param ip ip
|
||||
* @return IPInfoVo
|
||||
*/
|
||||
IPInfoVo getIPApiData(String ip);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import static com.xjs.consts.RedisConst.IP_INFO_EXPIRE;
|
|||
|
||||
/**
|
||||
* ip api服务实现
|
||||
*
|
||||
* @author xiejs
|
||||
* @since 2022-01-15
|
||||
*/
|
||||
|
|
@ -31,14 +32,19 @@ public class IPServiceImpl implements IPService {
|
|||
public IPInfoVo getIPApiData() {
|
||||
if (redisService.hasKey(IP_INFO)) {
|
||||
return (IPInfoVo) redisService.getCacheObject(IP_INFO);
|
||||
}else {
|
||||
IPInfoVo ipInfoVo = rollIPFactory.IpApi();
|
||||
} else {
|
||||
IPInfoVo ipInfoVo = rollIPFactory.ipApi();
|
||||
if (Objects.nonNull(ipInfoVo)) {
|
||||
redisService.setCacheObject(IP_INFO, ipInfoVo, IP_INFO_EXPIRE, TimeUnit.MINUTES);
|
||||
return ipInfoVo;
|
||||
}else {
|
||||
} else {
|
||||
throw new ApiException("获取IP信息异常!!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPInfoVo getIPApiData(String ip) {
|
||||
return rollIPFactory.ipApi(ip);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class TianXingOneEnglishFactoryTest {
|
|||
|
||||
@Test
|
||||
void ip() {
|
||||
IPInfoVo ipInfoVo = speedTestIPFactory.IpApi();
|
||||
IPInfoVo ipInfoVo = speedTestIPFactory.ipApi();
|
||||
System.out.println(ipInfoVo.toString());
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue