增加 个人信息设置 功能

pull/2/head
niudehua 2021-03-12 00:31:23 +08:00
parent 4e5430b5c0
commit 0181baa72b
10 changed files with 300 additions and 109 deletions

View File

@ -1,92 +1,99 @@
package cn.iocoder.dashboard.modules.system.controller.user;
import cn.iocoder.dashboard.common.pojo.CommonResult;
import cn.iocoder.dashboard.framework.security.core.LoginUser;
import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileRespVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileUpdateReqVO;
import cn.iocoder.dashboard.modules.system.convert.auth.SysAuthConvert;
import cn.iocoder.dashboard.modules.system.convert.user.SysUserConvert;
import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO;
import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService;
import cn.iocoder.dashboard.modules.system.service.permission.SysRoleService;
import cn.iocoder.dashboard.modules.system.service.user.SysUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
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.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author niudehua
*/
@Api(tags = "用户个人中心")
@RestController
@RequestMapping("/system/user/profile")
public class SysUserProfileController {
// /**
// * 个人信息
// */
// @GetMapping
// public AjaxResult profile()
// {
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// SysUser user = loginUser.getUser();
// AjaxResult ajax = AjaxResult.success(user);
// ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
// ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
// return ajax;
// }
//
// /**
// * 修改用户
// */
// @Log(title = "个人信息", businessType = BusinessType.UPDATE)
// @PutMapping
// public AjaxResult updateProfile(@RequestBody SysUser user)
// {
// if (userService.updateUserProfile(user) > 0)
// {
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// // 更新缓存用户信息
// loginUser.getUser().setNickName(user.getNickName());
// loginUser.getUser().setPhonenumber(user.getPhonenumber());
// loginUser.getUser().setEmail(user.getEmail());
// loginUser.getUser().setSex(user.getSex());
// tokenService.setLoginUser(loginUser);
// return AjaxResult.success();
// }
// return AjaxResult.error("修改个人信息异常,请联系管理员");
// }
//
// /**
// * 重置密码
// */
// @Log(title = "个人信息", businessType = BusinessType.UPDATE)
// @PutMapping("/updatePwd")
// public AjaxResult updatePwd(String oldPassword, String newPassword)
// {
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// String userName = loginUser.getUsername();
// String password = loginUser.getPassword();
// if (!SecurityUtils.matchesPassword(oldPassword, password))
// {
// return AjaxResult.error("修改密码失败,旧密码错误");
// }
// if (SecurityUtils.matchesPassword(newPassword, password))
// {
// return AjaxResult.error("新密码不能与旧密码相同");
// }
// if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
// {
// // 更新缓存用户密码
// loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
// tokenService.setLoginUser(loginUser);
// return AjaxResult.success();
// }
// return AjaxResult.error("修改密码异常,请联系管理员");
// }
//
// /**
// * 头像上传
// */
// @Log(title = "用户头像", businessType = BusinessType.UPDATE)
// @PostMapping("/avatar")
// public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException
// {
// if (!file.isEmpty())
// {
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file);
// if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
// {
// AjaxResult ajax = AjaxResult.success();
// ajax.put("imgUrl", avatar);
// // 更新缓存用户头像
// loginUser.getUser().setAvatar(avatar);
// tokenService.setLoginUser(loginUser);
// return ajax;
// }
// }
// return AjaxResult.error("上传图片异常,请联系管理员");
// }
@Resource
private SysUserService userService;
@Resource
private SysPermissionService permissionService;
@Resource
private SysRoleService roleService;
/**
*
*
* @return
*/
@ApiOperation("获得登录用户信息")
@GetMapping("/get")
public CommonResult<SysUserProfileRespVO> profile() {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
// 获取用户信息
assert loginUser != null;
Long userId = loginUser.getId();
SysUserDO user = userService.getUser(userId);
SysUserProfileRespVO userProfileRespVO = SysUserConvert.INSTANCE.convert03(user);
List<SysRoleDO> userRoles = roleService.listRolesFromCache(permissionService.listUserRoleIs(userId));
userProfileRespVO.setRoles(userRoles.stream().map(SysUserConvert.INSTANCE::convert).collect(Collectors.toSet()));
return CommonResult.success(userProfileRespVO);
}
/**
*
*
* @param reqVO reqVO
* @param request HttpServletRequest
* @return
*/
@ApiOperation("修改用户个人信息")
@PostMapping("/update")
public CommonResult<Boolean> updateProfile(@RequestBody SysUserProfileUpdateReqVO reqVO, HttpServletRequest request) {
if (userService.updateUserProfile(reqVO) > 0) {
SecurityFrameworkUtils.setLoginUser(SysAuthConvert.INSTANCE.convert(reqVO), request);
return CommonResult.success(true);
}
return CommonResult.success(false);
}
/**
*
*
* @param file
* @return
*/
@ApiOperation("上传用户个人头像")
@PostMapping("/uploadAvatar")
public CommonResult<Boolean> uploadAvatar(@RequestParam("avatarFile") MultipartFile file) {
if (!file.isEmpty()) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
assert loginUser != null;
if (userService.updateAvatar(loginUser.getId(), file) > 0) {
return CommonResult.success(true);
}
}
return CommonResult.success(false);
}
}

