farm模块-用户完善

This commit is contained in:
顾君禹
2025-08-22 10:00:01 +08:00
parent c1ea878105
commit 2c8d936411
19 changed files with 701 additions and 73 deletions

View File

@@ -0,0 +1,80 @@
package cn.iocoder.yudao.module.system.dal.dataobject.user;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
import java.util.List;
/**
* 人员管理 DO
*
* @author 芋道源码
*/
@TableName("farm_personnel_management")
@KeySequence("farm_personnel_management_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PersonnelManagementDO extends BaseDO {
/**
* 人员id
*/
@TableId(type = IdType.INPUT)
private String id;
/**
* 用户姓名
*/
private String name;
/**
* 所属部门
*/
private String department;
/**
* 电话号
*/
private String phone;
/**
* 角色id用,隔开
*/
private String role;
/**
* 头像(数据库存储为逗号分隔的字符串)
*/
@TableField(value = "picture")
private String picture;
/**
* 头像集合(业务层使用)
*/
@TableField(exist = false)
private List<String> pictureList;
/**
* 0=启用,1=停用
*/
private Integer accountStatus;
/**
* 基地id
*/
private String baseId;
/**
* 基地
*/
private String baseName;
/**
* 地块ID
*/
private String plotId;
/**
* 地块
*/
private String plotName;
private String tenantId;
}

View File

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.PersonnelManagementDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.Collection;

View File

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

View File

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.service.user;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
@@ -22,8 +23,10 @@ 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.UserPostDO;
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.mysql.dept.UserPostMapper;
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
import cn.iocoder.yudao.module.system.dal.mysql.user.PersonnelManagementMapper;
import cn.iocoder.yudao.module.system.service.dept.DeptService;
import cn.iocoder.yudao.module.system.service.dept.PostService;
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
@@ -82,6 +85,9 @@ public class AdminUserServiceImpl implements AdminUserService {
@Resource
private ConfigApi configApi;
@Resource
private PersonnelManagementMapper personnelManagementMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@LogRecord(type = SYSTEM_USER_TYPE, subType = SYSTEM_USER_CREATE_SUB_TYPE, bizNo = "{{#user.id}}",
@@ -110,6 +116,26 @@ public class AdminUserServiceImpl implements AdminUserService {
// 3. 记录操作日志上下文
LogRecordContext.putVariable("user", user);
PersonnelManagementDO userDo = new PersonnelManagementDO();
userDo.setName(user.getNickname());
userDo.setPhone(user.getMobile());
userDo.setDepartment(user.getDeptId().toString());
userDo.setTenantId(user.getTenantId().toString());
userDo.setPicture(user.getAvatar());
userDo.setAccountStatus(0);
List<UserPostDO> userPostDOS = convertList(user.getPostIds(),
postId -> new UserPostDO().setUserId(user.getId()).setPostId(postId));
String roles = "";
for (UserPostDO up : userPostDOS) {
if (roles.length() > 0) {
roles += "," + up.getPostId();
} else {
roles = up.getPostId().toString();
}
}
userDo.setRole(roles);
userDo.setId(IdUtil.fastUUID());
personnelManagementMapper.insert(userDo);
return user.getId();
}
@@ -355,7 +381,7 @@ public class AdminUserServiceImpl implements AdminUserService {
}
private AdminUserDO validateUserForCreateOrUpdate(Long id, String username, String mobile, String email,
Long deptId, Set<Long> postIds) {
Long deptId, Set<Long> postIds) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
return DataPermissionUtils.executeIgnore(() -> {
// 校验用户存在
@@ -442,6 +468,7 @@ public class AdminUserServiceImpl implements AdminUserService {
/**
* 校验旧密码
*
* @param id 用户 id
* @param oldPassword 旧密码
*/
@@ -476,7 +503,7 @@ public class AdminUserServiceImpl implements AdminUserService {
// 2.1.1 校验字段是否符合要求
try {
ValidationUtils.validate(BeanUtils.toBean(importUser, UserSaveReqVO.class).setPassword(initPassword));
} catch (ConstraintViolationException ex){
} catch (ConstraintViolationException ex) {
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
return;
}