车车 2 сар өмнө
parent
commit
50ee39e9ce

+ 7 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/homepage/PageUiComponentController.java

@@ -31,6 +31,13 @@ public class PageUiComponentController {
     @Resource
     private PageUiComponentService pageUiComponentService;
 
+    @PostMapping("/insertPageUiComponent")
+    @Operation(summary = "创建iscs驾驶舱页面和组件关联")
+    @PreAuthorize("@ss.hasPermission('sys:page-ui-component:create')")
+    public CommonResult<Long> insertUiComponent(@Valid @RequestBody PageUiComponentSaveReqVO createReqVO) {
+        return success(pageUiComponentService.createPageUiComponent(createReqVO));
+    }
+
     @PutMapping("/updatePageUiComponent")
     @Operation(summary = "更新iscs驾驶舱页面和组件关联")
     @PreAuthorize("@ss.hasPermission('sys:page-ui-component:update')")

+ 2 - 3
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/homepage/RolePageController.java

@@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePagePageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePageRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePageSaveReqVO;
-import cn.iocoder.yudao.module.system.dal.dataobject.homepage.RolePageDO;
 import cn.iocoder.yudao.module.system.service.homepage.RolePageService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -60,7 +59,7 @@ public class RolePageController {
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
     @PreAuthorize("@ss.hasPermission('sys:role-page:query')")
     public CommonResult<RolePageRespVO> selectRolePageById(@RequestParam("id") Long id) {
-        RolePageDO rolePage = rolePageService.getRolePage(id);
+        RolePageRespVO rolePage = rolePageService.getRolePage(id);
         return success(BeanUtils.toBean(rolePage, RolePageRespVO.class));
     }
 
@@ -68,7 +67,7 @@ public class RolePageController {
     @Operation(summary = "获得iscs驾驶舱角色和页面关联分页")
     @PreAuthorize("@ss.hasPermission('sys:role-page:query')")
     public CommonResult<PageResult<RolePageRespVO>> getRolePagePage(@Valid RolePagePageReqVO pageReqVO) {
-        PageResult<RolePageDO> pageResult = rolePageService.getRolePagePage(pageReqVO);
+        PageResult<RolePageRespVO> pageResult = rolePageService.getRolePagePage(pageReqVO);
         return success(BeanUtils.toBean(pageResult, RolePageRespVO.class));
     }
 

+ 5 - 10
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/homepage/vo/RolePagePageReqVO.java

@@ -1,13 +1,8 @@
 package cn.iocoder.yudao.module.system.controller.admin.homepage.vo;
 
-import lombok.*;
-import java.util.*;
-import io.swagger.v3.oas.annotations.media.Schema;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.time.LocalDateTime;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
 
 @Schema(description = "管理后台 - iscs驾驶舱角色和页面关联分页 Request VO")
 @Data
@@ -16,11 +11,11 @@ public class RolePagePageReqVO extends PageParam {
     @Schema(description = "角色id", example = "1430")
     private Long roleId;
 
+    @Schema(description = "角色name", example = "1430")
+    private String roleName;
+
     @Schema(description = "页面类型-可选项:驾驶舱(以后可扩展)", example = "1")
     private Integer pageType;
 
-    @Schema(description = "创建时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] createTime;
 
 }

+ 13 - 4
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/homepage/vo/RolePageRespVO.java

@@ -1,11 +1,13 @@
 package cn.iocoder.yudao.module.system.controller.admin.homepage.vo;
 
+import cn.iocoder.yudao.module.system.dal.dataobject.homepage.PageUiComponentDO;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
 import java.time.LocalDateTime;
-import com.alibaba.excel.annotation.*;
+import java.util.List;
 
 @Schema(description = "管理后台 - iscs驾驶舱角色和页面关联 Response VO")
 @Data
@@ -20,6 +22,10 @@ public class RolePageRespVO {
     @ExcelProperty("角色id")
     private Long roleId;
 
+    @Schema(description = "角色name", requiredMode = Schema.RequiredMode.REQUIRED, example = "name")
+    @ExcelProperty("角色name")
+    private String roleName;
+
     @Schema(description = "页面类型-可选项:驾驶舱(以后可扩展)", example = "1")
     @ExcelProperty("页面类型-可选项:驾驶舱(以后可扩展)")
     private Integer pageType;
@@ -28,4 +34,7 @@ public class RolePageRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "页面类型-可选项:驾驶舱(以后可扩展)", example = "1")
+    private List<PageUiComponentDO> pageUiComponentDOList;
+
 }

+ 5 - 1
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/homepage/RolePageMapper.java

@@ -4,8 +4,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePagePageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePageRespVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.homepage.RolePageDO;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * iscs驾驶舱角色和页面关联 Mapper
@@ -19,8 +22,9 @@ public interface RolePageMapper extends BaseMapperX<RolePageDO> {
         return selectPage(reqVO, new LambdaQueryWrapperX<RolePageDO>()
                 .eqIfPresent(RolePageDO::getRoleId, reqVO.getRoleId())
                 .eqIfPresent(RolePageDO::getPageType, reqVO.getPageType())
-                .betweenIfPresent(RolePageDO::getCreateTime, reqVO.getCreateTime())
                 .orderByDesc(RolePageDO::getId));
     }
 
+    Page<RolePageRespVO> getRolePagePage(Page<RolePageDO> page, @Param(value = "vo") RolePagePageReqVO vo);
+
 }

+ 7 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/homepage/PageUiComponentService.java

@@ -61,4 +61,11 @@ public interface PageUiComponentService extends IService<PageUiComponentDO> {
      */
     List<PageUiComponentDO> getUiComponentList(List<Long> roleIds);
 
+    /**
+     * 根据页面获取组件
+     * @param pageId
+     * @return
+     */
+    List<PageUiComponentDO> getUiComponentListByPageId(Long pageId);
+
 }

+ 14 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/homepage/PageUiComponentServiceImpl.java

@@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.homepage.PageUiComponentMapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 import org.springframework.validation.annotation.Validated;
@@ -30,6 +31,7 @@ public class PageUiComponentServiceImpl extends ServiceImpl<PageUiComponentMappe
 
     @Resource
     private PageUiComponentMapper pageUiComponentMapper;
+    @Lazy
     @Resource
     private RolePageService rolePageService;
 
@@ -102,4 +104,16 @@ public class PageUiComponentServiceImpl extends ServiceImpl<PageUiComponentMappe
                 .selectAs(UiComponentDO::getComponentFilePath, "componentFilePath"));
     }
 
