当前位置: 首页 > news >正文

skill整理-curd生成

之前写代码都是让ai一个接口一个接口的给我生成,有点浪费时间跟算力,整理了下一次性生成curd的skill,后面只需要直接调用生成就行,调用md如下

##  AI 代码生成向导 (Skills) 使用说明项目中已经内置了专用的 AI 技能 (Skill) 以约束代码生成规范,确保后期的开发人员能够快速、统一地生成符合规范的后端基础接口。###  一键生成增删改查 (CRUD) 接口代码如果你拿到了一张新表(例如 `admin_sys_log`),需要新建一整套带分页的标准化后台接口,**请直接将建表 SQL 复制给为您服务的 AI 助手,并附上类似下面的一句话指令:**> **请使用 `Generate CRUD For Platform Module` 这个 skill,根据以下 SQL 帮我一键生成基础的后端增删改查代码:**
> 
> ```sql
> CREATE TABLE `admin_sys_log` (
>   `id` int(11) NOT NULL AUTO_INCREMENT,
>   `action` varchar(255) DEFAULT NULL,
>   ...
> ) ENGINE=InnoDB;
> ```**AI 助手收到该指令后会自动执行以下规范,完全无需你人工调整格式:**
1. 自动将文件生成到 `com.chimeta.platform` 标准包结构下。
2. 一次性生成包含 `Entity`、前端查询体 `AO`、`Dao(Mapper)`、`Service`、`ServiceImpl` 以及全 `POST` 风格的 `Controller` 层代码。
3. 代码会严格按照本项目的规范使用 `PageHelper` 处理分页拦截,使用 `UpdateWrapper` 处理 `is_del` 逻辑删除防篡改,并统一返回 `ApiResult` 和 `PageInfo`。*(如果你希望以后能够更改代码生成的规范和逻辑限制,可以直接通过 AI 工具打开并修改隐藏文件 `.agent/skills/generate_platform_crud/SKILL.md` 即可调整全局的生成约束)。*

skill文档如下

---
name: Generate CRUD For Platform Module
description: 根据建表SQL一键生成后端标准接口(Entity、AO、Dao、Service、ServiceImpl、Controller),包含分页插件支持与MyBatis-Plus
---# 平台模块 (chixxxx-platform) CRUD 代码生成指南当你需要为 `chixxxx-platform` 模块中基于一张新建的数据库表自动生成 CRUD(增删改查)基础代码时,请严格遵守以下规则与模板规范:## 1. 结构与位置生成的文件必须落入以下包结构中:
- `com.chixxxx.platform.bean.entity` : 数据表对应的 Entity 实体类。 
- `com.chixxxx.platform.bean.ao` : 用于接收前端请求参数的查询体 AO (如 `[EntityName]ListAO`)。
- `com.chixxxx.platform.dao` : 数据访问层,必须继承 `BaseMapper<Entity>` 并加上 `@Mapper` 注解。
- `com.chixxxx.platform.service` : 业务接口层。
- `com.chixxxx.platform.service.Impl` : 业务实现层,处理分页、逻辑删除等具体业务。
- `com.chixxxx.platform.controller` : 控制层,向外暴露 HTTP 接口。## 2. 接口形式与请求约束每个新建模块必须生成如下 5 个基础接口,且查询与操作规范如下:
- **分页查询 (list)**:`POST /api/backend/[moduleName]/list`,参数使用 `@RequestBody XxxListAO ao`,返回值用 `ApiResult.ok(PageInfo<Entity>)`。
- **获取详情 (detail)**: `GET /api/backend/[moduleName]/detail` (或者包含在路径里的RESTful风格 API),使用 GET 请求,参数使用 `@RequestParam Integer id` 或 `@PathVariable Integer id`。
- **新增 (add)**: `POST /api/backend/[moduleName]/add`,通常参数使用对应的 AO 或 Entity 类传入。
- **修改 (edit)**: `POST /api/backend/[moduleName]/edit`,通常参数使用对应的 AO 或 Entity 类传入。
- **删除 (delete)**: `POST /api/backend/[moduleName]/delete`,参数使用 `@RequestParam Integer id`。**🚨 Controller 层的核心约束:**
1. **禁止在 Controller 中包含任何业务逻辑**或手工的对象拷贝操作;Controller 只负责接收请求和分发调用。
2. **必须在每个接口方法的第一行**,通过类似于 `log.info("xxx接口当前请求参数: {}", JSON.toJSONString(param));` 的方式,记录获取到的入参。## 3. 代码实现指导与规范### Entity (实体类)
- 加上 `@Data`,`@NoArgsConstructor`,`@EqualsAndHashCode(callSuper = true)`,`@TableName("你的表名")`。
- **强制继承**: 必须继承 `com.chixxxx.platform.bean.entity.BaseEntity`。
- 主键如果为自增整数,加上 `@TableId(type = IdType.AUTO)`。
- **剔除冗余字段**: 不要把建表 SQL 里的 `created_id`、`created_time`、`updated_id`、`updated_time` 以及 `is_del` 等基础字段在自己的类的属性里再写一遍,因为这些已经被 `BaseEntity` 接管。### AO (查询体对象)
```java
@Data
public class XxxListAO {private Integer pageNo;private Integer pageSize;// 其他查询条件字段
}
```### Dao
```java
@Mapper
public interface XxxDao extends BaseMapper<Xxx> {
}
```### ServiceImpl实现重点 (分页与查询构造)
1. **强制继承**: 必须继承 `BaseServiceImpl<XxxDao, Xxx>`,这会将自动管理 `createId`/`createdTime` 等审计功能带入。
2. **新增与修改**:- `add`: 实例化对象映射后,调用 **`super.add(entity);`**,而不是 `xxxDao.insert(entity);`!- `edit`: 查探不为空并实例化映射后,调用 **`super.update(entity);`**,而不是 `xxxDao.updateById(entity);`!
3. 分页查询必须使用 `PageHelper` 结合 MyBatis-Plus 的 `QueryWrapper`。
```java
@Override
public PageInfo<Xxx> list(XxxListAO ao) {if (ao.getPageNo() != null && ao.getPageSize() != null) {PageHelper.startPage(ao.getPageNo(), ao.getPageSize());}QueryWrapper<Xxx> queryWrapper = new QueryWrapper<>();// (MyBatis-Plus 已通过父类中的 @TableLogic 自动处理 logic delete)// TODO: 加入动态条件判断queryWrapper.orderByDesc("id");List<Xxx> list = xxxDao.selectList(queryWrapper);return new PageInfo<>(list);
}
```### 删除与修改重点
- **修改**: 直接使用 Service 或 Dao 的缺省 `updateById`,MyBatis-Plus 会自动应用拦截(过滤逻辑删除的值)。
- **删除**: 直接调用 `deleteById`,因为配置了 `@TableLogic`,框架会自动将这个 DELETE 语句转化成为软删除(`UPDATE table SET is_del = 1 WHERE id = ? AND is_del = 0`)。## 4. 输出确认
在生成这些内容后,向用户简要列举已创建的文件名及其职责,并提醒用户这些代码包含了定制化的 POST 分页查询逻辑,确认无需修改后即可编译运行。
http://www.jsqmd.com/news/617357/

