1、后端把获取ip信息提取出来当成工具模块功能

pull/254/head
xjs 4 years ago
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
*/ */
@ -32,7 +33,7 @@ public class IPServiceImpl implements IPService {
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;
@ -41,4 +42,9 @@ public class IPServiceImpl implements IPService {
} }
} }
} }
@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…
Cancel
Save