From b96ba80c30a83dcfc87606e304bfe613aeaa5482 Mon Sep 17 00:00:00 2001 From: zichun Date: Wed, 13 May 2026 17:54:38 +0800 Subject: [PATCH] feat(usr): USR 模块 entity + mapper (User/UserPermission/Employee/Permission) REQ-USR-001 --- backend/src/main/java/com/xly/test4/module/usr/entity/Employee.java | 33 +++++++++++++++++++++++++++++++++ backend/src/main/java/com/xly/test4/module/usr/entity/Permission.java | 33 +++++++++++++++++++++++++++++++++ backend/src/main/java/com/xly/test4/module/usr/entity/User.java | 41 +++++++++++++++++++++++++++++++++++++++++ backend/src/main/java/com/xly/test4/module/usr/entity/UserPermission.java | 31 +++++++++++++++++++++++++++++++ backend/src/main/java/com/xly/test4/module/usr/mapper/EmployeeMapper.java | 7 +++++++ backend/src/main/java/com/xly/test4/module/usr/mapper/PermissionMapper.java | 7 +++++++ backend/src/main/java/com/xly/test4/module/usr/mapper/UserMapper.java | 7 +++++++ backend/src/main/java/com/xly/test4/module/usr/mapper/UserPermissionMapper.java | 7 +++++++ backend/src/test/java/com/xly/test4/module/usr/mapper/UserMapperIT.java | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 228 insertions(+), 0 deletions(-) create mode 100644 backend/src/main/java/com/xly/test4/module/usr/entity/Employee.java create mode 100644 backend/src/main/java/com/xly/test4/module/usr/entity/Permission.java create mode 100644 backend/src/main/java/com/xly/test4/module/usr/entity/User.java create mode 100644 backend/src/main/java/com/xly/test4/module/usr/entity/UserPermission.java create mode 100644 backend/src/main/java/com/xly/test4/module/usr/mapper/EmployeeMapper.java create mode 100644 backend/src/main/java/com/xly/test4/module/usr/mapper/PermissionMapper.java create mode 100644 backend/src/main/java/com/xly/test4/module/usr/mapper/UserMapper.java create mode 100644 backend/src/main/java/com/xly/test4/module/usr/mapper/UserPermissionMapper.java create mode 100644 backend/src/test/java/com/xly/test4/module/usr/mapper/UserMapperIT.java diff --git a/backend/src/main/java/com/xly/test4/module/usr/entity/Employee.java b/backend/src/main/java/com/xly/test4/module/usr/entity/Employee.java new file mode 100644 index 0000000..b97ad45 --- /dev/null +++ b/backend/src/main/java/com/xly/test4/module/usr/entity/Employee.java @@ -0,0 +1,33 @@ +package com.xly.test4.module.usr.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("tEmployee") +public class Employee { + + @TableId(value = "iIncrement", type = IdType.AUTO) + private Integer iIncrement; + + private String sId; + private String sBrandsId; + private String sSubsidiaryId; + private LocalDateTime tCreateDate; + + private String sEmployeeCode; + private String sEmployeeName; + private String sDepartment; + private Integer iIsDisabled; + private LocalDateTime tUpdateDate; +} diff --git a/backend/src/main/java/com/xly/test4/module/usr/entity/Permission.java b/backend/src/main/java/com/xly/test4/module/usr/entity/Permission.java new file mode 100644 index 0000000..86613d7 --- /dev/null +++ b/backend/src/main/java/com/xly/test4/module/usr/entity/Permission.java @@ -0,0 +1,33 @@ +package com.xly.test4.module.usr.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("tPermission") +public class Permission { + + @TableId(value = "iIncrement", type = IdType.AUTO) + private Integer iIncrement; + + private String sId; + private String sBrandsId; + private String sSubsidiaryId; + private LocalDateTime tCreateDate; + + private String sCategory; + private String sCategoryName; + private String sDescription; + private Integer iIsDisabled; + private LocalDateTime tUpdateDate; +} diff --git a/backend/src/main/java/com/xly/test4/module/usr/entity/User.java b/backend/src/main/java/com/xly/test4/module/usr/entity/User.java new file mode 100644 index 0000000..2302131 --- /dev/null +++ b/backend/src/main/java/com/xly/test4/module/usr/entity/User.java @@ -0,0 +1,41 @@ +package com.xly.test4.module.usr.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("tUser") +public class User { + + @TableId(value = "iIncrement", type = IdType.AUTO) + private Integer iIncrement; + + private String sId; + private String sBrandsId; + private String sSubsidiaryId; + private LocalDateTime tCreateDate; + + private String sUserCode; + private String sUserName; + private Integer iEmployeeId; + private String sUserType; + private String sLanguage; + private Integer iCanEditDoc; + private String sPasswordHash; + private Integer iIsDisabled; + private LocalDateTime tLastLoginDate; + private Integer iLoginFailCount; + private LocalDateTime tLockedUntil; + private String sCreatedBy; + private LocalDateTime tUpdateDate; +} diff --git a/backend/src/main/java/com/xly/test4/module/usr/entity/UserPermission.java b/backend/src/main/java/com/xly/test4/module/usr/entity/UserPermission.java new file mode 100644 index 0000000..d230d71 --- /dev/null +++ b/backend/src/main/java/com/xly/test4/module/usr/entity/UserPermission.java @@ -0,0 +1,31 @@ +package com.xly.test4.module.usr.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("tUserPermission") +public class UserPermission { + + @TableId(value = "iIncrement", type = IdType.AUTO) + private Integer iIncrement; + + private String sId; + private String sBrandsId; + private String sSubsidiaryId; + private LocalDateTime tCreateDate; + + private Integer iUserId; + private Integer iPermissionId; + private String sGrantedBy; +} diff --git a/backend/src/main/java/com/xly/test4/module/usr/mapper/EmployeeMapper.java b/backend/src/main/java/com/xly/test4/module/usr/mapper/EmployeeMapper.java new file mode 100644 index 0000000..cf3fde8 --- /dev/null +++ b/backend/src/main/java/com/xly/test4/module/usr/mapper/EmployeeMapper.java @@ -0,0 +1,7 @@ +package com.xly.test4.module.usr.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xly.test4.module.usr.entity.Employee; + +public interface EmployeeMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/xly/test4/module/usr/mapper/PermissionMapper.java b/backend/src/main/java/com/xly/test4/module/usr/mapper/PermissionMapper.java new file mode 100644 index 0000000..988483a --- /dev/null +++ b/backend/src/main/java/com/xly/test4/module/usr/mapper/PermissionMapper.java @@ -0,0 +1,7 @@ +package com.xly.test4.module.usr.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xly.test4.module.usr.entity.Permission; + +public interface PermissionMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/xly/test4/module/usr/mapper/UserMapper.java b/backend/src/main/java/com/xly/test4/module/usr/mapper/UserMapper.java new file mode 100644 index 0000000..d9cf4fe --- /dev/null +++ b/backend/src/main/java/com/xly/test4/module/usr/mapper/UserMapper.java @@ -0,0 +1,7 @@ +package com.xly.test4.module.usr.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xly.test4.module.usr.entity.User; + +public interface UserMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/xly/test4/module/usr/mapper/UserPermissionMapper.java b/backend/src/main/java/com/xly/test4/module/usr/mapper/UserPermissionMapper.java new file mode 100644 index 0000000..74fc688 --- /dev/null +++ b/backend/src/main/java/com/xly/test4/module/usr/mapper/UserPermissionMapper.java @@ -0,0 +1,7 @@ +package com.xly.test4.module.usr.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xly.test4.module.usr.entity.UserPermission; + +public interface UserPermissionMapper extends BaseMapper { +} diff --git a/backend/src/test/java/com/xly/test4/module/usr/mapper/UserMapperIT.java b/backend/src/test/java/com/xly/test4/module/usr/mapper/UserMapperIT.java new file mode 100644 index 0000000..84a58e6 --- /dev/null +++ b/backend/src/test/java/com/xly/test4/module/usr/mapper/UserMapperIT.java @@ -0,0 +1,62 @@ +package com.xly.test4.module.usr.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.xly.test4.module.usr.entity.User; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +class UserMapperIT { + + @Autowired + private UserMapper userMapper; + + @Test + void insertAndSelectById_columnsMappedCorrectly() { + User user = User.builder() + .sUserCode("UMIT-001") + .sUserName("usermapperit_001") + .sUserType("NORMAL") + .sLanguage("zh-CN") + .iCanEditDoc(0) + .sPasswordHash("$2y$10$placeholderHashForMapperTestOnly_XXXXXXXXXXXXXXXXXXXXXXXX") + .iIsDisabled(0) + .iLoginFailCount(0) + .sBrandsId("BR-T") + .sSubsidiaryId("SUB-T") + .sCreatedBy("system") + .build(); + + int affected = userMapper.insert(user); + assertThat(affected).isEqualTo(1); + assertThat(user.getIIncrement()).isNotNull(); + + User loaded = userMapper.selectById(user.getIIncrement()); + assertThat(loaded.getSUserCode()).isEqualTo("UMIT-001"); + assertThat(loaded.getSUserName()).isEqualTo("usermapperit_001"); + assertThat(loaded.getSUserType()).isEqualTo("NORMAL"); + assertThat(loaded.getSLanguage()).isEqualTo("zh-CN"); + assertThat(loaded.getICanEditDoc()).isZero(); + assertThat(loaded.getIIsDisabled()).isZero(); + assertThat(loaded.getSBrandsId()).isEqualTo("BR-T"); + assertThat(loaded.getSSubsidiaryId()).isEqualTo("SUB-T"); + assertThat(loaded.getSCreatedBy()).isEqualTo("system"); + } + + @Test + void seedAdminLoadable_byUserName() { + User admin = userMapper.selectOne(new LambdaQueryWrapper() + .eq(User::getSUserName, "admin")); + + assertThat(admin).isNotNull(); + assertThat(admin.getSUserType()).isEqualTo("ADMIN"); + assertThat(admin.getSBrandsId()).isEqualTo("BR-DEFAULT"); + assertThat(admin.getSSubsidiaryId()).isEqualTo("SUB-DEFAULT"); + assertThat(admin.getIIsDisabled()).isZero(); + assertThat(admin.getSPasswordHash()).startsWith("$2"); + assertThat(admin.getSPasswordHash()).hasSize(60); + } +} -- libgit2 0.22.2