huliguo
9 天以前 2485a4875adda2ffd0e8cfccdf749f15fe8d48cb
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
@@ -1,6 +1,19 @@
package com.ruoyi.web.controller.system;
import java.awt.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.system.mapper.SysMenuMapper;
import com.ruoyi.system.pojo.dto.UpdatePwdDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -25,12 +38,16 @@
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.service.ISysUserService;
import javax.validation.Valid;
/**
 * 个人信息 业务处理
 * 
 * @author ruoyi
 */
@RestController
@Slf4j
@Api( tags = "后台-个人信息")
@RequestMapping("/system/user/profile")
public class SysProfileController extends BaseController
{
@@ -39,11 +56,14 @@
    @Autowired
    private TokenService tokenService;
    @Autowired
    private SysMenuMapper sysMenuMapper;
    /**
     * 个人信息
     */
    @GetMapping
    @ApiOperation(value = "个人信息")
    public AjaxResult profile()
    {
        LoginUser loginUser = getLoginUser();
@@ -51,13 +71,38 @@
        AjaxResult ajax = AjaxResult.success(user);
        ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
        ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
        ajax.put("permissions" ,getUserPaths(user.getUserId()));
        return ajax;
    }
    /**
     * 获取用户拥有的所有path
     * @param userId 用户ID
     * @return 用户拥有的所有path列表
     */
    public List<String> getUserPaths(Long userId) {
        List<Long> ids = new ArrayList<>();
        // 根据用户id查询出menus
        List<SysMenu> menus = sysMenuMapper.selectMenusByUserId(userId);
        //将id和父类id取出
        menus.forEach(menu -> {
            ids.add(menu.getMenuId());
           if (null!= menu.getParentId() && menu.getParentId() != 0) {
               ids.add(menu.getParentId());
           }
        });
        if (menus.isEmpty()) {
            return Collections.emptyList();
        }
        return sysMenuMapper.getPathsByMenuIds(ids);
    }
    /**
     * 修改用户
     */
    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
  /*  @Log(title = "个人信息", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult updateProfile(@RequestBody SysUser user)
    {
@@ -82,17 +127,18 @@
            return success();
        }
        return error("修改个人信息异常,请联系管理员");
    }
    }*/
    /**
     * 重置密码
     */
    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
    @PutMapping("/updatePwd")
    public AjaxResult updatePwd(@RequestBody Map<String, String> params)
    @ApiOperation(value = "修改密码")
    public AjaxResult updatePwd(@RequestBody @Valid UpdatePwdDTO updatePwdDTO)
    {
        String oldPassword = params.get("oldPassword");
        String newPassword = params.get("newPassword");
        String oldPassword = updatePwdDTO.getOldPassword();
        String newPassword = updatePwdDTO.getNewPassword();
        LoginUser loginUser = getLoginUser();
        String userName = loginUser.getUsername();
        String password = loginUser.getPassword();
@@ -119,7 +165,7 @@
    /**
     * 头像上传
     */
    @Log(title = "用户头像", businessType = BusinessType.UPDATE)
    /*@Log(title = "用户头像", businessType = BusinessType.UPDATE)
    @PostMapping("/avatar")
    public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception
    {
@@ -138,5 +184,5 @@
            }
        }
        return error("上传图片异常,请联系管理员");
    }
    }*/
}