+    @Override
+    public List<PageUiComponentDO> getUiComponentListByPageId(Long pageId) {
+        return list(new MPJLambdaWrapperX<PageUiComponentDO>()
+                .leftJoin(UiComponentDO.class, UiComponentDO::getId, PageUiComponentDO::getComponentId)
+                .eq(PageUiComponentDO::getPageId, pageId)
+                .selectAll(PageUiComponentDO.class)
+                .selectAs(UiComponentDO::getComponentName, "componentName")
+                .selectAs(UiComponentDO::getComponentCategory, "componentCategory")
+                .selectAs(UiComponentDO::getComponentThumbnail, "componentThumbnail")
+                .selectAs(UiComponentDO::getComponentFilePath, "componentFilePath"));
+    }
+
 }

+ 3 - 2
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/homepage/RolePageService.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.service.homepage;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePagePageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePageRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePageSaveReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.homepage.RolePageDO;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -51,7 +52,7 @@ public interface RolePageService extends IService<RolePageDO> {
      * @param id 编号
      * @return iscs驾驶舱角色和页面关联
      */
-    RolePageDO getRolePage(Long id);
+    RolePageRespVO getRolePage(Long id);
 
     /**
      * 获得iscs驾驶舱角色和页面关联分页
@@ -59,6 +60,6 @@ public interface RolePageService extends IService<RolePageDO> {
      * @param pageReqVO 分页查询
      * @return iscs驾驶舱角色和页面关联分页
      */
-    PageResult<RolePageDO> getRolePagePage(RolePagePageReqVO pageReqVO);
+    PageResult<RolePageRespVO> getRolePagePage(RolePagePageReqVO pageReqVO);
 
 }

