145 Commits

Author SHA1 Message Date
2e7004f9dc 取消监听所有消息队列 2026-02-05 15:16:04 +08:00
497421e7fe TO DEV 2026-01-27 10:15:36 +08:00
891527426c Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev/3.1_release_merge
# Conflicts:
#	src/main/java/com/ai/da/service/impl/DesignServiceImpl.java
2026-01-26 14:49:38 +08:00
litianxiang
8f0d0953b2 Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev/3.1_release_merge 2026-01-26 11:15:38 +08:00
f5c3621a5d bugfix: design like 2026-01-23 22:45:40 +08:00
litianxiang
9a1a0045e0 fix:like报错 2026-01-23 22:40:30 +08:00
6223c8e994 brandDNA 2026-01-23 22:25:01 +08:00
67bbee49fd Merge branch 'dev/3.1_release_merge' into release/3.1 2026-01-23 21:20:26 +08:00
ad62ceb32a Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-23 21:02:04 +08:00
082afe9e94 gradiant 置空 2026-01-23 20:57:48 +08:00
49288c3a31 TO Prod 2026-01-23 16:10:55 +08:00
81624e36db Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev/3.1_release_merge 2026-01-23 15:12:15 +08:00
a526b122d1 Merge branch 'release/3.1' into dev/3.1_release_merge 2026-01-23 15:11:45 +08:00
litianxiang
d882b2e817 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2026-01-23 15:05:22 +08:00
litianxiang
ebf6427d42 fix:用户特征存入逻辑错误 2026-01-23 15:04:59 +08:00
77fe03d361 Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-23 11:46:31 +08:00
7a44d67dbf BUGFIX: 系统消息发布 广播时消息数量错误 2026-01-23 11:46:08 +08:00
55ce2c6c7e Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-23 10:54:35 +08:00
a426caaca3 BUGFIX: 系统消息发布 2026-01-23 10:54:03 +08:00
7cb7ce2836 Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-22 16:56:11 +08:00
8e075f1da4 BUGFIX: 通过hsv批量获取潘通信息,替换rgb 2026-01-22 16:55:00 +08:00
litianxiang
0f0fde2a3e Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2026-01-22 14:28:37 +08:00
litianxiang
8c6389a1f6 删除不用的字段 2026-01-22 14:28:10 +08:00
652f82b6a4 Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-22 13:56:44 +08:00
7ca2528dcf BUGFIX: design后未存储undivided layers 2026-01-22 13:56:07 +08:00
litianxiang
a7800913d2 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2026-01-22 13:51:42 +08:00
litianxiang
1eaec64ff4 fix:GlobalAward读取配置错误 2026-01-22 13:51:13 +08:00
e603952332 Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-22 11:37:25 +08:00
2bc8b8ef96 BUGFIX: single design的渐变色未存储 2026-01-22 11:36:43 +08:00
0ce968b919 BUGFIX: 用户登录时的有效期验证异常抛出导致事务回滚,用户信息修改失败 2026-01-22 10:37:23 +08:00
litianxiang
dfc9ae4db2 GlobalAward站内信url修改 2026-01-21 16:50:01 +08:00
litianxiang
a3505c6d95 GlobalAward站内信url修改 2026-01-21 15:09:45 +08:00
litianxiang
6db0afd515 GlobalAward保存成功发送站内信,根据url可跳转且召回已填写资料 2026-01-21 14:59:41 +08:00
litianxiang
b1e6183dd1 GlobalAward接口token验证,id更换为uuid 2026-01-21 14:34:43 +08:00
30d08356c0 Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-21 14:14:17 +08:00
64cc29f456 TASK:Global Award邮箱验证 2026-01-21 14:13:33 +08:00
litianxiang
2b3e12a11c GlobalAward MINIO配置 2026-01-21 11:38:38 +08:00
litianxiang
d4a4724f61 GlobalAward拦截器配置 2026-01-21 10:35:22 +08:00
litianxiang
ba6e2bd24c GlobalAward拦截器配置 2026-01-21 10:21:17 +08:00
litianxiang
a38895b028 GlobalAward拦截器配置 2026-01-21 10:13:11 +08:00
litianxiang
69a95e66ca GlobalAward上传文件 2026-01-20 16:37:46 +08:00
litianxiang
40518cab37 Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev-ltx
# Conflicts:
#	src/main/java/com/ai/da/controller/GlobalAwardController.java
#	src/main/java/com/ai/da/model/dto/ContestantDTO.java
#	src/main/resources/application-dev.properties
#	src/main/resources/application-prod.properties
2026-01-20 16:20:41 +08:00
litianxiang
46d61cb73f GlobalAward上传文件 2026-01-20 15:58:27 +08:00
08f20fd1fe Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-20 13:24:49 +08:00
d7edc166b3 TASK:Global Award邮箱验证 2026-01-20 13:14:50 +08:00
litianxiang
79ad02f66b fix:style为all时,like报错 2026-01-19 16:50:14 +08:00
litianxiang
5e261b55c7 Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev/3.1_release_merge 2026-01-19 16:41:02 +08:00
litianxiang
bc92fcbaf4 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2026-01-19 16:40:58 +08:00
litianxiang
c6aec917c2 fix:style为all时,like报错 2026-01-19 16:40:28 +08:00
6bc500e78f Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-16 17:17:25 +08:00
4c43b98c02 TASK:DB中PartialDesign为空时,取undivided_layer作为merge_image_path 2026-01-16 17:17:04 +08:00
litianxiang
5bae785a9f Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2026-01-16 16:37:49 +08:00
litianxiang
7b619aa4cb GlobalAward首次提交 2026-01-16 16:37:03 +08:00
c93ad6daa9 Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-16 16:24:38 +08:00
0047be7a03 BUGFIX:PartialDesign传空时,先从数据库获取原数据 2026-01-16 16:23:56 +08:00
4ef209cfd4 Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-16 14:28:27 +08:00
a19751b4b7 BUGFIX:designType参数校验;print数据验空 2026-01-16 14:28:04 +08:00
litianxiang
bb0e5a4263 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2026-01-16 11:04:52 +08:00
litianxiang
9e9df5367d fix:接口SegAnything返回值处理 2026-01-16 11:04:18 +08:00
ba8a2c52de Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev/3.1_release_merge 2026-01-15 17:36:37 +08:00
39d8c7efcf TASK:取消存储/返回UndividedLayer和UndividedLayerWithSinglePrint字段 2026-01-15 17:35:55 +08:00
litianxiang
401910901a Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge
# Conflicts:
#	src/main/java/com/ai/da/python/PythonService.java
2026-01-15 17:21:30 +08:00
litianxiang
3f5ce6e0e7 接口SegAnything返回值处理 2026-01-15 17:17:08 +08:00
0787025151 TASK:merge 模式返回mask 2026-01-15 14:07:18 +08:00
08b26872ff Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2026-01-14 14:28:05 +08:00
5bbf1326bb TASK:design single部分cv操作前置,新增merge | default两种designType 2026-01-14 14:26:47 +08:00
litianxiang
c5e27cd220 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2026-01-14 13:55:01 +08:00
litianxiang
112e9c3bc9 对接前端和py接口SegAnything 2026-01-14 13:31:33 +08:00
litianxiang
ce95cb5080 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2026-01-12 14:42:02 +08:00
litianxiang
71211bfbc3 修改存入userPreference表的时间方式 2026-01-12 14:41:24 +08:00
72ad977dcb BUGFIX: 获取近期新用户图表数据允许userType为null 2026-01-12 11:55:43 +08:00
litianxiang
6400e79929 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2026-01-09 14:49:25 +08:00
litianxiang
dd8c72f7d7 切换用户sketch点赞记录存储方式;新增镜像和角度字段,存储前端需要的object 2026-01-09 10:14:46 +08:00
13151b65f5 TASK:限制同一个管理员不允许绑定不同组织的订阅计划 2026-01-07 15:24:38 +08:00
9f523d5953 TASK:分页获取所有用户id,添加按邮箱模糊查询 2026-01-07 11:26:39 +08:00
4879cfeb60 BUGFIX: 2026-01-07 09:53:58 +08:00
9e252b16ef BUGFIX: 2026-01-06 17:36:12 +08:00
e64add14af BUGFIX:更新订阅计划时根据业务需要对参数进行判断并在需要时更新管理员信息 2026-01-06 17:29:33 +08:00
3beb27e491 TASK:获取用户id信息做分页;订阅计划添加国家或地区字段 2026-01-06 09:56:21 +08:00
501032ef17 TASK:试用用户试用期延长至7天 2025-12-31 13:15:13 +08:00
litianxiang
cb25bdd2e0 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2025-12-29 14:57:41 +08:00
litianxiang
7a9fb0213b 适配新推荐接口 2025-12-29 13:49:31 +08:00
cd767dce6f BUGFIX:新用户不能获取历史系统通知 2025-12-24 11:47:11 +08:00
bf95b85841 to dev 2025-12-23 16:28:07 +08:00
9e58bd9e7d Merge branch 'release/3.1' into dev/3.1_release_merge
# Conflicts:
#	src/main/java/com/ai/da/common/utils/SendRequestUtil.java
2025-12-23 16:16:30 +08:00
d0ec5c5c26 BUGFIX:邮件发送失败 2025-12-23 16:03:48 +08:00
ab8aa5ea5c Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2025-12-23 14:07:53 +08:00
aefcd2fdb0 BUGFIX:邮件发送失败 2025-12-23 14:07:26 +08:00
e74eab1070 BUGFIX:邮件发送失败 2025-12-23 14:05:20 +08:00
litianxiang
34da437a26 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2025-12-22 11:36:23 +08:00
litianxiang
f84935d0bd 登录token存入redis 2025-12-22 11:35:38 +08:00
35edaa0f27 CONFIG: 拦截器配置 2025-12-19 21:43:02 +08:00
f43099e19e CONFIG: redis 配置修改 2025-12-19 21:21:21 +08:00
8079877734 CONFIG: TO DEV 2025-12-19 17:40:37 +08:00
ef686e38ac CONFIG: TO PROD 2025-12-19 17:33:51 +08:00
100019d2a4 Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev/3.1_release_merge 2025-12-19 16:00:55 +08:00
litianxiang
12af237d76 Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev/3.1_release_merge 2025-12-19 15:47:36 +08:00
litianxiang
44dbbb2a4b 更换Moodboard和Printboard提示词 2025-12-19 15:47:07 +08:00
9f42e153a4 Merge branch 'release/3.1' into dev/3.1_release_merge
# Conflicts:
#	.gitea/workflows/develop_build_manual.yaml
2025-12-19 15:01:32 +08:00
4fa70a1c90 BUGFIX:订阅计划创建不允许指定子账号为管理员 2025-12-18 18:03:03 +08:00
dfb34916e7 BUGFIX:订阅计划与子账号新增 2025-12-18 14:52:12 +08:00
9f7987306c BUGFIX:订阅计划 2025-12-18 13:38:38 +08:00
litianxiang
d3fc70fbf2 fix:edit产品图照成排序问题,恢复原逻辑 2025-12-17 16:08:49 +08:00
litianxiang
17645d17e5 关闭batch MQ监听 2025-12-17 16:02:49 +08:00
litianxiang
258eea5277 edit 产品图失败会导致sort不对试验5 2025-12-17 15:43:26 +08:00
litianxiang
bb1d3bd359 Revert "edit 产品图失败会导致sort不对试验5"
This reverts commit 6a8c87ed95.
2025-12-17 15:41:02 +08:00
litianxiang
6a8c87ed95 edit 产品图失败会导致sort不对试验5 2025-12-17 15:40:47 +08:00
litianxiang
eb3826927d edit 产品图失败会导致sort不对试验4 2025-12-17 15:33:14 +08:00
litianxiang
7720c8c771 edit 产品图失败会导致sort不对试验3 2025-12-17 14:12:20 +08:00
litianxiang
b459148d58 edit 产品图失败会导致sort不对试验2 2025-12-17 13:49:07 +08:00
litianxiang
eadda18d1e Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev/3.1_release_merge 2025-12-17 13:28:12 +08:00
litianxiang
d403df51ec edit 产品图失败会导致sort不对试验 2025-12-17 13:28:04 +08:00
6903b98b60 Merge remote-tracking branch 'origin/dev/3.1_release_merge' into dev/3.1_release_merge 2025-12-17 13:20:34 +08:00
81bf65515c Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2025-12-17 13:19:54 +08:00
8e984eb283 BUGFIX:订阅计划 2025-12-17 13:18:24 +08:00
litianxiang
afc6041570 临时测试修改 2025-12-17 13:10:09 +08:00
bce368248c Merge branch 'dev/dev_xp' into dev/3.1_release_merge 2025-12-16 16:26:27 +08:00
ca7121dcda BUGFIX:订阅计划 2025-12-16 16:24:52 +08:00
litianxiang
9a206f9979 生产环境配置callbackUrl 2025-12-16 14:10:22 +08:00
litianxiang
eb7a46c7e8 fix:callbackUrl 2025-12-16 13:45:21 +08:00
litianxiang
95ef68a784 Merge remote-tracking branch 'origin/dev-ltx' into dev/3.1_release_merge 2025-12-16 13:20:31 +08:00
litianxiang
6429288fd9 dev环境加入design回调配置 2025-12-16 13:16:36 +08:00
c5af194876 BUGFIX 2025-12-16 10:42:31 +08:00
da84e1e4b4 注解修改 2025-12-15 18:39:16 +08:00
95a9c81a1b Merge branch 'dev/dev_xp' into dev/3.1_release_merge
# Conflicts:
#	src/main/java/com/ai/da/model/dto/SubscriptionPlanDTO.java
#	src/main/java/com/ai/da/model/vo/SubscriptionPlanVO.java
2025-12-15 18:34:30 +08:00
81c0d7eeac TASK:订阅计划相关 2025-12-15 18:30:28 +08:00
litianxiang
fbc473735c fix:对没有like的已发布作品进行二创,会不显示原作者名字 2025-12-15 15:41:58 +08:00
litianxiang
9f48a2ce09 fix:升级swagger注解 2025-12-15 13:38:44 +08:00
459c743ce4 CONFIG: 2025-12-11 16:58:24 +08:00
ce3516916d CONFIG: 2025-12-11 16:18:37 +08:00
0692b29065 Merge branch 'dev/dev_xp' into dev/3.1_release_merge
# Conflicts:
#	src/main/java/com/ai/da/controller/AccountController.java
2025-12-11 16:12:41 +08:00
94cafbd10c TASK:flux积分不足,邮件通知 2025-12-11 16:07:14 +08:00
5c2008ec4a TASK:订阅计划,测试修改 2025-12-11 15:26:20 +08:00
7f094265da TASK:新增订阅计划概念 2025-12-11 09:44:25 +08:00
22bc8750c8 Merge branch 'dev-ltx' into dev/dev_xp 2025-12-03 16:53:17 +08:00
6cd42b799a 删除 .gitea/workflows/prod_build_schedule.yaml 2025-12-01 10:22:29 +08:00
6e1ed7f9b8 删除 .gitea/workflows/prod_build_manual.yaml 2025-12-01 10:22:25 +08:00
b7be16738b 删除 .gitea/workflows/develop_build_manual.yaml 2025-12-01 10:22:21 +08:00
6da5e91ec1 删除 .gitea/workflows/develop_build_commit.yaml 2025-12-01 10:22:17 +08:00
a710fdd432 删除 docker-compose.yml 2025-11-30 11:01:12 +08:00
d598f53d3c Merge branch 'dev/3.1_release_merge' into release/3.1
# Conflicts:
#	.gitea/workflows/prod_build_schedule.yaml
2025-11-28 17:16:55 +08:00
96170a9956 更新 .gitea/workflows/prod_build_manual.yaml 2025-11-28 15:25:50 +08:00
8205fb5290 上传文件至「.gitea/workflows」 2025-11-28 15:25:41 +08:00
fcbe4762b3 TO prod 2025-11-27 17:38:24 +08:00
e750adcc94 TO prod 2025-11-27 17:35:47 +08:00
228 changed files with 10728 additions and 6588 deletions

View File

@@ -559,7 +559,7 @@ public class GenerateConsumer {
log.info("============ProcessPoseTransformResult End listening=========="); log.info("============ProcessPoseTransformResult End listening==========");
} }
@RabbitListener(queues = "#{rabbitMQProperties.queues.generate}") /*@RabbitListener(queues = "#{rabbitMQProperties.queues.generate}")
@RabbitHandler @RabbitHandler
public void generateConsumer1(Message msg, Channel channel) { public void generateConsumer1(Message msg, Channel channel) {
generate(msg, channel, "consumer 1"); generate(msg, channel, "consumer 1");
@@ -635,27 +635,27 @@ public class GenerateConsumer {
@RabbitHandler @RabbitHandler
public void getPoseTransformationResult(Message msg, Channel channel) { public void getPoseTransformationResult(Message msg, Channel channel) {
processPoseTransformResult(msg, channel); processPoseTransformResult(msg, channel);
} }*/
@RabbitListener(queues = "#{rabbitMQProperties.queues.designBatch}") // @RabbitListener(queues = "#{rabbitMQProperties.queues.designBatch}")
@RabbitHandler // @RabbitHandler
public void getDesignBatchResult(Message msg, Channel channel) { // public void getDesignBatchResult(Message msg, Channel channel) {
processDesignBatchResult(msg, channel); // processDesignBatchResult(msg, channel);
} // }
@RabbitListener(queues = "#{rabbitMQProperties.queues.toProductImageBatch}") // @RabbitListener(queues = "#{rabbitMQProperties.queues.toProductImageBatch}")
@RabbitHandler // @RabbitHandler
public void getToProductImageBatchResult(Message msg, Channel channel) { // public void getToProductImageBatchResult(Message msg, Channel channel) {
processToProductImageBatchResult(msg, channel); // processToProductImageBatchResult(msg, channel);
} // }
//
@RabbitListener(queues = "#{rabbitMQProperties.queues.relightBatch}") // @RabbitListener(queues = "#{rabbitMQProperties.queues.relightBatch}")
@RabbitHandler // @RabbitHandler
public void getRelightBatchResult(Message msg, Channel channel) { // public void getRelightBatchResult(Message msg, Channel channel) {
processRelightBatchResult(msg, channel); // processRelightBatchResult(msg, channel);
} // }
//
@RabbitListener(queues = "#{rabbitMQProperties.queues.poseTransformBatch}") // @RabbitListener(queues = "#{rabbitMQProperties.queues.poseTransformBatch}")
@RabbitHandler // @RabbitHandler
public void getPoseTransformBatchResult(Message msg, Channel channel) { // public void getPoseTransformBatchResult(Message msg, Channel channel) {
processPoseTransformBatchResult(msg, channel); // processPoseTransformBatchResult(msg, channel);
} // }
} }

View File

