This commit is contained in:
caozehui
2024-11-12 11:24:28 +08:00
parent 03e74ecb52
commit 63ac668df9
11 changed files with 47 additions and 23 deletions

View File

@@ -97,7 +97,7 @@ public class DictDataController extends BaseController {
* 批量删除字典数据 * 批量删除字典数据
*/ */
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE) @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
@DeleteMapping("/delete") @PostMapping("/delete")
@ApiOperation("删除字典数据") @ApiOperation("删除字典数据")
@ApiImplicitParam(name = "ids", value = "字典索引", required = true, dataTypeClass = List.class) @ApiImplicitParam(name = "ids", value = "字典索引", required = true, dataTypeClass = List.class)
public HttpResult<Object> delete(@RequestBody List<String> ids) { public HttpResult<Object> delete(@RequestBody List<String> ids) {

View File

@@ -77,7 +77,7 @@ public class DictPqController extends BaseController {
} }
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE)
@DeleteMapping("/delete") @PostMapping("/delete")
@ApiOperation("删除电能质量指标字典") @ApiOperation("删除电能质量指标字典")
@ApiImplicitParam(name = "ids", value = "字典索引", required = true) @ApiImplicitParam(name = "ids", value = "字典索引", required = true)
public HttpResult<Object> delete(@RequestBody List<String> ids) { public HttpResult<Object> delete(@RequestBody List<String> ids) {

View File

@@ -82,7 +82,7 @@ public class DictTreeController extends BaseController {
* @param id id * @param id id
*/ */
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE)
@DeleteMapping("/delete") @PostMapping("/delete")
@ApiOperation("删除") @ApiOperation("删除")
@ApiImplicitParam(name = "id", value = "id", required = true) @ApiImplicitParam(name = "id", value = "id", required = true)
public HttpResult<Boolean> delete(@RequestParam @Validated String id) { public HttpResult<Boolean> delete(@RequestParam @Validated String id) {

View File

@@ -92,7 +92,7 @@ public class DictTypeController extends BaseController {
} }
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE)
@DeleteMapping("/delete") @PostMapping("/delete")
@ApiOperation("删除字典类型") @ApiOperation("删除字典类型")
@ApiImplicitParam(name = "ids", value = "字典索引", required = true) @ApiImplicitParam(name = "ids", value = "字典索引", required = true)
public HttpResult<Object> delete(@RequestBody List<String> ids) { public HttpResult<Object> delete(@RequestBody List<String> ids) {

View File

@@ -1,7 +1,6 @@
#### 简介 #### 简介
用户模块主要包含以下功能: 用户模块主要包含以下功能:
* 用户管理 * 用户管理、角色管理
* 角色管理
* 部门管理 * 部门管理
* 职位管理(非必须) * 职位管理(非必须)
* 菜单资源管理 * 菜单资源管理

View File

@@ -28,5 +28,5 @@ public interface UserValidMessage {
String PHONE_FORMAT_ERROR = "电话号码格式错误请检查phone参数"; String PHONE_FORMAT_ERROR = "电话号码格式错误请检查phone参数";
//String LOGIN_ERROR_TIMES_NOT_NULL = "登录错误次数不能为空请检查loginErrorTimes参数"; String EMAIL_FORMAT_ERROR = "邮箱格式错误请检查email参数";
} }

View File

@@ -88,7 +88,7 @@ public class SysUserController extends BaseController {
} }
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE)
@DeleteMapping("/delete") @PostMapping("/delete")
@ApiOperation("批量删除用户") @ApiOperation("批量删除用户")
@ApiImplicitParam(name = "ids", value = "用户id", required = true) @ApiImplicitParam(name = "ids", value = "用户id", required = true)
public HttpResult<Boolean> delete(@RequestBody List<String> ids) { public HttpResult<Boolean> delete(@RequestBody List<String> ids) {

View File

@@ -1,6 +1,8 @@
package com.njcn.gather.user.user.mapper; package com.njcn.gather.user.user.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import com.njcn.gather.user.user.pojo.param.SysUserParam;
import com.njcn.gather.user.user.pojo.po.SysUser; import com.njcn.gather.user.user.pojo.po.SysUser;
/** /**

View File

@@ -2,17 +2,14 @@ package com.njcn.gather.user.user.pojo.param;
import com.njcn.common.pojo.constant.PatternRegex; import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.gather.user.pojo.constant.UserValidMessage; import com.njcn.gather.user.pojo.constant.UserValidMessage;
import com.njcn.web.pojo.annotation.DateTimeStrValid;
import com.njcn.web.pojo.param.BaseParam; import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import java.time.LocalDateTime; import java.util.List;
/** /**
* @author caozehui * @author caozehui
@@ -23,7 +20,7 @@ public class SysUserParam {
@ApiModelProperty("用户名(别名)") @ApiModelProperty("用户名(别名)")
@NotBlank(message = UserValidMessage.NAME_NOT_BLANK) @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; private String name;
@ApiModelProperty("部门Id") @ApiModelProperty("部门Id")
@@ -35,10 +32,15 @@ public class SysUserParam {
private String phone; private String phone;
@ApiModelProperty("邮箱") @ApiModelProperty("邮箱")
@Pattern(regexp = PatternRegex.EMAIL_REGEX_OR_NULL, message = UserValidMessage.EMAIL_FORMAT_ERROR)
private String email; private String email;
// @ApiModelProperty("最后一次登录时间") @ApiModelProperty("角色ids")
// private LocalDateTime loginTime; private List<String> roleIds;
// @ApiModelProperty("最后一次登录时间")
// @DateTimeStrValid(format = "yyyy-MM-dd HH:mm:ss")
// private String loginTime;
// @ApiModelProperty("密码错误次数") // @ApiModelProperty("密码错误次数")
// @NotNull(message = UserValidMessage.LOGIN_ERROR_TIMES_NOT_NULL) // @NotNull(message = UserValidMessage.LOGIN_ERROR_TIMES_NOT_NULL)
@@ -61,7 +63,6 @@ public class SysUserParam {
@NotBlank(message = UserValidMessage.PASSWORD_NOT_BLANK) @NotBlank(message = UserValidMessage.PASSWORD_NOT_BLANK)
@Pattern(regexp = PatternRegex.PASSWORD_REGEX, message = UserValidMessage.PASSWORD_FORMAT_ERROR) @Pattern(regexp = PatternRegex.PASSWORD_REGEX, message = UserValidMessage.PASSWORD_FORMAT_ERROR)
private String password; private String password;
} }
@Data @Data
@@ -79,7 +80,6 @@ public class SysUserParam {
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public static class SysUserQueryParam extends BaseParam { public static class SysUserQueryParam extends BaseParam {
@ApiModelProperty("用户名(别名)") @ApiModelProperty("用户名(别名)")
@Pattern(regexp = PatternRegex.USERNAME_REGEX, message = UserValidMessage.NAME_FORMAT_ERROR)
private String name; private String name;
} }

View File

@@ -2,6 +2,7 @@ package com.njcn.gather.user.user.pojo.po;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@@ -14,6 +15,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* @author caozehui * @author caozehui
@@ -86,5 +88,8 @@ public class SysUser extends BaseEntity implements Serializable {
* 用户状态 0-删除1-正常2-锁定3-待审核4-休眠5-密码过期 * 用户状态 0-删除1-正常2-锁定3-待审核4-休眠5-密码过期
*/ */
private Integer state; private Integer state;
@TableField(exist = false)
private List<String> role;
} }

View File

@@ -1,5 +1,6 @@
package com.njcn.gather.user.user.service.impl; 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.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.pojo.enums.UserResponseEnum;
import com.njcn.gather.user.user.mapper.SysUserMapper; import com.njcn.gather.user.user.mapper.SysUserMapper;
import com.njcn.gather.user.user.pojo.param.SysUserParam; 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.pojo.po.SysUser;
import com.njcn.gather.user.user.service.ISysUserRoleService;
import com.njcn.gather.user.user.service.ISysUserService; import com.njcn.gather.user.user.service.ISysUserService;
import com.njcn.web.factory.PageFactory; import com.njcn.web.factory.PageFactory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -26,6 +29,7 @@ import org.springframework.stereotype.Service;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* @author caozehui * @author caozehui
@@ -36,6 +40,8 @@ import java.util.Objects;
@RequiredArgsConstructor @RequiredArgsConstructor
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService { public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
private final ISysUserRoleService sysUserRoleService;
@Override @Override
public Page<SysUser> listUser(SysUserParam.SysUserQueryParam queryParam) { public Page<SysUser> listUser(SysUserParam.SysUserQueryParam queryParam) {
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>(); QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
@@ -52,7 +58,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
queryWrapper.orderByDesc("sys_user.update_time"); queryWrapper.orderByDesc("sys_user.update_time");
} }
queryWrapper.ne("sys_user.state", UserState.DELETED); queryWrapper.ne("sys_user.state", UserState.DELETED);
return this.baseMapper.selectPage(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper); Page<SysUser> page = this.baseMapper.selectPage(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper);
page.getRecords().forEach(sysUser -> {
List<String> roleIds = sysUserRoleService.listRoleByUserId(sysUser.getId()).stream().map(SysRole::getId).collect(Collectors.toList());
sysUser.setRole(roleIds);
});
return page;
} }
@Override @Override
@@ -109,9 +120,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
String secretkey = Sm4Utils.globalSecretKey; String secretkey = Sm4Utils.globalSecretKey;
Sm4Utils sm4 = new Sm4Utils(secretkey); Sm4Utils sm4 = new Sm4Utils(secretkey);
sysUser.setPassword(sm4.encryptData_ECB(sysUser.getPassword())); sysUser.setPassword(sm4.encryptData_ECB(sysUser.getPassword()));
// todo 别忘记移除登录时间
sysUser.setLoginTime(LocalDateTimeUtil.now());
sysUser.setLoginErrorTimes(0); sysUser.setLoginErrorTimes(0);
sysUser.setState(UserState.ENABLED); 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 @Override
@@ -119,14 +134,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
checkRepeat(updateUserParam, true, updateUserParam.getId()); checkRepeat(updateUserParam, true, updateUserParam.getId());
SysUser sysUser = new SysUser(); SysUser sysUser = new SysUser();
BeanUtils.copyProperties(updateUserParam, 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 @Override
public boolean deleteUser(List<String> ids) { public boolean deleteUser(List<String> ids) {
UpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<>(); return this.lambdaUpdate()
updateWrapper.set("sys_user.state", UserState.DELETED).in("sys_user.id", ids); .set(SysUser::getState, UserState.DELETED)
return this.update(updateWrapper); .in(SysUser::getId, ids)
.update();
} }
/** /**