From 0cee91d90ab3ef00f139e3e997e14d3c225dcfe1 Mon Sep 17 00:00:00 2001 From: lijiaqi Date: Thu, 23 Feb 2023 14:04:23 +0800 Subject: [PATCH] =?UTF-8?q?OA=E6=9D=BF=E5=9D=97=E6=95=B4=E5=90=88=E4=B8=8E?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../userdept/impl/UserDeptServiceImpl.java | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ydool/oa/formily/userdept/impl/UserDeptServiceImpl.java b/src/main/java/com/ydool/oa/formily/userdept/impl/UserDeptServiceImpl.java index 35253d1..d64ddfd 100644 --- a/src/main/java/com/ydool/oa/formily/userdept/impl/UserDeptServiceImpl.java +++ b/src/main/java/com/ydool/oa/formily/userdept/impl/UserDeptServiceImpl.java @@ -1,20 +1,25 @@ package com.ydool.oa.formily.userdept.impl; +import cn.dev33.satoken.stp.SaTokenInfo; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydool.common.cache.ConfigCache; +import com.ydool.common.utils.PasswordUtil; import com.ydool.oa.formily.userdept.IUserDeptService; import com.ydool.oa.formily.userdept.UserDept; import com.ydool.system.entity.Dept; import com.ydool.system.entity.Job; +import com.ydool.system.entity.Menu; import com.ydool.system.entity.User; import com.ydool.system.service.impl.DeptServiceImpl; import com.ydool.system.service.impl.JobServiceImpl; import com.ydool.system.service.impl.UserServiceImpl; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -24,6 +29,10 @@ import java.util.stream.Collectors; @Service public class UserDeptServiceImpl implements IUserDeptService { + + @Value("${sa-token.token-prefix}") + private String tokenPrefix; + @Autowired private UserServiceImpl userService; @@ -166,7 +175,42 @@ public class UserDeptServiceImpl implements IUserDeptService { @Override public Object getUserMenuList() { - return userService.menuTreesByUserId(StpUtil.getLoginIdAsString()); + User loginUser = userService.getOne(new QueryWrapper().lambda() + .eq(User::getId, StpUtil.getLoginIdAsString()) + .eq(User::getStatus, true) + .last("limit 1") + ); + SaTokenInfo tokenInfo = StpUtil.getTokenInfo(); + Dict result = Dict.create(); + result.set("tokenName", tokenInfo.getTokenName()); + result.set("tokenPrefix", tokenPrefix); + result.set("tokenValue", tokenInfo.getTokenValue()); + result.set("name", loginUser.getUserName()); + List menus = userService.menuTreesByUserId(StpUtil.getLoginIdAsString()); + result.set("menus", menus); + + List perms = new ArrayList(); + List menuList = userService.menusByUser(StpUtil.getLoginIdAsString()); + if (CollUtil.isNotEmpty(menuList)) { + perms = menuList.stream().map(Menu::getPerms).collect(Collectors.toList()); + } + result.set("perms", perms); + + String deptName = ""; + Dept dept = deptService.getById(loginUser.getDept()); + if (ObjectUtil.isNotNull(dept)) { + deptName = dept.getName(); + } + result.set("deptName", deptName); + + String initPassword = ConfigCache.getStr(ConfigCache.USER_INIT_PASSWORD, + "888888"); + initPassword = PasswordUtil.password(loginUser.getSalt(), initPassword); + + //是否需要强制修改密码 + result.set("need_init_password", initPassword.equals(loginUser.getPassword()) ? true : false); + + return result; }