package com.ibeetl.admin.console.web;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.LogFactory;
|
import org.beetl.sql.core.engine.PageQuery;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import com.ibeetl.admin.console.service.MenuConsoleService;
|
import com.ibeetl.admin.console.web.query.FunctionQuery;
|
import com.ibeetl.admin.console.web.query.MenuQuery;
|
import com.ibeetl.admin.core.annotation.Function;
|
import com.ibeetl.admin.core.annotation.Query;
|
import com.ibeetl.admin.core.entity.CoreFunction;
|
import com.ibeetl.admin.core.entity.CoreMenu;
|
import com.ibeetl.admin.core.rbac.tree.MenuItem;
|
import com.ibeetl.admin.core.service.CorePlatformService;
|
import com.ibeetl.admin.core.util.AnnotationUtil;
|
import com.ibeetl.admin.core.util.ConvertUtil;
|
import com.ibeetl.admin.core.web.JsonResult;
|
|
/**
|
* @author lijiazhi
|
*/
|
@Controller
|
public class MenuController {
|
|
|
private static final String MODEL = "/admin/menu";
|
private final Log log = LogFactory.getLog(this.getClass());
|
|
|
@Autowired
|
MenuConsoleService menuService;
|
|
@Autowired
|
CorePlatformService platformService;
|
|
/*页面*/
|
|
@GetMapping(MODEL + "/index.do")
|
@Function("menu")
|
public ModelAndView index() {
|
ModelAndView view = new ModelAndView("/admin/menu/index.html");
|
view.addObject("search", MenuQuery.class.getName());
|
return view;
|
}
|
|
@GetMapping(MODEL + "/add.do")
|
@Function("menu.add")
|
public ModelAndView add() {
|
ModelAndView view = new ModelAndView("/admin/menu/add.html");
|
return view;
|
}
|
@GetMapping(MODEL + "/edit.do")
|
@Function("menu.edit")
|
public ModelAndView edit(Integer id) {
|
ModelAndView view = new ModelAndView("/admin/menu/edit.html");
|
CoreMenu menu = menuService.queryById(id);
|
view.addObject("menu", menu);
|
return view;
|
}
|
|
/*Json*/
|
|
/**
|
* 查询
|
* @param menu
|
* @return
|
*/
|
@PostMapping(MODEL + "/list/condition.json")
|
@Function("menu.query")
|
@ResponseBody
|
public JsonResult condition() {
|
List<Map<String, Object>> list = AnnotationUtil.getInstance().getAnnotations(Query.class, MenuQuery.class);
|
return JsonResult.success(list);
|
}
|
|
|
@PostMapping(MODEL + "/list.json")
|
@Function("menu.query")
|
@ResponseBody
|
public JsonResult<PageQuery> list(MenuQuery condtion) {
|
PageQuery page = condtion.getPageQuery();
|
menuService.queryByCondtion(page);
|
return JsonResult.success(page);
|
}
|
|
|
/**
|
* 添加
|
* @param menu
|
* @return
|
*/
|
@PostMapping(MODEL + "/save.json")
|
@Function("menu.save")
|
@ResponseBody
|
public JsonResult save(@Validated CoreMenu menu) {
|
menu.setCreateTime(new Date());
|
Long id = menuService.saveMenu(menu);
|
return JsonResult.success(id);
|
}
|
|
/**
|
* 更新
|
* @param fun
|
* @return
|
*/
|
@PostMapping(MODEL + "/update.json")
|
@Function("menu.update")
|
@ResponseBody
|
public JsonResult update(CoreMenu fun) {
|
menuService.updateMenu(fun);
|
return new JsonResult().success();
|
}
|
|
/**
|
* 根据id查询菜单信息
|
* @param id 菜单Id
|
* @return
|
*/
|
@PostMapping(MODEL + "/view.json")
|
@Function("menu.query")
|
@ResponseBody
|
public JsonResult<CoreMenu> view(Long id) {
|
CoreMenu fun = menuService.queryById(id);
|
MenuItem root = this.platformService.buildMenu();
|
MenuItem child = root.findChild(fun.getId());
|
CoreMenu parent = child.getParent().getData();
|
fun.set("parentMenuName", parent.getName());
|
return JsonResult.success(fun);
|
}
|
|
/**
|
* 删除
|
* @param id 菜单id
|
* @return
|
*/
|
@PostMapping(MODEL + "/delete.json")
|
@Function("menu.delete")
|
@ResponseBody
|
public JsonResult delete(Long id) {
|
menuService.deleteMenu(id);
|
return new JsonResult().success();
|
}
|
|
/**
|
* 批量删除
|
* @param ids 菜单id集合
|
* @return
|
*/
|
@PostMapping(MODEL + "/batchDel.json")
|
@Function("menu.delete")
|
@ResponseBody
|
public JsonResult delete(String ids) {
|
List<Long> dels = ConvertUtil.str2longs(ids);
|
menuService.batchDeleteMenuId(dels);
|
return new JsonResult().success();
|
}
|
|
|
|
|
}
|
|
|