CZT
2023-11-27 c206acfaedc69c390fb67daa81bc686f58a212ef
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
package com.ld.igds.sys;
 
import com.bstek.bdf2.core.model.DefaultDept;
import com.bstek.bdf2.core.model.DefaultUser;
import com.bstek.bdf2.core.model.Role;
import com.bstek.bdf2.core.security.SecurityUtils;
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.annotation.DataResolver;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.data.provider.Page;
import com.ld.igds.sys.service.SysDeptService;
import com.ld.igds.sys.service.SysRoleService;
import com.ld.igds.sys.service.SysUserService;
import com.ld.igds.util.ContextUtil;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
import java.util.Collection;
import java.util.Map;
 
/**
 * 用户相关管理
 *
 * @author: andy.jia
 * @description:
 * @version:
 * @data:2020年7月16日
 */
@Component("core.userPR")
public class UserPR {
 
    @Autowired
    private SysUserService sysUserService;
    @Autowired
    private SysDeptService deptService;
    @Autowired
    private SysRoleService roleService;
 
    /**
     * core.userPR#pageUser
     *
     * @param page
     * @param param
     * @throws Exception
     */
    @DataProvider
    public void pageUser(Page<DefaultUser> page, Map<String, Object> param)
            throws Exception {
 
        sysUserService.pageUser(page, param);
 
        Collection<DefaultUser> users = page.getEntities();
        if (null == users || users.isEmpty())
            return;
 
        DefaultDept defaultDept;
        Role role;
        for (DefaultUser user : users) {
            defaultDept = deptService.loadUserDept(user.getUsername());
            if (null != defaultDept) {
                user.setDeptName(defaultDept.getName());
                user.setDeptId(defaultDept.getId());
            }
            role = roleService.getRoleByUsername(user.getUsername());
            if (null != role) {
                user.setRoleName(role.getName());
                user.setRoleId(role.getId());
            }
        }
        page.setEntities(users);
    }
 
    /**
     * userPR#curUser 个人中心获取当前登陆人信息
     *
     * @return
     */
    @DataProvider
    public DefaultUser curUser() {
        String username = ContextUtil.getLoginUserName();
        return sysUserService.loadUser(username);
    }
 
    /**
     * core.userPR#updateUser
     *
     * @param user
     * @return
     */
    @DataResolver
    public String updateUser(DefaultUser user) {
        String msg;
        //表示新增
        if (null == user.getCompanyId()) {
            // 新增用户
            user.setCompanyId(ContextUtil.getCompanyId());
            msg = sysUserService.addUser(user);
        } else {
            msg = sysUserService.updateUser(user);
        }
 
        if (null != msg) return msg;
 
        // 更新用户的权限信息
        if (null != user.getRoleId()) {
            roleService.updateUserRole(user.getUsername(), user.getRoleId());
        }
 
        if (null != user.getDeptId()) {
            deptService.updateUserDept(user.getUsername(), user.getDeptId());
        }
 
        return msg;
    }
 
    /**
     * userPR#resetPwd
     *
     * @param user
     * @return
     */
    @Expose
    public String resetPwd(DefaultUser user) {
        return sysUserService.resetPwd(user.getCompanyId(), user.getUsername(),
                null);
    }
 
    /**
     * 修改用户密码,返回正常和异常的提示信息
     *
     * @param param
     * @return
     */
    @Expose
    public String updatePwd(Map<String, Object> param) {
        return sysUserService.updatePwd(param);
    }
 
    /**
     * 获取用户基本信息
     *
     * @param username
     * @return
     */
    public DefaultUser loadUser(String username) {
        DefaultUser user = sysUserService.loadUser(username);
        if (null != user) {
            DefaultDept defaultDept = deptService.loadUserDept(user
                    .getUsername());
            if (null != defaultDept) {
                user.setDeptName(defaultDept.getName());
                user.setDeptId(defaultDept.getId());
            }
            Role role = roleService.getRoleByUsername(user.getUsername());
            if (null != role) {
                user.setRoleName(role.getName());
                user.setRoleId(role.getId());
            }
        }
        return user;
    }
 
 
    /**
     * core.userPR#refreshAllSecurityMetadata
     * 刷新用户权限分配
     * 2022年8月18日 17:15:36 自定义调整,将用户权限放在缓存直接过滤,
     */
    @Expose
    public void refreshAllSecurityMetadata() {
        SecurityUtils.refreshUrlSecurityMetadata();
        SecurityUtils.refreshComponentSecurityMetadata();
 
        roleService.updateCacheRoleUrl(ContextUtil.getCompanyId());
 
        roleService.updateCacheRoleUser(ContextUtil.getCompanyId());
    }
 
}