farm模块-用户完善

This commit is contained in:
顾君禹
2025-08-22 14:28:22 +08:00
parent cb4259a17d
commit 568e870fa7
8 changed files with 134 additions and 28 deletions

View File

@@ -133,13 +133,6 @@
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId> <artifactId>spring-websocket</artifactId>
</dependency> </dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-module-system</artifactId>
<version>2025.08-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<!-- MongoDB --> <!-- MongoDB -->
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>--> <!-- <groupId>org.springframework.boot</groupId>-->

View File

@@ -0,0 +1,94 @@
package cn.iocoder.yudao.module.farm.dal.dataobject.personnelmanagement;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.*;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.time.LocalDateTime;
import java.util.Set;
/**
* 管理后台的用户 DO
*
* @author 芋道源码
*/
@TableName(value = "system_users", autoResultMap = true) // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users
@KeySequence("system_users_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SystemUserDO extends TenantBaseDO {
/**
* 用户ID
*/
@TableId
private Long id;
/**
* 用户账号
*/
private String username;
/**
* 加密后的密码
* <p>
* 因为目前使用 {@link BCryptPasswordEncoder} 加密器,所以无需自己处理 salt 盐
*/
private String password;
/**
* 用户昵称
*/
private String nickname;
/**
* 备注
*/
private String remark;
/**
* 部门 ID
*/
private Long deptId;
/**
* 岗位编号数组
*/
@TableField(typeHandler = JacksonTypeHandler.class)
private Set<Long> postIds;
/**
* 用户邮箱
*/
private String email;
/**
* 手机号码
*/
private String mobile;
/**
* 用户性别
* <p>
*/
private Integer sex;
/**
* 用户头像
*/
private String avatar;
/**
* 帐号状态
* <p>
* 枚举 {@link CommonStatusEnum}
*/
private Integer status;
/**
* 最后登录IP
*/
private String loginIp;
/**
* 最后登录时间
*/
private LocalDateTime loginDate;
}

View File

@@ -0,0 +1,7 @@
package cn.iocoder.yudao.module.farm.dal.mysql.personnelmanagement;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.farm.dal.dataobject.personnelmanagement.SystemUserDO;
public interface SystemUserMapper extends BaseMapperX<SystemUserDO> {
}

View File

@@ -9,9 +9,9 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.farm.controller.admin.personnelmanagement.vo.PersonnelManagementPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.personnelmanagement.vo.PersonnelManagementPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.personnelmanagement.vo.PersonnelManagementSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.personnelmanagement.vo.PersonnelManagementSaveReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.personnelmanagement.PersonnelManagementDO; import cn.iocoder.yudao.module.farm.dal.dataobject.personnelmanagement.PersonnelManagementDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.personnelmanagement.SystemUserDO;
import cn.iocoder.yudao.module.farm.dal.mysql.personnelmanagement.PersonnelManagementMapper; import cn.iocoder.yudao.module.farm.dal.mysql.personnelmanagement.PersonnelManagementMapper;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.farm.dal.mysql.personnelmanagement.SystemUserMapper;
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -34,7 +34,7 @@ public class PersonnelManagementServiceImpl implements PersonnelManagementServic
@Resource @Resource
private PersonnelManagementMapper personnelManagementMapper; private PersonnelManagementMapper personnelManagementMapper;
@Resource @Resource
private AdminUserMapper userMapper; private SystemUserMapper userMapper;
@Resource @Resource
private PasswordEncoder passwordEncoder; private PasswordEncoder passwordEncoder;
@@ -49,7 +49,7 @@ public class PersonnelManagementServiceImpl implements PersonnelManagementServic
// 处理图片集合转换 // 处理图片集合转换
handleImageConversion(personnelManagement, createReqVO); handleImageConversion(personnelManagement, createReqVO);
AdminUserDO adminUserDO = new AdminUserDO(); SystemUserDO adminUserDO = new SystemUserDO();
adminUserDO.setUsername(personnelManagement.getPhone()); adminUserDO.setUsername(personnelManagement.getPhone());
adminUserDO.setNickname(personnelManagement.getName()); adminUserDO.setNickname(personnelManagement.getName());
adminUserDO.setMobile(personnelManagement.getPhone()); adminUserDO.setMobile(personnelManagement.getPhone());

View File

@@ -0,0 +1,12 @@
<?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="cn.iocoder.yudao.module.farm.dal.mysql.personnelmanagement.SystemUserMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@@ -19,7 +19,7 @@ import java.util.List;
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class PersonnelManagementDO extends BaseDO { public class PersonnelDO extends BaseDO {
/** /**
* 人员id * 人员id

View File

@@ -1,10 +1,10 @@
package cn.iocoder.yudao.module.system.dal.mysql.user; package cn.iocoder.yudao.module.system.dal.mysql.user;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.dal.dataobject.user.PersonnelManagementDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.PersonnelDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface PersonnelMapper extends BaseMapperX<PersonnelManagementDO> { public interface PersonnelMapper extends BaseMapperX<PersonnelDO> {
} }

View File

@@ -23,7 +23,7 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqV
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.PersonnelManagementDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.PersonnelDO;
import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper; import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper;
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper; import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
import cn.iocoder.yudao.module.system.dal.mysql.user.PersonnelMapper; import cn.iocoder.yudao.module.system.dal.mysql.user.PersonnelMapper;
@@ -116,7 +116,7 @@ public class AdminUserServiceImpl implements AdminUserService {
// 3. 记录操作日志上下文 // 3. 记录操作日志上下文
LogRecordContext.putVariable("user", user); LogRecordContext.putVariable("user", user);
PersonnelManagementDO userDo = new PersonnelManagementDO(); PersonnelDO userDo = new PersonnelDO();
userDo.setName(user.getNickname()); userDo.setName(user.getNickname());
userDo.setPhone(user.getMobile()); userDo.setPhone(user.getMobile());
userDo.setDepartment(user.getDeptId().toString()); userDo.setDepartment(user.getDeptId().toString());