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 currMenus = new ArrayList(); 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 menus = this.find(hql, CollectionUtils.newList(""), SysMenu.class); List> lst = new ArrayList>(); Map map; for (SysMenu menu : menus) { map = new HashMap(); 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 getUserRoleLst(String keyword) { String keyword_ = StringUtils.isBlank(keyword) ? "" : keyword; List 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> 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> 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> 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); } }