package com.cl.privilege.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.IResourceService;
import com.cl.privilege.model.Resource;
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;
/**
*菜单资源管理相关的控制器
*/
@Controller
@RequestMapping("/controller/resource")
public class ResourceController {
@Autowired
private IPrivilegeBaseApiService privilegeBaseApiService;
@Autowired
private ConfigUtil configUtil;
@Autowired
private IResourceService resourceService;
@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 "resource/list.ftl";
}
@ResponseBody
@RequestMapping("/getResourceTree")
public String getResourceTree(HttpServletRequest request,HttpServletResponse response,ModelMap map) {
//这是为了jstree插件使用,这个插件只对Content-Type为json和html的内容进行处理
response.setContentType("application/json;charset=UTF-8");
return resourceService.getResourceTree(0);
}
@ResponseBody
@RequestMapping("/getResourceTreeWithChecked")
public String getResourceTreeWithChecked(Integer roleId,HttpServletRequest request,HttpServletResponse response,ModelMap map) {
//这是为了jstree插件使用,这个插件只对Content-Type为json和html的内容进行处理
response.setContentType("application/json;charset=UTF-8");
return resourceService.getResourceTree(roleId);
}
@ResponseBody
@RequestMapping("/get")
public String get(Integer id,ModelMap map) {
Resource resource = resourceService.getResourceById(id);
return JsonUtil.convertObj2json(resource).toString();
}
@ResponseBody
@RequestMapping("/add")
public String add(@ModelAttribute("resource")Resource resource,HttpServletRequest request) {
//从session取出User对象
User user = SessionUtil.getSessionUser(request);
//生成节点
resourceService.createResource(resource, user);
return JsonUtil.convertObj2json(resource).toString();
}
@ResponseBody
@RequestMapping("/update")
public String update(@ModelAttribute("resource") Resource resource,HttpServletRequest request) {
//从session取出User对象
User user = SessionUtil.getSessionUser(request);
//生成节点积累
resourceService.updateResourceById(resource, user);
return JsonUtil.convertObj2json(resource).toString();
}
@ResponseBody
@RequestMapping("/delete")
public String delete(@RequestParam("id") Integer id) throws Exception{
//判断节点是否被用户关联
if(resourceService.isUsedByRole(id))
{
return ConstantUtil.Fail;
}
resourceService.deleteResourceById(id);
return ConstantUtil.Success;
}
}