Explorar el Código

1.添加用户和角色管理模块

1 hace 1 día
padre
commit
3e94ff9d08
Se han modificado 50 ficheros con 4301 adiciones y 1 borrados
  1. 45 0
      imwork-commons/imwork-commons-security/pom.xml
  2. 15 0
      imwork-commons/imwork-commons-security/src/main/java/top/imwork/commons/security/SecurityStart.java
  3. 3 0
      imwork-commons/imwork-commons-security/src/main/resources/application.properties
  4. 1 0
      imwork-commons/pom.xml
  5. 79 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysRoleServiceController.java
  6. 79 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysUserRoleServiceController.java
  7. 79 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysUserServiceController.java
  8. 205 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/convert/SysRoleConvert.java
  9. 265 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/convert/SysUserConvert.java
  10. 153 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/convert/SysUserRoleConvert.java
  11. 14 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/dao/SysRoleDao.java
  12. 14 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/dao/SysUserDao.java
  13. 14 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/dao/SysUserRoleDao.java
  14. 275 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/entity/SysRole.java
  15. 470 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/entity/SysUser.java
  16. 95 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/entity/SysUserRole.java
  17. 233 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysRoleBO.java
  18. 15 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysRoleResultBO.java
  19. 413 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysUserBO.java
  20. 15 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysUserResultBO.java
  21. 77 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysUserRoleBO.java
  22. 15 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysUserRoleResultBO.java
  23. 92 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysRoleDTO.java
  24. 23 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysRoleListDTO.java
  25. 152 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysUserDTO.java
  26. 23 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysUserListDTO.java
  27. 40 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysUserRoleDTO.java
  28. 23 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysUserRoleListDTO.java
  29. 23 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysRoleListParamVO.java
  30. 92 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysRoleParamVO.java
  31. 23 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysUserListParamVO.java
  32. 152 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysUserParamVO.java
  33. 23 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysUserRoleListParamVO.java
  34. 40 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysUserRoleParamVO.java
  35. 15 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysRoleResultVO.java
  36. 93 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysRoleVO.java
  37. 15 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysUserResultVO.java
  38. 15 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysUserRoleResultVO.java
  39. 41 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysUserRoleVO.java
  40. 153 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysUserVO.java
  41. 52 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/ISysRoleService.java
  42. 52 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/ISysUserRoleService.java
  43. 52 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/ISysUserService.java
  44. 106 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/impl/SysRoleServiceImpl.java
  45. 106 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/impl/SysUserRoleServiceImpl.java
  46. 106 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/impl/SysUserServiceImpl.java
  47. 70 0
      imwork-windows/imwork-silos/src/main/resources/mapper/upms/SysRoleDao.xml
  48. 100 0
      imwork-windows/imwork-silos/src/main/resources/mapper/upms/SysUserDao.xml
  49. 44 0
      imwork-windows/imwork-silos/src/main/resources/mapper/upms/SysUserRoleDao.xml
  50. 1 1
      imwork-windows/imwork-silos/src/main/resources/static/business/cms/base/pagination.js

+ 45 - 0
imwork-commons/imwork-commons-security/pom.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>top.imwork</groupId>
+        <artifactId>imwork-commons</artifactId>
+        <version>2025.12.1.0</version>
+    </parent>
+
+    <artifactId>imwork-commons-security</artifactId>
+    <packaging>jar</packaging>
+    <description>公共组件-安全配置模块</description>
+
+    <properties>
+        <maven.compiler.source>${java.version}</maven.compiler.source>
+        <maven.compiler.target>${java.version}</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>top.imwork</groupId>
+            <artifactId>imwork-commons-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-crypto</artifactId>
+        </dependency>
+        <!--<dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-cas</artifactId>
+        </dependency>-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-oauth2-authorization-server</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 15 - 0
imwork-commons/imwork-commons-security/src/main/java/top/imwork/commons/security/SecurityStart.java

@@ -0,0 +1,15 @@
+package top.imwork.commons.security;
+
+/**
+ * Copyright (C), 2015-2025
+ * FileName: SecurityStart
+ * Author<作者姓名>:   stars
+ * CreateTime<创建时间>:   2025/12/9 16:22
+ * UpdateTime<修改时间>:   2025/12/9 16:22
+ * Description〈功能简述〉:
+ * History<历史描述>:
+ * Since<版本号>: 1.0.0
+ */
+public class SecurityStart {
+
+}

+ 3 - 0
imwork-commons/imwork-commons-security/src/main/resources/application.properties

@@ -0,0 +1,3 @@
+spring.security.user.name=admin
+spring.security.user.password=123456
+security.core.loginPageUrl=/admin/login.html

+ 1 - 0
imwork-commons/pom.xml

@@ -18,6 +18,7 @@
         <module>imwork-commons-core</module>
         <module>imwork-commons-dao</module>
         <module>imwork-commons-alibaba</module>
+        <module>imwork-commons-security</module>
     </modules>
 
     <description>公共组件模块</description>

+ 79 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysRoleServiceController.java

@@ -0,0 +1,79 @@
+package top.imwork.window.silos.controller.upms;
+
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.web.bind.annotation.*;
+
+import top.imwork.commons.core.base.BaseController;
+import top.imwork.commons.core.pojo.DeleteParams;
+import top.imwork.commons.core.pojo.ResponseMsg;
+import top.imwork.window.silos.convert.SysRoleConvert;
+import top.imwork.window.silos.pojo.bo.SysRoleBO;
+import top.imwork.window.silos.pojo.bo.SysRoleResultBO;
+import top.imwork.window.silos.pojo.po.SysRoleListParamVO;
+import top.imwork.window.silos.pojo.po.SysRoleParamVO;
+import top.imwork.window.silos.service.ISysRoleService;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@RestController
+@RequestMapping("/sysrole")
+public class SysRoleServiceController extends BaseController {
+
+    @Resource
+    public ISysRoleService sysRoleService;
+
+    /**
+     * 根据id查询数据
+     * @param id long类型的id
+     * @return 返回查询结果
+     */
+    @GetMapping("/info/{id}")
+    public ResponseMsg info(@PathVariable("id") Long id){
+        return ResponseMsg.buildResponse(sysRoleService.info(id));
+    }
+
+    /**
+     * 新增/修改info
+     * @param sysRoleParamVO 实体信息
+     * @return responseMsg 操作结果
+     */
+    @PostMapping("/save")
+    public ResponseMsg save(@RequestBody @Valid SysRoleParamVO sysRoleParamVO){
+        SysRoleBO sysRoleBO = sysRoleService.save(SysRoleConvert.sysRoleParamVoToDto(sysRoleParamVO));
+        return ResponseMsg.buildResponse(SysRoleConvert.sysRoleBoToVo(sysRoleBO));
+    }
+
+    /**
+     * 根据id删除角色信息
+     * @param id id
+     * @return true/false 成功/失败
+     */
+    @DeleteMapping("/delete/{id}")
+    public ResponseMsg delete(@PathVariable("id") Long id){
+        return sysRoleService.delete(id)? ResponseMsg.ok() : ResponseMsg.fail();
+    }
+
+    /**
+     * 批量逻辑删除信息
+     *
+     * @param dto 删除条件
+     * @return true/false 是否删除成功
+     */
+    @DeleteMapping("/deleteByIds")
+    public ResponseMsg deleteByIds(@RequestBody DeleteParams dto){
+        String[] idArr = dto.getIds().split(",");
+        return sysRoleService.deleteByIds(idArr)? ResponseMsg.ok() : ResponseMsg.fail();
+    }
+
+    @PostMapping("/queryPage")
+    public ResponseMsg queryPage(@RequestBody @Valid SysRoleListParamVO sysRoleListParamVO) {
+        SysRoleResultBO sysRoleResultBO = sysRoleService.queryPage(SysRoleConvert.sysRoleListParamVoToDTO(sysRoleListParamVO));
+        return ResponseMsg.buildResponse(SysRoleConvert.sysRoleResultBoToVo(sysRoleResultBO));
+    }
+}

+ 79 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysUserRoleServiceController.java

@@ -0,0 +1,79 @@
+package top.imwork.window.silos.controller.upms;
+
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.web.bind.annotation.*;
+
+import top.imwork.commons.core.base.BaseController;
+import top.imwork.commons.core.pojo.DeleteParams;
+import top.imwork.commons.core.pojo.ResponseMsg;
+import top.imwork.window.silos.convert.SysUserRoleConvert;
+import top.imwork.window.silos.pojo.bo.SysUserRoleBO;
+import top.imwork.window.silos.pojo.bo.SysUserRoleResultBO;
+import top.imwork.window.silos.pojo.po.SysUserRoleListParamVO;
+import top.imwork.window.silos.pojo.po.SysUserRoleParamVO;
+import top.imwork.window.silos.service.ISysUserRoleService;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@RestController
+@RequestMapping("/sysuserrole")
+public class SysUserRoleServiceController extends BaseController {
+
+    @Resource
+    public ISysUserRoleService sysUserRoleService;
+
+    /**
+     * 根据id查询数据
+     * @param id long类型的id
+     * @return 返回查询结果
+     */
+    @GetMapping("/info/{id}")
+    public ResponseMsg info(@PathVariable("id") Long id){
+        return ResponseMsg.buildResponse(sysUserRoleService.info(id));
+    }
+
+    /**
+     * 新增/修改info
+     * @param sysUserRoleParamVO 实体信息
+     * @return responseMsg 操作结果
+     */
+    @PostMapping("/save")
+    public ResponseMsg save(@RequestBody @Valid SysUserRoleParamVO sysUserRoleParamVO){
+        SysUserRoleBO sysUserRoleBO = sysUserRoleService.save(SysUserRoleConvert.sysUserRoleParamVoToDto(sysUserRoleParamVO));
+        return ResponseMsg.buildResponse(SysUserRoleConvert.sysUserRoleBoToVo(sysUserRoleBO));
+    }
+
+    /**
+     * 根据id删除用户与角色关联信息
+     * @param id id
+     * @return true/false 成功/失败
+     */
+    @DeleteMapping("/delete/{id}")
+    public ResponseMsg delete(@PathVariable("id") Long id){
+        return sysUserRoleService.delete(id)? ResponseMsg.ok() : ResponseMsg.fail();
+    }
+
+    /**
+     * 批量逻辑删除信息
+     *
+     * @param dto 删除条件
+     * @return true/false 是否删除成功
+     */
+    @DeleteMapping("/deleteByIds")
+    public ResponseMsg deleteByIds(@RequestBody DeleteParams dto){
+        String[] idArr = dto.getIds().split(",");
+        return sysUserRoleService.deleteByIds(idArr)? ResponseMsg.ok() : ResponseMsg.fail();
+    }
+
+    @PostMapping("/queryPage")
+    public ResponseMsg queryPage(@RequestBody @Valid SysUserRoleListParamVO sysUserRoleListParamVO) {
+        SysUserRoleResultBO sysUserRoleResultBO = sysUserRoleService.queryPage(SysUserRoleConvert.sysUserRoleListParamVoToDTO(sysUserRoleListParamVO));
+        return ResponseMsg.buildResponse(SysUserRoleConvert.sysUserRoleResultBoToVo(sysUserRoleResultBO));
+    }
+}

+ 79 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysUserServiceController.java

@@ -0,0 +1,79 @@
+package top.imwork.window.silos.controller.upms;
+
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.web.bind.annotation.*;
+
+import top.imwork.commons.core.base.BaseController;
+import top.imwork.commons.core.pojo.DeleteParams;
+import top.imwork.commons.core.pojo.ResponseMsg;
+import top.imwork.window.silos.convert.SysUserConvert;
+import top.imwork.window.silos.pojo.bo.SysUserBO;
+import top.imwork.window.silos.pojo.bo.SysUserResultBO;
+import top.imwork.window.silos.pojo.po.SysUserListParamVO;
+import top.imwork.window.silos.pojo.po.SysUserParamVO;
+import top.imwork.window.silos.service.ISysUserService;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@RestController
+@RequestMapping("/sysuser")
+public class SysUserServiceController extends BaseController {
+
+    @Resource
+    public ISysUserService sysUserService;
+
+    /**
+     * 根据id查询数据
+     * @param id long类型的id
+     * @return 返回查询结果
+     */
+    @GetMapping("/info/{id}")
+    public ResponseMsg info(@PathVariable("id") Long id){
+        return ResponseMsg.buildResponse(sysUserService.info(id));
+    }
+
+    /**
+     * 新增/修改info
+     * @param sysUserParamVO 实体信息
+     * @return responseMsg 操作结果
+     */
+    @PostMapping("/save")
+    public ResponseMsg save(@RequestBody @Valid SysUserParamVO sysUserParamVO){
+        SysUserBO sysUserBO = sysUserService.save(SysUserConvert.sysUserParamVoToDto(sysUserParamVO));
+        return ResponseMsg.buildResponse(SysUserConvert.sysUserBoToVo(sysUserBO));
+    }
+
+    /**
+     * 根据id删除用户信息
+     * @param id id
+     * @return true/false 成功/失败
+     */
+    @DeleteMapping("/delete/{id}")
+    public ResponseMsg delete(@PathVariable("id") Long id){
+        return sysUserService.delete(id)? ResponseMsg.ok() : ResponseMsg.fail();
+    }
+
+    /**
+     * 批量逻辑删除信息
+     *
+     * @param dto 删除条件
+     * @return true/false 是否删除成功
+     */
+    @DeleteMapping("/deleteByIds")
+    public ResponseMsg deleteByIds(@RequestBody DeleteParams dto){
+        String[] idArr = dto.getIds().split(",");
+        return sysUserService.deleteByIds(idArr)? ResponseMsg.ok() : ResponseMsg.fail();
+    }
+
+    @PostMapping("/queryPage")
+    public ResponseMsg queryPage(@RequestBody @Valid SysUserListParamVO sysUserListParamVO) {
+        SysUserResultBO sysUserResultBO = sysUserService.queryPage(SysUserConvert.sysUserListParamVoToDTO(sysUserListParamVO));
+        return ResponseMsg.buildResponse(SysUserConvert.sysUserResultBoToVo(sysUserResultBO));
+    }
+}

+ 205 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/convert/SysRoleConvert.java

