From feef427d41d9379e47e35bf3f5242818c7721929 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Sun, 26 Nov 2023 14:36:52 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E9=83=A8?= =?UTF-8?q?=E5=88=86=E9=85=8D=E7=BD=AE=E5=8F=8A=E5=B7=A5=E5=85=B7=E7=B1=BB?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=EF=BC=8C=E9=80=82=E9=85=8D=E6=9C=80=E6=96=B0?= =?UTF-8?q?=20ContiNew=20Starter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IpUtils 已经提取到 ContiNew Starter --- continew-admin-common/pom.xml | 12 -- .../config/properties/ProjectProperties.java | 44 ------- .../cnadmin/common/util/IpUtils.java | 111 ------------------ .../common/util/helper/LoginHelper.java | 2 +- .../monitor/interceptor/LogInterceptor.java | 2 +- .../auth/service/impl/LoginServiceImpl.java | 2 +- .../cnadmin/ContiNewAdminApplication.java | 2 +- .../controller/common/CaptchaController.java | 2 +- .../controller/common/CommonController.java | 2 +- .../controller/tool/GeneratorController.java | 2 +- .../main/resources/config/application-dev.yml | 4 +- .../resources/config/application-prod.yml | 4 +- .../src/main/resources/config/application.yml | 26 ++-- pom.xml | 12 -- 14 files changed, 24 insertions(+), 203 deletions(-) delete mode 100644 continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/properties/ProjectProperties.java delete mode 100644 continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/IpUtils.java diff --git a/continew-admin-common/pom.xml b/continew-admin-common/pom.xml index 11b47324..cd596e9b 100644 --- a/continew-admin-common/pom.xml +++ b/continew-admin-common/pom.xml @@ -34,12 +34,6 @@ continew-starter-data-mybatis-plus - - - top.charles7c.continew - continew-starter-cache-redisson - - top.charles7c.continew @@ -93,11 +87,5 @@ com.alibaba easyexcel - - - - net.dreamlu - mica-ip2region - \ No newline at end of file diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/properties/ProjectProperties.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/properties/ProjectProperties.java deleted file mode 100644 index 49073baf..00000000 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/properties/ProjectProperties.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.charles7c.cnadmin.common.config.properties; - -import lombok.Data; - -import org.springframework.stereotype.Component; - -import cn.hutool.core.convert.Convert; -import cn.hutool.extra.spring.SpringUtil; - -/** - * 项目配置属性 - * - * @author Charles7c - * @since 2022/12/11 19:26 - */ -@Data -@Component -public class ProjectProperties extends top.charles7c.continew.starter.core.autoconfigure.ProjectProperties { - - /** - * 是否本地解析 IP 归属地 - */ - public static final boolean IP_ADDR_LOCAL_PARSE_ENABLED; - - static { - IP_ADDR_LOCAL_PARSE_ENABLED = Convert.toBool(SpringUtil.getProperty("project.ipAddrLocalParseEnabled")); - } -} diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/IpUtils.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/IpUtils.java deleted file mode 100644 index d12f6a21..00000000 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/IpUtils.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.charles7c.cnadmin.common.util; - -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -import cn.hutool.core.net.NetUtil; -import cn.hutool.extra.spring.SpringUtil; -import cn.hutool.http.HtmlUtil; -import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; - -import top.charles7c.cnadmin.common.config.properties.ProjectProperties; - -import net.dreamlu.mica.ip2region.core.Ip2regionSearcher; -import net.dreamlu.mica.ip2region.core.IpInfo; - -/** - * IP 工具类 - * - * @author Charles7c - * @since 2022/12/23 20:00 - */ -@Slf4j -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class IpUtils { - - /** - * 太平洋网开放 API:查询 IP 归属地 - */ - private static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp?ip=%s&json=true"; - - /** - * 根据 IP 获取归属地信息 - * - * @param ip - * IP 地址 - * @return 归属地信息 - */ - public static String getCityInfo(String ip) { - if (ProjectProperties.IP_ADDR_LOCAL_PARSE_ENABLED) { - return getLocalCityInfo(ip); - } else { - return getHttpCityInfo(ip); - } - } - - /** - * 根据 IP 获取归属地信息(网络解析) - * - * @param ip - * IP 地址 - * @return 归属地信息 - */ - public static String getHttpCityInfo(String ip) { - if (isInnerIp(ip)) { - return "内网IP"; - } - String api = String.format(IP_URL, ip); - JSONObject object = JSONUtil.parseObj(HttpUtil.get(api)); - return object.get("addr", String.class); - } - - /** - * 根据 IP 获取归属地信息(本地解析) - * - * @param ip - * IP 地址 - * @return 归属地信息 - */ - public static String getLocalCityInfo(String ip) { - if (isInnerIp(ip)) { - return "内网IP"; - } - Ip2regionSearcher ip2regionSearcher = SpringUtil.getBean(Ip2regionSearcher.class); - IpInfo ipInfo = ip2regionSearcher.memorySearch(ip); - if (null != ipInfo) { - return ipInfo.getAddress(); - } - return null; - } - - /** - * 是否为内网 IPv4 - * - * @param ip - * IP 地址 - * @return 是否为内网 IP - */ - public static boolean isInnerIp(String ip) { - ip = "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : HtmlUtil.cleanHtmlTag(ip); - return NetUtil.isInnerIP(ip); - } -} diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java index ac993983..bb408bf2 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java @@ -33,10 +33,10 @@ import top.charles7c.cnadmin.common.constant.CacheConstants; import top.charles7c.cnadmin.common.model.dto.LogContext; import top.charles7c.cnadmin.common.model.dto.LoginUser; import top.charles7c.cnadmin.common.service.CommonUserService; -import top.charles7c.cnadmin.common.util.IpUtils; import top.charles7c.cnadmin.common.util.ServletUtils; import top.charles7c.cnadmin.common.util.holder.LogContextHolder; import top.charles7c.continew.starter.core.util.ExceptionUtils; +import top.charles7c.continew.starter.core.util.IpUtils; /** * 登录助手 diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java index 74c544ce..7006a69d 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java +++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java @@ -54,7 +54,6 @@ import top.charles7c.cnadmin.auth.model.req.AccountLoginReq; import top.charles7c.cnadmin.common.constant.SysConstants; import top.charles7c.cnadmin.common.model.dto.LogContext; import top.charles7c.cnadmin.common.model.resp.R; -import top.charles7c.cnadmin.common.util.IpUtils; import top.charles7c.cnadmin.common.util.ServletUtils; import top.charles7c.cnadmin.common.util.helper.LoginHelper; import top.charles7c.cnadmin.common.util.holder.LogContextHolder; @@ -65,6 +64,7 @@ import top.charles7c.cnadmin.monitor.model.entity.LogDO; import top.charles7c.cnadmin.system.service.UserService; import top.charles7c.continew.starter.core.constant.StringConstants; import top.charles7c.continew.starter.core.util.ExceptionUtils; +import top.charles7c.continew.starter.core.util.IpUtils; /** * 系统日志拦截器 diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java index 2da0ab52..787280f3 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java @@ -39,7 +39,6 @@ import top.charles7c.cnadmin.auth.model.resp.RouteResp; import top.charles7c.cnadmin.auth.service.LoginService; import top.charles7c.cnadmin.auth.service.PermissionService; import top.charles7c.cnadmin.common.annotation.TreeField; -import top.charles7c.cnadmin.common.config.properties.ProjectProperties; import top.charles7c.cnadmin.common.constant.RegexConstants; import top.charles7c.cnadmin.common.constant.SysConstants; import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; @@ -59,6 +58,7 @@ import top.charles7c.cnadmin.system.model.req.MessageReq; import top.charles7c.cnadmin.system.model.resp.DeptDetailResp; import top.charles7c.cnadmin.system.model.resp.MenuResp; import top.charles7c.cnadmin.system.service.*; +import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties; import me.zhyd.oauth.model.AuthUser; diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/ContiNewAdminApplication.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/ContiNewAdminApplication.java index 65b4e33e..48b08769 100644 --- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/ContiNewAdminApplication.java +++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/ContiNewAdminApplication.java @@ -38,7 +38,7 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.util.URLUtil; import cn.hutool.extra.spring.SpringUtil; -import top.charles7c.cnadmin.common.config.properties.ProjectProperties; +import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties; /** * 启动程序 diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CaptchaController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CaptchaController.java index 47ede464..b1fea832 100644 --- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CaptchaController.java +++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CaptchaController.java @@ -47,7 +47,6 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.RandomUtil; import top.charles7c.cnadmin.common.config.properties.CaptchaProperties; -import top.charles7c.cnadmin.common.config.properties.ProjectProperties; import top.charles7c.cnadmin.common.constant.CacheConstants; import top.charles7c.cnadmin.common.constant.RegexConstants; import top.charles7c.cnadmin.common.model.resp.CaptchaResp; @@ -57,6 +56,7 @@ import top.charles7c.cnadmin.common.util.TemplateUtils; import top.charles7c.cnadmin.common.util.validate.CheckUtils; import top.charles7c.continew.starter.cache.redisson.util.RedisUtils; import top.charles7c.continew.starter.captcha.graphic.autoconfigure.GraphicCaptchaProperties; +import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties; /** * 验证码 API diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CommonController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CommonController.java index bb2c5947..b263a3a8 100644 --- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CommonController.java +++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CommonController.java @@ -44,7 +44,6 @@ import cn.hutool.core.util.StrUtil; import top.charles7c.cnadmin.common.base.IBaseEnum; import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties; -import top.charles7c.cnadmin.common.config.properties.ProjectProperties; import top.charles7c.cnadmin.common.constant.CacheConstants; import top.charles7c.cnadmin.common.model.query.SortQuery; import top.charles7c.cnadmin.common.model.resp.LabelValueResp; @@ -59,6 +58,7 @@ import top.charles7c.cnadmin.system.model.query.OptionQuery; import top.charles7c.cnadmin.system.model.query.RoleQuery; import top.charles7c.cnadmin.system.model.resp.RoleResp; import top.charles7c.cnadmin.system.service.*; +import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties; /** * 公共 API diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java index 68481dca..7f0064fc 100644 --- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java +++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java @@ -31,7 +31,6 @@ import org.springframework.web.bind.annotation.*; import cn.dev33.satoken.annotation.SaCheckPermission; -import top.charles7c.cnadmin.common.config.properties.ProjectProperties; import top.charles7c.cnadmin.common.model.query.PageQuery; import top.charles7c.cnadmin.common.model.resp.PageDataResp; import top.charles7c.cnadmin.common.model.resp.R; @@ -42,6 +41,7 @@ import top.charles7c.cnadmin.tool.model.query.TableQuery; import top.charles7c.cnadmin.tool.model.req.GenConfigReq; import top.charles7c.cnadmin.tool.model.resp.TableResp; import top.charles7c.cnadmin.tool.service.GeneratorService; +import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties; /** * 代码生成 API diff --git a/continew-admin-webapi/src/main/resources/config/application-dev.yml b/continew-admin-webapi/src/main/resources/config/application-dev.yml index b58e9407..a2b6b84d 100644 --- a/continew-admin-webapi/src/main/resources/config/application-dev.yml +++ b/continew-admin-webapi/src/main/resources/config/application-dev.yml @@ -220,8 +220,8 @@ local-storage: avatarMaxSizeInMb: 5 ## Windows 系统本地存储配置 windows: - file: C:\${project.appName}\data\file\ - avatar: C:\${project.appName}\data\avatar\ + file: C:\${project.app-name}\data\file\ + avatar: C:\${project.app-name}\data\avatar\ ## Linux 系统本地存储配置 linux: file: ./data/file/ diff --git a/continew-admin-webapi/src/main/resources/config/application-prod.yml b/continew-admin-webapi/src/main/resources/config/application-prod.yml index bb3e16b0..59edc988 100644 --- a/continew-admin-webapi/src/main/resources/config/application-prod.yml +++ b/continew-admin-webapi/src/main/resources/config/application-prod.yml @@ -219,8 +219,8 @@ local-storage: avatarMaxSizeInMb: 5 ## Windows 系统本地存储配置 windows: - file: C:\${project.appName}\data\file\ - avatar: C:\${project.appName}\data\avatar\ + file: C:\${project.app-name}\data\file\ + avatar: C:\${project.app-name}\data\avatar\ ## Linux 系统本地存储配置 linux: file: ../data/file/ diff --git a/continew-admin-webapi/src/main/resources/config/application.yml b/continew-admin-webapi/src/main/resources/config/application.yml index d548c2fd..09a15ad5 100644 --- a/continew-admin-webapi/src/main/resources/config/application.yml +++ b/continew-admin-webapi/src/main/resources/config/application.yml @@ -3,13 +3,13 @@ project: # 名称 name: ContiNew Admin # 应用名称 - appName: continew-admin + app-name: continew-admin # 版本 version: 2.1.0-SNAPSHOT # 描述 description: ContiNew Admin 中后台管理框架/脚手架,Continue New Admin,持续以最新流行技术栈构建,拥抱变化,迭代优化。 # 基本包 - basePackage: top.charles7c.cnadmin + base-package: top.charles7c.cnadmin ## 作者信息配置 contact: name: Charles7c @@ -19,8 +19,8 @@ project: license: name: Apache-2.0 url: https://github.com/Charles7c/continew-admin/blob/dev/LICENSE - # 是否本地解析 IP 归属地 - ipAddrLocalParseEnabled: true + # 是否启用本地解析 IP 归属地 + ip-addr-local-parse-enabled: true --- ### 日志配置(重叠部分,优先级高于 logback-spring.xml 中的配置) logging: @@ -47,31 +47,31 @@ springdoc: group-configs: - group: 'all' paths-to-match: '/**' - packages-to-scan: ${project.basePackage}.webapi.controller + packages-to-scan: ${project.base-package}.webapi.controller - group: 'auth' display-name: '系统认证' paths-to-match: - '/auth/**' - '/oauth/**' - packages-to-scan: ${project.basePackage}.webapi.controller.auth + packages-to-scan: ${project.base-package}.webapi.controller.auth - group: 'common' display-name: '通用接口' paths-to-match: - '/common/**' - '/dashboard/**' - packages-to-scan: ${project.basePackage}.webapi.controller.common + packages-to-scan: ${project.base-package}.webapi.controller.common - group: 'system' display-name: '系统管理' paths-to-match: '/system/**' - packages-to-scan: ${project.basePackage}.webapi.controller.system + packages-to-scan: ${project.base-package}.webapi.controller.system - group: 'tool' display-name: '系统工具' paths-to-match: '/tool/**' - packages-to-scan: ${project.basePackage}.webapi.controller.tool + packages-to-scan: ${project.base-package}.webapi.controller.tool - group: 'monitor' display-name: '系统监控' paths-to-match: '/monitor/**' - packages-to-scan: ${project.basePackage}.webapi.controller.monitor + packages-to-scan: ${project.base-package}.webapi.controller.monitor ## 接口文档增强配置 knife4j: enable: true @@ -114,7 +114,7 @@ mybatis-plus: # Mapper XML 文件目录配置 mapper-locations: classpath*:/mapper/**/*Mapper.xml # 类型别名扫描包配置 - type-aliases-package: ${project.basePackage}.**.model + type-aliases-package: ${project.base-package}.**.model configuration: # MyBatis 自动映射策略 # NONE:不启用 PARTIAL:只对非嵌套 resultMap 自动映射 FULL:对所有 resultMap 自动映射 @@ -135,7 +135,7 @@ mybatis-plus: extension: enabled: true # Mapper 接口扫描包配置 - mapper-package: ${project.basePackage}.**.mapper + mapper-package: ${project.base-package}.**.mapper # 数据权限实现 data-permission-handler-impl: top.charles7c.cnadmin.common.config.mybatis.DataPermissionHandlerImpl # 分页插件配置 @@ -166,7 +166,7 @@ server: --- ### Spring 配置 spring: application: - name: ${project.appName} + name: ${project.app-name} ## 环境配置 profiles: # 启用的环境 diff --git a/pom.xml b/pom.xml index d2b052b5..01a3c54e 100644 --- a/pom.xml +++ b/pom.xml @@ -34,11 +34,7 @@ 2.1.0-SNAPSHOT - - 3.3.2 - 3.1.5.1 - 2.40.0 @@ -54,14 +50,6 @@ ${easyexcel.version} - - - net.dreamlu - mica-ip2region - ${ip2region.version} - - - top.charles7c.continew