mitao
2025-01-17 afa0dbb4f54e7244835dd67ec33c3e545f122f71
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
package com.ruoyi.goods.domain.vo;
 
import com.alibaba.fastjson2.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
 
import java.util.List;
 
/**
 * @author mitao
 * @date 2025/1/14
 */
@Data
@ApiModel("直播详情2.0视图对象")
public class XiaoeLiveDetailVOV2 {
    @ApiModelProperty(value = "资源信息")
    @JSONField(name = "resource_info")
    private ResourceInfo resourceInfo;
    @ApiModelProperty(value = "配置信息")
    @JSONField(name = "module_info")
    private ModuleInfo moduleInfo;
    @ApiModelProperty(value = "商品信息")
    @JSONField(name = "goods_info")
    private GoodsInfo goodsInfo;
    @ApiModelProperty(value = "关联信息")
    @JSONField(name = "relation_info")
    private RelationInfo relationInfo;
    @ApiModelProperty(value = "讲师信息")
    @JSONField(name = "role_info")
    private List<RelationInfo.RoleInfo> roleInfo;
 
    @Data
    @ApiModel(description = "资源信息")
    public static class ResourceInfo {
        @ApiModelProperty(value = "店铺id", example = "app_id")
        @JSONField(name = "app_id")
        private String appId;
        @ApiModelProperty(value = "直播ID", example = "id")
        @JSONField(name = "id")
        private String id;
        @ApiModelProperty(value = "直播标题", example = "title")
        @JSONField(name = "title")
        private String title;
        @ApiModelProperty(value = "直播简介", example = "summary")
        @JSONField(name = "summary")
        private String summary;
        @ApiModelProperty(value = "直播详情(仅允许纯文本)", example = "descrb")
        @JSONField(name = "descrb")
        private String descrb;
        @ApiModelProperty(value = "直播类型:0-语音,1-录播直播,2-推流直播", example = "2")
        @JSONField(name = "alive_type")
        private Integer aliveType;
        @ApiModelProperty(value = "预设直播开始时间", example = "2023-05-31 18:00:00")
        @JSONField(name = "zb_start_at")
        private String zbStartAt;
        @ApiModelProperty(value = "预设直播时长,单位:秒", example = "3600")
        @JSONField(name = "zb_stop_at")
        private Integer zbStopAt;
        @ApiModelProperty(value = "详情封面图素材ID", example = "img_material_id")
        @JSONField(name = "img_material_id")
        private String imgMaterialId;
        @ApiModelProperty(value = "宣传封面图素材ID", example = "alive_img_material_id")
        @JSONField(name = "alive_img_material_id")
        private String aliveImgMaterialId;
        @ApiModelProperty(value = "暖场封面图素材ID", example = "aliveroom_img_material_id")
        @JSONField(name = "aliveroom_img_material_id")
        private String aliveroomImgMaterialId;
        @ApiModelProperty(value = "暖场视频封面图素材ID", example = "warm_up_video_cover_material_id")
        @JSONField(name = "warm_up_video_cover_material_id")
        private String warmUpVideoCoverMaterialId;
        @ApiModelProperty(value = "暖场视频素材ID", example = "warm_up_video_material_id")
        @JSONField(name = "warm_up_video_material_id")
        private String warmUpVideoMaterialId;
        @ApiModelProperty(value = "录播视频素材ID", example = "alive_video_material_id")
        @JSONField(name = "alive_video_material_id")
        private String aliveVideoMaterialId;
 
    }
 