@@ -0,0 +1,205 @@
+package top.imwork.window.silos.convert;
+
+import org.springframework.util.ObjectUtils;
+import top.imwork.window.silos.entity.SysRole;
+import top.imwork.window.silos.pojo.bo.SysRoleBO;
+import top.imwork.window.silos.pojo.bo.SysRoleResultBO;
+import top.imwork.window.silos.pojo.dto.SysRoleListDTO;
+import top.imwork.window.silos.pojo.po.SysRoleListParamVO;
+import top.imwork.window.silos.pojo.po.SysRoleParamVO;
+import top.imwork.window.silos.pojo.vo.SysRoleResultVO;
+import top.imwork.window.silos.pojo.vo.SysRoleVO;
+import top.imwork.window.silos.pojo.dto.SysRoleDTO;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 角色信息
+ * 实体转换
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysRoleConvert {
+    private SysRoleConvert() {}
+
+    public static SysRole sysRoleDtoToDo(SysRoleDTO sysRoleDTO) {
+        if (sysRoleDTO == null) {
+            return null;
+        }
+        SysRole sysRole = new SysRole();
+        sysRole.setId(sysRoleDTO.getId());
+        sysRole.setParentId(sysRoleDTO.getParentId());
+        sysRole.setParentIds(sysRoleDTO.getParentIds());
+        sysRole.setRoleName(sysRoleDTO.getRoleName());
+        sysRole.setRoleType(sysRoleDTO.getRoleType());
+        sysRole.setRoleDesc(sysRoleDTO.getRoleDesc());
+        sysRole.setRoleLevel(sysRoleDTO.getRoleLevel());
+        sysRole.setIsSys(sysRoleDTO.getIsSys());
+        sysRole.setEnabled(sysRoleDTO.getEnabled());
+        sysRole.setSort(sysRoleDTO.getSort());
+        sysRole.setState(sysRoleDTO.getState());
+        sysRole.setStatus(sysRoleDTO.getStatus());
+        sysRole.setDelFlag(sysRoleDTO.getDelFlag());
+        sysRole.setCreator(sysRoleDTO.getCreator());
+        sysRole.setCreateTime(sysRoleDTO.getCreateTime());
+        sysRole.setModifier(sysRoleDTO.getModifier());
+        sysRole.setUpdateTime(sysRoleDTO.getUpdateTime());
+        sysRole.setRemark(sysRoleDTO.getRemark());
+        return sysRole;
+    }
+
+    public static SysRoleBO sysRoleDoToBo(SysRole sysRole) {
+        if (sysRole == null) {
+            return null;
+        }
+        SysRoleBO sysRoleBO = new SysRoleBO();
+        sysRoleBO.setId(sysRole.getId());
+        sysRoleBO.setParentId(sysRole.getParentId());
+        sysRoleBO.setParentIds(sysRole.getParentIds());
+        sysRoleBO.setRoleName(sysRole.getRoleName());
+        sysRoleBO.setRoleType(sysRole.getRoleType());
+        sysRoleBO.setRoleDesc(sysRole.getRoleDesc());
+        sysRoleBO.setRoleLevel(sysRole.getRoleLevel());
+        sysRoleBO.setIsSys(sysRole.getIsSys());
+        sysRoleBO.setEnabled(sysRole.getEnabled());
+        sysRoleBO.setSort(sysRole.getSort());
+        sysRoleBO.setState(sysRole.getState());
+        sysRoleBO.setStatus(sysRole.getStatus());
+        sysRoleBO.setDelFlag(sysRole.getDelFlag());
+        sysRoleBO.setCreator(sysRole.getCreator());
+        sysRoleBO.setCreateTime(sysRole.getCreateTime());
+        sysRoleBO.setModifier(sysRole.getModifier());
+        sysRoleBO.setUpdateTime(sysRole.getUpdateTime());
+        sysRoleBO.setRemark(sysRole.getRemark());
+        return sysRoleBO;
+    }
+
+    public static SysRoleDTO sysRoleParamVoToDto(SysRoleParamVO sysRoleParamVO) {
+        if (sysRoleParamVO == null) {
+            return null;
+        }
+        SysRoleDTO sysRoleDTO = new SysRoleDTO();
+        sysRoleDTO.setId(sysRoleParamVO.getId());
+        sysRoleDTO.setParentId(sysRoleParamVO.getParentId());
+        sysRoleDTO.setParentIds(sysRoleParamVO.getParentIds());
+        sysRoleDTO.setRoleName(sysRoleParamVO.getRoleName());
+        sysRoleDTO.setRoleType(sysRoleParamVO.getRoleType());
+        sysRoleDTO.setRoleDesc(sysRoleParamVO.getRoleDesc());
+        sysRoleDTO.setRoleLevel(sysRoleParamVO.getRoleLevel());
+        sysRoleDTO.setIsSys(sysRoleParamVO.getIsSys());
+        sysRoleDTO.setEnabled(sysRoleParamVO.getEnabled());
+        sysRoleDTO.setSort(sysRoleParamVO.getSort());
+        sysRoleDTO.setState(sysRoleParamVO.getState());
+        sysRoleDTO.setStatus(sysRoleParamVO.getStatus());
+        sysRoleDTO.setDelFlag(sysRoleParamVO.getDelFlag());
+        sysRoleDTO.setCreator(sysRoleParamVO.getCreator());
+        sysRoleDTO.setCreateTime(sysRoleParamVO.getCreateTime());
+        sysRoleDTO.setModifier(sysRoleParamVO.getModifier());
+        sysRoleDTO.setUpdateTime(sysRoleParamVO.getUpdateTime());
+        sysRoleDTO.setRemark(sysRoleParamVO.getRemark());
+        return sysRoleDTO;
+    }
+
+    public static List<SysRoleBO> sysRoleListToSysRoleBOList(List<SysRole> records) {
+         if (ObjectUtils.isEmpty(records)) {
+             return new ArrayList<>();
+         }
+         List<SysRoleBO> sysRoleBOList = new ArrayList<>();
+         for (SysRole sysRole : records) {
+             sysRoleBOList.add(sysRoleDoToBo(sysRole));
+         }
+         return sysRoleBOList;
+    }
+
+    public static SysRoleVO sysRoleBoToVo(SysRoleBO sysRoleBO) {
+        if (sysRoleBO == null) {
+            return null;
+        }
+        SysRoleVO sysRoleVO = new SysRoleVO();
+        sysRoleVO.setId(sysRoleBO.getId());
+        sysRoleVO.setParentId(sysRoleBO.getParentId());
+        sysRoleVO.setParentIds(sysRoleBO.getParentIds());
+        sysRoleVO.setRoleName(sysRoleBO.getRoleName());
+        sysRoleVO.setRoleType(sysRoleBO.getRoleType());
+        sysRoleVO.setRoleDesc(sysRoleBO.getRoleDesc());
+        sysRoleVO.setRoleLevel(sysRoleBO.getRoleLevel());
+        sysRoleVO.setIsSys(sysRoleBO.getIsSys());
+        sysRoleVO.setEnabled(sysRoleBO.getEnabled());
+        sysRoleVO.setSort(sysRoleBO.getSort());
+        sysRoleVO.setState(sysRoleBO.getState());
+        sysRoleVO.setStatus(sysRoleBO.getStatus());
+        sysRoleVO.setDelFlag(sysRoleBO.getDelFlag());
+        sysRoleVO.setCreator(sysRoleBO.getCreator());
+        sysRoleVO.setCreateTime(sysRoleBO.getCreateTime());
+        sysRoleVO.setModifier(sysRoleBO.getModifier());
+        sysRoleVO.setUpdateTime(sysRoleBO.getUpdateTime());
+        sysRoleVO.setRemark(sysRoleBO.getRemark());
+        return sysRoleVO;
+    }
+
+    public static SysRoleListDTO sysRoleListParamVoToDTO(SysRoleListParamVO sysRoleListParamVO) {
+        if (sysRoleListParamVO == null) {
+            return new SysRoleListDTO();
+        }
+        SysRoleListDTO sysRoleListDTO = new SysRoleListDTO();
+        sysRoleListDTO.setSysRoleName(sysRoleListParamVO.getSysRoleName());
+        sysRoleListDTO.setPageNo(sysRoleListParamVO.getPageNo());
+        sysRoleListDTO.setPageRows(sysRoleListParamVO.getPageRows());
+        sysRoleListDTO.setDelFlag(sysRoleListParamVO.getDelFlag());
+        sysRoleListDTO.setCreator(sysRoleListParamVO.getCreator());
+        sysRoleListDTO.setCreateBeginTime(sysRoleListParamVO.getCreateBeginTime());
+        sysRoleListDTO.setCreateEndTime(sysRoleListParamVO.getCreateEndTime());
+        sysRoleListDTO.setModifier(sysRoleListParamVO.getModifier());
+        sysRoleListDTO.setUpdateBeginTime(sysRoleListParamVO.getUpdateBeginTime());
+        sysRoleListDTO.setUpdateEndTime(sysRoleListParamVO.getUpdateEndTime());
+        sysRoleListDTO.setRemark(sysRoleListParamVO.getRemark());
+        return sysRoleListDTO;
+    }
+        
+    public static SysRoleListParamVO sysRoleListParamDtoToVo(SysRoleListDTO sysRoleListDTO) {
+        if (sysRoleListDTO == null) {
+            return new SysRoleListParamVO();
+        }
+        SysRoleListParamVO sysRoleListParamVO = new SysRoleListParamVO();
+        sysRoleListParamVO.setSysRoleName(sysRoleListDTO.getSysRoleName());
+        sysRoleListParamVO.setPageNo(sysRoleListDTO.getPageNo());
+        sysRoleListParamVO.setPageRows(sysRoleListDTO.getPageRows());
+        sysRoleListParamVO.setDelFlag(sysRoleListDTO.getDelFlag());
+        sysRoleListParamVO.setCreator(sysRoleListDTO.getCreator());
+        sysRoleListParamVO.setCreateBeginTime(sysRoleListDTO.getCreateBeginTime());
+        sysRoleListParamVO.setCreateEndTime(sysRoleListDTO.getCreateEndTime());
+        sysRoleListParamVO.setModifier(sysRoleListDTO.getModifier());
+        sysRoleListParamVO.setUpdateBeginTime(sysRoleListDTO.getUpdateBeginTime());
+        sysRoleListParamVO.setUpdateEndTime(sysRoleListDTO.getUpdateEndTime());
+        sysRoleListParamVO.setRemark(sysRoleListDTO.getRemark());
+        return sysRoleListParamVO;
+    }
+
+    private static List<SysRoleVO> sysRoleBoListToSysRoleVoList(List<SysRoleBO> dataList) {
+        if (ObjectUtils.isEmpty(dataList)) {
+            return new ArrayList<>();
+        }
+        List<SysRoleVO> sysRoleVOList = new ArrayList<>();
+        for (SysRoleBO sysRoleBO : dataList) {
+             sysRoleVOList.add(sysRoleBoToVo(sysRoleBO));
+        }
+        return sysRoleVOList;
+    }
+
+    public static SysRoleResultVO sysRoleResultBoToVo(SysRoleResultBO sysRoleResultBO) {
+        if (sysRoleResultBO == null) {
+            return new SysRoleResultVO();
+        }
+        SysRoleResultVO sysRoleResultVO = new SysRoleResultVO();
+        sysRoleResultVO.setPageNo(sysRoleResultBO.getPageNo());
+        sysRoleResultVO.setPageRows(sysRoleResultBO.getPageRows());
+        sysRoleResultVO.setPageCount(sysRoleResultBO.getPageCount());
+        sysRoleResultVO.setTotalRows(sysRoleResultBO.getTotalRows());
+        sysRoleResultVO.setDataList(sysRoleBoListToSysRoleVoList(sysRoleResultBO.getDataList()));
+        sysRoleResultVO.setParams(sysRoleListParamDtoToVo(sysRoleResultBO.getParams()));
+        return sysRoleResultVO;
+    }
+}

+ 265 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/convert/SysUserConvert.java