+ 33 - 4
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/homepage/RolePageServiceImpl.java

@@ -3,11 +3,17 @@ package cn.iocoder.yudao.module.system.service.homepage;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePagePageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePageRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePageSaveReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.homepage.PageUiComponentDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.homepage.RolePageDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
 import cn.iocoder.yudao.module.system.dal.mysql.homepage.RolePageMapper;
+import cn.iocoder.yudao.module.system.service.permission.RoleService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -24,6 +30,12 @@ public class RolePageServiceImpl extends ServiceImpl<RolePageMapper, RolePageDO>
 
     @Resource
     private RolePageMapper rolePageMapper;
+    @Lazy
+    @Resource
+    private RoleService roleService;
+    @Lazy
+    @Resource
+    private PageUiComponentService pageUiComponentService;
 
     @Override
     public Long createRolePage(RolePageSaveReqVO createReqVO) {
@@ -56,13 +68,30 @@ public class RolePageServiceImpl extends ServiceImpl<RolePageMapper, RolePageDO>
 
 
     @Override
-    public RolePageDO getRolePage(Long id) {
-        return rolePageMapper.selectById(id);
+    public RolePageRespVO getRolePage(Long id) {
+        RolePageDO rolePageDO = rolePageMapper.selectById(id);
+        RolePageRespVO bean = BeanUtils.toBean(rolePageDO, RolePageRespVO.class);
+        if (bean != null) {
+            // 查询角色名称
+            RoleDO roleDO = roleService.getById(bean.getRoleId());
+            if (roleDO != null) {
+                bean.setRoleName(roleDO.getName());
+            }
+            // 查询分页下有哪些组件
+            List<PageUiComponentDO> uiComponentListByPageId = pageUiComponentService.getUiComponentListByPageId(id);
+            bean.setPageUiComponentDOList(uiComponentListByPageId);
+        }
+        return bean;
     }
 
     @Override
-    public PageResult<RolePageDO> getRolePagePage(RolePagePageReqVO pageReqVO) {
-        return rolePageMapper.selectPage(pageReqVO);
+    public PageResult<RolePageRespVO> getRolePagePage(RolePagePageReqVO pageReqVO) {
+        Page<RolePageDO> page = new Page<RolePageDO>().setCurrent(pageReqVO.getPageNo()).setSize(pageReqVO.getPageSize());
+        Page<RolePageRespVO> pageResult = rolePageMapper.getRolePagePage(page, pageReqVO);
+        PageResult<RolePageRespVO> respVOPageResult = new PageResult<>();
+        respVOPageResult.setList(pageResult.getRecords());
+        respVOPageResult.setTotal(pageResult.getTotal());
+        return respVOPageResult;
     }
 
 }

+ 28 - 0
yudao-module-system/src/main/resources/mapper/RolePageMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.iocoder.yudao.module.system.dal.mysql.homepage.RolePageMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+    <select id="getRolePagePage"
+            resultType="cn.iocoder.yudao.module.system.controller.admin.homepage.vo.RolePageRespVO">
+        SELECT
+            rp.*,
+            r.NAME AS role_name
+        FROM
+            sys_role_page rp
+                LEFT JOIN system_role r ON r.id = rp.role_id
+        <where>
+            rp.deleted = 0
+            <if test="vo.roleName != null and vo.roleName.trim != ''">
+                and r.naem like concat('%',#{vo.roleName},'%')
+            </if>
+        </where>
+        order by rp.id desc
+    </select>
+</mapper>