    @Data
    @ApiModel(description = "配置信息")
    public static class ModuleInfo {
        @ApiModelProperty(value = "是否开启回放:0-开启,1-关闭", example = "0")
        @JSONField(name = "is_lookback")
        private Integer isLookback;
        @ApiModelProperty(value = "回放是否允许倍速播放或快进:0-允许,1-禁止", example = "0")
        @JSONField(name = "play_fast_state_switch")
        private Integer playFastStateSwitch;
        @ApiModelProperty(value = "直播模式:0-横屏直播,1-竖屏直播", example = "0")
        @JSONField(name = "alive_mode")
        private Integer aliveMode;
        @ApiModelProperty(value = "回放有效期设置:1-永久,2-限时", example = "1")
        @JSONField(name = "expire_type")
        private Integer expireType;
        @ApiModelProperty(value = "回放过期时间", example = "2023-06-30")
        @JSONField(name = "expire")
        private String expire;
        @ApiModelProperty(value = "暖场设置:1-暖场图,2-暖场视频", example = "1")
        @JSONField(name = "warm_up")
        private Integer warmUp;
        @ApiModelProperty(value = "是否开启完成条件:0-关闭,1-开启", example = "0")
        @JSONField(name = "is_open_complete_time")
        private Integer isOpenCompleteTime;
        @ApiModelProperty(value = "设置最短学习时间(单位:分钟)", example = "0")
        @JSONField(name = "complete_time")
        private Integer completeTime;
        @ApiModelProperty(value = "是否开启联系学员:0-关闭,1-开启", example = "0")
        @JSONField(name = "is_contact_on")
        private Integer isContactOn;
    }
 
    @Data
    @ApiModel(description = "商品信息")
    public static class GoodsInfo {
        @ApiModelProperty(value = "售卖类型:1-单独售卖、2-关联售卖", example = "1")
        @JSONField(name = "sale_type")
        private Integer saleType;
        @ApiModelProperty(value = "支付类型:1-免费,2-收费,3-加密,4-指定学员可用,5-仅关联上级资源", example = "1")
        @JSONField(name = "payment_type")
        private Integer paymentType;
        @ApiModelProperty(value = "价格(单位:分)", example = "0")
        @JSONField(name = "piece_price")
        private Integer piecePrice;
        @ApiModelProperty(value = "划线价格(单位:分)", example = "0")
        @JSONField(name = "line_price")
        private Integer linePrice;
        @ApiModelProperty(value = "密码", example = "resource_password")
        @JSONField(name = "resource_password")
        private String resourcePassword;
        @ApiModelProperty(value = "上下架:1-下架,0-上架", example = "0")
        @JSONField(name = "recycle_bin_state")
        private Integer recycleBinState;
        @ApiModelProperty(value = "定时上架时间", example = "2023-05-31 17:19:26")
        @JSONField(name = "start_at")
        private String startAt;
        @ApiModelProperty(value = "是否停售:0-否,1-是", example = "0")
        @JSONField(name = "is_stop_sell")
        private Integer isStopSell;
        @ApiModelProperty(value = "商品编码", example = "goods_sn")
        @JSONField(name = "goods_sn")
        private String goodsSn;
        @ApiModelProperty(value = "商品状态:0-可见,1-隐藏,2-删除", example = "0")
        @JSONField(name = "state")
        private Integer state;
    }
 
    @Data
    @ApiModel(description = "关联信息")
    public static class RelationInfo {
        @ApiModelProperty(value = "资源id")
        @JSONField(name = "package")
        private List<String> packageIds;
        @ApiModelProperty(value = "预留字段,暂未支持")
        @JSONField(name = "attach_goods")
        private List<String> attachGoods;
        @ApiModelProperty(value = "预留字段,暂未支持")
        @JSONField(name = "tags")
        private List<String> tags;
 
        @Data
        @ApiModel(description = "讲师信息列表")
        public static class RoleInfo {
            @ApiModelProperty(value = "自定义身份标签", example = "讲师")
            @JSONField(name = "role_name")
            private String roleName;
            @ApiModelProperty(value = "用户id", example = "u_6688888888889999999")
            @JSONField(name = "user_id")
            private String userId;
            @ApiModelProperty(value = "用户昵称", example = "测试")
            @JSONField(name = "nickname")
            private String nickname;
            @ApiModelProperty(value = "用户头像", example = "avator")
            @JSONField(name = "avator")
            private String avator;
            @ApiModelProperty(value = "是否接受打赏:1-接受打赏,0-不接受打赏", example = "1")
            @JSONField(name = "is_can_exceptional")
            private Integer isCanExceptional;
        }
    }
}