工业互联网平台2.0版本后端代码
houzhongjian
2025-05-29 41499fd3c28216c1526a72b10fa98eb8ffee78cb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.iailab.module.ai.service.image;
 
import com.iailab.framework.ai.core.model.midjourney.api.MidjourneyApi;
import com.iailab.framework.common.pojo.PageResult;
import com.iailab.module.ai.controller.admin.image.vo.AiImageDrawReqVO;
import com.iailab.module.ai.controller.admin.image.vo.AiImagePageReqVO;
import com.iailab.module.ai.controller.admin.image.vo.AiImagePublicPageReqVO;
import com.iailab.module.ai.controller.admin.image.vo.AiImageUpdateReqVO;
import com.iailab.module.ai.controller.admin.image.vo.midjourney.AiMidjourneyActionReqVO;
import com.iailab.module.ai.controller.admin.image.vo.midjourney.AiMidjourneyImagineReqVO;
import com.iailab.module.ai.dal.dataobject.image.AiImageDO;
import jakarta.validation.Valid;
 
import java.util.List;
 
/**
 * AI 绘图 Service 接口
 *
 * @author fansili
 */
public interface AiImageService {
 
    /**
     * 获取【我的】绘图分页
     *
     * @param userId 用户编号
     * @param pageReqVO 分页条件
     * @return 绘图分页
     */
    PageResult<AiImageDO> getImagePageMy(Long userId, AiImagePageReqVO pageReqVO);
 
    /**
     * 获取公开的绘图分页
     *
     * @param pageReqVO 分页条件
     * @return 绘图分页
     */
    PageResult<AiImageDO> getImagePagePublic(AiImagePublicPageReqVO pageReqVO);
 
    /**
     * 获得绘图记录
     *
     * @param id 绘图编号
     * @return 绘图记录
     */
    AiImageDO getImage(Long id);
 
    /**
     * 获得绘图列表
     *
     * @param ids 绘图编号数组
     * @return 绘图记录列表
     */
    List<AiImageDO> getImageList(List<Long> ids);
 
    /**
     * 绘制图片
     *
     * @param userId 用户编号
     * @param drawReqVO 绘制请求
     * @return 绘画编号
     */
    Long drawImage(Long userId, AiImageDrawReqVO drawReqVO);
 
    /**
     * 删除【我的】绘画记录
     *
     * @param id 绘画编号
     * @param userId 用户编号
     */
    void deleteImageMy(Long id, Long userId);
 
    /**
     * 获得绘画分页
     *
     * @param pageReqVO 分页查询
     * @return 绘画分页
     */
    PageResult<AiImageDO> getImagePage(AiImagePageReqVO pageReqVO);
 
    /**
     * 更新绘画
     *
     * @param updateReqVO 更新信息
     */
    void updateImage(@Valid AiImageUpdateReqVO updateReqVO);
 
    /**
     * 删除绘画
     *
     * @param id 编号
     */
    void deleteImage(Long id);
 
    // ================ midjourney 专属 ================
 
    /**
     * 【Midjourney】生成图片
     *
     * @param userId 用户编号
     * @param reqVO 绘制请求
     * @return 绘画编号
     */
    Long midjourneyImagine(Long userId, AiMidjourneyImagineReqVO reqVO);
 
    /**
     * 【Midjourney】同步图片进展
     *
     * @return 同步成功数量
     */
    Integer midjourneySync();
 
    /**
     * 【Midjourney】通知图片进展
     *
     * @param notify 通知
     */
    void midjourneyNotify(MidjourneyApi.Notify notify);
 
    /**
     * 【Midjourney】Action 操作(放大、缩小、U1、U2...)
     *
     * @param userId 用户编号
     * @param reqVO 绘制请求
     * @return 绘画编号
     */
    Long midjourneyAction(Long userId, AiMidjourneyActionReqVO reqVO);
 
}