@@ -0,0 +1,265 @@
+package top.imwork.window.silos.convert;
+
+import org.springframework.util.ObjectUtils;
+import top.imwork.window.silos.entity.SysUser;
+import top.imwork.window.silos.pojo.bo.SysUserBO;
+import top.imwork.window.silos.pojo.bo.SysUserResultBO;
+import top.imwork.window.silos.pojo.dto.SysUserListDTO;
+import top.imwork.window.silos.pojo.po.SysUserListParamVO;
+import top.imwork.window.silos.pojo.po.SysUserParamVO;
+import top.imwork.window.silos.pojo.vo.SysUserResultVO;
+import top.imwork.window.silos.pojo.vo.SysUserVO;
+import top.imwork.window.silos.pojo.dto.SysUserDTO;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 用户信息
+ * 实体转换
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserConvert {
+    private SysUserConvert() {}
+
+    public static SysUser sysUserDtoToDo(SysUserDTO sysUserDTO) {
+        if (sysUserDTO == null) {
+            return null;
+        }
+        SysUser sysUser = new SysUser();
+        sysUser.setId(sysUserDTO.getId());
+        sysUser.setLoginName(sysUserDTO.getLoginName());
+        sysUser.setLoginPassword(sysUserDTO.getLoginPassword());
+        sysUser.setSecondLoginPassword(sysUserDTO.getSecondLoginPassword());
+        sysUser.setUserName(sysUserDTO.getUserName());
+        sysUser.setUserNamePinyin(sysUserDTO.getUserNamePinyin());
+        sysUser.setUserNameSpell(sysUserDTO.getUserNameSpell());
+        sysUser.setUserGender(sysUserDTO.getUserGender());
+        sysUser.setUserIdCard(sysUserDTO.getUserIdCard());
+        sysUser.setUserEmail(sysUserDTO.getUserEmail());
+        sysUser.setUserMobilPhone(sysUserDTO.getUserMobilPhone());
+        sysUser.setUserAddress(sysUserDTO.getUserAddress());
+        sysUser.setUserDesc(sysUserDTO.getUserDesc());
+        sysUser.setUserType(sysUserDTO.getUserType());
+        sysUser.setUserStatus(sysUserDTO.getUserStatus());
+        sysUser.setUserAvatarId(sysUserDTO.getUserAvatarId());
+        sysUser.setUserNickName(sysUserDTO.getUserNickName());
+        sysUser.setSalt(sysUserDTO.getSalt());
+        sysUser.setDncnet(sysUserDTO.getDncnet());
+        sysUser.setAllowedErrorTimes(sysUserDTO.getAllowedErrorTimes());
+        sysUser.setLoginErrorTimes(sysUserDTO.getLoginErrorTimes());
+        sysUser.setIsDifferentIpLogin(sysUserDTO.getIsDifferentIpLogin());
+        sysUser.setLastLoginTime(sysUserDTO.getLastLoginTime());
+        sysUser.setEnabled(sysUserDTO.getEnabled());
+        sysUser.setSort(sysUserDTO.getSort());
+        sysUser.setState(sysUserDTO.getState());
+        sysUser.setStatus(sysUserDTO.getStatus());
+        sysUser.setDelFlag(sysUserDTO.getDelFlag());
+        sysUser.setCreator(sysUserDTO.getCreator());
+        sysUser.setCreateTime(sysUserDTO.getCreateTime());
+        sysUser.setModifier(sysUserDTO.getModifier());
+        sysUser.setUpdateTime(sysUserDTO.getUpdateTime());
+        sysUser.setRemark(sysUserDTO.getRemark());
+        return sysUser;
+    }
+
+    public static SysUserBO sysUserDoToBo(SysUser sysUser) {
+        if (sysUser == null) {
+            return null;
+        }
+        SysUserBO sysUserBO = new SysUserBO();
+        sysUserBO.setId(sysUser.getId());
+        sysUserBO.setLoginName(sysUser.getLoginName());
+        sysUserBO.setLoginPassword(sysUser.getLoginPassword());
+        sysUserBO.setSecondLoginPassword(sysUser.getSecondLoginPassword());
+        sysUserBO.setUserName(sysUser.getUserName());
+        sysUserBO.setUserNamePinyin(sysUser.getUserNamePinyin());
+        sysUserBO.setUserNameSpell(sysUser.getUserNameSpell());
+        sysUserBO.setUserGender(sysUser.getUserGender());
+        sysUserBO.setUserIdCard(sysUser.getUserIdCard());
+        sysUserBO.setUserEmail(sysUser.getUserEmail());
+        sysUserBO.setUserMobilPhone(sysUser.getUserMobilPhone());
+        sysUserBO.setUserAddress(sysUser.getUserAddress());
+        sysUserBO.setUserDesc(sysUser.getUserDesc());
+        sysUserBO.setUserType(sysUser.getUserType());
+        sysUserBO.setUserStatus(sysUser.getUserStatus());
+        sysUserBO.setUserAvatarId(sysUser.getUserAvatarId());
+        sysUserBO.setUserNickName(sysUser.getUserNickName());
+        sysUserBO.setSalt(sysUser.getSalt());
+        sysUserBO.setDncnet(sysUser.getDncnet());
+        sysUserBO.setAllowedErrorTimes(sysUser.getAllowedErrorTimes());
+        sysUserBO.setLoginErrorTimes(sysUser.getLoginErrorTimes());
+        sysUserBO.setIsDifferentIpLogin(sysUser.getIsDifferentIpLogin());
+        sysUserBO.setLastLoginTime(sysUser.getLastLoginTime());
+        sysUserBO.setEnabled(sysUser.getEnabled());
+        sysUserBO.setSort(sysUser.getSort());
+        sysUserBO.setState(sysUser.getState());
+        sysUserBO.setStatus(sysUser.getStatus());
+        sysUserBO.setDelFlag(sysUser.getDelFlag());
+        sysUserBO.setCreator(sysUser.getCreator());
+        sysUserBO.setCreateTime(sysUser.getCreateTime());
+        sysUserBO.setModifier(sysUser.getModifier());
+        sysUserBO.setUpdateTime(sysUser.getUpdateTime());
+        sysUserBO.setRemark(sysUser.getRemark());
+        return sysUserBO;
+    }
+
+    public static SysUserDTO sysUserParamVoToDto(SysUserParamVO sysUserParamVO) {
+        if (sysUserParamVO == null) {
+            return null;
+        }
+        SysUserDTO sysUserDTO = new SysUserDTO();
+        sysUserDTO.setId(sysUserParamVO.getId());
+        sysUserDTO.setLoginName(sysUserParamVO.getLoginName());
+        sysUserDTO.setLoginPassword(sysUserParamVO.getLoginPassword());
+        sysUserDTO.setSecondLoginPassword(sysUserParamVO.getSecondLoginPassword());
+        sysUserDTO.setUserName(sysUserParamVO.getUserName());
+        sysUserDTO.setUserNamePinyin(sysUserParamVO.getUserNamePinyin());
+        sysUserDTO.setUserNameSpell(sysUserParamVO.getUserNameSpell());
+        sysUserDTO.setUserGender(sysUserParamVO.getUserGender());
+        sysUserDTO.setUserIdCard(sysUserParamVO.getUserIdCard());
+        sysUserDTO.setUserEmail(sysUserParamVO.getUserEmail());
+        sysUserDTO.setUserMobilPhone(sysUserParamVO.getUserMobilPhone());
+        sysUserDTO.setUserAddress(sysUserParamVO.getUserAddress());
+        sysUserDTO.setUserDesc(sysUserParamVO.getUserDesc());
+        sysUserDTO.setUserType(sysUserParamVO.getUserType());
+        sysUserDTO.setUserStatus(sysUserParamVO.getUserStatus());
+        sysUserDTO.setUserAvatarId(sysUserParamVO.getUserAvatarId());
+        sysUserDTO.setUserNickName(sysUserParamVO.getUserNickName());
+        sysUserDTO.setSalt(sysUserParamVO.getSalt());
+        sysUserDTO.setDncnet(sysUserParamVO.getDncnet());
+        sysUserDTO.setAllowedErrorTimes(sysUserParamVO.getAllowedErrorTimes());
+        sysUserDTO.setLoginErrorTimes(sysUserParamVO.getLoginErrorTimes());
+        sysUserDTO.setIsDifferentIpLogin(sysUserParamVO.getIsDifferentIpLogin());
+        sysUserDTO.setLastLoginTime(sysUserParamVO.getLastLoginTime());
+        sysUserDTO.setEnabled(sysUserParamVO.getEnabled());
+        sysUserDTO.setSort(sysUserParamVO.getSort());
+        sysUserDTO.setState(sysUserParamVO.getState());
+        sysUserDTO.setStatus(sysUserParamVO.getStatus());
+        sysUserDTO.setDelFlag(sysUserParamVO.getDelFlag());
+        sysUserDTO.setCreator(sysUserParamVO.getCreator());
+        sysUserDTO.setCreateTime(sysUserParamVO.getCreateTime());
+        sysUserDTO.setModifier(sysUserParamVO.getModifier());
+        sysUserDTO.setUpdateTime(sysUserParamVO.getUpdateTime());
+        sysUserDTO.setRemark(sysUserParamVO.getRemark());
+        return sysUserDTO;
+    }
+
+    public static List<SysUserBO> sysUserListToSysUserBOList(List<SysUser> records) {
+         if (ObjectUtils.isEmpty(records)) {
+             return new ArrayList<>();
+         }
+         List<SysUserBO> sysUserBOList = new ArrayList<>();
+         for (SysUser sysUser : records) {
+             sysUserBOList.add(sysUserDoToBo(sysUser));
+         }
+         return sysUserBOList;
+    }
+
+    public static SysUserVO sysUserBoToVo(SysUserBO sysUserBO) {
+        if (sysUserBO == null) {
+            return null;
+        }
+        SysUserVO sysUserVO = new SysUserVO();
+        sysUserVO.setId(sysUserBO.getId());
+        sysUserVO.setLoginName(sysUserBO.getLoginName());
+        sysUserVO.setLoginPassword(sysUserBO.getLoginPassword());
+        sysUserVO.setSecondLoginPassword(sysUserBO.getSecondLoginPassword());
+        sysUserVO.setUserName(sysUserBO.getUserName());
+        sysUserVO.setUserNamePinyin(sysUserBO.getUserNamePinyin());
+        sysUserVO.setUserNameSpell(sysUserBO.getUserNameSpell());
+        sysUserVO.setUserGender(sysUserBO.getUserGender());
+        sysUserVO.setUserIdCard(sysUserBO.getUserIdCard());
+        sysUserVO.setUserEmail(sysUserBO.getUserEmail());
+        sysUserVO.setUserMobilPhone(sysUserBO.getUserMobilPhone());
+        sysUserVO.setUserAddress(sysUserBO.getUserAddress());
+        sysUserVO.setUserDesc(sysUserBO.getUserDesc());
+        sysUserVO.setUserType(sysUserBO.getUserType());
+        sysUserVO.setUserStatus(sysUserBO.getUserStatus());
+        sysUserVO.setUserAvatarId(sysUserBO.getUserAvatarId());
+        sysUserVO.setUserNickName(sysUserBO.getUserNickName());
+        sysUserVO.setSalt(sysUserBO.getSalt());
+        sysUserVO.setDncnet(sysUserBO.getDncnet());
+        sysUserVO.setAllowedErrorTimes(sysUserBO.getAllowedErrorTimes());
+        sysUserVO.setLoginErrorTimes(sysUserBO.getLoginErrorTimes());
+        sysUserVO.setIsDifferentIpLogin(sysUserBO.getIsDifferentIpLogin());
+        sysUserVO.setLastLoginTime(sysUserBO.getLastLoginTime());
+        sysUserVO.setEnabled(sysUserBO.getEnabled());
+        sysUserVO.setSort(sysUserBO.getSort());
+        sysUserVO.setState(sysUserBO.getState());
+        sysUserVO.setStatus(sysUserBO.getStatus());
+        sysUserVO.setDelFlag(sysUserBO.getDelFlag());
+        sysUserVO.setCreator(sysUserBO.getCreator());
+        sysUserVO.setCreateTime(sysUserBO.getCreateTime());
+        sysUserVO.setModifier(sysUserBO.getModifier());
+        sysUserVO.setUpdateTime(sysUserBO.getUpdateTime());
+        sysUserVO.setRemark(sysUserBO.getRemark());
+        return sysUserVO;
+    }
+
+    public static SysUserListDTO sysUserListParamVoToDTO(SysUserListParamVO sysUserListParamVO) {
+        if (sysUserListParamVO == null) {
+            return new SysUserListDTO();
+        }
+        SysUserListDTO sysUserListDTO = new SysUserListDTO();
+        sysUserListDTO.setSysUserName(sysUserListParamVO.getSysUserName());
+        sysUserListDTO.setPageNo(sysUserListParamVO.getPageNo());
+        sysUserListDTO.setPageRows(sysUserListParamVO.getPageRows());
+        sysUserListDTO.setDelFlag(sysUserListParamVO.getDelFlag());
+        sysUserListDTO.setCreator(sysUserListParamVO.getCreator());
+        sysUserListDTO.setCreateBeginTime(sysUserListParamVO.getCreateBeginTime());
+        sysUserListDTO.setCreateEndTime(sysUserListParamVO.getCreateEndTime());
+        sysUserListDTO.setModifier(sysUserListParamVO.getModifier());
+        sysUserListDTO.setUpdateBeginTime(sysUserListParamVO.getUpdateBeginTime());
+        sysUserListDTO.setUpdateEndTime(sysUserListParamVO.getUpdateEndTime());
+        sysUserListDTO.setRemark(sysUserListParamVO.getRemark());
+        return sysUserListDTO;
+    }
+        
+    public static SysUserListParamVO sysUserListParamDtoToVo(SysUserListDTO sysUserListDTO) {
+        if (sysUserListDTO == null) {
+            return new SysUserListParamVO();
+        }
+        SysUserListParamVO sysUserListParamVO = new SysUserListParamVO();
+        sysUserListParamVO.setSysUserName(sysUserListDTO.getSysUserName());
+        sysUserListParamVO.setPageNo(sysUserListDTO.getPageNo());
+        sysUserListParamVO.setPageRows(sysUserListDTO.getPageRows());
+        sysUserListParamVO.setDelFlag(sysUserListDTO.getDelFlag());
+        sysUserListParamVO.setCreator(sysUserListDTO.getCreator());
+        sysUserListParamVO.setCreateBeginTime(sysUserListDTO.getCreateBeginTime());
+        sysUserListParamVO.setCreateEndTime(sysUserListDTO.getCreateEndTime());
+        sysUserListParamVO.setModifier(sysUserListDTO.getModifier());
+        sysUserListParamVO.setUpdateBeginTime(sysUserListDTO.getUpdateBeginTime());
+        sysUserListParamVO.setUpdateEndTime(sysUserListDTO.getUpdateEndTime());
+        sysUserListParamVO.setRemark(sysUserListDTO.getRemark());
+        return sysUserListParamVO;
+    }
+
+    private static List<SysUserVO> sysUserBoListToSysUserVoList(List<SysUserBO> dataList) {
+        if (ObjectUtils.isEmpty(dataList)) {
+            return new ArrayList<>();
+        }
+        List<SysUserVO> sysUserVOList = new ArrayList<>();
+        for (SysUserBO sysUserBO : dataList) {
+             sysUserVOList.add(sysUserBoToVo(sysUserBO));
+        }
+        return sysUserVOList;
+    }
+
+    public static SysUserResultVO sysUserResultBoToVo(SysUserResultBO sysUserResultBO) {
+        if (sysUserResultBO == null) {
+            return new SysUserResultVO();
+        }
+        SysUserResultVO sysUserResultVO = new SysUserResultVO();
+        sysUserResultVO.setPageNo(sysUserResultBO.getPageNo());
+        sysUserResultVO.setPageRows(sysUserResultBO.getPageRows());
+        sysUserResultVO.setPageCount(sysUserResultBO.getPageCount());
+        sysUserResultVO.setTotalRows(sysUserResultBO.getTotalRows());
+        sysUserResultVO.setDataList(sysUserBoListToSysUserVoList(sysUserResultBO.getDataList()));
+        sysUserResultVO.setParams(sysUserListParamDtoToVo(sysUserResultBO.getParams()));
+        return sysUserResultVO;
+    }
+}

+ 153 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/convert/SysUserRoleConvert.java

