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