From acebf48e2e139f6f298cfbba829cc3c29db3c891 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 03 七月 2024 10:20:23 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/HostController.java |   91 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 91 insertions(+), 0 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/HostController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/HostController.java
index 591bb1b..e6e9444 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/HostController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/system/controller/HostController.java
@@ -4,15 +4,21 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
+import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wms.common.annotation.OperationLog;
 import com.zy.asrs.wms.common.domain.BaseParam;
 import com.zy.asrs.wms.common.domain.KeyValVo;
 import com.zy.asrs.wms.common.domain.PageParam;
 import com.zy.asrs.wms.system.entity.Host;
+import com.zy.asrs.wms.system.entity.Menu;
+import com.zy.asrs.wms.system.entity.RoleMenu;
 import com.zy.asrs.wms.system.service.HostService;
+import com.zy.asrs.wms.system.service.MenuService;
+import com.zy.asrs.wms.system.service.RoleMenuService;
 import com.zy.asrs.wms.utils.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
@@ -24,6 +30,10 @@
 
     @Autowired
     private HostService hostService;
+    @Autowired
+    private MenuService menuService;
+    @Autowired
+    private RoleMenuService roleMenuService;
 
     @PreAuthorize("hasAuthority('system:host:list')")
     @PostMapping("/host/page")
@@ -48,12 +58,68 @@
     @PreAuthorize("hasAuthority('system:host:save')")
     @OperationLog("娣诲姞鏈烘瀯")
     @PostMapping("/host/save")
+    @Transactional
     public R save(@RequestBody Host host) {
         host.setCreateTime(new Date());
         host.setUpdateTime(new Date());
         if (!hostService.save(host)) {
             return R.error("娣诲姞澶辫触");
         }
+
+        //鍒涘缓绯荤粺榛樿鑿滃崟
+        Menu menu = new Menu();
+        menu.setName("绯荤粺绠$悊");
+        menu.setParentId(0L);
+        menu.setRoute("/system");
+        menu.setType(0);
+        menu.setIcon("UserOutlined");
+        menu.setSort(1);
+        menu.setLanguageId("system.system");
+        menu.setHostId(host.getId());
+        boolean save = menuService.save(menu);
+        if (!save) {
+            throw new CoolException("娣诲姞澶辫触");
+        }
+        List<Menu> menuList = menuService.selectByPathName("绯荤粺绠$悊", 0);
+        for (Menu menu1 : menuList) {
+            menu1.setId(null);
+            menu1.setHostId(host.getId());
+            menu1.setParentId(menu.getId());
+            boolean save1 = menuService.save(menu1);
+            if (!save1) {
+                throw new CoolException("娣诲姞澶辫触");
+            }
+
+            List<Menu> menuList2 = menuService.selectByPathName(menu1.getName(), 1);
+            for (Menu menu2 : menuList2) {
+                menu2.setId(null);
+                menu2.setHostId(host.getId());
+                menu2.setParentId(menu1.getId());
+                boolean save2 = menuService.save(menu2);
+                if (!save2) {
+                    throw new CoolException("娣诲姞澶辫触");
+                }
+            }
+        }
+
+        //鍒涘缓榛樿鏉冮檺
+        for (Menu menu1 : menuList) {
+            RoleMenu roleMenu = new RoleMenu();
+            roleMenu.setRoleId(1L);
+            roleMenu.setMenuId(menu1.getId());
+            boolean save1 = roleMenuService.save(roleMenu);
+            if (!save1) {
+                throw new CoolException("娣诲姞澶辫触");
+            }
+        }
+        RoleMenu roleMenu = new RoleMenu();
+        roleMenu.setRoleId(1L);
+        roleMenu.setMenuId(menu.getId());
+        boolean save1 = roleMenuService.save(roleMenu);
+        if (!save1) {
+            throw new CoolException("娣诲姞澶辫触");
+        }
+
         return R.ok("娣诲姞鎴愬姛");
     }
 
@@ -71,7 +137,32 @@
     @PreAuthorize("hasAuthority('system:host:remove')")
     @OperationLog("鍒犻櫎鏈烘瀯")
     @PostMapping("/host/remove/{ids}")
+    @Transactional
     public R remove(@PathVariable Long[] ids) {
+        List<Host> list = hostService.list(new LambdaQueryWrapper<Host>().in(Host::getId, ids));
+        for (Host host : list) {
+            if (host.getId() == 1) {
+                throw new CoolException("鏍硅妭鐐逛笉鍙鍒犻櫎");
+            }
+
+            ArrayList<Long> menuIds = new ArrayList<>();
+            for (Menu menu : menuService.selectByHostId(host.getId())) {
+                menuIds.add(menu.getId());
+            }
+
+            if (!menuIds.isEmpty()) {
+                boolean result = roleMenuService.remove(new LambdaQueryWrapper<RoleMenu>().in(RoleMenu::getMenuId, menuIds));
+                if (!result) {
+                    throw new CoolException("鍒犻櫎澶辫触");
+                }
+
+                boolean result1 = menuService.removeByHostId(host.getId());
+                if (!result1) {
+                    throw new CoolException("鍒犻櫎澶辫触");
+                }
+            }
+        }
+
         if (!hostService.removeByIds(Arrays.asList(ids))) {
             return R.error("鍒犻櫎澶辫触");
         }

--
Gitblit v1.9.1