相关文章:

  • 如何彻底禁用Windows Defender?开源工具Defender Control完整指南
  • 写算法口罩印花定位模板,家用DIY,输出:个性口罩,不撞款。
  • 2260基于51单片机的三极管放大倍数测量系统设计(ADC0808)
  • 基于LSTM的卡证序列号识别增强:卡证检测矫正模型进阶应用
  • RaspiBlitz性能优化:提升节点运行效率的7个关键配置
  • 【数据库系统】数据库系统概论——第十六章 数据仓库与联机分析处理技术
  • D3KeyHelper:如何通过智能宏技术解决暗黑3玩家的操作疲劳难题
  • 2026雅思听力备考神器:雅思哥助你轻松突破7分大关 - 品牌2025
  • SRAM与DRAM核心技术对比与应用解析
  • 2261基于51单片机的三模式双机通信系统设计
  • Gemma-3-12B-IT在Keil5嵌入式开发中的辅助应用
  • Spring Boot 4.0正式版GA后72小时内,头部云厂商紧急下架3款旧Agent插件——你的生产集群是否仍在使用已被标记为EOL的Instrumentation库?
  • [特殊字符] 10 个开源项目拼出超级 AI 团队!一句话,Agent 自动组队帮你干活!
  • 金蝶EAS的各种日志说明--客户端日志,服务端日志
  • 3步实现英雄联盟安全换肤:R3nzSkin技术架构与实战指南
  • 源头厂家直供:万能材料拉力试验机的性价比之选 - 品牌推荐大师1
  • Java静态镜像内存优化实战手册(Heap Size从286MB直降至42MB的完整链路)
  • 【MinGW】--- Windows11安装配置 MinGW-w64
  • 写程序蜡烛杯围标镂空,透光氛围感,输出:烛光晚餐/送礼神器。
  • Phi-3-mini-4k-instruct-gguf保姆级教学:Windows/Mac/Linux三平台本地验证方法
  • AMD Ryzen SDT调试工具终极指南:5大场景解锁处理器性能的完整解决方案
  • Windows下OpenClaw安装避坑:SecGPT-14B模型接入全记录
  • OpenClaw小样本学习:为Kimi-VL-A3B-Thinking添加专业领域识别
  • Hunyuan-MT-7B在跨境电商中的应用:商品描述多语言翻译实战
  • 终极Windows安装指南:如何轻松绕过硬件限制安装Windows 11
  • 如何高价回收分期乐万通金券?专业变现攻略全方位解析! - 团团收购物卡回收
  • 终极指南:如何在3分钟内快速上手ComfyUI Manager插件管理
  • 内涵:半监督学习之Temporal Ensembling For Semi-supervised Learning
  • Simulink逻辑与关系运算模块实战:从基础配置到复杂系统建模
  • 3步配置Zotero-GPT:免费AI文献助手提升科研效率300%