添加个人中心代码

master
bynt 12 months ago
parent b7135f8b72
commit db317c736b

@ -70,4 +70,8 @@ public class PasswordHelper {
return matcher.matches();
}
public boolean matches(String oldPass, String password) {
return passwordEncoder.matches(oldPass, password);
}
}

@ -339,12 +339,12 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
SysUser sysUser = baseMapper.selectById(userId);
String oldPath = sysUser.getAvatar();
File file = FileUtil.upload(multipartFile, fileProperties.getPath().getAvatar());
sysUser.setAvatar(Objects.requireNonNull(file).getPath());
sysUser.setAvatar(Objects.requireNonNull(file).getName());
baseMapper.updateById(sysUser);
if (StringUtils.isNotBlank(oldPath)) {
FileUtil.del(oldPath);
}
return file.getPath();
return file.getName();
}
/**

@ -1,7 +1,18 @@
package com.baiye.system.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.domain.SelectData;
import com.baiye.exception.BusinessException;
import com.baiye.operation.annotation.CreateOperationLogging;
import com.baiye.operation.annotation.DeleteOperationLogging;
import com.baiye.operation.annotation.UpdateOperationLogging;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.result.SystemResultCode;
import com.baiye.security.util.SecurityUtils;
import com.baiye.system.component.PasswordHelper;
import com.baiye.system.constant.SysUserConst;
import com.baiye.system.converter.SysUserConverter;
@ -9,24 +20,14 @@ import com.baiye.system.model.dto.SysUserDTO;
import com.baiye.system.model.dto.SysUserPassDTO;
import com.baiye.system.model.dto.SysUserScope;
import com.baiye.system.model.entity.SysRole;
import com.baiye.system.model.entity.SysUser;
import com.baiye.system.model.qo.SysUserQO;
import com.baiye.system.model.vo.SysUserInfo;
import com.baiye.system.model.vo.SysUserPageVO;
import com.baiye.system.service.SysUserRoleService;
import com.baiye.system.service.SysUserService;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import com.baiye.operation.annotation.CreateOperationLogging;
import com.baiye.operation.annotation.DeleteOperationLogging;
import com.baiye.operation.annotation.UpdateOperationLogging;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.domain.SelectData;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.result.SystemResultCode;
import com.baiye.security.util.SecurityUtils;
import com.baiye.system.model.entity.SysUser;
import com.baiye.system.service.SysUserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@ -34,15 +35,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.ValidationException;
@ -74,6 +67,7 @@ public class SysUserController {
/**
*
*
* @param pageParam
* @return
*/
@ -103,6 +97,7 @@ public class SysUserController {
/**
* Select
*
* @return SelectData
*/
@GetMapping("/select")
@ -115,11 +110,12 @@ public class SysUserController {
/**
*
*
* @param userId ID
* @return SysUserInfo
*/
@GetMapping("/{userId}")
@PreAuthorize("@per.hasPermission('system:user:read')")
// @PreAuthorize("@per.hasPermission('system:user:read')")
@Operation(summary = "获取指定用户的基本信息")
public R<SysUserInfo> getSysUserInfo(@PathVariable("userId") Long userId) {
SysUser sysUser = sysUserService.getById(userId);
@ -127,11 +123,14 @@ public class SysUserController {
return R.ok();
}
SysUserInfo sysUserInfo = SysUserConverter.INSTANCE.poToInfo(sysUser);
List<SysRole> roleList = sysUserRoleService.listRoles(userId);
sysUserInfo.setRoleList(roleList);
return R.ok(sysUserInfo);
}
/**
*
*
* @param sysUserDTO userInfo
* @return success/false
*/
@ -139,7 +138,7 @@ public class SysUserController {
@CreateOperationLogging(msg = "新增系统用户")
@PreAuthorize("@per.hasPermission('system:user:add')")
@Operation(summary = "新增系统用户", description = "新增系统用户")
public R<Void> addSysUser(@Validated({ Default.class, CreateGroup.class }) @RequestBody SysUserDTO sysUserDTO) {
public R<Void> addSysUser(@Validated({Default.class, CreateGroup.class}) @RequestBody SysUserDTO sysUserDTO) {
SysUser user = sysUserService.getByUsername(sysUserDTO.getUsername());
if (user != null) {
return R.failed(BaseResultCode.LOGIC_CHECK_ERROR, "用户名已存在");
@ -153,22 +152,22 @@ public class SysUserController {
if (passwordHelper.validateRule(rawPassword)) {
return sysUserService.addSysUser(sysUserDTO) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "新增系统用户失败");
}
else {
} else {
return R.failed(SystemResultCode.BAD_REQUEST, "密码格式不符合规则!");
}
}
/**
*
*
* @param sysUserDto userInfo
* @return success/false
*/
@PutMapping
@UpdateOperationLogging(msg = "修改系统用户")
@PreAuthorize("@per.hasPermission('system:user:edit')")
// @PreAuthorize("@per.hasPermission('system:user:edit')")
@Operation(summary = "修改系统用户", description = "修改系统用户")
public R<Void> updateUserInfo(@Validated({ Default.class, UpdateGroup.class }) @RequestBody SysUserDTO sysUserDto) {
public R<Void> updateUserInfo(@Validated({Default.class, UpdateGroup.class}) @RequestBody SysUserDTO sysUserDto) {
return sysUserService.updateSysUser(sysUserDto) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改系统用户失败");
}
@ -187,6 +186,7 @@ public class SysUserController {
/**
* ID
*
* @param userId userId
*/
@GetMapping("/scope/{userId}")
@ -206,8 +206,10 @@ public class SysUserController {
return R.ok(sysUserScope);
}
/**
*
*
* @param sysUserScope sysUserScope
* @return success/false
*/
@ -225,22 +227,29 @@ public class SysUserController {
*/
@PutMapping("/pass/{userId}")
@UpdateOperationLogging(msg = "修改系统用户密码")
@PreAuthorize("@per.hasPermission('system:user:pass')")
// @PreAuthorize("@per.hasPermission('system:user:pass')")
@Operation(summary = "修改系统用户密码", description = "修改系统用户密码")
public R<Void> updateUserPass(@PathVariable("userId") Long userId, @RequestBody SysUserPassDTO sysUserPassDTO) {
String pass = sysUserPassDTO.getPass();
SysUser byId = sysUserService.getById(userId);
if (ObjectUtil.isNull(byId)) {
return R.failed(SystemResultCode.BAD_REQUEST, "该用户不存在");
}
if (!passwordHelper.matches(passwordHelper.decodeAes(sysUserPassDTO.getOldPass()), byId.getPassword())) {
return R.failed(SystemResultCode.BAD_REQUEST, "修改失败,旧密码错误!");
}
if (!pass.equals(sysUserPassDTO.getConfirmPass())) {
return R.failed(SystemResultCode.BAD_REQUEST, "两次密码输入不一致!");
}
// 解密明文密码
String rawPassword = passwordHelper.decodeAes(pass);
// 密码规则校验
if (passwordHelper.validateRule(rawPassword)) {
return sysUserService.updatePassword(userId, rawPassword) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改用户密码失败!");
}
else {
} else {
return R.failed(SystemResultCode.BAD_REQUEST, "密码格式不符合规则!");
}
}
@ -253,7 +262,7 @@ public class SysUserController {
@PreAuthorize("@per.hasPermission('system:user:edit')")
@Operation(summary = "批量修改用户状态", description = "批量修改用户状态")
public R<Void> updateUserStatus(@NotEmpty(message = "用户ID不能为空") @RequestBody List<Long> userIds,
@NotNull(message = "用户状态不能为空") @RequestParam("status") Integer status) {
@NotNull(message = "用户状态不能为空") @RequestParam("status") Integer status) {
if (!SysUserConst.Status.NORMAL.getValue().equals(status)
&& !SysUserConst.Status.LOCKED.getValue().equals(status)) {
@ -264,15 +273,14 @@ public class SysUserController {
}
@UpdateOperationLogging(msg = "修改系统用户头像")
@PreAuthorize("@per.hasPermission('system:user:edit')")
// @PreAuthorize("@per.hasPermission('system:user:edit')")
@PostMapping("/avatar")
@Operation(summary = "修改系统用户头像", description = "修改系统用户头像")
public R<String> updateAvatar(@RequestParam("file") MultipartFile file, @RequestParam("userId") Long userId) {
public R<String> updateAvatar(@RequestParam("file") MultipartFile file) {
String objectName;
try {
objectName = sysUserService.updateAvatar(file, userId);
}
catch (IOException e) {
objectName = sysUserService.updateAvatar(file, SecurityUtils.getCurrentUserId());
} catch (IOException e) {
log.error("修改系统用户头像异常", e);
return R.failed(BaseResultCode.FILE_UPLOAD_ERROR);
}

@ -16,6 +16,14 @@ import javax.validation.constraints.NotBlank;
@Schema(title = "系统用户密码传输实体")
public class SysUserPassDTO {
/**
*
*/
@NotBlank(message = "The password cannot be empty!")
@JsonRegexDesensitize(type = RegexDesensitizationTypeEnum.ENCRYPTED_PASSWORD)
@Schema(title = "前端输入旧密码")
private String oldPass;
/**
*
*/

@ -1,10 +1,12 @@
package com.baiye.system.model.vo;
import com.baiye.system.model.entity.SysRole;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
*
@ -83,4 +85,7 @@ public class SysUserInfo implements Serializable {
*/
@Schema(title = "创建者(父ID)")
private Long whichUserId;
private List<SysRole> roleList;
}

Loading…
Cancel
Save