Forráskód Böngészése

分页相关测试
1. 正常不加分页参数时不需要使用@param注解,但是加上分页参数后需要指明参数
2. mapper.xml文件中需要使用entity.param的方式获取实体参数

alibct 2 éve
szülő
commit
2d975073f8

+ 23 - 0
src/main/java/com/pavis/ctr/audit/framework/config/MybatisPlusConfig.java

@@ -0,0 +1,23 @@
+package com.pavis.ctr.audit.framework.config;
+
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author semi
+ * @create 2023-04-07 09:56
+ */
+@Configuration
+@MapperScan("com.pavis.ctr.audit.project.mapper")
+public class MybatisPlusConfig {
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
+        return interceptor;
+    }
+
+}

+ 2 - 0
src/main/java/com/pavis/ctr/audit/project/controller/SysLoginController.java

@@ -64,4 +64,6 @@ public class SysLoginController {
         ajax.put("roles", roles);
         return ajax;
     }
+
+
 }

+ 13 - 1
src/main/java/com/pavis/ctr/audit/project/mapper/SysUserMapper.java

@@ -1,9 +1,12 @@
 package com.pavis.ctr.audit.project.mapper;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.pavis.ctr.audit.project.domain.SysUser;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 用户表 数据层
  *
@@ -11,13 +14,22 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface SysUserMapper {
 
+    /**
+     * 根据条件分页查询用户列表
+     *
+     * @param page    分页信息
+     * @param sysUser 用户信息
+     * @return 用户信息集合信息
+     */
+    List<SysUser> selectUserList(IPage<SysUser> page, @Param("user") SysUser sysUser);
+
     /**
      * 通过用户名查询用户
      *
      * @param userName 用户名
      * @return 用户对象信息
      */
-    public SysUser selectUserByUserName(String userName);
+    SysUser selectUserByUserName(String userName);
 
     /**
      * 通过用户ID查询用户

+ 10 - 0
src/main/java/com/pavis/ctr/audit/project/service/ISysUserService.java

@@ -3,6 +3,8 @@ package com.pavis.ctr.audit.project.service;
 
 import com.pavis.ctr.audit.project.domain.SysUser;
 
+import java.util.List;
+
 /**
  * 用户 业务层
  *
@@ -10,6 +12,14 @@ import com.pavis.ctr.audit.project.domain.SysUser;
  */
 public interface ISysUserService {
 
+    /**
+     * 根据条件分页查询用户列表
+     * @param current 当前页数
+     * @param user 用户信息
+     * @return 用户信息集合信息
+     */
+    public List<SysUser> selectUserList(int current, SysUser user);
+
     /**
      * 通过用户名查询用户
      *

+ 10 - 0
src/main/java/com/pavis/ctr/audit/project/service/impl/SysUserServiceImpl.java

@@ -1,12 +1,16 @@
 package com.pavis.ctr.audit.project.service.impl;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.pavis.ctr.audit.project.domain.SysUser;
 import com.pavis.ctr.audit.project.mapper.SysUserMapper;
 import com.pavis.ctr.audit.project.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 用户 业务层处理
  *
@@ -18,6 +22,12 @@ public class SysUserServiceImpl implements ISysUserService {
     @Autowired
     private SysUserMapper userMapper;
 
+    @Override
+    public List<SysUser> selectUserList(int current, SysUser user) {
+        IPage<SysUser> page = new Page<>(current, 10);
+        return userMapper.selectUserList(page, user);
+    }
+
     /**
      * 通过用户名查询用户
      *

+ 20 - 0
src/main/java/com/pavis/ctr/audit/web/domain/BaseEntity.java

@@ -1,9 +1,12 @@
 package com.pavis.ctr.audit.web.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * 实体基类
@@ -40,6 +43,12 @@ public class BaseEntity implements Serializable {
      */
     private String remark;
 
+    /**
+     * 请求参数
+     */
+    @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    private Map<String, Object> params;
+
     public String getCreateBy() {
         return createBy;
     }
@@ -79,4 +88,15 @@ public class BaseEntity implements Serializable {
     public void setRemark(String remark) {
         this.remark = remark;
     }
+
+    public Map<String, Object> getParams() {
+        if (params == null) {
+            params = new HashMap<>();
+        }
+        return params;
+    }
+
+    public void setParams(Map<String, Object> params) {
+        this.params = params;
+    }
 }

+ 3 - 5
src/main/resources/application-dev.yml

@@ -2,11 +2,9 @@ spring:
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 主库数据源
-      url: jdbc:mysql://localhost:3306/ctr?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-      username: root
-      password: password
+    url: jdbc:mysql://localhost:3306/ctr?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+    username: root
+    password: password
   # redis 配置
   redis:
     # 地址

+ 26 - 1
src/main/resources/mybatis/mapper/SysUserMapper.xml

@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.pavis.ctr.audit.project.mapper.SysUserMapper">
 
-    <resultMap type="SysUser" id="SysUserResult">
+    <resultMap id="SysUserResult" type="SysUser">
         <id property="userId" column="user_id"/>
         <result property="deptId" column="dept_id"/>
         <result property="userName" column="user_name"/>
@@ -52,6 +52,31 @@
                  left join sys_role r on r.role_id = ur.role_id
     </sql>
 
+    <select id="selectUserList" resultMap="SysUserResult">
+        select u.user_id, u.user_name, u.email, u.telephone, u.status,
+        u.login_ip, u.login_date, u.create_by, u.create_time, u.remark from sys_user u
+        <where>
+            <if test="user.userId != null and user.userId != 0">
+                AND u.user_id = #{user.userId}
+            </if>
+            <if test="user.userName != null and user.userName != ''">
+                AND u.user_name like concat('%', #{user.userName}, '%')
+            </if>
+            <if test="user.status != null and user.status != ''">
+                AND u.status = #{user.status}
+            </if>
+            <if test="user.telephone != null and user.telephone != ''">
+                AND u.telephone like concat('%', #{user.telephone}, '%')
+            </if>
+            <if test="user.params.beginTime != null and user.params.beginTime != ''"><!-- 开始时间检索 -->
+                AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{user.params.beginTime},'%y%m%d')
+            </if>
+            <if test="user.params.endTime != null and user.params.endTime != ''"><!-- 结束时间检索 -->
+                AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{user.params.endTime},'%y%m%d')
+            </if>
+        </where>
+    </select>
+
     <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
         <include refid="selectUserVo"/>
         where u.user_name = #{userName} and u.status = '1'

+ 25 - 3
src/test/java/com/pavis/ctr/audit/CtrAuditApplicationTests.java

@@ -1,13 +1,35 @@
 package com.pavis.ctr.audit;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.pavis.ctr.audit.project.domain.SysUser;
+import com.pavis.ctr.audit.project.mapper.SysUserMapper;
 import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.util.List;
+
 @SpringBootTest
 class CtrAuditApplicationTests {
 
-	@Test
-	void initUser() {
-	}
+    @Autowired
+    private SysUserMapper sysUserMapper;
+
+    @Test
+    void testPage() {
+        IPage<SysUser> page = new Page<>(1, 2);
+        SysUser sysUser = new SysUser();
+        List<SysUser> sysUsers = sysUserMapper.selectUserList(page, sysUser);
+        for (SysUser user : sysUsers) {
+            System.out.println("用户id:" + user.getUserId());
+            System.out.println("用户名:" + user.getUserName());
+        }
+        System.out.println("当前页码值:" + page.getCurrent());
+        System.out.println("每页显示数:" + page.getSize());
+        System.out.println("一共多少页" + page.getPages());
+        System.out.println("一共有多少条数据" + page.getTotal());
+        System.out.println("数据" + page.getRecords());
+    }
 
 }