Ver código fonte

菜单功能实现

Gaokun Wang 1 mês atrás
pai
commit
c038341bff

+ 66 - 0
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/controller/menu/MenuController.java

@@ -6,11 +6,77 @@
 package org.eco.vip.auth.controller.menu;
 
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotEmpty;
+import org.eco.vip.auth.domain.menu.pojo.MenuBO;
+import org.eco.vip.auth.domain.menu.pojo.MenuVO;
+import org.eco.vip.auth.service.menu.IMenuService;
+import org.eco.vip.orm.pojo.CommonResult;
+import org.eco.vip.orm.pojo.PageResult;
+import org.eco.vip.security.annotation.PermissionsResource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+import static org.eco.vip.orm.pojo.CommonResult.fail;
+import static org.eco.vip.orm.pojo.CommonResult.success;
+
 /**
  * @description MenuController
  *
  * @author GaoKunW
  * @date 2025/7/4 14:51
  */
+@RestController
+@RequestMapping("/system/menu")
+@Validated
+@PermissionsResource("menu")
 public class MenuController {
+
+    @Resource
+    private IMenuService menuService;
+
+    @GetMapping("/page")
+    public CommonResult<PageResult<MenuVO>> page(MenuBO menuBO) {
+        return success(menuService.selectPage(menuBO));
+    }
+
+    @GetMapping("/list")
+    public CommonResult<List<MenuVO>> list(MenuBO menuBO) {
+        return success(menuService.selectList(menuBO));
+    }
+
+    @PostMapping("/add")
+    @SaCheckPermission("system:menu:add")
+    public CommonResult<String> add(@RequestBody @Valid MenuBO menuBO) {
+        boolean result = menuService.insert(menuBO);
+        if (!result) {
+            return fail("新增组织失败!");
+        }
+        return success();
+    }
+
+    @DeleteMapping("/edit")
+    public CommonResult<String> edit(@RequestBody @Valid MenuBO menuBO) {
+        return success();
+    }
+
+    @PostMapping("/delete")
+    @SaCheckPermission("system:menu:delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空") List<String> ids) {
+        boolean result = menuService.delete(ids);
+        if (!result) {
+            return fail("删除菜单失败!");
+        }
+
+        return success();
+    }
 }

+ 54 - 1
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/service/menu/IMenuService.java

@@ -6,11 +6,64 @@
 package org.eco.vip.auth.service.menu;
 
 
+import org.eco.vip.auth.domain.menu.Menu;
+import org.eco.vip.auth.domain.menu.pojo.MenuBO;
+import org.eco.vip.auth.domain.menu.pojo.MenuVO;
+import org.eco.vip.orm.pojo.PageResult;
+import org.eco.vip.orm.service.IBaseService;
+
+import java.util.List;
+
 /**
  * @description IMenuService
  *
  * @author GaoKunW
  * @date 2025/7/4 15:04
  */
-public interface IMenuService {
+public interface IMenuService extends IBaseService<Menu> {
+
+
+    /**
+     * @description: 分页查询
+     * @param menuBO 参数
+     * @return PageResult<OrgVO>
+     **/
+    PageResult<MenuVO> selectPage(MenuBO menuBO);
+
+    /**
+     * @description: 查询
+     * @param menuBO 参数
+     * @return List<OrgVO>
+     **/
+    List<MenuVO> selectList(MenuBO menuBO);
+
+    /**
+     * @description: 新增
+     * @param menuBO 参数
+     * @return boolean 是否成功
+     **/
+    boolean insert(MenuBO menuBO);
+
+    /**
+     * @description: 更新
+     * @param menuBO 参数
+     * @return boolean 是否成功
+     **/
+    boolean update(MenuBO menuBO);
+
+    /**
+     * @description: 删除
+     * @param ids ids
+     * @return boolean 是否成功
+     **/
+    boolean delete(List<String> ids);
+
+    /**
+     * 根据ID查询信息
+     *
+     * @param id ID
+     * @return 组织信息
+     */
+    MenuVO selectById(String id);
+
 }

+ 65 - 1
eco-nexus-core/auth-biz/src/main/java/org/eco/vip/auth/service/menu/MenuService.java

@@ -6,11 +6,75 @@
 package org.eco.vip.auth.service.menu;
 
 
+import com.mybatisflex.core.query.QueryWrapper;
+import org.eco.vip.auth.domain.menu.Menu;
+import org.eco.vip.auth.domain.menu.pojo.MenuBO;
+import org.eco.vip.auth.domain.menu.pojo.MenuVO;
+import org.eco.vip.auth.mapper.MenuMapper;
+import org.eco.vip.orm.pojo.PageResult;
+import org.eco.vip.orm.service.BaseService;
+import org.eco.vip.orm.utils.MapstructUtils;
+import org.eco.vip.orm.utils.ObjUtils;
+import org.eco.vip.orm.utils.RandomUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+import static org.eco.vip.auth.domain.menu.table.MenuTableDef.MENU;
+
 /**
  * @description MenuService
  *
  * @author GaoKunW
  * @date 2025/7/4 15:05
  */
-public class MenuService {
+@Service
+public class MenuService extends BaseService<MenuMapper, Menu> implements IMenuService {
+
+    private QueryWrapper buildQueryWrapper(MenuBO menuBO) {
+        return super.buildBaseQueryWrapper()
+                .and(MENU.CODE.eq(menuBO.getCode()))
+                .and(MENU.TITLE.eq(menuBO.getTitle()))
+                .and(MENU.MODULE.eq(menuBO.getModule()))
+                .and(MENU.PATH.eq(menuBO.getPath()))
+                .and(MENU.CATEGORY.eq(menuBO.getCategory()))
+                .and(MENU.NAME.eq(menuBO.getName()))
+                .and(MENU.STATUS.eq(menuBO.getStatus()))
+                .and(MENU.PARENT_ID.eq(menuBO.getParentId()));
+    }
+
+    @Override
+    public PageResult<MenuVO> selectPage(MenuBO menuBO) {
+        return null;
+    }
+
+    @Override
+    public List<MenuVO> selectList(MenuBO menuBO) {
+        QueryWrapper queryWrapper = buildQueryWrapper(menuBO);
+        return this.listAs(queryWrapper, MenuVO.class);
+    }
+
+    @Override
+    public boolean insert(MenuBO menuBO) {
+        Menu menu = MapstructUtils.convert(menuBO, Menu.class);
+        if (ObjUtils.isNotNull(menu)) {
+            menu.setCode(RandomUtils.randomString(10));
+        }
+        return this.save(menu);
+    }
+
+    @Override
+    public boolean update(MenuBO menuBO) {
+        return false;
+    }
+
+    @Override
+    public boolean delete(List<String> ids) {
+        return false;
+    }
+
+    @Override
+    public MenuVO selectById(String id) {
+        return null;
+    }
 }