package org.ccpit.base.role; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray; import org.ccpit.base.controller.BaseController; import org.ccpit.base.controller.Page; import org.ccpit.base.controller.PageRequest; import org.ccpit.base.orgManage.OrgInfo; import org.ccpit.base.orgManage.OrgService; import org.ccpit.base.user.User; import org.ccpit.base.user.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; /** * Created by Administrator on 2015/9/6. */ @Controller @RequestMapping("/admin/role") public class RoleController extends BaseController { @Autowired private RoleService roleService; @Autowired private UserService userService; @Autowired private OrgService orgService; @RequestMapping("/goinRoleListPage") public Object manage(){ return new ModelAndView("admin/role/roleListPage"); } @RequestMapping("/addRole") public void addRole(String roleName,String urlPerfixs,String description,HttpServletResponse response){ String result = ""; boolean flag = roleService.addRole(roleName,urlPerfixs,description); if(flag){ result = "{ \"flag\": "+ flag +", \"info\": \"数据保存成功!\" }"; }else { result = "{ \"flag\": "+ flag +", \"info\": \"数据保存失败!\" }"; } try { response.setContentType("text/html"); response.getWriter().write(result); } catch (IOException e) { e.printStackTrace(); } } /** * * addRolePri:(添加角色操作权限). <br/> * TODO(这里描述这个方法适用条件 – 可选).<br/> * TODO(这里描述这个方法的执行流程 – 可选).<br/> * TODO(这里描述这个方法的使用方法 – 可选).<br/> * TODO(这里描述这个方法的注意事项 – 可选).<br/> * * @author dingwei * @return * @since JDK 1.6 */ @RequestMapping("/addRolePri") public void addRolePri(HttpServletRequest request,HttpServletResponse response){ String result = ""; String roleId = request.getParameter("roleId"); String priIds = request.getParameter("priIds"); String urlPrefixs = priIds.replace("[", "").replace("]", ""); boolean flag = roleService.editRole(Long.valueOf(roleId), "", urlPrefixs, ""); if(flag){ result = "{ \"flag\": "+ flag +", \"info\": \"数据保存成功!\" }"; }else { result = "{ \"flag\": "+ flag +", \"info\": \"数据保存失败!\" }"; } try { response.setContentType("text/html"); response.getWriter().write(result); } catch (IOException e) { e.printStackTrace(); } } @RequestMapping("/editRole/{id}") public void editRole(@PathVariable long id,String roleName,String urlPerfixs,String description,HttpServletResponse response){ String result = ""; boolean flag = roleService.editRole(id, roleName, urlPerfixs,description); if(flag){ result = "{ \"flag\": "+ flag +", \"info\": \"数据保存成功!\" }"; }else { result = "{ \"flag\": "+ flag +", \"info\": \"数据保存失败!\" }"; } try { response.setContentType("text/html"); response.getWriter().write(result); } catch (IOException e) { e.printStackTrace(); } } @RequestMapping("/userRoles/{id}") @ResponseBody public Object userRoles(@PathVariable long id){ User user = userService.getUser(id); if (user!=null){ return userService.getUserRoles(user); } return "false"; } /** * * getOrgRoles:(获取部门所拥有的所有角色). <br/> * @author dingwei * @param id * @return * @since JDK 1.6 */ @RequestMapping("/getOrgRoles/{id}") @ResponseBody public Object getOrgRoles(@PathVariable long id){ OrgInfo orgInfo = orgService.getOrgById(id); if(null != orgInfo && orgInfo.getRoles().size()>0){ return orgInfo.getRoles(); } return "false"; } @RequestMapping("/delRoles") @ResponseBody public Object delRoles(HttpServletRequest request){ Map<String, Object> map = new HashMap<String, Object>(); String jsonIds = request.getParameter("ids"); JSONArray jsonArray = JSONArray.fromObject(jsonIds); Object[] ids = jsonArray.toArray(); for(Object str : ids){ Role role = roleService.get((Integer) str); role.setWhetherDelete(true); roleService.updateRole(role); } map.put("flag", true); map.put("info", "数据删除成功!"); return map; } @RequestMapping("/saveUserRoles/{id}") @ResponseBody public Object saveUserRoles(@PathVariable long id,HttpServletRequest request,String[] ids){ User user = userService.getUser(id); //todo save Map<String, Object> map = new HashMap<String, Object>(); JSONArray jsonArray = JSONArray.fromObject(ids); Object[] arr = jsonArray.toArray(); Long[] longs = new Long[arr.length]; for (int i=0;i<arr.length;i++){ longs[i] = Long.parseLong(arr[i].toString()); } boolean flag = userService.saveUserRoles(user,longs); if (flag){ map.put("flag", true); map.put("info", "数据删除成功!"); }else{ map.put("flag", false); map.put("info", "保存失败!"); } return map; } @RequestMapping("/getAllRoles") @ResponseBody public Object getAllRoles(HttpServletRequest request){ PageRequest pageRequest = getPage(request); String roleName = request.getParameter("roleName"); StringBuffer hql = new StringBuffer("from Role where 1=1"); if(null == roleName){ }else { if(null != roleName){ hql.append(" and roleName like '%" + roleName +"%'"); } } Page<Role> pageRole = roleService.getAll(pageRequest, hql.toString()); return roleService.convert(pageRole); } @RequestMapping("/getRoleByID") @ResponseBody public Role getRoleByID(HttpServletRequest request){ String roleId = request.getParameter("roleId"); Role role = null; if(null != roleId){ role = roleService.get(Long.valueOf(roleId)); } return role; } @RequestMapping("/getRolesList") @ResponseBody public Object getRolesList(HttpServletRequest request){ List<Role> listBo = roleService.getAllRoles(); List list = new ArrayList(); if(null != listBo){ for(int i=0;i<listBo.size();i++){ Map result = new HashMap(); result.put("id", listBo.get(i).getId()); result.put("text", listBo.get(i).getRoleName()); list.add(result); } } return list; } }