@@ -0,0 +1,153 @@
+package top.imwork.window.silos.convert;
+
+import org.springframework.util.ObjectUtils;
+import top.imwork.window.silos.entity.SysUserRole;
+import top.imwork.window.silos.pojo.bo.SysUserRoleBO;
+import top.imwork.window.silos.pojo.bo.SysUserRoleResultBO;
+import top.imwork.window.silos.pojo.dto.SysUserRoleListDTO;
+import top.imwork.window.silos.pojo.po.SysUserRoleListParamVO;
+import top.imwork.window.silos.pojo.po.SysUserRoleParamVO;
+import top.imwork.window.silos.pojo.vo.SysUserRoleResultVO;
+import top.imwork.window.silos.pojo.vo.SysUserRoleVO;
+import top.imwork.window.silos.pojo.dto.SysUserRoleDTO;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 用户与角色关联信息
+ * 实体转换
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserRoleConvert {
+    private SysUserRoleConvert() {}
+
+    public static SysUserRole sysUserRoleDtoToDo(SysUserRoleDTO sysUserRoleDTO) {
+        if (sysUserRoleDTO == null) {
+            return null;
+        }
+        SysUserRole sysUserRole = new SysUserRole();
+        sysUserRole.setId(sysUserRoleDTO.getId());
+        sysUserRole.setUserId(sysUserRoleDTO.getUserId());
+        sysUserRole.setRoleId(sysUserRoleDTO.getRoleId());
+        sysUserRole.setCreator(sysUserRoleDTO.getCreator());
+        sysUserRole.setCreateTime(sysUserRoleDTO.getCreateTime());
+        return sysUserRole;
+    }
+
+    public static SysUserRoleBO sysUserRoleDoToBo(SysUserRole sysUserRole) {
+        if (sysUserRole == null) {
+            return null;
+        }
+        SysUserRoleBO sysUserRoleBO = new SysUserRoleBO();
+        sysUserRoleBO.setId(sysUserRole.getId());
+        sysUserRoleBO.setUserId(sysUserRole.getUserId());
+        sysUserRoleBO.setRoleId(sysUserRole.getRoleId());
+        sysUserRoleBO.setCreator(sysUserRole.getCreator());
+        sysUserRoleBO.setCreateTime(sysUserRole.getCreateTime());
+        return sysUserRoleBO;
+    }
+
+    public static SysUserRoleDTO sysUserRoleParamVoToDto(SysUserRoleParamVO sysUserRoleParamVO) {
+        if (sysUserRoleParamVO == null) {
+            return null;
+        }
+        SysUserRoleDTO sysUserRoleDTO = new SysUserRoleDTO();
+        sysUserRoleDTO.setId(sysUserRoleParamVO.getId());
+        sysUserRoleDTO.setUserId(sysUserRoleParamVO.getUserId());
+        sysUserRoleDTO.setRoleId(sysUserRoleParamVO.getRoleId());
+        sysUserRoleDTO.setCreator(sysUserRoleParamVO.getCreator());
+        sysUserRoleDTO.setCreateTime(sysUserRoleParamVO.getCreateTime());
+        return sysUserRoleDTO;
+    }
+
+    public static List<SysUserRoleBO> sysUserRoleListToSysUserRoleBOList(List<SysUserRole> records) {
+         if (ObjectUtils.isEmpty(records)) {
+             return new ArrayList<>();
+         }
+         List<SysUserRoleBO> sysUserRoleBOList = new ArrayList<>();
+         for (SysUserRole sysUserRole : records) {
+             sysUserRoleBOList.add(sysUserRoleDoToBo(sysUserRole));
+         }
+         return sysUserRoleBOList;
+    }
+
+    public static SysUserRoleVO sysUserRoleBoToVo(SysUserRoleBO sysUserRoleBO) {
+        if (sysUserRoleBO == null) {
+            return null;
+        }
+        SysUserRoleVO sysUserRoleVO = new SysUserRoleVO();
+        sysUserRoleVO.setId(sysUserRoleBO.getId());
+        sysUserRoleVO.setUserId(sysUserRoleBO.getUserId());
+        sysUserRoleVO.setRoleId(sysUserRoleBO.getRoleId());
+        sysUserRoleVO.setCreator(sysUserRoleBO.getCreator());
+        sysUserRoleVO.setCreateTime(sysUserRoleBO.getCreateTime());
+        return sysUserRoleVO;
+    }
+
+    public static SysUserRoleListDTO sysUserRoleListParamVoToDTO(SysUserRoleListParamVO sysUserRoleListParamVO) {
+        if (sysUserRoleListParamVO == null) {
+            return new SysUserRoleListDTO();
+        }
+        SysUserRoleListDTO sysUserRoleListDTO = new SysUserRoleListDTO();
+        sysUserRoleListDTO.setSysUserRoleName(sysUserRoleListParamVO.getSysUserRoleName());
+        sysUserRoleListDTO.setPageNo(sysUserRoleListParamVO.getPageNo());
+        sysUserRoleListDTO.setPageRows(sysUserRoleListParamVO.getPageRows());
+        sysUserRoleListDTO.setDelFlag(sysUserRoleListParamVO.getDelFlag());
+        sysUserRoleListDTO.setCreator(sysUserRoleListParamVO.getCreator());
+        sysUserRoleListDTO.setCreateBeginTime(sysUserRoleListParamVO.getCreateBeginTime());
+        sysUserRoleListDTO.setCreateEndTime(sysUserRoleListParamVO.getCreateEndTime());
+        sysUserRoleListDTO.setModifier(sysUserRoleListParamVO.getModifier());
+        sysUserRoleListDTO.setUpdateBeginTime(sysUserRoleListParamVO.getUpdateBeginTime());
+        sysUserRoleListDTO.setUpdateEndTime(sysUserRoleListParamVO.getUpdateEndTime());
+        sysUserRoleListDTO.setRemark(sysUserRoleListParamVO.getRemark());
+        return sysUserRoleListDTO;
+    }
+        
+    public static SysUserRoleListParamVO sysUserRoleListParamDtoToVo(SysUserRoleListDTO sysUserRoleListDTO) {
+        if (sysUserRoleListDTO == null) {
+            return new SysUserRoleListParamVO();
+        }
+        SysUserRoleListParamVO sysUserRoleListParamVO = new SysUserRoleListParamVO();
+        sysUserRoleListParamVO.setSysUserRoleName(sysUserRoleListDTO.getSysUserRoleName());
+        sysUserRoleListParamVO.setPageNo(sysUserRoleListDTO.getPageNo());
+        sysUserRoleListParamVO.setPageRows(sysUserRoleListDTO.getPageRows());
+        sysUserRoleListParamVO.setDelFlag(sysUserRoleListDTO.getDelFlag());
+        sysUserRoleListParamVO.setCreator(sysUserRoleListDTO.getCreator());
+        sysUserRoleListParamVO.setCreateBeginTime(sysUserRoleListDTO.getCreateBeginTime());
+        sysUserRoleListParamVO.setCreateEndTime(sysUserRoleListDTO.getCreateEndTime());
+        sysUserRoleListParamVO.setModifier(sysUserRoleListDTO.getModifier());
+        sysUserRoleListParamVO.setUpdateBeginTime(sysUserRoleListDTO.getUpdateBeginTime());
+        sysUserRoleListParamVO.setUpdateEndTime(sysUserRoleListDTO.getUpdateEndTime());
+        sysUserRoleListParamVO.setRemark(sysUserRoleListDTO.getRemark());
+        return sysUserRoleListParamVO;
+    }
+
+    private static List<SysUserRoleVO> sysUserRoleBoListToSysUserRoleVoList(List<SysUserRoleBO> dataList) {
+        if (ObjectUtils.isEmpty(dataList)) {
+            return new ArrayList<>();
+        }
+        List<SysUserRoleVO> sysUserRoleVOList = new ArrayList<>();
+        for (SysUserRoleBO sysUserRoleBO : dataList) {
+             sysUserRoleVOList.add(sysUserRoleBoToVo(sysUserRoleBO));
+        }
+        return sysUserRoleVOList;
+    }
+
+    public static SysUserRoleResultVO sysUserRoleResultBoToVo(SysUserRoleResultBO sysUserRoleResultBO) {
+        if (sysUserRoleResultBO == null) {
+            return new SysUserRoleResultVO();
+        }
+        SysUserRoleResultVO sysUserRoleResultVO = new SysUserRoleResultVO();
+        sysUserRoleResultVO.setPageNo(sysUserRoleResultBO.getPageNo());
+        sysUserRoleResultVO.setPageRows(sysUserRoleResultBO.getPageRows());
+        sysUserRoleResultVO.setPageCount(sysUserRoleResultBO.getPageCount());
+        sysUserRoleResultVO.setTotalRows(sysUserRoleResultBO.getTotalRows());
+        sysUserRoleResultVO.setDataList(sysUserRoleBoListToSysUserRoleVoList(sysUserRoleResultBO.getDataList()));
+        sysUserRoleResultVO.setParams(sysUserRoleListParamDtoToVo(sysUserRoleResultBO.getParams()));
+        return sysUserRoleResultVO;
+    }
+}

+ 14 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/dao/SysRoleDao.java

@@ -0,0 +1,14 @@
+package top.imwork.window.silos.dao;
+
+import top.imwork.commons.dao.base.BaseDao;
+import top.imwork.window.silos.entity.SysRole;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public interface SysRoleDao extends BaseDao<SysRole> {
+}

+ 14 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/dao/SysUserDao.java

@@ -0,0 +1,14 @@
+package top.imwork.window.silos.dao;
+
+import top.imwork.commons.dao.base.BaseDao;
+import top.imwork.window.silos.entity.SysUser;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public interface SysUserDao extends BaseDao<SysUser> {
+}

+ 14 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/dao/SysUserRoleDao.java

@@ -0,0 +1,14 @@
+package top.imwork.window.silos.dao;
+
+import top.imwork.commons.dao.base.BaseDao;
+import top.imwork.window.silos.entity.SysUserRole;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public interface SysUserRoleDao extends BaseDao<SysUserRole> {
+}

+ 275 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/entity/SysRole.java

