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 compileunless the local environment blocks it.