1、后端把获取ip信息提取出来当成工具模块功能
This commit is contained in:
parent
9f208c4df1
commit
8240941634
|
|
@ -368,6 +368,28 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -483,6 +505,9 @@ export default {
|
||||||
name: [
|
name: [
|
||||||
{required: true, message: '请输入垃圾名称!!!', trigger: 'blur'},
|
{required: true, message: '请输入垃圾名称!!!', trigger: 'blur'},
|
||||||
],
|
],
|
||||||
|
content:[
|
||||||
|
{required: true, message: '请输入垃圾名称!!!', trigger: 'blur'},
|
||||||
|
],
|
||||||
dict: [
|
dict: [
|
||||||
{required: true, message: '请输入简体中文!!!', trigger: 'blur'},
|
{required: true, message: '请输入简体中文!!!', trigger: 'blur'},
|
||||||
{min: 1, max: 1, message: '长度在 1 个字符', trigger: 'blur'}
|
{min: 1, max: 1, message: '长度在 1 个字符', trigger: 'blur'}
|
||||||
|
|
|
||||||
|
|
@ -149,7 +149,7 @@ public class ApiToolsController {
|
||||||
@Log(title = "获取IP")
|
@Log(title = "获取IP")
|
||||||
@RequiresPermissions("open:apitools:ipinfo")
|
@RequiresPermissions("open:apitools:ipinfo")
|
||||||
public R<IPInfoVo> getIPApiData(@PathVariable("ip")String ip) {
|
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工厂方法
|
* 获取ip工厂方法
|
||||||
* @return T
|
* @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;
|
private RedisService redisService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPInfoVo IpApi() {
|
public IPInfoVo ipApi() {
|
||||||
RequestBody requestBody = new RequestBody();
|
|
||||||
String ip = Optional.ofNullable(IPUtils.getV4IP()).orElse(LOCAL_IP);
|
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.setIp(ip);
|
||||||
requestBody.setApp_id(rollProperties.getApp_id());
|
requestBody.setApp_id(rollProperties.getApp_id());
|
||||||
requestBody.setApp_secret(rollProperties.getApp_secret());
|
requestBody.setApp_secret(rollProperties.getApp_secret());
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ public class SpeedTestIPFactory implements IPFactory<IPInfoVo> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public IPInfoVo IpApi() {
|
public IPInfoVo ipApi() {
|
||||||
String v4IP = IPUtils.getV4IP();
|
String v4IP = IPUtils.getV4IP();
|
||||||
String ip = Optional.ofNullable(v4IP).orElse(LOCAL_IP);
|
String ip = Optional.ofNullable(v4IP).orElse(LOCAL_IP);
|
||||||
JSONObject jsonObject = speedTestIPFeignClient.IpApi(ip);
|
JSONObject jsonObject = speedTestIPFeignClient.IpApi(ip);
|
||||||
|
|
@ -41,4 +41,9 @@ public class SpeedTestIPFactory implements IPFactory<IPInfoVo> {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPInfoVo ipApi(String ip) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,4 +15,12 @@ public interface IPService {
|
||||||
*/
|
*/
|
||||||
IPInfoVo getIPApiData();
|
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服务实现
|
* ip api服务实现
|
||||||
|
*
|
||||||
* @author xiejs
|
* @author xiejs
|
||||||
* @since 2022-01-15
|
* @since 2022-01-15
|
||||||
*/
|
*/
|
||||||
|
|
@ -31,14 +32,19 @@ public class IPServiceImpl implements IPService {
|
||||||
public IPInfoVo getIPApiData() {
|
public IPInfoVo getIPApiData() {
|
||||||
if (redisService.hasKey(IP_INFO)) {
|
if (redisService.hasKey(IP_INFO)) {
|
||||||
return (IPInfoVo) redisService.getCacheObject(IP_INFO);
|
return (IPInfoVo) redisService.getCacheObject(IP_INFO);
|
||||||
}else {
|
} else {
|
||||||
IPInfoVo ipInfoVo = rollIPFactory.IpApi();
|
IPInfoVo ipInfoVo = rollIPFactory.ipApi();
|
||||||
if (Objects.nonNull(ipInfoVo)) {
|
if (Objects.nonNull(ipInfoVo)) {
|
||||||
redisService.setCacheObject(IP_INFO, ipInfoVo, IP_INFO_EXPIRE, TimeUnit.MINUTES);
|
redisService.setCacheObject(IP_INFO, ipInfoVo, IP_INFO_EXPIRE, TimeUnit.MINUTES);
|
||||||
return ipInfoVo;
|
return ipInfoVo;
|
||||||
}else {
|
} else {
|
||||||
throw new ApiException("获取IP信息异常!!");
|
throw new ApiException("获取IP信息异常!!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPInfoVo getIPApiData(String ip) {
|
||||||
|
return rollIPFactory.ipApi(ip);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ class TianXingOneEnglishFactoryTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void ip() {
|
void ip() {
|
||||||
IPInfoVo ipInfoVo = speedTestIPFactory.IpApi();
|
IPInfoVo ipInfoVo = speedTestIPFactory.ipApi();
|
||||||
System.out.println(ipInfoVo.toString());
|
System.out.println(ipInfoVo.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue