package com.allinpay.its.boss.system.menu.action;
import java.util.ArrayList;
import java.util.List;
import com.allinpay.its.boss.framework.utils.Page;
import com.allinpay.its.boss.system.BaseAction;
import com.allinpay.its.boss.system.menu.model.FrameworkSysMenu;
import com.allinpay.its.boss.system.menu.service.FrameworkSysMenuServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.Conventions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.google.gson.Gson;
/**
* 页面访问Action的url规则以下面这个方法为例:
* http://localhost/项目名称/menu/XXX方法名
* @return
*/
@Controller
@RequestMapping(value="/menu")
public class MenuAction extends BaseAction{
@Autowired
private FrameworkSysMenuServiceImpl menuService;
@RequestMapping("")
public String listMenu(@ModelAttribute("frameworkSysMenu") FrameworkSysMenu menu, Model model){
Page page = menuService.getFrameworkSysMenuList(menu);
model.addAttribute(page);
return "menu/menuList";
}
@RequestMapping("/level/{levelId}")
public String getMenuByLevelId(@ModelAttribute("frameworkSysMenu") FrameworkSysMenu menu, Model model,
@PathVariable("levelId") int levelId){
Page page = menuService.getFrameworkSysMenuListByLevelId(menu, levelId);
model.addAttribute(page);
model.addAttribute("levelId", levelId);
return "menu/menuList";
}
@RequestMapping("/level/lookup/{levelId}")
public String getMenuLookupByLevelId(@ModelAttribute("frameworkSysMenu") FrameworkSysMenu menu, Model model,
@PathVariable("levelId") int levelId){
Page page = menuService.getFrameworkSysMenuListByLevelId(menu, levelId);
model.addAttribute(page);
model.addAttribute("levelId", levelId);
return "menu/menuLookup";
}
@RequestMapping("/add/{levelId}")
public String add(Model model, @PathVariable("levelId") int levelId){
model.addAttribute("levelId", levelId);
return "menu/menuAdd";
}
/**
* 为什么一开始界面传了参数model.addAttribute(menu);显示不出来?因为根据默认的规则,放的是对象的名字。所以
* 一开始的时候界面用menu.XXX显示不出来。还是要在设置的时候放名字
* @param menuId
* @param model
* @return
*/
@RequestMapping("/edit/{menuId}/{levelId}")
public String edit(@PathVariable("menuId") int menuId, Model model, @PathVariable("levelId") int levelId) {
FrameworkSysMenu menu = menuService.getMenu(menuId);
model.addAttribute("menu",menu);
model.addAttribute("levelId", levelId);
return "menu/menuEdit";
}
@RequestMapping("/get/{menuId}")
@ResponseBody
public String get(@PathVariable("menuId") int menuId) {
FrameworkSysMenu menu = menuService.getMenu(menuId);
Gson gson = new Gson();
return gson.toJson(menu);
}
@RequestMapping(value = "/insert/{levelId}", method = RequestMethod.POST)
public ModelAndView insert(FrameworkSysMenu menu, @PathVariable("levelId") int levelId) {
menuService.insertMenu(menu, levelId);
return ajaxDoneSuccess("成功");
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
public ModelAndView update(FrameworkSysMenu menu) {
menuService.update(menu);
return ajaxDoneSuccess("成功");
}
@RequestMapping("/delete/{menuId}")
public ModelAndView delete(@PathVariable("menuId") int menuId) {
menuService.delete(menuId);
return ajaxDoneSuccess("成功");
}
@RequestMapping("/deleteAll")
public ModelAndView deleteAll(@RequestParam("orderIndexs") String orderIndexs) {
if (orderIndexs != null && orderIndexs.length()> 0 ){
String[] ids= orderIndexs.split(",");
for( int i=0; i<ids.length; i++){
if (ids[i].length()>0){
menuService.delete(Integer.parseInt(ids[i]));
}
}
}
return ajaxDoneSuccess("成功");
}
}