@@ -0,0 +1,275 @@
+package top.imwork.window.silos.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@TableName("sys_role")
+public class SysRole implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 父级角色
+     */
+    private Long parentId;
+    /**
+     * 角色分组 父级角色组id
+     */
+    private String parentIds;
+    /**
+     * 角色名称
+     */
+    private String roleName;
+    /**
+     * 角色类型0普通角色1普通管理员2区域管理员3平台管理员5系统管理员9超级管理员
+     */
+    private String roleType;
+    /**
+     * 角色描述
+     */
+    private String roleDesc;
+    /**
+     * 角色级别
+     */
+    private String roleLevel;
+    /**
+     * 是否系统数据0否1是
+     */
+    private Integer isSys;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 排序
+     */
+    private Long sort;
+    /**
+     * 状态:对问题在某一时刻进展情况的数学描述,默认0
+     */
+    private Integer state;
+    /**
+     * 状态字符类型
+     */
+    private String status;
+    /**
+     * 是否删除默认0.未删除,1已删除
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    @Override
+    public String toString() {
+        return "SysRole{" +
+                "id=" + id +
+                ", parentId=" + parentId +
+                ", parentIds='" + parentIds + '\'' +
+                ", roleName='" + roleName + '\'' +
+                ", roleType='" + roleType + '\'' +
+                ", roleDesc='" + roleDesc + '\'' +
+                ", roleLevel='" + roleLevel + '\'' +
+                ", isSys=" + isSys +
+                ", enabled=" + enabled +
+                ", sort=" + sort +
+                ", state=" + state +
+                ", status='" + status + '\'' +
+                ", delFlag='" + delFlag + '\'' +
+                ", creator='" + creator + '\'' +
+                ", createTime=" + createTime +
+                ", modifier='" + modifier + '\'' +
+                ", updateTime=" + updateTime +
+                ", remark='" + remark + '\'' +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o == null || getClass() != o.getClass()) return false;
+        SysRole sysRole = (SysRole) o;
+        return Objects.equals(id, sysRole.id) && Objects.equals(parentId, sysRole.parentId) && Objects.equals(parentIds, sysRole.parentIds) && Objects.equals(roleName, sysRole.roleName) && Objects.equals(roleType, sysRole.roleType) && Objects.equals(roleDesc, sysRole.roleDesc) && Objects.equals(roleLevel, sysRole.roleLevel) && Objects.equals(isSys, sysRole.isSys) && Objects.equals(enabled, sysRole.enabled) && Objects.equals(sort, sysRole.sort) && Objects.equals(state, sysRole.state) && Objects.equals(status, sysRole.status) && Objects.equals(delFlag, sysRole.delFlag) && Objects.equals(creator, sysRole.creator) && Objects.equals(createTime, sysRole.createTime) && Objects.equals(modifier, sysRole.modifier) && Objects.equals(updateTime, sysRole.updateTime) && Objects.equals(remark, sysRole.remark);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, parentId, parentIds, roleName, roleType, roleDesc, roleLevel, isSys, enabled, sort, state, status, delFlag, creator, createTime, modifier, updateTime, remark);
+    }
+
+    public String getRoleDesc() {
+        return roleDesc;
+    }
+
+    public void setRoleDesc(String roleDesc) {
+        this.roleDesc = roleDesc;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getParentIds() {
+        return parentIds;
+    }
+
+    public void setParentIds(String parentIds) {
+        this.parentIds = parentIds;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+
+    public String getRoleType() {
+        return roleType;
+    }
+
+    public void setRoleType(String roleType) {
+        this.roleType = roleType;
+    }
+
+    public String getRoleLevel() {
+        return roleLevel;
+    }
+
+    public void setRoleLevel(String roleLevel) {
+        this.roleLevel = roleLevel;
+    }
+
+    public Integer getIsSys() {
+        return isSys;
+    }
+
+    public void setIsSys(Integer isSys) {
+        this.isSys = isSys;
+    }
+
+    public Integer getEnabled() {
+        return enabled;
+    }
+
+    public void setEnabled(Integer enabled) {
+        this.enabled = enabled;
+    }
+
+    public Long getSort() {
+        return sort;
+    }
+
+    public void setSort(Long sort) {
+        this.sort = sort;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

+ 470 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/entity/SysUser.java

@@ -0,0 +1,470 @@
+package top.imwork.window.silos.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@TableName("sys_user")
+public class SysUser implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 用户id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 登录账号
+     */
+    private String loginName;
+    /**
+     * 登录密码
+     */
+    private String loginPassword;
+    /**
+     * 二次登录密码
+     */
+    private String secondLoginPassword;
+    /**
+     * 用户实名
+     */
+    private String userName;
+    /**
+     * 用户名拼音
+     */
+    private String userNamePinyin;
+    /**
+     * 用户姓名拼音缩写
+     */
+    private String userNameSpell;
+    /**
+     * 用户性别:0-男,1-女,2-保密
+     */
+    private String userGender;
+    /**
+     * 用户身份证
+     */
+    private String userIdCard;
+    /**
+     * 用户默认邮件地址
+     */
+    private String userEmail;
+    /**
+     * 用户默认手机号
+     */
+    private String userMobilPhone;
+    /**
+     * 用户默认地址
+     */
+    private String userAddress;
+    /**
+     * 用户详情
+     */
+    private String userDesc;
+    /**
+     * 用户类型 0为系统默认用户 ,1普通管理员,2为系统管理员,9超级管理员
+     */
+    private String userType;
+    /**
+     * 用户状态,默认为0,1代表无效,2是被锁定,3暂停使用
+     */
+    private String userStatus;
+    /**
+     * 用户头像 存储头像记录id
+     */
+    private String userAvatarId;
+    /**
+     * 用户昵称
+     */
+    private String userNickName;
+    /**
+     * 盐
+     */
+    private String salt;
+    /**
+     * 区分工号内外网.0.内网1.外网9.通用
+     */
+    private String dncnet;
+    /**
+     * 允许密码输入错误次数
+     */
+    private Integer allowedErrorTimes;
+    /**
+     * 登录错误次数
+     */
+    private Integer loginErrorTimes;
+    /**
+     * 是否支持单不同IP地址登录同一用户,0为不支持,1为支持
+     */
+    private String isDifferentIpLogin;
+    /**
+     * 最后登录时间
+     */
+    private Date lastLoginTime;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 默认排序
+     */
+    private Long sort;
+    /**
+     * 系统层级状态的数学表述(默认0正常 1删除 2受限操作)
+     */
+    private Integer state;
+    /**
+     * 系统层级状态(默认0正常 1删除 2受限操作)
+     */
+    private String status;
+    /**
+     * 是否刪除(默认0 未删除 1已删除)
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    @Override
+    public String toString() {
+        return "SysUser{" +
+                "id=" + id +
+                ", loginName='" + loginName + '\'' +
+                ", loginPassword='" + loginPassword + '\'' +
+                ", secondLoginPassword='" + secondLoginPassword + '\'' +
+                ", userName='" + userName + '\'' +
+                ", userNamePinyin='" + userNamePinyin + '\'' +
+                ", userNameSpell='" + userNameSpell + '\'' +
+                ", userGender='" + userGender + '\'' +
+                ", userIdCard='" + userIdCard + '\'' +
+                ", userEmail='" + userEmail + '\'' +
+                ", userMobilPhone='" + userMobilPhone + '\'' +
+                ", userAddress='" + userAddress + '\'' +
+                ", userDesc='" + userDesc + '\'' +
+                ", userType='" + userType + '\'' +
+                ", userStatus='" + userStatus + '\'' +
+                ", userAvatarId='" + userAvatarId + '\'' +
+                ", userNickName='" + userNickName + '\'' +
+                ", salt='" + salt + '\'' +
+                ", dncnet='" + dncnet + '\'' +
+                ", allowedErrorTimes=" + allowedErrorTimes +
+                ", loginErrorTimes=" + loginErrorTimes +
+                ", isDifferentIpLogin='" + isDifferentIpLogin + '\'' +
+                ", lastLoginTime=" + lastLoginTime +
+                ", enabled=" + enabled +
+                ", sort=" + sort +
+                ", state=" + state +
+                ", status='" + status + '\'' +
+                ", delFlag='" + delFlag + '\'' +
+                ", creator='" + creator + '\'' +
+                ", createTime=" + createTime +
+                ", modifier='" + modifier + '\'' +
+                ", updateTime=" + updateTime +
+                ", remark='" + remark + '\'' +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o == null || getClass() != o.getClass()) return false;
+        SysUser sysUser = (SysUser) o;
+        return Objects.equals(id, sysUser.id) && Objects.equals(loginName, sysUser.loginName) && Objects.equals(loginPassword, sysUser.loginPassword) && Objects.equals(secondLoginPassword, sysUser.secondLoginPassword) && Objects.equals(userName, sysUser.userName) && Objects.equals(userNamePinyin, sysUser.userNamePinyin) && Objects.equals(userNameSpell, sysUser.userNameSpell) && Objects.equals(userGender, sysUser.userGender) && Objects.equals(userIdCard, sysUser.userIdCard) && Objects.equals(userEmail, sysUser.userEmail) && Objects.equals(userMobilPhone, sysUser.userMobilPhone) && Objects.equals(userAddress, sysUser.userAddress) && Objects.equals(userDesc, sysUser.userDesc) && Objects.equals(userType, sysUser.userType) && Objects.equals(userStatus, sysUser.userStatus) && Objects.equals(userAvatarId, sysUser.userAvatarId) && Objects.equals(userNickName, sysUser.userNickName) && Objects.equals(salt, sysUser.salt) && Objects.equals(dncnet, sysUser.dncnet) && Objects.equals(allowedErrorTimes, sysUser.allowedErrorTimes) && Objects.equals(loginErrorTimes, sysUser.loginErrorTimes) && Objects.equals(isDifferentIpLogin, sysUser.isDifferentIpLogin) && Objects.equals(lastLoginTime, sysUser.lastLoginTime) && Objects.equals(enabled, sysUser.enabled) && Objects.equals(sort, sysUser.sort) && Objects.equals(state, sysUser.state) && Objects.equals(status, sysUser.status) && Objects.equals(delFlag, sysUser.delFlag) && Objects.equals(creator, sysUser.creator) && Objects.equals(createTime, sysUser.createTime) && Objects.equals(modifier, sysUser.modifier) && Objects.equals(updateTime, sysUser.updateTime) && Objects.equals(remark, sysUser.remark);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, loginName, loginPassword, secondLoginPassword, userName, userNamePinyin, userNameSpell, userGender, userIdCard, userEmail, userMobilPhone, userAddress, userDesc, userType, userStatus, userAvatarId, userNickName, salt, dncnet, allowedErrorTimes, loginErrorTimes, isDifferentIpLogin, lastLoginTime, enabled, sort, state, status, delFlag, creator, createTime, modifier, updateTime, remark);
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    public String getLoginPassword() {
+        return loginPassword;
+    }
+
+    public void setLoginPassword(String loginPassword) {
+        this.loginPassword = loginPassword;
+    }
+
+    public String getSecondLoginPassword() {
+        return secondLoginPassword;
+    }
+
+    public void setSecondLoginPassword(String secondLoginPassword) {
+        this.secondLoginPassword = secondLoginPassword;
+    }
+
+    public String getUserNamePinyin() {
+        return userNamePinyin;
+    }
+
+    public void setUserNamePinyin(String userNamePinyin) {
+        this.userNamePinyin = userNamePinyin;
+    }
+
+    public String getUserNameSpell() {
+        return userNameSpell;
+    }
+
+    public void setUserNameSpell(String userNameSpell) {
+        this.userNameSpell = userNameSpell;
+    }
+
+    public String getUserGender() {
+        return userGender;
+    }
+
+    public void setUserGender(String userGender) {
+        this.userGender = userGender;
+    }
+
+    public String getUserIdCard() {
+        return userIdCard;
+    }
+
+    public void setUserIdCard(String userIdCard) {
+        this.userIdCard = userIdCard;
+    }
+
+    public String getUserEmail() {
+        return userEmail;
+    }
+
+    public void setUserEmail(String userEmail) {
+        this.userEmail = userEmail;
+    }
+
+    public String getUserMobilPhone() {
+        return userMobilPhone;
+    }
+
+    public void setUserMobilPhone(String userMobilPhone) {
+        this.userMobilPhone = userMobilPhone;
+    }
+
+    public String getUserAddress() {
+        return userAddress;
+    }
+
+    public void setUserAddress(String userAddress) {
+        this.userAddress = userAddress;
+    }
+
+    public String getUserDesc() {
+        return userDesc;
+    }
+
+    public void setUserDesc(String userDesc) {
+        this.userDesc = userDesc;
+    }
+
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
+    public String getUserStatus() {
+        return userStatus;
+    }
+
+    public void setUserStatus(String userStatus) {
+        this.userStatus = userStatus;
+    }
+
+    public String getUserAvatarId() {
+        return userAvatarId;
+    }
+
+    public void setUserAvatarId(String userAvatarId) {
+        this.userAvatarId = userAvatarId;
+    }
+
+    public String getUserNickName() {
+        return userNickName;
+    }
+
+    public void setUserNickName(String userNickName) {
+        this.userNickName = userNickName;
+    }
+
+    public String getSalt() {
+        return salt;
+    }
+
+    public void setSalt(String salt) {
+        this.salt = salt;
+    }
+
+    public String getDncnet() {
+        return dncnet;
+    }
+
+    public void setDncnet(String dncnet) {
+        this.dncnet = dncnet;
+    }
+
+    public Integer getAllowedErrorTimes() {
+        return allowedErrorTimes;
+    }
+
+    public void setAllowedErrorTimes(Integer allowedErrorTimes) {
+        this.allowedErrorTimes = allowedErrorTimes;
+    }
+
+    public Integer getLoginErrorTimes() {
+        return loginErrorTimes;
+    }
+
+    public void setLoginErrorTimes(Integer loginErrorTimes) {
+        this.loginErrorTimes = loginErrorTimes;
+    }
+
+    public String getIsDifferentIpLogin() {
+        return isDifferentIpLogin;
+    }
+
+    public void setIsDifferentIpLogin(String isDifferentIpLogin) {
+        this.isDifferentIpLogin = isDifferentIpLogin;
+    }
+
+    public Date getLastLoginTime() {
+        return lastLoginTime;
+    }
+
+    public void setLastLoginTime(Date lastLoginTime) {
+        this.lastLoginTime = lastLoginTime;
+    }
+
+    public Integer getEnabled() {
+        return enabled;
+    }
+
+    public void setEnabled(Integer enabled) {
+        this.enabled = enabled;
+    }
+
+    public Long getSort() {
+        return sort;
+    }
+
+    public void setSort(Long sort) {
+        this.sort = sort;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

+ 95 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/entity/SysUserRole.java

@@ -0,0 +1,95 @@
+package top.imwork.window.silos.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@TableName("sys_user_role")
+public class SysUserRole implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+    /**
+     * 用户信息表id
+     */
+    private Long userId;
+    /**
+     * 角色信息表id
+     */
+    private Long roleId;
+    /**
+     * 设置角色管理员
+     */
+    private String creator;
+    /**
+     * 设置时间
+     */
+    private Date createTime;
+
+    @Override
+    public boolean equals(Object o) {
+        if (o == null || getClass() != o.getClass()) return false;
+        SysUserRole that = (SysUserRole) o;
+        return Objects.equals(id, that.id) && Objects.equals(userId, that.userId) && Objects.equals(roleId, that.roleId) && Objects.equals(creator, that.creator) && Objects.equals(createTime, that.createTime);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, userId, roleId, creator, createTime);
+    }
+
+    public Long getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId) {
+        this.roleId = roleId;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 233 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysRoleBO.java

@@ -0,0 +1,233 @@
+package top.imwork.window.silos.pojo.bo;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysRoleBO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * id
+     */
+    private Long id;
+    /**
+     * 父级角色
+     */
+    private Long parentId;
+    /**
+     * 角色分组 父级角色组id
+     */
+    private String parentIds;
+    /**
+     * 角色名称
+     */
+    private String roleName;
+    /**
+     * 角色类型0普通角色1普通管理员2区域管理员3平台管理员5系统管理员9超级管理员
+     */
+    private String roleType;
+    /**
+     * 角色描述
+     */
+    private String roleDesc;
+    /**
+     * 角色级别
+     */
+    private String roleLevel;
+    /**
+     * 是否系统数据0否1是
+     */
+    private Integer isSys;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 排序
+     */
+    private Long sort;
+    /**
+     * 状态:对问题在某一时刻进展情况的数学描述,默认0
+     */
+    private Integer state;
+    /**
+     * 状态字符类型
+     */
+    private String status;
+    /**
+     * 是否删除默认0.未删除,1已删除
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getRoleDesc() {
+        return roleDesc;
+    }
+
+    public void setRoleDesc(String roleDesc) {
+        this.roleDesc = roleDesc;
+    }
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getParentIds() {
+        return parentIds;
+    }
+
+    public void setParentIds(String parentIds) {
+        this.parentIds = parentIds;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+
+    public String getRoleType() {
+        return roleType;
+    }
+
+    public void setRoleType(String roleType) {
+        this.roleType = roleType;
+    }
+
+    public String getRoleLevel() {
+        return roleLevel;
+    }
+
+    public void setRoleLevel(String roleLevel) {
+        this.roleLevel = roleLevel;
+    }
+
+    public Integer getIsSys() {
+        return isSys;
+    }
+
+    public void setIsSys(Integer isSys) {
+        this.isSys = isSys;
+    }
+
+    public Integer getEnabled() {
+        return enabled;
+    }
+
+    public void setEnabled(Integer enabled) {
+        this.enabled = enabled;
+    }
+
+    public Long getSort() {
+        return sort;
+    }
+
+    public void setSort(Long sort) {
+        this.sort = sort;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

+ 15 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysRoleResultBO.java

@@ -0,0 +1,15 @@
+package top.imwork.window.silos.pojo.bo;
+
+import top.imwork.commons.core.pojo.BaseResult;
+import top.imwork.window.silos.pojo.dto.SysRoleListDTO;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysRoleResultBO extends BaseResult<SysRoleBO, SysRoleListDTO> {
+
+}

+ 413 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysUserBO.java

@@ -0,0 +1,413 @@
+package top.imwork.window.silos.pojo.bo;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserBO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 用户id
+     */
+    private Long id;
+    /**
+     * 登录账号
+     */
+    private String loginName;
+    /**
+     * 登录密码
+     */
+    private String loginPassword;
+    /**
+     * 二次登录密码
+     */
+    private String secondLoginPassword;
+    /**
+     * 用户实名
+     */
+    private String userName;
+    /**
+     * 用户名拼音
+     */
+    private String userNamePinyin;
+    /**
+     * 用户姓名拼音缩写
+     */
+    private String userNameSpell;
+    /**
+     * 用户性别:0-男,1-女,2-保密
+     */
+    private String userGender;
+    /**
+     * 用户身份证
+     */
+    private String userIdCard;
+    /**
+     * 用户默认邮件地址
+     */
+    private String userEmail;
+    /**
+     * 用户默认手机号
+     */
+    private String userMobilPhone;
+    /**
+     * 用户默认地址
+     */
+    private String userAddress;
+    /**
+     * 用户详情
+     */
+    private String userDesc;
+    /**
+     * 用户类型 0为系统默认用户 ,1普通管理员,2为系统管理员,9超级管理员
+     */
+    private String userType;
+    /**
+     * 用户状态,默认为0,1代表无效,2是被锁定,3暂停使用
+     */
+    private String userStatus;
+    /**
+     * 用户头像 存储头像记录id
+     */
+    private String userAvatarId;
+    /**
+     * 用户昵称
+     */
+    private String userNickName;
+    /**
+     * 盐
+     */
+    private String salt;
+    /**
+     * 区分工号内外网.0.内网1.外网9.通用
+     */
+    private String dncnet;
+    /**
+     * 允许密码输入错误次数
+     */
+    private Integer allowedErrorTimes;
+    /**
+     * 登录错误次数
+     */
+    private Integer loginErrorTimes;
+    /**
+     * 是否支持单不同IP地址登录同一用户,0为不支持,1为支持
+     */
+    private String isDifferentIpLogin;
+    /**
+     * 最后登录时间
+     */
+    private Date lastLoginTime;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 默认排序
+     */
+    private Long sort;
+    /**
+     * 系统层级状态的数学表述(默认0正常 1删除 2受限操作)
+     */
+    private Integer state;
+    /**
+     * 系统层级状态(默认0正常 1删除 2受限操作)
+     */
+    private String status;
+    /**
+     * 是否刪除(默认0 未删除 1已删除)
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getLoginPassword() {
+        return loginPassword;
+    }
+
+    public void setLoginPassword(String loginPassword) {
+        this.loginPassword = loginPassword;
+    }
+
+    public String getSecondLoginPassword() {
+        return secondLoginPassword;
+    }
+
+    public void setSecondLoginPassword(String secondLoginPassword) {
+        this.secondLoginPassword = secondLoginPassword;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserNamePinyin() {
+        return userNamePinyin;
+    }
+
+    public void setUserNamePinyin(String userNamePinyin) {
+        this.userNamePinyin = userNamePinyin;
+    }
+
+    public String getUserNameSpell() {
+        return userNameSpell;
+    }
+
+    public void setUserNameSpell(String userNameSpell) {
+        this.userNameSpell = userNameSpell;
+    }
+
+    public String getUserGender() {
+        return userGender;
+    }
+
+    public void setUserGender(String userGender) {
+        this.userGender = userGender;
+    }
+
+    public String getUserIdCard() {
+        return userIdCard;
+    }
+
+    public void setUserIdCard(String userIdCard) {
+        this.userIdCard = userIdCard;
+    }
+
+    public String getUserEmail() {
+        return userEmail;
+    }
+
+    public void setUserEmail(String userEmail) {
+        this.userEmail = userEmail;
+    }
+
+    public String getUserMobilPhone() {
+        return userMobilPhone;
+    }
+
+    public void setUserMobilPhone(String userMobilPhone) {
+        this.userMobilPhone = userMobilPhone;
+    }
+
+    public String getUserAddress() {
+        return userAddress;
+    }
+
+    public void setUserAddress(String userAddress) {
+        this.userAddress = userAddress;
+    }
+
+    public String getUserDesc() {
+        return userDesc;
+    }
+
+    public void setUserDesc(String userDesc) {
+        this.userDesc = userDesc;
+    }
+
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
+    public String getUserStatus() {
+        return userStatus;
+    }
+
+    public void setUserStatus(String userStatus) {
+        this.userStatus = userStatus;
+    }
+
+    public String getUserAvatarId() {
+        return userAvatarId;
+    }
+
+    public void setUserAvatarId(String userAvatarId) {
+        this.userAvatarId = userAvatarId;
+    }
+
+    public String getUserNickName() {
+        return userNickName;
+    }
+
+    public void setUserNickName(String userNickName) {
+        this.userNickName = userNickName;
+    }
+
+    public String getSalt() {
+        return salt;
+    }
+
+    public void setSalt(String salt) {
+        this.salt = salt;
+    }
+
+    public String getDncnet() {
+        return dncnet;
+    }
+
+    public void setDncnet(String dncnet) {
+        this.dncnet = dncnet;
+    }
+
+    public Integer getAllowedErrorTimes() {
+        return allowedErrorTimes;
+    }
+
+    public void setAllowedErrorTimes(Integer allowedErrorTimes) {
+        this.allowedErrorTimes = allowedErrorTimes;
+    }
+
+    public Integer getLoginErrorTimes() {
+        return loginErrorTimes;
+    }
+
+    public void setLoginErrorTimes(Integer loginErrorTimes) {
+        this.loginErrorTimes = loginErrorTimes;
+    }
+
+    public String getIsDifferentIpLogin() {
+        return isDifferentIpLogin;
+    }
+
+    public void setIsDifferentIpLogin(String isDifferentIpLogin) {
+        this.isDifferentIpLogin = isDifferentIpLogin;
+    }
+
+    public Date getLastLoginTime() {
+        return lastLoginTime;
+    }
+
+    public void setLastLoginTime(Date lastLoginTime) {
+        this.lastLoginTime = lastLoginTime;
+    }
+
+    public Integer getEnabled() {
+        return enabled;
+    }
+
+    public void setEnabled(Integer enabled) {
+        this.enabled = enabled;
+    }
+
+    public Long getSort() {
+        return sort;
+    }
+
+    public void setSort(Long sort) {
+        this.sort = sort;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

+ 15 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysUserResultBO.java

@@ -0,0 +1,15 @@
+package top.imwork.window.silos.pojo.bo;
+
+import top.imwork.commons.core.pojo.BaseResult;
+import top.imwork.window.silos.pojo.dto.SysUserListDTO;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserResultBO extends BaseResult<SysUserBO, SysUserListDTO> {
+
+}

+ 77 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysUserRoleBO.java

@@ -0,0 +1,77 @@
+package top.imwork.window.silos.pojo.bo;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserRoleBO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 用户信息表id
+     */
+    private Long userId;
+    /**
+     * 角色信息表id
+     */
+    private Long roleId;
+    /**
+     * 设置角色管理员
+     */
+    private String creator;
+    /**
+     * 设置时间
+     */
+    private Date createTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId) {
+        this.roleId = roleId;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 15 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/bo/SysUserRoleResultBO.java

@@ -0,0 +1,15 @@
+package top.imwork.window.silos.pojo.bo;
+
+import top.imwork.commons.core.pojo.BaseResult;
+import top.imwork.window.silos.pojo.dto.SysUserRoleListDTO;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserRoleResultBO extends BaseResult<SysUserRoleBO, SysUserRoleListDTO> {
+
+}

+ 92 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysRoleDTO.java

@@ -0,0 +1,92 @@
+package top.imwork.window.silos.pojo.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@Data
+public class SysRoleDTO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * id
+     */
+    private Long id;
+    /**
+     * 父级角色
+     */
+    private Long parentId;
+    /**
+     * 角色分组 父级角色组id
+     */
+    private String parentIds;
+    /**
+     * 角色名称
+     */
+    private String roleName;
+    /**
+     * 角色类型0普通角色1普通管理员2区域管理员3平台管理员5系统管理员9超级管理员
+     */
+    private String roleType;
+    /**
+     * 角色描述
+     */
+    private String roleDesc;
+    /**
+     * 角色级别
+     */
+    private String roleLevel;
+    /**
+     * 是否系统数据0否1是
+     */
+    private Integer isSys;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 排序
+     */
+    private Long sort;
+    /**
+     * 状态:对问题在某一时刻进展情况的数学描述,默认0
+     */
+    private Integer state;
+    /**
+     * 状态字符类型
+     */
+    private String status;
+    /**
+     * 是否删除默认0.未删除,1已删除
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 23 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysRoleListDTO.java

@@ -0,0 +1,23 @@
+package top.imwork.window.silos.pojo.dto;
+
+
+import top.imwork.commons.core.pojo.BaseParams;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysRoleListDTO extends BaseParams {
+    private String sysRoleName;
+
+    public String getSysRoleName() {
+        return sysRoleName;
+    }
+
+    public void setSysRoleName(String sysRoleName) {
+        this.sysRoleName = sysRoleName;
+    }
+}

+ 152 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysUserDTO.java

@@ -0,0 +1,152 @@
+package top.imwork.window.silos.pojo.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@Data
+public class SysUserDTO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 用户id
+     */
+    private Long id;
+    /**
+     * 登录账号
+     */
+    private String loginName;
+    /**
+     * 登录密码
+     */
+    private String loginPassword;
+    /**
+     * 二次登录密码
+     */
+    private String secondLoginPassword;
+    /**
+     * 用户实名
+     */
+    private String userName;
+    /**
+     * 用户名拼音
+     */
+    private String userNamePinyin;
+    /**
+     * 用户姓名拼音缩写
+     */
+    private String userNameSpell;
+    /**
+     * 用户性别:0-男,1-女,2-保密
+     */
+    private String userGender;
+    /**
+     * 用户身份证
+     */
+    private String userIdCard;
+    /**
+     * 用户默认邮件地址
+     */
+    private String userEmail;
+    /**
+     * 用户默认手机号
+     */
+    private String userMobilPhone;
+    /**
+     * 用户默认地址
+     */
+    private String userAddress;
+    /**
+     * 用户详情
+     */
+    private String userDesc;
+    /**
+     * 用户类型 0为系统默认用户 ,1普通管理员,2为系统管理员,9超级管理员
+     */
+    private String userType;
+    /**
+     * 用户状态,默认为0,1代表无效,2是被锁定,3暂停使用
+     */
+    private String userStatus;
+    /**
+     * 用户头像 存储头像记录id
+     */
+    private String userAvatarId;
+    /**
+     * 用户昵称
+     */
+    private String userNickName;
+    /**
+     * 盐
+     */
+    private String salt;
+    /**
+     * 区分工号内外网.0.内网1.外网9.通用
+     */
+    private String dncnet;
+    /**
+     * 允许密码输入错误次数
+     */
+    private Integer allowedErrorTimes;
+    /**
+     * 登录错误次数
+     */
+    private Integer loginErrorTimes;
+    /**
+     * 是否支持单不同IP地址登录同一用户,0为不支持,1为支持
+     */
+    private String isDifferentIpLogin;
+    /**
+     * 最后登录时间
+     */
+    private Date lastLoginTime;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 默认排序
+     */
+    private Long sort;
+    /**
+     * 系统层级状态的数学表述(默认0正常 1删除 2受限操作)
+     */
+    private Integer state;
+    /**
+     * 系统层级状态(默认0正常 1删除 2受限操作)
+     */
+    private String status;
+    /**
+     * 是否刪除(默认0 未删除 1已删除)
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 23 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysUserListDTO.java

@@ -0,0 +1,23 @@
+package top.imwork.window.silos.pojo.dto;
+
+
+import top.imwork.commons.core.pojo.BaseParams;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserListDTO extends BaseParams {
+    private String sysUserName;
+
+    public String getSysUserName() {
+        return sysUserName;
+    }
+
+    public void setSysUserName(String sysUserName) {
+        this.sysUserName = sysUserName;
+    }
+}

+ 40 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysUserRoleDTO.java

@@ -0,0 +1,40 @@
+package top.imwork.window.silos.pojo.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@Data
+public class SysUserRoleDTO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 用户信息表id
+     */
+    private Long userId;
+    /**
+     * 角色信息表id
+     */
+    private Long roleId;
+    /**
+     * 设置角色管理员
+     */
+    private String creator;
+    /**
+     * 设置时间
+     */
+    private Date createTime;
+}

