From 63ac668df97002da51d01260b9d96a76a5518f00 Mon Sep 17 00:00:00 2001 From: caozehui <2427765068@qq.com> Date: Tue, 12 Nov 2024 11:24:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DictDataController.java | 2 +- .../controller/DictPqController.java | 2 +- .../controller/DictTreeController.java | 2 +- .../controller/DictTypeController.java | 2 +- user/Readme.md | 3 +- .../user/pojo/constant/UserValidMessage.java | 2 +- .../user/controller/SysUserController.java | 2 +- .../user/user/mapper/SysUserMapper.java | 2 ++ .../user/user/pojo/param/SysUserParam.java | 18 +++++------ .../gather/user/user/pojo/po/SysUser.java | 5 ++++ .../user/service/impl/SysUserServiceImpl.java | 30 +++++++++++++++---- 11 files changed, 47 insertions(+), 23 deletions(-) diff --git a/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictDataController.java b/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictDataController.java index 711be5d0..530b00ce 100644 --- a/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictDataController.java +++ b/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictDataController.java @@ -97,7 +97,7 @@ public class DictDataController extends BaseController { * 批量删除字典数据 */ @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE) - @DeleteMapping("/delete") + @PostMapping("/delete") @ApiOperation("删除字典数据") @ApiImplicitParam(name = "ids", value = "字典索引", required = true, dataTypeClass = List.class) public HttpResult delete(@RequestBody List ids) { diff --git a/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictPqController.java b/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictPqController.java index 6e7003f4..58469820 100644 --- a/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictPqController.java +++ b/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictPqController.java @@ -77,7 +77,7 @@ public class DictPqController extends BaseController { } @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) - @DeleteMapping("/delete") + @PostMapping("/delete") @ApiOperation("删除电能质量指标字典") @ApiImplicitParam(name = "ids", value = "字典索引", required = true) public HttpResult delete(@RequestBody List ids) { diff --git a/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictTreeController.java b/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictTreeController.java index 7222a6b5..ce44c00a 100644 --- a/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictTreeController.java +++ b/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictTreeController.java @@ -82,7 +82,7 @@ public class DictTreeController extends BaseController { * @param id id */ @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) - @DeleteMapping("/delete") + @PostMapping("/delete") @ApiOperation("删除") @ApiImplicitParam(name = "id", value = "id", required = true) public HttpResult delete(@RequestParam @Validated String id) { diff --git a/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictTypeController.java b/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictTypeController.java index db44f1e1..f75502d7 100644 --- a/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictTypeController.java +++ b/system/src/main/java/com/njcn/gather/system/dictionary/controller/DictTypeController.java @@ -92,7 +92,7 @@ public class DictTypeController extends BaseController { } @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) - @DeleteMapping("/delete") + @PostMapping("/delete") @ApiOperation("删除字典类型") @ApiImplicitParam(name = "ids", value = "字典索引", required = true) public HttpResult delete(@RequestBody List ids) { diff --git a/user/Readme.md b/user/Readme.md index e719638b..bb53050f 100644 --- a/user/Readme.md +++ b/user/Readme.md @@ -1,7 +1,6 @@ #### 简介 用户模块主要包含以下功能: -* 用户管理 -* 角色管理 +* 用户管理、角色管理 * 部门管理 * 职位管理(非必须) * 菜单资源管理 diff --git a/user/src/main/java/com/njcn/gather/user/pojo/constant/UserValidMessage.java b/user/src/main/java/com/njcn/gather/user/pojo/constant/UserValidMessage.java index 4daba6f0..8b6c1ba7 100644 --- a/user/src/main/java/com/njcn/gather/user/pojo/constant/UserValidMessage.java +++ b/user/src/main/java/com/njcn/gather/user/pojo/constant/UserValidMessage.java @@ -28,5 +28,5 @@ public interface UserValidMessage { String PHONE_FORMAT_ERROR = "电话号码格式错误,请检查phone参数"; - //String LOGIN_ERROR_TIMES_NOT_NULL = "登录错误次数不能为空,请检查loginErrorTimes参数"; + String EMAIL_FORMAT_ERROR = "邮箱格式错误,请检查email参数"; } diff --git a/user/src/main/java/com/njcn/gather/user/user/controller/SysUserController.java b/user/src/main/java/com/njcn/gather/user/user/controller/SysUserController.java index f9c687d6..d34f463b 100644 --- a/user/src/main/java/com/njcn/gather/user/user/controller/SysUserController.java +++ b/user/src/main/java/com/njcn/gather/user/user/controller/SysUserController.java @@ -88,7 +88,7 @@ public class SysUserController extends BaseController { } @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) - @DeleteMapping("/delete") + @PostMapping("/delete") @ApiOperation("批量删除用户") @ApiImplicitParam(name = "ids", value = "用户id", required = true) public HttpResult delete(@RequestBody List ids) { diff --git a/user/src/main/java/com/njcn/gather/user/user/mapper/SysUserMapper.java b/user/src/main/java/com/njcn/gather/user/user/mapper/SysUserMapper.java index 1df2c920..8b4bc159 100644 --- a/user/src/main/java/com/njcn/gather/user/user/mapper/SysUserMapper.java +++ b/user/src/main/java/com/njcn/gather/user/user/mapper/SysUserMapper.java @@ -1,6 +1,8 @@ package com.njcn.gather.user.user.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.base.MPJBaseMapper; +import com.njcn.gather.user.user.pojo.param.SysUserParam; import com.njcn.gather.user.user.pojo.po.SysUser; /** diff --git a/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java b/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java index 71491e7d..a55715ea 100644 --- a/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java +++ b/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java @@ -2,17 +2,14 @@ package com.njcn.gather.user.user.pojo.param; import com.njcn.common.pojo.constant.PatternRegex; import com.njcn.gather.user.pojo.constant.UserValidMessage; -import com.njcn.web.pojo.annotation.DateTimeStrValid; import com.njcn.web.pojo.param.BaseParam; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import org.hibernate.validator.constraints.Range; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; -import java.time.LocalDateTime; +import java.util.List; /** * @author caozehui @@ -23,7 +20,7 @@ public class SysUserParam { @ApiModelProperty("用户名(别名)") @NotBlank(message = UserValidMessage.NAME_NOT_BLANK) - @Pattern(regexp = PatternRegex.DEPT_NAME_REGEX, message = UserValidMessage.NAME_FORMAT_ERROR) + @Pattern(regexp = PatternRegex.USERNAME_REGEX, message = UserValidMessage.NAME_FORMAT_ERROR) private String name; @ApiModelProperty("部门Id") @@ -35,10 +32,15 @@ public class SysUserParam { private String phone; @ApiModelProperty("邮箱") + @Pattern(regexp = PatternRegex.EMAIL_REGEX_OR_NULL, message = UserValidMessage.EMAIL_FORMAT_ERROR) private String email; -// @ApiModelProperty("最后一次登录时间") -// private LocalDateTime loginTime; + @ApiModelProperty("角色ids") + private List roleIds; + + // @ApiModelProperty("最后一次登录时间") + // @DateTimeStrValid(format = "yyyy-MM-dd HH:mm:ss") + // private String loginTime; // @ApiModelProperty("密码错误次数") // @NotNull(message = UserValidMessage.LOGIN_ERROR_TIMES_NOT_NULL) @@ -61,7 +63,6 @@ public class SysUserParam { @NotBlank(message = UserValidMessage.PASSWORD_NOT_BLANK) @Pattern(regexp = PatternRegex.PASSWORD_REGEX, message = UserValidMessage.PASSWORD_FORMAT_ERROR) private String password; - } @Data @@ -79,7 +80,6 @@ public class SysUserParam { @EqualsAndHashCode(callSuper = true) public static class SysUserQueryParam extends BaseParam { @ApiModelProperty("用户名(别名)") - @Pattern(regexp = PatternRegex.USERNAME_REGEX, message = UserValidMessage.NAME_FORMAT_ERROR) private String name; } diff --git a/user/src/main/java/com/njcn/gather/user/user/pojo/po/SysUser.java b/user/src/main/java/com/njcn/gather/user/user/pojo/po/SysUser.java index b98f9f8e..b36eb4f6 100644 --- a/user/src/main/java/com/njcn/gather/user/user/pojo/po/SysUser.java +++ b/user/src/main/java/com/njcn/gather/user/user/pojo/po/SysUser.java @@ -2,6 +2,7 @@ package com.njcn.gather.user.user.pojo.po; import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @@ -14,6 +15,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; +import java.util.List; /** * @author caozehui @@ -86,5 +88,8 @@ public class SysUser extends BaseEntity implements Serializable { * 用户状态 0-删除;1-正常;2-锁定;3-待审核;4-休眠;5-密码过期 */ private Integer state; + + @TableField(exist = false) + private List role; } diff --git a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java index 1a5b6084..baf8eef0 100644 --- a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java +++ b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.gather.user.user.service.impl; +import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -14,7 +15,9 @@ import com.njcn.gather.user.pojo.constant.UserState; import com.njcn.gather.user.pojo.enums.UserResponseEnum; import com.njcn.gather.user.user.mapper.SysUserMapper; import com.njcn.gather.user.user.pojo.param.SysUserParam; +import com.njcn.gather.user.user.pojo.po.SysRole; import com.njcn.gather.user.user.pojo.po.SysUser; +import com.njcn.gather.user.user.service.ISysUserRoleService; import com.njcn.gather.user.user.service.ISysUserService; import com.njcn.web.factory.PageFactory; import lombok.RequiredArgsConstructor; @@ -26,6 +29,7 @@ import org.springframework.stereotype.Service; import java.util.Collections; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * @author caozehui @@ -36,6 +40,8 @@ import java.util.Objects; @RequiredArgsConstructor public class SysUserServiceImpl extends ServiceImpl implements ISysUserService { + private final ISysUserRoleService sysUserRoleService; + @Override public Page listUser(SysUserParam.SysUserQueryParam queryParam) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -52,7 +58,12 @@ public class SysUserServiceImpl extends ServiceImpl impl queryWrapper.orderByDesc("sys_user.update_time"); } queryWrapper.ne("sys_user.state", UserState.DELETED); - return this.baseMapper.selectPage(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper); + Page page = this.baseMapper.selectPage(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper); + page.getRecords().forEach(sysUser -> { + List roleIds = sysUserRoleService.listRoleByUserId(sysUser.getId()).stream().map(SysRole::getId).collect(Collectors.toList()); + sysUser.setRole(roleIds); + }); + return page; } @Override @@ -109,9 +120,13 @@ public class SysUserServiceImpl extends ServiceImpl impl String secretkey = Sm4Utils.globalSecretKey; Sm4Utils sm4 = new Sm4Utils(secretkey); sysUser.setPassword(sm4.encryptData_ECB(sysUser.getPassword())); + // todo 别忘记移除登录时间 + sysUser.setLoginTime(LocalDateTimeUtil.now()); sysUser.setLoginErrorTimes(0); sysUser.setState(UserState.ENABLED); - return this.save(sysUser); + boolean result1 = this.save(sysUser); + boolean result2 = sysUserRoleService.addUserRole(sysUser.getId(), addUserParam.getRoleIds()); + return result1 && result2; } @Override @@ -119,14 +134,17 @@ public class SysUserServiceImpl extends ServiceImpl impl checkRepeat(updateUserParam, true, updateUserParam.getId()); SysUser sysUser = new SysUser(); BeanUtils.copyProperties(updateUserParam, sysUser); - return this.updateById(sysUser); + boolean result1 = this.updateById(sysUser); + boolean result2 = sysUserRoleService.updateUserRole(sysUser.getId(), updateUserParam.getRoleIds()); + return result1 && result2; } @Override public boolean deleteUser(List ids) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.set("sys_user.state", UserState.DELETED).in("sys_user.id", ids); - return this.update(updateWrapper); + return this.lambdaUpdate() + .set(SysUser::getState, UserState.DELETED) + .in(SysUser::getId, ids) + .update(); } /**