@@ -308,7 +308,7 @@ public class MyTaskScheduler {
private MinioUtil minioUtil; private MinioUtil minioUtil;
@Resource @Resource
private UserLikeService userLikeService; private UserLikeService userLikeService;
public void clearMinio() { /* public void clearMinio() {
List<CollectionElement> collectionElements = collectionElementMapper.selectDeleteList(); List<CollectionElement> collectionElements = collectionElementMapper.selectDeleteList();
for (CollectionElement collectionElement : collectionElements) { for (CollectionElement collectionElement : collectionElements) {
String url = collectionElement.getUrl(); String url = collectionElement.getUrl();
@@ -472,7 +472,7 @@ public class MyTaskScheduler {
// } // }
// String preSignedUrl = minioUtil.getPreSignedUrl("aida-clothing/image/image_1698374859.3031476.png", 10000); // String preSignedUrl = minioUtil.getPreSignedUrl("aida-clothing/image/image_1698374859.3031476.png", 10000);
// System.out.println(preSignedUrl); // System.out.println(preSignedUrl);
} }*/
@Resource @Resource
private AttributeRetrievalMapper attributeRetrievalMapper; private AttributeRetrievalMapper attributeRetrievalMapper;

View File

@@ -33,7 +33,11 @@ public enum AuthenticationOperationTypeEnum {
*/ */
UPDATE_USERINFO, UPDATE_USERINFO,
REGISTER; REGISTER,
/**
* Global_Award 活动验证
*/
GLOBAL_AWARD;
public static AuthenticationOperationTypeEnum of(String name) { public static AuthenticationOperationTypeEnum of(String name) {
return Stream.of(AuthenticationOperationTypeEnum.values()).filter(v -> v.name().equals(name)).findFirst().orElse(null); return Stream.of(AuthenticationOperationTypeEnum.values()).filter(v -> v.name().equals(name)).findFirst().orElse(null);

View File

@@ -1,8 +1,7 @@
package com.ai.da.common.response; package com.ai.da.common.response;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -16,17 +15,17 @@ import java.util.List;
*/ */
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@ApiModel("分页响应结果") @Schema(description = "分页响应结果")
public class PageBaseResponse<T> { public class PageBaseResponse<T> {
@ApiModelProperty("页码") @Schema(description = "页码")
private long page; private long page;
@ApiModelProperty("每页数量") @Schema(description = "每页数量")
private long size; private long size;
@ApiModelProperty("总页数") @Schema(description = "总页数")
private long pages; private long pages;
@ApiModelProperty("总条数") @Schema(description = "总条数")
private long total; private long total;
@ApiModelProperty("结果集") @Schema(description = "结果集")
private List<T> content; private List<T> content;

View File

@@ -1,8 +1,7 @@
package com.ai.da.common.response; package com.ai.da.common.response;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -16,18 +15,18 @@ import java.util.List;
*/ */
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@ApiModel("分页响应结果") @Schema(description = "分页响应结果")
public class PageResponse<T> extends Response<List<T>> { public class PageResponse<T> extends Response<List<T>> {
@ApiModelProperty("页码") @Schema(description = "页码")
private long page; private long page;
@ApiModelProperty("每页数量") @Schema(description = "每页数量")
private long size; private long size;
@ApiModelProperty("总页数") @Schema(description = "总页数")
private long pages; private long pages;
@ApiModelProperty("总条数") @Schema(description = "总条数")
private long total; private long total;
@ApiModelProperty("结果集") @Schema(description = "结果集")
private List<T> content; private List<T> content;

View File

@@ -1,7 +1,6 @@
package com.ai.da.common.response; package com.ai.da.common.response;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -17,14 +16,14 @@ import java.io.Serializable;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@ApiModel("响应结果") @Schema(description = "响应结果")
public class Response<T> implements Serializable { public class Response<T> implements Serializable {
@ApiModelProperty("响应状态码 0成功 -1失败") @Schema(description = "响应状态码 0成功 -1失败")
private int errCode; private int errCode;
@ApiModelProperty("提示消息") @Schema(description = "提示消息")
private String errMsg; private String errMsg;
@ApiModelProperty("数据结果") @Schema(description = "数据结果")
private T data; private T data;
public static <T> Response<T> success() { public static <T> Response<T> success() {

View File

@@ -1,6 +1,6 @@
package com.ai.da.common.response; package com.ai.da.common.response;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -8,7 +8,7 @@ import java.math.BigDecimal;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@ApiModel("交易记录分页响应结果") @Schema(description = "交易记录分页响应结果")
public class TransactionPageResponse<T> extends PageBaseResponse<T> { public class TransactionPageResponse<T> extends PageBaseResponse<T> {
private BigDecimal totalAmount; private BigDecimal totalAmount;

View File

@@ -6,6 +6,7 @@ import com.ai.da.common.context.UserContext;
import com.ai.da.common.security.config.SecurityProperties; import com.ai.da.common.security.config.SecurityProperties;
import com.ai.da.common.security.jwt.JWTTokenHelper; import com.ai.da.common.security.jwt.JWTTokenHelper;
import com.ai.da.common.utils.LocalCacheUtils; import com.ai.da.common.utils.LocalCacheUtils;
import com.ai.da.common.utils.RedisUtil;
import com.ai.da.common.utils.MultiReadHttpServletRequest; import com.ai.da.common.utils.MultiReadHttpServletRequest;
import com.ai.da.common.utils.MultiReadHttpServletResponse; import com.ai.da.common.utils.MultiReadHttpServletResponse;
import com.ai.da.common.utils.RequestInfoUtil; import com.ai.da.common.utils.RequestInfoUtil;
@@ -40,6 +41,8 @@ public class AuthenticationFilter extends OncePerRequestFilter {
private JWTTokenHelper jwtTokenHelper; private JWTTokenHelper jwtTokenHelper;
@Resource @Resource
private SecurityProperties properties; private SecurityProperties properties;
@Resource
private RedisUtil redisUtil;
private static final List<String> FILTER_URL = private static final List<String> FILTER_URL =
Arrays.asList("/favicon.ico", "/doc.html", "/swagger-ui.html", Arrays.asList("/favicon.ico", "/doc.html", "/swagger-ui.html",
@@ -56,7 +59,11 @@ public class AuthenticationFilter extends OncePerRequestFilter {
"/api/account/designWorksRegister","/api/account/questionnaire","/api/stripe/trade/notify", "/api/account/designWorksRegister","/api/account/questionnaire","/api/stripe/trade/notify",
"/notification","/api/account/activateNewEmail","/api/third/party/auth/google_callback","/api/third/party/parseGoogleCredential","/api/third/party/receiveDesignResults","/api/third/party/parseWeChatCode","/api/third/party/receiveDesignParams" "/notification","/api/account/activateNewEmail","/api/third/party/auth/google_callback","/api/third/party/parseGoogleCredential","/api/third/party/receiveDesignResults","/api/third/party/parseWeChatCode","/api/third/party/receiveDesignParams"
, "/api/account/schoolLogin", "/api/account/enterpriseLogin", "/api/account/organizationNameSearch", , "/api/account/schoolLogin", "/api/account/enterpriseLogin", "/api/account/organizationNameSearch",
"/api/llm/stream" "/api/llm/stream",
//GlobalAwardController
"/api/global-award/uploads/pdf/init", "/api/global-award/uploads/pdf/chunk", "/api/global-award/uploads/pdf/complete", "/api/global-award/uploads/pdf/status",
"/api/global-award/uploads/video/init", "/api/global-award/uploads/video/chunk", "/api/global-award/uploads/video/complete", "/api/global-award/uploads/video/status",
"/api/global-award/contestants/save", "/api/global-award/contestants/by-email", "/api/global-award/checkEmail", "/api/global-award/checkCode"
); );
@Override @Override
@@ -132,12 +139,19 @@ public class AuthenticationFilter extends OncePerRequestFilter {
UserContext.delete(); UserContext.delete();
//存取用户信息到缓存 //存取用户信息到缓存
UserContext.setUserHolder(principal); UserContext.setUserHolder(principal);
//校验token // 校验 token:先查本地缓存,再查 Redis保证服务重启后仍然有效
String cacheToken = LocalCacheUtils.getTokenCache(String.valueOf(principal.getId())); String userIdStr = String.valueOf(principal.getId());
String cacheToken = LocalCacheUtils.getTokenCache(userIdStr);
if(StringUtils.isEmpty(cacheToken)){ if (StringUtils.isEmpty(cacheToken)) {
// 本地缓存为空时,尝试从 Redis 读取
cacheToken = redisUtil.getLoginToken(principal.getId());
if (StringUtils.isEmpty(cacheToken)) {
// throw new RuntimeException("TOKEN已过期请重新登录"); // throw new RuntimeException("TOKEN已过期请重新登录");
throw new TokenMissingOrExpiredException("TOKEN已过期请重新登录(local cache empty)"); throw new TokenMissingOrExpiredException("TOKEN已过期请重新登录(cache & redis empty)");
}
// 将 Redis 中的 token 回填到本地缓存,减少后续 Redis 访问
LocalCacheUtils.setTokenCache(userIdStr, cacheToken);
} }
if(!cacheToken.equals(jwtToken) ){ if(!cacheToken.equals(jwtToken) ){
// throw new RuntimeException("TOKEN已过期请重新登录"); // throw new RuntimeException("TOKEN已过期请重新登录");

View File

@@ -3,6 +3,7 @@ package com.ai.da.common.task;
import com.ai.da.common.utils.RedisUtil; import com.ai.da.common.utils.RedisUtil;
import com.ai.da.mapper.primary.entity.Account; import com.ai.da.mapper.primary.entity.Account;
import com.ai.da.service.AccountService; import com.ai.da.service.AccountService;
import com.ai.da.service.SubscriptionPlanService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -18,6 +19,8 @@ public class AccountTask {
private AccountService accountService; private AccountService accountService;
@Resource @Resource
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Resource
private SubscriptionPlanService subscriptionPlanService;
/** /**
* 每周日晚上刷新 年付用户、月付用户的积分 * 每周日晚上刷新 年付用户、月付用户的积分
@@ -37,8 +40,8 @@ public class AccountTask {
accountService.extendValidityForCC(); accountService.extendValidityForCC();
} }
// 每天凌晨0点执行一次 // 每天凌晨0点执行一次 目前已没有角色类型为4的用户
@Scheduled(cron = "0 0 0 * * ?") /*@Scheduled(cron = "0 0 0 * * ?")
public void cancelActivityBenefits() { public void cancelActivityBenefits() {
// 1、查询当前所有参与了活动且过期的用户 // 1、查询当前所有参与了活动且过期的用户
List<Account> accountList = accountService.getExpiredUserBySystemUser(4); List<Account> accountList = accountService.getExpiredUserBySystemUser(4);
@@ -48,7 +51,7 @@ public class AccountTask {
log.info("参与活动的用户{} : {} 于 {} 账号有效期到期,置为游客", account.getId(), account.getUserEmail(), account.getValidEndTime()); log.info("参与活动的用户{} : {} 于 {} 账号有效期到期,置为游客", account.getId(), account.getUserEmail(), account.getValidEndTime());
accountService.toVisitor(account); accountService.toVisitor(account);
} }
} }*/
// 每天检测正式用户到期情况每天凌晨0点执行 // 每天检测正式用户到期情况每天凌晨0点执行
@Scheduled(cron = "0 0 0 * * ?") @Scheduled(cron = "0 0 0 * * ?")
@@ -86,4 +89,14 @@ public class AccountTask {
public void checkEduAdminExpireStatus() { public void checkEduAdminExpireStatus() {
accountService.checkEduAdminExpireStatus(); accountService.checkEduAdminExpireStatus();
} }
@Scheduled(cron = "0 5 0 * * ?")
public void activeSubscriptionPlan() {
subscriptionPlanService.activeSubscriptionPlan(null);
}
@Scheduled(cron = "0 */5 * * * *") // Run every 5 minutes
public void expireSubscription() {
subscriptionPlanService.expireSubscription();
}
} }

View File

@@ -40,7 +40,7 @@ public class SubscriptionReminderTask {
REMINDER_DAYS_CONFIG.put("year", 14); REMINDER_DAYS_CONFIG.put("year", 14);
} }
@Scheduled(cron = "0 0 9 * * ?") // @Scheduled(cron = "0 0 9 * * ?")
public void subscriptionReminder() { public void subscriptionReminder() {
// 获取所有需要通知的订阅 // 获取所有需要通知的订阅
List<SubscriptionInfo> subscriptionInfos = getDueSubscriptions(); List<SubscriptionInfo> subscriptionInfos = getDueSubscriptions();
@@ -97,7 +97,7 @@ public class SubscriptionReminderTask {
return subscriptionInfoMapper.selectList(qw); return subscriptionInfoMapper.selectList(qw);
} }
@Scheduled(cron = "0 0 9 * * ?") // @Scheduled(cron = "0 0 9 * * ?")
public void trialReminder() { public void trialReminder() {
// 今天的 00:00:00 和 23:59:59 // 今天的 00:00:00 和 23:59:59
LocalDateTime startOfDay = LocalDateTime.now().toLocalDate().atStartOfDay(); LocalDateTime startOfDay = LocalDateTime.now().toLocalDate().atStartOfDay();

View File

@@ -41,6 +41,13 @@ public class MinioUtil {
@Autowired @Autowired
private MinioClient minioClient; private MinioClient minioClient;
/**
* 获取MinIO客户端实例
*/
public MinioClient getMinioClient() {
return minioClient;
}
/** /**
* description: 判断bucket是否存在不存在则创建 * description: 判断bucket是否存在不存在则创建
* *

View File

@@ -34,6 +34,11 @@ public class RedisUtil {
private RedisTemplate<String, String> redisTemplate; private RedisTemplate<String, String> redisTemplate;
public final static String FLUX_POLLING_URL = "Flux:"; public final static String FLUX_POLLING_URL = "Flux:";
/**
* 登录 token 在 Redis 中的前缀:
* 最终 key 结构为 login:token:{userId}
*/
public final static String LOGIN_TOKEN_KEY = "login:token:";
public Boolean hasKey(String key){ public Boolean hasKey(String key){
return redisTemplate.hasKey(key); return redisTemplate.hasKey(key);
@@ -186,6 +191,40 @@ public class RedisUtil {
redisTemplate.delete(key); redisTemplate.delete(key);
} }
/**
* 保存登录 token
*
* @param userId 用户 ID
* @param token token 字符串
* @param expireMillis 过期时间(毫秒,通常与 JWT 保持一致)
*/
public void setLoginToken(Long userId, String token, long expireMillis) {
if (expireMillis <= 0) {
// 不设置过期时间,直到手动删除(不推荐)
addToString(LOGIN_TOKEN_KEY + userId, token);
return;
}
long expireSeconds = expireMillis / 1000;
if (expireSeconds <= 0) {
expireSeconds = 1;
}
addToString(LOGIN_TOKEN_KEY + userId, token, expireSeconds);
}
/**
* 获取登录 token
*/
public String getLoginToken(Long userId) {
return getFromString(LOGIN_TOKEN_KEY + userId);
}
/**
* 删除登录 token
*/
public void deleteLoginToken(Long userId) {
removeFromString(LOGIN_TOKEN_KEY + userId);
}
public final static String PORTFOLIO_LIKE_KEY = "portfolio:like:"; public final static String PORTFOLIO_LIKE_KEY = "portfolio:like:";
public void likePost(Long portfolioId, Long userId) { public void likePost(Long portfolioId, Long userId) {

View File

@@ -883,8 +883,8 @@ public class SendEmailUtil {
if (!type.equals("cancel") && !type.equals("fail_new")) { if (!type.equals("cancel") && !type.equals("fail_new")) {
// 返回的resp是一个SendEmailResponse的实例与请求对象对应 // 返回的resp是一个SendEmailResponse的实例与请求对象对应
// SendEmailResponse respUser = client.SendEmail(user); SendEmailResponse respUser = client.SendEmail(user);
log.info("邮件主题:{}发送结果toUser###{}, email:{}", user.getSubject(), /*SendEmailResponse.toJsonString(respUser)*/null, receiverAddress); log.info("邮件主题:{}发送结果toUser###{}, email:{}", user.getSubject(), SendEmailResponse.toJsonString(respUser), receiverAddress);
} }
if (!type.startsWith("reminder")) { if (!type.startsWith("reminder")) {
SendEmailResponse respMerchant = client.SendEmail(merchant); SendEmailResponse respMerchant = client.SendEmail(merchant);
@@ -1024,7 +1024,7 @@ public class SendEmailUtil {
log.info("邮件发送结果res###{}", SendEmailResponse.toJsonString(resp)); log.info("邮件发送结果res###{}", SendEmailResponse.toJsonString(resp));
} catch (TencentCloudSDKException e) { } catch (TencentCloudSDKException e) {
log.info("邮件发送失败###{}", e.toString()); log.info("邮件发送失败###{}", e.toString());
throw new BusinessException("failed.to.send.mail"); // throw new BusinessException("failed.to.send.mail");
} }
} }

View File

@@ -88,7 +88,7 @@ public class SendRequestUtil {
} }
} }
public String sendFluxPost(String url, String requestBodyStr){ /*public String sendFluxPost(String url, String requestBodyStr){
int status; int status;
String body; String body;
try (HttpResponse execute = HttpRequest.post(url) try (HttpResponse execute = HttpRequest.post(url)
@@ -103,9 +103,63 @@ public class SendRequestUtil {
if (status == 200) { if (status == 200) {
return body; return body;
} }
if (status == 402 || status == 403) {
SendEmailUtil.commonExceptionReminder("Flux账户积分不足flux生成任务",
new String[]{"xupei3360@163.com, fangjianliao@aidlab.hk, investigation@aidlab.hk"});
}
} }
log.warn("请求失败,状态码为 {}", status); log.warn("请求失败,状态码为 {}", status);
return null; return null;
}*/
public String sendFluxPost(String url, String requestBodyStr) {
// 尝试两个API key
String[] apiKeys = {"84e8f5d5-b0b3-49aa-b244-ab7ba27e7ae7",
"d447a0ac-2291-4f1c-9a36-f7614c385989"};
boolean[] notified = {false, false}; // 记录是否已发送过不足提醒
for (int i = 0; i < apiKeys.length; i++) {
int status;
String body;
try (HttpResponse execute = HttpRequest.post(url)
.header(Header.CONTENT_TYPE, "application/json")
.header("x-key", apiKeys[i])
.body(requestBodyStr)
.timeout(180000)
.execute()) {
status = execute.getStatus();
body = execute.body();
if (status == 200) {
return body;
}
// 余额不足处理
if (status == 402 || status == 403) {
if (!notified[i]) {
SendEmailUtil.commonExceptionReminder(
"Flux账户积分不足flux生成任务失败。key:" + apiKeys[i],
new String[]{"xupei3360@163.com", "fangjianliao@aidlab.hk", "investigation@aidlab.hk"}
);
notified[i] = true;
}
continue; // 尝试下一个key
}
// 其他错误直接返回null
log.warn("请求失败,状态码为:{}使用key{}", status, apiKeys[i]);
return null;
} catch (Exception e) {
log.error("请求异常使用key{}", apiKeys[i], e);
if (i == apiKeys.length - 1) return null; // 最后一个key也失败则返回null
}
}
log.warn("所有API key均余额不足");
return null;
} }
public String sendPost(String url, String requestBodyStr){ public String sendPost(String url, String requestBodyStr){

View File

@@ -15,16 +15,16 @@ import com.ai.da.model.vo.PersonalHomepageVO;
import com.ai.da.service.AccountService; import com.ai.da.service.AccountService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -139,21 +139,21 @@ public class AccountController {
@Operation(summary = "aws状态检测") @Operation(summary = "aws状态检测")
@GetMapping("/healthy") @GetMapping("/healthy")
@ResponseStatus(HttpStatus.OK) @ResponseStatus(HttpStatus.OK)
public Response<Map<String,Integer>> checkStatus(){ public Response<Map<String, Integer>> checkStatus() {
Map<String,Integer> returnMap = new HashMap<>(); Map<String, Integer> returnMap = new HashMap<>();
returnMap.put("code",200); returnMap.put("code", 200);
return Response.success(returnMap); return Response.success(returnMap);
} }
@Operation(summary = "查询账号到期时间") @Operation(summary = "查询账号到期时间")
@PostMapping("/getExpiredTime") @PostMapping("/getExpiredTime")
public Response<Long> getExpiredTime(){ public Response<Long> getExpiredTime() {
return Response.success(accountService.getExpiredTime()); return Response.success(accountService.getExpiredTime());
} }
@Operation(summary = "免密登录") @Operation(summary = "免密登录")
@PostMapping("/noLoginRequired") @PostMapping("/noLoginRequired")
public Response<AccountLoginVO> noLoginRequired(@RequestBody NoLoginRequiredDTO noLoginRequiredDTO, HttpServletRequest request){ public Response<AccountLoginVO> noLoginRequired(@RequestBody NoLoginRequiredDTO noLoginRequiredDTO, HttpServletRequest request) {
return Response.success(accountService.noLoginRequired(noLoginRequiredDTO, request)); return Response.success(accountService.noLoginRequired(noLoginRequiredDTO, request));
} }
@@ -191,6 +191,7 @@ public class AccountController {
/** /**
* 参与活动 获取福利 * 参与活动 获取福利
*
* @return * @return
*/ */
/* @Operation(summary = "参与活动 获取福利") /* @Operation(summary = "参与活动 获取福利")
@@ -201,7 +202,7 @@ public class AccountController {
@Operation(summary = "将用户账号过期时间设置为过期当天的235959") @Operation(summary = "将用户账号过期时间设置为过期当天的235959")
@GetMapping("/setUserValidToDayEnd") @GetMapping("/setUserValidToDayEnd")
public Response<List<Long>> setUserValidToDayEnd(){ public Response<List<Long>> setUserValidToDayEnd() {
return Response.success(accountService.setUserValidToDayEnd()); return Response.success(accountService.setUserValidToDayEnd());
} }
@@ -223,19 +224,19 @@ public class AccountController {
@Operation(summary = "获取个人主页信息") @Operation(summary = "获取个人主页信息")
@GetMapping("/personalHomepage") @GetMapping("/personalHomepage")
public Response<PersonalHomepageVO> getPersonalHomepage(@RequestParam("id") Long id){ public Response<PersonalHomepageVO> getPersonalHomepage(@RequestParam("id") Long id) {
return Response.success(accountService.getPersonalHomepage(id)); return Response.success(accountService.getPersonalHomepage(id));
} }
@Operation(summary = "getUsernameModifyTimes") @Operation(summary = "getUsernameModifyTimes")
@GetMapping("/getNicknameModifyTimes") @GetMapping("/getNicknameModifyTimes")
public Response<Long> getNicknameModifyTimes(){ public Response<Long> getNicknameModifyTimes() {
return Response.success(accountService.getNicknameModifyTimes()); return Response.success(accountService.getNicknameModifyTimes());
} }
@Operation(summary = "editUserName") @Operation(summary = "editUserName")
@GetMapping("/editUserName") @GetMapping("/editUserName")
public Response<String> editUserName(@RequestParam("newUserName") String newUserName){ public Response<String> editUserName(@RequestParam("newUserName") String newUserName) {
accountService.editUserName(newUserName); accountService.editUserName(newUserName);
return Response.success("success"); return Response.success("success");
} }
@@ -289,7 +290,7 @@ public class AccountController {
@PostMapping("organizationNameSearch") @PostMapping("organizationNameSearch")
@Operation(summary = "组织名模糊查询") @Operation(summary = "组织名模糊查询")
public Response<Set<String>> organizationNameSearch(@RequestParam("type") String type, @RequestParam("name") String name) { public Response<Set<String>> organizationNameSearch(@RequestParam("type") String type, @RequestParam(value = "name", required = false) String name) {
return Response.success(accountService.organizationNameSearch(type, name)); return Response.success(accountService.organizationNameSearch(type, name));
} }

View File

@@ -103,7 +103,7 @@ public class ConvenientInquiryController {
@GetMapping("/recentNewUserChart") @GetMapping("/recentNewUserChart")
public Response<Map<String, Object>> recentNewUserChart(@Parameter(description = "startTime") @RequestParam @Nullable String startTime, public Response<Map<String, Object>> recentNewUserChart(@Parameter(description = "startTime") @RequestParam @Nullable String startTime,
@Parameter(description = "endTime") @RequestParam @Nullable String endTime, @Parameter(description = "endTime") @RequestParam @Nullable String endTime,
@Parameter(description = "userType") @RequestParam Integer userType) { @Parameter(description = "userType") @RequestParam @Nullable Integer userType) {
return Response.success(convenientInquiryService.recentNewUserChart(startTime, endTime, userType)); return Response.success(convenientInquiryService.recentNewUserChart(startTime, endTime, userType));
} }
@@ -179,8 +179,10 @@ public class ConvenientInquiryController {
@Operation(summary = "获取所有用户id") @Operation(summary = "获取所有用户id")
@GetMapping("/getAllUserId") @GetMapping("/getAllUserId")
public Response<List<Map<String, Object>>> getAllUsrIdList() { public Response<IPage<Map<String, Object>>> getAllUserIdList(@Parameter(description = "page") @RequestParam Integer page,
return Response.success(convenientInquiryService.getAllUserIdList()); @Parameter(description = "size") @RequestParam Integer size,
@Parameter(description = "email 模糊查询") @RequestParam(required = false) String email) {
return Response.success(convenientInquiryService.getAllUserIdList(page, size, email));
} }
@Operation(summary = "获取所有交易信息") @Operation(summary = "获取所有交易信息")

View File

@@ -0,0 +1,168 @@
package com.ai.da.controller;
import com.ai.da.common.response.Response;
import com.ai.da.model.dto.*;
import com.ai.da.model.dto.ContestantDTO;
import com.ai.da.model.vo.CheckOTPVO;
import com.ai.da.service.GlobalAwardService;
import com.ai.da.service.upload.UploadService;
import com.ai.da.service.upload.UploadTask;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.Map;
@RestController
@RequestMapping("/api/global-award")
@Api(tags = "全球奖项API", description = "全球奖项大赛管理和文件上传")
public class GlobalAwardController {
@Resource
private GlobalAwardService globalAwardService;
@Resource
private UploadService uploadService;
// @PostMapping("/uploads/pdf")
// public Response<String> uploadPdf(@RequestParam("file") MultipartFile file,
// @RequestParam(value = "email", required = false) String email) throws Exception {
// return Response.success(globalAwardService.uploadPdf(file, email));
// }
//
// @PostMapping("/uploads/video")
// public Response<String> uploadVideo(@RequestParam("file") MultipartFile file,
// @RequestParam(value = "email", required = false) String email) throws Exception {
// return Response.success(globalAwardService.uploadVideo(file, email));
// }
// ===== 新增分片上传接口 =====
// ===== PDF分片上传接口 =====
/** 初始化PDF上传任务 */
@PostMapping("/uploads/pdf/init")
@ApiOperation(value = "初始化PDF上传", notes = "创建新的PDF上传任务并返回上传参数")
public Response<UploadInitResponse> initPdfUpload(@ApiParam(value = "PDF上传初始化请求", required = true) @RequestBody UploadInitRequest request) {
UploadTask uploadTask = uploadService.initPdfUpload(request);
return Response.success(UploadInitResponse.builder()
.uploadId(uploadTask.getUploadId())
.chunkSize(uploadTask.getChunkSize())
.totalChunks(uploadTask.getTotalChunks())
.expiresAt(uploadTask.getExpiresAt())
.build());
}
/** 上传PDF分片 */
@PostMapping("/uploads/pdf/chunk")
@ApiOperation(value = "上传PDF分片", notes = "上传PDF文件的单个分片")
public Response<UploadChunkResponse> uploadPdfChunk(
@ApiParam(value = "PDF文件分片", required = true) @RequestParam("chunk") MultipartFile chunk,
@ApiParam(value = "上传任务ID", required = true) @RequestParam("uploadId") String uploadId,
@ApiParam(value = "分片索引(从0开始)", required = true) @RequestParam("chunkIndex") int chunkIndex,
@ApiParam(value = "分片总数", required = true) @RequestParam("totalChunks") int totalChunks) {
UploadChunkResponse uploadChunkResponse = uploadService.uploadPdfChunk(uploadId, chunk, chunkIndex, totalChunks);
return Response.success(uploadChunkResponse);
}
/** 完成PDF上传 */
@PostMapping("/uploads/pdf/complete")
@ApiOperation(value = "完成PDF上传", notes = "完成PDF上传并合并所有分片")
public Response<UploadCompleteResponse> completePdfUpload(@ApiParam(value = "PDF上传完成请求", required = true) @RequestBody UploadCompleteRequest request) {
UploadCompleteResponse uploadCompleteResponse = uploadService.completePdfUpload(
request.getUploadId(),
request.getFileName(),
request.getTotalSize(),
request.getEmail(),
request.getSecureToken());
return Response.success(uploadCompleteResponse);
}
/** 查询PDF上传状态 */
@GetMapping("/uploads/pdf/status/{uploadId}")
@ApiOperation(value = "查询PDF上传状态", notes = "获取PDF上传任务的当前状态")
public Response<UploadStatusResponse> getPdfUploadStatus(@ApiParam(value = "上传任务ID", required = true) @PathVariable String uploadId) {
UploadStatusResponse pdfUploadStatus = uploadService.getPdfUploadStatus(uploadId);
return Response.success(pdfUploadStatus);
}
// ===== 视频分片上传接口 =====
/** 初始化视频上传任务 */
@PostMapping("/uploads/video/init")
@ApiOperation(value = "初始化视频上传", notes = "创建新的视频上传任务并返回上传参数")
public Response<UploadInitResponse> initVideoUpload(@ApiParam(value = "视频上传初始化请求", required = true) @RequestBody UploadInitRequest request) {
UploadTask uploadTask = uploadService.initVideoUpload(request);
return Response.success(UploadInitResponse.builder()
.uploadId(uploadTask.getUploadId())
.chunkSize(uploadTask.getChunkSize())
.totalChunks(uploadTask.getTotalChunks())
.expiresAt(uploadTask.getExpiresAt())
.build());
}
/** 上传视频分片 */
@PostMapping("/uploads/video/chunk")
@ApiOperation(value = "上传视频分片", notes = "上传视频文件的单个分片")
public Response<UploadChunkResponse> uploadVideoChunk(
@ApiParam(value = "视频文件分片", required = true) @RequestParam("chunk") MultipartFile chunk,
@ApiParam(value = "上传任务ID", required = true) @RequestParam("uploadId") String uploadId,
@ApiParam(value = "分片索引(从0开始)", required = true) @RequestParam("chunkIndex") int chunkIndex,
@ApiParam(value = "分片总数", required = true) @RequestParam("totalChunks") int totalChunks) {
UploadChunkResponse uploadChunkResponse = uploadService.uploadVideoChunk(uploadId, chunk, chunkIndex, totalChunks);
return Response.success(uploadChunkResponse);
}
/** 完成视频上传 */
@PostMapping("/uploads/video/complete")
@ApiOperation(value = "完成视频上传", notes = "完成视频上传并合并所有分片")
public Response<UploadCompleteResponse> completeVideoUpload(@ApiParam(value = "视频上传完成请求", required = true) @RequestBody UploadCompleteRequest request) {
UploadCompleteResponse uploadCompleteResponse = uploadService.completeVideoUpload(
request.getUploadId(),
request.getFileName(),
request.getTotalSize(),
request.getEmail(),
request.getSecureToken());
return Response.success(uploadCompleteResponse);
}
/** 查询视频上传状态 */
@GetMapping("/uploads/video/status/{uploadId}")
@ApiOperation(value = "查询视频上传状态", notes = "获取视频上传任务的当前状态")
public Response<UploadStatusResponse> getVideoUploadStatus(@ApiParam(value = "上传任务ID", required = true) @PathVariable String uploadId) {
UploadStatusResponse videoUploadStatus = uploadService.getVideoUploadStatus(uploadId);
return Response.success(videoUploadStatus);
}
@PostMapping("/contestants/save")
@ApiOperation(value = "保存参赛者信息", notes = "保存或更新参赛者信息及已上传的文件")
public Response<Map<String,Object>> submit(@ApiParam(value = "参赛者信息", required = true) @RequestBody ContestantDTO request) {
return Response.success(globalAwardService.saveContestant(request));
}
@GetMapping("/contestants/{id}")
@ApiOperation(value = "根据id查询参赛者", notes = "根据id获取参赛者信息")
public Response<ContestantDTO> getContestantByID(@ApiParam(value = "参赛者id", required = true) @PathVariable("id") String id) {
ContestantDTO dto = globalAwardService.getContestantByID(id);
return Response.success(dto);
}
@GetMapping("/checkEmail")
public Response<String> checkEmail(@RequestParam("email") String email) {
globalAwardService.checkEmail(email);
return Response.success();
}
@GetMapping("/checkCode")
public Response<CheckOTPVO> checkCode(@RequestParam("email") String email, @RequestParam("code") String code) {
return Response.success(globalAwardService.checkCode(email, code));
}
}

View File

@@ -23,6 +23,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Collections; import java.util.Collections;
@@ -119,4 +122,14 @@ public class PythonController {
return Response.success(superResolutionService.prepareForSR(superResolutionDTO)); return Response.success(superResolutionService.prepareForSR(superResolutionDTO));
} }
@CrossOrigin
@Operation(summary = "Seg Anything 转发接口")
@PostMapping("/segAnything")
public Response<String> segAnything(@RequestBody Map<String, Object> payload) {
// 将前端传来的 Map 转为 fastjson JSONObject 并转发给 python 服务
JSONObject requestJson = (JSONObject) JSON.toJSON(payload);
String url = pythonService.segAnything(requestJson);
return Response.success(url);
}
} }

View File

@@ -70,7 +70,7 @@ public class StripeController {
Long size = redisUtil.getSize(key_1); Long size = redisUtil.getSize(key_1);
// 给我发送邮件 // 给我发送邮件
if (webhookReminderFlag.equals("1") && size == 3){ if (webhookReminderFlag.equals("1") && size == 3){
SendEmailUtil.commonExceptionReminder("Stripe Webhook 回调", new String[]{"xupei3360@163.com"}); SendEmailUtil.commonExceptionReminder("Stripe Webhook 回调处理出现异常", new String[]{"xupei3360@163.com"});
} }
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
} }

View File

@@ -0,0 +1,112 @@
package com.ai.da.controller;
import com.ai.da.common.response.Response;
import com.ai.da.common.task.SubscriptionReminderTask;
import com.ai.da.mapper.primary.entity.SubscriptionPlan;
import com.ai.da.model.dto.SubscriptionPlanDTO;
import com.ai.da.model.dto.SubscriptionPlanPageQuery;
import com.ai.da.model.dto.UpdateSubscriptionPlanDTO;
import com.ai.da.model.vo.SubscriptionPlanVO;
import com.ai.da.service.SubscriptionPlanService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Tag(name = "订阅计划模块")
@Slf4j
@RequiredArgsConstructor
@RestController
@RequestMapping("/api/subscription_plan")
public class SubscriptionPlanController {
private final SubscriptionPlanService subscriptionPlanService;
private final SubscriptionReminderTask subscriptionReminderTask;
@Operation(summary = "创建订阅计划")
@PostMapping("/createPlan")
public Response<String> createPlan(@Valid @RequestBody SubscriptionPlanDTO subscriptionPlanDTO) {
subscriptionPlanService.createPlan(subscriptionPlanDTO);
return Response.success();
}
@Operation(summary = "更新订阅计划")
@PostMapping("/updatePlan")
public Response<String> updatePlan(@Valid @RequestBody UpdateSubscriptionPlanDTO updateDTO) {
subscriptionPlanService.updatePlan(updateDTO);
return Response.success();
}
@Operation(summary = "搜索订阅计划")
@PostMapping("/searchByOrganizationIdAndStatus")
public Response<List<SubscriptionPlan>> searchByOrganizationIdAndStatus(@Valid @RequestBody SubscriptionPlanPageQuery subscriptionPlanPageQuery) {
return Response.success(subscriptionPlanService.searchByOrganizationIdAndStatus(subscriptionPlanPageQuery));
}
@Operation(summary = "分页搜索订阅计划")
@PostMapping("/searchByPage")
public Response<IPage<SubscriptionPlanVO>> searchByPage(@Valid @RequestBody SubscriptionPlanPageQuery subscriptionPlanPageQuery) {
IPage<SubscriptionPlanVO> subscriptionPlanVOIPage = subscriptionPlanService.searchByPage(subscriptionPlanPageQuery);
return Response.success(subscriptionPlanVOIPage);
}
@Operation(summary = "删除订阅计划")
@GetMapping("/deletePlan")
public Response<String> deletePlan(@RequestParam Long id) {
subscriptionPlanService.deletePlan(id);
return Response.success();
}
@Operation(summary = "管理员切换订阅计划")
@GetMapping("/switchSubscriptionPlan")
public Response<String> switchSubscriptionPlan(@RequestParam Long targetSubscriptionPlanId, @RequestParam(required = false) Long adminAccId) {
subscriptionPlanService.switchSubscriptionPlan(targetSubscriptionPlanId, adminAccId);
return Response.success();
}
@Operation(summary = "子账号切换订阅计划")
@GetMapping("/switchSubAccSubscriptionPlan")
public Response<String> switchSubAccSubscriptionPlan(@RequestParam Long targetSubscriptionPlanId, @RequestParam Long subAccId) {
subscriptionPlanService.switchSubAccSubscriptionPlan(targetSubscriptionPlanId, subAccId);
return Response.success();
}
// @Hidden
@Operation(summary = "activeSubscriptionPlan")
@GetMapping("/activeSubscriptionPlan")
public Response<String> activeSubscriptionPlan() {
subscriptionPlanService.activeSubscriptionPlan(null);
return Response.success();
}
// @Hidden
@Operation(summary = "expireSubscription")
@GetMapping("/expireSubscription")
public Response<String> expireSubscription() {
subscriptionPlanService.expireSubscription();
return Response.success();
}
@Operation(summary = "subscriptionReminder")
@GetMapping("/subscriptionReminder")
public Response<String> subscriptionReminder() {
subscriptionReminderTask.subscriptionReminder();
return Response.success();
}
@Operation(summary = "trialReminder")
@GetMapping("/trialReminder")
public Response<String> trialReminder() {
subscriptionReminderTask.trialReminder();
return Response.success();
}
}

View File

@@ -0,0 +1,12 @@
package com.ai.da.mapper.primary;
import com.ai.da.mapper.primary.entity.Contestant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ContestantMapper extends BaseMapper<Contestant> {
}

View File

@@ -4,6 +4,7 @@ import com.ai.da.common.config.mybatis.plus.CommonMapper;
import com.ai.da.mapper.primary.entity.Notification; import com.ai.da.mapper.primary.entity.Notification;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -20,5 +21,5 @@ public interface NotificationMapper extends CommonMapper<Notification> {
void setPersonalNotificationAllRead(String type, Long receiverId, LocalDateTime time); void setPersonalNotificationAllRead(String type, Long receiverId, LocalDateTime time);
List<Long> getUnreadSysNotification(Long accountId); List<Long> getUnreadSysNotification(Long accountId, Date createTime);
} }

View File

@@ -0,0 +1,29 @@
package com.ai.da.mapper.primary;
import com.ai.da.mapper.primary.entity.SubscriptionPlan;
import com.ai.da.model.vo.SubscriptionPlanVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface SubscriptionPlanMapper extends BaseMapper<SubscriptionPlan> {
/**
* 关联查询订阅计划信息(包含管理员邮箱)- 分页
*/
@Select("""
SELECT sp.*,
a.user_email AS adminAccEmail,
a.user_name AS adminAccName,
o.name AS organizationName
FROM t_subscription_plan sp
LEFT JOIN t_account a ON sp.admin_acc_id = a.id
LEFT JOIN t_organization o on sp.organization_id = o.id
${ew.customSqlSegment}
""")
Page<SubscriptionPlanVO> selectWithEmailPage(Page<SubscriptionPlanVO> page,
@Param(Constants.WRAPPER) Wrapper<?> wrapper);
}

View File

@@ -0,0 +1,7 @@
package com.ai.da.mapper.primary;
import com.ai.da.common.config.mybatis.plus.CommonMapper;
import com.ai.da.mapper.primary.entity.UserPreference;
public interface UserPreferenceMapper extends CommonMapper<UserPreference> {
}

View File

@@ -3,6 +3,8 @@ package com.ai.da.mapper.primary;
import com.ai.da.common.config.mybatis.plus.CommonMapper; import com.ai.da.common.config.mybatis.plus.CommonMapper;
import com.ai.da.mapper.primary.entity.WorkspaceRelStyle; import com.ai.da.mapper.primary.entity.WorkspaceRelStyle;
import java.util.List;
/** /**
* Mapper 接口 * Mapper 接口
* *
@@ -11,5 +13,11 @@ import com.ai.da.mapper.primary.entity.WorkspaceRelStyle;
*/ */
public interface WorkspaceRelStyleMapper extends CommonMapper<WorkspaceRelStyle> { public interface WorkspaceRelStyleMapper extends CommonMapper<WorkspaceRelStyle> {
/**
* 根据projectId查询workspaceRelStyles
* @param projectId 项目ID
* @return workspaceRelStyles列表
*/
List<WorkspaceRelStyle> selectByProjectId(Long projectId);
} }

View File

@@ -1,14 +1,14 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@TableName("t_api_generate") @TableName("t_api_generate")
@ApiModel("调用第三方api的所有记录") @Schema(description = "调用第三方api的所有记录")
public class APIGenerate extends BaseEntity{ public class APIGenerate extends BaseEntity{
// 用户id // 用户id
private Long accountId; private Long accountId;

View File

@@ -1,12 +1,13 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.io.Serializable; import java.io.Serializable;
@@ -76,13 +77,13 @@ public class Account implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createDate; private Date createDate;
/** /**
* 更新时间 * 更新时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateDate; private Date updateDate;
private Integer isTrial; private Integer isTrial;
@@ -132,12 +133,36 @@ public class Account implements Serializable {
private String invitationCode; private String invitationCode;
@ApiModelProperty("title") @Schema(description = "title")
private String title; private String title;
@ApiModelProperty("surname") @Schema(description = "surname")
private String surname; private String surname;
@ApiModelProperty("givenName") @Schema(description = "givenName")
private String givenName; private String givenName;
private Long subscriptionPlanId;
// 在类内部定义的枚举
@Getter
public enum SystemRole {
VISITOR("游客", 0),
YEARLY("年付用户", 1),
MONTHLY("月付用户", 2),
TRIAL("试用用户", 3),
EVENT_USER("参加活动获取30天有效期和6000个积分的用户", 4),
ENTERPRISE_ADMIN("企业管理员账号", 5),
ENTERPRISE_SUB("企业子账号", 6),
EDUCATION_ADMIN("学校管理员", 7),
EDUCATION_SUB("学校子账号", 8);
private final String desc;
private final int code;
SystemRole(String desc, int code) {
this.desc = desc;
this.code = code;
}
}
} }

View File

@@ -1,9 +1,9 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -27,16 +27,16 @@ public class Canvas implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty("url") @Schema(description = "url")
private String url; private String url;
@ApiModelProperty("accountId") @Schema(description = "accountId")
private Long accountId; private Long accountId;
@ApiModelProperty("createTime") @Schema(description = "createTime")
private LocalDateTime createTime; private LocalDateTime createTime;
} }

View File

@@ -1,9 +1,9 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -22,22 +22,22 @@ public class ChatMessage implements Serializable {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty("项目ID") @Schema(description = "项目ID")
private Long projectId; private Long projectId;
@ApiModelProperty("角色system/user") @Schema(description = "角色system/user")
private String role; private String role;
@ApiModelProperty("排序") @Schema(description = "排序")
private Integer seq; private Integer seq;
@ApiModelProperty("内容") @Schema(description = "内容")
private String content; private String content;
@ApiModelProperty("用户ID") @Schema(description = "用户ID")
private Long accountId; private Long accountId;
@ApiModelProperty("0对话内容1颜色2图片") @Schema(description = "0对话内容1颜色2图片")
private Integer isImage; private Integer isImage;
/** /**
* 输入 * 输入
@@ -56,6 +56,6 @@ public class ChatMessage implements Serializable {
*/ */
private String totalCost; private String totalCost;
@ApiModelProperty("创建时间") @Schema(description = "创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
} }

View File

@@ -1,9 +1,9 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -20,7 +20,7 @@ public class ChatRobot implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;

View File

@@ -1,9 +1,9 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -18,22 +18,22 @@ import java.time.LocalDateTime;
public class Classification implements Serializable { public class Classification implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty(value = "分类名称") @Schema(description = "分类名称")
private String classificationName; private String classificationName;
@ApiModelProperty(value = "分类类型") @Schema(description = "分类类型")
private String type; private String type;
@ApiModelProperty(value = "父菜单ID") @Schema(description = "父菜单ID")
private Long parentId; private Long parentId;
@ApiModelProperty(value = "用户ID") @Schema(description = "用户ID")
private Long userId; private Long userId;
@ApiModelProperty(value = "创建时间") @Schema(description = "创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间") @Schema(description = "更新时间")
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ApiModelProperty(value = "是否删除1:是0:否") @Schema(description = "是否删除1:是0:否")
private Integer isDeleted = 0; private Integer isDeleted = 0;
} }

View File

@@ -1,9 +1,9 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -18,20 +18,20 @@ import java.time.LocalDateTime;
public class ClassificationRelLibrary implements Serializable { public class ClassificationRelLibrary implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty(value = "分类名称") @Schema(description = "分类名称")
private Long classificationId; private Long classificationId;
@ApiModelProperty(value = "分类名称") @Schema(description = "分类名称")
private Long libraryId; private Long libraryId;
@ApiModelProperty(value = "用户ID") @Schema(description = "用户ID")
private Long userId; private Long userId;
@ApiModelProperty(value = "创建时间") @Schema(description = "创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间") @Schema(description = "更新时间")
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ApiModelProperty(value = "是否删除1:是0:否") @Schema(description = "是否删除1:是0:否")
private Integer isDeleted; private Integer isDeleted;
} }

View File

@@ -1,9 +1,9 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -19,52 +19,52 @@ import java.time.LocalDateTime;
public class CloudTask implements Serializable { public class CloudTask implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty("任务名") @Schema(description = "任务名")
private String name; private String name;
@ApiModelProperty("项目ID") @Schema(description = "项目ID")
private Long projectId; private Long projectId;
@ApiModelProperty("collectionId") @Schema(description = "collectionId")
private Long collectionId; private Long collectionId;
@ApiModelProperty("designId") @Schema(description = "designId")
private Long designId; private Long designId;
@ApiModelProperty("任务类型") @Schema(description = "任务类型")
private String buildType; private String buildType;
@ApiModelProperty("生成数量") @Schema(description = "生成数量")
private Integer nums; private Integer nums;
@ApiModelProperty("完成数量") @Schema(description = "完成数量")
private Integer completedNum; private Integer completedNum;
@ApiModelProperty("消耗积分") @Schema(description = "消耗积分")
private Integer costCredits; private Integer costCredits;
@ApiModelProperty("状态1完成0未完成") @Schema(description = "状态1完成0未完成")
private Integer status; private Integer status;
@ApiModelProperty("批处理ID") @Schema(description = "批处理ID")
private String taskId; private String taskId;
@ApiModelProperty("创建时间") @Schema(description = "创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
@ApiModelProperty("任务开始时间") @Schema(description = "任务开始时间")
private LocalDateTime startTime; private LocalDateTime startTime;
@ApiModelProperty("任务更新时间") @Schema(description = "任务更新时间")
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ApiModelProperty("用户ID") @Schema(description = "用户ID")
private Long accountId; private Long accountId;
@ApiModelProperty("任务序号") @Schema(description = "任务序号")
private Long sequence; private Long sequence;
} }

View File

@@ -0,0 +1,67 @@
package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* submissions 表对应实体 — 参赛选手信息 (Contestant)
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@TableName("contestants")
public class Contestant {
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
private String email;
@TableField("first_name")
private String firstName;
@TableField("last_name")
private String lastName;
private String gender;
private String occupation;
private Integer age;
@TableField("country_region_city")
private String countryRegionCity;
@TableField("phone_number")
private String phoneNumber;
@TableField("design_title")
private String designTitle;
@TableField("design_description")
private String designDescription;
@TableField("pdf_path")
private String pdfPath;
@TableField("video_path")
private String videoPath;
@TableField("created_at")
private LocalDateTime createdAt;
@TableField("updated_at")
private LocalDateTime updatedAt;
}

View File

@@ -62,4 +62,9 @@ public class DesignItemDetailPrint {
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateDate; private LocalDateTime updateDate;
/**
* 对象信息JSON格式
*/
private String object;
} }

View File

@@ -3,50 +3,49 @@ package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Data @Data
@ApiModel(value = "Portfolio对象", description = "作品集") @Schema(description = "作品集")
@TableName("portfolio") @TableName("portfolio")
public class Portfolio implements Serializable { public class Portfolio implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty(value = "collection ID") @Schema(description = "collection ID")
private Long collectionId; private Long collectionId;
private Long projectId; private Long projectId;
@ApiModelProperty(value = "userLikeGroup源") @Schema(description = "userLikeGroup源")
private Long userLikeGroupSourceId; private Long userLikeGroupSourceId;
@ApiModelProperty(value = "作品名称") @Schema(description = "作品名称")
private String portfolioName; private String portfolioName;
@ApiModelProperty(value = "作品描述") @Schema(description = "作品描述")
private String portfolioDes; private String portfolioDes;
@ApiModelProperty(value = "作品类型") @Schema(description = "作品类型")
private String portfolioType; private String portfolioType;
@ApiModelProperty(value = "画布ID") @Schema(description = "画布ID")
private Long canvasId; private Long canvasId;
@ApiModelProperty(value = "封面ID") @Schema(description = "封面ID")
private Long coverId; private Long coverId;
@ApiModelProperty(value = "作品状态1公开0隐藏") @Schema(description = "作品状态1公开0隐藏")
private Integer status; private Integer status;
@ApiModelProperty(value = "是否允许二次创作1允许0不允许") @Schema(description = "是否允许二次创作1允许0不允许")
private Integer openSource; private Integer openSource;
private Integer original; private Integer original;
@@ -57,7 +56,7 @@ public class Portfolio implements Serializable {
private String snapshot; private String snapshot;
@ApiModelProperty(value = "作品集作者ID") @Schema(description = "作品集作者ID")
private Long accountId; private Long accountId;
// 学校/企业id // 学校/企业id
@@ -66,12 +65,12 @@ public class Portfolio implements Serializable {
// 该条作品是否在该组织公开 默认公开 10为不公开 // 该条作品是否在该组织公开 默认公开 10为不公开
private Integer isPublic; private Integer isPublic;
@ApiModelProperty(value = "创建时间") @Schema(description = "创建时间")
private LocalDateTime createDate; private LocalDateTime createDate;
@ApiModelProperty(value = "更新时间") @Schema(description = "更新时间")
private LocalDateTime updateDate; private LocalDateTime updateDate;
@ApiModelProperty(value = "是否删除") @Schema(description = "是否删除")
private Integer isDeleted; private Integer isDeleted;
} }

View File

@@ -0,0 +1,92 @@
package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@TableName("t_subscription_plan")
public class SubscriptionPlan extends BaseEntity{
/**
* 组织id
*/
private Long organizationId;
/**
* 订阅命名
*/
private String name;
/**
* 当前订阅开始时间
*/
private Long currentPeriodStart;
/**
* 当前订阅结束时间
*/
private Long currentPeriodEnd;
/**
* 当前订阅总的子账号数量
*/
private Integer accountNum;
/**
* 当前订阅可用积分上限
*/
private BigDecimal creditLimit;
/**
* 当前订阅已使用积分
*/
private BigDecimal creditUsage;
/**
* 管理员账户id
*/
private Long adminAccId;
@TableLogic(value = "0", delval = "1")
private Integer isDeleted;
/**
* 删除人的用户id
*/
private Long deleteBy;
/**
* 状态
*/
private String status;
/**
* 国家或地区
*/
private String countryOrRegion;
// 在类内部定义的枚举
@Getter
public enum SubscriptionStatus {
PENDING("待激活", 0),
ACTIVE("已激活", 1),
EXPIRED("已过期", 2),
CANCELLED("已取消", 3);
private final String desc;
private final int code;
SubscriptionStatus(String desc, int code) {
this.desc = desc;
this.code = code;
}
}
}

View File

@@ -1,10 +1,9 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*; import lombok.*;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
@@ -25,22 +24,22 @@ import java.util.Date;
@Setter @Setter
@Accessors(chain = true) @Accessors(chain = true)
@TableName("t_collection_element_relation") @TableName("t_collection_element_relation")
@ApiModel(value = "TCollectionElementRelation对象", description = "collection和element的关联表") @Schema(description = "collection和element的关联表")
public class TCollectionElementRelation implements Serializable { public class TCollectionElementRelation implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty("element ID") @Schema(description = "element ID")
private Long elementId; private Long elementId;
@ApiModelProperty("colletion ID class类型为COLLECTION 存 其他默认是0") @Schema(description = "colletion ID class类型为COLLECTION 存 其他默认是0")
private Long collectionId; private Long collectionId;
@ApiModelProperty("创建时间") @Schema(description = "创建时间")
private Date createDate; private Date createDate;

View File

@@ -2,6 +2,7 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -9,9 +10,6 @@ import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/** /**
* design item表 存对应design的8张图片实体类 * design item表 存对应design的8张图片实体类
* *
@@ -20,7 +18,7 @@ import io.swagger.annotations.ApiModelProperty;
*/ */
@Data @Data
@TableName("t_design_python_outfit") @TableName("t_design_python_outfit")
@ApiModel(value = "TDesignPythonOutfit对象", description = "design item表 存对应design的8张图片") @Schema(description = "design item表 存对应design的8张图片")
public class TDesignPythonOutfit implements Serializable { public class TDesignPythonOutfit implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -28,48 +26,48 @@ public class TDesignPythonOutfit implements Serializable {
/** /**
* ID * ID
*/ */
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
/** /**
* designItemId * designItemId
*/ */
@ApiModelProperty(value = "designItemId") @Schema(description = "designItemId")
private Long designItemId; private Long designItemId;
/** /**
* 关联的design ID * 关联的design ID
*/ */
@ApiModelProperty(value = "关联的design ID") @Schema(description = "关联的design ID")
private Long designId; private Long designId;
/** /**
* 关联的collection ID * 关联的collection ID
*/ */
@ApiModelProperty(value = "关联的collection ID") @Schema(description = "关联的collection ID")
private Long collectionId; private Long collectionId;
/** /**
* design后的用户文件地址(python 返回) * design后的用户文件地址(python 返回)
*/ */
@ApiModelProperty(value = "design后的用户文件地址(python 返回)") @Schema(description = "design后的用户文件地址(python 返回)")
private String designUrl; private String designUrl;
/** /**
* 保存用户ID * 保存用户ID
*/ */
@ApiModelProperty(value = "保存用户ID") @Schema(description = "保存用户ID")
private Long userId; private Long userId;
/** /**
* 创建时间 * 创建时间
*/ */
@ApiModelProperty(value = "创建时间") @Schema(description = "创建时间")
private LocalDateTime createDate; private LocalDateTime createDate;
/** /**
* 更新时间 * 更新时间
*/ */
@ApiModelProperty(value = "更新时间") @Schema(description = "更新时间")
private LocalDateTime updateDate; private LocalDateTime updateDate;
/** /**
* 是否删除 * 是否删除
*/ */
@ApiModelProperty(value = "是否删除") @Schema(description = "是否删除")
private String isDeleted; private String isDeleted;

View File

@@ -2,6 +2,7 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -9,9 +10,6 @@ import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/** /**
* design item详情表实体类 * design item详情表实体类
* *
@@ -20,7 +18,7 @@ import io.swagger.annotations.ApiModelProperty;
*/ */
@Data @Data
@TableName("t_design_python_outfit_detail") @TableName("t_design_python_outfit_detail")
@ApiModel(value = "TDesignPythonOutfitDetail对象", description = "design item详情表") @Schema(description = "design item详情表")
public class TDesignPythonOutfitDetail implements Serializable { public class TDesignPythonOutfitDetail implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -28,84 +26,97 @@ public class TDesignPythonOutfitDetail implements Serializable {
/** /**
* ID * ID
*/ */
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
/** /**
* 关联的design ID * 关联的design ID
*/ */
@ApiModelProperty(value = "关联的design ID") @Schema(description = "关联的design ID")
private Long designId; private Long designId;
/** /**
* 关联的design_item ID * 关联的design_item ID
*/ */
@ApiModelProperty(value = "关联的design_item ID") @Schema(description = "关联的design_item ID")
private Long designPythonOutfitId; private Long designPythonOutfitId;
/** /**
* 关联的elementId 没有为null * 关联的elementId 没有为null
*/ */
@ApiModelProperty(value = "关联的elementId 没有为null") @Schema(description = "关联的elementId 没有为null")
private Long collectionElementId; private Long collectionElementId;
/** /**
* 图层 * 图层
*/ */
@ApiModelProperty(value = "图层") @Schema(description = "图层")
private String imageCategory; private String imageCategory;
/** /**
* imageSize * imageSize
*/ */
@ApiModelProperty(value = "imageSize") @Schema(description = "imageSize")
private String imageSize; private String imageSize;
/** /**
* 对应的图片的绝对路径 * 对应的图片的绝对路径
*/ */
@ApiModelProperty(value = "对应的图片的绝对路径") @Schema(description = "对应的图片的绝对路径")
private String imageUrl; private String imageUrl;
/** /**
* mask_url * mask_url
*/ */
@ApiModelProperty(value = "mask_url") @Schema(description = "mask_url")
private String maskUrl; private String maskUrl;
/** /**
* 位置 * 位置
*/ */
@ApiModelProperty(value = "位置") @Schema(description = "位置")
private String position; private String position;
/** /**
* 偏移量 * 偏移量
*/ */
@ApiModelProperty(value = "偏移量") @Schema(description = "偏移量")
private String offset; private String offset;
/** /**
* 图层缩放大小 * 图层缩放大小
*/ */
@ApiModelProperty(value = "图层缩放大小") @Schema(description = "图层缩放大小")
private String scale; private String scale;
/** /**
* 用户ID * 用户ID
*/ */
@ApiModelProperty(value = "用户ID") @Schema(description = "用户ID")
private Long userId; private Long userId;
/** /**
* 图层优先级 * 图层优先级
*/ */
@ApiModelProperty(value = "图层优先级") @Schema(description = "图层优先级")
private Integer priority; private Integer priority;
/**
* 镜像模式
*/
@Schema(description = "镜像模式")
private String transpose;
/**
* 旋转角度
*/
@Schema(description = "旋转角度")
private Double rotate;
/** /**
* 创建时间 * 创建时间
*/ */
@ApiModelProperty(value = "创建时间") @Schema(description = "创建时间")
private LocalDateTime createDate; private LocalDateTime createDate;
/** /**
* 更新时间 * 更新时间
*/ */
@ApiModelProperty(value = "更新时间") @Schema(description = "更新时间")
private LocalDateTime updateDate; private LocalDateTime updateDate;
/** /**
* 是否删除 * 是否删除
*/ */
@ApiModelProperty(value = "是否删除") @Schema(description = "是否删除")
private Integer isDeleted; private Integer isDeleted;

View File

@@ -1,8 +1,8 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@@ -12,22 +12,22 @@ import java.time.LocalDateTime;
public class ToProductElement implements Serializable { public class ToProductElement implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty(value = "userLikeGroupId") @Schema(description = "userLikeGroupId")
private Long userLikeGroupId; private Long userLikeGroupId;
@ApiModelProperty(value = "项目id") @Schema(description = "项目id")
private Long projectId; private Long projectId;
@ApiModelProperty(value = "url") @Schema(description = "url")
private String url; private String url;
@ApiModelProperty(value = "首尾帧 first | last") @Schema(description = "首尾帧 first | last")
private String frameType; private String frameType;
@ApiModelProperty(value = "createTime") @Schema(description = "createTime")
private LocalDateTime createTime; private LocalDateTime createTime;
} }

View File

@@ -1,8 +1,8 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@@ -12,18 +12,18 @@ import java.time.LocalDateTime;
public class ToProductImageRecord implements Serializable { public class ToProductImageRecord implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty(value = "userLikeGroupId") @Schema(description = "userLikeGroupId")
private Long userLikeGroupId; private Long userLikeGroupId;
private Long projectId; private Long projectId;
@ApiModelProperty(value = "prompt") @Schema(description = "prompt")
private String prompt; private String prompt;
@ApiModelProperty(value = "createTime") @Schema(description = "createTime")
private LocalDateTime createTime; private LocalDateTime createTime;
} }

View File

@@ -1,9 +1,9 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@@ -14,11 +14,11 @@ import java.time.LocalDateTime;
public class ToProductImageResult implements Serializable { public class ToProductImageResult implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty(value = "elementId") @Schema(description = "elementId")
private Long elementId; private Long elementId;
/** /**
@@ -26,28 +26,28 @@ public class ToProductImageResult implements Serializable {
* ProductElement 上传的图片 * ProductElement 上传的图片
* ToProductImage 以to product image的结果作为图片来源(relight) * ToProductImage 以to product image的结果作为图片来源(relight)
*/ */
@ApiModelProperty(value = "elementType 图片来源DesignOutfit(design的结果) | ProductElement(上传的图片) | ToProductImage(生成的结果)") @Schema(description = "elementType 图片来源DesignOutfit(design的结果) | ProductElement(上传的图片) | ToProductImage(生成的结果)")
private String elementType; private String elementType;
@ApiModelProperty(value = "url") @Schema(description = "url")
private String url; private String url;
@ApiModelProperty(value = "isLike 1是0否") @Schema(description = "isLike 1是0否")
private Integer isLike; private Integer isLike;
@ApiModelProperty(value = "createTime") @Schema(description = "createTime")
private LocalDateTime createTime; private LocalDateTime createTime;
@ApiModelProperty(value = "toProductImageRecordId") @Schema(description = "toProductImageRecordId")
private Long toProductImageRecordId; private Long toProductImageRecordId;
@ApiModelProperty(value = "taskId") @Schema(description = "taskId")
private String taskId; private String taskId;
@ApiModelProperty(value = "userLikeGroupId") @Schema(description = "userLikeGroupId")
private Long userLikeGroupId; private Long userLikeGroupId;
@ApiModelProperty(value = "generate 结果类型") @Schema(description = "generate 结果类型")
private String resultType; private String resultType;
private Double brightenValue; private Double brightenValue;
@@ -64,7 +64,7 @@ public class ToProductImageResult implements Serializable {
private String status; private String status;
@ApiModelProperty(value = "是否删除1:是 0:否") @Schema(description = "是否删除1:是 0:否")
@TableField @TableField
private byte isDeleted = 0; private byte isDeleted = 0;
} }

View File

@@ -1,10 +1,10 @@
package com.ai.da.mapper.primary.entity; package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -26,25 +26,25 @@ public class TrialOrder implements Serializable {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ApiModelProperty("title") @Schema(description = "title")
private String title; private String title;
@ApiModelProperty("surname") @Schema(description = "surname")
private String surname; private String surname;
@ApiModelProperty("givenName") @Schema(description = "givenName")
private String givenName; private String givenName;
@ApiModelProperty("userName") @Schema(description = "userName")
private String userName; private String userName;
@ApiModelProperty("email") @Schema(description = "email")
private String email; private String email;
@ApiModelProperty("country") @Schema(description = "country")
private String country; private String country;
@ApiModelProperty("occupation") @Schema(description = "occupation")
private String occupation; private String occupation;
/** /**

View File

@@ -0,0 +1,31 @@
package com.ai.da.mapper.primary.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("user_preference")
public class UserPreference implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Long accountId;
private String path;
private LocalDateTime dataTime;
private String category;
private String style;
private Long workspaceRelStyleId;
private Long projectId;
private Long designItemId;
}

View File

@@ -23,5 +23,8 @@ public class UserPreferenceLogTest implements Serializable {
private Long accountId; private Long accountId;
private String path; private String path;
private LocalDateTime dataTime; private LocalDateTime dataTime;
private String category;
private String style;
private Long sysFileId;
} }

View File

@@ -7,8 +7,7 @@ import java.time.LocalDateTime;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data; import lombok.Data;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
/** /**
* 实体类 * 实体类
@@ -17,7 +16,7 @@ import io.swagger.annotations.ApiModelProperty;
* @since 2023-08-01 * @since 2023-08-01
*/ */
@Data @Data
@ApiModel(value = "Workspace对象", description = "Workspace对象") @Schema(description = "Workspace对象")
@TableName("workspace") @TableName("workspace")
public class Workspace implements Serializable { public class Workspace implements Serializable {
@@ -26,23 +25,23 @@ public class Workspace implements Serializable {
/** /**
* ID * ID
*/ */
@ApiModelProperty(value = "ID") @Schema(description = "ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
/** /**
* 工作空间名称 * 工作空间名称
*/ */
@ApiModelProperty(value = "工作空间名称") @Schema(description = "工作空间名称")
private String workSpaceName; private String workSpaceName;
/** /**
* 用户名 * 用户名
*/ */
@ApiModelProperty(value = "用户名") @Schema(description = "用户名")
private String userName; private String userName;
/** /**
* 用户ID * 用户ID
*/ */
@ApiModelProperty(value = "用户ID") @Schema(description = "用户ID")
private Long accountId; private Long accountId;
/** /**
* 年龄段 Adult || Child * 年龄段 Adult || Child
@@ -51,54 +50,54 @@ public class Workspace implements Serializable {
/** /**
* 性别 * 性别
*/ */
@ApiModelProperty(value = "性别") @Schema(description = "性别")
private String sex; private String sex;
/** /**
* 服装部位 * 服装部位
*/ */
@ApiModelProperty(value = "服装部位") @Schema(description = "服装部位")
private String position; private String position;
/** /**
* SYSTEM_DESIGNER占比 * SYSTEM_DESIGNER占比
*/ */
@ApiModelProperty(value = "SYSTEM_DESIGNER占比") @Schema(description = "SYSTEM_DESIGNER占比")
private Integer systemDesignerPercentage; private Integer systemDesignerPercentage;
/** /**
* 人体模型 * 人体模型
*/ */
@ApiModelProperty(value = "人体模型ID") @Schema(description = "人体模型ID")
private Long mannequinFemaleId; private Long mannequinFemaleId;
private Long mannequinMaleId; private Long mannequinMaleId;
private Long mannequinChildId; private Long mannequinChildId;
/** /**
* 人体模型 * 人体模型
*/ */
@ApiModelProperty(value = "人体模型类型") @Schema(description = "人体模型类型")
private String mannequinFemaleType; private String mannequinFemaleType;
private String mannequinMaleType; private String mannequinMaleType;
private String mannequinChildType; private String mannequinChildType;
/** /**
* 最后使用的工作空间标识 * 最后使用的工作空间标识
*/ */
@ApiModelProperty(value = "最后使用的工作空间标识") @Schema(description = "最后使用的工作空间标识")
private Integer isLastIndex; private Integer isLastIndex;
/** /**
* 创建时间 * 创建时间
*/ */
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间") @Schema(description = "创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
/** /**
* 更新时间 * 更新时间
*/ */
@TableField(fill = FieldFill.INSERT_UPDATE) @TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "更新时间") @Schema(description = "更新时间")
private LocalDateTime updateTime; private LocalDateTime updateTime;
/** /**
* 是否删除 * 是否删除
*/ */
@TableLogic @TableLogic
@ApiModelProperty(value = "是否删除") @Schema(description = "是否删除")
private Integer isDeleted; private Integer isDeleted;
private Long projectId; private Long projectId;

View File

@@ -1,7 +1,7 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -10,42 +10,42 @@ import jakarta.validation.constraints.NotBlank;
import java.math.BigDecimal; import java.math.BigDecimal;
@Data @Data
@ApiModel("AccountAddDTO") @Schema(description = "AccountAddDTO")
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class AccountAddDTO { public class AccountAddDTO {
@NotBlank(message = "email.cannot.be.empty") @NotBlank(message = "email.cannot.be.empty")
@ApiModelProperty("userEmail") @Schema(description = "userEmail")
private String userEmail; private String userEmail;
@NotBlank(message = "userName.cannot.be.empty") @NotBlank(message = "userName.cannot.be.empty")
@ApiModelProperty("userName") @Schema(description = "userName")
private String userName; private String userName;
private String country; private String country;
@NotBlank(message = "validStartTime.cannot.be.empty") @NotBlank(message = "validStartTime.cannot.be.empty")
@ApiModelProperty("Start time of account validity ") @Schema(description = "Start time of account validity ")
private String validStartTime; private String validStartTime;
@NotBlank(message = "validEndTime.cannot.be.empty") @NotBlank(message = "validEndTime.cannot.be.empty")
@ApiModelProperty("End time of account validity ") @Schema(description = "End time of account validity ")
private String validEndTime; private String validEndTime;
@ApiModelProperty("是否是试用用户 0 否 | 1 是") @Schema(description = "是否是试用用户 0 否 | 1 是")
private Integer isTrial; private Integer isTrial;
@ApiModelProperty("分配积分") @Schema(description = "分配积分")
private BigDecimal credits; private BigDecimal credits;
@ApiModelProperty("用户角色") @Schema(description = "用户角色")
private Integer systemUser; private Integer systemUser;
@ApiModelProperty("学校名称 | 企业名称") @Schema(description = "学校名称 | 企业名称")
private String organizationName; private String organizationName;
@ApiModelProperty("可分配子账号总数(仅适用于学校或教育管理员)") @Schema(description = "可分配子账号总数(仅适用于学校或教育管理员)")
private Integer subAccountNum; private Integer subAccountNum;
public AccountAddDTO(String userEmail, String userName, String country, String validStartTime, String validEndTime, Integer isTrial, BigDecimal credits, Integer systemUser) { public AccountAddDTO(String userEmail, String userName, String country, String validStartTime, String validEndTime, Integer isTrial, BigDecimal credits, Integer systemUser) {

View File

@@ -1,39 +1,39 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@Data @Data
@ApiModel("绑定邮箱") @Schema(description = "绑定邮箱")
public class AccountBindEmailDTO { public class AccountBindEmailDTO {
// @NotNull(message = "userId.cannot.be.empty") // @NotNull(message = "userId.cannot.be.empty")
// @ApiModelProperty("用户id") // @Schema(description = "用户id")
// private Long userId; // private Long userId;
@NotBlank(message = "email.cannot.be.empty") @NotBlank(message = "email.cannot.be.empty")
@ApiModelProperty("邮箱") @Schema(description = "邮箱")
private String userEmail; private String userEmail;
@NotBlank(message = "emailVerifyCode.cannot.be.empty") @NotBlank(message = "emailVerifyCode.cannot.be.empty")
@ApiModelProperty("邮箱验证码") @Schema(description = "邮箱验证码")
private String emailVerifyCode; private String emailVerifyCode;
// @ApiModelProperty("国家") // @Schema(description = "国家")
// private String country; // private String country;
// //
// @ApiModelProperty("职业") // @Schema(description = "职业")
// private String occupation; // private String occupation;
// //
// @ApiModelProperty("title") // @Schema(description = "title")
// private String title; // private String title;
// //
// @ApiModelProperty("surname") // @Schema(description = "surname")
// private String surname; // private String surname;
// //
// @ApiModelProperty("givenName") // @Schema(description = "givenName")
// private String givenName; // private String givenName;
} }

View File

@@ -1,35 +1,35 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
@ApiModel("AccountEdit") @Schema(description = "AccountEdit")
public class AccountEditDTO { public class AccountEditDTO {
@ApiModelProperty("Old user email") @Schema(description = "Old user email")
private String oldEmail; private String oldEmail;
@ApiModelProperty("New user email") @Schema(description = "New user email")
private String newEmail; private String newEmail;
@ApiModelProperty("Old user name") @Schema(description = "Old user name")
private String oldUserName; private String oldUserName;
@ApiModelProperty("New user name") @Schema(description = "New user name")
private String newUserName; private String newUserName;
@ApiModelProperty("Start time of the new account validity period") @Schema(description = "Start time of the new account validity period")
private String newValidStartTime; private String newValidStartTime;
@ApiModelProperty("Start time of the old account validity period") @Schema(description = "Start time of the old account validity period")
private String oldValidStartTime; private String oldValidStartTime;
@ApiModelProperty("End time of the new account validity period") @Schema(description = "End time of the new account validity period")
private String newValidEndTime; private String newValidEndTime;
@ApiModelProperty("End time of the old account validity period") @Schema(description = "End time of the old account validity period")
private String oldValidEndTime; private String oldValidEndTime;
} }

View File

@@ -1,32 +1,32 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
@ApiModel("登入") @Schema(description = "登入")
public class AccountLoginDTO { public class AccountLoginDTO {
@ApiModelProperty("userId") @Schema(description = "userId")
private Long userId; private Long userId;
@ApiModelProperty("邮箱") @Schema(description = "邮箱")
private String email; private String email;
@ApiModelProperty("用户名") @Schema(description = "用户名")
private String userName; private String userName;
@ApiModelProperty("密码") @Schema(description = "密码")
private String password; private String password;
@ApiModelProperty("登入类型 EMAIL - >邮箱 , PASSWORD ->密码") @Schema(description = "登入类型 EMAIL - >邮箱 , PASSWORD ->密码")
private String loginType; private String loginType;
@ApiModelProperty("邮箱验证码") @Schema(description = "邮箱验证码")
private String emailVerifyCode; private String emailVerifyCode;
@ApiModelProperty("组织名") @Schema(description = "组织名")
private String organizationName; private String organizationName;
} }

View File

@@ -1,17 +1,17 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("登出") @Schema(description = "登出")
public class AccountLogoutDTO { public class AccountLogoutDTO {
@NotNull(message = "userId.cannot.be.empty") @NotNull(message = "userId.cannot.be.empty")
@ApiModelProperty("userId") @Schema(description = "userId")
private Long userId; private Long userId;
} }

View File

@@ -1,32 +1,31 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@Data @Data
@ApiModel("预先登入") @Schema(description = "预先登入")
public class AccountPreLoginDTO { public class AccountPreLoginDTO {
@NotBlank(message = "userName.cannot.be.empty") @NotBlank(message = "userName.cannot.be.empty")
@ApiModelProperty("用户名") @Schema(description = "用户名")
private String userName; private String userName;
/*新增字段*/ /*新增字段*/
@NotBlank(message = "email.cannot.be.empty") @NotBlank(message = "email.cannot.be.empty")
@ApiModelProperty("邮箱") @Schema(description = "邮箱")
private String email; private String email;
@NotBlank(message = "password.cannot.be.empty") @NotBlank(message = "password.cannot.be.empty")
@ApiModelProperty("密码") @Schema(description = "密码")
private String password; private String password;
@NotBlank(message = "operationType.cannot.be.empty") @NotBlank(message = "operationType.cannot.be.empty")
@ApiModelProperty("操作类型 LOGIN 注册 FORGET_PWD 忘记密码 BIND_MAILBOX 绑定邮箱") @Schema(description = "操作类型 LOGIN 注册 FORGET_PWD 忘记密码 BIND_MAILBOX 绑定邮箱")
private String operationType; private String operationType;
@ApiModelProperty("异常ip") @Schema(description = "异常ip")
private String ip; private String ip;
} }

View File

@@ -1,26 +1,25 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@Data @Data
@ApiModel("账户") @Schema(description = "账户")
public class AccountRegisterDTO { public class AccountRegisterDTO {
@NotBlank(message = "email.cannot.be.empty") @NotBlank(message = "email.cannot.be.empty")
@ApiModelProperty("邮箱") @Schema(description = "邮箱")
private String email; private String email;
private Boolean verifyEmail; private Boolean verifyEmail;
// @NotBlank(message = "password.cannot.be.empty") // @NotBlank(message = "password.cannot.be.empty")
@ApiModelProperty("密码") @Schema(description = "密码")
private String password; private String password;
@NotBlank(message = "emailVerifyCode.cannot.be.empty") @NotBlank(message = "emailVerifyCode.cannot.be.empty")
@ApiModelProperty("邮箱验证码") @Schema(description = "邮箱验证码")
private String emailVerifyCode; private String emailVerifyCode;
} }

View File

@@ -1,13 +1,14 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import com.ai.da.mapper.primary.entity.TrialOrder; import com.ai.da.mapper.primary.entity.TrialOrder;
import io.swagger.annotations.ApiModel;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@ApiModel("AccountTrial") @Schema(description = "AccountTrial")
public class AccountTrialDTO extends TrialOrder { public class AccountTrialDTO extends TrialOrder {
private String ref; private String ref;
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -9,19 +8,19 @@ import jakarta.validation.constraints.Pattern;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@ApiModel("查询affiliate列表") @Schema(description = "查询affiliate列表")
public class AffiliateQueryDTO extends TimeQueryBaseDTO{ public class AffiliateQueryDTO extends TimeQueryBaseDTO{
@ApiModelProperty("Active活跃 || Inactive过期 || Pending待审批 || Refused(拒绝)") @Schema(description = "Active活跃 || Inactive过期 || Pending待审批 || Refused(拒绝)")
private String status; private String status;
@ApiModelProperty("推广者id") @Schema(description = "推广者id")
private Long affiliateId; private Long affiliateId;
@Pattern(regexp = "id|createTime|totalIncome|", message = "允许排序字段只有id|createTime|totalIncome") @Pattern(regexp = "id|createTime|totalIncome|", message = "允许排序字段只有id|createTime|totalIncome")
@ApiModelProperty("目前允许按id, createTime, totalIncome进行排序") @Schema(description = "目前允许按id, createTime, totalIncome进行排序")
private String orderBy = "id"; private String orderBy = "id";
@ApiModelProperty("按时间 DESC 降序 || ASC 升序") @Schema(description = "按时间 DESC 降序 || ASC 升序")
private String order = "ASC"; private String order = "ASC";
@Override @Override

View File

@@ -1,6 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -17,11 +17,11 @@ import jakarta.validation.constraints.NotNull;
@Data @Data
public class ChatFlushDTO { public class ChatFlushDTO {
@NotNull(message = "user_id.cannot.be.empty") @NotNull(message = "user_id.cannot.be.empty")
@ApiModelProperty("用户id") @Schema(description = "用户id")
private String user_id; private String user_id;
@NotBlank(message = "session_id.cannot.be.empty") @NotBlank(message = "session_id.cannot.be.empty")
@ApiModelProperty("会话ID") @Schema(description = "会话ID")
private String session_id; private String session_id;
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -16,23 +15,23 @@ import jakarta.validation.constraints.NotNull;
*/ */
@Data @Data
@ApiModel("chatRobot 对话") @Schema(description = "chatRobot 对话")
public class ChatSendDTO { public class ChatSendDTO {
@NotNull(message = "userId.cannot.be.empty") @NotNull(message = "userId.cannot.be.empty")
@ApiModelProperty("用户id") @Schema(description = "用户id")
private Long user_id; private Long user_id;
@NotBlank(message = "sessionId.cannot.be.empty") @NotBlank(message = "sessionId.cannot.be.empty")
@ApiModelProperty("会话ID") @Schema(description = "会话ID")
private String session_id; private String session_id;
@NotBlank(message = "message.cannot.be.empty") @NotBlank(message = "message.cannot.be.empty")
@ApiModelProperty("消息") @Schema(description = "消息")
private String message; private String message;
@NotBlank(message = "gender.cannot.be.empty") @NotBlank(message = "gender.cannot.be.empty")
@ApiModelProperty("性别") @Schema(description = "性别")
private String gender; private String gender;
} }

View File

@@ -1,7 +1,8 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import com.ai.da.mapper.primary.entity.Classification; import com.ai.da.mapper.primary.entity.Classification;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -12,10 +13,10 @@ import java.util.List;
public class ClassificationDTO extends Classification { public class ClassificationDTO extends Classification {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("分类ID列表") @Schema(description = "分类ID列表")
private List<Long> classificationIdList; private List<Long> classificationIdList;
@ApiModelProperty("LibraryID") @Schema(description = "LibraryID")
private List<Long> libraryIdList; private List<Long> libraryIdList;
@ApiModelProperty("分类删除校验1校验0不校验") @Schema(description = "分类删除校验1校验0不校验")
private Integer deleteConfirm; private Integer deleteConfirm;
} }

View File

@@ -1,16 +1,17 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import com.ai.da.mapper.primary.entity.CloudTask; import com.ai.da.mapper.primary.entity.CloudTask;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@Data @Data
public class CloudTaskDTO extends CloudTask { public class CloudTaskDTO extends CloudTask {
@ApiModelProperty("toProduct/relight入参") @Schema(description = "toProduct/relight入参")
private ToProductImageDTO toProductImage; private ToProductImageDTO toProductImage;
@ApiModelProperty("posetransfer入参") @Schema(description = "posetransfer入参")
private List<PoseTransformBatchDTO> poseTransform; private List<PoseTransformBatchDTO> poseTransform;

View File

@@ -1,27 +1,27 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import com.ai.da.mapper.primary.entity.Gradient; import com.ai.da.mapper.primary.entity.Gradient;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@Data @Data
@ApiModel("设计Collection颜色板 入参") @Schema(description = "设计Collection颜色板 入参")
public class CollectionColorDTO { public class CollectionColorDTO {
@ApiModelProperty("潘通id") @Schema(description = "潘通id")
private Integer id; private Integer id;
@ApiModelProperty("潘通名字") @Schema(description = "潘通名字")
private String name; private String name;
@ApiModelProperty("tcx值") @Schema(description = "tcx值")
private String tcx; private String tcx;
@NotBlank(message = "rgbValue.cannot.be.empty") @NotBlank(message = "rgbValue.cannot.be.empty")
@ApiModelProperty("潘通RGB值") @Schema(description = "潘通RGB值")
private String rgbValue; private String rgbValue;
private Gradient gradient; private Gradient gradient;

View File

@@ -1,16 +1,15 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("删除文件") @Schema(description = "删除文件")
public class CollectionDeleteFileDTO { public class CollectionDeleteFileDTO {
@NotNull(message = "file id cannot be empty!") @NotNull(message = "file id cannot be empty!")
@ApiModelProperty("文件id") @Schema(description = "文件id")
private Long id; private Long id;
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -11,28 +10,28 @@ import jakarta.validation.constraints.NotNull;
import java.util.Date; import java.util.Date;
@Data @Data
@ApiModel("文件上传") @Schema(description = "文件上传")
@AllArgsConstructor @AllArgsConstructor
public class CollectionElementUploadDTO { public class CollectionElementUploadDTO {
@NotNull(message = "file.cannot.be.empty") @NotNull(message = "file.cannot.be.empty")
private MultipartFile file; private MultipartFile file;
@ApiModelProperty("项目id") @Schema(description = "项目id")
private Long projectId; private Long projectId;
@ApiModelProperty("一级类型") @Schema(description = "一级类型")
private String level1Type; private String level1Type;
@ApiModelProperty("二级类型") @Schema(description = "二级类型")
private String level2Type; private String level2Type;
@ApiModelProperty("性别") @Schema(description = "性别")
private String gender; private String gender;
@ApiModelProperty("时区") @Schema(description = "时区")
private String timeZone; private String timeZone;
@ApiModelProperty("md5") @Schema(description = "md5")
private String md5; private String md5;
} }

View File

@@ -1,25 +1,24 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("生成印花") @Schema(description = "生成印花")
public class CollectionGeneratePrintDTO { public class CollectionGeneratePrintDTO {
@NotNull(message = "select1Id.cannot.be.empty") @NotNull(message = "select1Id.cannot.be.empty")
@ApiModelProperty("选择的第一个print文件id") @Schema(description = "选择的第一个print文件id")
private Long select1Id; private Long select1Id;
@NotNull(message = "select2Id.cannot.be.empty") @NotNull(message = "select2Id.cannot.be.empty")
@ApiModelProperty("选择的第一个print文件id") @Schema(description = "选择的第一个print文件id")
private Long select2Id; private Long select2Id;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -10,16 +9,16 @@ import jakarta.validation.constraints.Size;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel("印花保存") @Schema(description = "印花保存")
public class CollectionSavePrintDTO { public class CollectionSavePrintDTO {
@ApiModelProperty("生成的印花绝对路径") @Schema(description = "生成的印花绝对路径")
@Size(max = 15, message = "Save up to 15 prints at a time!") @Size(max = 15, message = "Save up to 15 prints at a time!")
@NotEmpty(message = "printId.cannot.be.empty") @NotEmpty(message = "printId.cannot.be.empty")
private List<String> printId; private List<String> printId;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
} }

View File

@@ -1,29 +1,28 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("设计Collection Sketch 入参") @Schema(description = "设计Collection Sketch 入参")
public class CollectionSketchDTO { public class CollectionSketchDTO {
@ApiModelProperty("sketchBoardId 元素id") @Schema(description = "sketchBoardId 元素id")
private Long sketchBoardId; private Long sketchBoardId;
@NotNull(message = "isPin.cannot.be.empty") @NotNull(message = "isPin.cannot.be.empty")
@ApiModelProperty("是否pin 1 pin 0 不pin") @Schema(description = "是否pin 1 pin 0 不pin")
private Byte isPin; private Byte isPin;
@NotBlank(message = "level2Type.cannot.be.empty") @NotBlank(message = "level2Type.cannot.be.empty")
@ApiModelProperty("二级类型 Outwear Dress Blouse Skirt Trousers") @Schema(description = "二级类型 Outwear Dress Blouse Skirt Trousers")
private String level2Type; private String level2Type;
@NotBlank(message = "designType.cannot.be.empty") @NotBlank(message = "designType.cannot.be.empty")
@ApiModelProperty("design类型 用户design生成时候区别library和collection") @Schema(description = "design类型 用户design生成时候区别library和collection")
private String designType; private String designType;
} }

View File

@@ -1,7 +1,8 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import com.ai.da.mapper.primary.entity.CollectionSort; import com.ai.da.mapper.primary.entity.CollectionSort;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@@ -9,9 +10,9 @@ import java.util.List;
@Data @Data
public class CollectionSortDTO{ public class CollectionSortDTO{
@ApiModelProperty("userLikeGroupId") @Schema(description = "userLikeGroupId")
private Long userLikeGroupId; private Long userLikeGroupId;
@ApiModelProperty("排序数组") @Schema(description = "排序数组")
List<CollectionSort> userLikeSortList; List<CollectionSort> userLikeSortList;
} }

View File

@@ -0,0 +1,63 @@
package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
* Contestant request DTO for Global Award
*/
@Data
@ApiModel(value = "参赛者信息", description = "全球奖项大赛参赛者信息数据传输对象")
public class ContestantDTO {
@ApiModelProperty(value = "邮箱地址", required = true, example = "user@example.com")
private String email;
@ApiModelProperty(value = "名字", required = true, example = "John")
private String firstName;
@ApiModelProperty(value = "姓氏", required = true, example = "Doe")
private String lastName;
@ApiModelProperty(value = "性别", required = true, example = "Male", allowableValues = "Male,Female,Other")
private String gender;
@ApiModelProperty(value = "职业", required = true, example = "Designer")
private String occupation;
@ApiModelProperty(value = "年龄", required = true, example = "25")
private Integer age;
@ApiModelProperty(value = "国家/地区/城市", required = true, example = "China/Shanghai/Shanghai")
private String countryRegionCity;
@ApiModelProperty(value = "电话号码", required = true, example = "+86 138 0000 0000")
private String phoneNumber;
@ApiModelProperty(value = "作品集链接", required = false, example = "https://portfolio.example.com")
private String portfolioUrl;
@ApiModelProperty(value = "设计作品标题", required = true, example = "Modern Office Building Design")
private String designTitle;
@ApiModelProperty(value = "设计作品描述", required = true, example = "A modern office building design featuring sustainable materials...")
private String designDescription;
@ApiModelProperty(value = "PDF文件路径", required = false, example = "contestants/user@example.com/2024/01/design_1234567890.pdf")
private String pdfPath;
@ApiModelProperty(value = "视频文件路径", required = false, example = "contestants/user@example.com/2024/01/video_1234567890.mp4")
private String videoPath;
// /**
// * 是否确认覆盖已存在记录false 表示发现已有记录时仅返回 existingRecord不覆盖
// */
// @ApiModelProperty(value = "是否确认覆盖已存在记录", required = false, example = "false")
// private Boolean confirm = false;
@NotBlank
private String secureToken;
}

View File

@@ -1,26 +1,26 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
public class CreateCouponDTO { public class CreateCouponDTO {
@ApiModelProperty("折扣率") @Schema(description = "折扣率")
@NotNull(message = "Please set the percentOff") @NotNull(message = "Please set the percentOff")
private Float percentOff; private Float percentOff;
@ApiModelProperty("佣金比例") @Schema(description = "佣金比例")
@NotNull(message = "Please set the commissionRate.") @NotNull(message = "Please set the commissionRate.")
private Float commissionRate; private Float commissionRate;
@ApiModelProperty("推广码到期时间 秒级时间戳") @Schema(description = "推广码到期时间 秒级时间戳")
private Long endTime; private Long endTime;
@ApiModelProperty("推广码开始时间 秒级时间戳") @Schema(description = "推广码开始时间 秒级时间戳")
private Long startTime; private Long startTime;
@ApiModelProperty("推广码最大使用次数") @Schema(description = "推广码最大使用次数")
private Long maxRedemptions; private Long maxRedemptions;
@ApiModelProperty("合作者/机构名") @Schema(description = "合作者/机构名")
private String cooperator; private String cooperator;
@ApiModelProperty("备注") @Schema(description = "备注")
private String remark; private String remark;
} }

View File

@@ -1,19 +1,19 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel("DesignAttributeRetrievalDTO 入参") @Schema(description = "DesignAttributeRetrievalDTO 入参")
public class DesignAttributeRetrievalDTO { public class DesignAttributeRetrievalDTO {
@ApiModelProperty("library图片 数组") @Schema(description = "library图片 数组")
private List<String> libraryUrls = Lists.newArrayList(); private List<String> libraryUrls = Lists.newArrayList();
@ApiModelProperty("sysFile图片 数组") @Schema(description = "sysFile图片 数组")
private List<String> sysFileUrlS = Lists.newArrayList(); private List<String> sysFileUrlS = Lists.newArrayList();
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -10,76 +9,76 @@ import java.math.BigDecimal;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel("设计Collection 入参") @Schema(description = "设计Collection 入参")
public class DesignCollectionDTO { public class DesignCollectionDTO {
private Long projectId; private Long projectId;
private Long collectionId; private Long collectionId;
@ApiModelProperty("情绪板图片 数组") @Schema(description = "情绪板图片 数组")
private List<DesignCollectionElementDTO> moodBoards; private List<DesignCollectionElementDTO> moodBoards;
@ApiModelProperty("印花板图片 数组") @Schema(description = "印花板图片 数组")
private List<DesignCollectionPrintElementDTO> printBoards; private List<DesignCollectionPrintElementDTO> printBoards;
// @NotEmpty(message = "colorBoards.cannot.be.empty") // @NotEmpty(message = "colorBoards.cannot.be.empty")
@ApiModelProperty("颜色板RGB值 数组") @Schema(description = "颜色板RGB值 数组")
private List<CollectionColorDTO> colorBoards; private List<CollectionColorDTO> colorBoards;
@ApiModelProperty("手稿板图片id 数组") @Schema(description = "手稿板图片id 数组")
private List<CollectionSketchDTO> sketchBoards; private List<CollectionSketchDTO> sketchBoards;
@ApiModelProperty("模特 数组") @Schema(description = "模特 数组")
private List<MannequinDTO> mannequins; private List<MannequinDTO> mannequins;
@NotNull(message = "systemScale.cannot.be.empty") @NotNull(message = "systemScale.cannot.be.empty")
@ApiModelProperty("系统取图比列") @Schema(description = "系统取图比列")
private BigDecimal systemScale; private BigDecimal systemScale;
// @NotNull(message = "templateId.cannot.be.empty") // @NotNull(message = "templateId.cannot.be.empty")
@ApiModelProperty("模特ID") @Schema(description = "模特ID")
private Long templateId; private Long templateId;
// @NotBlank(message = "modelType.cannot.be.empty") // @NotBlank(message = "modelType.cannot.be.empty")
@ApiModelProperty("模特类型:System,Library") @Schema(description = "模特类型:System,Library")
private String modelType; private String modelType;
@NotBlank(message = "modelSex.cannot.be.empty") @NotBlank(message = "modelSex.cannot.be.empty")
@ApiModelProperty("模特性别") @Schema(description = "模特性别")
private String modelSex; private String modelSex;
@ApiModelProperty("mood版本id 没有传null") @Schema(description = "mood版本id 没有传null")
private String moodTemplateId; private String moodTemplateId;
@NotBlank(message = "singleOverall.cannot.be.empty") @NotBlank(message = "singleOverall.cannot.be.empty")
@ApiModelProperty("控制生成类型的参数两个选项outfit时候传 single , 另外一个传 overall") @Schema(description = "控制生成类型的参数两个选项outfit时候传 single , 另外一个传 overall")
private String singleOverall; private String singleOverall;
@ApiModelProperty("single模式下的类别选择参数 选项有outwear,dress,blouse,skirt,trousers") @Schema(description = "single模式下的类别选择参数 选项有outwear,dress,blouse,skirt,trousers")
private String switchCategory; private String switchCategory;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
@NotBlank(message = "processId.cannot.be.empty") @NotBlank(message = "processId.cannot.be.empty")
@ApiModelProperty("python端design进程ID") @Schema(description = "python端design进程ID")
private String processId; private String processId;
@ApiModelProperty("moodboard 位置信息") @Schema(description = "moodboard 位置信息")
private String moodboardPosition; private String moodboardPosition;
@ApiModelProperty("获取结果标识数组") @Schema(description = "获取结果标识数组")
private List<String> requestIdList; private List<String> requestIdList;
@ApiModelProperty("design数量") @Schema(description = "design数量")
private Integer designNum; private Integer designNum;
@ApiModelProperty("品牌ID") @Schema(description = "品牌ID")
private Long brandId; private Long brandId;
@ApiModelProperty("品牌占比") @Schema(description = "品牌占比")
private Double brandScale; private Double brandScale;
} }

View File

@@ -1,17 +1,16 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
@ApiModel("设计Collection element other 入参") @Schema(description = "设计Collection element other 入参")
public class DesignCollectionElementDTO { public class DesignCollectionElementDTO {
@ApiModelProperty("元素id") @Schema(description = "元素id")
private Long id; private Long id;
@ApiModelProperty("design类型 用户design生成时候区别library和collection") @Schema(description = "design类型 用户design生成时候区别library和collection")
private String designType; private String designType;
} }

View File

@@ -1,22 +1,21 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
@ApiModel("设计Collection element print 入参") @Schema(description = "设计Collection element print 入参")
public class DesignCollectionPrintElementDTO { public class DesignCollectionPrintElementDTO {
@ApiModelProperty("元素id") @Schema(description = "元素id")
private Long id; private Long id;
@ApiModelProperty("design类型 用户design生成时候区别library和collection") @Schema(description = "design类型 用户design生成时候区别library和collection")
private String designType; private String designType;
private String level2Type; private String level2Type;
@ApiModelProperty("是否pin 1 pin 0 不pin") @Schema(description = "是否pin 1 pin 0 不pin")
private Byte isPin; private Byte isPin;
} }

View File

@@ -1,29 +1,28 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("Design like 入参") @Schema(description = "Design like 入参")
public class DesignLikeDTO { public class DesignLikeDTO {
@NotNull(message = "designItemId.cannot.be.empty") @NotNull(message = "designItemId.cannot.be.empty")
@ApiModelProperty("like图片对应的designItemId") @Schema(description = "like图片对应的designItemId")
private Long designItemId; private Long designItemId;
@NotNull(message = "designPythonOutfitId.cannot.be.empty") @NotNull(message = "designPythonOutfitId.cannot.be.empty")
@ApiModelProperty("like图片对应的designItemId") @Schema(description = "like图片对应的designItemId")
private Long designPythonOutfitId; private Long designPythonOutfitId;
@ApiModelProperty("like design到对应collection 对应的userGroupId,不传表示selected collection 为null") @Schema(description = "like design到对应collection 对应的userGroupId,不传表示selected collection 为null")
private Long userGroupId; private Long userGroupId;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
private Long projectId; private Long projectId;

View File

@@ -1,6 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -11,28 +11,28 @@ import java.util.List;
@Data @Data
public class DesignSingleDTO { public class DesignSingleDTO {
@ApiModelProperty("designItemId") @Schema(description = "designItemId")
@NotNull(message = "designItemId.cannot.be.empty") @NotNull(message = "designItemId.cannot.be.empty")
private Long designItemId; private Long designItemId;
@ApiModelProperty("priority 数组,列表中包含服饰的顺序,越右边的表示越外层的衣服 例如[\"Outwear\", \"Dress\"]表示outwear在dress里面") @Schema(description = "priority 数组,列表中包含服饰的顺序,越右边的表示越外层的衣服 例如[\"Outwear\", \"Dress\"]表示outwear在dress里面")
@NotEmpty(message = "priority.cannot.be.empty") @NotEmpty(message = "priority.cannot.be.empty")
private List<String> priority; private List<String> priority;
@NotEmpty(message = "clothes.cannot.be.empty") @NotEmpty(message = "clothes.cannot.be.empty")
@ApiModelProperty("clothes 元素") @Schema(description = "clothes 元素")
private List<DesignSingleItemDTO> clothes; private List<DesignSingleItemDTO> clothes;
@ApiModelProperty("others 元素") @Schema(description = "others 元素")
private List<DesignSingleItemDTO> others; private List<DesignSingleItemDTO> others;
private DesignSingleItemDTO designSingleItem; private DesignSingleItemDTO designSingleItem;
@ApiModelProperty("preview -> true submit -> false") @Schema(description = "preview -> true submit -> false")
private Boolean isPreview; private Boolean isPreview;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
} }

View File

@@ -1,6 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -11,38 +11,42 @@ import java.util.List;
@Data @Data
public class DesignSingleIncludeLayersDTO implements Serializable { public class DesignSingleIncludeLayersDTO implements Serializable {
@ApiModelProperty("designItemId") @Schema(description = "designItemId")
@NotNull(message = "designItemId.cannot.be.empty") @NotNull(message = "designItemId.cannot.be.empty")
private Long designItemId; private Long designItemId;
@NotNull @NotNull
@ApiModelProperty("designSingleItemDTOList") @Schema(description = "designSingleItemDTOList")
private List<DesignSingleItemDTO> designSingleItemDTOList; private List<DesignSingleItemDTO> designSingleItemDTOList;
@NotNull(message = "isPreview.cannot.be.empty") @NotNull(message = "isPreview.cannot.be.empty")
@ApiModelProperty("preview -> true submit -> false") @Schema(description = "preview -> true submit -> false")
private Boolean isPreview; private Boolean isPreview;
@NotNull(message = "processId.cannot.be.empty") @NotNull(message = "processId.cannot.be.empty")
@ApiModelProperty("进度") @Schema(description = "进度")
private String processId; private String processId;
@ApiModelProperty("性别") @Schema(description = "性别")
private String gender; private String gender;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
@ApiModelProperty("模特id 每套衣服允许有一个单独的模特") @Schema(description = "模特id 每套衣服允许有一个单独的模特")
private Long modelId; private Long modelId;
@ApiModelProperty("模特类型 System || Library") @Schema(description = "模特类型 System || Library")
private String modelType; private String modelType;
@ApiModelProperty("项目id") @Schema(description = "项目id")
private Long projectId; private Long projectId;
@NotBlank(message = "designType cannot be empty")
@Schema(description = "default -> 新增sketch || merge")
private String designType;
@Override @Override
public String toString() { public String toString() {
return "DesignSingleIncludeLayersDTO{" + return "DesignSingleIncludeLayersDTO{" +

View File

@@ -1,7 +1,9 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.media.Schema;
import com.ai.da.mapper.primary.entity.Gradient; import com.ai.da.mapper.primary.entity.Gradient;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -14,56 +16,70 @@ import java.util.List;
public class DesignSingleItemDTO implements Serializable { public class DesignSingleItemDTO implements Serializable {
@NotNull(message = "id.cannot.be.empty") @NotNull(message = "id.cannot.be.empty")
@ApiModelProperty("切换图片对应的id") @Schema(description = "切换图片对应的id")
private Long id; private Long id;
@NotEmpty(message = "changed cannot be empty") @NotEmpty(message = "changed cannot be empty")
@ApiModelProperty("当前服装的id是否被添加随机数") @Schema(description = "当前服装的id是否被添加随机数")
private Boolean changed; private Boolean changed;
@NotBlank(message = "designType cannot be empty") @NotBlank(message = "designType cannot be empty")
@ApiModelProperty("当前图片来源于用户上传还是从library选择 Collection/Library") @Schema(description = "当前图片来源于用户上传还是从library选择 Collection/Library")
private String designType; private String designType;
@NotBlank(message = "type.cannot.be.empty") @NotBlank(message = "type.cannot.be.empty")
@ApiModelProperty("生成item实际对应的类型 有:Outwear,Dress,Blouse,Skirt,Trousers Shoes Hairstyle Earring") @Schema(description = "生成item实际对应的类型 有:Outwear,Dress,Blouse,Skirt,Trousers Shoes Hairstyle Earring")
private String type; private String type;
@ApiModelProperty("对应的图片的minIO路径") @Schema(description = "对应的图片的minIO路径")
private String path; private String path;
@ApiModelProperty("颜色 存 RGB值 中间空格分隔 比如 \"58 58 169\"") @Schema(description = "颜色 存 RGB值 中间空格分隔 比如 \"58 58 169\"")
private String color; private String color;
@ApiModelProperty("对应的print图片对象") @Schema(description = "对应的print图片对象")
// private DesignPythonItemPrint printObject; // private DesignPythonItemPrint printObject;
private DesignSinglePrintDTO printObject; private DesignSinglePrintDTO printObject;
@ApiModelProperty("图层位置") @Schema(description = "图层位置")
private List<Long> offset; private List<Long> offset;
@ApiModelProperty("图层缩放比例") @Schema(description = "图层缩放比例")
private Float[] scale; private Float[] scale;
@NotNull(message = "priority.cannot.be.empty") @NotNull(message = "priority.cannot.be.empty")
@ApiModelProperty("图层优先级") @Schema(description = "图层优先级")
private Integer priority; private Integer priority;
@ApiModelProperty("渐变 颜色") @Schema(description = "渐变 颜色")
private Gradient gradient; private Gradient gradient;
@ApiModelProperty("画笔修改过的sketch图片的base64格式的数据") @Schema(description = "画笔修改过的sketch图片的base64格式的数据")
private String sketchString; private String sketchString;
@ApiModelProperty("衣服上的装饰") @Schema(description = "衣服上的装饰")
private DesignSinglePrintDTO trims; private DesignSinglePrintDTO trims;
@ApiModelProperty("标注后的mask 的base64") @Schema(description = "标注后的mask 的base64")
private String maskUrl; private String maskUrl;
@ApiModelProperty("mask 的minio地址") @Schema(description = "mask 的minio地址")
private String maskMinioUrl; private String maskMinioUrl;
private PartialDesignDTO partialDesign; private PartialDesignDTO partialDesign;
@Schema(description = "镜像模式 ")
private int[] transpose;
@Schema(description = "45")
private double rotate;
@Hidden
@Schema(description = "带overall印花未分割图片")
private String undividedLayerBase64;
@Hidden
@Schema(description = "带overall/single印花未分割图片")
private String undividedLayerWithSinglePrintBase64;
} }

View File

@@ -1,24 +1,24 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import com.ai.da.model.vo.DesignSinglePrint; import com.ai.da.model.vo.DesignSinglePrint;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel("design single 印花请求信息") @Schema(description = "design single 印花请求信息")
public class DesignSinglePrintDTO implements Serializable { public class DesignSinglePrintDTO implements Serializable {
// @ApiModelProperty("印花url") // @Schema(description = "印花url")
// private String path; // private String path;
/*@ApiModelProperty("single -> true,overall -> false") /*@Schema(description = "single -> true,overall -> false")
private Boolean ifSingle;*/ private Boolean ifSingle;*/
@ApiModelProperty("印花详细") @Schema(description = "印花详细")
private List<DesignSinglePrint> prints; private List<DesignSinglePrint> prints;
public DesignSinglePrintDTO() { public DesignSinglePrintDTO() {

View File

@@ -1,28 +1,27 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("Design dislike 入参") @Schema(description = "Design dislike 入参")
public class DisDesignLikeDTO { public class DisDesignLikeDTO {
@NotNull(message = "groupDetailId.cannot.be.empty") @NotNull(message = "groupDetailId.cannot.be.empty")
@ApiModelProperty("dislike图片对应的分组详情id") @Schema(description = "dislike图片对应的分组详情id")
private Long groupDetailId; private Long groupDetailId;
@NotNull(message = "designId.cannot.be.empty") @NotNull(message = "designId.cannot.be.empty")
@ApiModelProperty("dislike图片到对应的designId中") @Schema(description = "dislike图片到对应的designId中")
private Long designId; private Long designId;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
@ApiModelProperty("项目ID") @Schema(description = "项目ID")
private Long projectId; private Long projectId;
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@@ -9,16 +8,16 @@ import jakarta.validation.constraints.Pattern;
import java.math.BigDecimal; import java.math.BigDecimal;
@Data @Data
@ApiModel @Schema(description = "编辑推荐")
public class EditReferralDTO { public class EditReferralDTO {
@NotNull(message = "referral id cannot be empty") @NotNull(message = "referral id cannot be empty")
@ApiModelProperty("指定需要修改的referral的id") @Schema(description = "指定需要修改的referral的id")
private Long id; private Long id;
@ApiModelProperty("修改佣金金额") @Schema(description = "修改佣金金额")
private BigDecimal commission; private BigDecimal commission;
@ApiModelProperty("referral状态 取值Paid/Unpaid/Accept/Rejected") @Schema(description = "referral状态 取值Paid/Unpaid/Accept/Rejected")
@Pattern(regexp = "Paid|Unpaid|Accept|Rejected", message = "状态必须是Paid/Unpaid/Accept/Rejected") @Pattern(regexp = "Paid|Unpaid|Accept|Rejected", message = "状态必须是Paid/Unpaid/Accept/Rejected")
private String status; private String status;
} }

View File

@@ -1,33 +1,32 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@Data @Data
@ApiModel("邮箱发送") @Schema(description = "邮箱发送")
public class EmailSendDTO { public class EmailSendDTO {
@ApiModelProperty("用户id") @Schema(description = "用户id")
private Long userId; private Long userId;
@NotBlank(message = "email.cannot.be.empty") @NotBlank(message = "email.cannot.be.empty")
@ApiModelProperty("邮箱") @Schema(description = "邮箱")
private String email; private String email;
@NotBlank(message = "operationType.cannot.be.empty") @NotBlank(message = "operationType.cannot.be.empty")
@ApiModelProperty("操作类型 LOGIN 登录 FORGET_PWD 忘记密码 BIND_MAILBOX 绑定邮箱 " + @Schema(description = "操作类型 LOGIN 登录 FORGET_PWD 忘记密码 BIND_MAILBOX 绑定邮箱 " +
"CHANGE_MAILBOX 更改邮箱 UPDATE_USERINFO 仅填写国家、职业(不发送邮件) REGISTER 注册") "CHANGE_MAILBOX 更改邮箱 UPDATE_USERINFO 仅填写国家、职业(不发送邮件) REGISTER 注册")
private String operationType; private String operationType;
@ApiModelProperty("异常ip") @Schema(description = "异常ip")
private String ip; private String ip;
@ApiModelProperty("国家") @Schema(description = "国家")
private String country; private String country;
@ApiModelProperty("职业") @Schema(description = "职业")
private String occupation; private String occupation;
private String title; private String title;

View File

@@ -1,18 +1,17 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
@ApiModel("查询画布详细") @Schema(description = "查询画布详细")
public class ExportSearchDTO { public class ExportSearchDTO {
// private Long userLikeGroupId; // private Long userLikeGroupId;
@ApiModelProperty("画布文件id") @Schema(description = "画布文件id")
private Long id; private Long id;
@ApiModelProperty("画布关联项目id") @Schema(description = "画布关联项目id")
private Long projectId; private Long projectId;
@ApiModelProperty("画布所属模块。canvas | deReconstruction | designItemDetail") @Schema(description = "画布所属模块。canvas | deReconstruction | designItemDetail")
private String module; private String module;
} }

View File

@@ -1,21 +1,20 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("生成高级design 入参") @Schema(description = "生成高级design 入参")
public class GenerateHighDesignDTO { public class GenerateHighDesignDTO {
@NotNull(message = "designItemId.cannot.be.empty") @NotNull(message = "designItemId.cannot.be.empty")
@ApiModelProperty("design的designItemId") @Schema(description = "design的designItemId")
private Long designItemId; private Long designItemId;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
} }

View File

@@ -1,34 +1,33 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("Generate like入参") @Schema(description = "Generate like入参")
public class GenerateLikeDTO { public class GenerateLikeDTO {
@NotNull(message = "generateDetailId.cannot.be.empty") @NotNull(message = "generateDetailId.cannot.be.empty")
@ApiModelProperty("generateDetailId") @Schema(description = "generateDetailId")
private Long generateDetailId; private Long generateDetailId;
@NotBlank(message = "level1Type.cannot.be.empty") @NotBlank(message = "level1Type.cannot.be.empty")
@ApiModelProperty("一级类型 Sketchboard Printboard") @Schema(description = "一级类型 Sketchboard Printboard")
private String level1Type; private String level1Type;
@ApiModelProperty("当一级类型为Sketchboard时二级类型 Outwear Dress Blouse Skirt Trousers当一级类型为Printboard时二级类型 Slogan Logo Pattern") @Schema(description = "当一级类型为Sketchboard时二级类型 Outwear Dress Blouse Skirt Trousers当一级类型为Printboard时二级类型 Slogan Logo Pattern")
private String level2Type; private String level2Type;
@ApiModelProperty("年龄段") @Schema(description = "年龄段")
private String ageGroup; private String ageGroup;
@ApiModelProperty("性别") @Schema(description = "性别")
private String gender; private String gender;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
} }

View File

@@ -1,42 +1,41 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
@ApiModel("修改imageToSketch提取出的sketch") @Schema(description = "修改imageToSketch提取出的sketch")
@Data @Data
public class GenerateModifyDTO { public class GenerateModifyDTO {
@NotBlank(message = "image cannot be empty") @NotBlank(message = "image cannot be empty")
@ApiModelProperty(value = "需要保存的图片的base64格式", required = true) @Schema(description = "需要保存的图片的base64格式", required = true)
private String base64; private String base64;
@NotBlank(message = "gender cannot be empty") @NotBlank(message = "gender cannot be empty")
@ApiModelProperty(value = "sketch所属性别", required = true) @Schema(description = "sketch所属性别", required = true)
private String gender; private String gender;
@NotBlank(message = "category cannot be empty") @NotBlank(message = "category cannot be empty")
@ApiModelProperty(value = "sketch所属分类", required = true) @Schema(description = "sketch所属分类", required = true)
private String category; private String category;
@NotNull(message = "id cannot be empty") @NotNull(message = "id cannot be empty")
@ApiModelProperty(value = "原图id", required = true) @Schema(description = "原图id", required = true)
private Long originalId; private Long originalId;
@NotBlank(message = "original Id Source cannot be empty") @NotBlank(message = "original Id Source cannot be empty")
@ApiModelProperty(value = "原图id的来源 Library || Generate || Collection", required = true) @Schema(description = "原图id的来源 Library || Generate || Collection", required = true)
private String originalIdSource; private String originalIdSource;
@NotNull(message = "isOverride cannot be empty") @NotNull(message = "isOverride cannot be empty")
@ApiModelProperty("是否覆盖原图") @Schema(description = "是否覆盖原图")
private Boolean isOverride; private Boolean isOverride;
@NotBlank(message = "type cannot be empty") @NotBlank(message = "type cannot be empty")
@ApiModelProperty("类型 Sketchboard || Printboard") @Schema(description = "类型 Sketchboard || Printboard")
@Pattern(regexp = "Sketchboard|Printboard", message = "type只能填入Sketchboard 或 Printboard") @Pattern(regexp = "Sketchboard|Printboard", message = "type只能填入Sketchboard 或 Printboard")
private String type; private String type;
} }

View File

@@ -1,64 +1,63 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("GenerateThroughImageTextDTO") @Schema(description = "GenerateThroughImageTextDTO")
public class GenerateThroughImageTextDTO { public class GenerateThroughImageTextDTO {
@NotNull(message = "userId cannot be empty") @NotNull(message = "userId cannot be empty")
@ApiModelProperty("用户id") @Schema(description = "用户id")
private Long userId; private Long userId;
@ApiModelProperty("caption | prompt") @Schema(description = "caption | prompt")
private String text; private String text;
@ApiModelProperty("图片在t_collection_element表中的id") @Schema(description = "图片在t_collection_element表中的id")
private Long collectionElementId; private Long collectionElementId;
// todo 后续取消这个字段的传输,由后端自行判断相关参数是否有值 // todo 后续取消这个字段的传输,由后端自行判断相关参数是否有值
// @NotBlank(message = "you have to choose the generate type") // @NotBlank(message = "you have to choose the generate type")
@ApiModelProperty("text image text-image") @Schema(description = "text image text-image")
private String generateType; private String generateType;
@ApiModelProperty("图片来源update从library中选择,从toProductImage结果中选择 collection || library || productImage") @Schema(description = "图片来源update从library中选择,从toProductImage结果中选择 collection || library || productImage")
private String designType; private String designType;
@NotBlank(message = "level1Type cannot be empty!") @NotBlank(message = "level1Type cannot be empty!")
@ApiModelProperty("Moodboard Printboard Sketchboard MarketingSketch") @Schema(description = "Moodboard Printboard Sketchboard MarketingSketch")
private String level1Type; private String level1Type;
@ApiModelProperty("Outwear Dress Blouse Skirt Trousers || Logo Slogan Pattern") @Schema(description = "Outwear Dress Blouse Skirt Trousers || Logo Slogan Pattern")
private String level2Type; private String level2Type;
@ApiModelProperty("性别") @Schema(description = "性别")
private String gender; private String gender;
@ApiModelProperty("选择的模型名 high || fast || wx || fp") @Schema(description = "选择的模型名 high || fast || wx || fp")
private String modelName; private String modelName;
@NotBlank(message = "timeZone cannot be empty!") @NotBlank(message = "timeZone cannot be empty!")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
@ApiModelProperty("唯一id用于保持消息唯一性") @Schema(description = "唯一id用于保持消息唯一性")
private String uniqueId; private String uniqueId;
@NotNull(message = "Please check if the required fields are empty.(isTestUser)") @NotNull(message = "Please check if the required fields are empty.(isTestUser)")
@ApiModelProperty("是否是测试用户") @Schema(description = "是否是测试用户")
private Boolean isTestUser; private Boolean isTestUser;
@ApiModelProperty("页面上用户设计的slogan所截的图片") @Schema(description = "页面上用户设计的slogan所截的图片")
private String sloganBase64; private String sloganBase64;
@ApiModelProperty("种子 取值范围 0~500") @Schema(description = "种子 取值范围 0~500")
private String seed; private String seed;
@ApiModelProperty("年龄区间 Adult || Child") @Schema(description = "年龄区间 Adult || Child")
private String ageGroup = "Adult"; private String ageGroup = "Adult";
} }

View File

@@ -1,19 +1,19 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import com.ai.da.model.vo.PageQueryBaseVo; import com.ai.da.model.vo.PageQueryBaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@ApiModel("按条件分页查询关注列表") @Schema(description = "按条件分页查询关注列表")
public class GetFollowListDTO extends PageQueryBaseVo { public class GetFollowListDTO extends PageQueryBaseVo {
@ApiModelProperty("查找指定用户名") @Schema(description = "查找指定用户名")
private String searchByName; private String searchByName;
@ApiModelProperty("按关注时间排序 DESC 降序 || ASC 升序") @Schema(description = "按关注时间排序 DESC 降序 || ASC 升序")
private String order; private String order;
} }

View File

@@ -1,16 +1,16 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import com.ai.da.model.vo.PageQueryBaseVo; import com.ai.da.model.vo.PageQueryBaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ApiModel @Schema(description = "获取通知")
@Data @Data
public class GetNotificationDTO extends PageQueryBaseVo { public class GetNotificationDTO extends PageQueryBaseVo {
@ApiModelProperty("system/like/comment/follow/newPosted") @Schema(description = "system/like/comment/follow/newPosted")
private String type; private String type;
} }

View File

@@ -1,22 +1,21 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("根据rgb数组批量获取潘通rgb") @Schema(description = "根据rgb数组批量获取潘通rgb")
public class GetRgbByHsvBatchDTO { public class GetRgbByHsvBatchDTO {
@NotNull(message = "h.cannot.be.empty") @NotNull(message = "h.cannot.be.empty")
@ApiModelProperty("h值") @Schema(description = "h值")
private Integer h; private Integer h;
@NotNull(message = "s.cannot.be.empty") @NotNull(message = "s.cannot.be.empty")
@ApiModelProperty("s值") @Schema(description = "s值")
private Integer s; private Integer s;
@NotNull(message = "v.cannot.be.empty") @NotNull(message = "v.cannot.be.empty")
@ApiModelProperty("v值") @Schema(description = "v值")
private Integer v; private Integer v;
} }

View File

@@ -1,17 +1,16 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("History删除") @Schema(description = "History删除")
public class HistoryDeleteDTO { public class HistoryDeleteDTO {
@NotNull(message = "userGroupId.cannot.be.empty") @NotNull(message = "userGroupId.cannot.be.empty")
@ApiModelProperty("history 分组id") @Schema(description = "history 分组id")
private Long userGroupId; private Long userGroupId;
} }

View File

@@ -1,8 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data; import lombok.Data;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
@@ -10,19 +8,19 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("History编辑") @Schema(description = "History编辑")
public class HistoryUpdateDTO { public class HistoryUpdateDTO {
@NotNull(message = "userGroupId.cannot.be.empty") @NotNull(message = "userGroupId.cannot.be.empty")
@ApiModelProperty("history 分组id") @Schema(description = "history 分组id")
private Long userGroupId; private Long userGroupId;
@NotBlank(message = "userGroupName.cannot.be.empty") @NotBlank(message = "userGroupName.cannot.be.empty")
@ApiModelProperty("history 分组名称") @Schema(description = "history 分组名称")
private String userGroupName; private String userGroupName;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
} }

View File

@@ -1,26 +1,25 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ApiModel("image to sketch") @Schema(description = "image to sketch")
@Data @Data
public class ImageToSketchDTO { public class ImageToSketchDTO {
@ApiModelProperty("上传图片的collection_element_id") @Schema(description = "上传图片的collection_element_id")
private Long elementId; private Long elementId;
@ApiModelProperty("sketch线条风格 1->粗, 2->中, 3->细,传数字,自定义风格时,传空 ") @Schema(description = "sketch线条风格 1->粗, 2->中, 3->细,传数字,自定义风格时,传空 ")
private String style; private String style;
@ApiModelProperty("自定义线条风格上传图片的collection_element_id") @Schema(description = "自定义线条风格上传图片的collection_element_id")
private Long styleImageId; private Long styleImageId;
@ApiModelProperty("性别") @Schema(description = "性别")
private String gender; private String gender;
@ApiModelProperty("模型名") @Schema(description = "模型名")
private String modelName; private String modelName;
public ImageToSketchDTO() { public ImageToSketchDTO() {

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
@@ -9,18 +8,18 @@ import jakarta.validation.constraints.Size;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel("Library删除") @Schema(description = "Library删除")
public class LibraryDeleteDTO { public class LibraryDeleteDTO {
@NotEmpty(message = "libraryIds cannot be empty!") @NotEmpty(message = "libraryIds cannot be empty!")
@Size(max = 100, min = 1) @Size(max = 100, min = 1)
@ApiModelProperty("libraryId数组") @Schema(description = "libraryId数组")
private List<Long> libraryIds; private List<Long> libraryIds;
private Integer deleteModelConfirm; private Integer deleteModelConfirm;
@NotEmpty(message = "timeZone.cannot.be.empty") @NotEmpty(message = "timeZone.cannot.be.empty")
@ApiModelProperty("时区") @Schema(description = "时区")
private String timeZone; private String timeZone;
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -10,15 +9,15 @@ import jakarta.validation.constraints.Size;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel("Library编辑") @Schema(description = "Library编辑")
public class LibraryLevel2TypeUpdateDTO { public class LibraryLevel2TypeUpdateDTO {
@NotEmpty(message = "libraryId cannot be empty!") @NotEmpty(message = "libraryId cannot be empty!")
@ApiModelProperty("libraryId") @Schema(description = "libraryId")
private List<Long> libraryId; private List<Long> libraryId;
@NotBlank(message = "level2Type cannot be empty!") @NotBlank(message = "level2Type cannot be empty!")
@ApiModelProperty("level2Type") @Schema(description = "level2Type")
private String level2Type; private String level2Type;
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -17,56 +16,56 @@ import java.util.List;
* @author easy-generator * @author easy-generator
* @since 2022-11-13 * @since 2022-11-13
*/ */
@ApiModel("template打点入参") @Schema(description = "template打点入参")
@Data @Data
public class LibraryModelPointDTO implements Serializable { public class LibraryModelPointDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@NotNull(message = "libraryId.cannot.be.empty") @NotNull(message = "libraryId.cannot.be.empty")
@ApiModelProperty("libraryId") @Schema(description = "libraryId")
private Long libraryId; private Long libraryId;
private String modelType; private String modelType;
private String modelSex; private String modelSex;
@ApiModelProperty("templateId") @Schema(description = "templateId")
private Long templateId; private Long templateId;
@NotEmpty(message = "shoulderLeft.cannot.be.empty") @NotEmpty(message = "shoulderLeft.cannot.be.empty")
@ApiModelProperty("左肩 数组传类似 [0.2, 0.2]") @Schema(description = "左肩 数组传类似 [0.2, 0.2]")
private List<BigDecimal> shoulderLeft; private List<BigDecimal> shoulderLeft;
@NotEmpty(message = "shoulderRight.cannot.be.empty") @NotEmpty(message = "shoulderRight.cannot.be.empty")
@ApiModelProperty("右肩 数组传类似 [0.2, 0.2]") @Schema(description = "右肩 数组传类似 [0.2, 0.2]")
private List<BigDecimal> shoulderRight; private List<BigDecimal> shoulderRight;
@NotEmpty(message = "waistbandLeft.cannot.be.empty") @NotEmpty(message = "waistbandLeft.cannot.be.empty")
@ApiModelProperty("左腰 数组传类似 [0.2, 0.2]") @Schema(description = "左腰 数组传类似 [0.2, 0.2]")
private List<BigDecimal> waistbandLeft; private List<BigDecimal> waistbandLeft;
@NotEmpty(message = "waistbandRight.cannot.be.empty") @NotEmpty(message = "waistbandRight.cannot.be.empty")
@ApiModelProperty("右腰 数组传类似 [0.2, 0.2]") @Schema(description = "右腰 数组传类似 [0.2, 0.2]")
private List<BigDecimal> waistbandRight; private List<BigDecimal> waistbandRight;
@NotEmpty(message = "handLeft.cannot.be.empty") @NotEmpty(message = "handLeft.cannot.be.empty")
@ApiModelProperty("左手 数组传类似 [0.2, 0.2]") @Schema(description = "左手 数组传类似 [0.2, 0.2]")
private List<BigDecimal> handLeft; private List<BigDecimal> handLeft;
@NotEmpty(message = "handRight.cannot.be.empty") @NotEmpty(message = "handRight.cannot.be.empty")
@ApiModelProperty("右手 数组传类似 [0.2, 0.2]") @Schema(description = "右手 数组传类似 [0.2, 0.2]")
private List<BigDecimal> handRight; private List<BigDecimal> handRight;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
@NotBlank(message = "model.path.cannot.be.empty") @NotBlank(message = "model.path.cannot.be.empty")
@ApiModelProperty("模特路径") @Schema(description = "模特路径")
private String modelPath; private String modelPath;
@ApiModelProperty("是否覆盖保存还是另存为 true -> 保存false -> 另存为") @Schema(description = "是否覆盖保存还是另存为 true -> 保存false -> 另存为")
private Boolean isCovered; private Boolean isCovered;
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
@@ -10,20 +9,20 @@ import jakarta.validation.constraints.Size;
import java.util.List; import java.util.List;
@Data @Data
@ApiModel("Library编辑") @Schema(description = "Library编辑")
public class LibraryUpdateDTO { public class LibraryUpdateDTO {
@NotEmpty(message = "libraryIds cannot be empty!") @NotEmpty(message = "libraryIds cannot be empty!")
@Size(max = 100, min = 1) @Size(max = 100, min = 1)
@ApiModelProperty("libraryId数组") @Schema(description = "libraryId数组")
private List<Long> libraryIds; private List<Long> libraryIds;
@NotBlank(message = "libraryName cannot be empty!") @NotBlank(message = "libraryName cannot be empty!")
@ApiModelProperty("library名字") @Schema(description = "library名字")
private String libraryName; private String libraryName;
@NotBlank(message = "timeZone cannot be empty!") @NotBlank(message = "timeZone cannot be empty!")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
} }

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -9,23 +8,23 @@ import org.springframework.web.multipart.MultipartFile;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("Library文件上传") @Schema(description = "Library文件上传")
@AllArgsConstructor @AllArgsConstructor
public class LibraryUploadDTO { public class LibraryUploadDTO {
@NotNull(message = "file.cannot.be.empty") @NotNull(message = "file.cannot.be.empty")
private MultipartFile file; private MultipartFile file;
@ApiModelProperty("一级类型") @Schema(description = "一级类型")
private String level1Type; private String level1Type;
@ApiModelProperty("二级类型") @Schema(description = "二级类型")
private String level2Type; private String level2Type;
@ApiModelProperty("时区") @Schema(description = "时区")
private String timeZone; private String timeZone;
@ApiModelProperty("md5") @Schema(description = "md5")
private String md5; private String md5;
/** /**
* 图片高度,目前只争对 models类型 * 图片高度,目前只争对 models类型

View File

@@ -1,7 +1,6 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -18,44 +17,44 @@ import java.util.List;
* @author easy-generator * @author easy-generator
* @since 2022-11-19 * @since 2022-11-19
*/ */
@ApiModel("template 预览入参") @Schema(description = "template 预览入参")
@Data @Data
public class ModelsDotDTO implements Serializable { public class ModelsDotDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("libraryId 编辑时预览用") @Schema(description = "libraryId 编辑时预览用")
private Long libraryId; private Long libraryId;
@ApiModelProperty("templateId 编辑时预览用") @Schema(description = "templateId 编辑时预览用")
private Long templateId; private Long templateId;
@NotEmpty(message = "shoulderLeft.cannot.be.empty") @NotEmpty(message = "shoulderLeft.cannot.be.empty")
@ApiModelProperty("左肩 数组传类似 [0.2, 0.2]") @Schema(description = "左肩 数组传类似 [0.2, 0.2]")
private List<BigDecimal> shoulderLeft; private List<BigDecimal> shoulderLeft;
@NotEmpty(message = "shoulderRight.cannot.be.empty") @NotEmpty(message = "shoulderRight.cannot.be.empty")
@ApiModelProperty("右肩 数组传类似 [0.2, 0.2]") @Schema(description = "右肩 数组传类似 [0.2, 0.2]")
private List<BigDecimal> shoulderRight; private List<BigDecimal> shoulderRight;
@NotEmpty(message = "waistbandLeft.cannot.be.empty") @NotEmpty(message = "waistbandLeft.cannot.be.empty")
@ApiModelProperty("左腰 数组传类似 [0.2, 0.2]") @Schema(description = "左腰 数组传类似 [0.2, 0.2]")
private List<BigDecimal> waistbandLeft; private List<BigDecimal> waistbandLeft;
@NotEmpty(message = "waistbandRight.cannot.be.empty") @NotEmpty(message = "waistbandRight.cannot.be.empty")
@ApiModelProperty("右腰 数组传类似 [0.2, 0.2]") @Schema(description = "右腰 数组传类似 [0.2, 0.2]")
private List<BigDecimal> waistbandRight; private List<BigDecimal> waistbandRight;
@NotEmpty(message = "handLeft.cannot.be.empty") @NotEmpty(message = "handLeft.cannot.be.empty")
@ApiModelProperty("左手 数组传类似 [0.2, 0.2]") @Schema(description = "左手 数组传类似 [0.2, 0.2]")
private List<BigDecimal> handLeft; private List<BigDecimal> handLeft;
@NotEmpty(message = "handRight.cannot.be.empty") @NotEmpty(message = "handRight.cannot.be.empty")
@ApiModelProperty("右手 数组传类似 [0.2, 0.2]") @Schema(description = "右手 数组传类似 [0.2, 0.2]")
private List<BigDecimal> handRight; private List<BigDecimal> handRight;
@NotBlank(message = "timeZone.cannot.be.empty") @NotBlank(message = "timeZone.cannot.be.empty")
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @Schema(description = "本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
/** /**
* 图片高度,目前只争对 models类型 * 图片高度,目前只争对 models类型

View File

@@ -1,36 +1,35 @@
package com.ai.da.model.dto; package com.ai.da.model.dto;
import io.swagger.annotations.ApiModel; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@Data @Data
@ApiModel("ModifyModelProportionDTO") @Schema(description = "ModifyModelProportionDTO")
public class ModifyModelProportionDTO { public class ModifyModelProportionDTO {
@ApiModelProperty("模特id") @Schema(description = "模特id")
@NotNull(message = "model id cannot be empty") @NotNull(message = "model id cannot be empty")
private Long id; private Long id;
@ApiModelProperty("Library || System") @Schema(description = "Library || System")
@NotBlank(message = "model type cannot be empty") @NotBlank(message = "model type cannot be empty")
private String type; private String type;
@ApiModelProperty("top") @Schema(description = "top")
@NotNull(message = "top cannot be empty") @NotNull(message = "top cannot be empty")
private Integer top; private Integer top;
@ApiModelProperty("bottom") @Schema(description = "bottom")
@NotNull(message = "bottom cannot be empty") @NotNull(message = "bottom cannot be empty")
private Integer bottom; private Integer bottom;
@ApiModelProperty("stretch") @Schema(description = "stretch")
@NotNull(message = "stretch cannot be empty") @NotNull(message = "stretch cannot be empty")
private Float stretch; private Float stretch;
@ApiModelProperty("模特minio地址") @Schema(description = "模特minio地址")
@NotBlank(message = "modelPath type cannot be empty") @NotBlank(message = "modelPath type cannot be empty")
private String modelPath; private String modelPath;

View File

@@ -4,7 +4,7 @@ import com.ai.da.mapper.primary.entity.Library;
import com.ai.da.model.vo.CollectionColorVO; import com.ai.da.model.vo.CollectionColorVO;
import com.ai.da.model.vo.CollectionElementVO; import com.ai.da.model.vo.CollectionElementVO;
import com.ai.da.model.vo.MoodBoardModuleChooseVO; import com.ai.da.model.vo.MoodBoardModuleChooseVO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@@ -15,13 +15,13 @@ public class ModuleSaveDTO {
private MoodBoardModuleSaveDTO moodBoard; private MoodBoardModuleSaveDTO moodBoard;
@ApiModelProperty("印花板图片 数组") @Schema(description = "印花板图片 数组")
private List<DesignCollectionPrintElementDTO> printBoard; private List<DesignCollectionPrintElementDTO> printBoard;
@ApiModelProperty("颜色板RGB值 数组") @Schema(description = "颜色板RGB值 数组")
private List<CollectionColorDTO> colorBoard; private List<CollectionColorDTO> colorBoard;
@ApiModelProperty("手稿板图片id 数组") @Schema(description = "手稿板图片id 数组")
private List<CollectionSketchDTO> sketchBoard; private List<CollectionSketchDTO> sketchBoard;
private PatternMaking3DDTO patternMaking3D; private PatternMaking3DDTO patternMaking3D;

Some files were not shown because too many files have changed in this diff Show More