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