View File

@ -0,0 +1,42 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.Set;
@ApiModel("用户个人中心信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysUserProfileRespVO extends SysUserRespVO {
@ApiModelProperty(value = "旧密码", required = true, example = "123456")
private String oldPassword;
@ApiModelProperty(value = "新密码", required = true, example = "123456")
private String newPassword;
/**
*
*/
@ApiModelProperty(value = "所属角色", required = true, example = "123456")
private Set<Role> roles;
@ApiModel("角色")
@Data
public static class Role {
@ApiModelProperty(value = "角色编号", required = true, example = "1")
private Long id;
@ApiModelProperty(value = "角色名称", required = true, example = "普通角色")
private String name;
}
}

View File

@ -0,0 +1,25 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
@ApiModel("用户更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class SysUserProfileUpdateReqVO extends SysUserBaseVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1024")
@NotNull(message = "用户编号不能为空")
private Long id;
@ApiModelProperty(value = "旧密码", required = true, example = "123456")
private String oldPassword;
@ApiModelProperty(value = "新密码", required = true, example = "654321")
private String newPassword;
}

View File

@ -3,6 +3,7 @@ package cn.iocoder.dashboard.modules.system.convert.auth;
import cn.iocoder.dashboard.framework.security.core.LoginUser;
import cn.iocoder.dashboard.modules.system.controller.auth.vo.auth.SysAuthMenuRespVO;
import cn.iocoder.dashboard.modules.system.controller.auth.vo.auth.SysAuthPermissionInfoRespVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileUpdateReqVO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysMenuDO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO;
@ -13,26 +14,33 @@ import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import org.slf4j.LoggerFactory;
import java.util.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@Mapper
public interface SysAuthConvert {
SysAuthConvert INSTANCE = Mappers.getMapper(SysAuthConvert.class);
@Mapping(source = "updateTime", target = "updateTime", ignore = true) // 字段相同,但是含义不同,忽略
@Mapping(source = "updateTime", target = "updateTime", ignore = true)
// 字段相同,但是含义不同,忽略
LoginUser convert(SysUserDO bean);
default SysAuthPermissionInfoRespVO convert(SysUserDO user, List<SysRoleDO> roleList, List<SysMenuDO> menuList) {
return SysAuthPermissionInfoRespVO.builder()
.user(SysAuthPermissionInfoRespVO.UserVO.builder().nickname(user.getNickname()).avatar(user.getAvatar()).build())
.roles(CollectionUtils.convertSet(roleList, SysRoleDO::getCode))
.permissions(CollectionUtils.convertSet(menuList, SysMenuDO::getPermission))
.build();
.user(SysAuthPermissionInfoRespVO.UserVO.builder().nickname(user.getNickname()).avatar(user.getAvatar()).build())
.roles(CollectionUtils.convertSet(roleList, SysRoleDO::getCode))
.permissions(CollectionUtils.convertSet(menuList, SysMenuDO::getPermission))
.build();
}
SysAuthMenuRespVO convertTreeNode(SysMenuDO menu);
LoginUser convert(SysUserProfileUpdateReqVO reqVO);
/**
*
*
@ -47,12 +55,12 @@ public interface SysAuthConvert {
Map<Long, SysAuthMenuRespVO> treeNodeMap = new LinkedHashMap<>();
menuList.forEach(menu -> treeNodeMap.put(menu.getId(), SysAuthConvert.INSTANCE.convertTreeNode(menu)));
// 处理父子关系
treeNodeMap.values().stream().filter(node -> !node.getParentId().equals(MenuIdEnum.ROOT.getId())).forEach((childNode) -> {
treeNodeMap.values().stream().filter(node -> !node.getParentId().equals(MenuIdEnum.ROOT.getId())).forEach(childNode -> {
// 获得父节点
SysAuthMenuRespVO parentNode = treeNodeMap.get(childNode.getParentId());
if (parentNode == null) {
LoggerFactory.getLogger(getClass()).error("[buildRouterTree][resource({}) 找不到父资源({})]",
childNode.getId(), childNode.getParentId());
childNode.getId(), childNode.getParentId());
return;
}
// 将自己添加到父节点中

View File

@ -1,7 +1,14 @@
package cn.iocoder.dashboard.modules.system.convert.user;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.*;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserCreateReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserExcelVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportExcelVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserPageItemRespVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileRespVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileUpdateReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysDeptDO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@ -23,4 +30,12 @@ public interface SysUserConvert {
SysUserDO convert(SysUserImportExcelVO bean);
SysUserProfileRespVO convert03(SysUserDO bean);
SysUserProfileRespVO.Role convert(SysRoleDO bean);
SysUserDO convert(SysUserProfileUpdateReqVO bean);
}

View File

@ -40,6 +40,7 @@ public interface SysErrorCodeConstants {
ErrorCode USER_EMAIL_EXISTS = new ErrorCode(1002004002, "邮箱已经存在");
ErrorCode USER_NOT_EXISTS = new ErrorCode(1002004003, "用户不存在");
ErrorCode USER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1002004004, "导入用户数据不能为空!");
ErrorCode USER_PASSWORD_FAILED = new ErrorCode(1002004005, "用户密码校验失败");
// ========== 部门模块 1002005000 ==========
ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1002004001, "已经存在该名字的部门");
@ -74,5 +75,6 @@ public interface SysErrorCodeConstants {
// ========== 文件 1002009000 ==========
ErrorCode FILE_PATH_EXISTS = new ErrorCode(1002009001, "文件路径已经存在");
ErrorCode FILE_UPLOAD_FAILED = new ErrorCode(1002009002, "文件上传失败");
}

View File

@ -2,9 +2,16 @@ package cn.iocoder.dashboard.modules.system.service.user;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.dashboard.common.pojo.PageResult;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.*;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserCreateReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserExportReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportExcelVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportRespVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserPageReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileUpdateReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO;
import cn.iocoder.dashboard.util.collection.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.Collection;
import java.util.HashMap;
@ -102,6 +109,14 @@ public interface SysUserService {
*/
void updateUser(SysUserUpdateReqVO reqVO);
/**
*
*
* @param reqVO
* @return
*/
int updateUserProfile(SysUserProfileUpdateReqVO reqVO);
/**
*
*
@ -112,7 +127,7 @@ public interface SysUserService {
/**
*
*
* @param id
* @param id
* @param password
*/
void updateUserPassword(Long id, String password);
@ -120,7 +135,7 @@ public interface SysUserService {
/**
*
*
* @param id
* @param id
* @param status
*/
void updateUserStatus(Long id, Integer status);
@ -128,12 +143,21 @@ public interface SysUserService {
/**
*
*
* @param importUsers
* @param importUsers
* @param isUpdateSupport
* @return
*/
SysUserImportRespVO importUsers(List<SysUserImportExcelVO> importUsers, boolean isUpdateSupport);
/**
*
*
* @param id id
* @param avatarFile
* @return
*/
int updateAvatar(Long id, MultipartFile avatarFile);
//
// /**
// * 修改用户基本信息

View File

@ -1,17 +1,25 @@
package cn.iocoder.dashboard.modules.system.service.user;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
import cn.iocoder.dashboard.common.exception.ServiceException;
import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil;
import cn.iocoder.dashboard.common.pojo.PageResult;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.*;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserCreateReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserExportReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportExcelVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportRespVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserPageReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileUpdateReqVO;
import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO;
import cn.iocoder.dashboard.modules.system.convert.user.SysUserConvert;
import cn.iocoder.dashboard.modules.system.dal.mysql.user.SysUserMapper;
import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysDeptDO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysPostDO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO;
import cn.iocoder.dashboard.modules.system.dal.mysql.user.SysUserMapper;
import cn.iocoder.dashboard.modules.system.service.common.SysFileService;
import cn.iocoder.dashboard.modules.system.service.dept.SysDeptService;
import cn.iocoder.dashboard.modules.system.service.dept.SysPostService;
import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService;
@ -20,9 +28,17 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*;
@ -49,6 +65,9 @@ public class SysUserServiceImpl implements SysUserService {
@Resource
private PasswordEncoder passwordEncoder;
@Resource
private SysFileService fileService;
// /**
// * 根据条件分页查询用户列表
// *
@ -108,7 +127,7 @@ public class SysUserServiceImpl implements SysUserService {
return Collections.emptySet();
}
Set<Long> deptIds = CollectionUtils.convertSet(deptService.listDeptsByParentIdFromCache(
deptId, true), SysDeptDO::getId);
deptId, true), SysDeptDO::getId);
deptIds.add(deptId); // 包括自身
return deptIds;
}
@ -117,7 +136,7 @@ public class SysUserServiceImpl implements SysUserService {
public Long createUser(SysUserCreateReqVO reqVO) {
// 校验正确性
this.checkCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(),
reqVO.getDeptId(), reqVO.getPostIds());
reqVO.getDeptId(), reqVO.getPostIds());
// 插入用户
SysUserDO user = SysUserConvert.INSTANCE.convert(reqVO);
user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
@ -130,12 +149,29 @@ public class SysUserServiceImpl implements SysUserService {
public void updateUser(SysUserUpdateReqVO reqVO) {
// 校验正确性
this.checkCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(),
reqVO.getDeptId(), reqVO.getPostIds());
reqVO.getDeptId(), reqVO.getPostIds());
// 更新用户
SysUserDO updateObj = SysUserConvert.INSTANCE.convert(reqVO);
userMapper.updateById(updateObj);
}
@Override
public int updateUserProfile(SysUserProfileUpdateReqVO reqVO) {
// 校验正确性
this.checkCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(),
reqVO.getDeptId(), reqVO.getPostIds());
SysUserDO updateObj = SysUserConvert.INSTANCE.convert(reqVO);
// 校验旧密码
if (checkOldPassword(reqVO.getId(), reqVO.getOldPassword(), reqVO.getNewPassword())) {
return userMapper.updateById(updateObj);
}
String encode = passwordEncoder.encode(reqVO.getNewPassword());
updateObj.setPassword(encode);
return userMapper.updateById(updateObj);
}
@Override
public void deleteUser(Long id) {
// 校验用户存在
@ -278,6 +314,21 @@ public class SysUserServiceImpl implements SysUserService {
});
}
private boolean checkOldPassword(Long id, String oldPassword, String newPassword) {
if (id == null || StrUtil.isBlank(oldPassword) || StrUtil.isBlank(newPassword)) {
return true;
}
SysUserDO user = userMapper.selectById(id);
if (user == null) {
throw ServiceExceptionUtil.exception(USER_NOT_EXISTS);
}
if (!passwordEncoder.matches(oldPassword, user.getPassword())) {
throw ServiceExceptionUtil.exception(USER_PASSWORD_FAILED);
}
return false;
}
@Override
@Transactional // 添加事务,异常则回滚所有导入
public SysUserImportRespVO importUsers(List<SysUserImportExcelVO> importUsers, boolean isUpdateSupport) {
@ -285,12 +336,12 @@ public class SysUserServiceImpl implements SysUserService {
throw ServiceExceptionUtil.exception(USER_IMPORT_LIST_IS_EMPTY);
}
SysUserImportRespVO respVO = SysUserImportRespVO.builder().createUsernames(new ArrayList<>())
.updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build();
.updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build();
importUsers.forEach(importUser -> {
// 校验,判断是否有不符合的原因
try {
checkCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
importUser.getDeptId(), null);
importUser.getDeptId(), null);
} catch (ServiceException ex) {
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
return;
@ -316,4 +367,21 @@ public class SysUserServiceImpl implements SysUserService {
return respVO;
}
@Override
public int updateAvatar(Long id, MultipartFile avatarFile) {
this.checkUserExists(id);
// 存储文件
String avatar = null;
try {
avatar = fileService.createFile(avatarFile.getOriginalFilename(), IoUtil.readBytes(avatarFile.getInputStream()));
} catch (IOException e) {
throw ServiceExceptionUtil.exception(FILE_UPLOAD_FAILED);
}
// 更新路径
SysUserDO sysUserDO = new SysUserDO();
sysUserDO.setId(id);
sysUserDO.setAvatar(avatar);
return userMapper.updateById(sysUserDO);
}
}

View File

@ -152,7 +152,7 @@ yudao:
width: 160
height: 60
file:
base-path: http://127.0.0.1:${server.port}/${yudao.web.api-prefix}/file/get/
base-path: http://127.0.0.1:${server.port}${yudao.web.api-prefix}/system/file/get/
codegen:
base-package: ${yudao.info.base-package}
db-schemas: ${spring.datasource.name}

View File

@ -152,7 +152,7 @@ yudao:
width: 160
height: 60
file:
base-path: http://127.0.0.1:${server.port}/${yudao.web.api-prefix}/file/get/
base-path: http://127.0.0.1:${server.port}${yudao.web.api-prefix}/system/file/get/
codegen:
base-package: ${yudao.info.base-package}
db-schemas: ${spring.datasource.name}