+ 23 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/dto/SysUserRoleListDTO.java

@@ -0,0 +1,23 @@
+package top.imwork.window.silos.pojo.dto;
+
+
+import top.imwork.commons.core.pojo.BaseParams;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserRoleListDTO extends BaseParams {
+    private String sysUserRoleName;
+
+    public String getSysUserRoleName() {
+        return sysUserRoleName;
+    }
+
+    public void setSysUserRoleName(String sysUserRoleName) {
+        this.sysUserRoleName = sysUserRoleName;
+    }
+}

+ 23 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysRoleListParamVO.java

@@ -0,0 +1,23 @@
+package top.imwork.window.silos.pojo.po;
+
+
+import top.imwork.commons.core.pojo.BaseParams;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysRoleListParamVO extends BaseParams {
+    private String SysRoleName;
+
+    public String getSysRoleName() {
+        return SysRoleName;
+    }
+
+    public void setSysRoleName(String sysRoleName) {
+        SysRoleName = sysRoleName;
+    }
+}

+ 92 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysRoleParamVO.java

@@ -0,0 +1,92 @@
+package top.imwork.window.silos.pojo.po;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@Data
+public class SysRoleParamVO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * id
+     */
+    private Long id;
+    /**
+     * 父级角色
+     */
+    private Long parentId;
+    /**
+     * 角色分组 父级角色组id
+     */
+    private String parentIds;
+    /**
+     * 角色名称
+     */
+    private String roleName;
+    /**
+     * 角色类型0普通角色1普通管理员2区域管理员3平台管理员5系统管理员9超级管理员
+     */
+    private String roleType;
+    /**
+     * 角色描述
+     */
+    private String roleDesc;
+    /**
+     * 角色级别
+     */
+    private String roleLevel;
+    /**
+     * 是否系统数据0否1是
+     */
+    private Integer isSys;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 排序
+     */
+    private Long sort;
+    /**
+     * 状态:对问题在某一时刻进展情况的数学描述,默认0
+     */
+    private Integer state;
+    /**
+     * 状态字符类型
+     */
+    private String status;
+    /**
+     * 是否删除默认0.未删除,1已删除
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 23 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysUserListParamVO.java

@@ -0,0 +1,23 @@
+package top.imwork.window.silos.pojo.po;
+
+
+import top.imwork.commons.core.pojo.BaseParams;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserListParamVO extends BaseParams {
+    private String SysUserName;
+
+    public String getSysUserName() {
+        return SysUserName;
+    }
+
+    public void setSysUserName(String sysUserName) {
+        SysUserName = sysUserName;
+    }
+}

+ 152 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysUserParamVO.java

@@ -0,0 +1,152 @@
+package top.imwork.window.silos.pojo.po;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@Data
+public class SysUserParamVO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 用户id
+     */
+    private Long id;
+    /**
+     * 登录账号
+     */
+    private String loginName;
+    /**
+     * 登录密码
+     */
+    private String loginPassword;
+    /**
+     * 二次登录密码
+     */
+    private String secondLoginPassword;
+    /**
+     * 用户实名
+     */
+    private String userName;
+    /**
+     * 用户名拼音
+     */
+    private String userNamePinyin;
+    /**
+     * 用户姓名拼音缩写
+     */
+    private String userNameSpell;
+    /**
+     * 用户性别:0-男,1-女,2-保密
+     */
+    private String userGender;
+    /**
+     * 用户身份证
+     */
+    private String userIdCard;
+    /**
+     * 用户默认邮件地址
+     */
+    private String userEmail;
+    /**
+     * 用户默认手机号
+     */
+    private String userMobilPhone;
+    /**
+     * 用户默认地址
+     */
+    private String userAddress;
+    /**
+     * 用户详情
+     */
+    private String userDesc;
+    /**
+     * 用户类型 0为系统默认用户 ,1普通管理员,2为系统管理员,9超级管理员
+     */
+    private String userType;
+    /**
+     * 用户状态,默认为0,1代表无效,2是被锁定,3暂停使用
+     */
+    private String userStatus;
+    /**
+     * 用户头像 存储头像记录id
+     */
+    private String userAvatarId;
+    /**
+     * 用户昵称
+     */
+    private String userNickName;
+    /**
+     * 盐
+     */
+    private String salt;
+    /**
+     * 区分工号内外网.0.内网1.外网9.通用
+     */
+    private String dncnet;
+    /**
+     * 允许密码输入错误次数
+     */
+    private Integer allowedErrorTimes;
+    /**
+     * 登录错误次数
+     */
+    private Integer loginErrorTimes;
+    /**
+     * 是否支持单不同IP地址登录同一用户,0为不支持,1为支持
+     */
+    private String isDifferentIpLogin;
+    /**
+     * 最后登录时间
+     */
+    private Date lastLoginTime;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 默认排序
+     */
+    private Long sort;
+    /**
+     * 系统层级状态的数学表述(默认0正常 1删除 2受限操作)
+     */
+    private Integer state;
+    /**
+     * 系统层级状态(默认0正常 1删除 2受限操作)
+     */
+    private String status;
+    /**
+     * 是否刪除(默认0 未删除 1已删除)
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 23 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysUserRoleListParamVO.java

@@ -0,0 +1,23 @@
+package top.imwork.window.silos.pojo.po;
+
+
+import top.imwork.commons.core.pojo.BaseParams;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserRoleListParamVO extends BaseParams {
+    private String SysUserRoleName;
+
+    public String getSysUserRoleName() {
+        return SysUserRoleName;
+    }
+
+    public void setSysUserRoleName(String sysUserRoleName) {
+        SysUserRoleName = sysUserRoleName;
+    }
+}

+ 40 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/po/SysUserRoleParamVO.java

@@ -0,0 +1,40 @@
+package top.imwork.window.silos.pojo.po;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@Data
+public class SysUserRoleParamVO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 用户信息表id
+     */
+    private Long userId;
+    /**
+     * 角色信息表id
+     */
+    private Long roleId;
+    /**
+     * 设置角色管理员
+     */
+    private String creator;
+    /**
+     * 设置时间
+     */
+    private Date createTime;
+}

+ 15 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysRoleResultVO.java

@@ -0,0 +1,15 @@
+package top.imwork.window.silos.pojo.vo;
+
+import top.imwork.commons.core.pojo.BaseResult;
+import top.imwork.window.silos.pojo.po.SysRoleListParamVO;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysRoleResultVO extends BaseResult<SysRoleVO, SysRoleListParamVO> {
+
+}

+ 93 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysRoleVO.java

