派生自 projectDept/qhighschool

yn147
2023-05-10 96286178ee1c257c130cb2ad964a781f36c4eee5
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
package com.qxueyou.scc.user.dao;
 
import java.util.List;
import java.util.Map;
 
import org.springframework.stereotype.Repository;
 
import com.qxueyou.scc.base.dao.BaseDAO;
import com.qxueyou.scc.base.model.Pager;
import com.qxueyou.scc.base.model.Result;
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.SysPrivilege;
import com.qxueyou.scc.user.model.UserReRoleUser;
import com.qxueyou.scc.user.model.UserRole;
 
@Repository
public class UserRoleDAO extends BaseDAO {
 
    /**
     * 获取角色列表
     */
    public List<UserRole> getUserRoleLst(String keyword) {
        return find("from UserRole where deleteFlag is false and name like ? and topOrgId=?",
                CollectionUtils.newList("%" + keyword + "%",ClientUtils.getOrgId()), UserRole.class);
    }
 
    /**
     * 获取人员列表
     */
    public List<Map<String, Object>> getUserLstByRoleId(String roleId, Integer pageSize, Integer pageNum,
            String keyword) {
        return findListWithMapByHql(
                "select u.name as name ,u.userId  as userId ,u.account  as account,u.mobilePhone as mobilePhone ,u.password as password from User u , UserReRoleUser r where u .deleteFlag is false "
                        + "and r.deleteFlag is false and u.userId = r.userId and r.roleId =:roleId and u.name like :keyword and u.organizationId=:orgId",
                CollectionUtils.newObjectMap("roleId", roleId, "keyword", "%" + keyword + "%","orgId",ClientUtils.getOrgId()),
                new Pager(pageSize, pageNum));
 
    }
 
    /**
     * 获取人员列表总条数
     */
    public int getUserCount(String roleId, String keyword) {
        return findCountByComplexHql("select count(1) from User u , UserReRoleUser r where u .deleteFlag is false "
                + "and r.deleteFlag is false and u.userId = r.userId and r.roleId =:roleId and u.name like :keyword and u.organizationId=:orgId ",
                CollectionUtils.newObjectMap("roleId", roleId, "keyword", "%" + keyword + "%","orgId",ClientUtils.getOrgId()));
    }
 
    /**
     * 删除人员
     */
    public boolean delete(String userId) {
        String[] userIds = userId.split(",");
        String deleteUserByhql = " update User set deleteFlag = true where deleteFlag is false and userId = ?";
        String deleteUserReByHql = "update UserReRoleUser  set deleteFlag =true where deleteFlag is false and userId = ?";
 
        Result deleteUserResult = bulkUpdateInLoop(deleteUserByhql, userIds);
        Result deleteUserReResult = bulkUpdateInLoop(deleteUserReByHql, userIds);
 
        if (deleteUserResult.isSuccess() && deleteUserReResult.isSuccess()) {
            return true;
        }
        return false;
 
    }
 
    /**
     * 获取角色信息
     */
    public List<Map<String, Object>> findMenuLstById(String roleId) {
        String hql = "select m.name as name ,m.menuId as menuId ,'1' as type from UserRole u ,SysPrivilege p ,SysMenu m where u.roleId = p.roleId and "
                + "p.menuId = m.menuId  and u.roleId =:roleId and u.deleteFlag is false and p.deleteFlag is false ";
 
        return findListWithMapByHql(hql, CollectionUtils.newObjectMap("roleId", roleId));
    }
 
    /**
     * 修改角色信息
     * 
     * @param roleId
     * @param menuId
     */
    public Result updateRole(String roleId, String menuIds, String name) {
        UserRole userRole = read(UserRole.class, roleId);
        userRole.setName(name);
        TraceUtils.setCreateTrace(userRole);
        save(userRole);
 
        bulkUpdate("update SysPrivilege set deleteFlag = true where roleId = ?", new Object[] { roleId });
 
        String[] menuIdArr = menuIds.split(",");
 
        SysPrivilege sysPrivilege = null;
        for (String menuId : menuIdArr) {
            sysPrivilege = new SysPrivilege();
            sysPrivilege.setMenuId(menuId);
            sysPrivilege.setRoleId(roleId);
            TraceUtils.setCreateTrace(sysPrivilege);
            save(sysPrivilege);
        }
 
        return new Result(true, "success");
 
    }
 
    /**
     * 删除角色
     * 
     * @param roleId
     * @return
     */
    public Result deleteRole(String roleId) {
 
        UserRole userRole = read(UserRole.class, roleId);
        userRole.setDeleteFlag(true);
        TraceUtils.setCreateTrace(userRole);
        save(userRole);
 
        bulkUpdate("update SysPrivilege set deleteFlag = true where deleteFlag is  false and roleId = ?",
                new Object[] { roleId });
 
        return new Result(true, "success");
    }
 
    /**
     * 获取所有菜单的列表
     * 
     * @return
     */
    public List<Map<String, Object>> findMenuLst() {
 
        return findListWithMapByHql(
                "select menuId as menuId, name as name,  '1'  as type from SysMenu where deleteFlag is false ",
                CollectionUtils.newObjectMap());
    }
 
    /**
     * 添加教师
     * 
     * @param teacherIds
     * @param roleId
     * @return
     */
    public Result addTeachers(String teacherIds, String roleId) {
        UserReRoleUser userReRoleUser = null;
 
        String[] teacherIdArr = teacherIds.split(",");
 
        for (int i = 0; i < teacherIdArr.length; i++) {
            userReRoleUser = new UserReRoleUser();
            userReRoleUser.setRoleId(roleId);
            userReRoleUser.setUserId(teacherIdArr[i]);
            save(userReRoleUser);
        }
 
        return new Result(true);
    }
}