Files
yidaima/RuoYi-Vue/docs/superpowers/plans/2026-07-06-home-business-block-auto-composition.md

2.7 KiB

Home Business Block Auto Composition Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Automatically add carousel, notice, and news business blocks to the generated frontend home page when matching tables exist.

Architecture: Keep home as a business-blocks-v1 page. Add a focused composer that detects table intent from table names/comments and field names/comments, builds valid business block instances, and merges only missing auto-generated blocks into home layoutJson.

Tech Stack: Java, Fastjson2, RuoYi generator services, Velocity business block templates, Vue 2/Element UI generated frontend.


Task 1: Add Home Composer

Files:

  • Create: ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/HomeBusinessBlockComposer.java

  • Implement table classification for carousel, notice, and news.

  • Implement field matching for required and optional block config fields.

  • Merge generated blocks into existing home layout without overwriting user-authored block ids.

Task 2: Wire Composer Into Frontend Home Initialization

Files:

  • Modify: ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontendPageDesignService.java

  • Inject composer with a lazy fallback for unit-style construction.

  • Call composer after the home design is created or loaded.

  • Persist the home design only when layout JSON changes.

Task 3: Add News Business Block

Files:

  • Create: ruoyi-generator/src/main/resources/business-blocks/news/block.json

  • Create: ruoyi-generator/src/main/resources/business-blocks/news/templates/frontend/NewsBlock.vue.vm

  • Create: ruoyi-generator/src/main/resources/business-blocks/news/templates/frontend/newsApi.js.vm

  • Create backend template files under ruoyi-generator/src/main/resources/business-blocks/news/templates/backend/

  • Modify: ruoyi-generator/src/main/resources/business-blocks/carousel/block.json

  • Modify: ruoyi-generator/src/main/resources/business-blocks/notice/block.json

  • Add news config fields for title, content, summary, cover image, status, and publish time.

  • Generate list endpoint files following the notice block pattern.

  • Mark carousel and notice as valid for both page and embedded placements.

Task 4: Verify Without Automated Tests

Files:

  • Review changed files and run a compile-level command if local dependencies permit.

  • Inspect generated JSON and Velocity variables for consistency.

  • Run mvn -pl ruoyi-generator -am -DskipTests compile unless the local environment blocks it.