@@ -0,0 +1,93 @@
+package top.imwork.window.silos.pojo.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *〈功能简述〉
+ * 角色信息响应消息体
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@Data
+public class SysRoleVO implements Serializable{
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * id
+     */
+    private Long id;
+    /**
+     * 父级角色
+     */
+    private Long parentId;
+    /**
+     * 角色分组 父级角色组id
+     */
+    private String parentIds;
+    /**
+     * 角色名称
+     */
+    private String roleName;
+    /**
+     * 角色类型0普通角色1普通管理员2区域管理员3平台管理员5系统管理员9超级管理员
+     */
+    private String roleType;
+    /**
+     * 角色描述
+     */
+    private String roleDesc;
+    /**
+     * 角色级别
+     */
+    private String roleLevel;
+    /**
+     * 是否系统数据0否1是
+     */
+    private Integer isSys;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 排序
+     */
+    private Long sort;
+    /**
+     * 状态:对问题在某一时刻进展情况的数学描述,默认0
+     */
+    private Integer state;
+    /**
+     * 状态字符类型
+     */
+    private String status;
+    /**
+     * 是否删除默认0.未删除,1已删除
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 15 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysUserResultVO.java

@@ -0,0 +1,15 @@
+package top.imwork.window.silos.pojo.vo;
+
+import top.imwork.commons.core.pojo.BaseResult;
+import top.imwork.window.silos.pojo.po.SysUserListParamVO;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserResultVO extends BaseResult<SysUserVO, SysUserListParamVO> {
+
+}

+ 15 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysUserRoleResultVO.java

@@ -0,0 +1,15 @@
+package top.imwork.window.silos.pojo.vo;
+
+import top.imwork.commons.core.pojo.BaseResult;
+import top.imwork.window.silos.pojo.po.SysUserRoleListParamVO;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public class SysUserRoleResultVO extends BaseResult<SysUserRoleVO, SysUserRoleListParamVO> {
+
+}

+ 41 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysUserRoleVO.java

@@ -0,0 +1,41 @@
+package top.imwork.window.silos.pojo.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *〈功能简述〉
+ * 用户与角色关联信息响应消息体
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@Data
+public class SysUserRoleVO implements Serializable{
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 用户信息表id
+     */
+    private Long userId;
+    /**
+     * 角色信息表id
+     */
+    private Long roleId;
+    /**
+     * 设置角色管理员
+     */
+    private String creator;
+    /**
+     * 设置时间
+     */
+    private Date createTime;
+}

+ 153 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/pojo/vo/SysUserVO.java

@@ -0,0 +1,153 @@
+package top.imwork.window.silos.pojo.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *〈功能简述〉
+ * 用户信息响应消息体
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+@Data
+public class SysUserVO implements Serializable{
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 用户id
+     */
+    private Long id;
+    /**
+     * 登录账号
+     */
+    private String loginName;
+    /**
+     * 登录密码
+     */
+    private String loginPassword;
+    /**
+     * 二次登录密码
+     */
+    private String secondLoginPassword;
+    /**
+     * 用户实名
+     */
+    private String userName;
+    /**
+     * 用户名拼音
+     */
+    private String userNamePinyin;
+    /**
+     * 用户姓名拼音缩写
+     */
+    private String userNameSpell;
+    /**
+     * 用户性别:0-男,1-女,2-保密
+     */
+    private String userGender;
+    /**
+     * 用户身份证
+     */
+    private String userIdCard;
+    /**
+     * 用户默认邮件地址
+     */
+    private String userEmail;
+    /**
+     * 用户默认手机号
+     */
+    private String userMobilPhone;
+    /**
+     * 用户默认地址
+     */
+    private String userAddress;
+    /**
+     * 用户详情
+     */
+    private String userDesc;
+    /**
+     * 用户类型 0为系统默认用户 ,1普通管理员,2为系统管理员,9超级管理员
+     */
+    private String userType;
+    /**
+     * 用户状态,默认为0,1代表无效,2是被锁定,3暂停使用
+     */
+    private String userStatus;
+    /**
+     * 用户头像 存储头像记录id
+     */
+    private String userAvatarId;
+    /**
+     * 用户昵称
+     */
+    private String userNickName;
+    /**
+     * 盐
+     */
+    private String salt;
+    /**
+     * 区分工号内外网.0.内网1.外网9.通用
+     */
+    private String dncnet;
+    /**
+     * 允许密码输入错误次数
+     */
+    private Integer allowedErrorTimes;
+    /**
+     * 登录错误次数
+     */
+    private Integer loginErrorTimes;
+    /**
+     * 是否支持单不同IP地址登录同一用户,0为不支持,1为支持
+     */
+    private String isDifferentIpLogin;
+    /**
+     * 最后登录时间
+     */
+    private Date lastLoginTime;
+    /**
+     * 启用0否1是
+     */
+    private Integer enabled;
+    /**
+     * 默认排序
+     */
+    private Long sort;
+    /**
+     * 系统层级状态的数学表述(默认0正常 1删除 2受限操作)
+     */
+    private Integer state;
+    /**
+     * 系统层级状态(默认0正常 1删除 2受限操作)
+     */
+    private String status;
+    /**
+     * 是否刪除(默认0 未删除 1已删除)
+     */
+    private String delFlag;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 52 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/ISysRoleService.java

@@ -0,0 +1,52 @@
+package top.imwork.window.silos.service;
+
+import top.imwork.window.silos.pojo.bo.SysRoleBO;
+import top.imwork.window.silos.pojo.bo.SysRoleResultBO;
+import top.imwork.window.silos.pojo.dto.SysRoleListDTO;
+import top.imwork.window.silos.pojo.dto.SysRoleDTO;
+
+/**
+ * 角色信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public interface ISysRoleService{
+
+    /**
+     * 根据角色信息id获取角色信息详情
+     * @param id 角色信息id
+     * @return SysRoleBO 角色信息详情
+     */
+    SysRoleBO info(Long id);
+
+    /**
+     * 新增/修改 信息
+     * @param sysRoleDTO 要保存的信息
+     * @return SysRoleBO 保存后的信息
+     */
+    SysRoleBO save(SysRoleDTO sysRoleDTO);
+
+    /**
+     * 根据id删除信息
+     * @param id id
+     * @return true/false 是否删除成功
+     */
+    Boolean delete(Long id);
+
+    /**
+     * 根据ids删除信息
+     * @param ids ids
+     * @return true/false 是否删除成功
+     */
+    Boolean deleteByIds(String[] ids);
+
+    /**
+     * 分页查询信息
+     * @param sysRoleListDTO 分页信息
+     * @return SysRoleResultBO 查询结果
+     */
+    SysRoleResultBO queryPage(SysRoleListDTO sysRoleListDTO);
+}
+

+ 52 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/ISysUserRoleService.java

@@ -0,0 +1,52 @@
+package top.imwork.window.silos.service;
+
+import top.imwork.window.silos.pojo.bo.SysUserRoleBO;
+import top.imwork.window.silos.pojo.bo.SysUserRoleResultBO;
+import top.imwork.window.silos.pojo.dto.SysUserRoleListDTO;
+import top.imwork.window.silos.pojo.dto.SysUserRoleDTO;
+
+/**
+ * 用户与角色关联信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public interface ISysUserRoleService{
+
+    /**
+     * 根据用户与角色关联信息id获取用户与角色关联信息详情
+     * @param id 用户与角色关联信息id
+     * @return SysUserRoleBO 用户与角色关联信息详情
+     */
+    SysUserRoleBO info(Long id);
+
+    /**
+     * 新增/修改 信息
+     * @param sysUserRoleDTO 要保存的信息
+     * @return SysUserRoleBO 保存后的信息
+     */
+    SysUserRoleBO save(SysUserRoleDTO sysUserRoleDTO);
+
+    /**
+     * 根据id删除信息
+     * @param id id
+     * @return true/false 是否删除成功
+     */
+    Boolean delete(Long id);
+
+    /**
+     * 根据ids删除信息
+     * @param ids ids
+     * @return true/false 是否删除成功
+     */
+    Boolean deleteByIds(String[] ids);
+
+    /**
+     * 分页查询信息
+     * @param sysUserRoleListDTO 分页信息
+     * @return SysUserRoleResultBO 查询结果
+     */
+    SysUserRoleResultBO queryPage(SysUserRoleListDTO sysUserRoleListDTO);
+}
+

+ 52 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/ISysUserService.java

@@ -0,0 +1,52 @@
+package top.imwork.window.silos.service;
+
+import top.imwork.window.silos.pojo.bo.SysUserBO;
+import top.imwork.window.silos.pojo.bo.SysUserResultBO;
+import top.imwork.window.silos.pojo.dto.SysUserListDTO;
+import top.imwork.window.silos.pojo.dto.SysUserDTO;
+
+/**
+ * 用户信息
+ *
+ * @author jiangxiaowei
+ * email: e-jiangxiaowei@outlook.com
+ * date: 2025-12-09 16:29:22
+ */
+public interface ISysUserService{
+
+    /**
+     * 根据用户信息id获取用户信息详情
+     * @param id 用户信息id
+     * @return SysUserBO 用户信息详情
+     */
+    SysUserBO info(Long id);
+
+    /**
+     * 新增/修改 信息
+     * @param sysUserDTO 要保存的信息
+     * @return SysUserBO 保存后的信息
+     */
+    SysUserBO save(SysUserDTO sysUserDTO);
+
+    /**
+     * 根据id删除信息
+     * @param id id
+     * @return true/false 是否删除成功
+     */
+    Boolean delete(Long id);
+
+    /**
+     * 根据ids删除信息
+     * @param ids ids
+     * @return true/false 是否删除成功
+     */
+    Boolean deleteByIds(String[] ids);
+
+    /**
+     * 分页查询信息
+     * @param sysUserListDTO 分页信息
+     * @return SysUserResultBO 查询结果
+     */
+    SysUserResultBO queryPage(SysUserListDTO sysUserListDTO);
+}
+

+ 106 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/impl/SysRoleServiceImpl.java

@@ -0,0 +1,106 @@
+package top.imwork.window.silos.service.impl;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+import jakarta.annotation.Resource;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import top.imwork.commons.core.utils.StringUtils;
+import top.imwork.window.silos.dao.SysRoleDao;
+import top.imwork.window.silos.entity.SysRole;
+import top.imwork.window.silos.pojo.bo.SysRoleBO;
+import top.imwork.window.silos.pojo.bo.SysRoleResultBO;
+import top.imwork.window.silos.pojo.dto.SysRoleDTO;
+import top.imwork.window.silos.pojo.dto.SysRoleListDTO;
+import top.imwork.window.silos.service.ISysRoleService;
+import top.imwork.window.silos.convert.SysRoleConvert;
+
+@Service("sysRoleService")
+public class SysRoleServiceImpl extends ServiceImpl<SysRoleDao,SysRole> implements ISysRoleService {
+    @Resource
+    private SysRoleDao sysRoleDao;
+
+    /**
+     * 根据id获取信息
+     * @param id 用户id
+     * @return SysRoleBO 响应信息
+     */
+    @Override
+    public SysRoleBO info(Long id) {
+        SysRole sysRole = sysRoleDao.info(id);
+        return SysRoleConvert.sysRoleDoToBo(sysRole);
+    }
+
+    /**
+     * 新增/更新信息
+     * @param sysRoleDTO 信息
+     * @return sysRoleBO 更新后信息
+     */
+    @Override
+    public SysRoleBO save(SysRoleDTO sysRoleDTO) {
+        SysRole sysRole = SysRoleConvert.sysRoleDtoToDo(sysRoleDTO);
+        if (ObjectUtils.isEmpty(sysRole.getId())) {
+            sysRoleDao.insert(sysRole);
+        } else {
+            sysRoleDao.updateById(sysRole);
+        }
+        return SysRoleConvert.sysRoleDoToBo(sysRole);
+    }
+
+    /**
+     * 根据id删除信息
+     * @param id id
+     * @return true/false 是否删除成功
+     */
+    @Override
+    public Boolean delete(Long id) {
+        return sysRoleDao.deleteById(id) == 1 ? Boolean.TRUE : Boolean.FALSE;
+    }
+
+    @Override
+    public Boolean deleteByIds(String[] ids) {
+        return sysRoleDao.deleteByIds(ids) > 0 ? Boolean.TRUE : Boolean.FALSE;
+    }
+
+    @Override
+    public SysRoleResultBO queryPage(SysRoleListDTO sysRoleListDTO) {
+        QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
+
+        if (!StringUtils.isEmpty(sysRoleListDTO.getSysRoleName())) {
+            queryWrapper.like("sysRole_name", sysRoleListDTO.getSysRoleName());
+        }
+
+        if (!StringUtils.isEmpty(sysRoleListDTO.getCreateBeginTime())) {
+            queryWrapper.apply("create_time >= '" + sysRoleListDTO.getCreateBeginTime() + "'");
+        }
+
+        if (!StringUtils.isEmpty(sysRoleListDTO.getCreateEndTime())) {
+            queryWrapper.apply("create_time <= '" + sysRoleListDTO.getCreateEndTime() + "'");
+        }
+
+        if (!StringUtils.isEmpty(sysRoleListDTO.getUpdateBeginTime())) {
+            queryWrapper.apply("update_time >= '" + sysRoleListDTO.getUpdateBeginTime() + "'");
+        }
+
+        if (!StringUtils.isEmpty(sysRoleListDTO.getUpdateEndTime())) {
+            queryWrapper.apply("update_time <= '" + sysRoleListDTO.getUpdateEndTime() + "'");
+        }
+
+        Page<SysRole> page = new Page<>(sysRoleListDTO.getPageNo(), sysRoleListDTO.getPageRows());
+        IPage<SysRole> iPage = sysRoleDao.queryPage(page, queryWrapper);
+
+        SysRoleResultBO resultBO = new SysRoleResultBO();
+        resultBO.setPageNo(sysRoleListDTO.getPageNo());
+        resultBO.setPageRows(sysRoleListDTO.getPageRows());
+        resultBO.setPageCount((int) iPage.getPages());
+        resultBO.setTotalRows((int) iPage.getTotal());
+        resultBO.setDataList(SysRoleConvert.sysRoleListToSysRoleBOList(iPage.getRecords()));
+        resultBO.setParams(sysRoleListDTO);
+
+        return resultBO;
+    }
+}

+ 106 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/impl/SysUserRoleServiceImpl.java

