diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java index 6393827a..b86f63e8 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java @@ -57,11 +57,11 @@ public class EmployeeController { return employeeService.updateEmployee(employeeUpdateForm); } - @Operation(summary = "更新登录人信息 @author 善逸") - @PostMapping("/employee/update/login") - public ResponseDTO updateByLogin(@Valid @RequestBody EmployeeUpdateForm employeeUpdateForm) { - employeeUpdateForm.setEmployeeId(SmartRequestUtil.getRequestUserId()); - return employeeService.updateEmployee(employeeUpdateForm); + @Operation(summary = "更新员工个人中心信息 @author 善逸") + @PostMapping("/employee/update/center") + public ResponseDTO updateCenter(@Valid @RequestBody EmployeeUpdateCenterForm updateCenterForm) { + updateCenterForm.setEmployeeId(SmartRequestUtil.getRequestUserId()); + return employeeService.updateCenter(updateCenterForm); } @Operation(summary = "更新登录人头像 @author 善逸") diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java index 1003af00..60a510df 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java @@ -34,19 +34,16 @@ public interface EmployeeDao extends BaseMapper { */ List selectEmployeeByDisabledAndDeleted(@Param("disabledFlag") Boolean disabledFlag, @Param("deletedFlag") Boolean deletedFlag); - /** * 更新禁用状态 */ void updateDisableFlag(@Param("employeeId") Long employeeId, @Param("disabledFlag") Boolean disabledFlag); - /** * 通过登录名查询 */ EmployeeEntity getByLoginName(@Param("loginName") String loginName, @Param("deletedFlag") Boolean deletedFlag); - /** * 通过姓名查询 */ @@ -57,6 +54,11 @@ public interface EmployeeDao extends BaseMapper { */ EmployeeEntity getByPhone(@Param("phone") String phone, @Param("deletedFlag") Boolean deletedFlag); + /** + * 通过邮箱账号查询 + */ + EmployeeEntity getByEmail(@Param("email") String email, @Param("deletedFlag") Boolean deletedFlag); + /** * 获取所有员工 */ @@ -64,7 +66,6 @@ public interface EmployeeDao extends BaseMapper { /** * 获取某个部门员工数 - * */ Integer countByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); @@ -73,25 +74,21 @@ public interface EmployeeDao extends BaseMapper { */ List getEmployeeByIds(@Param("employeeIds") Collection employeeIds); - /** * 查询单个员工信息 */ EmployeeVO getEmployeeById(@Param("employeeId") Long employeeId); - /** * 获取某个部门的员工 */ List selectByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); - /** * 查询某些部门下用户名是xxx的员工 */ List selectByActualName(@Param("departmentIdList") List departmentIdList, @Param("actualName") String actualName, @Param("deletedFlag") Boolean deletedFlag); - /** * 获取某批部门的员工Id */ diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java index 1d071218..00792d29 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java @@ -51,17 +51,19 @@ public class EmployeeAddForm { @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") private String phone; - @Schema(description = "邮箱") + @Schema(description = "邮箱账号") + @NotNull(message = "邮箱账号不能为空") + @Pattern(regexp = SmartVerificationUtil.EMAIL, message = "邮箱账号格式不正确") private String email; + @Schema(description = "职务级别ID") + private Long positionId; + @Schema(description = "角色列表") private List roleIdList; @Schema(description = "备注") - @Length(max = 30, message = "备注最多200字符") + @Length(max = 200, message = "备注最多200字符") private String remark; - @Schema(description = "职务级别ID") - private Long positionId; - } diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java new file mode 100644 index 00000000..a857ae4b --- /dev/null +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java @@ -0,0 +1,56 @@ +package net.lab1024.sa.admin.module.system.employee.domain.form; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import lombok.Data; +import net.lab1024.sa.base.common.enumeration.GenderEnum; +import net.lab1024.sa.base.common.swagger.SchemaEnum; +import net.lab1024.sa.base.common.util.SmartVerificationUtil; +import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; +import org.hibernate.validator.constraints.Length; + +/** + * 更新员工个人中心信息 + * + * @Author 1024创新实验室: 开云 + * @Date 2021-12-20 21:06:49 + * @Wechat zhuoda1024 + * @Email lab1024@163.com + * @Copyright 1024创新实验室 + */ +@Data +public class EmployeeUpdateCenterForm { + + @Schema(hidden = true) + private Long employeeId; + + @Schema(description = "姓名") + @NotNull(message = "姓名不能为空") + @Length(max = 30, message = "姓名最多30字符") + private String actualName; + + @SchemaEnum(GenderEnum.class) + @CheckEnum(value = GenderEnum.class, message = "性别错误") + private Integer gender; + + @Schema(description = "手机号") + @NotNull(message = "手机号不能为空") + @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") + private String phone; + + @Schema(description = "邮箱账号") + @NotNull(message = "邮箱账号不能为空") + @Pattern(regexp = SmartVerificationUtil.EMAIL, message = "邮箱账号格式不正确") + private String email; + + @Schema(description = "职务级别ID") + private Long positionId; + + @Schema(description = "头像") + private String avatar; + + @Schema(description = "备注") + @Length(max = 200, message = "备注最多200字符") + private String remark; +} diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java index 959e474e..824c2228 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java @@ -168,19 +168,14 @@ public class EmployeeService { return ResponseDTO.userErrorParam("部门不存在"); } - - EmployeeEntity existEntity = employeeDao.getByLoginName(employeeUpdateForm.getLoginName(), null); - if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { - return ResponseDTO.userErrorParam("登录名重复"); + // 检查唯一性 + ResponseDTO checkResponse = checkUniqueness(employeeId, employeeUpdateForm.getLoginName(), employeeUpdateForm.getPhone(), employeeUpdateForm.getEmail()); + if (!checkResponse.getOk()) { + return checkResponse; } - existEntity = employeeDao.getByPhone(employeeUpdateForm.getPhone(), null); - if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { - return ResponseDTO.userErrorParam("手机号已存在"); - } - - // 不更新密码 EmployeeEntity entity = SmartBeanUtil.copy(employeeUpdateForm, EmployeeEntity.class); + // 不更新密码 entity.setLoginPwd(null); // 更新数据 @@ -192,6 +187,58 @@ public class EmployeeService { return ResponseDTO.ok(); } + /** + * 更新员工个人中心信息 + */ + public ResponseDTO updateCenter(EmployeeUpdateCenterForm updateCenterForm) { + + Long employeeId = updateCenterForm.getEmployeeId(); + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + if (null == employeeEntity) { + return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); + } + + // 检查唯一性 登录账号不能修改则不需要检查 + ResponseDTO checkResponse = checkUniqueness(employeeId, "", updateCenterForm.getPhone(), updateCenterForm.getEmail()); + if (!checkResponse.getOk()) { + return checkResponse; + } + + EmployeeEntity employee = SmartBeanUtil.copy(updateCenterForm, EmployeeEntity.class); + // 不更新密码 + employee.setLoginPwd(null); + + // 更新数据 + employeeDao.updateById(employee); + + // 清除员工缓存 + loginService.clearLoginEmployeeCache(employeeId); + + return ResponseDTO.ok(); + } + + /** + * 检查唯一性 + */ + private ResponseDTO checkUniqueness(Long employeeId, String loginName, String phone, String email) { + EmployeeEntity existEntity = employeeDao.getByLoginName(loginName, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("登录名重复"); + } + + existEntity = employeeDao.getByPhone(phone, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("手机号已存在"); + } + + existEntity = employeeDao.getByEmail(email, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("邮箱账号已存在"); + } + + return ResponseDTO.ok(); + } + /** * 更新登录人头像 diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java index 5ba92785..0b61e3d2 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java @@ -46,6 +46,12 @@ public class RequestEmployee implements RequestUser { @Schema(description = "部门名称") private String departmentName; + @Schema(description = "职务级别ID") + private Long positionId; + + @Schema(description = "邮箱") + private String email; + @Schema(description = "是否禁用") private Boolean disabledFlag; diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml index a0a0d99d..670d52ed 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml @@ -33,14 +33,12 @@ - UPDATE t_employee SET disabled_flag = #{disabledFlag} WHERE employee_id = #{employeeId} - - + - - SELECT * FROM t_employee @@ -102,8 +107,7 @@ ORDER BY create_time DESC - SELECT * FROM t_employee actual_name = #{actualName} @@ -132,7 +136,6 @@ ORDER BY create_time DESC - - - SELECT t_employee.*, t_department.name AS departmentName @@ -196,5 +197,4 @@ WHERE employee_id = #{employeeId} - \ No newline at end of file diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java index 91109bd8..f6367d19 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java @@ -1,8 +1,8 @@ package net.lab1024.sa.admin.module.system.employee.controller; import cn.dev33.satoken.annotation.SaCheckPermission; -import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import net.lab1024.sa.admin.constant.AdminSwaggerTagConst; import net.lab1024.sa.admin.module.system.employee.domain.form.*; import net.lab1024.sa.admin.module.system.employee.domain.vo.EmployeeVO; @@ -57,11 +57,11 @@ public class EmployeeController { return employeeService.updateEmployee(employeeUpdateForm); } - @Operation(summary = "更新登录人信息 @author 善逸") - @PostMapping("/employee/update/login") - public ResponseDTO updateByLogin(@Valid @RequestBody EmployeeUpdateForm employeeUpdateForm) { - employeeUpdateForm.setEmployeeId(SmartRequestUtil.getRequestUserId()); - return employeeService.updateEmployee(employeeUpdateForm); + @Operation(summary = "更新员工个人中心信息 @author 善逸") + @PostMapping("/employee/update/center") + public ResponseDTO updateCenter(@Valid @RequestBody EmployeeUpdateCenterForm updateCenterForm) { + updateCenterForm.setEmployeeId(SmartRequestUtil.getRequestUserId()); + return employeeService.updateCenter(updateCenterForm); } @Operation(summary = "更新登录人头像 @author 善逸") diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java index 6ef0acab..e5bc28d5 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java @@ -34,31 +34,30 @@ public interface EmployeeDao extends BaseMapper { */ List selectEmployeeByDisabledAndDeleted(@Param("disabledFlag") Boolean disabledFlag, @Param("deletedFlag") Boolean deletedFlag); - /** * 更新单个 */ void updateDisableFlag(@Param("employeeId") Long employeeId, @Param("disabledFlag") Boolean disabledFlag); - /** * 通过登录名查询 */ - EmployeeEntity getByLoginName(@Param("loginName") String loginName, - @Param("disabledFlag") Boolean disabledFlag); - + EmployeeEntity getByLoginName(@Param("loginName") String loginName, @Param("deletedFlag") Boolean deletedFlag); /** * 通过姓名查询 */ - EmployeeEntity getByActualName(@Param("actualName") String actualName, - @Param("disabledFlag") Boolean disabledFlag - ); + EmployeeEntity getByActualName(@Param("actualName") String actualName, @Param("deletedFlag") Boolean deletedFlag); /** * 通过手机号查询 */ - EmployeeEntity getByPhone(@Param("phone") String phone, @Param("disabledFlag") Boolean disabledFlag); + EmployeeEntity getByPhone(@Param("phone") String phone, @Param("deletedFlag") Boolean deletedFlag); + + /** + * 通过邮箱账号查询 + */ + EmployeeEntity getByEmail(@Param("email") String email, @Param("deletedFlag") Boolean deletedFlag); /** * 获取所有员工 @@ -67,7 +66,6 @@ public interface EmployeeDao extends BaseMapper { /** * 获取某个部门员工数 - * */ Integer countByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); @@ -76,39 +74,35 @@ public interface EmployeeDao extends BaseMapper { */ List getEmployeeByIds(@Param("employeeIds") Collection employeeIds); - /** * 查询单个员工信息 */ EmployeeVO getEmployeeById(@Param("employeeId") Long employeeId); - /** * 获取某个部门的员工 */ - List selectByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag); - + List selectByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); /** * 查询某些部门下用户名是xxx的员工 */ - List selectByActualName(@Param("departmentIdList") List departmentIdList, @Param("actualName") String actualName, @Param("disabledFlag") Boolean disabledFlag); - + List selectByActualName(@Param("departmentIdList") List departmentIdList, @Param("actualName") String actualName, @Param("deletedFlag") Boolean deletedFlag); /** * 获取某批部门的员工Id */ - List getEmployeeIdByDepartmentIdList(@Param("departmentIds") List departmentIds, @Param("disabledFlag") Boolean disabledFlag); + List getEmployeeIdByDepartmentIdList(@Param("departmentIds") List departmentIds, @Param("deletedFlag") Boolean deletedFlag); /** * 获取所有 */ - List getEmployeeId(@Param("leaveFlag") Boolean leaveFlag, @Param("disabledFlag") Boolean disabledFlag); + List getEmployeeId(@Param("leaveFlag") Boolean leaveFlag, @Param("deletedFlag") Boolean deletedFlag); /** * 获取某个部门的员工Id */ - List getEmployeeIdByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag); + List getEmployeeIdByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); /** * 员工重置密码 diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java index 2621eb7f..8cecbbd6 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java @@ -4,9 +4,9 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import net.lab1024.sa.base.common.enumeration.GenderEnum; import net.lab1024.sa.base.common.swagger.SchemaEnum; +import net.lab1024.sa.base.common.util.SmartVerificationUtil; import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; import org.hibernate.validator.constraints.Length; -import net.lab1024.sa.base.common.util.SmartVerificationUtil; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -51,17 +51,19 @@ public class EmployeeAddForm { @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") private String phone; - @Schema(description = "邮箱") + @Schema(description = "邮箱账号") + @NotNull(message = "邮箱账号不能为空") + @Pattern(regexp = SmartVerificationUtil.EMAIL, message = "邮箱账号格式不正确") private String email; + @Schema(description = "职务级别ID") + private Long positionId; + @Schema(description = "角色列表") private List roleIdList; @Schema(description = "备注") - @Length(max = 30, message = "备注最多200字符") + @Length(max = 200, message = "备注最多200字符") private String remark; - @Schema(description = "职务级别ID") - private Long positionId; - } diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java new file mode 100644 index 00000000..08295a2a --- /dev/null +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java @@ -0,0 +1,58 @@ +package net.lab1024.sa.admin.module.system.employee.domain.form; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import net.lab1024.sa.base.common.enumeration.GenderEnum; +import net.lab1024.sa.base.common.swagger.SchemaEnum; +import net.lab1024.sa.base.common.util.SmartVerificationUtil; +import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + + +/** + * 更新员工个人中心信息 + * + * @Author 1024创新实验室: 开云 + * @Date 2021-12-20 21:06:49 + * @Wechat zhuoda1024 + * @Email lab1024@163.com + * @Copyright 1024创新实验室 + */ +@Data +public class EmployeeUpdateCenterForm { + + @Schema(hidden = true) + private Long employeeId; + + @Schema(description = "姓名") + @NotNull(message = "姓名不能为空") + @Length(max = 30, message = "姓名最多30字符") + private String actualName; + + @SchemaEnum(GenderEnum.class) + @CheckEnum(value = GenderEnum.class, message = "性别错误") + private Integer gender; + + @Schema(description = "手机号") + @NotNull(message = "手机号不能为空") + @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") + private String phone; + + @Schema(description = "邮箱账号") + @NotNull(message = "邮箱账号不能为空") + @Pattern(regexp = SmartVerificationUtil.EMAIL, message = "邮箱账号格式不正确") + private String email; + + @Schema(description = "职务级别ID") + private Long positionId; + + @Schema(description = "头像") + private String avatar; + + @Schema(description = "备注") + @Length(max = 200, message = "备注最多200字符") + private String remark; +} diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java index 0f7b2a98..6fb9177e 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java @@ -168,19 +168,14 @@ public class EmployeeService { return ResponseDTO.userErrorParam("部门不存在"); } - - EmployeeEntity existEntity = employeeDao.getByLoginName(employeeUpdateForm.getLoginName(), null); - if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { - return ResponseDTO.userErrorParam("登录名重复"); + // 检查唯一性 + ResponseDTO checkResponse = checkUniqueness(employeeId, employeeUpdateForm.getLoginName(), employeeUpdateForm.getPhone(), employeeUpdateForm.getEmail()); + if (!checkResponse.getOk()) { + return checkResponse; } - existEntity = employeeDao.getByPhone(employeeUpdateForm.getPhone(), null); - if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { - return ResponseDTO.userErrorParam("手机号已存在"); - } - - // 不更新密码 EmployeeEntity entity = SmartBeanUtil.copy(employeeUpdateForm, EmployeeEntity.class); + // 不更新密码 entity.setLoginPwd(null); // 更新数据 @@ -192,6 +187,57 @@ public class EmployeeService { return ResponseDTO.ok(); } + /** + * 更新员工个人中心信息 + */ + public ResponseDTO updateCenter(EmployeeUpdateCenterForm updateCenterForm) { + + Long employeeId = updateCenterForm.getEmployeeId(); + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + if (null == employeeEntity) { + return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); + } + + // 检查唯一性 登录账号不能修改则不需要检查 + ResponseDTO checkResponse = checkUniqueness(employeeId, "", updateCenterForm.getPhone(), updateCenterForm.getEmail()); + if (!checkResponse.getOk()) { + return checkResponse; + } + + EmployeeEntity employee = SmartBeanUtil.copy(updateCenterForm, EmployeeEntity.class); + // 不更新密码 + employee.setLoginPwd(null); + + // 更新数据 + employeeDao.updateById(employee); + + // 清除员工缓存 + loginService.clearLoginEmployeeCache(employeeId); + + return ResponseDTO.ok(); + } + + /** + * 检查唯一性 + */ + private ResponseDTO checkUniqueness(Long employeeId, String loginName, String phone, String email) { + EmployeeEntity existEntity = employeeDao.getByLoginName(loginName, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("登录名重复"); + } + + existEntity = employeeDao.getByPhone(phone, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("手机号已存在"); + } + + existEntity = employeeDao.getByEmail(email, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("邮箱账号已存在"); + } + + return ResponseDTO.ok(); + } /** * 更新登录人头像 diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java index 5ba92785..0b61e3d2 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java @@ -46,6 +46,12 @@ public class RequestEmployee implements RequestUser { @Schema(description = "部门名称") private String departmentName; + @Schema(description = "职务级别ID") + private Long positionId; + + @Schema(description = "邮箱") + private String email; + @Schema(description = "是否禁用") private Boolean disabledFlag; diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml b/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml index 506c6832..670d52ed 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml @@ -33,21 +33,19 @@ - UPDATE t_employee SET disabled_flag = #{disabledFlag} WHERE employee_id = #{employeeId} - @@ -57,24 +55,33 @@ FROM t_employee actual_name = #{actualName} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} - + - - SELECT * FROM t_employee department_id = #{departmentId} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} ORDER BY create_time DESC - SELECT * FROM t_employee actual_name = #{actualName} @@ -111,8 +115,8 @@ #{item} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} @@ -125,20 +129,19 @@ #{item} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} ORDER BY create_time DESC - @@ -148,8 +151,8 @@ FROM t_employee department_id = #{departmentId} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} ORDER BY create_time DESC @@ -164,7 +167,6 @@ ORDER BY create_time DESC - - SELECT t_employee.*, t_department.name AS departmentName @@ -196,5 +197,4 @@ WHERE employee_id = #{employeeId} - \ No newline at end of file diff --git a/smart-admin-web-javascript/src/api/system/employee-api.js b/smart-admin-web-javascript/src/api/system/employee-api.js index d124417d..cb4ec959 100644 --- a/smart-admin-web-javascript/src/api/system/employee-api.js +++ b/smart-admin-web-javascript/src/api/system/employee-api.js @@ -36,10 +36,10 @@ export const employeeApi = { return postRequest('/employee/update', params); }, /** - * 更新登录人信息 + * 更新员工个人中心信息 */ - updateByLogin: (params) => { - return postRequest('/employee/update/login', params); + updateCenter: (params) => { + return postRequest('/employee/update/center', params); }, /** * 更新登录人头像 @@ -77,21 +77,18 @@ export const employeeApi = { updateEmployeePassword: (param) => { return postEncryptRequest('/employee/update/password', param); }, - /** * 获取密码复杂度 */ getPasswordComplexityEnabled: () => { return getRequest('/employee/getPasswordComplexityEnabled'); }, - /** * 更新员工禁用状态 */ updateDisabled: (employeeId) => { return getRequest(`/employee/update/disabled/${employeeId}`); }, - /** * 查询员工-根据部门id */ diff --git a/smart-admin-web-javascript/src/store/modules/system/user.js b/smart-admin-web-javascript/src/store/modules/system/user.js index d31f6f71..322d4a1c 100644 --- a/smart-admin-web-javascript/src/store/modules/system/user.js +++ b/smart-admin-web-javascript/src/store/modules/system/user.js @@ -73,7 +73,7 @@ export const useUserStore = defineStore({ } return localRead(localKey.USER_TOKEN); }, - getNeedUpdatePwdFlag(state){ + getNeedUpdatePwdFlag(state) { return state.needUpdatePwdFlag; }, //是否初始化了 路由 @@ -206,7 +206,7 @@ export const useUserStore = defineStore({ // @ts-ignore menuTitle: route.meta.title, menuQuery: route.query, - menuIcon:route.meta?.icon, + menuIcon: route.meta?.icon, // @ts-ignore fromMenuName: from.name, fromMenuQuery: from.query, diff --git a/smart-admin-web-javascript/src/views/system/account/components/center/index.vue b/smart-admin-web-javascript/src/views/system/account/components/center/index.vue index 193aa23f..6d8204dc 100644 --- a/smart-admin-web-javascript/src/views/system/account/components/center/index.vue +++ b/smart-admin-web-javascript/src/views/system/account/components/center/index.vue @@ -11,6 +11,16 @@ + + + @@ -20,8 +30,11 @@ - - + + + + + @@ -65,6 +78,7 @@ import { onMounted, reactive, ref } from 'vue'; import { regular } from '/@/constants/regular-const.js'; import DepartmentTreeSelect from '/@/components/system/department-tree-select/index.vue'; + import PositionSelect from '/@/components/system/position-select/index.vue'; import SmartEnumSelect from '/@/components/framework/smart-enum-select/index.vue'; import { loginApi } from '/@/api/system/login-api.js'; import { useUserStore } from '/@/store/modules/system/user.js'; @@ -93,10 +107,12 @@ phone: '', // 部门id departmentId: undefined, - // 是否启用 - disabledFlag: undefined, // 邮箱 email: undefined, + // 职务级别 + positionId: undefined, + // 是否禁用 + disabledFlag: undefined, // 备注 remark: '', }; @@ -111,7 +127,7 @@ { pattern: regular.phone, message: '请输入正确的手机号码', trigger: 'blur' }, ], gender: [{ required: true, message: '性别不能为空' }], - departmentId: [{ required: true, message: '部门不能为空' }], + email: [{ required: true, message: '请输入邮箱' }], }; // 头像地址 let avatarUrl = ref(); @@ -128,12 +144,13 @@ form.employeeId = data.employeeId; form.loginName = data.loginName; form.actualName = data.actualName; - form.email = data.email; form.gender = data.gender; form.phone = data.phone; form.departmentId = data.departmentId; - form.disabledFlag = data.disabledFlag; + form.email = data.email; + form.positionId = data.positionId; form.remark = data.remark; + form.disabledFlag = data.disabledFlag; // 头像展示 avatarUrl.value = data.avatar; } catch (e) { @@ -187,7 +204,7 @@ async function updateEmployee() { SmartLoading.show(); try { - await employeeApi.updateByLogin(form); + await employeeApi.updateCenter(form); message.success('更新成功'); // 重新获取详情,刷新整体缓存 await getLoginInfo(); diff --git a/smart-admin-web-javascript/src/views/system/employee/components/employee-form-modal/index.vue b/smart-admin-web-javascript/src/views/system/employee/components/employee-form-modal/index.vue index d09c256e..c1ec905a 100644 --- a/smart-admin-web-javascript/src/views/system/employee/components/employee-form-modal/index.vue +++ b/smart-admin-web-javascript/src/views/system/employee/components/employee-form-modal/index.vue @@ -119,6 +119,7 @@ phone: undefined, roleIdList: undefined, positionId: undefined, + email: undefined, }; let form = reactive(_.cloneDeep(formDefault)); diff --git a/smart-admin-web-typescript/src/api/system/employee-api.ts b/smart-admin-web-typescript/src/api/system/employee-api.ts index d124417d..cb4ec959 100644 --- a/smart-admin-web-typescript/src/api/system/employee-api.ts +++ b/smart-admin-web-typescript/src/api/system/employee-api.ts @@ -36,10 +36,10 @@ export const employeeApi = { return postRequest('/employee/update', params); }, /** - * 更新登录人信息 + * 更新员工个人中心信息 */ - updateByLogin: (params) => { - return postRequest('/employee/update/login', params); + updateCenter: (params) => { + return postRequest('/employee/update/center', params); }, /** * 更新登录人头像 @@ -77,21 +77,18 @@ export const employeeApi = { updateEmployeePassword: (param) => { return postEncryptRequest('/employee/update/password', param); }, - /** * 获取密码复杂度 */ getPasswordComplexityEnabled: () => { return getRequest('/employee/getPasswordComplexityEnabled'); }, - /** * 更新员工禁用状态 */ updateDisabled: (employeeId) => { return getRequest(`/employee/update/disabled/${employeeId}`); }, - /** * 查询员工-根据部门id */ diff --git a/smart-admin-web-typescript/src/views/system/account/components/center/index.vue b/smart-admin-web-typescript/src/views/system/account/components/center/index.vue index cbe8494d..d51d8a06 100644 --- a/smart-admin-web-typescript/src/views/system/account/components/center/index.vue +++ b/smart-admin-web-typescript/src/views/system/account/components/center/index.vue @@ -11,6 +11,9 @@ + + + @@ -20,8 +23,11 @@ - - + + + + + @@ -65,6 +71,7 @@ import { onMounted, reactive, ref } from 'vue'; import { regular } from '/@/constants/regular-const.js'; import DepartmentTreeSelect from '/@/components/system/department-tree-select/index.vue'; + import PositionSelect from '/@/components/system/position-select/index.vue'; import SmartEnumSelect from '/@/components/framework/smart-enum-select/index.vue'; import { loginApi } from '/@/api/system/login-api.js'; import { useUserStore } from '/@/store/modules/system/user.js'; @@ -93,10 +100,12 @@ phone: '', // 部门id departmentId: undefined, - // 是否启用 - disabledFlag: undefined, // 邮箱 email: undefined, + // 职务级别 + positionId: undefined, + // 是否禁用 + disabledFlag: undefined, // 备注 remark: '', }; @@ -111,7 +120,7 @@ { pattern: regular.phone, message: '请输入正确的手机号码', trigger: 'blur' }, ], gender: [{ required: true, message: '性别不能为空' }], - departmentId: [{ required: true, message: '部门不能为空' }], + email: [{ required: true, message: '请输入邮箱' }], }; // 头像地址 let avatarUrl = ref(); @@ -128,12 +137,13 @@ form.employeeId = data.employeeId; form.loginName = data.loginName; form.actualName = data.actualName; - form.email = data.email; form.gender = data.gender; form.phone = data.phone; form.departmentId = data.departmentId; - form.disabledFlag = data.disabledFlag; + form.email = data.email; + form.positionId = data.positionId; form.remark = data.remark; + form.disabledFlag = data.disabledFlag; // 头像展示 avatarUrl.value = data.avatar; } catch (e) { @@ -187,7 +197,7 @@ async function updateEmployee() { SmartLoading.show(); try { - await employeeApi.updateByLogin(form); + await employeeApi.updateCenter(form); message.success('更新成功'); // 重新获取详情,刷新整体缓存 await getLoginInfo(); diff --git a/smart-admin-web-typescript/src/views/system/employee/components/employee-form-modal/index.vue b/smart-admin-web-typescript/src/views/system/employee/components/employee-form-modal/index.vue index 7b27b9dd..ceff4d33 100644 --- a/smart-admin-web-typescript/src/views/system/employee/components/employee-form-modal/index.vue +++ b/smart-admin-web-typescript/src/views/system/employee/components/employee-form-modal/index.vue @@ -119,6 +119,7 @@ phone: undefined, roleIdList: undefined, positionId: undefined, + email: undefined, }; let form = reactive(_.cloneDeep(formDefault));