package com.flf.controller;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.flf.entity.Menu;
import com.flf.entity.Role;
import com.flf.service.MenuService;
import com.flf.service.RoleService;
import com.flf.util.RightsHelper;
import com.flf.util.Tools;
@Controller
@RequestMapping(value="/role")
public class RoleController {
@Autowired
private RoleService roleService;
@Autowired
private MenuService menuService;
/**
* 显示角色列表
* @param map
* @return
*/
@RequestMapping
public String list(Map<String,Object> map){
List<Role> roleList = roleService.listAllRoles();
map.put("roleList", roleList);
return "roles";
}
/**
* 保存角色信息
* @param out
* @param role
*/
@RequestMapping(value="/save")
public void save(PrintWriter out,Role role){
boolean flag = true;
if(role.getRoleId()!=null && role.getRoleId().intValue()>0){
flag = roleService.updateRoleBaseInfo(role);
}else{
flag = roleService.insertRole(role);
}
if(flag){
out.write("success");
}else{
out.write("failed");
}
out.flush();
out.close();
}
/**
* 请求角色授权页面
* @param roleId
* @param model
* @return
*/
@RequestMapping(value="/auth")
public String auth(@RequestParam int roleId,Model model){
List<Menu> menuList = menuService.listAllMenu();
Role role = roleService.getRoleById(roleId);
String roleRights = role.getRights();
if(Tools.notEmpty(roleRights)){
for(Menu menu : menuList){
menu.setHasMenu(RightsHelper.testRights(roleRights, menu.getMenuId()));
if(menu.isHasMenu()){
List<Menu> subMenuList = menu.getSubMenu();
for(Menu sub : subMenuList){
sub.setHasMenu(RightsHelper.testRights(roleRights, sub.getMenuId()));
}
}
}
}
JSONArray arr = JSONArray.fromObject(menuList);
String json = arr.toString();
json = json.replaceAll("menuId", "id").replaceAll("menuName", "name").replaceAll("subMenu", "nodes").replaceAll("hasMenu", "checked");
model.addAttribute("zTreeNodes", json);
model.addAttribute("roleId", roleId);
return "authorization";
}
/**
* 保存角色权限
* @param roleId
* @param menuIds
* @param out
*/
@RequestMapping(value="/auth/save")
public void saveAuth(@RequestParam int roleId,@RequestParam String menuIds,PrintWriter out){
BigInteger rights = RightsHelper.sumRights(Tools.str2StrArray(menuIds));
Role role = roleService.getRoleById(roleId);
role.setRights(rights.toString());
roleService.updateRoleRights(role);
out.write("success");
out.close();
}
}
最近下载更多
PISCESPLUS LV5
2024年9月3日
微信网友_6906962132258816 LV7
2024年4月21日
2036495585 LV9
2023年9月25日
what_the_fo LV5
2023年4月7日
微信网友_6248713511227392 LV11
2022年12月5日
2273117187 LV5
2022年6月15日
Start1 LV15
2022年3月8日
ssh123 LV10
2021年7月5日
gamal233 LV5
2021年6月23日
wangwenzhong LV9
2021年5月7日
最近浏览更多
ttg2025 LV3
7月14日
AprilZk LV3
2024年12月11日
PISCESPLUS LV5
2024年9月3日
微信网友_6906962132258816 LV7
2024年4月21日
WBelong LV8
2023年12月26日
2036495585 LV9
2023年9月25日
多加两块钱 LV4
2023年6月14日
1379585889 LV11
2023年6月7日
what_the_fo LV5
2023年4月7日
zhexiu
2023年1月15日
暂无贡献等级

