ruoyi-code-generator
10
总安装量
10
周安装量
#29301
全站排名
安装命令
npx skills add https://github.com/alffei/skill_share --skill ruoyi-code-generator
Agent 安装分布
github-copilot
10
codex
10
kimi-cli
10
gemini-cli
10
cursor
10
amp
10
Skill 文档
RuoYi 代ç çæå¨æè½
ð ç®æ (Goal)
æ ¹æ®ç¨æ·æä¾çæ°æ®è¡¨ä¿¡æ¯ï¼è¡¨åãåæ®µå®ä¹ï¼ï¼æç §è¥ä¾æ¡æ¶è§èèªå¨çæå®æ´ç CRUD 代ç ï¼å æ¬ï¼
- Java å端代ç ï¼DomainãMapperãServiceãServiceImplãControllerï¼
- MyBatis XML æ å°æä»¶
- Vue å端代ç ï¼é¡µé¢ç»ä»¶ãAPI å°è£ ï¼
- èååå§å SQL
ð¥ è¾å ¥å®ä¹ (Input)
ç¨æ·éè¦æä¾ä»¥ä¸ä¿¡æ¯ï¼å¯ä»¥éè¿å¯¹è¯æ¾æ¸ è·åï¼ï¼
| åæ° | å¿ å¡« | 说æ | ç¤ºä¾ |
|---|---|---|---|
tableName |
â | æ°æ®åºè¡¨å | sys_product |
tableComment |
â | 表注é/åè½åç§° | 产å管ç |
columns |
â | åæ®µå表ï¼å«ç±»åãæ³¨éï¼ | è§ä¸æ¹ç¤ºä¾ |
packageName |
â | å
è·¯å¾ï¼é»è®¤ com.ruoyi.system |
com.ruoyi.business |
moduleName |
â | 模ååï¼é»è®¤å表åç¼åçåç§° | product |
businessName |
â | ä¸å¡åç§°ï¼é»è®¤å表åå»åç¼ | product |
author |
â | ä½è
åï¼é»è®¤ ruoyi |
zhangsan |
tplCategory |
â | 模æ¿ç±»å: crud/tree/subï¼é»è®¤ crud |
crud |
åæ®µå®ä¹ç¤ºä¾
{
"tableName": "sys_product",
"tableComment": "产å管ç",
"columns": [
{"name": "product_id", "type": "bigint", "comment": "产åID", "isPk": true, "isIncrement": true},
{"name": "product_name", "type": "varchar(100)", "comment": "产ååç§°", "isRequired": true, "isQuery": true},
{"name": "product_code", "type": "varchar(50)", "comment": "产åç¼ç ", "isRequired": true},
{"name": "category_id", "type": "bigint", "comment": "åç±»ID", "dictType": "product_category"},
{"name": "price", "type": "decimal(10,2)", "comment": "ä»·æ ¼"},
{"name": "status", "type": "char(1)", "comment": "ç¶æï¼0æ£å¸¸ 1åç¨ï¼", "dictType": "sys_normal_disable"},
{"name": "create_time", "type": "datetime", "comment": "å建æ¶é´"}
]
}
ð¤ è¾åºå®ä¹ (Output)
çæä»¥ä¸æä»¶ç»æç代ç ï¼
è¾åºæä»¶æ¸
å:
âââ java/
â âââ domain/{ClassName}.java # å®ä½ç±»
â âââ mapper/{ClassName}Mapper.java # Mapperæ¥å£
â âââ service/I{ClassName}Service.java # Serviceæ¥å£
â âââ service/impl/{ClassName}ServiceImpl.java # Serviceå®ç°
â âââ controller/{ClassName}Controller.java # RESTæ§å¶å¨
âââ xml/
â âââ {ClassName}Mapper.xml # MyBatisæ å°æä»¶
âââ vue/
â âââ api/{businessName}.js # APIå°è£
â âââ views/{moduleName}/{businessName}/index.vue # 页é¢ç»ä»¶
âââ sql/
âââ {businessName}Menu.sql # èååå§åSQL
ð æ§è¡æµç¨ (Workflow)
ç¬¬ä¸æ¥ï¼ä¿¡æ¯æ¶éä¸éªè¯
- è§£æç¨æ·è¯·æ±ï¼è¯å«è¡¨åãåæ®µä¿¡æ¯
- 缺çä¿¡æ¯è¿½é®ï¼å¦æç¼ºå°å¿ è¦ä¿¡æ¯ï¼ä¸»å¨è¯¢é®ç¨æ·
- æ¨æé»è®¤å¼ï¼
className= 表å转大驼峰ï¼å»é¤è¡¨åç¼å¦sys_ï¼moduleName= 表åç¼åçæ¨¡ååbusinessName= 表åå»åç¼åçå°åå½¢å¼- 主é®å段 = åæ®µä¸
isPk=trueçåæ®µï¼é»è®¤ä¸º{tableName}_id
ç¬¬äºæ¥ï¼åéåå¤
æ ¹æ®è¾å ¥è®¡ç®æææ¨¡æ¿åéï¼
æ ¸å¿åé:
- ${tableName} 表å
- ${tableComment} 表注é
- ${ClassName} ç±»å(大驼峰)
- ${className} ç±»å(å°é©¼å³°)
- ${moduleName} 模åå
- ${businessName} ä¸å¡å
- ${BusinessName} ä¸å¡å(é¦åæ¯å¤§å)
- ${packageName} å
è·¯å¾
- ${author} ä½è
- ${datetime} çææ¥æ
- ${pkColumn} 主é®å段信æ¯
- ${columns} ææå段å表
- ${permissionPrefix} æéåç¼ (æ ¼å¼: moduleName:businessName)
ç¬¬ä¸æ¥ï¼ä»£ç çæ
æé¡ºåºè¯»åå¹¶å¡«å æ¨¡æ¿ï¼
- è¯»åæ¨¡æ¿æä»¶ï¼ä»
templates/ç®å½å è½½å¯¹åºæ¨¡æ¿ - åéæ¿æ¢ï¼å°
${åéå}æ¿æ¢ä¸ºå®é å¼ - æ¡ä»¶å¤çï¼æ ¹æ®å段é
ç½®å¤ç
#if/#foreaché»è¾ - è¾åºä»£ç ï¼çææç»ä»£ç æä»¶
ç¬¬åæ¥ï¼èªæ£ä¸äº¤ä»
- 代ç 审æ¥ï¼æ£æ¥çæçä»£ç æ¯å¦ç¬¦åè§è
- ä¾èµæç¤ºï¼åç¥ç¨æ·éè¦æ·»å çä¾èµæé ç½®
- 使ç¨è¯´æï¼æä¾åç»æä½æå¼
â ï¸ çº¦ææ¡ä»¶ (Constraints)
-
å½åè§èï¼
- ç±»åå¿ é¡»ä½¿ç¨å¤§é©¼å³° (PascalCase)
- åéåå¿ é¡»ä½¿ç¨å°é©¼å³° (camelCase)
- å è·¯å¾å¿ é¡»å ¨å°å
-
ç¼ç è§èï¼
- Java æä»¶ä½¿ç¨ UTF-8 ç¼ç
- 缩è¿ä½¿ç¨ 4 ä¸ªç©ºæ ¼
- å¿ é¡»å å«å®æ´ç Javadoc 注é
-
å®å ¨è§èï¼
- Controller å¿
须添å
@PreAuthorizeæé注解 - å 餿ä½å¿
须添å
@Logæ¥å¿æ³¨è§£ - ææå段ï¼å¦å¯ç ï¼ä¸åºç°å¨å表å±ç¤ºä¸
- Controller å¿
须添å
-
ç¦æ¢äºé¡¹ï¼
- â ä¸çææµè¯ç±»ï¼å¦éè¦è¯·åç¬è¯·æ±ï¼
- â ä¸ä¿®æ¹å·²åå¨çæä»¶ï¼é¤éç¨æ·æç¡®è¦æ±ï¼
- â ä¸ç¡¬ç¼ç 任使æä¿¡æ¯
ð§ åæ®µç±»åæ å°
| æ°æ®åºç±»å | Javaç±»å | 说æ |
|---|---|---|
bigint |
Long |
é¿æ´å |
int/integer |
Integer |
æ´å |
varchar/char/text |
String |
å符串 |
datetime/timestamp |
Date |
æ¥ææ¶é´ |
date |
Date |
æ¥æ |
decimal/numeric |
BigDecimal |
é«ç²¾åº¦æ°å¼ |
float/double |
Double |
æµ®ç¹æ° |
tinyint(1)/bit |
Boolean |
å¸å°å¼ |
ð æ¨¡æ¿å¼ç¨
çæä»£ç æ¶ï¼è¯·åè以䏿¨¡æ¿æä»¶ï¼
- Java 模æ¿:
templates/java/ç®å½ä¸ç.vmæä»¶ - Vue 模æ¿:
templates/vue/ç®å½ä¸ç.vmæä»¶ - XML 模æ¿:
templates/xml/ç®å½ä¸ç.vmæä»¶ - SQL 模æ¿:
templates/sql/ç®å½ä¸ç.vmæä»¶
ð¡ 使ç¨ç¤ºä¾
示ä¾å¯¹è¯ 1ï¼åºç¡çæ
ç¨æ·: 帮æçæä¸ä¸ªäº§åç®¡çæ¨¡åç代ç ï¼è¡¨åæ¯ sys_product
Agent ååº:
- é¦å ç¡®è®¤åæ®µä¿¡æ¯
- æ¨æé»è®¤é ç½®
- çæå®æ´ä»£ç
- æä¾ä½¿ç¨è¯´æ
示ä¾å¯¹è¯ 2ï¼æå®é ç½®
ç¨æ·:
çæä»£ç :
- 表å: biz_order
- åè½: 订å管ç
- å
è·¯å¾: com.ruoyi.business
- åæ®µ: order_id(主é®), order_no(订åå·), customer_name(客æ·å), amount(éé¢), status(ç¶æ), create_time(å建æ¶é´)
Agent ååº:
已为æ¨çæè®¢åç®¡çæ¨¡å代ç ï¼å
å«ä»¥ä¸æä»¶ï¼
Javaå端:
- Order.java (å®ä½ç±»)
- OrderMapper.java (Mapperæ¥å£)
- IOrderService.java (Serviceæ¥å£)
- OrderServiceImpl.java (Serviceå®ç°)
- OrderController.java (æ§å¶å¨)
MyBatis:
- OrderMapper.xml (æ å°æä»¶)
Vueå端:
- order.js (APIå°è£
)
- index.vue (å表页é¢)
SQLèæ¬:
- orderMenu.sql (èååå§å)
[å
·ä½ä»£ç å
容...]
ð çæ¬è¯´æ
- å ¼å®¹çæ¬: RuoYi-Vue v3.9.x
- åç«¯æ¡æ¶: Vue 2 + Element UI
- åç«¯æ¡æ¶: Spring Boot 2.x + MyBatis