package com.cl.privilege.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.cl.privilege.api.IPrivilegeBaseApiService;
import com.cl.privilege.biz.IRoleService;
import com.cl.privilege.model.Role;
import com.cl.privilege.model.RoleSearchModel;
import com.cl.privilege.model.User;
import com.cl.privilege.utils.ConfigUtil;
import com.cl.privilege.utils.ConstantUtil;
import com.cl.privilege.utils.JsonUtil;
import com.cl.privilege.utils.SessionUtil;
import com.cl.privilege.utils.StringUtil;
/**
*角色管理相关的控制器
*/
@Controller
@RequestMapping("/controller/role")
public class RoleController {
@Autowired
private IPrivilegeBaseApiService privilegeBaseApiService;
@Autowired
private ConfigUtil configUtil;
@Autowired
private IRoleService roleService;
@RequestMapping("/list")
public String main(String visitedModule,String visitedResource,HttpServletRequest request,ModelMap map) {
//初始化用户、菜单
User user = SessionUtil.getSessionUser(request);
String menus = privilegeBaseApiService.getModuleTree(user.getId(),visitedModule,visitedResource);
map.put("user", user);
map.put("menus", menus);
return "role/list.ftl";
}
@ResponseBody
@RequestMapping("/getRoleDataTables")
public String getRoleDataTables(RoleSearchModel searchModel,ModelMap map) {
return roleService.getRoleDataTables(searchModel);
}
@ResponseBody
@RequestMapping("/getRoleDataRow")
public String getRoleDataRow(@RequestParam("id") Integer id) throws Exception{
return roleService.getRoleDataRow(id);
}
@ResponseBody
@RequestMapping("/get")
public String get(@RequestParam("id") Integer id) throws Exception{
Role role = roleService.getRoleById(id);
return JsonUtil.convertObj2json(role).toString();
}
@RequestMapping("/addform")
public String addform() {
return "role/addform.ftl";
}
@ResponseBody
@RequestMapping("/add")
public String add(@ModelAttribute("role")Role role,HttpServletRequest request) {
//从session取出User对象
User user = SessionUtil.getSessionUser(request);
//生成节点角色
if(role.getRemark() == null)
{
role.setRemark("");
}
roleService.createRole(role,user);
return ConstantUtil.Success;
}
@RequestMapping("/updateform")
public String updateform(Integer id,HttpServletRequest request,ModelMap map) {
Role role = roleService.getRoleById(id);
map.put("role", role);
return "role/updateform.ftl";
}
@ResponseBody
@RequestMapping("/update")
public String update(@ModelAttribute("role") Role role,HttpServletRequest request) {
//从session取出User对象
User user = SessionUtil.getSessionUser(request);
//生成节点角色
roleService.updateRoleById(role,user);
return ConstantUtil.Success;
}
@ResponseBody
@RequestMapping("/delete")
public String delete(@RequestParam("id") Integer id) {
//判断节点是否被用户关联
if(roleService.isUsedByUser(id))
{
return ConstantUtil.Fail;
}
roleService.deleteRoleById(id);
return ConstantUtil.Success;
}
@RequestMapping("/assignform")
public String assignform(String id,ModelMap map)
{
map.put("id", id);
return "role/assignform.ftl";
}
@ResponseBody
@RequestMapping("/assign")
public String assign(Integer id,String checkedStr)
{
if(id == null || StringUtil.isStrEmpty(id.toString()) || StringUtil.isStrEmpty(checkedStr))
{
return ConstantUtil.Fail;
}
roleService.assignModuleAndResource(id, checkedStr);
return ConstantUtil.Success;
}
}