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