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 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> 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> 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> 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); } }