fei.wang
2025-03-17 e8dc9598b482830ca7fa60c6869687a32448137d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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.*;
 
/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @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<TbMenus> 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<TbMenus> menus = tbMenusMapper.selectList(queryWrapper);
        List<TbMenus> parMenus = new ArrayList<>();
        //分别取出父子级的数据另存到集合
        for (int i = 0; i < menus.size(); i++) {
            HashMap<String,String> 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<TbMenus> menus1 = tbMenusMapper.selectList(queryWrapper1);
            List<ChildrenMenu> 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<String,String> 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);
    }
 
}