@@ -0,0 +1,106 @@
+package top.imwork.window.silos.service.impl;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+import jakarta.annotation.Resource;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import top.imwork.commons.core.utils.StringUtils;
+import top.imwork.window.silos.dao.SysUserRoleDao;
+import top.imwork.window.silos.entity.SysUserRole;
+import top.imwork.window.silos.pojo.bo.SysUserRoleBO;
+import top.imwork.window.silos.pojo.bo.SysUserRoleResultBO;
+import top.imwork.window.silos.pojo.dto.SysUserRoleDTO;
+import top.imwork.window.silos.pojo.dto.SysUserRoleListDTO;
+import top.imwork.window.silos.service.ISysUserRoleService;
+import top.imwork.window.silos.convert.SysUserRoleConvert;
+
+@Service("sysUserRoleService")
+public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleDao,SysUserRole> implements ISysUserRoleService {
+    @Resource
+    private SysUserRoleDao sysUserRoleDao;
+
+    /**
+     * 根据id获取信息
+     * @param id 用户id
+     * @return SysUserRoleBO 响应信息
+     */
+    @Override
+    public SysUserRoleBO info(Long id) {
+        SysUserRole sysUserRole = sysUserRoleDao.info(id);
+        return SysUserRoleConvert.sysUserRoleDoToBo(sysUserRole);
+    }
+
+    /**
+     * 新增/更新信息
+     * @param sysUserRoleDTO 信息
+     * @return sysUserRoleBO 更新后信息
+     */
+    @Override
+    public SysUserRoleBO save(SysUserRoleDTO sysUserRoleDTO) {
+        SysUserRole sysUserRole = SysUserRoleConvert.sysUserRoleDtoToDo(sysUserRoleDTO);
+        if (ObjectUtils.isEmpty(sysUserRole.getId())) {
+            sysUserRoleDao.insert(sysUserRole);
+        } else {
+            sysUserRoleDao.updateById(sysUserRole);
+        }
+        return SysUserRoleConvert.sysUserRoleDoToBo(sysUserRole);
+    }
+
+    /**
+     * 根据id删除信息
+     * @param id id
+     * @return true/false 是否删除成功
+     */
+    @Override
+    public Boolean delete(Long id) {
+        return sysUserRoleDao.deleteById(id) == 1 ? Boolean.TRUE : Boolean.FALSE;
+    }
+
+    @Override
+    public Boolean deleteByIds(String[] ids) {
+        return sysUserRoleDao.deleteByIds(ids) > 0 ? Boolean.TRUE : Boolean.FALSE;
+    }
+
+    @Override
+    public SysUserRoleResultBO queryPage(SysUserRoleListDTO sysUserRoleListDTO) {
+        QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<>();
+
+        if (!StringUtils.isEmpty(sysUserRoleListDTO.getSysUserRoleName())) {
+            queryWrapper.like("sysUserRole_name", sysUserRoleListDTO.getSysUserRoleName());
+        }
+
+        if (!StringUtils.isEmpty(sysUserRoleListDTO.getCreateBeginTime())) {
+            queryWrapper.apply("create_time >= '" + sysUserRoleListDTO.getCreateBeginTime() + "'");
+        }
+
+        if (!StringUtils.isEmpty(sysUserRoleListDTO.getCreateEndTime())) {
+            queryWrapper.apply("create_time <= '" + sysUserRoleListDTO.getCreateEndTime() + "'");
+        }
+
+        if (!StringUtils.isEmpty(sysUserRoleListDTO.getUpdateBeginTime())) {
+            queryWrapper.apply("update_time >= '" + sysUserRoleListDTO.getUpdateBeginTime() + "'");
+        }
+
+        if (!StringUtils.isEmpty(sysUserRoleListDTO.getUpdateEndTime())) {
+            queryWrapper.apply("update_time <= '" + sysUserRoleListDTO.getUpdateEndTime() + "'");
+        }
+
+        Page<SysUserRole> page = new Page<>(sysUserRoleListDTO.getPageNo(), sysUserRoleListDTO.getPageRows());
+        IPage<SysUserRole> iPage = sysUserRoleDao.queryPage(page, queryWrapper);
+
+        SysUserRoleResultBO resultBO = new SysUserRoleResultBO();
+        resultBO.setPageNo(sysUserRoleListDTO.getPageNo());
+        resultBO.setPageRows(sysUserRoleListDTO.getPageRows());
+        resultBO.setPageCount((int) iPage.getPages());
+        resultBO.setTotalRows((int) iPage.getTotal());
+        resultBO.setDataList(SysUserRoleConvert.sysUserRoleListToSysUserRoleBOList(iPage.getRecords()));
+        resultBO.setParams(sysUserRoleListDTO);
+
+        return resultBO;
+    }
+}

+ 106 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/impl/SysUserServiceImpl.java

@@ -0,0 +1,106 @@
+package top.imwork.window.silos.service.impl;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+import jakarta.annotation.Resource;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import top.imwork.commons.core.utils.StringUtils;
+import top.imwork.window.silos.dao.SysUserDao;
+import top.imwork.window.silos.entity.SysUser;
+import top.imwork.window.silos.pojo.bo.SysUserBO;
+import top.imwork.window.silos.pojo.bo.SysUserResultBO;
+import top.imwork.window.silos.pojo.dto.SysUserDTO;
+import top.imwork.window.silos.pojo.dto.SysUserListDTO;
+import top.imwork.window.silos.service.ISysUserService;
+import top.imwork.window.silos.convert.SysUserConvert;
+
+@Service("sysUserService")
+public class SysUserServiceImpl extends ServiceImpl<SysUserDao,SysUser> implements ISysUserService {
+    @Resource
+    private SysUserDao sysUserDao;
+
+    /**
+     * 根据id获取信息
+     * @param id 用户id
+     * @return SysUserBO 响应信息
+     */
+    @Override
+    public SysUserBO info(Long id) {
+        SysUser sysUser = sysUserDao.info(id);
+        return SysUserConvert.sysUserDoToBo(sysUser);
+    }
+
+    /**
+     * 新增/更新信息
+     * @param sysUserDTO 信息
+     * @return sysUserBO 更新后信息
+     */
+    @Override
+    public SysUserBO save(SysUserDTO sysUserDTO) {
+        SysUser sysUser = SysUserConvert.sysUserDtoToDo(sysUserDTO);
+        if (ObjectUtils.isEmpty(sysUser.getId())) {
+            sysUserDao.insert(sysUser);
+        } else {
+            sysUserDao.updateById(sysUser);
+        }
+        return SysUserConvert.sysUserDoToBo(sysUser);
+    }
+
+    /**
+     * 根据id删除信息
+     * @param id id
+     * @return true/false 是否删除成功
+     */
+    @Override
+    public Boolean delete(Long id) {
+        return sysUserDao.deleteById(id) == 1 ? Boolean.TRUE : Boolean.FALSE;
+    }
+
+    @Override
+    public Boolean deleteByIds(String[] ids) {
+        return sysUserDao.deleteByIds(ids) > 0 ? Boolean.TRUE : Boolean.FALSE;
+    }
+
+    @Override
+    public SysUserResultBO queryPage(SysUserListDTO sysUserListDTO) {
+        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
+
+        if (!StringUtils.isEmpty(sysUserListDTO.getSysUserName())) {
+            queryWrapper.like("sysUser_name", sysUserListDTO.getSysUserName());
+        }
+
+        if (!StringUtils.isEmpty(sysUserListDTO.getCreateBeginTime())) {
+            queryWrapper.apply("create_time >= '" + sysUserListDTO.getCreateBeginTime() + "'");
+        }
+
+        if (!StringUtils.isEmpty(sysUserListDTO.getCreateEndTime())) {
+            queryWrapper.apply("create_time <= '" + sysUserListDTO.getCreateEndTime() + "'");
+        }
+
+        if (!StringUtils.isEmpty(sysUserListDTO.getUpdateBeginTime())) {
+            queryWrapper.apply("update_time >= '" + sysUserListDTO.getUpdateBeginTime() + "'");
+        }
+
+        if (!StringUtils.isEmpty(sysUserListDTO.getUpdateEndTime())) {
+            queryWrapper.apply("update_time <= '" + sysUserListDTO.getUpdateEndTime() + "'");
+        }
+
+        Page<SysUser> page = new Page<>(sysUserListDTO.getPageNo(), sysUserListDTO.getPageRows());
+        IPage<SysUser> iPage = sysUserDao.queryPage(page, queryWrapper);
+
+        SysUserResultBO resultBO = new SysUserResultBO();
+        resultBO.setPageNo(sysUserListDTO.getPageNo());
+        resultBO.setPageRows(sysUserListDTO.getPageRows());
+        resultBO.setPageCount((int) iPage.getPages());
+        resultBO.setTotalRows((int) iPage.getTotal());
+        resultBO.setDataList(SysUserConvert.sysUserListToSysUserBOList(iPage.getRecords()));
+        resultBO.setParams(sysUserListDTO);
+
+        return resultBO;
+    }
+}

+ 70 - 0
imwork-windows/imwork-silos/src/main/resources/mapper/upms/SysRoleDao.xml

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="top.imwork.window.silos.dao.SysRoleDao">
+    <resultMap type="top.imwork.window.silos.entity.SysRole" id="BaseResultMap">
+            <result property="id" column="id"/>
+            <result property="parentId" column="parent_id"/>
+            <result property="parentIds" column="parent_ids"/>
+            <result property="roleName" column="role_name"/>
+            <result property="roleType" column="role_type"/>
+            <result property="roleDesc" column="role_desc"/>
+            <result property="roleLevel" column="role_level"/>
+            <result property="isSys" column="is_sys"/>
+            <result property="enabled" column="enabled"/>
+            <result property="sort" column="sort"/>
+            <result property="state" column="state"/>
+            <result property="status" column="status"/>
+            <result property="delFlag" column="del_flag"/>
+            <result property="creator" column="creator"/>
+            <result property="createTime" column="create_time"/>
+            <result property="modifier" column="modifier"/>
+            <result property="updateTime" column="update_time"/>
+            <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,
+        parent_id,
+        parent_ids,
+        role_name,
+        role_type,
+        role_desc,
+        role_level,
+        is_sys,
+        enabled,
+        sort,
+        state,
+        status,
+        del_flag,
+        creator,
+        create_time,
+        modifier,
+        update_time,
+        remark
+    </sql>
+
+    <!--根据ids批量删除-->
+    <update id="deleteByIds" parameterType="ArrayList">
+        update sys_role
+        set del_flag = 'Y'
+        where id in
+        <foreach item="ids" collection="array" open="(" separator=","  close=")">
+            #{ids}
+        </foreach>
+    </update>
+
+    <!--根据id查询信息-->
+    <select id="info" resultMap="BaseResultMap" parameterType="long">
+        select *
+        from sys_role
+        where 1 = 1
+        and id = #{id}
+    </select>
+
+    <!--分页查询-->
+    <select id="queryPage" resultType="top.imwork.window.silos.entity.SysRole">
+        select *
+        from sys_role ${ew.customSqlSegment}
+    </select>
+</mapper>

+ 100 - 0
imwork-windows/imwork-silos/src/main/resources/mapper/upms/SysUserDao.xml

@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="top.imwork.window.silos.dao.SysUserDao">
+    <resultMap type="top.imwork.window.silos.entity.SysUser" id="BaseResultMap">
+            <result property="id" column="id"/>
+            <result property="loginName" column="login_name"/>
+            <result property="loginPassword" column="login_password"/>
+            <result property="secondLoginPassword" column="second_login_password"/>
+            <result property="userName" column="user_name"/>
+            <result property="userNamePinyin" column="user_name_pinyin"/>
+            <result property="userNameSpell" column="user_name_spell"/>
+            <result property="userGender" column="user_gender"/>
+            <result property="userIdCard" column="user_id_card"/>
+            <result property="userEmail" column="user_email"/>
+            <result property="userMobilPhone" column="user_mobil_phone"/>
+            <result property="userAddress" column="user_address"/>
+            <result property="userDesc" column="user_desc"/>
+            <result property="userType" column="user_type"/>
+            <result property="userStatus" column="user_status"/>
+            <result property="userAvatarId" column="user_avatar_id"/>
+            <result property="userNickName" column="user_nick_name"/>
+            <result property="salt" column="salt"/>
+            <result property="dncnet" column="dncnet"/>
+            <result property="allowedErrorTimes" column="allowed_error_times"/>
+            <result property="loginErrorTimes" column="login_error_times"/>
+            <result property="isDifferentIpLogin" column="is_different_ip_login"/>
+            <result property="lastLoginTime" column="last_login_time"/>
+            <result property="enabled" column="enabled"/>
+            <result property="sort" column="sort"/>
+            <result property="state" column="state"/>
+            <result property="status" column="status"/>
+            <result property="delFlag" column="del_flag"/>
+            <result property="creator" column="creator"/>
+            <result property="createTime" column="create_time"/>
+            <result property="modifier" column="modifier"/>
+            <result property="updateTime" column="update_time"/>
+            <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,
+        login_name,
+        login_password,
+        second_login_password,
+        user_name,
+        user_name_pinyin,
+        user_name_spell,
+        user_gender,
+        user_id_card,
+        user_email,
+        user_mobil_phone,
+        user_address,
+        user_desc,
+        user_type,
+        user_status,
+        user_avatar_id,
+        user_nick_name,
+        salt,
+        dncnet,
+        allowed_error_times,
+        login_error_times,
+        is_different_ip_login,
+        last_login_time,
+        enabled,
+        sort,
+        state,
+        status,
+        del_flag,
+        creator,
+        create_time,
+        modifier,
+        update_time,
+        remark
+    </sql>
+
+    <!--根据ids批量删除-->
+    <update id="deleteByIds" parameterType="ArrayList">
+        update sys_user
+        set del_flag = 'Y'
+        where id in
+        <foreach item="ids" collection="array" open="(" separator=","  close=")">
+            #{ids}
+        </foreach>
+    </update>
+
+    <!--根据id查询信息-->
+    <select id="info" resultMap="BaseResultMap" parameterType="long">
+        select *
+        from sys_user
+        where 1 = 1
+        and id = #{id}
+    </select>
+
+    <!--分页查询-->
+    <select id="queryPage" resultType="top.imwork.window.silos.entity.SysUser">
+        select *
+        from sys_user ${ew.customSqlSegment}
+    </select>
+</mapper>

+ 44 - 0
imwork-windows/imwork-silos/src/main/resources/mapper/upms/SysUserRoleDao.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="top.imwork.window.silos.dao.SysUserRoleDao">
+    <resultMap type="top.imwork.window.silos.entity.SysUserRole" id="BaseResultMap">
+            <result property="id" column="id"/>
+            <result property="userId" column="user_id"/>
+            <result property="roleId" column="role_id"/>
+            <result property="creator" column="creator"/>
+            <result property="createTime" column="create_time"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,
+        user_id,
+        role_id,
+        creator,
+        create_time
+    </sql>
+
+    <!--根据ids批量删除-->
+    <update id="deleteByIds" parameterType="ArrayList">
+        update sys_user_role
+        set del_flag = 'Y'
+        where id in
+        <foreach item="ids" collection="array" open="(" separator=","  close=")">
+            #{ids}
+        </foreach>
+    </update>
+
+    <!--根据id查询信息-->
+    <select id="info" resultMap="BaseResultMap" parameterType="long">
+        select *
+        from sys_user_role
+        where 1 = 1
+        and id = #{id}
+    </select>
+
+    <!--分页查询-->
+    <select id="queryPage" resultType="top.imwork.window.silos.entity.SysUserRole">
+        select *
+        from sys_user_role ${ew.customSqlSegment}
+    </select>
+</mapper>

+ 1 - 1
imwork-windows/imwork-silos/src/main/resources/static/business/cms/base/pagination.js

@@ -3,7 +3,7 @@ document.addEventListener('DOMContentLoaded', function () {
     const allOptions = [];
 
     $.ajax({
-        url: "/silos/cms/books/info/queryPage",
+        url: "/silos/cms/book/info/queryPage",
         type: "POST",
         dataType: "json",
         contentType: 'application/json;charset=UTF-8',