派生自 projectDept/qhighschool

yn147
2023-05-25 c633da3dea47fcf096636c66e76bc470fccb7b69
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
package com.qxueyou.scc.user.service.impl;
 
import com.qxueyou.scc.base.model.Result;
import com.qxueyou.scc.base.service.impl.CommonAppService;
import com.qxueyou.scc.base.util.ClientUtils;
import com.qxueyou.scc.base.util.CollectionUtils;
import com.qxueyou.scc.base.util.TraceUtils;
import com.qxueyou.scc.sys.model.SysMenu;
import com.qxueyou.scc.user.dao.UserRoleDAO;
import com.qxueyou.scc.user.model.UserRole;
import com.qxueyou.scc.user.service.IUserRoleService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * 角色
 * 
 * @author ody.yuan
 *
 */
@Service
public class UserRoleService extends CommonAppService implements IUserRoleService {
    @Autowired
    UserRoleDAO dao;
 
    /**
     * 得到菜单
     * 
     * @return
     */
    public Result queryMenus(String roleId) {
        return this.queryCommonMenus(roleId);
 
    }
 
    /**
     * 得到菜单
     * 
     * @return
     */
    private Result queryCommonMenus(String roleId) {
 
        // 按角色过滤
 
        Result result = new Result(true);
 
        List<String> currMenus = new ArrayList<String>();
 
        if (StringUtils.isNotBlank(roleId)) {
            String hql0 = "select menuId from SysPrivilege s where s.deleteFlag is false and s.roleId = ? ";
            currMenus = this.find(hql0, CollectionUtils.newList(), String.class);
        }
 
        String hql = "select s from SysMenu s, SysPrivilege p where s.deleteFlag is false and p.deleteFlag is false "
                + " and s.menuId = p.menuId and p.roleId = ? ";
        List<SysMenu> menus = this.find(hql, CollectionUtils.newList(""), SysMenu.class);
 
        List<Map<String, Object>> lst = new ArrayList<Map<String, Object>>();
        Map<String, Object> map;
 
        for (SysMenu menu : menus) {
 
            map = new HashMap<String, Object>();
            map.put("id", menu.getMenuId());
            map.put("pId", menu.getParentMenuId());
            map.put("name", menu.getName());
 
            if (currMenus.contains(menu.getMenuId())) {
                map.put("check", menu.getName());
            }
 
            lst.add(map);
        }
 
        result.addData("lstMenus", lst);
        result.addData("currMenus", currMenus);
 
        return result;
    }
 
    /**
     * 取得当前角色是否编辑过 按钮权限,有记录就是编辑过
     * 
     * @return
     */
    public boolean getButtonPrivilegeFlag(String orgId, String topOrgId, String roleId) {
        return false;
 
    }
 
    @Override
    public UserRole queryRoleByCode(String roleCode) {
        return this.findUnique("from UserRole u where u.eName=?", CollectionUtils.newList(roleCode), UserRole.class);
 
    }
 
    @Override
    public List<UserRole> getUserRoleLst(String keyword) {
        String keyword_ = StringUtils.isBlank(keyword) ? "" : keyword;
        List<UserRole> userRoleLst = dao.getUserRoleLst(keyword_);
        return userRoleLst;
    }
 
    @Override
    public Result getUserLstByRoleId(String roleId, Integer pageSize, Integer pageNum, String keyword) {
        String keyword_ = StringUtils.isBlank(keyword) ? "" : keyword;
        List<Map<String, Object>> userLst = dao.getUserLstByRoleId(roleId, pageSize, pageNum, keyword_);
        int userCount = dao.getUserCount(roleId, keyword_);
        return new Result(true, "success", CollectionUtils.newObjectMap("userLst", userLst, "userCount", userCount));
 
    }
 
    @Override
    public Result delete(String userId) {
        boolean result = dao.delete(userId);
        String messge = "移除成功";
        if (!result) {
            messge = "移除失败";
        }
        return new Result(result, messge);
    }
 
    @Override
    public Result queryRoleDetail(String roleId) {
        List<Map<String, Object>> findMenuLstById = dao.findMenuLstById(roleId);
        UserRole userRole = read(UserRole.class, roleId);
 
        return new Result(true, "success",
                CollectionUtils.newObjectMap("roleName", userRole.getName(), "menuLst", findMenuLstById));
    }
 
    @Override
    public Result updateRole(String roleId, String menuIds, String name) {
 
        return dao.updateRole(roleId, menuIds, name);
 
    }
 
    @Override
    public Result deleteRole(String roleId) {
 
        return dao.deleteRole(roleId);
    }
 
    @Override
    public List<Map<String, Object>> findMenuLst() {
 
        return dao.findMenuLst();
    }
 
    @Override
    public Result addRole(String name,String roleType) {
        UserRole userRole = new UserRole();
        userRole.setName(name);
        userRole.setTopOrgId(ClientUtils.getOrgId());
        userRole.setType(roleType);
        TraceUtils.setCreateTrace(userRole);
        
        save(userRole);
        return new Result(true);
    }
 
    @Override
    public Result addTeachers(String teacherIds, String roleId) {
 
        return dao.addTeachers(teacherIds, roleId);
    }
 
}