R-MAT 创作者私有素材库(六类 sprite/character/effect/scene/ui/music,冻结同枚举):
- StudioMaterialDO + game_material 表(V24.0.0,归属 creator_user_id,idx_owner_cat)
- 3 端点 /app-api/studio/asset/{upload,browse,select}(studio 领域端点,需登录用户)
- upload:六类校验 + 大小≤10MB + 每类目 MIME 白名单 → composes huijing-module-infra
FileApi.createFile 存字节 → provider 包装 ref → 落库 → 返回冻结 StudioAssetContextItem
- browse:owner-isolated 分页(强制 eq creator_user_id),可选 category 过滤
- select-into-draft:把本人素材 ref 写入草稿会话 assetContext(JsonUtils 序列化,按 ref 去重合并)
- MaterialProvider SPI + 工厂 + mmx-cli mock(graceful degrade,仿 AdProviderFactory)
- 错误码段 1-112-005-***(七个);studio.yaml 加 3 端点 + schemas(additive)
验证:mvn -pl game-module-studio-server,-api -am test 全绿
(StudioMaterialServiceImplTest 17/17,studio 模块 61/61)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
110 lines
4.3 KiB
XML
110 lines
4.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||
<parent>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>game-module-studio</artifactId>
|
||
<version>${revision}</version>
|
||
</parent>
|
||
<modelVersion>4.0.0</modelVersion>
|
||
<artifactId>game-module-studio-server</artifactId>
|
||
<packaging>jar</packaging>
|
||
|
||
<name>${project.artifactId}</name>
|
||
<description>
|
||
studio 模块业务实现:controller(app) / service / dal(DO·Mapper) / convert。
|
||
编排调 project-api(createProject 建草稿) + aigc-api(submitGenerate/getTask/retryTask)。
|
||
被 huijing-server 聚合启动(随单体一起加载,无需独立 bootstrap)。
|
||
</description>
|
||
|
||
<dependencies>
|
||
<!-- Spring Cloud 基础环境 -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-spring-boot-starter-env</artifactId>
|
||
</dependency>
|
||
|
||
<!-- 本模块对外契约层(错误码/枚举) -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>game-module-studio-api</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
|
||
<!-- 编排依赖 project 的 -api:createDraft 调 createProject 建游戏拿 gameId(跨模块只依赖对方 -api,禁依赖 -server) -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>game-module-project-api</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
|
||
<!-- 编排依赖 aigc 的 -api:generate/getTask/regenerate 委托 AigcApi(跨模块只依赖对方 -api,禁依赖 -server) -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>game-module-aigc-api</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
|
||
<!-- 依赖 system 的 -api:建草稿/提交生成入口校验创作者白名单(PlayerApi#validateCreator,2026-06-10 鉴权件 §6.3,拍板4 可信边界) -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-module-system-api</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
|
||
<!-- 依赖 infra 的 -api:R-MAT 素材上传 composes FileApi 存字节(不重造上传;跨模块只依赖对方 -api,禁依赖 -server) -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-module-infra-api</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
|
||
<!-- 业务组件:数据权限 + 多租户(DO 继承 TenantBaseDO) -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-spring-boot-starter-biz-data-permission</artifactId>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-spring-boot-starter-biz-tenant</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Web + 安全:@RestController / 当前登录用户 -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-spring-boot-starter-security</artifactId>
|
||
</dependency>
|
||
|
||
<!-- DB:MyBatis Plus(BaseMapperX / LambdaQueryWrapperX / TenantBaseDO) -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-spring-boot-starter-mybatis</artifactId>
|
||
</dependency>
|
||
|
||
<!-- 缓存 -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-spring-boot-starter-redis</artifactId>
|
||
</dependency>
|
||
|
||
<!-- RPC 远程调用(调 project 的 ProjectApi + aigc 的 AigcApi 做编排) -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-spring-boot-starter-rpc</artifactId>
|
||
</dependency>
|
||
|
||
<!-- 测试 -->
|
||
<dependency>
|
||
<groupId>com.wanxiang</groupId>
|
||
<artifactId>huijing-spring-boot-starter-test</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
</dependencies>
|
||
|
||
<build>
|
||
<finalName>${project.artifactId}</finalName>
|
||
</build>
|
||
|
||
</project>
|