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

@@ -28,5 +28,5 @@ public interface UserValidMessage {
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)
@DeleteMapping("/delete")
@PostMapping("/delete")
@ApiOperation("批量删除用户")
@ApiImplicitParam(name = "ids", value = "用户id", required = true)
public HttpResult<Boolean> delete(@RequestBody List<String> ids) {

View File

@@ -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;
/**

View File

@@ -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<String> 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;
}

View File

@@ -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<String> role;
}

View File

@@ -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<SysUserMapper, SysUser> implements ISysUserService {
private final ISysUserRoleService sysUserRoleService;
@Override
public Page<SysUser> listUser(SysUserParam.SysUserQueryParam queryParam) {
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
@@ -52,7 +58,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> 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<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
@@ -109,9 +120,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> 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<SysUserMapper, SysUser> 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<String> ids) {
UpdateWrapper<SysUser> 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();
}
/**