RuoYi-Vue-Plus/ruoyi-site/ruoyi-h5/doc/需求.md
2025-11-14 11:29:14 +08:00

4.4 KiB
Raw Blame History

需求总结

根据我们之前的交互,您希望在现有的 Spring Boot 3 项目中实现以下功能:

  1. 创建新的 H5 项目管理模块

    • 不修改现有业务代码
    • 创建独立的表和相关代码
  2. 数据存储架构

    • 使用 MySQL + MongoDB 混合存储
    • MySQL 存储项目元数据(基本信息)
    • MongoDB 存储项目内容(长文本)
    • 通过 content_id 字段关联两个数据源
  3. 项目分组功能

    • 支持多级分组结构
    • 三个一级分组:物料、用途、行业
    • 每个一级分组下有多个二级分组
    • 项目与分组为多对多关系
  4. 时间字段规范

    • 所有时间字段使用 Unix 时间戳(秒级)存储
    • 不使用 datetime 类型
  5. 代码规范要求

    • 使用 Lombok 简化代码
    • 事务一致性保障(使用 @Transactional 注解)
    • Controller 不直接调用 Repository
    • Controller 返回值不使用 Map 类型
    • ID 字段统一命名为 id
  6. 技术实现细节

    • 使用 MyBatis-Plus 作为 ORM 框架
    • 使用 Spring Data MongoDB 访问 MongoDB
    • 提供完整的 CRUD 接口

标准化提示词模板

你是一个经验丰富的 Java 开发工程师,熟悉 Spring Boot 3、MyBatis-Plus 和 MongoDB。我需要在现有的 Spring Boot 3 项目中实现一个新的功能模块,请按照以下要求进行开发:

  1. 项目结构要求

    • 不修改现有业务代码,创建全新的独立模块
    • 使用标准的分层架构Entity/DAO/Service/Controller/VO等
  2. 数据存储架构

    • MySQL 存储元数据MongoDB 存储长文本内容
    • 通过 content_id 字段关联两个数据源
    • 所有时间字段使用 Unix 时间戳(秒级)存储,类型为 bigint
  3. 功能需求

    • 实现完整的 CRUD 接口
    • 支持多级分组管理(一级分组:物料、用途、行业)
    • 项目与分组为多对多关系
  4. 代码规范

    • 使用 Lombok 简化代码(@Data、@EqualsAndHashCode 等)
    • 事务一致性保障(使用 @Transactional 注解)
    • Controller 不直接调用 Repository通过 Service 层访问
    • Controller 返回值不使用 Map 类型,使用具体 VO 类或基本类型
    • ID 字段统一命名为 id不使用冗余前缀
    • 所有类和方法需要适当的 Swagger 注解
  5. 具体实现要求

    • 创建完整的 Entity、DAO、Service、Controller 和 VO 类
    • 提供对应的数据库建表 SQL 脚本
    • 确保编译无错误,代码符合规范

请按照以上要求生成相应的代码和文档。

第二波需求

工作完成的非常好,继续开发下个需求,完善 字体的实现目前只有个FontController文件请继续完善接口定义好表结构定义好的表结构记得给我审核一下字体要提供这些功能。 1、批量上传字体。 2、分页查询字体包含两种类型字体中文英文。 3、根据fontFamily字体名称批量查询字体字体名称唯一属性。 下面为字体的JSON结构请设计表和代码你看看是存在mysql还是mongo比较好 { "id": "33912837", "source": "GD", "name": "OpenSans-Bold", "preview": { "url": "https://st0.dancf.com/csc/49/fonts/0/20200809-105104-c105.svg", "width": 490, "height": 80, "partial_video": "", "video": "", "hex": "", "duration": 0 }, "price": null, "items": [], "content": { "family": "Open Sans", "alias": "Open Sans Bold", "style": "normal", "weight": 700, "woff": "https://gd-filems.dancf.com/gaoding/editor/20240116-211715-jaeea.woff", "ttf": "https://gd-filems.dancf.com/gaoding/editor/20240116-211715-kiige.ttf", "lang": "en", "origin_file": { "size": 104120, "url": "https://st0.dancf.com/csc/49/fonts/0/20200809-105059-cc06.ttf" }, "woff_size": 56092, "ttf_size": 92500, "meta_data": { "ascent": 2189, "descent": -600, "emSize": 2048, "typoAscent": 2189, "typoDescent": -600, "typoLineGap": 0, "winAscent": 2189, "winDescent": 600, "capitalHeight": 1462, "underlinePosition": -154, "underlineThickness": 102, "fsType": 0, "hheadAscent": 2189, "hheadDescent": -600, "hheadLineGap": 0, "xheight": 1118 } }, "content_id": null, "content_url": "https://gd-filems.dancf.com/xi19e5/xi19e5/0/32d51454-451e-4b80-a8b2-138fa5d185e750.json?auth_key=1763092800-10a7b6d1071b4787b7225660db3f71a1-0-8c6b2cbd6b9aae7a0943fd4190e16094", "lang": "en", "alias": "Open Sans Bold", "authorization_id": 26, "user_over_role": 0, "sale_type": 0 }