From 8240941634ebe24e0e902280450348360c2d177e Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Mon, 24 Jan 2022 14:31:54 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=90=8E=E7=AB=AF=E6=8A=8A=E8=8E=B7?= =?UTF-8?q?=E5=8F=96ip=E4=BF=A1=E6=81=AF=E6=8F=90=E5=8F=96=E5=87=BA?= =?UTF-8?q?=E6=9D=A5=E5=BD=93=E6=88=90=E5=B7=A5=E5=85=B7=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/business/tools/apitools/index.vue | 25 +++++++++++++++++++ .../controller/ApiToolsController.java | 2 +- .../com/xjs/weather/factory/IPFactory.java | 9 ++++++- .../weather/factory/impl/RollIPFactory.java | 9 +++++-- .../factory/impl/SpeedTestIPFactory.java | 7 +++++- .../com/xjs/weather/service/IPService.java | 8 ++++++ .../weather/service/impl/IPServiceImpl.java | 12 ++++++--- .../TianXingOneEnglishFactoryTest.java | 2 +- 8 files changed, 65 insertions(+), 9 deletions(-) diff --git a/ruoyi-ui/src/views/business/tools/apitools/index.vue b/ruoyi-ui/src/views/business/tools/apitools/index.vue index ebdb56d9..a2326e7f 100644 --- a/ruoyi-ui/src/views/business/tools/apitools/index.vue +++ b/ruoyi-ui/src/views/business/tools/apitools/index.vue @@ -368,6 +368,28 @@ + +
+ + + + + + + + + 搜索 + + + + +
@@ -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'} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/controller/ApiToolsController.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/controller/ApiToolsController.java index 2e4244c6..e1af9a9d 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/controller/ApiToolsController.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/controller/ApiToolsController.java @@ -149,7 +149,7 @@ public class ApiToolsController { @Log(title = "获取IP") @RequiresPermissions("open:apitools:ipinfo") public R getIPApiData(@PathVariable("ip")String ip) { - return R.ok(ipService.getIPApiData()); + return R.ok(ipService.getIPApiData(ip)); } } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/IPFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/IPFactory.java index 649137c1..2aa2d11e 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/IPFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/IPFactory.java @@ -11,6 +11,13 @@ public interface IPFactory { * 获取ip工厂方法 * @return T */ - T IpApi(); + T ipApi(); + + /** + * 获取ip工厂方法 + * @param ip ip + * @return T + */ + T ipApi(String ip); } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/RollIPFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/RollIPFactory.java index 64f835bd..bdf0efcf 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/RollIPFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/RollIPFactory.java @@ -35,9 +35,14 @@ public class RollIPFactory implements IPFactory { 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()); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/SpeedTestIPFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/SpeedTestIPFactory.java index 97d5c0d6..cb0db448 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/SpeedTestIPFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/SpeedTestIPFactory.java @@ -25,7 +25,7 @@ public class SpeedTestIPFactory implements IPFactory { @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 { } return null; } + + @Override + public IPInfoVo ipApi(String ip) { + return null; + } } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/service/IPService.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/service/IPService.java index 82c33403..6911255d 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/service/IPService.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/service/IPService.java @@ -15,4 +15,12 @@ public interface IPService { */ IPInfoVo getIPApiData(); + + /** + * 获取IP的数据 + * @param ip ip + * @return IPInfoVo + */ + IPInfoVo getIPApiData(String ip); + } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/service/impl/IPServiceImpl.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/service/impl/IPServiceImpl.java index aa36d853..c4af2dbc 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/service/impl/IPServiceImpl.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/service/impl/IPServiceImpl.java @@ -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); + } } diff --git a/xjs-business/xjs-business-openapi/src/test/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactoryTest.java b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactoryTest.java index cc6d6218..7b4804fc 100644 --- a/xjs-business/xjs-business-openapi/src/test/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactoryTest.java +++ b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactoryTest.java @@ -49,7 +49,7 @@ class TianXingOneEnglishFactoryTest { @Test void ip() { - IPInfoVo ipInfoVo = speedTestIPFactory.IpApi(); + IPInfoVo ipInfoVo = speedTestIPFactory.ipApi(); System.out.println(ipInfoVo.toString()); }