package com.highdatas.mdm.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.highdatas.mdm.entity.DeletedTableLog;
import com.highdatas.mdm.entity.MenuMapping;
import com.highdatas.mdm.entity.SysField;
import com.highdatas.mdm.entity.SysMenu;
import com.highdatas.mdm.pojo.CodeMsg;
import com.highdatas.mdm.pojo.Result;
import com.highdatas.mdm.service.IDeletedTableLogService;
import com.highdatas.mdm.service.IMenuMappingService;
import com.highdatas.mdm.service.ISysFieldService;
import com.highdatas.mdm.service.ISysMenuService;
import com.highdatas.mdm.util.Constant;
import com.highdatas.mdm.util.DbUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
*
* 前端控制器
*
*
* @author kimi
* @since 2019-12-16
*/
@RestController
@RequestMapping("/menu")
public class SysMenuController {
@Autowired
ISysMenuService menuService;
@Autowired
IMenuMappingService menuMappingService;
@Autowired
ISysFieldService fieldService;
@Autowired
IDeletedTableLogService deletedTableLogService;
@RequestMapping(value = "/all", method = RequestMethod.GET)
public Result> getAll() {
EntityWrapper sysMenuEntityWrapper = new EntityWrapper<>();
sysMenuEntityWrapper.orderBy(" parent_id, order_no");
return Result.success(menuService.selectList(sysMenuEntityWrapper)) ;
}
@RequestMapping(value = "/list", method = RequestMethod.GET)
public Result> getMenuList() {
EntityWrapper sysMenuEntityWrapper = new EntityWrapper<>();
sysMenuEntityWrapper.eq("DataMenu", "DataMenu");
sysMenuEntityWrapper.orderBy("parent_id, order_no");
List sysMenus = menuService.selectList(sysMenuEntityWrapper);
LinkedHashSet parentIdSet = new LinkedHashSet<>();
for (SysMenu sysMenu : sysMenus) {
MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper().eq("menu_id", sysMenu.getId()));
if (menuMapping == null) {
continue;
}
String tableName = menuMapping.getTableName();
List fieldByTable = fieldService.getFieldByTable(tableName);
if (fieldByTable == null) {
continue;
}
parentIdSet.add(sysMenu.getId());
}
Set byParentId = menuService.getByParentId(parentIdSet);
List parentList = menuService.selectBatchIds(byParentId);
return Result.success(parentList) ;
}
@RequestMapping(value = "/allTheme", method = RequestMethod.GET)
public Result> getAllTheme() {
EntityWrapper sysMenuEntityWrapper = new EntityWrapper<>();
sysMenuEntityWrapper.eq("menu_type",Constant.StructureMenu).orderBy("parent_id desc");
return Result.success(menuService.selectList(sysMenuEntityWrapper)) ;
}
@RequestMapping(value = "/{pageno}", method = RequestMethod.GET)
public Result> getAll(@PathVariable int pageno, HttpServletRequest request) {
String pageSize = request.getParameter("pageSize");
if (StringUtils.isEmpty(pageSize)) {
pageSize = "15";
}
Integer size = Integer.valueOf(pageSize);
Page page = new Page(pageno, size);
Page menuPage = menuService.selectPage(page);
return Result.success(menuPage);
}
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
public Result get(@PathVariable String id) throws Exception {
return Result.success(menuService.selectById(id));
}
@RequestMapping(value = "/add", method = RequestMethod.GET)
public Result