goupan
2024-04-03 5506e9a45e717ffcb67ec313b5a4e8206d9b3a39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package cn.stylefeng.roses.kernel.system.integration.modular.system.index.service;
 
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo;
import cn.stylefeng.roses.kernel.message.api.MessageApi;
import cn.stylefeng.roses.kernel.message.api.enums.MessageReadFlagEnum;
import cn.stylefeng.roses.kernel.message.api.pojo.request.MessageRequest;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.layui.LayuiAppIndexMenusVO;
import cn.stylefeng.roses.kernel.system.modular.menu.service.SysMenuService;
import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrOrganization;
import cn.stylefeng.roses.kernel.system.modular.organization.service.HrOrganizationService;
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * 首页相关数据组装服务
 *
 * @author fengshuonan
 * @date 2020/12/27 18:25
 */
@Service
public class IndexService {
 
    @Resource
    private SysMenuService sysMenuService;
 
    @Resource
    private SysUserService sysUserService;
 
    @Resource
    private HrOrganizationService hrOrganizationService;
 
    @Resource
    private MessageApi messageApi;
 
    /**
     * 获取首页需要渲染的参数
     *
     * @author fengshuonan
     * @date 2021/1/1 18:27
     */
    public Map<String, Object> createIndexRenderAttributes() {
 
        HashMap<String, Object> renderMap = new HashMap<>();
 
        LoginUser loginUser = LoginContext.me().getLoginUser();
        SimpleUserInfo simpleUserInfo = loginUser.getSimpleUserInfo();
 
        // 渲染首页的菜单
        List<LayuiAppIndexMenusVO> layuiAppIndexMenus = sysMenuService.getLayuiIndexMenus();
        renderMap.put("layuiAppIndexMenus", layuiAppIndexMenus);
 
        // 获取首页的头像
//        renderMap.put("avatar", sysUserService.getUserAvatarUrl(simpleUserInfo.getAvatar()));
        renderMap.put("avatar", simpleUserInfo.getAvatar());
 
        // 获取人员姓名
        renderMap.put("name", simpleUserInfo.getRealName());
 
        // 获取登录用户ws-url
        renderMap.put("wsUrl", loginUser.getWsUrl());
 
        // 获取登录用户ID
        renderMap.put("userId", loginUser.getUserId());
 
        // 未读消息数量
        MessageRequest messageRequest = new MessageRequest();
        messageRequest.setReadFlag(MessageReadFlagEnum.UNREAD.getCode());
        renderMap.put("msgUnReadCount", messageApi.queryCountCurrentUser(messageRequest));
 
        return renderMap;
    }
 
    /**
     * 创建个人中心页面需要渲染的值
     *
     * @author fengshuonan
     * @date 2021/1/1 18:38
     */
    public Map<String, Object> createPersonInfoRenderAttributes() {
 
        HashMap<String, Object> renderMap = new HashMap<>();
        renderMap.put("roleName", "角色空");
        renderMap.put("orgName", "组织架构空");
 
        // 添加用户基本信息字段
        LoginUser loginUser = LoginContext.me().getLoginUser();
        SimpleUserInfo simpleUserInfo = loginUser.getSimpleUserInfo();
        renderMap.putAll(BeanUtil.beanToMap(simpleUserInfo));
 
        // 角色名称
        List<SimpleRoleInfo> simpleRoleInfoList = loginUser.getSimpleRoleInfoList();
        if (ObjectUtil.isNotEmpty(simpleRoleInfoList)) {
            String roleName = simpleRoleInfoList.get(0).getRoleName();
            renderMap.put("roleName", roleName);
        }
 
        // 组织机构名称
        Long organizationId = loginUser.getOrganizationId();
        HrOrganization hrOrganization = hrOrganizationService.getById(organizationId);
        if (hrOrganization != null) {
            renderMap.put("orgName", hrOrganization.getOrgName());
        }
 
        // 渲染头像的url
//        renderMap.put("avatar", sysUserService.getUserAvatarUrl(simpleUserInfo.getAvatar()));
        renderMap.put("avatar", simpleUserInfo.getAvatar());
 
        return renderMap;
    }
 
}