package com.hxzkmonitor.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hxzkmonitor.mapper.TbMenusMapper;
import com.hxzkmonitor.pojo.ChildrenMenu;
import com.hxzkmonitor.pojo.TbMenus;
import com.hxzkmonitor.pojo.TbMenus;
import com.hxzkmonitor.service.TbMenusService;
import com.hxzkmonitor.util.R;
import com.hxzkmonitor.util.StatusCode;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
/**
*
* 前端控制器
*
*
* @author wangfei
* @since 2024-08-07
*/
@RestController
@RequestMapping("/")
public class TbMenusController {
@Autowired
TbMenusMapper tbMenusMapper;
@Autowired
TbMenusService tbMenusService;
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping("/api/getMenusPage")
public R getMenusPage(Page page) {
IPage ipage = tbMenusService.getMenusPage( page);
return R.ok(ipage);
}
@PostMapping("/api/addorupMenus")
public R addorupMenus(TbMenus tbMenus) {
return R.ok(tbMenusService.addorupMenus(tbMenus));
}
@GetMapping("/api/delMenus")
public R delMenus(Integer id) {
return R.ok(tbMenusService.delMenus(id));
}
@GetMapping("/api/searchMenus")
public R searchMenus(Page page,String keyword ) {
return R.ok(tbMenusService.searchMenus(page,keyword));
}
@PostMapping("api/menus")
public R getMenus(String code,String role) {
System.out.println(role);
// com.hxzkmonitor.util.R response = new com.hxzkmonitor.util.R(StatusCode.Success);
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("authrole",role);
List menus = tbMenusMapper.selectList(queryWrapper);
List parMenus = new ArrayList<>();
//分别取出父子级的数据另存到集合
for (int i = 0; i < menus.size(); i++) {
HashMap map = new HashMap<>();
map.put("title",menus.get(i).getTitle());
map.put("icon",menus.get(i).getIcon());
menus.get(i).setMeta(map);
if (menus.get(i).getParent() != null && !Objects.equals(menus.get(i).getParent(), "")) {
parMenus.add(menus.get(i));
}
}
//根据父级id找到对应的子级数据加到父级数据的集合中
for (int j = 0; j < parMenus.size(); j++) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("authrole",role);
queryWrapper1.eq("childrenid", parMenus.get(j).getParent());
List menus1 = tbMenusMapper.selectList(queryWrapper1);
List menus2 = new ArrayList<>();
for (int i = 0; i < menus1.size(); i++) {
ChildrenMenu tbMenus = new ChildrenMenu();
tbMenus.setPath(menus1.get(i).getPath());
tbMenus.setComponent(menus1.get(i).getComponent());
tbMenus.setName(menus1.get(i).getName());
HashMap map = new HashMap<>();
map.put("title",menus1.get(i).getTitle());
map.put("icon",menus1.get(i).getIcon());
tbMenus.setMeta(map);
menus2.add(tbMenus);
}
parMenus.get(j).setChildren(menus2);
}
// response.setData(parMenus);
return R.ok(parMenus);
}
}