|
@@ -1,11 +1,17 @@
|
|
|
package com.yonge.cooleshow.biz.dal.wrapper;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.annotation.IdType;
|
|
|
+import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
+import com.baomidou.mybatisplus.annotation.TableId;
|
|
|
import com.dayaedu.cbs.common.enums.EClientType;
|
|
|
import com.dayaedu.cbs.common.enums.music.*;
|
|
|
import com.dayaedu.cbs.common.enums.school.EMusicSheetType;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
|
|
|
import com.microsvc.toolkit.common.response.paging.QueryInfo;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.*;
|
|
|
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
|
|
|
import io.swagger.annotations.ApiModel;
|
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
@@ -15,8 +21,13 @@ import lombok.Data;
|
|
|
import lombok.NoArgsConstructor;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
+import javax.validation.constraints.NotBlank;
|
|
|
+import javax.validation.constraints.NotNull;
|
|
|
+import javax.validation.constraints.Size;
|
|
|
+import java.io.Serializable;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
|
|
|
|
/**
|
|
@@ -117,182 +128,320 @@ public class MusicSheetWrapper {
|
|
|
@NoArgsConstructor
|
|
|
@AllArgsConstructor
|
|
|
@ApiModel(" MusicSheet-曲谱表")
|
|
|
- public static class MusicSheet {
|
|
|
+ public static class MusicSheet implements Serializable {
|
|
|
|
|
|
- @ApiModelProperty("主键")
|
|
|
- private Long id;
|
|
|
+ @TableId(value = "id_", type = IdType.AUTO)
|
|
|
+ @ApiModelProperty(value = "主键id")
|
|
|
+ private String id; //主键ID
|
|
|
|
|
|
- @ApiModelProperty("曲谱分类")
|
|
|
- private Integer musicSheetCategoriesId;
|
|
|
+ @TableField(value = "cbs_music_sheet_id_")
|
|
|
+ @ApiModelProperty(value = "内容平台曲目ID")
|
|
|
+ private String cbsMusicSheetId; //主键ID
|
|
|
|
|
|
- @ApiModelProperty("曲谱名称")
|
|
|
- private String musicSheetName;
|
|
|
+ @NotBlank(message = "曲谱名称不能为空!")
|
|
|
+ @Size(max = 64, message = "曲谱名称长度不能超过64位!")
|
|
|
+ @TableField("music_sheet_name_")
|
|
|
+ @ApiModelProperty(value = "曲谱名称")
|
|
|
+ private String musicSheetName; //曲谱名称
|
|
|
|
|
|
- @ApiModelProperty("可用途径 ORG 机构 PLATFORM 平台")
|
|
|
- private String availableType;
|
|
|
|
|
|
- //曲谱类型 SINGLE/CONCERT ,使用MusicSheetTypeEnum
|
|
|
- @ApiModelProperty(value = "曲谱类型(SINGLE:单曲,CONCERT:合奏)")
|
|
|
- private EMusicSheetType musicSheetType;
|
|
|
+ @NotBlank(message = "曲谱封面图不能为空!")
|
|
|
+ @TableField("title_img_")
|
|
|
+ @ApiModelProperty(value = "封面图")
|
|
|
+ private String titleImg; //曲谱名称
|
|
|
|
|
|
- @ApiModelProperty("封面图")
|
|
|
- private String titleImg;
|
|
|
+ @TableField("user_id_")
|
|
|
+ @ApiModelProperty(value = "曲谱来源(平台用户ID或者是老师ID)")
|
|
|
+ private Long userId; //曲谱来源(平台用户ID或者是老师ID)
|
|
|
|
|
|
+ @TableField("notation_")
|
|
|
+ @ApiModelProperty("是否可以转简谱(0:否,1:是)")
|
|
|
+ private YesOrNoEnum notation;
|
|
|
|
|
|
- @ApiModelProperty("曲谱来源id")
|
|
|
- private Long userId;
|
|
|
+ @TableField("music_img_")
|
|
|
+ @ApiModelProperty("曲目图片")
|
|
|
+ private String musicImg;
|
|
|
|
|
|
+ @TableField("source_type_")
|
|
|
+ @ApiModelProperty(value = "曲目来源类型 TEACHER 老师 PLATFORM 平台")
|
|
|
+ private SourceTypeEnum sourceType;
|
|
|
|
|
|
- @ApiModelProperty("曲目来源类型 TEACHER 老师 PLATFORM 平台")
|
|
|
- private String sourceType;
|
|
|
|
|
|
+ @TableField("provider_type_")
|
|
|
+ @ApiModelProperty(value = "提供方 TENANT 机构 PLATFORM 平台")
|
|
|
+ private SourceTypeEnum providerType;
|
|
|
|
|
|
- @ApiModelProperty("作曲人")
|
|
|
- private String composer;
|
|
|
+ @NotBlank(message = "艺术家不能为空!")
|
|
|
+ @Size(max = 32, message = "艺术家长度不能超过32位!")
|
|
|
+ @TableField("composer_")
|
|
|
+ @ApiModelProperty(value = "艺术家")
|
|
|
+ private String composer; //音乐家
|
|
|
|
|
|
+ @TableField("music_subject_")
|
|
|
+ @ApiModelProperty(value = "曲谱声部(适用的乐器,可能是多个,用逗号分隔)")
|
|
|
+ private String musicSubject; //曲谱声部(适用的乐器,可能是多个,用逗号分隔)
|
|
|
|
|
|
- @ApiModelProperty("曲谱声部(适用的乐器,可能是多个,用逗号分隔)")
|
|
|
- private String musicSubject;
|
|
|
+ @NotNull(message = "曲谱音频文件类型不能为空!")
|
|
|
+ @TableField("audio_type_")
|
|
|
+ @ApiModelProperty(value = "曲目音频类型 MP3:mp3, MIDI:midi,")
|
|
|
+ private AudioTypeEnum audioType;
|
|
|
|
|
|
+ @TableField("mp3_type_")
|
|
|
+ @ApiModelProperty(value = "mp3类型 MP3:mp3, MP3_METRONOME:MP3_METRONOME,")
|
|
|
+ private AudioTypeEnum mp3Type;
|
|
|
|
|
|
- @ApiModelProperty("mp3曲谱类型 MP3;MP3_METRONOME")
|
|
|
- private String mp3Type;
|
|
|
|
|
|
+ @TableField("favorite_count_")
|
|
|
+ @ApiModelProperty(value = "收藏数")
|
|
|
+ private Integer favoriteCount;
|
|
|
|
|
|
- @ApiModelProperty("曲目图片")
|
|
|
- private String musicImg;
|
|
|
|
|
|
+ @ApiModelProperty("虚拟人数 ")
|
|
|
+ @TableField(value = "virtual_number_")
|
|
|
+ private Integer virtualNumber;
|
|
|
|
|
|
- @ApiModelProperty("曲谱音频文件类型(midi;mp3)")
|
|
|
- private String audioType;
|
|
|
+ @NotBlank(message = "曲谱标签不能为空!")
|
|
|
+ @TableField("music_tag_")
|
|
|
+ @ApiModelProperty(value = "曲谱标签(多个标签用逗号分隔)")
|
|
|
+ private String musicTag; //曲谱标签(多个标签用逗号分隔)
|
|
|
|
|
|
+ @NotNull(message = "伴奏类型不能为空!")
|
|
|
+ @TableField("accompaniment_type_")
|
|
|
+ @ApiModelProperty(value = "伴奏类型 HOMEMODE:自制伴奏 COMMON:普通伴奏")
|
|
|
+ private AccompanimentTypeEnum accompanimentType;
|
|
|
|
|
|
- @ApiModelProperty("是否可以转简谱(0:否,1:是)")
|
|
|
- private Integer notation;
|
|
|
+ @TableField("play_speed_")
|
|
|
+ // @NotNull(message = "默认播放速度不能为空!")
|
|
|
+ @ApiModelProperty(value = "默认播放速度")
|
|
|
+ private String playSpeed; //默认播放速度
|
|
|
|
|
|
+ @TableField("can_evaluate_")
|
|
|
+ @ApiModelProperty(value = "是否可以评测(0:否;1:是)")
|
|
|
+ private YesOrNoEnum canEvaluate; //是否可以评测(0:否;1:是)
|
|
|
|
|
|
- @ApiModelProperty("曲谱标签(多个标签用逗号分隔)")
|
|
|
- private String musicTag;
|
|
|
+ @TableField("show_fingering_")
|
|
|
+ @ApiModelProperty(value = "是否展示指法(0:否;1:是)")
|
|
|
+ private YesOrNoEnum showFingering; //是否展示指法(0:否;1:是)
|
|
|
|
|
|
+ // @NotNull(message = "收费类型不能为空!")
|
|
|
+ @TableField("charge_type_")
|
|
|
+ @ApiModelProperty(value = "收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)")
|
|
|
+ private ChargeTypeEnum chargeType; //收费类型(0:免费;1:会员;2:单曲收费)
|
|
|
|
|
|
- @ApiModelProperty("默认播放速度")
|
|
|
- private String playSpeed;
|
|
|
+ @NotNull(message = "收费类型不能为空!")
|
|
|
+ @TableField("payment_type_")
|
|
|
+ @ApiModelProperty(value = "收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)")
|
|
|
+ private String paymentType;
|
|
|
|
|
|
|
|
|
- @ApiModelProperty("是否可以评测(0:否;1:是)")
|
|
|
- private Boolean canEvaluate;
|
|
|
+ @TableField("state_")
|
|
|
+ @ApiModelProperty(value = "曲目状态(0:停用,1:启用)")
|
|
|
+ private YesOrNoEnum state;
|
|
|
|
|
|
+ @TableField("reason_")
|
|
|
+ @ApiModelProperty(value = "曲目停用原因")
|
|
|
+ private String reason;
|
|
|
|
|
|
- @ApiModelProperty("伴奏类型 HOMEMODE:自制 COMMON:普通")
|
|
|
- private String accompanimentType;
|
|
|
+ @TableField("audit_status_")
|
|
|
+ @ApiModelProperty(value = "审核状态(DOING:待审核;PASS:通过;UNPASS:未通过)")
|
|
|
+ private AuthStatusEnum auditStatus;
|
|
|
|
|
|
+ @TableField("submit_audit_time_")
|
|
|
+ @ApiModelProperty(value = "提交审核时间")
|
|
|
+ private Date submitAuditTime;
|
|
|
|
|
|
- @ApiModelProperty("是否展示指法(0:否;1:是)")
|
|
|
- private Boolean showFingering;
|
|
|
+ @TableField("first_pass_audit_time_")
|
|
|
+ @ApiModelProperty(value = "第一次通过审核时间")
|
|
|
+ private Date firstPassAuditTime;
|
|
|
|
|
|
+ @TableField("sort_number_")
|
|
|
+ @ApiModelProperty(value = "排序号")
|
|
|
+ private Integer sortNumber; //排序号
|
|
|
|
|
|
- @ApiModelProperty("曲目状态(0:停用,1:启用)")
|
|
|
- private Boolean status;
|
|
|
+ @TableField("top_flag_")
|
|
|
+ @ApiModelProperty(value = "是否置顶(0:否;1:是)")
|
|
|
+ private YesOrNoEnum topFlag; //是否置顶(0:否;1:是)
|
|
|
|
|
|
+ @TableField("hot_flag_")
|
|
|
+ @ApiModelProperty(value = "是否热门曲谱(0:否;1:是)")
|
|
|
+ private YesOrNoEnum hotFlag; //是否热门曲谱(0:否;1:是)
|
|
|
|
|
|
- @ApiModelProperty("曲目停用原因")
|
|
|
- private String reason;
|
|
|
+ @TableField("exquisite_flag_")
|
|
|
+ @ApiModelProperty(value = "精品标志(0:否;1:是)")
|
|
|
+ private YesOrNoEnum exquisiteFlag;
|
|
|
|
|
|
+ @TableField("music_price_")
|
|
|
+ @ApiModelProperty(value = "曲谱价格")
|
|
|
+ private java.math.BigDecimal musicPrice; //曲谱价格
|
|
|
|
|
|
- @ApiModelProperty("排序号")
|
|
|
- private Integer sortNumber;
|
|
|
+ @TableField("audio_file_url_")
|
|
|
+ @ApiModelProperty(value = "音频文件存储路径")
|
|
|
+ private String audioFileUrl; //音频文件存储路径
|
|
|
|
|
|
+ @NotBlank(message = "XML文件存储路径不能为空!")
|
|
|
+ @TableField("xml_file_url_")
|
|
|
+ @ApiModelProperty(value = "XML文件存储路径")
|
|
|
+ private String xmlFileUrl; //XML文件存储路径
|
|
|
|
|
|
- @ApiModelProperty("midi路径")
|
|
|
- private String midiUrl;
|
|
|
|
|
|
+ @TableField("midi_url_")
|
|
|
+ @ApiModelProperty(value = "midi路径")
|
|
|
+ private String midiUrl; //XML文件存储路径
|
|
|
|
|
|
- @ApiModelProperty("伴奏含节拍器路径")
|
|
|
- private String metronomeUrl;
|
|
|
|
|
|
+ @TableField("metronome_url_")
|
|
|
+ @ApiModelProperty(value = "伴奏含节拍器路径")
|
|
|
+ private String metronomeUrl; //XML文件存储路径
|
|
|
|
|
|
- @ApiModelProperty("伴奏(不含节拍器)路径")
|
|
|
- private String url;
|
|
|
|
|
|
+ @TableField("url_")
|
|
|
+ @ApiModelProperty(value = "伴奏(不含节拍器)路径")
|
|
|
+ private String url; //XML文件存储路径
|
|
|
|
|
|
- @ApiModelProperty("音频文件存储路径")
|
|
|
- private String audioFileUrl;
|
|
|
+ @TableField("has_beat_")
|
|
|
+ @ApiModelProperty(value = "是否自带节拍器(0:否;1:是)")
|
|
|
+ private YesOrNoEnum hasBeat; //是否自带节拍器(0:否;1:是)
|
|
|
|
|
|
+ @TableField("audit_version_")
|
|
|
+ @ApiModelProperty(value = "是否审核时可见 (0:否 1:是)")
|
|
|
+ private YesOrNoEnum auditVersion;
|
|
|
|
|
|
- @ApiModelProperty("XML文件存储路径")
|
|
|
- private String xmlFileUrl;
|
|
|
+ @TableField("create_time_")
|
|
|
+ @ApiModelProperty(value = "创建时间")
|
|
|
+ private java.util.Date createTime; //创建时间
|
|
|
|
|
|
+ @TableField("create_by_")
|
|
|
+ @ApiModelProperty(value = "创建人(老师或者是后台平台用户)")
|
|
|
+ private Long createBy; //创建人(老师或者是后台平台用户)
|
|
|
|
|
|
- @ApiModelProperty("是否自带节拍器(0:否;1:是)")
|
|
|
- private Boolean hasBeat;
|
|
|
+ @TableField("update_time_")
|
|
|
+ @ApiModelProperty(value = "更新时间")
|
|
|
+ private java.util.Date updateTime; //更新时间
|
|
|
|
|
|
+ @TableField("update_by_")
|
|
|
+ @ApiModelProperty(value = "更新人(老师或者是后台平台用户)")
|
|
|
+ private Long updateBy; //更新人(老师或者是后台平台用户)
|
|
|
|
|
|
- @ApiModelProperty("曲目配置")
|
|
|
- private String extConfigJson;
|
|
|
+ @TableField("remark_")
|
|
|
+ @ApiModelProperty(value = "备注")
|
|
|
+ private String remark; //备注,填写未通过审核的原因
|
|
|
|
|
|
|
|
|
- @ApiModelProperty("创建时间")
|
|
|
- private Date createTime;
|
|
|
+ @TableField("ext_config_json_")
|
|
|
+ @ApiModelProperty("曲目配置信息")
|
|
|
+ private String extConfigJson;
|
|
|
|
|
|
- @ApiModelProperty("创建人(老师或者是后台平台用户)")
|
|
|
- private Long createBy;
|
|
|
+ @TableField("music_json_")
|
|
|
+ private String musicJSON;
|
|
|
|
|
|
- @ApiModelProperty("创建用户")
|
|
|
- private String createUser;
|
|
|
+ @TableField("music_svg_")
|
|
|
+ private String musicSvg;
|
|
|
|
|
|
- @ApiModelProperty("更新时间")
|
|
|
- private Date updateTime;
|
|
|
+ @TableField("music_jian_svg_")
|
|
|
+ private String musicJianSvg;
|
|
|
|
|
|
- @ApiModelProperty("更新人(老师或者是后台平台用户)")
|
|
|
- private Long updateBy;
|
|
|
+ @TableField("music_first_svg_")
|
|
|
+ private String musicFirstSvg;
|
|
|
|
|
|
- @ApiModelProperty("更新用户")
|
|
|
- private String updateUser;
|
|
|
+ @TableField("first_tone_")
|
|
|
+ @ApiModelProperty("首调")
|
|
|
+ private String firstTone;
|
|
|
|
|
|
- @ApiModelProperty("备注")
|
|
|
- private String remark;
|
|
|
+ @TableField("fixed_tone_")
|
|
|
+ @ApiModelProperty("固定调")
|
|
|
+ private String fixedTone;
|
|
|
|
|
|
- @ApiModelProperty("假删除标识 0:未删除 1:已删除")
|
|
|
+ @TableField("del_flag_")
|
|
|
+ @ApiModelProperty(value = "假删除标识 0:未删除 1:已删除")
|
|
|
private Boolean delFlag;
|
|
|
|
|
|
- @ApiModelProperty("伴奏")
|
|
|
- private List<MusicSheetAccompanimentWrapper.MusicSheetAccompaniment> background;
|
|
|
+ @TableField("correct_time_")
|
|
|
+ @ApiModelProperty(value = "数据修复时间")
|
|
|
+ private Date correctTime;
|
|
|
|
|
|
- @ApiModelProperty("曲目缓存")
|
|
|
- private String musicJSON;
|
|
|
+ //曲谱类型 SINGLE/CONCERT ,使用MusicSheetTypeEnum
|
|
|
+ @TableField("music_sheet_type_")
|
|
|
+ @ApiModelProperty(value = "曲谱类型(SINGLE:单曲,CONCERT:合奏)")
|
|
|
+ private MusicSheetTypeEnum musicSheetType;
|
|
|
|
|
|
- @ApiModelProperty("曲目缓存svg")
|
|
|
- private String musicSvg;
|
|
|
+ public ChargeTypeEnum getChargeType() {
|
|
|
+ if (Objects.isNull(this.chargeType) && StringUtils.isNotEmpty(getPaymentType())) {
|
|
|
|
|
|
- @ApiModelProperty("曲目缓存简谱svg")
|
|
|
- private String musicJianSvg;
|
|
|
+ return ChargeTypeEnum.valueOf(getPaymentType().split(",")[0]);
|
|
|
+ }
|
|
|
+ return chargeType;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- @ApiModelProperty("曲目缓存首调svg")
|
|
|
- private String musicFirstSvg;
|
|
|
+ @Data
|
|
|
+ @NoArgsConstructor
|
|
|
+ @AllArgsConstructor
|
|
|
+ public static class MusicSheetDetailVo extends MusicSheet {
|
|
|
|
|
|
- @ApiModelProperty("是否节奏音乐")
|
|
|
- private Boolean rhythmFlag;
|
|
|
+ @ApiModelProperty("曲谱伴奏")
|
|
|
+ private List<MusicSheetAccompaniment> background;
|
|
|
|
|
|
- @ApiModelProperty("内容平台曲目ID")
|
|
|
- private Long cbsMusicSheetId;
|
|
|
+ @ApiModelProperty("是否能播放(0:否,1:是) 学生端进入小酷Ai判断 试用/完整 播放")
|
|
|
+ private YesOrNoEnum play;
|
|
|
|
|
|
- @ApiModelProperty("内容平台声部ID")
|
|
|
- private String cbsSubjectId;
|
|
|
|
|
|
- @ApiModelProperty("所属学校ID")
|
|
|
- private String schoolIds;
|
|
|
+ @ApiModelProperty("收藏0:否,1:是")
|
|
|
+ private YesOrNoEnum favorite;
|
|
|
|
|
|
- @ApiModelProperty(value = "是否审核时可见 (0:否 1:是)")
|
|
|
- private YesOrNoEnum auditVersion;
|
|
|
+ @ApiModelProperty("订单状态(WAIT_PAY:待支付;PAYING:支付中,PAID:已付款)")
|
|
|
+ private OrderStatusEnum orderStatus;
|
|
|
|
|
|
- public String jsonString() {
|
|
|
- return JSON.toJSONString(this);
|
|
|
- }
|
|
|
+ @ApiModelProperty("支付订单号")
|
|
|
+ private String orderNo;
|
|
|
|
|
|
- public static MusicSheet from(String json) {
|
|
|
- return JSON.parseObject(json, MusicSheet.class);
|
|
|
- }
|
|
|
- }
|
|
|
+ @ApiModelProperty("上传老师名称")
|
|
|
+ private String userName;
|
|
|
+
|
|
|
+ @ApiModelProperty("上传用户头像")
|
|
|
+ private String userAvatar;
|
|
|
+
|
|
|
+ @ApiModelProperty("标签名")
|
|
|
+ private String musicTagNames;
|
|
|
+
|
|
|
+ @ApiModelProperty("声部名")
|
|
|
+ private String subjectNames;
|
|
|
+
|
|
|
+ @ApiModelProperty("声部code")
|
|
|
+ private String code;
|
|
|
+
|
|
|
+ @ApiModelProperty("声部频率")
|
|
|
+ private Integer aiDefaultFrequency;
|
|
|
+
|
|
|
+ @ApiModelProperty("审核理由")
|
|
|
+ private String reason;
|
|
|
+
|
|
|
+ @ApiModelProperty("是否使用节拍器")
|
|
|
+ private Boolean isPlayBeat;
|
|
|
+
|
|
|
+// @ApiModelProperty("上一次审核的曲目信息")
|
|
|
+// private MusicSheetDetailVo lastMusicSheet;
|
|
|
+
|
|
|
+ @ApiModelProperty("真实姓名")
|
|
|
+ private String realName;
|
|
|
+
|
|
|
+ @ApiModelProperty("审核时间")
|
|
|
+ private Date auditTime;
|
|
|
+
|
|
|
+ @ApiModelProperty("审核人")
|
|
|
+ private String auditName;
|
|
|
+
|
|
|
+ @ApiModelProperty("审核理由")
|
|
|
+ private String auditReason;
|
|
|
+
|
|
|
+ @ApiModelProperty("是否为课件")
|
|
|
+ private YesOrNoEnum coursewareStatus = YesOrNoEnum.NO;
|
|
|
+
|
|
|
+ @ApiModelProperty("课件id")
|
|
|
+ private Long coursewareId;
|
|
|
+
|
|
|
+ @ApiModelProperty("曲目json文件")
|
|
|
+ private String musicSheetJson;
|
|
|
+ }
|
|
|
|
|
|
@Data
|
|
|
@ApiModel(" MusicSheet-曲目表")
|