From 05f6fbe88b7f8da855906148f32f5552f588e1f2 Mon Sep 17 00:00:00 2001 From: Kris <2893855659@qq.com> Date: Mon, 10 Feb 2025 11:34:19 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90feat=E3=80=91=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E8=B0=83=E6=95=B4=E6=9A=82=E5=81=9C=EF=BC=8C?= =?UTF-8?q?=E8=80=83=E8=99=91=E5=90=8E=E7=BB=AD=E5=A6=82=E4=BD=95=E4=BD=BF?= =?UTF-8?q?=E7=94=A8mybatis-plus=E5=88=86=E9=A1=B5=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E4=BB=A3=E6=9B=BFpagehelper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/czsj/CzsjApplication.java | 3 +- .../account/CzsjMemberController.java | 19 +- .../controller/bigdata/BaseController.java | 10 +- czsj-admin/src/main/resources/application.yml | 6 - czsj-common/pom.xml | 12 - .../core/controller/BaseController.java | 11 +- .../common/handler/DefaultDBFieldHandler.java | 87 +++++++ .../handler/MybatisMetaObjectHandler.java | 37 --- .../interceptor/MybatisInterceptor.java | 161 ------------- .../java/com/czsj/common/utils/PageUtils.java | 23 +- czsj-core/pom.xml | 6 +- .../czsj/framework/config/MyBatisConfig.java | 132 ----------- .../framework/config/MybatisPlusConfig.java | 69 ++++++ czsj-system/pom.xml | 4 +- .../com/czsj/account/domain/CzsjMember.java | 217 ++---------------- .../czsj/account/mapper/CzsjMemberMapper.java | 4 +- .../account/service/ICzsjMemberService.java | 7 +- .../service/impl/CzsjMemberServiceImpl.java | 12 +- .../bigdata/config/MybatisPlusConfig.java | 45 ---- pom.xml | 9 +- 20 files changed, 234 insertions(+), 640 deletions(-) create mode 100644 czsj-common/src/main/java/com/czsj/common/handler/DefaultDBFieldHandler.java delete mode 100644 czsj-common/src/main/java/com/czsj/common/handler/MybatisMetaObjectHandler.java delete mode 100644 czsj-common/src/main/java/com/czsj/common/interceptor/MybatisInterceptor.java delete mode 100644 czsj-framework/src/main/java/com/czsj/framework/config/MyBatisConfig.java create mode 100644 czsj-framework/src/main/java/com/czsj/framework/config/MybatisPlusConfig.java delete mode 100644 czsj-system/src/main/java/com/czsj/bigdata/config/MybatisPlusConfig.java diff --git a/czsj-admin/src/main/java/com/czsj/CzsjApplication.java b/czsj-admin/src/main/java/com/czsj/CzsjApplication.java index 5d52e59..ee9c4ce 100644 --- a/czsj-admin/src/main/java/com/czsj/CzsjApplication.java +++ b/czsj-admin/src/main/java/com/czsj/CzsjApplication.java @@ -1,6 +1,5 @@ package com.czsj; -import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration; import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; @@ -15,7 +14,7 @@ import org.springframework.scheduling.annotation.EnableAsync; * @author czsj */ @Slf4j -@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, PageHelperAutoConfiguration.class}, scanBasePackages = {"com.czsj","cn.hutool"}) +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}, scanBasePackages = {"com.czsj","cn.hutool"}) @MapperScan(basePackages = {"com.czsj.*.mapper"}) @EnableAsync(proxyTargetClass = true) @EnableAspectJAutoProxy(exposeProxy = true) diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/account/CzsjMemberController.java b/czsj-admin/src/main/java/com/czsj/web/controller/account/CzsjMemberController.java index a98665b..fc5fba6 100644 --- a/czsj-admin/src/main/java/com/czsj/web/controller/account/CzsjMemberController.java +++ b/czsj-admin/src/main/java/com/czsj/web/controller/account/CzsjMemberController.java @@ -2,6 +2,10 @@ package com.czsj.web.controller.account; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -23,7 +27,7 @@ import com.czsj.common.core.page.TableDataInfo; /** * 会员信息Controller - * + * * @author czsj * @date 2024-12-01 */ @@ -41,9 +45,9 @@ public class CzsjMemberController extends BaseController @GetMapping("/list") public TableDataInfo list(CzsjMember czsjMember) { - startPage(); - List list = czsjMemberService.selectCzsjMemberList(czsjMember); - return getDataTable(list); + Page page = startPage(); + IPage paged = czsjMemberService.page(page, new QueryWrapper<>(czsjMember)); + return getDataTable(paged.getRecords()); } /** @@ -54,7 +58,8 @@ public class CzsjMemberController extends BaseController @PostMapping("/export") public void export(HttpServletResponse response, CzsjMember czsjMember) { - List list = czsjMemberService.selectCzsjMemberList(czsjMember); + Page page = startPage(); + List list = czsjMemberService.page(page, new QueryWrapper<>(czsjMember)).getRecords(); ExcelUtil util = new ExcelUtil(CzsjMember.class); util.exportExcel(response, list, "会员信息数据"); } @@ -96,9 +101,9 @@ public class CzsjMemberController extends BaseController */ @PreAuthorize("@ss.hasPermi('account:member:remove')") @Log(title = "会员信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{uids}") + @DeleteMapping("/{uids}") public AjaxResult remove(@PathVariable Long[] uids) { return toAjax(czsjMemberService.deleteCzsjMemberByUids(uids)); } -} +} \ No newline at end of file diff --git a/czsj-admin/src/main/java/com/czsj/web/controller/bigdata/BaseController.java b/czsj-admin/src/main/java/com/czsj/web/controller/bigdata/BaseController.java index 1e352d7..f91cfa1 100644 --- a/czsj-admin/src/main/java/com/czsj/web/controller/bigdata/BaseController.java +++ b/czsj-admin/src/main/java/com/czsj/web/controller/bigdata/BaseController.java @@ -1,8 +1,7 @@ package com.czsj.web.controller.bigdata; import com.baomidou.mybatisplus.extension.api.ApiController; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.czsj.common.constant.HttpStatus; import com.czsj.common.core.domain.AjaxResult; import com.czsj.common.core.domain.model.LoginUser; @@ -52,9 +51,9 @@ public class BaseController extends ApiController /** * 设置请求分页数据 */ - protected void startPage() + protected Page startPage() { - PageUtils.startPage(); + return PageUtils.startPage(); } /** @@ -66,7 +65,6 @@ public class BaseController extends ApiController if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) { String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); - PageHelper.orderBy(orderBy); } } @@ -88,7 +86,7 @@ public class BaseController extends ApiController rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(list); - rspData.setTotal(new PageInfo(list).getTotal()); + rspData.setTotal(list.size()); return rspData; } diff --git a/czsj-admin/src/main/resources/application.yml b/czsj-admin/src/main/resources/application.yml index f963347..057bb1f 100644 --- a/czsj-admin/src/main/resources/application.yml +++ b/czsj-admin/src/main/resources/application.yml @@ -173,12 +173,6 @@ mybatis-plus: jdbc-type-for-null: 'null' type-handlers-package: com.czsj.core.handler -# PageHelper分页插件 -pagehelper: - helperDialect: mysql - supportMethodsArguments: true - params: count=countSql - # Swagger配置 swagger: # 是否开启swagger diff --git a/czsj-common/pom.xml b/czsj-common/pom.xml index 8482ab5..7b17640 100644 --- a/czsj-common/pom.xml +++ b/czsj-common/pom.xml @@ -40,12 +40,6 @@ spring-boot-starter-security - - - com.github.pagehelper - pagehelper-spring-boot-starter - - org.springframework.boot @@ -135,12 +129,6 @@ mybatisplus-spring-boot-starter 1.0.5 - - com.baomidou - mybatis-plus-extension - 3.3.1 - compile - org.projectlombok diff --git a/czsj-common/src/main/java/com/czsj/common/core/controller/BaseController.java b/czsj-common/src/main/java/com/czsj/common/core/controller/BaseController.java index f9ad3f6..915f901 100644 --- a/czsj-common/src/main/java/com/czsj/common/core/controller/BaseController.java +++ b/czsj-common/src/main/java/com/czsj/common/core/controller/BaseController.java @@ -3,12 +3,12 @@ package com.czsj.common.core.controller; import java.beans.PropertyEditorSupport; import java.util.Date; import java.util.List; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; import com.czsj.common.constant.HttpStatus; import com.czsj.common.core.domain.AjaxResult; import com.czsj.common.core.domain.model.LoginUser; @@ -50,9 +50,9 @@ public class BaseController /** * 设置请求分页数据 */ - protected void startPage() + protected Page startPage() { - PageUtils.startPage(); + return PageUtils.startPage(); } /** @@ -64,7 +64,6 @@ public class BaseController if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) { String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); - PageHelper.orderBy(orderBy); } } @@ -86,7 +85,7 @@ public class BaseController rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(list); - rspData.setTotal(new PageInfo(list).getTotal()); + rspData.setTotal(list.size()); return rspData; } diff --git a/czsj-common/src/main/java/com/czsj/common/handler/DefaultDBFieldHandler.java b/czsj-common/src/main/java/com/czsj/common/handler/DefaultDBFieldHandler.java new file mode 100644 index 0000000..ddb7ab1 --- /dev/null +++ b/czsj-common/src/main/java/com/czsj/common/handler/DefaultDBFieldHandler.java @@ -0,0 +1,87 @@ +package com.czsj.common.handler; + + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.czsj.common.core.domain.BaseEntity; +import com.czsj.common.core.domain.model.LoginUser; +import com.czsj.common.utils.SecurityUtils; +import org.apache.ibatis.reflection.MetaObject; + +import java.time.LocalDateTime; +import java.util.Date; +import java.util.Objects; + +/** + * 通用参数填充实现类 + * + * 如果没有显式的对通用参数进行赋值,这里会对通用参数进行填充、赋值 + * + * @author hexiaowu + */ +public class DefaultDBFieldHandler implements MetaObjectHandler { + + @Override + public void insertFill(MetaObject metaObject) { + if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity) { + BaseEntity BaseEntity = (BaseEntity) metaObject.getOriginalObject(); + // 创建时间为空,则以当前时间为插入时间 + if (Objects.isNull(BaseEntity.getCreateTime())) { + BaseEntity.setCreateTime(new Date()); + } + // 更新时间为空,则以当前时间为更新时间 + if (Objects.isNull(BaseEntity.getUpdateTime())) { + BaseEntity.setUpdateTime(new Date()); + } + + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long userId = loginUser.getUserId(); + // 当前登录用户不为空,创建人为空,则当前登录用户为创建人 + if (Objects.nonNull(userId) && Objects.isNull(BaseEntity.getCreateBy())) { + BaseEntity.setCreateBy(userId.toString()); + } + // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 + if (Objects.nonNull(userId) && Objects.isNull(BaseEntity.getUpdateBy())) { + BaseEntity.setUpdateBy(userId.toString()); + } + } + + // 创建时间为空,则以当前时间为创建时间 + Object creatTime = getFieldValByName("creatTime", metaObject); + if (Objects.isNull(creatTime)) { + setFieldValByName("creatTime", new Date(), metaObject); + } + // 更新时间为空,则以当前时间为更新时间 + Object modifyTime = getFieldValByName("updateTime", metaObject); + if (Objects.isNull(modifyTime)) { + setFieldValByName("updateTime", LocalDateTime.now(), metaObject); + } + Object modifier = getFieldValByName("updateUserId", metaObject); + Object creater = getFieldValByName("createUserId", metaObject); + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long userId = loginUser.getUserId(); + if (Objects.nonNull(userId) && Objects.isNull(modifier)) { + setFieldValByName("updateUserId", userId.toString(), metaObject); + } + if (Objects.nonNull(userId) && Objects.isNull(creater)) { + setFieldValByName("createUserId", userId.toString(), metaObject); + } + + } + + @Override + public void updateFill(MetaObject metaObject) { + // 更新时间为空,则以当前时间为更新时间 + Object modifyTime = getFieldValByName("updateTime", metaObject); + if (Objects.isNull(modifyTime)) { + setFieldValByName("updateTime",new Date(), metaObject); + } + + // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 + Object modifier = getFieldValByName("updateUserId", metaObject); + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long userId = loginUser.getUserId(); + if (Objects.nonNull(userId) && Objects.isNull(modifier)) { + setFieldValByName("updateUserId", userId.toString(), metaObject); + } + } +} diff --git a/czsj-common/src/main/java/com/czsj/common/handler/MybatisMetaObjectHandler.java b/czsj-common/src/main/java/com/czsj/common/handler/MybatisMetaObjectHandler.java deleted file mode 100644 index da1719f..0000000 --- a/czsj-common/src/main/java/com/czsj/common/handler/MybatisMetaObjectHandler.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.czsj.common.handler; - -import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; -import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.reflection.MetaObject; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.stereotype.Component; - -import java.util.Date; - -import static com.czsj.common.utils.SecurityUtils.getUsername; - -/** - * 通用的字段填充,如createBy createDate这些字段的自动填充 - * - * @author huzekang - */ -@Component -@Slf4j -public class MybatisMetaObjectHandler implements MetaObjectHandler { - - @Override - public void insertFill(MetaObject metaObject) { - setFieldValByName("createTime", new Date(), metaObject); - setFieldValByName("createBy", getUsername(), metaObject); - } - - @Override - public void updateFill(MetaObject metaObject) { - setFieldValByName("updateTime", new Date(), metaObject); - setFieldValByName("updateBy", getUsername(), metaObject); - } - - private String getCurrentUser() { - return SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString(); - } -} \ No newline at end of file diff --git a/czsj-common/src/main/java/com/czsj/common/interceptor/MybatisInterceptor.java b/czsj-common/src/main/java/com/czsj/common/interceptor/MybatisInterceptor.java deleted file mode 100644 index 95ca9d3..0000000 --- a/czsj-common/src/main/java/com/czsj/common/interceptor/MybatisInterceptor.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.czsj.common.interceptor; - - - -import com.czsj.common.core.domain.model.LoginUser; -import com.czsj.common.utils.SecurityUtils; -import com.czsj.common.utils.oConvertUtils; -import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.executor.Executor; -import org.apache.ibatis.mapping.MappedStatement; -import org.apache.ibatis.mapping.SqlCommandType; -import org.apache.ibatis.plugin.*; - - -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.stereotype.Component; - -import java.lang.reflect.Field; -import java.util.Date; -import java.util.Properties; - -/** - * mybatis拦截器,自动注入创建人、创建时间、修改人、修改时间 - * @Author scott - * @Date 2019-01-19 - * - */ -@Slf4j -@Component -@Intercepts({ @Signature(type = Executor.class, method = "update", args = { MappedStatement.class, Object.class }) }) -public class MybatisInterceptor implements Interceptor { - - @Override - public Object intercept(Invocation invocation) throws Throwable { - MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0]; - String sqlId = mappedStatement.getId(); - log.debug("------sqlId------" + sqlId); - SqlCommandType sqlCommandType = mappedStatement.getSqlCommandType(); - Object parameter = invocation.getArgs()[1]; - log.debug("------sqlCommandType------" + sqlCommandType); - - if (parameter == null) { - return invocation.proceed(); - } - if (SqlCommandType.INSERT == sqlCommandType && SecurityContextHolder.getContext().getAuthentication() != null) { - LoginUser sysUser = SecurityUtils.getLoginUser(); - Field[] fields = oConvertUtils.getAllFields(parameter); - for (Field field : fields) { - try { - if ("createUserId".equals(field.getName())) { - field.setAccessible(true); - Object localCreateBy = field.get(parameter); - field.setAccessible(false); - if (localCreateBy == null || "".equals(localCreateBy)) { - if (sysUser != null) { - // 登录人账号 - field.setAccessible(true); - field.set(parameter, sysUser.getUserId()); - field.setAccessible(false); - } - } - } - // 注入创建时间 - if ("createTime".equals(field.getName())) { - field.setAccessible(true); - Object localCreateDate = field.get(parameter); - field.setAccessible(false); - if (localCreateDate == null || "".equals(localCreateDate)) { - field.setAccessible(true); - field.set(parameter, new Date()); - field.setAccessible(false); - } - } - if ("updateUserId".equals(field.getName())) { - field.setAccessible(true); - Object localCreateBy = field.get(parameter); - field.setAccessible(false); - if (localCreateBy == null || "".equals(localCreateBy)) { - if (sysUser != null) { - // 登录人账号 - field.setAccessible(true); - field.set(parameter, sysUser.getUserId()); - field.setAccessible(false); - } - } - } - // 注入更新时间 - if ("updateTime".equals(field.getName())) { - field.setAccessible(true); - Object localCreateDate = field.get(parameter); - field.setAccessible(false); - if (localCreateDate == null || "".equals(localCreateDate)) { - field.setAccessible(true); - field.set(parameter, new Date()); - field.setAccessible(false); - } - } - } catch (Exception e) { - } - } - } - if (SqlCommandType.UPDATE == sqlCommandType && SecurityContextHolder.getContext().getAuthentication() != null) { - LoginUser sysUser = this.getLoginUser(); - Field[] fields = oConvertUtils.getAllFields(parameter); - for (Field field : fields) { - try { - if ("updateUserId".equals(field.getName())) { - field.setAccessible(true); - Object localCreateBy = field.get(parameter); - field.setAccessible(false); - if (localCreateBy == null || "".equals(localCreateBy)) { - if (sysUser != null) { - // 登录人账号 - field.setAccessible(true); - field.set(parameter, sysUser.getUserId()); - field.setAccessible(false); - } - } - } - // 注入更新时间 - if ("updateTime".equals(field.getName())) { - field.setAccessible(true); - Object localCreateDate = field.get(parameter); - field.setAccessible(false); - if (localCreateDate == null || "".equals(localCreateDate)) { - field.setAccessible(true); - field.set(parameter, new Date()); - field.setAccessible(false); - } - } - } catch (Exception e) { - } - } - } - return invocation.proceed(); - } - - @Override - public Object plugin(Object target) { - return Plugin.wrap(target, this); - } - - @Override - public void setProperties(Properties properties) { - } - - /** - * 获取登录用户 - * @return - */ - private LoginUser getLoginUser() { - LoginUser sysUser ; - try { - sysUser = SecurityUtils.getLoginUser(); - } catch (Exception e) { - e.printStackTrace(); - sysUser = null; - } - return sysUser; - } -} diff --git a/czsj-common/src/main/java/com/czsj/common/utils/PageUtils.java b/czsj-common/src/main/java/com/czsj/common/utils/PageUtils.java index 5bc5204..9f2dbe9 100644 --- a/czsj-common/src/main/java/com/czsj/common/utils/PageUtils.java +++ b/czsj-common/src/main/java/com/czsj/common/utils/PageUtils.java @@ -1,6 +1,8 @@ package com.czsj.common.utils; -import com.github.pagehelper.PageHelper; + +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.czsj.common.core.page.PageDomain; import com.czsj.common.core.page.TableSupport; import com.czsj.common.utils.sql.SqlUtil; @@ -10,19 +12,23 @@ import com.czsj.common.utils.sql.SqlUtil; * * @author czsj */ -public class PageUtils extends PageHelper +public class PageUtils { /** * 设置请求分页数据 */ - public static void startPage() + public static Page startPage() { PageDomain pageDomain = TableSupport.buildPageRequest(); - Integer pageNum = pageDomain.getPageNum(); - Integer pageSize = pageDomain.getPageSize(); - String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); - Boolean reasonable = pageDomain.getReasonable(); - PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable); + Page page = new Page<>(); + page.setCurrent(pageDomain.getPageNum()); + page.setSize(pageDomain.getPageSize()); + if ("asc".equals(pageDomain.getIsAsc())){ + page.addOrder(OrderItem.asc(pageDomain.getOrderByColumn())); + }else { + page.addOrder(OrderItem.desc(pageDomain.getOrderByColumn())); + } + return page; } /** @@ -30,6 +36,5 @@ public class PageUtils extends PageHelper */ public static void clearPage() { - PageHelper.clearPage(); } } diff --git a/czsj-core/pom.xml b/czsj-core/pom.xml index 6bcd84f..1dce368 100644 --- a/czsj-core/pom.xml +++ b/czsj-core/pom.xml @@ -96,13 +96,13 @@ com.baomidou mybatis-plus-annotation - 3.3.1 + 3.4.1 compile com.baomidou mybatis-plus-core - 3.3.1 + 3.4.1 compile @@ -112,7 +112,7 @@ com.baomidou mybatis-plus-extension - 3.3.1 + 3.4.1 compile diff --git a/czsj-framework/src/main/java/com/czsj/framework/config/MyBatisConfig.java b/czsj-framework/src/main/java/com/czsj/framework/config/MyBatisConfig.java deleted file mode 100644 index 7ed07f7..0000000 --- a/czsj-framework/src/main/java/com/czsj/framework/config/MyBatisConfig.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.czsj.framework.config; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import javax.sql.DataSource; -import org.apache.ibatis.io.VFS; -import org.apache.ibatis.session.SqlSessionFactory; -import org.mybatis.spring.SqlSessionFactoryBean; -import org.mybatis.spring.boot.autoconfigure.SpringBootVFS; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.env.Environment; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.Resource; -import org.springframework.core.io.support.PathMatchingResourcePatternResolver; -import org.springframework.core.io.support.ResourcePatternResolver; -import org.springframework.core.type.classreading.CachingMetadataReaderFactory; -import org.springframework.core.type.classreading.MetadataReader; -import org.springframework.core.type.classreading.MetadataReaderFactory; -import org.springframework.util.ClassUtils; -import com.czsj.common.utils.StringUtils; - -/** - * Mybatis支持*匹配扫描包 - * - * @author czsj - */ -@Configuration -public class MyBatisConfig -{ -// @Autowired -// private Environment env; -// -// static final String DEFAULT_RESOURCE_PATTERN = "**/*.class"; -// -// public static String setTypeAliasesPackage(String typeAliasesPackage) -// { -// ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); -// MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver); -// List allResult = new ArrayList(); -// try -// { -// for (String aliasesPackage : typeAliasesPackage.split(",")) -// { -// List result = new ArrayList(); -// aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX -// + ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN; -// Resource[] resources = resolver.getResources(aliasesPackage); -// if (resources != null && resources.length > 0) -// { -// MetadataReader metadataReader = null; -// for (Resource resource : resources) -// { -// if (resource.isReadable()) -// { -// metadataReader = metadataReaderFactory.getMetadataReader(resource); -// try -// { -// result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName()); -// } -// catch (ClassNotFoundException e) -// { -// e.printStackTrace(); -// } -// } -// } -// } -// if (result.size() > 0) -// { -// HashSet hashResult = new HashSet(result); -// allResult.addAll(hashResult); -// } -// } -// if (allResult.size() > 0) -// { -// typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0])); -// } -// else -// { -// throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包"); -// } -// } -// catch (IOException e) -// { -// e.printStackTrace(); -// } -// return typeAliasesPackage; -// } -// -// public Resource[] resolveMapperLocations(String[] mapperLocations) -// { -// ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver(); -// List resources = new ArrayList(); -// if (mapperLocations != null) -// { -// for (String mapperLocation : mapperLocations) -// { -// try -// { -// Resource[] mappers = resourceResolver.getResources(mapperLocation); -// resources.addAll(Arrays.asList(mappers)); -// } -// catch (IOException e) -// { -// // ignore -// } -// } -// } -// return resources.toArray(new Resource[resources.size()]); -// } -// -// @Bean -// public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception -// { -// String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage"); -// String mapperLocations = env.getProperty("mybatis.mapperLocations"); -// String configLocation = env.getProperty("mybatis.configLocation"); -// typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage); -// VFS.addImplClass(SpringBootVFS.class); -// -// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); -// sessionFactory.setDataSource(dataSource); -// sessionFactory.setTypeAliasesPackage(typeAliasesPackage); -// sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ","))); -// sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation)); -// return sessionFactory.getObject(); -// } -} \ No newline at end of file diff --git a/czsj-framework/src/main/java/com/czsj/framework/config/MybatisPlusConfig.java b/czsj-framework/src/main/java/com/czsj/framework/config/MybatisPlusConfig.java new file mode 100644 index 0000000..6a6a94a --- /dev/null +++ b/czsj-framework/src/main/java/com/czsj/framework/config/MybatisPlusConfig.java @@ -0,0 +1,69 @@ +package com.czsj.framework.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import com.czsj.common.handler.DefaultDBFieldHandler; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * Mybatis Plus 配置 + * + * @author ruoyi + */ +@EnableTransactionManagement(proxyTargetClass = true) +@Configuration +public class MybatisPlusConfig +{ + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() + { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + // 分页插件 + interceptor.addInnerInterceptor(paginationInnerInterceptor()); + // 乐观锁插件 + interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor()); + // 阻断插件 + interceptor.addInnerInterceptor(blockAttackInnerInterceptor()); + return interceptor; + } + + /** + * 分页插件,自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html + */ + public PaginationInnerInterceptor paginationInnerInterceptor() + { + PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); + // 设置数据库类型为mysql + paginationInnerInterceptor.setDbType(DbType.MYSQL); + // 设置最大单页限制数量,默认 500 条,-1 不受限制 + paginationInnerInterceptor.setMaxLimit(-1L); + return paginationInnerInterceptor; + } + + /** + * 乐观锁插件 https://baomidou.com/guide/interceptor-optimistic-locker.html + */ + public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() + { + return new OptimisticLockerInnerInterceptor(); + } + + /** + * 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html + */ + public BlockAttackInnerInterceptor blockAttackInnerInterceptor() + { + return new BlockAttackInnerInterceptor(); + } + + @Bean + public MetaObjectHandler defaultMetaObjectHandler() { + return new DefaultDBFieldHandler(); // 自动填充参数类 + } +} \ No newline at end of file diff --git a/czsj-system/pom.xml b/czsj-system/pom.xml index 903922c..0ee36ae 100644 --- a/czsj-system/pom.xml +++ b/czsj-system/pom.xml @@ -64,7 +64,7 @@ com.baomidou mybatis-plus-boot-starter - ${mybatisplus.version} + 3.4.1 com.baomidou @@ -103,7 +103,7 @@ com.baomidou mybatis-plus-extension - 3.3.1 + 3.4.1 org.apache.hadoop diff --git a/czsj-system/src/main/java/com/czsj/account/domain/CzsjMember.java b/czsj-system/src/main/java/com/czsj/account/domain/CzsjMember.java index 0dcafcc..0836d6b 100644 --- a/czsj-system/src/main/java/com/czsj/account/domain/CzsjMember.java +++ b/czsj-system/src/main/java/com/czsj/account/domain/CzsjMember.java @@ -1,7 +1,12 @@ package com.czsj.account.domain; import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.czsj.common.annotation.Excel; @@ -13,7 +18,11 @@ import com.czsj.common.core.domain.BaseEntity; * @author czsj * @date 2024-12-01 */ -public class CzsjMember extends BaseEntity +@AllArgsConstructor +@NoArgsConstructor +@Data +@TableName("czsj_member") +public class CzsjMember { private static final long serialVersionUID = 1L; @@ -88,208 +97,18 @@ public class CzsjMember extends BaseEntity /** 创建人ID */ @Excel(name = "创建人ID") - private Long createUserId; + private Long createBy; /** 修改人ID */ @Excel(name = "修改人ID") - private Long updateUserId; + private Long updateBy; - public void setUid(Long uid) - { - this.uid = uid; - } + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; - public Long getUid() - { - return uid; - } - public void setName(String name) - { - this.name = name; - } + /** 更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; - public String getName() - { - return name; - } - public void setBirthday(String birthday) - { - this.birthday = birthday; - } - - public String getBirthday() - { - return birthday; - } - public void setSex(Integer sex) - { - this.sex = sex; - } - - public Integer getSex() - { - return sex; - } - public void setEmail(String email) - { - this.email = email; - } - - public String getEmail() - { - return email; - } - public void setAddress(String address) - { - this.address = address; - } - - public String getAddress() - { - return address; - } - public void setPhone(String phone) - { - this.phone = phone; - } - - public String getPhone() - { - return phone; - } - public void setMemberId(Long memberId) - { - this.memberId = memberId; - } - - public Long getMemberId() - { - return memberId; - } - public void setMemberLevel(Long memberLevel) - { - this.memberLevel = memberLevel; - } - - public Long getMemberLevel() - { - return memberLevel; - } - public void setCity(String city) - { - this.city = city; - } - - public String getCity() - { - return city; - } - public void setArea(String area) - { - this.area = area; - } - - public String getArea() - { - return area; - } - public void setSource(String source) - { - this.source = source; - } - - public String getSource() - { - return source; - } - public void setStatus(Integer status) - { - this.status = status; - } - - public Integer getStatus() - { - return status; - } - public void setLogoutTime(Date logoutTime) - { - this.logoutTime = logoutTime; - } - - public Date getLogoutTime() - { - return logoutTime; - } - public void setFreezeTime(Date freezeTime) - { - this.freezeTime = freezeTime; - } - - public Date getFreezeTime() - { - return freezeTime; - } - public void setCardTime(Date cardTime) - { - this.cardTime = cardTime; - } - - public Date getCardTime() - { - return cardTime; - } - public void setDelFlag(Integer delFlag) - { - this.delFlag = delFlag; - } - - public Integer getDelFlag() - { - return delFlag; - } - public void setCreateUserId(Long createUserId) - { - this.createUserId = createUserId; - } - - public Long getCreateUserId() - { - return createUserId; - } - public void setUpdateUserId(Long updateUserId) - { - this.updateUserId = updateUserId; - } - - public Long getUpdateUserId() - { - return updateUserId; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("uid", getUid()) - .append("name", getName()) - .append("birthday", getBirthday()) - .append("sex", getSex()) - .append("email", getEmail()) - .append("address", getAddress()) - .append("phone", getPhone()) - .append("memberId", getMemberId()) - .append("memberLevel", getMemberLevel()) - .append("city", getCity()) - .append("area", getArea()) - .append("source", getSource()) - .append("status", getStatus()) - .append("createTime", getCreateTime()) - .append("updateTime", getUpdateTime()) - .append("logoutTime", getLogoutTime()) - .append("freezeTime", getFreezeTime()) - .append("cardTime", getCardTime()) - .append("delFlag", getDelFlag()) - .append("createUserId", getCreateUserId()) - .append("updateUserId", getUpdateUserId()) - .toString(); - } } diff --git a/czsj-system/src/main/java/com/czsj/account/mapper/CzsjMemberMapper.java b/czsj-system/src/main/java/com/czsj/account/mapper/CzsjMemberMapper.java index 6fa791a..ea1e404 100644 --- a/czsj-system/src/main/java/com/czsj/account/mapper/CzsjMemberMapper.java +++ b/czsj-system/src/main/java/com/czsj/account/mapper/CzsjMemberMapper.java @@ -1,6 +1,8 @@ package com.czsj.account.mapper; import java.util.List; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.czsj.account.domain.CzsjMember; /** @@ -9,7 +11,7 @@ import com.czsj.account.domain.CzsjMember; * @author czsj * @date 2024-12-01 */ -public interface CzsjMemberMapper +public interface CzsjMemberMapper extends BaseMapper { /** * 查询会员信息 diff --git a/czsj-system/src/main/java/com/czsj/account/service/ICzsjMemberService.java b/czsj-system/src/main/java/com/czsj/account/service/ICzsjMemberService.java index 8512d3c..883de2a 100644 --- a/czsj-system/src/main/java/com/czsj/account/service/ICzsjMemberService.java +++ b/czsj-system/src/main/java/com/czsj/account/service/ICzsjMemberService.java @@ -1,6 +1,9 @@ package com.czsj.account.service; import java.util.List; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; import com.czsj.account.domain.CzsjMember; /** @@ -9,7 +12,7 @@ import com.czsj.account.domain.CzsjMember; * @author czsj * @date 2024-12-01 */ -public interface ICzsjMemberService +public interface ICzsjMemberService extends IService { /** * 查询会员信息 @@ -25,7 +28,7 @@ public interface ICzsjMemberService * @param czsjMember 会员信息 * @return 会员信息集合 */ - public List selectCzsjMemberList(CzsjMember czsjMember); + public List selectCzsjMemberList(Page page, CzsjMember czsjMember); /** * 新增会员信息 diff --git a/czsj-system/src/main/java/com/czsj/account/service/impl/CzsjMemberServiceImpl.java b/czsj-system/src/main/java/com/czsj/account/service/impl/CzsjMemberServiceImpl.java index 1c76fad..0216b83 100644 --- a/czsj-system/src/main/java/com/czsj/account/service/impl/CzsjMemberServiceImpl.java +++ b/czsj-system/src/main/java/com/czsj/account/service/impl/CzsjMemberServiceImpl.java @@ -1,6 +1,10 @@ package com.czsj.account.service.impl; import java.util.List; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.czsj.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -15,7 +19,7 @@ import com.czsj.account.service.ICzsjMemberService; * @date 2024-12-01 */ @Service -public class CzsjMemberServiceImpl implements ICzsjMemberService +public class CzsjMemberServiceImpl extends ServiceImpl implements ICzsjMemberService { @Autowired private CzsjMemberMapper czsjMemberMapper; @@ -32,6 +36,8 @@ public class CzsjMemberServiceImpl implements ICzsjMemberService return czsjMemberMapper.selectCzsjMemberByUid(uid); } + + /** * 查询会员信息列表 * @@ -39,8 +45,10 @@ public class CzsjMemberServiceImpl implements ICzsjMemberService * @return 会员信息 */ @Override - public List selectCzsjMemberList(CzsjMember czsjMember) + public List selectCzsjMemberList(Page page,CzsjMember czsjMember) { + + return czsjMemberMapper.selectCzsjMemberList(czsjMember); } diff --git a/czsj-system/src/main/java/com/czsj/bigdata/config/MybatisPlusConfig.java b/czsj-system/src/main/java/com/czsj/bigdata/config/MybatisPlusConfig.java deleted file mode 100644 index f519322..0000000 --- a/czsj-system/src/main/java/com/czsj/bigdata/config/MybatisPlusConfig.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.czsj.bigdata.config; - -import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; -import com.baomidou.mybatisplus.core.injector.ISqlInjector; -import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -/** - * - * @Author: czsj - * @Date: 2022/9/16 11:14 - * @Description: - **/ -@EnableTransactionManagement -@Configuration -@MapperScan("com.czsj.bigdata.mapper") -public class MybatisPlusConfig { - - /** - * 分页插件 - */ - @Bean - public PaginationInterceptor paginationInterceptor() { - - PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); - return paginationInterceptor.setOverflow(true); - } - - /** - * MyBatisPlus逻辑删除 ,需要在 yml 中配置开启 - * 3.0.7.1版本的LogicSqlInjector里面什么都没做只是 extends DefaultSqlInjector - * 以后版本直接去的了LogicSqlInjector - * - * @return - */ - @Bean - public ISqlInjector sqlInjector() { - return new DefaultSqlInjector(); - } - - -} diff --git a/pom.xml b/pom.xml index 213d430..5a65331 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,6 @@ 1.21 3.0.0 2.3.3 - 1.4.7 2.0.53 6.1.2 2.13.0 @@ -48,7 +47,6 @@ 1.2.8 2.2.2 - 1.4.1 1.4 3.2.2 @@ -175,12 +173,7 @@ ${bitwalker.version} - - - com.github.pagehelper - pagehelper-spring-boot-starter - ${pagehelper.boot.version} - +