From 28625f193c8883bd09ee43380237e7258bd4cf5d Mon Sep 17 00:00:00 2001 From: aoshiguchen <1052045476@qq.com> Date: Sat, 11 Mar 2023 17:13:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=8E=A5=E5=8F=A3=E6=94=B9?= =?UTF-8?q?=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _solon_plugin/orika-solon-plugin/pom.xml | 30 ++++ .../extend/orika/OrikaConfiguration.java | 19 +++ .../asgc/solon/extend/orika/XPluginImp.java | 33 +++++ .../asgc/solon/extend/orika/package-info.java | 0 .../fun.asgc.solon.extend.orika.properties | 2 + .../core/db/mapper/SqlMapperInterceptor.java | 14 +- .../asgc/neutrino/core/db/page/PageInfo.java | 123 ++++++++++++++++ .../asgc/neutrino/core/db/page/PageQuery.java | 27 ++-- neutrino-proxy-admin/README.md | 4 +- .../src/components/FBATable/index.vue | 8 +- .../src/views/log/clientConnectLog.vue | 12 +- neutrino-proxy-admin/src/views/log/jobLog.vue | 12 +- .../src/views/log/loginLog.vue | 12 +- .../src/views/proxy/license.vue | 10 +- .../src/views/proxy/portMapping.vue | 10 +- .../src/views/system/jobManager.vue | 10 +- .../src/views/system/portPool.vue | 10 +- .../src/views/system/user.vue | 10 +- neutrino-proxy-server/pom.xml | 19 +++ .../proxy/server/base/db/DbConfiguration.java | 27 +++- .../proxy/server/base/db/MapperPlugin.java | 68 +++++---- .../server/base/db/MetaObjectHandlerImpl.java | 20 +++ .../MybatisSqlSessionFactoryBuilderImpl.java | 11 ++ .../server/base/db/SqlMapperInterceptor.java | 14 +- .../proxy/server/base/page/PageInfo.java | 132 ++++++++++++++++++ .../proxy/server/base/page/PageQuery.java | 21 +-- .../base/rest/config/RestConfiguration.java | 75 ---------- .../ClientConnectRecordController.java | 6 +- .../server/controller/JobInfoController.java | 6 +- .../server/controller/JobLogController.java | 6 +- .../server/controller/LicenseController.java | 6 +- .../controller/PortMappingController.java | 6 +- .../server/controller/PortPoolController.java | 6 +- .../server/controller/ReportController.java | 6 +- .../server/controller/UserController.java | 6 +- .../controller/UserLoginRecordController.java | 6 +- .../server/dal/ClientConnectRecordMapper.java | 9 +- .../proxy/server/dal/FlowReportDayMapper.java | 7 +- .../server/dal/FlowReportHourMapper.java | 6 +- .../server/dal/FlowReportMinuteMapper.java | 6 +- .../server/dal/FlowReportMonthMapper.java | 6 +- .../proxy/server/dal/JobInfoMapper.java | 10 +- .../proxy/server/dal/JobLogMapper.java | 11 +- .../proxy/server/dal/LicenseMapper.java | 31 +++- .../proxy/server/dal/PortMappingMapper.java | 28 +++- .../proxy/server/dal/PortPoolMapper.java | 9 +- .../server/dal/UserLoginRecordMapper.java | 9 +- .../neutrino/proxy/server/dal/UserMapper.java | 25 +++- .../proxy/server/dal/UserReportMapper.java | 6 +- .../proxy/server/dal/UserTokenMapper.java | 21 ++- .../dal/entity/ClientConnectRecordDO.java | 4 + .../server/dal/entity/FlowReportDayDO.java | 4 + .../server/dal/entity/FlowReportHourDO.java | 2 + .../server/dal/entity/FlowReportMinuteDO.java | 4 + .../server/dal/entity/FlowReportMonthDO.java | 4 + .../proxy/server/dal/entity/JobInfoDO.java | 4 + .../proxy/server/dal/entity/JobLogDO.java | 6 +- .../proxy/server/dal/entity/LicenseDO.java | 4 + .../server/dal/entity/PortMappingDO.java | 4 + .../proxy/server/dal/entity/PortPoolDO.java | 4 + .../proxy/server/dal/entity/UserDO.java | 4 + .../server/dal/entity/UserLoginRecordDO.java | 4 + .../proxy/server/dal/entity/UserTokenDO.java | 4 + .../service/ClientConnectRecordService.java | 37 +++-- .../proxy/server/service/JobInfoService.java | 21 ++- .../proxy/server/service/JobLogService.java | 28 ++-- .../proxy/server/service/LicenseService.java | 32 +++-- .../server/service/PortMappingService.java | 35 +++-- .../proxy/server/service/PortPoolService.java | 22 ++- .../proxy/server/service/ReportService.java | 6 +- .../service/UserLoginRecordService.java | 33 +++-- .../proxy/server/service/UserService.java | 32 +++-- .../src/main/resources/app.yml | 14 +- .../mapper/ClientConnectRecordMapper.xml | 3 + .../main/resources/mapper/JobInfoMapper.xml | 3 + .../main/resources/mapper/LicenseMapper.xml | 5 +- .../resources/mapper/PortMappingMapper.xml | 3 + .../resources/mapper/UserReportMapper.xml | 3 + .../main/resources/mapper/UserTokenMapper.xml | 3 + .../mapper/bak/ClientConnectRecordMapper.xml | 7 + .../resources/mapper/bak/JobInfoMapper.xml | 8 ++ .../resources/mapper/bak/LicenseMapper.xml | 12 ++ .../mapper/bak/PortMappingMapper.xml | 13 ++ .../resources/mapper/bak/UserReportMapper.xml | 14 ++ .../resources/mapper/bak/UserTokenMapper.xml | 12 ++ 85 files changed, 995 insertions(+), 374 deletions(-) create mode 100644 _solon_plugin/orika-solon-plugin/pom.xml create mode 100644 _solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/OrikaConfiguration.java create mode 100644 _solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/XPluginImp.java create mode 100644 _solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/package-info.java create mode 100644 _solon_plugin/orika-solon-plugin/src/main/resources/META-INF/solon/fun.asgc.solon.extend.orika.properties create mode 100644 neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/PageInfo.java create mode 100644 neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MetaObjectHandlerImpl.java create mode 100644 neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MybatisSqlSessionFactoryBuilderImpl.java create mode 100644 neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/page/PageInfo.java rename neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/Page.java => neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/page/PageQuery.java (76%) delete mode 100644 neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/config/RestConfiguration.java create mode 100644 neutrino-proxy-server/src/main/resources/mapper/bak/ClientConnectRecordMapper.xml create mode 100644 neutrino-proxy-server/src/main/resources/mapper/bak/JobInfoMapper.xml create mode 100644 neutrino-proxy-server/src/main/resources/mapper/bak/LicenseMapper.xml create mode 100644 neutrino-proxy-server/src/main/resources/mapper/bak/PortMappingMapper.xml create mode 100644 neutrino-proxy-server/src/main/resources/mapper/bak/UserReportMapper.xml create mode 100644 neutrino-proxy-server/src/main/resources/mapper/bak/UserTokenMapper.xml diff --git a/_solon_plugin/orika-solon-plugin/pom.xml b/_solon_plugin/orika-solon-plugin/pom.xml new file mode 100644 index 00000000..5cfd1276 --- /dev/null +++ b/_solon_plugin/orika-solon-plugin/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + + org.noear + solon-parent + 2.2.1 + + + fun.asgc + orika-solon-plugin + jar + + + + org.noear + solon + + + + + ma.glasnost.orika + orika-core + 1.5.4 + + + \ No newline at end of file diff --git a/_solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/OrikaConfiguration.java b/_solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/OrikaConfiguration.java new file mode 100644 index 00000000..cab233d0 --- /dev/null +++ b/_solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/OrikaConfiguration.java @@ -0,0 +1,19 @@ +package fun.asgc.solon.extend.orika; + +import ma.glasnost.orika.MapperFacade; +import ma.glasnost.orika.MapperFactory; +import org.noear.solon.annotation.Bean; +import org.noear.solon.annotation.Configuration; +import org.noear.solon.annotation.Inject; + +/** + * @author: aoshiguchen + * @date: 2023/3/11 + */ +@Configuration +public class OrikaConfiguration { + @Bean + public MapperFacade mapperFacade(@Inject MapperFactory factory) { + return factory.getMapperFacade(); + } +} diff --git a/_solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/XPluginImp.java b/_solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/XPluginImp.java new file mode 100644 index 00000000..990eb077 --- /dev/null +++ b/_solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/XPluginImp.java @@ -0,0 +1,33 @@ +package fun.asgc.solon.extend.orika; + +import ma.glasnost.orika.CustomConverter; +import ma.glasnost.orika.Mapper; +import ma.glasnost.orika.MapperFactory; +import ma.glasnost.orika.impl.DefaultMapperFactory; +import ma.glasnost.orika.metadata.ClassMapBuilder; +import org.noear.solon.core.AopContext; +import org.noear.solon.core.Plugin; + +/** + * @author: aoshiguchen + * @date: 2023/3/11 + */ +public class XPluginImp implements Plugin { + @Override + public void start(AopContext context) throws Throwable { + DefaultMapperFactory factory = new DefaultMapperFactory.Builder().build(); + + context.subWrapsOfType(CustomConverter.class, bw -> { + factory.getConverterFactory().registerConverter(bw.raw()); + }); + context.subWrapsOfType(Mapper.class, bw -> { + factory.registerMapper(bw.raw()); + }); + context.subWrapsOfType(ClassMapBuilder.class, bw -> { + factory.registerClassMap((ClassMapBuilder) bw.raw()); + }); + context.wrapAndPut(MapperFactory.class, factory); + context.beanScan("fun.asgc.solon.extend.orika"); + } + +} diff --git a/_solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/package-info.java b/_solon_plugin/orika-solon-plugin/src/main/java/fun/asgc/solon/extend/orika/package-info.java new file mode 100644 index 00000000..e69de29b diff --git a/_solon_plugin/orika-solon-plugin/src/main/resources/META-INF/solon/fun.asgc.solon.extend.orika.properties b/_solon_plugin/orika-solon-plugin/src/main/resources/META-INF/solon/fun.asgc.solon.extend.orika.properties new file mode 100644 index 00000000..b43ff7ab --- /dev/null +++ b/_solon_plugin/orika-solon-plugin/src/main/resources/META-INF/solon/fun.asgc.solon.extend.orika.properties @@ -0,0 +1,2 @@ +solon.plugin=fun.asgc.solon.extend.orika.XPluginImp +solon.plugin.priority=1 \ No newline at end of file diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/mapper/SqlMapperInterceptor.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/mapper/SqlMapperInterceptor.java index 51cd392a..75aa296d 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/mapper/SqlMapperInterceptor.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/mapper/SqlMapperInterceptor.java @@ -26,7 +26,7 @@ import fun.asgc.neutrino.core.annotation.NonIntercept; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.aop.Invocation; import fun.asgc.neutrino.core.aop.interceptor.Interceptor; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.core.db.template.JdbcTemplate; import fun.asgc.neutrino.core.util.*; @@ -66,14 +66,14 @@ public class SqlMapperInterceptor implements Interceptor { res = jdbcTemplate.queryForListByMap(resultComponentType, sql, (Map)params); } } else { - if (Page.class.isAssignableFrom(inv.getTargetMethod().getParameters()[0].getType())) { + if (PageInfo.class.isAssignableFrom(inv.getTargetMethod().getParameters()[0].getType())) { // 分页查询 TODO 此处暂时临时处理,假设后面的参数是一个DO对象 - Page page = (Page) inv.getArgs()[0]; - int offset = (page.getCurrentPage() - 1) * page.getPageSize(); + PageInfo pageInfo = (PageInfo) inv.getArgs()[0]; + int offset = (pageInfo.getCurrent() - 1) * pageInfo.getSize(); long total = jdbcTemplate.queryForLongByModel(String.format("select count(1) from (%s) T", sql), inv.getArgs()[1]); - List resultList = jdbcTemplate.queryForListByModel(resultComponentType, String.format("%s limit %s,%s", sql, offset, page.getPageSize()), inv.getArgs()[1]); - page.setTotal(total); - page.setRecords(resultList); + List resultList = jdbcTemplate.queryForListByModel(resultComponentType, String.format("%s limit %s,%s", sql, offset, pageInfo.getSize()), inv.getArgs()[1]); + pageInfo.setTotal(total); + pageInfo.setRecords(resultList); } else { Object params = getParams(inv); if (null == params || params.getClass().isArray()) { diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/PageInfo.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/PageInfo.java new file mode 100644 index 00000000..7cfb80bf --- /dev/null +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/PageInfo.java @@ -0,0 +1,123 @@ +/** + * Copyright (c) 2022 aoshiguchen + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package fun.asgc.neutrino.core.db.page; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Collections; +import java.util.List; + +/** + * + * @author: aoshiguchen + * @date: 2022/8/6 + */ +@Data +public class PageInfo implements Serializable { + private static final long serialVersionUID = 8545996863226528797L; + private List records; + private Long total; + private Integer size; + private Integer current; + + public PageInfo() { + this.records = Collections.emptyList(); + this.total = 0L; + this.size = 10; + this.current = 1; + } + + public PageInfo(Integer current, Integer size) { + this(current, size, 0L); + } + + public PageInfo(Integer current, Integer size, Long total) { + this.records = Collections.emptyList(); + this.total = 0L; + this.size = 10; + this.current = 1; + if ((long)current > 1L) { + this.current = current; + } + + this.size = size; + this.total = total; + } + + public Long getPages() { + if ((long)this.getSize() == 0L) { + return 0L; + } else { + Long pages = this.getTotal() / (long)this.getSize(); + if (this.getTotal() % (long)this.getSize() != 0L) { + pages = pages + 1L; + } + + return pages; + } + } + + public Long getTotal() { + return this.total; + } + + public Integer getSize() { + return this.size; + } + + public boolean hasPrevious() { + return (long)this.current > 1L; + } + + public boolean hasNext() { + return (long)this.current < this.getPages(); + } + + public List getRecords() { + return this.records; + } + + public PageInfo setRecords(List records) { + this.records = records; + return this; + } + + public PageInfo setTotal(Long total) { + this.total = total; + return this; + } + + public PageInfo setSize(Integer size) { + this.size = size; + return this; + } + + public Integer getCurrent() { + return this.current; + } + + public PageInfo setCurrent(Integer current) { + this.current = current; + return this; + } +} diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/PageQuery.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/PageQuery.java index 3b25d67e..c00288bc 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/PageQuery.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/PageQuery.java @@ -21,34 +21,23 @@ */ package fun.asgc.neutrino.core.db.page; +import lombok.Data; + +import java.io.Serializable; + /** * * @author: aoshiguchen * @date: 2022/8/6 */ -public class PageQuery { +@Data +public class PageQuery implements Serializable { /** * 当前页 */ - private int currentPage = 1; + private int current = 1; /** * 分页大小 */ - private int pageSize = 10; - - public int getCurrentPage() { - return currentPage; - } - - public void setCurrentPage(int currentPage) { - this.currentPage = currentPage; - } - - public int getPageSize() { - return pageSize; - } - - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } + private int size = 10; } diff --git a/neutrino-proxy-admin/README.md b/neutrino-proxy-admin/README.md index 94768901..21f42887 100644 --- a/neutrino-proxy-admin/README.md +++ b/neutrino-proxy-admin/README.md @@ -62,7 +62,7 @@ You need to install [node](http://nodejs.org/) and [git](https://git-scm.com/) l - Dynamic breadcrumb - I18n - Customizable theme -- Tags-view(Tab page Support right-click operation) +- Tags-view(Tab pageInfo Support right-click operation) - Rich text editor - Markdown editor - JSON editor @@ -73,7 +73,7 @@ You need to install [node](http://nodejs.org/) and [git](https://git-scm.com/) l - Mock data - Echarts - Clipboard -- 401/404 error page +- 401/404 error pageInfo - Error log - Export excel - Export zip diff --git a/neutrino-proxy-admin/src/components/FBATable/index.vue b/neutrino-proxy-admin/src/components/FBATable/index.vue index bd232ac3..b9907fd4 100644 --- a/neutrino-proxy-admin/src/components/FBATable/index.vue +++ b/neutrino-proxy-admin/src/components/FBATable/index.vue @@ -47,12 +47,12 @@
diff --git a/neutrino-proxy-admin/src/views/log/clientConnectLog.vue b/neutrino-proxy-admin/src/views/log/clientConnectLog.vue index fc9c8c8a..dea91b46 100644 --- a/neutrino-proxy-admin/src/views/log/clientConnectLog.vue +++ b/neutrino-proxy-admin/src/views/log/clientConnectLog.vue @@ -48,8 +48,8 @@
- +
@@ -124,16 +124,16 @@ export default { }) }, handleFilter() { - this.listQuery.currentPage = 1 + this.listQuery.current = 1 this.getList() }, handleSizeChange(val) { - this.listQuery.pageSize = val - this.listQuery.currentPage = 1 + this.listQuery.size = val + this.listQuery.current = 1 this.getList() }, handleCurrentChange(val) { - this.listQuery.currentPage = val + this.listQuery.current = val this.getList() }, handleLookOver(row) { diff --git a/neutrino-proxy-admin/src/views/log/jobLog.vue b/neutrino-proxy-admin/src/views/log/jobLog.vue index cd37202d..76dffcc2 100644 --- a/neutrino-proxy-admin/src/views/log/jobLog.vue +++ b/neutrino-proxy-admin/src/views/log/jobLog.vue @@ -46,8 +46,8 @@ -->
- +
@@ -148,16 +148,16 @@ export default { }) }, handleFilter() { - this.listQuery.currentPage = 1 + this.listQuery.current = 1 this.getList() }, handleSizeChange(val) { - this.listQuery.pageSize = val - this.listQuery.currentPage = 1 + this.listQuery.size = val + this.listQuery.current = 1 this.getList() }, handleCurrentChange(val) { - this.listQuery.currentPage = val + this.listQuery.current = val this.getList() }, handleShowClick(row) { diff --git a/neutrino-proxy-admin/src/views/log/loginLog.vue b/neutrino-proxy-admin/src/views/log/loginLog.vue index 6920fa89..9ea21d1b 100644 --- a/neutrino-proxy-admin/src/views/log/loginLog.vue +++ b/neutrino-proxy-admin/src/views/log/loginLog.vue @@ -28,8 +28,8 @@
- +
@@ -116,16 +116,16 @@ export default { }) }, handleFilter() { - this.listQuery.currentPage = 1 + this.listQuery.current = 1 this.getList() }, handleSizeChange(val) { - this.listQuery.pageSize = val - this.listQuery.currentPage = 1 + this.listQuery.size = val + this.listQuery.current = 1 this.getList() }, handleCurrentChange(val) { - this.listQuery.currentPage = val + this.listQuery.current = val this.getList() }, handleShowClick(row) { diff --git a/neutrino-proxy-admin/src/views/proxy/license.vue b/neutrino-proxy-admin/src/views/proxy/license.vue index ab759ded..620a8b17 100644 --- a/neutrino-proxy-admin/src/views/proxy/license.vue +++ b/neutrino-proxy-admin/src/views/proxy/license.vue @@ -60,8 +60,8 @@
- +
@@ -213,15 +213,15 @@ }) }, handleFilter() { - this.listQuery.currentPage = 1 + this.listQuery.current = 1 this.getList() }, handleSizeChange(val) { - this.listQuery.pageSize = val + this.listQuery.size = val this.getList() }, handleCurrentChange(val) { - this.listQuery.currentPage = val + this.listQuery.current = val this.getList() }, handleModifyStatus(row, enable) { diff --git a/neutrino-proxy-admin/src/views/proxy/portMapping.vue b/neutrino-proxy-admin/src/views/proxy/portMapping.vue index ad46866a..2654131b 100644 --- a/neutrino-proxy-admin/src/views/proxy/portMapping.vue +++ b/neutrino-proxy-admin/src/views/proxy/portMapping.vue @@ -65,8 +65,8 @@
- +
@@ -264,15 +264,15 @@ }) }, handleFilter() { - this.listQuery.currentPage = 1 + this.listQuery.current = 1 this.getList() }, handleSizeChange(val) { - this.listQuery.pageSize = val + this.listQuery.size = val this.getList() }, handleCurrentChange(val) { - this.listQuery.currentPage = val + this.listQuery.current = val this.getList() }, handleModifyStatus(row, enable) { diff --git a/neutrino-proxy-admin/src/views/system/jobManager.vue b/neutrino-proxy-admin/src/views/system/jobManager.vue index 7370812c..ace4f5bc 100644 --- a/neutrino-proxy-admin/src/views/system/jobManager.vue +++ b/neutrino-proxy-admin/src/views/system/jobManager.vue @@ -51,8 +51,8 @@
- +
@@ -171,15 +171,15 @@ }) }, handleFilter() { - this.listQuery.currentPage = 1 + this.listQuery.current = 1 this.getList() }, handleSizeChange(val) { - this.listQuery.pageSize = val + this.listQuery.size = val this.getList() }, handleCurrentChange(val) { - this.listQuery.currentPage = val + this.listQuery.current = val this.getList() }, handleModifyStatus(row, enable) { diff --git a/neutrino-proxy-admin/src/views/system/portPool.vue b/neutrino-proxy-admin/src/views/system/portPool.vue index bd195521..e449ad88 100644 --- a/neutrino-proxy-admin/src/views/system/portPool.vue +++ b/neutrino-proxy-admin/src/views/system/portPool.vue @@ -43,8 +43,8 @@
- +
@@ -173,15 +173,15 @@ }) }, handleFilter() { - this.listQuery.currentPage = 1 + this.listQuery.current = 1 this.getList() }, handleSizeChange(val) { - this.listQuery.pageSize = val + this.listQuery.size = val this.getList() }, handleCurrentChange(val) { - this.listQuery.currentPage = val + this.listQuery.current = val this.getList() }, handleModifyStatus(row, enable) { diff --git a/neutrino-proxy-admin/src/views/system/user.vue b/neutrino-proxy-admin/src/views/system/user.vue index 8f3fc48d..9903bd23 100644 --- a/neutrino-proxy-admin/src/views/system/user.vue +++ b/neutrino-proxy-admin/src/views/system/user.vue @@ -50,8 +50,8 @@
- +
@@ -197,15 +197,15 @@ }) }, handleFilter() { - this.listQuery.currentPage = 1 + this.listQuery.current = 1 this.getList() }, handleSizeChange(val) { - this.listQuery.pageSize = val + this.listQuery.size = val this.getList() }, handleCurrentChange(val) { - this.listQuery.currentPage = val + this.listQuery.current = val this.getList() }, handleModifyStatus(row, enable) { diff --git a/neutrino-proxy-server/pom.xml b/neutrino-proxy-server/pom.xml index 668e6329..ce418d11 100644 --- a/neutrino-proxy-server/pom.xml +++ b/neutrino-proxy-server/pom.xml @@ -24,6 +24,25 @@ mybatis-plus-solon-plugin 2.2.1 + + org.noear + mybatis-pagehelper-solon-plugin + 2.2.1 + + + + ma.glasnost.orika + orika-core + 1.5.4 + + + fun.asgc + orika-solon-plugin + 2.2.1 + system + ${project.basedir}/../_solon_plugin/orika-solon-plugin/pom.xml + + fun.asgc.neutrino neutrino-proxy-core diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java index 616ae70c..ddf3a7ba 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java @@ -1,9 +1,14 @@ package fun.asgc.neutrino.proxy.server.base.db; import com.alibaba.druid.pool.DruidDataSource; +import com.baomidou.mybatisplus.core.MybatisConfiguration; +import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder; +import com.baomidou.mybatisplus.core.config.GlobalConfig; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import fun.asgc.neutrino.core.db.template.JdbcTemplate; import fun.asgc.neutrino.proxy.server.base.rest.config.DbConfig; import fun.asgc.neutrino.proxy.server.constant.DbTypeEnum; +import org.apache.ibatis.solon.annotation.Db; import org.noear.solon.annotation.Bean; import org.noear.solon.annotation.Configuration; import org.noear.solon.annotation.Inject; @@ -19,7 +24,7 @@ import javax.sql.DataSource; @Configuration public class DbConfiguration { - @Bean(value = "dataSource", typed = true) + @Bean(value = "db", typed = true) public DataSource dataSource(@Inject DbConfig dbConfig) { DbTypeEnum dbTypeEnum = DbTypeEnum.of(dbConfig.getType()); if (DbTypeEnum.SQLITE == dbTypeEnum) { @@ -45,7 +50,25 @@ public class DbConfiguration { } @Bean - public JdbcTemplate jdbcTemplate(@Inject("dataSource") DataSource dataSource) { + public JdbcTemplate jdbcTemplate(@Inject("db") DataSource dataSource) { return new JdbcTemplate(dataSource); } + + @Bean + public void db1_ext(@Db("db") GlobalConfig globalConfig) { + MetaObjectHandler metaObjectHandler = new MetaObjectHandlerImpl(); + globalConfig.setMetaObjectHandler(metaObjectHandler); + } + + @Bean + public void db1_ext2(@Db("db") MybatisConfiguration config){ + config.getTypeHandlerRegistry().register("fun.asgc.neutrino.proxy.server.dal"); + config.setDefaultEnumTypeHandler(null); + } + + @Bean + public MybatisSqlSessionFactoryBuilder factoryBuilderNew(){ + return new MybatisSqlSessionFactoryBuilderImpl(); + } + } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MapperPlugin.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MapperPlugin.java index fa57133c..363c5f0c 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MapperPlugin.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MapperPlugin.java @@ -1,7 +1,5 @@ package fun.asgc.neutrino.proxy.server.base.db; -import fun.asgc.neutrino.core.aop.Aop; -import fun.asgc.neutrino.proxy.server.dal.*; import org.noear.solon.core.AopContext; import org.noear.solon.core.Plugin; @@ -12,39 +10,39 @@ import org.noear.solon.core.Plugin; public class MapperPlugin implements Plugin { @Override public void start(AopContext context) throws Throwable { - Aop.intercept(ClientConnectRecordMapper.class, SqlMapperInterceptor.class); - Aop.intercept(DataCleanMapper.class, SqlMapperInterceptor.class); - Aop.intercept(FlowReportDayMapper.class, SqlMapperInterceptor.class); - Aop.intercept(FlowReportHourMapper.class, SqlMapperInterceptor.class); - Aop.intercept(FlowReportMinuteMapper.class, SqlMapperInterceptor.class); - Aop.intercept(FlowReportMonthMapper.class, SqlMapperInterceptor.class); - Aop.intercept(JobInfoMapper.class, SqlMapperInterceptor.class); - Aop.intercept(JobLogMapper.class, SqlMapperInterceptor.class); - Aop.intercept(LicenseMapper.class, SqlMapperInterceptor.class); - Aop.intercept(PortMappingMapper.class, SqlMapperInterceptor.class); - Aop.intercept(PortPoolMapper.class, SqlMapperInterceptor.class); - Aop.intercept(UserConnectRecordMapper.class, SqlMapperInterceptor.class); - Aop.intercept(UserLoginRecordMapper.class, SqlMapperInterceptor.class); - Aop.intercept(UserMapper.class, SqlMapperInterceptor.class); - Aop.intercept(UserReportMapper.class, SqlMapperInterceptor.class); - Aop.intercept(UserTokenMapper.class, SqlMapperInterceptor.class); - - context.wrapAndPut(ClientConnectRecordMapper.class, Aop.get(ClientConnectRecordMapper.class)); - context.wrapAndPut(DataCleanMapper.class, Aop.get(DataCleanMapper.class)); - context.wrapAndPut(FlowReportDayMapper.class, Aop.get(FlowReportDayMapper.class)); - context.wrapAndPut(FlowReportHourMapper.class, Aop.get(FlowReportHourMapper.class)); - context.wrapAndPut(FlowReportMinuteMapper.class, Aop.get(FlowReportMinuteMapper.class)); - context.wrapAndPut(FlowReportMonthMapper.class, Aop.get(FlowReportMonthMapper.class)); - context.wrapAndPut(JobInfoMapper.class, Aop.get(JobInfoMapper.class)); - context.wrapAndPut(JobLogMapper.class, Aop.get(JobLogMapper.class)); - context.wrapAndPut(LicenseMapper.class, Aop.get(LicenseMapper.class)); - context.wrapAndPut(PortMappingMapper.class, Aop.get(PortMappingMapper.class)); - context.wrapAndPut(PortPoolMapper.class, Aop.get(PortPoolMapper.class)); - context.wrapAndPut(UserConnectRecordMapper.class, Aop.get(UserConnectRecordMapper.class)); - context.wrapAndPut(UserLoginRecordMapper.class, Aop.get(UserLoginRecordMapper.class)); - context.wrapAndPut(UserMapper.class, Aop.get(UserMapper.class)); - context.wrapAndPut(UserReportMapper.class, Aop.get(UserReportMapper.class)); - context.wrapAndPut(UserTokenMapper.class, Aop.get(UserTokenMapper.class)); +// Aop.intercept(ClientConnectRecordMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(DataCleanMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(FlowReportDayMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(FlowReportHourMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(FlowReportMinuteMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(FlowReportMonthMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(JobInfoMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(JobLogMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(LicenseMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(PortMappingMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(PortPoolMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(UserConnectRecordMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(UserLoginRecordMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(UserMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(UserReportMapper.class, SqlMapperInterceptor.class); +// Aop.intercept(UserTokenMapper.class, SqlMapperInterceptor.class); +// +// context.wrapAndPut(ClientConnectRecordMapper.class, Aop.get(ClientConnectRecordMapper.class)); +// context.wrapAndPut(DataCleanMapper.class, Aop.get(DataCleanMapper.class)); +// context.wrapAndPut(FlowReportDayMapper.class, Aop.get(FlowReportDayMapper.class)); +// context.wrapAndPut(FlowReportHourMapper.class, Aop.get(FlowReportHourMapper.class)); +// context.wrapAndPut(FlowReportMinuteMapper.class, Aop.get(FlowReportMinuteMapper.class)); +// context.wrapAndPut(FlowReportMonthMapper.class, Aop.get(FlowReportMonthMapper.class)); +// context.wrapAndPut(JobInfoMapper.class, Aop.get(JobInfoMapper.class)); +// context.wrapAndPut(JobLogMapper.class, Aop.get(JobLogMapper.class)); +// context.wrapAndPut(LicenseMapper.class, Aop.get(LicenseMapper.class)); +// context.wrapAndPut(PortMappingMapper.class, Aop.get(PortMappingMapper.class)); +// context.wrapAndPut(PortPoolMapper.class, Aop.get(PortPoolMapper.class)); +// context.wrapAndPut(UserConnectRecordMapper.class, Aop.get(UserConnectRecordMapper.class)); +// context.wrapAndPut(UserLoginRecordMapper.class, Aop.get(UserLoginRecordMapper.class)); +// context.wrapAndPut(UserMapper.class, Aop.get(UserMapper.class)); +// context.wrapAndPut(UserReportMapper.class, Aop.get(UserReportMapper.class)); +// context.wrapAndPut(UserTokenMapper.class, Aop.get(UserTokenMapper.class)); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MetaObjectHandlerImpl.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MetaObjectHandlerImpl.java new file mode 100644 index 00000000..b3001eeb --- /dev/null +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MetaObjectHandlerImpl.java @@ -0,0 +1,20 @@ +package fun.asgc.neutrino.proxy.server.base.db; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; + +/** + * @author: aoshiguchen + * @date: 2023/3/10 + */ +public class MetaObjectHandlerImpl implements MetaObjectHandler { + @Override + public void insertFill(MetaObject metaObject) { + + } + + @Override + public void updateFill(MetaObject metaObject) { + + } +} diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MybatisSqlSessionFactoryBuilderImpl.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MybatisSqlSessionFactoryBuilderImpl.java new file mode 100644 index 00000000..9da683f1 --- /dev/null +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/MybatisSqlSessionFactoryBuilderImpl.java @@ -0,0 +1,11 @@ +package fun.asgc.neutrino.proxy.server.base.db; + +import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder; + +/** + * @author: aoshiguchen + * @date: 2023/3/10 + */ +public class MybatisSqlSessionFactoryBuilderImpl extends MybatisSqlSessionFactoryBuilder { + +} diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/SqlMapperInterceptor.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/SqlMapperInterceptor.java index 8813bf2e..0ea54051 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/SqlMapperInterceptor.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/SqlMapperInterceptor.java @@ -27,7 +27,7 @@ import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.aop.Invocation; import fun.asgc.neutrino.core.aop.interceptor.Interceptor; import fun.asgc.neutrino.core.db.mapper.SqlParser; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.core.db.template.JdbcTemplate; import fun.asgc.neutrino.core.util.ArrayUtil; import fun.asgc.neutrino.core.util.Assert; @@ -71,14 +71,14 @@ public class SqlMapperInterceptor implements Interceptor { res = jdbcTemplate.queryForListByMap(resultComponentType, sql, (Map)params); } } else { - if (Page.class.isAssignableFrom(inv.getTargetMethod().getParameters()[0].getType())) { + if (PageInfo.class.isAssignableFrom(inv.getTargetMethod().getParameters()[0].getType())) { // 分页查询 TODO 此处暂时临时处理,假设后面的参数是一个DO对象 - Page page = (Page) inv.getArgs()[0]; - int offset = (page.getCurrentPage() - 1) * page.getPageSize(); + PageInfo pageInfo = (PageInfo) inv.getArgs()[0]; + int offset = (pageInfo.getCurrent() - 1) * pageInfo.getSize(); long total = jdbcTemplate.queryForLongByModel(String.format("select count(1) from (%s) T", sql), inv.getArgs()[1]); - List resultList = jdbcTemplate.queryForListByModel(resultComponentType, String.format("%s limit %s,%s", sql, offset, page.getPageSize()), inv.getArgs()[1]); - page.setTotal(total); - page.setRecords(resultList); + List resultList = jdbcTemplate.queryForListByModel(resultComponentType, String.format("%s limit %s,%s", sql, offset, pageInfo.getSize()), inv.getArgs()[1]); + pageInfo.setTotal(total); + pageInfo.setRecords(resultList); } else { Object params = getParams(inv); if (null == params || params.getClass().isArray()) { diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/page/PageInfo.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/page/PageInfo.java new file mode 100644 index 00000000..2195c275 --- /dev/null +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/page/PageInfo.java @@ -0,0 +1,132 @@ +/** + * Copyright (c) 2022 aoshiguchen + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package fun.asgc.neutrino.proxy.server.base.page; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Collections; +import java.util.List; + +/** + * + * @author: aoshiguchen + * @date: 2022/8/6 + */ +@Data +public class PageInfo implements Serializable { + private static final long serialVersionUID = 8545996863226528797L; + private List records; + private Long total; + private Integer size; + private Integer current; + + public PageInfo() { + this.records = Collections.emptyList(); + this.total = 0L; + this.size = 10; + this.current = 1; + } + + public PageInfo(Integer current, Integer size) { + this(current, size, 0L); + } + + public PageInfo(Integer current, Integer size, Long total) { + this.records = Collections.emptyList(); + this.total = 0L; + this.size = 10; + this.current = 1; + if ((long)current > 1L) { + this.current = current; + } + + this.size = size; + this.total = total; + } + + public Long getPages() { + if ((long)this.getSize() == 0L) { + return 0L; + } else { + Long pages = this.getTotal() / (long)this.getSize(); + if (this.getTotal() % (long)this.getSize() != 0L) { + pages = pages + 1L; + } + + return pages; + } + } + + public Long getTotal() { + return this.total; + } + + public Integer getSize() { + return this.size; + } + + public boolean hasPrevious() { + return (long)this.current > 1L; + } + + public boolean hasNext() { + return (long)this.current < this.getPages(); + } + + public List getRecords() { + return this.records; + } + + public PageInfo setRecords(List records) { + this.records = records; + return this; + } + + public PageInfo setTotal(Long total) { + this.total = total; + return this; + } + + public PageInfo setSize(Integer size) { + this.size = size; + return this; + } + + public Integer getCurrent() { + return this.current; + } + + public PageInfo setCurrent(Integer current) { + this.current = current; + return this; + } + + public static PageInfo of(List records, Long total, Integer current, Integer size) { + PageInfo pageInfo = new PageInfo(); + pageInfo.setRecords(records); + pageInfo.setTotal(total); + pageInfo.setCurrent(current); + pageInfo.setSize(size); + return pageInfo; + } +} diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/Page.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/page/PageQuery.java similarity index 76% rename from neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/Page.java rename to neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/page/PageQuery.java index e127262c..5a5e9b51 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/page/Page.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/page/PageQuery.java @@ -19,11 +19,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.core.db.page; +package fun.asgc.neutrino.proxy.server.base.page; import lombok.Data; -import java.util.List; +import java.io.Serializable; /** * @@ -31,20 +31,13 @@ import java.util.List; * @date: 2022/8/6 */ @Data -public class Page extends PageQuery { +public class PageQuery implements Serializable { /** - * 数据总数 + * 当前页 */ - private Long total; + private int current = 1; /** - * 结果数据 + * 分页大小 */ - private List records; - - public static Page create(PageQuery pageQuery) { - Page page = new Page(); - page.setPageSize(pageQuery.getPageSize()); - page.setCurrentPage(pageQuery.getCurrentPage()); - return page; - } + private int size = 10; } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/config/RestConfiguration.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/config/RestConfiguration.java deleted file mode 100644 index 3169ec15..00000000 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/config/RestConfiguration.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright (c) 2022 aoshiguchen - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -package fun.asgc.neutrino.proxy.server.base.rest.config; - -import com.alibaba.druid.pool.DruidDataSource; -import fun.asgc.neutrino.core.db.template.JdbcTemplate; -import fun.asgc.neutrino.proxy.server.constant.DbTypeEnum; -import org.noear.solon.annotation.Bean; -import org.noear.solon.annotation.Configuration; -import org.noear.solon.annotation.Inject; -import org.sqlite.SQLiteConfig; -import org.sqlite.SQLiteDataSource; - -import javax.sql.DataSource; - -/** - * 系统配置 - *author: aoshiguchen - * @date: 2022/8/1 - */ -@Configuration -public class RestConfiguration { - @Inject - private DbConfig dbConfig; - - @Bean("dataSource") - public DataSource dataSource() { - DbTypeEnum dbTypeEnum = DbTypeEnum.of(dbConfig.getType()); - if (DbTypeEnum.SQLITE == dbTypeEnum) { - SQLiteDataSource dataSource = new SQLiteDataSource(); - dataSource.setUrl(dbConfig.getUrl()); - dataSource.setJournalMode(SQLiteConfig.JournalMode.WAL.getValue()); - return dataSource; - } else if (DbTypeEnum.MYSQL == dbTypeEnum) { - DruidDataSource dataSource = new DruidDataSource(); - dataSource.setDriverClassName(dbConfig.getDriverClass()); - dataSource.setUrl(dbConfig.getUrl()); - dataSource.setInitialSize(5); - dataSource.setMinIdle(5); - dataSource.setMaxActive(20); - dataSource.setMaxWait(60000); - dataSource.setPoolPreparedStatements(true); - dataSource.setUsername(dbConfig.getUsername()); - dataSource.setPassword(dbConfig.getPassword()); - return dataSource; - } - - return null; - } - - @Bean - public JdbcTemplate jdbcTemplate(@Inject("dataSource") DataSource dataSource) { - return new JdbcTemplate(dataSource); - } - -} diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/ClientConnectRecordController.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/ClientConnectRecordController.java index 8bcd8c5e..b260b082 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/ClientConnectRecordController.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/ClientConnectRecordController.java @@ -21,8 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.controller; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.controller.req.ClientConnectRecordListReq; import fun.asgc.neutrino.proxy.server.controller.res.ClientConnectRecordListRes; import fun.asgc.neutrino.proxy.server.service.ClientConnectRecordService; @@ -46,7 +46,7 @@ public class ClientConnectRecordController { @Get @Mapping("/page") - public Page page(PageQuery pageQuery, ClientConnectRecordListReq req) { + public PageInfo page(PageQuery pageQuery, ClientConnectRecordListReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return clientConnectRecordService.page(pageQuery, req); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/JobInfoController.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/JobInfoController.java index b225d265..df3bb59b 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/JobInfoController.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/JobInfoController.java @@ -21,9 +21,9 @@ */ package fun.asgc.neutrino.proxy.server.controller; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.core.web.annotation.RequestBody; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.rest.annotation.OnlyAdmin; import fun.asgc.neutrino.proxy.server.controller.req.JobInfoExecuteReq; import fun.asgc.neutrino.proxy.server.controller.req.JobInfoListReq; @@ -55,7 +55,7 @@ public class JobInfoController { @Get @Mapping("/page") - public Page page(PageQuery pageQuery, JobInfoListReq req) { + public PageInfo page(PageQuery pageQuery, JobInfoListReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return jobInfoService.page(pageQuery, req); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/JobLogController.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/JobLogController.java index cb0db7f2..c98e2ae5 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/JobLogController.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/JobLogController.java @@ -21,8 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.controller; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.controller.req.JobLogListReq; import fun.asgc.neutrino.proxy.server.controller.res.JobLogListRes; import fun.asgc.neutrino.proxy.server.service.JobLogService; @@ -47,7 +47,7 @@ public class JobLogController { @Get @Mapping("/page") - public Page page(PageQuery pageQuery, JobLogListReq req) { + public PageInfo page(PageQuery pageQuery, JobLogListReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return jobLogService.page(pageQuery, req); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/LicenseController.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/LicenseController.java index 4ab23792..08cf1df1 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/LicenseController.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/LicenseController.java @@ -21,10 +21,10 @@ */ package fun.asgc.neutrino.proxy.server.controller; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.core.web.annotation.RequestBody; import fun.asgc.neutrino.core.web.annotation.RequestParam; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.rest.annotation.OnlyAdmin; import fun.asgc.neutrino.proxy.server.controller.req.LicenseCreateReq; import fun.asgc.neutrino.proxy.server.controller.req.LicenseListReq; @@ -50,7 +50,7 @@ public class LicenseController { @Get @Mapping("/page") - public Page page(PageQuery pageQuery, LicenseListReq req) { + public PageInfo page(PageQuery pageQuery, LicenseListReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return licenseService.page(pageQuery, req); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/PortMappingController.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/PortMappingController.java index 426d471b..8514acfb 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/PortMappingController.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/PortMappingController.java @@ -22,10 +22,10 @@ package fun.asgc.neutrino.proxy.server.controller; import fun.asgc.neutrino.core.annotation.NonIntercept; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.core.web.annotation.RequestBody; import fun.asgc.neutrino.core.web.annotation.RequestParam; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.controller.req.PortMappingCreateReq; import fun.asgc.neutrino.proxy.server.controller.req.PortMappingListReq; import fun.asgc.neutrino.proxy.server.controller.req.PortMappingUpdateEnableStatusReq; @@ -49,7 +49,7 @@ public class PortMappingController { @Get @Mapping("/page") - public Page page(PageQuery pageQuery, PortMappingListReq req) { + public PageInfo page(PageQuery pageQuery, PortMappingListReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return portMappingService.page(pageQuery, req); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/PortPoolController.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/PortPoolController.java index fd5141b9..cfdce91d 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/PortPoolController.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/PortPoolController.java @@ -21,10 +21,10 @@ */ package fun.asgc.neutrino.proxy.server.controller; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.core.web.annotation.RequestBody; import fun.asgc.neutrino.core.web.annotation.RequestParam; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.rest.annotation.OnlyAdmin; import fun.asgc.neutrino.proxy.server.controller.req.PortPoolCreateReq; import fun.asgc.neutrino.proxy.server.controller.req.PortPoolListReq; @@ -51,7 +51,7 @@ public class PortPoolController { @Get @Mapping("/page") - public Page page(PageQuery pageQuery, PortPoolListReq req) { + public PageInfo page(PageQuery pageQuery, PortPoolListReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return portPoolService.page(pageQuery, req); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/ReportController.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/ReportController.java index f5727b59..23ecf1ae 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/ReportController.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/ReportController.java @@ -21,7 +21,7 @@ */ package fun.asgc.neutrino.proxy.server.controller; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.proxy.server.controller.req.LicenseFlowReportReq; import fun.asgc.neutrino.proxy.server.controller.req.UserFlowReportReq; @@ -79,7 +79,7 @@ public class ReportController { */ @Get @Mapping("/user/flow-report/page") - public Page userFlowReportPage(PageQuery pageQuery, UserFlowReportReq req) { + public PageInfo userFlowReportPage(PageQuery pageQuery, UserFlowReportReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return reportService.userFlowReportPage(pageQuery, req); @@ -93,7 +93,7 @@ public class ReportController { */ @Get @Mapping("/license/flow-report/page") - public Page licenseFlowReportPage(PageQuery pageQuery, LicenseFlowReportReq req) { + public PageInfo licenseFlowReportPage(PageQuery pageQuery, LicenseFlowReportReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return reportService.licenseFlowReportPage(pageQuery, req); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/UserController.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/UserController.java index 777d4ab0..494cfc8b 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/UserController.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/UserController.java @@ -21,10 +21,10 @@ */ package fun.asgc.neutrino.proxy.server.controller; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.core.web.annotation.RequestBody; import fun.asgc.neutrino.core.web.annotation.RequestParam; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.rest.SystemContextHolder; import fun.asgc.neutrino.proxy.server.base.rest.annotation.OnlyAdmin; import fun.asgc.neutrino.proxy.server.constant.ExceptionConstant; @@ -54,7 +54,7 @@ public class UserController { @Get @Mapping("/page") - public Page page(PageQuery pageQuery, UserListReq req) { + public PageInfo page(PageQuery pageQuery, UserListReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return userService.page(pageQuery, req); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/UserLoginRecordController.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/UserLoginRecordController.java index c317f107..7907b93c 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/UserLoginRecordController.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/controller/UserLoginRecordController.java @@ -21,8 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.controller; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.controller.req.UserLoginRecordListReq; import fun.asgc.neutrino.proxy.server.controller.res.UserLoginRecordListRes; import fun.asgc.neutrino.proxy.server.service.UserLoginRecordService; @@ -44,7 +44,7 @@ public class UserLoginRecordController { @Get @Mapping("/page") - public Page page(PageQuery pageQuery, UserLoginRecordListReq req) { + public PageInfo page(PageQuery pageQuery, UserLoginRecordListReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); return userLoginRecordService.page(pageQuery, req); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/ClientConnectRecordMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/ClientConnectRecordMapper.java index 7ebb6f69..0737b61d 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/ClientConnectRecordMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/ClientConnectRecordMapper.java @@ -1,21 +1,24 @@ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.db.annotation.ResultType; import fun.asgc.neutrino.core.db.annotation.Select; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.proxy.server.controller.req.ClientConnectRecordListReq; import fun.asgc.neutrino.proxy.server.controller.res.ClientConnectRecordListRes; import fun.asgc.neutrino.proxy.server.dal.entity.ClientConnectRecordDO; +import org.apache.ibatis.annotations.Mapper; /** * @author: aoshiguchen * @date: 2022/11/23 */ -public interface ClientConnectRecordMapper { +@Mapper +public interface ClientConnectRecordMapper extends BaseMapper { void add(ClientConnectRecordDO clientConnectRecordDO); @ResultType(ClientConnectRecordListRes.class) @Select("select * from client_connect_record order by id desc") - void page(Page page, ClientConnectRecordListReq req); + void page(PageInfo pageInfo, ClientConnectRecordListReq req); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportDayMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportDayMapper.java index 37eda4f9..84071d37 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportDayMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportDayMapper.java @@ -21,19 +21,20 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.db.annotation.Delete; import fun.asgc.neutrino.core.db.annotation.Insert; import fun.asgc.neutrino.core.db.annotation.ResultType; import fun.asgc.neutrino.core.db.annotation.Select; -import fun.asgc.neutrino.core.db.mapper.SqlMapper; import fun.asgc.neutrino.proxy.server.dal.entity.FlowReportDayDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; - -public interface FlowReportDayMapper { +@Mapper +public interface FlowReportDayMapper extends BaseMapper { @Select("select * from flow_report_day where license_id = :licenseId and date_str = :dateStr") FlowReportDayDO findOne(@Param("licenseId") Integer licenseId, @Param("dateStr") String dateStr); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportHourMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportHourMapper.java index bdc987c3..a1f6fd90 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportHourMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportHourMapper.java @@ -21,18 +21,20 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.db.annotation.Delete; import fun.asgc.neutrino.core.db.annotation.Insert; import fun.asgc.neutrino.core.db.annotation.ResultType; import fun.asgc.neutrino.core.db.annotation.Select; import fun.asgc.neutrino.proxy.server.dal.entity.FlowReportHourDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; - -public interface FlowReportHourMapper { +@Mapper +public interface FlowReportHourMapper extends BaseMapper { @Select("select * from flow_report_hour where license_id = :licenseId and date_str = :dateStr") FlowReportHourDO findOne(@Param("licenseId") Integer licenseId, @Param("dateStr") String dateStr); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportMinuteMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportMinuteMapper.java index 7d979b87..d6e7d2c0 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportMinuteMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportMinuteMapper.java @@ -21,18 +21,20 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.db.annotation.Insert; import fun.asgc.neutrino.core.db.annotation.ResultType; import fun.asgc.neutrino.core.db.annotation.Select; import fun.asgc.neutrino.proxy.server.dal.entity.FlowReportMinuteDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; import java.util.Set; - -public interface FlowReportMinuteMapper { +@Mapper +public interface FlowReportMinuteMapper extends BaseMapper { @Select("select * from flow_report_minute where license_id = :licenseId and date = :date") FlowReportMinuteDO findOne(@Param("licenseId") Integer licenseId, @Param("date") String date); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportMonthMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportMonthMapper.java index f60d9852..bc708ee7 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportMonthMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/FlowReportMonthMapper.java @@ -21,14 +21,16 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.db.annotation.Delete; import fun.asgc.neutrino.core.db.annotation.Insert; import fun.asgc.neutrino.core.db.annotation.Select; import fun.asgc.neutrino.proxy.server.dal.entity.FlowReportMonthDO; +import org.apache.ibatis.annotations.Mapper; - -public interface FlowReportMonthMapper { +@Mapper +public interface FlowReportMonthMapper extends BaseMapper { @Select("select * from flow_report_month where license_id = :licenseId and date_str = :dateStr") FlowReportMonthDO findOne(@Param("licenseId") Integer licenseId, @Param("dateStr") String dateStr); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobInfoMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobInfoMapper.java index a0ef1f2a..62dd9f72 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobInfoMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobInfoMapper.java @@ -21,24 +21,26 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.db.annotation.ResultType; import fun.asgc.neutrino.core.db.annotation.Select; import fun.asgc.neutrino.core.db.annotation.Update; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.proxy.server.controller.req.JobInfoListReq; import fun.asgc.neutrino.proxy.server.controller.res.JobInfoListRes; import fun.asgc.neutrino.proxy.server.dal.entity.JobInfoDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; - -public interface JobInfoMapper { +@Mapper +public interface JobInfoMapper extends BaseMapper { @ResultType(JobInfoListRes.class) @Select("select * from job_info") - void page(Page page, JobInfoListReq req); + void page(PageInfo pageInfo, JobInfoListReq req); @Select("select * from job_info where id = ?") JobInfoDO findById(Integer id); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobLogMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobLogMapper.java index af6f1d8a..cb22e8af 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobLogMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/JobLogMapper.java @@ -21,15 +21,17 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.aop.Intercept; import fun.asgc.neutrino.core.db.annotation.Insert; import fun.asgc.neutrino.core.db.annotation.ResultType; import fun.asgc.neutrino.core.db.annotation.Select; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.proxy.server.controller.req.JobLogListReq; import fun.asgc.neutrino.proxy.server.controller.res.JobLogListRes; import fun.asgc.neutrino.proxy.server.dal.entity.JobLogDO; +import org.apache.ibatis.annotations.Mapper; /** * @@ -38,17 +40,18 @@ import fun.asgc.neutrino.proxy.server.dal.entity.JobLogDO; */ @Intercept(ignoreGlobal = true) @Component -public interface JobLogMapper { +@Mapper +public interface JobLogMapper extends BaseMapper { @Insert("insert into job_log(`job_id`,`handler`,`param`,`code`,`msg`,`alarm_status`,`create_time`) values(:jobId,:handler,:param,:code,:msg,:alarmStatus,:createTime)") void add(JobLogDO jobLog); @ResultType(JobLogListRes.class) @Select("select * from job_log order by create_time desc") - void page(Page page, JobLogListReq req); + void page(PageInfo pageInfo, JobLogListReq req); @ResultType(JobLogListRes.class) @Select("select * from job_log where job_id = :jobId order by create_time desc") - void pageByJobId(Page page, JobLogListReq req); + void pageByJobId(PageInfo pageInfo, JobLogListReq req); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/LicenseMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/LicenseMapper.java index 25838225..46baca89 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/LicenseMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/LicenseMapper.java @@ -21,6 +21,9 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.aop.Intercept; @@ -28,10 +31,11 @@ import fun.asgc.neutrino.core.db.annotation.Delete; import fun.asgc.neutrino.core.db.annotation.ResultType; import fun.asgc.neutrino.core.db.annotation.Select; import fun.asgc.neutrino.core.db.annotation.Update; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.proxy.server.controller.req.LicenseListReq; import fun.asgc.neutrino.proxy.server.controller.res.LicenseListRes; import fun.asgc.neutrino.proxy.server.dal.entity.LicenseDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; @@ -44,14 +48,15 @@ import java.util.Set; */ @Intercept(ignoreGlobal = true) @Component -public interface LicenseMapper { +@Mapper +public interface LicenseMapper extends BaseMapper { /** * 查询license分页 - * @param page + * @param pageInfo * @param req */ - void page(Page page, LicenseListReq req); + void page(PageInfo pageInfo, LicenseListReq req); @ResultType(LicenseListRes.class) @Select("select * from license where enable = 1") @@ -75,7 +80,13 @@ public interface LicenseMapper { void updateEnableStatus(@Param("id") Integer id, @Param("enable") Integer enable, @Param("updateTime") Date updateTime); @Update("update `license` set is_online = :isOnline, update_time = :updateTime where id = :id") - void updateOnlineStatus(@Param("id") Integer id, @Param("isOnline") Integer isOnline, @Param("updateTime") Date updateTime); + default void updateOnlineStatus(@Param("id") Integer id, @Param("isOnline") Integer isOnline, @Param("updateTime") Date updateTime) { + this.update(null, new LambdaUpdateWrapper() + .eq(LicenseDO::getId, id) + .set(LicenseDO::getIsOnline, isOnline) + .set(LicenseDO::getUpdateTime, updateTime) + ); + } @Update("update `license` set is_online = :isOnline, update_time = :updateTime") void updateOnlineStatus(@Param("isOnline") Integer isOnline, @Param("updateTime") Date updateTime); @@ -94,7 +105,9 @@ public interface LicenseMapper { @ResultType(LicenseDO.class) @Select("select * from `license` where id in (:ids)") - List findByIds(@Param("ids")Set ids); + default List findByIds(@Param("ids")Set ids) { + return selectBatchIds(ids); + } @ResultType(LicenseDO.class) @Select("select * from `license` where user_id = :userId and name =:name limit 0,1") @@ -105,5 +118,9 @@ public interface LicenseMapper { LicenseDO checkRepeat(@Param("userId") Integer userId, @Param("name") String name, @Param("excludeIds") Set excludeIds); @Select("select * from `license` where `key` = ?") - LicenseDO findByKey(String licenseKey); + default LicenseDO findByKey(String licenseKey) { + return selectOne(new LambdaQueryWrapper() + .eq(LicenseDO::getKey, licenseKey) + ); + } } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/PortMappingMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/PortMappingMapper.java index db362d6d..3e510178 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/PortMappingMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/PortMappingMapper.java @@ -21,6 +21,9 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.aop.Intercept; @@ -28,10 +31,12 @@ import fun.asgc.neutrino.core.db.annotation.Delete; import fun.asgc.neutrino.core.db.annotation.ResultType; import fun.asgc.neutrino.core.db.annotation.Select; import fun.asgc.neutrino.core.db.annotation.Update; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; +import fun.asgc.neutrino.proxy.server.constant.EnableStatusEnum; import fun.asgc.neutrino.proxy.server.controller.req.PortMappingListReq; import fun.asgc.neutrino.proxy.server.controller.res.PortMappingListRes; import fun.asgc.neutrino.proxy.server.dal.entity.PortMappingDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; @@ -44,11 +49,12 @@ import java.util.Set; */ @Intercept(ignoreGlobal = true) @Component -public interface PortMappingMapper { +@Mapper +public interface PortMappingMapper extends BaseMapper { @ResultType(PortMappingListRes.class) @Select("select * from port_mapping") - void page(Page page, PortMappingListReq req); + void page(PageInfo pageInfo, PortMappingListReq req); void add(PortMappingDO portMappingDO); @@ -71,7 +77,12 @@ public interface PortMappingMapper { @ResultType(PortMappingDO.class) @Select("select * from port_mapping where license_id = ? and enable = 1") - List findEnableListByLicenseId(Integer licenseId); + default List findEnableListByLicenseId(Integer licenseId) { + return this.selectList(new LambdaQueryWrapper() + .eq(PortMappingDO::getLicenseId, licenseId) + .eq(PortMappingDO::getEnable, EnableStatusEnum.ENABLE.getStatus()) + ); + } @ResultType(PortMappingDO.class) @Select("select * from port_mapping where server_port = :serverPort") @@ -82,7 +93,14 @@ public interface PortMappingMapper { List findListByLicenseId(Integer licenseId); @Update("update `port_mapping` set is_online = :isOnline,update_time = :updateTime where license_id = :licenseId and server_port = :serverPort") - void updateOnlineStatus(@Param("licenseId") Integer licenseId, @Param("serverPort") Integer serverPort, @Param("isOnline") Integer isOnline, @Param("updateTime") Date updateTime); + default void updateOnlineStatus(@Param("licenseId") Integer licenseId, @Param("serverPort") Integer serverPort, @Param("isOnline") Integer isOnline, @Param("updateTime") Date updateTime) { + this.update(null, new LambdaUpdateWrapper() + .eq(PortMappingDO::getLicenseId, licenseId) + .eq(PortMappingDO::getServerPort, serverPort) + .set(PortMappingDO::getIsOnline, isOnline) + .set(PortMappingDO::getUpdateTime, updateTime) + ); + } @Update("update `port_mapping` set is_online = :isOnline,update_time = :updateTime where license_id = :licenseId") void updateOnlineStatus(@Param("licenseId") Integer licenseId, @Param("isOnline") Integer isOnline, @Param("updateTime") Date updateTime); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/PortPoolMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/PortPoolMapper.java index d1848bee..36842102 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/PortPoolMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/PortPoolMapper.java @@ -21,14 +21,16 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.aop.Intercept; import fun.asgc.neutrino.core.db.annotation.*; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.proxy.server.controller.req.PortPoolListReq; import fun.asgc.neutrino.proxy.server.controller.res.PortPoolListRes; import fun.asgc.neutrino.proxy.server.dal.entity.PortPoolDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; @@ -40,11 +42,12 @@ import java.util.List; */ @Intercept(ignoreGlobal = true) @Component -public interface PortPoolMapper { +@Mapper +public interface PortPoolMapper extends BaseMapper { @ResultType(PortPoolListRes.class) @Select("select * from port_pool") - void page(Page page, PortPoolListReq req); + void page(PageInfo pageInfo, PortPoolListReq req); @ResultType(PortPoolListRes.class) @Select("select * from port_pool where enable = 1") diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserLoginRecordMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserLoginRecordMapper.java index 14fb36c0..ab3ef0a7 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserLoginRecordMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserLoginRecordMapper.java @@ -21,15 +21,17 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.aop.Intercept; import fun.asgc.neutrino.core.db.annotation.Insert; import fun.asgc.neutrino.core.db.annotation.ResultType; import fun.asgc.neutrino.core.db.annotation.Select; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.proxy.server.controller.req.UserLoginRecordListReq; import fun.asgc.neutrino.proxy.server.controller.res.UserLoginRecordListRes; import fun.asgc.neutrino.proxy.server.dal.entity.UserLoginRecordDO; +import org.apache.ibatis.annotations.Mapper; /** * @@ -38,7 +40,8 @@ import fun.asgc.neutrino.proxy.server.dal.entity.UserLoginRecordDO; */ @Intercept(ignoreGlobal = true) @Component -public interface UserLoginRecordMapper { +@Mapper +public interface UserLoginRecordMapper extends BaseMapper { /** * 新增用户登录日志 * @param userLoginRecord @@ -49,5 +52,5 @@ public interface UserLoginRecordMapper { @ResultType(UserLoginRecordListRes.class) @Select("select * from user_login_record order by create_time desc") - void page(Page page, UserLoginRecordListReq req); + void page(PageInfo pageInfo, UserLoginRecordListReq req); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserMapper.java index 498b9a36..eddaf20b 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserMapper.java @@ -21,14 +21,17 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.aop.Intercept; import fun.asgc.neutrino.core.db.annotation.*; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.proxy.server.controller.req.UserListReq; import fun.asgc.neutrino.proxy.server.controller.res.UserListRes; import fun.asgc.neutrino.proxy.server.dal.entity.UserDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; @@ -41,7 +44,8 @@ import java.util.Set; */ @Intercept(ignoreGlobal = true) @Component -public interface UserMapper { +@Mapper +public interface UserMapper extends BaseMapper { /** * 根据登录名查询用户记录 @@ -49,7 +53,12 @@ public interface UserMapper { * @return */ @Select("select * from user where login_name = ?") - UserDO findByLoginName(String loginName); + default UserDO findByLoginName(String loginName) { + return selectOne(new LambdaQueryWrapper() + .eq(UserDO::getLoginName, loginName) + .last("limit 1") + ); + } /** * 根据id查询单条记录 @@ -57,15 +66,19 @@ public interface UserMapper { * @return */ @Select("select * from user where id = ?") - UserDO findById(Integer id); + default UserDO findById(Integer id) { + return selectById(id); + } @ResultType(UserDO.class) @Select("select * from user where id in (:ids)") - List findByIds(@Param("ids") Set ids); + default List findByIds(@Param("ids") Set ids) { + return selectBatchIds(ids); + } @ResultType(UserListRes.class) @Select("select * from user") - void page(Page page, UserListReq req); + void page(PageInfo pageInfo, UserListReq req); @ResultType(UserListRes.class) @Select("select * from user where enable = 1") diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserReportMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserReportMapper.java index b6e4529e..bc468aa4 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserReportMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserReportMapper.java @@ -3,8 +3,9 @@ package fun.asgc.neutrino.proxy.server.dal; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.aop.Intercept; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.proxy.server.controller.res.UserFlowReportRes; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; @@ -14,8 +15,9 @@ import java.util.Date; */ @Intercept(ignoreGlobal = true) @Component +@Mapper public interface UserReportMapper { - void userFlowReportPage(Page page, @Param("todayBegin") Date todayBegin, @Param("todayEnd") Date todayEnd); + void userFlowReportPage(PageInfo pageInfo, @Param("todayBegin") Date todayBegin, @Param("todayEnd") Date todayEnd); } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserTokenMapper.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserTokenMapper.java index 2433617d..8d85bee7 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserTokenMapper.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/UserTokenMapper.java @@ -21,12 +21,16 @@ */ package fun.asgc.neutrino.proxy.server.dal; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.Param; import fun.asgc.neutrino.core.aop.Intercept; import fun.asgc.neutrino.core.db.annotation.Delete; import fun.asgc.neutrino.core.db.annotation.Update; import fun.asgc.neutrino.proxy.server.dal.entity.UserTokenDO; +import org.apache.ibatis.annotations.Mapper; import java.util.Date; @@ -37,7 +41,8 @@ import java.util.Date; */ @Intercept(ignoreGlobal = true) @Component -public interface UserTokenMapper { +@Mapper +public interface UserTokenMapper extends BaseMapper { /** * 新增用户token * 支持注解 + xml配置2种方式 @@ -55,7 +60,12 @@ public interface UserTokenMapper { * @return */ // @Select("select * from user_token where token = ? and expiration_time > ?") - UserTokenDO findByAvailableToken(String token, Date date); + default UserTokenDO findByAvailableToken(String token, Date date) { + return selectOne(new LambdaQueryWrapper() + .eq(UserTokenDO::getToken, token) + .gt(UserTokenDO::getExpirationTime, date) + ); + } /** * 根据token删除记录 @@ -65,7 +75,12 @@ public interface UserTokenMapper { void deleteByToken(String token); @Update("update user_token set expiration_time = :expirationTime where token = :token") - void updateTokenExpirationTime(@Param("token") String token, @Param("expirationTime") Date expirationTime); + default void updateTokenExpirationTime(@Param("token") String token, @Param("expirationTime") Date expirationTime) { + update(null, new LambdaUpdateWrapper() + .eq(UserTokenDO::getToken, token) + .set(UserTokenDO::getExpirationTime, expirationTime) + ); + } /** * 根据userId删除token diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/ClientConnectRecordDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/ClientConnectRecordDO.java index 4a6fb795..c8bda8f5 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/ClientConnectRecordDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/ClientConnectRecordDO.java @@ -1,5 +1,7 @@ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -16,8 +18,10 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("client_connect_record") +@TableName("client_connect_record") public class ClientConnectRecordDO { @Id + @TableId private Integer id; private String ip; private Integer licenseId; diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportDayDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportDayDO.java index 7da73929..8475d86f 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportDayDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportDayDO.java @@ -21,6 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -37,8 +39,10 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("flow_report_day") +@TableName("flow_report_day") public class FlowReportDayDO { @Id + @TableId private Integer id; /** * 用户ID diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportHourDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportHourDO.java index c3ee3057..1e8ddae4 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportHourDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportHourDO.java @@ -21,6 +21,7 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -39,6 +40,7 @@ import java.util.Date; @Table("flow_report_hour") public class FlowReportHourDO { @Id + @TableId private Integer id; /** * 用户ID diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportMinuteDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportMinuteDO.java index 139e9363..ac855fc1 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportMinuteDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportMinuteDO.java @@ -21,6 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -37,8 +39,10 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("flow_report_minute") +@TableName("flow_report_minute") public class FlowReportMinuteDO { @Id + @TableId private Integer id; /** * 用户ID diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportMonthDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportMonthDO.java index 312e0dbb..3b37e70e 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportMonthDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/FlowReportMonthDO.java @@ -21,6 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -37,8 +39,10 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("flow_report_month") +@TableName("flow_report_month") public class FlowReportMonthDO { @Id + @TableId private Integer id; /** * 用户ID diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/JobInfoDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/JobInfoDO.java index cb1c3577..c426d06a 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/JobInfoDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/JobInfoDO.java @@ -21,6 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -38,8 +40,10 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("job_info") +@TableName("job_info") public class JobInfoDO { @Id + @TableId private Integer id; private String cron; private String desc; diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/JobLogDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/JobLogDO.java index f54172ab..fa556e8b 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/JobLogDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/JobLogDO.java @@ -21,7 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; -import fun.asgc.neutrino.core.annotation.Autowired; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; import lombok.ToString; @@ -38,8 +39,9 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("job_log") +@TableName("job_log") public class JobLogDO { - @Autowired + @TableId private Integer id; private Integer jobId; private String handler; diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/LicenseDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/LicenseDO.java index 46aa9f1f..29a64d59 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/LicenseDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/LicenseDO.java @@ -21,6 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import fun.asgc.neutrino.proxy.server.constant.OnlineStatusEnum; @@ -39,8 +41,10 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("license") +@TableName("license") public class LicenseDO { @Id + @TableId private Integer id; /** * 名称 diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/PortMappingDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/PortMappingDO.java index 805fcc2d..219e143a 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/PortMappingDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/PortMappingDO.java @@ -21,6 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import fun.asgc.neutrino.proxy.server.constant.OnlineStatusEnum; @@ -39,8 +41,10 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("port_mapping") +@TableName("port_mapping") public class PortMappingDO { @Id + @TableId private Integer id; /** * licenseId diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/PortPoolDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/PortPoolDO.java index a8bcd696..bb4a1405 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/PortPoolDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/PortPoolDO.java @@ -21,6 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -38,8 +40,10 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("port_pool") +@TableName("port_pool") public class PortPoolDO { @Id + @TableId private Integer id; /** * 端口 diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserDO.java index c51eb48d..f49fee3d 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserDO.java @@ -21,6 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -36,8 +38,10 @@ import java.util.Date; @ToString @Data @Table("user") +@TableName("user") public class UserDO { @Id + @TableId private Integer id; /** * 用户名 diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserLoginRecordDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserLoginRecordDO.java index 472361fb..6316fc80 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserLoginRecordDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserLoginRecordDO.java @@ -12,6 +12,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -29,6 +31,7 @@ import java.util.Date; @Data @Accessors(chain = true) @Table("user_login_record") +@TableName("user_login_record") public class UserLoginRecordDO { /** * 类型 - 登录 @@ -40,6 +43,7 @@ public class UserLoginRecordDO { public static final Integer TYPE_LOGOUT = 2; @Id + @TableId private Integer id; /** * 用户ID diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserTokenDO.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserTokenDO.java index 00a3385e..3d0334ab 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserTokenDO.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/dal/entity/UserTokenDO.java @@ -21,6 +21,8 @@ */ package fun.asgc.neutrino.proxy.server.dal.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import fun.asgc.neutrino.core.db.annotation.Id; import fun.asgc.neutrino.core.db.annotation.Table; import lombok.Data; @@ -38,9 +40,11 @@ import java.util.Date; @Accessors(chain = true) @Data @Table("user_token") +@TableName("user_token") public class UserTokenDO { @Id + @TableId private Integer id; /** * token diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/ClientConnectRecordService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/ClientConnectRecordService.java index 63777be3..b2b98d63 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/ClientConnectRecordService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/ClientConnectRecordService.java @@ -21,9 +21,13 @@ */ package fun.asgc.neutrino.proxy.server.service; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import fun.asgc.neutrino.core.util.CollectionUtil; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.rest.SystemContextHolder; import fun.asgc.neutrino.proxy.server.controller.req.ClientConnectRecordListReq; import fun.asgc.neutrino.proxy.server.controller.res.ClientConnectRecordListRes; @@ -34,6 +38,7 @@ import fun.asgc.neutrino.proxy.server.dal.entity.ClientConnectRecordDO; import fun.asgc.neutrino.proxy.server.dal.entity.LicenseDO; import fun.asgc.neutrino.proxy.server.dal.entity.UserDO; import lombok.extern.slf4j.Slf4j; +import ma.glasnost.orika.MapperFactory; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; @@ -50,6 +55,8 @@ import java.util.stream.Collectors; @Slf4j @Component public class ClientConnectRecordService { + @Inject + private MapperFactory mapperFactory; @Inject private ClientConnectRecordMapper clientConnectRecordMapper; @Inject @@ -58,29 +65,29 @@ public class ClientConnectRecordService { private UserMapper userMapper; public void add(ClientConnectRecordDO clientConnectRecordDO) { - clientConnectRecordMapper.add(clientConnectRecordDO); + clientConnectRecordMapper.insert(clientConnectRecordDO); } - public Page page(PageQuery pageQuery, ClientConnectRecordListReq req) { - Page page = Page.create(pageQuery); - clientConnectRecordMapper.page(page, req); - if (CollectionUtil.isEmpty(page.getRecords())) { - return page; - } - Set licenseIds = page.getRecords().stream().map(ClientConnectRecordListRes::getLicenseId).collect(Collectors.toSet()); - if (CollectionUtil.isEmpty(licenseIds)) { - return page; + public PageInfo page(PageQuery pageQuery, ClientConnectRecordListReq req) { + Page result = PageHelper.startPage(pageQuery.getCurrent(), pageQuery.getSize()); + List list = clientConnectRecordMapper.selectList(new LambdaQueryWrapper() + .orderByDesc(ClientConnectRecordDO::getId) + ); + List respList = mapperFactory.getMapperFacade().mapAsList(list, ClientConnectRecordListRes.class); + if (CollectionUtils.isEmpty(list)) { + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } + Set licenseIds = respList.stream().map(ClientConnectRecordListRes::getLicenseId).collect(Collectors.toSet()); List licenseList = licenseMapper.findByIds(licenseIds); if (CollectionUtil.isEmpty(licenseList)) { - return page; + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } Set userIds = licenseList.stream().map(LicenseDO::getUserId).collect(Collectors.toSet()); List userList = userMapper.findByIds(userIds); Map licenseMap = licenseList.stream().collect(Collectors.toMap(LicenseDO::getId, Function.identity())); Map userMap = userList.stream().collect(Collectors.toMap(UserDO::getId, Function.identity())); boolean isAdmin = SystemContextHolder.isAdmin(); - page.getRecords().forEach(item -> { + respList.forEach(item -> { LicenseDO license = licenseMap.get(item.getLicenseId()); if (null == license) { return; @@ -97,6 +104,6 @@ public class ClientConnectRecordService { item.setMsg("******"); } }); - return page; + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobInfoService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobInfoService.java index 2acfdbec..75002bd7 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobInfoService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobInfoService.java @@ -21,10 +21,13 @@ */ package fun.asgc.neutrino.proxy.server.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import com.google.common.collect.Lists; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.core.util.CollectionUtil; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.quartz.IJobSource; import fun.asgc.neutrino.proxy.server.base.quartz.JobExecutor; import fun.asgc.neutrino.proxy.server.base.quartz.JobInfo; @@ -42,6 +45,7 @@ import fun.asgc.neutrino.proxy.server.dal.JobInfoMapper; import fun.asgc.neutrino.proxy.server.dal.entity.JobInfoDO; import fun.asgc.neutrino.proxy.server.util.ParamCheckUtil; import lombok.extern.slf4j.Slf4j; +import ma.glasnost.orika.MapperFactory; import org.noear.solon.Solon; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; @@ -57,13 +61,18 @@ import java.util.List; @Slf4j @Component public class JobInfoService implements IJobSource { + @Inject + private MapperFactory mapperFactory; @Inject private JobInfoMapper jobInfoMapper; - public Page page(PageQuery pageQuery, JobInfoListReq req) { - Page page = Page.create(pageQuery); - jobInfoMapper.page(page, req); - return page; + public PageInfo page(PageQuery pageQuery, JobInfoListReq req) { + Page result = PageHelper.startPage(pageQuery.getCurrent(), pageQuery.getSize()); + List list = jobInfoMapper.selectList(new LambdaQueryWrapper() + .orderByAsc(JobInfoDO::getId) + ); + List respList = mapperFactory.getMapperFacade().mapAsList(list, JobInfoListRes.class); + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } public List findList() { diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobLogService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobLogService.java index 7ca2edb2..de468919 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobLogService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/JobLogService.java @@ -21,8 +21,11 @@ */ package fun.asgc.neutrino.proxy.server.service; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.quartz.IJobCallback; import fun.asgc.neutrino.proxy.server.base.quartz.JobInfo; import fun.asgc.neutrino.proxy.server.controller.req.JobLogListReq; @@ -30,11 +33,13 @@ import fun.asgc.neutrino.proxy.server.controller.res.JobLogListRes; import fun.asgc.neutrino.proxy.server.dal.JobLogMapper; import fun.asgc.neutrino.proxy.server.dal.entity.JobLogDO; import lombok.extern.slf4j.Slf4j; +import ma.glasnost.orika.MapperFactory; import org.apache.commons.lang3.exception.ExceptionUtils; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; import java.util.Date; +import java.util.List; /** * @@ -44,6 +49,8 @@ import java.util.Date; @Slf4j @Component public class JobLogService implements IJobCallback { + @Inject + private MapperFactory mapperFactory; @Inject private JobLogMapper jobLogMapper; @@ -70,15 +77,14 @@ public class JobLogService implements IJobCallback { ); } - public Page page(PageQuery pageQuery, JobLogListReq req) { - Page page = Page.create(pageQuery); - - if(req.getJobId() != null && req.getJobId() > 0){ - jobLogMapper.pageByJobId(page, req); - } else { - jobLogMapper.page(page, req); - } - return page; + public PageInfo page(PageQuery pageQuery, JobLogListReq req) { + Page result = PageHelper.startPage(pageQuery.getCurrent(), pageQuery.getSize()); + List list = jobLogMapper.selectList(new LambdaQueryWrapper() + .eq(null != req.getJobId(), JobLogDO::getJobId, req.getJobId()) + .orderByDesc(JobLogDO::getId) + ); + List respList = mapperFactory.getMapperFacade().mapAsList(list, JobLogListRes.class); + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/LicenseService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/LicenseService.java index 41dc431b..b4916bcd 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/LicenseService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/LicenseService.java @@ -21,10 +21,14 @@ */ package fun.asgc.neutrino.proxy.server.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import com.google.common.collect.Sets; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.core.util.CollectionUtil; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.rest.SystemContextHolder; import fun.asgc.neutrino.proxy.server.constant.EnableStatusEnum; import fun.asgc.neutrino.proxy.server.constant.ExceptionConstant; @@ -39,6 +43,7 @@ import fun.asgc.neutrino.proxy.server.dal.UserMapper; import fun.asgc.neutrino.proxy.server.dal.entity.LicenseDO; import fun.asgc.neutrino.proxy.server.dal.entity.UserDO; import fun.asgc.neutrino.proxy.server.util.ParamCheckUtil; +import ma.glasnost.orika.MapperFactory; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; import org.noear.solon.core.Lifecycle; @@ -54,7 +59,8 @@ import java.util.stream.Collectors; */ @Component public class LicenseService implements Lifecycle { - + @Inject + private MapperFactory mapperFactory; @Inject private LicenseMapper licenseMapper; @Inject @@ -62,14 +68,20 @@ public class LicenseService implements Lifecycle { @Inject private VisitorChannelService visitorChannelService; - public Page page(PageQuery pageQuery, LicenseListReq req) { - Page page = Page.create(pageQuery); - licenseMapper.page(page, req); - if (!CollectionUtil.isEmpty(page.getRecords())) { - Set userIds = page.getRecords().stream().map(LicenseListRes::getUserId).collect(Collectors.toSet()); + public PageInfo page(PageQuery pageQuery, LicenseListReq req) { + Page result = PageHelper.startPage(pageQuery.getCurrent(), pageQuery.getSize()); + List list = licenseMapper.selectList(new LambdaQueryWrapper() + .orderByAsc(LicenseDO::getId) + ); + List respList = mapperFactory.getMapperFacade().mapAsList(list, LicenseListRes.class); + if (CollectionUtils.isEmpty(list)) { + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); + } + if (!CollectionUtil.isEmpty(respList)) { + Set userIds = respList.stream().map(LicenseListRes::getUserId).collect(Collectors.toSet()); List userList = userMapper.findByIds(userIds); Map userMap = userList.stream().collect(Collectors.toMap(UserDO::getId, Function.identity())); - for (LicenseListRes item : page.getRecords()) { + for (LicenseListRes item : respList) { UserDO userDO = userMap.get(item.getUserId()); if (null != userDO) { item.setUserName(userDO.getName()); @@ -77,7 +89,7 @@ public class LicenseService implements Lifecycle { item.setKey(desensitization(item.getUserId(), item.getKey())); } } - return page; + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } public List list(LicenseListReq req) { diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/PortMappingService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/PortMappingService.java index b5b09f70..e6b496ef 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/PortMappingService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/PortMappingService.java @@ -21,10 +21,14 @@ */ package fun.asgc.neutrino.proxy.server.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import com.google.common.collect.Sets; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.core.util.CollectionUtil; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.rest.SystemContextHolder; import fun.asgc.neutrino.proxy.server.constant.EnableStatusEnum; import fun.asgc.neutrino.proxy.server.constant.ExceptionConstant; @@ -43,6 +47,7 @@ import fun.asgc.neutrino.proxy.server.dal.entity.PortMappingDO; import fun.asgc.neutrino.proxy.server.dal.entity.PortPoolDO; import fun.asgc.neutrino.proxy.server.dal.entity.UserDO; import fun.asgc.neutrino.proxy.server.util.ParamCheckUtil; +import ma.glasnost.orika.MapperFactory; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; import org.noear.solon.core.Lifecycle; @@ -61,6 +66,8 @@ import java.util.stream.Collectors; */ @Component public class PortMappingService implements Lifecycle { + @Inject + private MapperFactory mapperFactory; @Inject private PortMappingMapper portMappingMapper; @Inject @@ -72,25 +79,25 @@ public class PortMappingService implements Lifecycle { @Inject private VisitorChannelService visitorChannelService; - public Page page(PageQuery pageQuery, PortMappingListReq req) { - Page page = Page.create(pageQuery); - portMappingMapper.page(page, req); - if (CollectionUtil.isEmpty(page.getRecords())) { - return page; - } - Set licenseIds = page.getRecords().stream().map(PortMappingListRes::getLicenseId).collect(Collectors.toSet()); - if (CollectionUtil.isEmpty(licenseIds)) { - return page; + public PageInfo page(PageQuery pageQuery, PortMappingListReq req) { + Page result = PageHelper.startPage(pageQuery.getCurrent(), pageQuery.getSize()); + List list = portMappingMapper.selectList(new LambdaQueryWrapper() + .orderByAsc(PortMappingDO::getId) + ); + List respList = mapperFactory.getMapperFacade().mapAsList(list, PortMappingListRes.class); + if (CollectionUtils.isEmpty(list)) { + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } + Set licenseIds = respList.stream().map(PortMappingListRes::getLicenseId).collect(Collectors.toSet()); List licenseList = licenseMapper.findByIds(licenseIds); if (CollectionUtil.isEmpty(licenseList)) { - return page; + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } Set userIds = licenseList.stream().map(LicenseDO::getUserId).collect(Collectors.toSet()); List userList = userMapper.findByIds(userIds); Map licenseMap = licenseList.stream().collect(Collectors.toMap(LicenseDO::getId, Function.identity())); Map userMap = userList.stream().collect(Collectors.toMap(UserDO::getId, Function.identity())); - page.getRecords().forEach(item -> { + respList.forEach(item -> { LicenseDO license = licenseMap.get(item.getLicenseId()); if (null == license) { return; @@ -103,7 +110,7 @@ public class PortMappingService implements Lifecycle { } item.setUserName(user.getName()); }); - return page; + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } public PortMappingCreateRes create(PortMappingCreateReq req) { diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/PortPoolService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/PortPoolService.java index 01149d33..a587eef2 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/PortPoolService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/PortPoolService.java @@ -21,8 +21,11 @@ */ package fun.asgc.neutrino.proxy.server.service; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.constant.EnableStatusEnum; import fun.asgc.neutrino.proxy.server.constant.ExceptionConstant; import fun.asgc.neutrino.proxy.server.controller.req.PortPoolCreateReq; @@ -34,6 +37,7 @@ import fun.asgc.neutrino.proxy.server.controller.res.PortPoolUpdateEnableStatusR import fun.asgc.neutrino.proxy.server.dal.PortPoolMapper; import fun.asgc.neutrino.proxy.server.dal.entity.PortPoolDO; import fun.asgc.neutrino.proxy.server.util.ParamCheckUtil; +import ma.glasnost.orika.MapperFactory; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; @@ -47,16 +51,20 @@ import java.util.List; */ @Component public class PortPoolService { - + @Inject + private MapperFactory mapperFactory; @Inject private PortPoolMapper portPoolMapper; @Inject private VisitorChannelService visitorChannelService; - public Page page(PageQuery pageQuery, PortPoolListReq req) { - Page page = Page.create(pageQuery); - portPoolMapper.page(page, req); - return page; + public PageInfo page(PageQuery pageQuery, PortPoolListReq req) { + Page result = PageHelper.startPage(pageQuery.getCurrent(), pageQuery.getSize()); + List list = portPoolMapper.selectList(new LambdaQueryWrapper() + .orderByAsc(PortPoolDO::getId) + ); + List respList = mapperFactory.getMapperFacade().mapAsList(list, PortPoolListRes.class); + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } public List list(PortPoolListReq req) { diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/ReportService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/ReportService.java index ee6cb43e..66fb225e 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/ReportService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/ReportService.java @@ -21,7 +21,7 @@ */ package fun.asgc.neutrino.proxy.server.service; -import fun.asgc.neutrino.core.db.page.Page; +import fun.asgc.neutrino.core.db.page.PageInfo; import fun.asgc.neutrino.core.db.page.PageQuery; import fun.asgc.neutrino.proxy.server.controller.req.LicenseFlowReportReq; import fun.asgc.neutrino.proxy.server.controller.req.UserFlowReportReq; @@ -48,7 +48,7 @@ public class ReportService { * @param req * @return */ - public Page userFlowReportPage(PageQuery pageQuery, UserFlowReportReq req) { + public PageInfo userFlowReportPage(PageQuery pageQuery, UserFlowReportReq req) { // TODO return null; } @@ -59,7 +59,7 @@ public class ReportService { * @param req * @return */ - public Page licenseFlowReportPage(PageQuery pageQuery, LicenseFlowReportReq req) { + public PageInfo licenseFlowReportPage(PageQuery pageQuery, LicenseFlowReportReq req) { // TODO return null; } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/UserLoginRecordService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/UserLoginRecordService.java index c568127c..82f25986 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/UserLoginRecordService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/UserLoginRecordService.java @@ -21,14 +21,20 @@ */ package fun.asgc.neutrino.proxy.server.service; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import fun.asgc.neutrino.core.util.CollectionUtil; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.controller.req.UserLoginRecordListReq; import fun.asgc.neutrino.proxy.server.controller.res.UserLoginRecordListRes; import fun.asgc.neutrino.proxy.server.dal.UserLoginRecordMapper; import fun.asgc.neutrino.proxy.server.dal.UserMapper; import fun.asgc.neutrino.proxy.server.dal.entity.UserDO; +import fun.asgc.neutrino.proxy.server.dal.entity.UserLoginRecordDO; +import ma.glasnost.orika.MapperFactory; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; @@ -45,25 +51,34 @@ import java.util.stream.Collectors; */ @Component public class UserLoginRecordService { + @Inject + private MapperFactory mapperFactory; @Inject private UserLoginRecordMapper userLoginRecordMapper; @Inject private UserMapper userMapper; - public Page page(PageQuery pageQuery, UserLoginRecordListReq req) { - Page page = Page.create(pageQuery); - userLoginRecordMapper.page(page, req); - if (!CollectionUtil.isEmpty(page.getRecords())) { - Set userIds = page.getRecords().stream().map(UserLoginRecordListRes::getUserId).collect(Collectors.toSet()); + public PageInfo page(PageQuery pageQuery, UserLoginRecordListReq req) { + Page result = PageHelper.startPage(pageQuery.getCurrent(), pageQuery.getSize()); + List list = userLoginRecordMapper.selectList(new LambdaQueryWrapper() + .orderByDesc(UserLoginRecordDO::getCreateTime) + ); + List respList = mapperFactory.getMapperFacade().mapAsList(list, UserLoginRecordListRes.class); + if (CollectionUtils.isEmpty(list)) { + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); + } + + if (!CollectionUtil.isEmpty(respList)) { + Set userIds = respList.stream().map(UserLoginRecordListRes::getUserId).collect(Collectors.toSet()); List userList = userMapper.findByIds(userIds); Map userMap = userList.stream().collect(Collectors.toMap(UserDO::getId, Function.identity())); - for (UserLoginRecordListRes item : page.getRecords()) { + for (UserLoginRecordListRes item : respList) { UserDO userDO = userMap.get(item.getUserId()); if (null != userDO) { item.setUserName(userDO.getName()); } } } - return page; + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } } diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/UserService.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/UserService.java index 06f13826..53e9a624 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/UserService.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/service/UserService.java @@ -21,9 +21,12 @@ */ package fun.asgc.neutrino.proxy.server.service; -import fun.asgc.neutrino.core.db.page.Page; -import fun.asgc.neutrino.core.db.page.PageQuery; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import fun.asgc.neutrino.core.util.DateUtil; +import fun.asgc.neutrino.proxy.server.base.page.PageInfo; +import fun.asgc.neutrino.proxy.server.base.page.PageQuery; import fun.asgc.neutrino.proxy.server.base.rest.ServiceException; import fun.asgc.neutrino.proxy.server.base.rest.SystemContextHolder; import fun.asgc.neutrino.proxy.server.constant.EnableStatusEnum; @@ -38,6 +41,8 @@ import fun.asgc.neutrino.proxy.server.dal.entity.UserLoginRecordDO; import fun.asgc.neutrino.proxy.server.dal.entity.UserTokenDO; import fun.asgc.neutrino.proxy.server.util.Md5Util; import fun.asgc.neutrino.proxy.server.util.ParamCheckUtil; +import ma.glasnost.orika.MapperFactory; +import org.apache.ibatis.solon.annotation.Db; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; @@ -55,12 +60,14 @@ import java.util.UUID; public class UserService { private static final String DEFAULT_PASSWORD = "123456"; @Inject + private MapperFactory mapperFactory; + @Db private UserMapper userMapper; - @Inject + @Db private UserTokenMapper userTokenMapper; - @Inject + @Db private UserLoginRecordMapper userLoginRecordMapper; - @Inject + @Db private VisitorChannelService visitorChannelService; public LoginRes login(LoginReq req) { @@ -77,7 +84,7 @@ public class UserService { Date expirationTime = DateUtil.addDate(now, Calendar.HOUR, 1); // 缓存token - userTokenMapper.add(new UserTokenDO() + userTokenMapper.insert(new UserTokenDO() .setToken(token) .setUserId(userDO.getId()) .setExpirationTime(expirationTime) @@ -86,7 +93,7 @@ public class UserService { ); // 新增用户登录日志 - userLoginRecordMapper.add(new UserLoginRecordDO() + userLoginRecordMapper.insert(new UserLoginRecordDO() .setUserId(userDO.getId()) .setIp(SystemContextHolder.getIp()) .setToken(token) @@ -132,10 +139,13 @@ public class UserService { userTokenMapper.updateTokenExpirationTime(token, expirationTime); } - public Page page(PageQuery pageQuery, UserListReq req) { - Page page = Page.create(pageQuery); - userMapper.page(page, req); - return page; + public PageInfo page(PageQuery pageQuery, UserListReq req) { + Page result = PageHelper.startPage(pageQuery.getCurrent(), pageQuery.getSize()); + List list = userMapper.selectList(new LambdaQueryWrapper() + .orderByAsc(UserDO::getId) + ); + List respList = mapperFactory.getMapperFacade().mapAsList(list, UserListRes.class); + return PageInfo.of(respList, result.getTotal(), pageQuery.getCurrent(), pageQuery.getSize()); } public List list(UserListReq req) { diff --git a/neutrino-proxy-server/src/main/resources/app.yml b/neutrino-proxy-server/src/main/resources/app.yml index e61f476a..3cc90636 100644 --- a/neutrino-proxy-server/src/main/resources/app.yml +++ b/neutrino-proxy-server/src/main/resources/app.yml @@ -36,4 +36,16 @@ solon.staticfiles.maxAge: 600 #添加静态目录映射。(按需选择)#v1.11.0 后支持 solon.staticfiles.mappings: - path: "/" - repository: "./neutrino-proxy-admin/dist/" #2.添加资源路径(仓库只能是目录) \ No newline at end of file + repository: "./neutrino-proxy-admin/dist/" #2.添加资源路径(仓库只能是目录) + +mybatis.db: + typeAliases: #支持包名 或 类名(大写开头 或 *)//支持 ** 或 * 占位符 + - "fun.asgc.neutrino.proxy.server.dal.entity" + mappers: #支持包名 或 类名(大写开头 或 *)或 xml(.xml结尾)//支持 ** 或 * 占位符 + - "classpath:mapper/*.xml" + - "fun.asgc.neutrino.proxy.server.dal" + configuration: #扩展配置(要与 MybatisConfiguration 类的属性一一对应) + cacheEnabled: false + mapUnderscoreToCamelCase: true + globalConfig: #全局配置(要与 GlobalConfig 类的属性一一对应) + banner: true \ No newline at end of file diff --git a/neutrino-proxy-server/src/main/resources/mapper/ClientConnectRecordMapper.xml b/neutrino-proxy-server/src/main/resources/mapper/ClientConnectRecordMapper.xml index c6b22539..49a3e65e 100644 --- a/neutrino-proxy-server/src/main/resources/mapper/ClientConnectRecordMapper.xml +++ b/neutrino-proxy-server/src/main/resources/mapper/ClientConnectRecordMapper.xml @@ -1,3 +1,6 @@ + + diff --git a/neutrino-proxy-server/src/main/resources/mapper/JobInfoMapper.xml b/neutrino-proxy-server/src/main/resources/mapper/JobInfoMapper.xml index 10bbc771..4957d973 100644 --- a/neutrino-proxy-server/src/main/resources/mapper/JobInfoMapper.xml +++ b/neutrino-proxy-server/src/main/resources/mapper/JobInfoMapper.xml @@ -1,3 +1,6 @@ + + diff --git a/neutrino-proxy-server/src/main/resources/mapper/LicenseMapper.xml b/neutrino-proxy-server/src/main/resources/mapper/LicenseMapper.xml index 9f53a5c4..367f28cd 100644 --- a/neutrino-proxy-server/src/main/resources/mapper/LicenseMapper.xml +++ b/neutrino-proxy-server/src/main/resources/mapper/LicenseMapper.xml @@ -1,6 +1,9 @@ + + - select * from `license` diff --git a/neutrino-proxy-server/src/main/resources/mapper/PortMappingMapper.xml b/neutrino-proxy-server/src/main/resources/mapper/PortMappingMapper.xml index 664f990c..07f9ddb7 100644 --- a/neutrino-proxy-server/src/main/resources/mapper/PortMappingMapper.xml +++ b/neutrino-proxy-server/src/main/resources/mapper/PortMappingMapper.xml @@ -1,3 +1,6 @@ + + diff --git a/neutrino-proxy-server/src/main/resources/mapper/UserReportMapper.xml b/neutrino-proxy-server/src/main/resources/mapper/UserReportMapper.xml index 267d4f04..51aecf0d 100644 --- a/neutrino-proxy-server/src/main/resources/mapper/UserReportMapper.xml +++ b/neutrino-proxy-server/src/main/resources/mapper/UserReportMapper.xml @@ -1,3 +1,6 @@ + +