Pārlūkot izejas kodu

酷乐秀曲目来源改为内容平台

zouxuan 1 gadu atpakaļ
vecāks
revīzija
43e39de62e
17 mainītis faili ar 331 papildinājumiem un 509 dzēšanām
  1. 8 7
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetAuthRecordController.java
  2. 0 10
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetAuditDao.java
  3. 8 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetAuthRecordDao.java
  4. 2 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetDao.java
  5. 8 104
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherMusicSheetAuditReq.java
  6. 0 214
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAudit.java
  7. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAccompanimentService.java
  8. 0 9
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuditService.java
  9. 13 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuthRecordService.java
  10. 6 14
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  11. 25 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAccompanimentServiceImpl.java
  12. 0 76
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuditServiceImpl.java
  13. 123 39
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuthRecordServiceImpl.java
  14. 71 20
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  15. 0 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetAudioMapper.xml
  16. 61 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetAuthRecordMapper.xml
  17. 4 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

+ 8 - 7
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetAuthRecordController.java

@@ -38,20 +38,21 @@ public class MusicSheetAuthRecordController extends BaseController {
     @PostMapping(value = "/audit", consumes="application/json", produces="application/json")
     @ApiOperation(value = "审核中心-乐谱审核", httpMethod="POST", consumes="application/json", produces="application/json")
     @PreAuthorize("@pcs.hasPermissions('music/sheet/audit')")
-    public HttpResponseResult<Boolean> audit(@Valid @RequestBody TeacherMusicSheetAuditReq param) {
-        return status(musicSheetService.audit(param,sysUserService.getUserId()));
+    public HttpResponseResult audit(@Valid @RequestBody TeacherMusicSheetAuditReq param) {
+        musicSheetAuthRecordService.audit(param,sysUserService.getUserId());
+        return succeed();
     }
 
 
     @GetMapping(value = "/auditDetail/{authMusicSheetId}")
     @ApiOperation(value = "审核中心-乐谱审核详情",  notes = "传入曲目审核id")
-    public HttpResponseResult<MusicSheetDetailVo> auditDetail(@PathVariable Long authMusicSheetId) {
-        return succeed(musicSheetService.auditDetail(authMusicSheetId));
+    public HttpResponseResult<MusicSheetDetailVo> auditDetail(@PathVariable Long musicSheetAuthRecordId) {
+        return succeed(musicSheetAuthRecordService.auditDetail(musicSheetAuthRecordId));
     }
 
-    @GetMapping(value = "/auditDetailList/{authMusicSheetId}")
+    @GetMapping(value = "/auditDetailList/{musicSheetAuthRecordId}")
     @ApiOperation(value = "审核中心-乐谱审核详情历史记录",  notes = "传入曲目审核id")
-    public HttpResponseResult<List<MusicSheetDetailVo>> auditDetailList(@PathVariable Long authMusicSheetId) {
-        return succeed(musicSheetService.auditDetailList(authMusicSheetId));
+    public HttpResponseResult<List<MusicSheetDetailVo>> auditDetailList(@PathVariable String batchNo) {
+        return succeed(musicSheetAuthRecordService.auditDetailList(batchNo));
     }
 }

+ 0 - 10
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetAuditDao.java

@@ -1,10 +0,0 @@
-package com.yonge.cooleshow.biz.dal.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheetAudit;
-
-
-public interface MusicSheetAuditDao extends BaseMapper<MusicSheetAudit>{
-
-	
-}

+ 8 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetAuthRecordDao.java

@@ -1,10 +1,17 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
+import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 public interface MusicSheetAuthRecordDao extends BaseMapper<MusicSheetAuthRecord>{
 
-	
+
+    List<TeacherMusicSheetVo> selectAuditPage(@Param("page") IPage<TeacherMusicSheetVo> page, @Param("param") TeacherMusicSheetAuditSearch query);
 }

+ 2 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetDao.java

@@ -167,12 +167,10 @@ public interface MusicSheetDao extends BaseMapper<MusicSheet> {
     /**
      * 审核历史记录
      *
-     * @param originalMusicSheetId 原曲目id
-     * @param authMusicSheetId     最新的审核曲目id
+     * @param musicSheetId 曲目id
      * @return
      */
-    List<MusicSheetDetailVo> auditDetailList(@Param("originalMusicSheetId") Long originalMusicSheetId, @Param(
-            "authMusicSheetId") Long authMusicSheetId);
+    List<MusicSheetDetailVo> auditDetailList(@Param("musicSheetId") Long musicSheetId, @Param("batchNo") String batchNo);
 
     /**
      * 单曲数量统计

+ 8 - 104
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherMusicSheetAuditReq.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
@@ -16,6 +17,7 @@ import javax.validation.constraints.NotNull;
  * @author liujunchi
  * @date 2022-04-02
  */
+@Data
 @ApiModel(value = "TeacherMusicSheetAuditReq对象", description = "曲目审核")
 public class TeacherMusicSheetAuditReq {
 
@@ -26,6 +28,12 @@ public class TeacherMusicSheetAuditReq {
     @ApiModelProperty(value = "曲谱渲染图",required = true)
     private String musicImg;
 
+    @ApiModelProperty("首调图片")
+    private String musicFirstImg;
+
+    @ApiModelProperty("固定调图片")
+    private String musicJianImg;
+
     @ApiModelProperty("首调")
     private String firstTone;
 
@@ -60,108 +68,4 @@ public class TeacherMusicSheetAuditReq {
 
     @ApiModelProperty(value = "音频文件存储路径")
     private String audioFileUrl;  //音频文件存储路径
-
-    public String getMusicImg() {
-        return musicImg;
-    }
-
-    public void setMusicImg(String musicImg) {
-        this.musicImg = musicImg;
-    }
-
-    public Long getMusicSheetId() {
-        return musicSheetId;
-    }
-
-    public void setMusicSheetId(Long musicSheetId) {
-        this.musicSheetId = musicSheetId;
-    }
-
-    public AuthStatusEnum getAuthStatus() {
-        return authStatus;
-    }
-
-    public void setAuthStatus(AuthStatusEnum authStatus) {
-        this.authStatus = authStatus;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    public YesOrNoEnum getNotation() {
-        return notation;
-    }
-
-    public void setNotation(YesOrNoEnum notation) {
-        this.notation = notation;
-    }
-
-    public YesOrNoEnum getCanEvaluate() {
-        return canEvaluate;
-    }
-
-    public void setCanEvaluate(YesOrNoEnum canEvaluate) {
-        this.canEvaluate = canEvaluate;
-    }
-
-    public YesOrNoEnum getShowFingering() {
-        return showFingering;
-    }
-
-    public void setShowFingering(YesOrNoEnum showFingering) {
-        this.showFingering = showFingering;
-    }
-
-    public YesOrNoEnum getHasBeat() {
-        return hasBeat;
-    }
-
-    public void setHasBeat(YesOrNoEnum hasBeat) {
-        this.hasBeat = hasBeat;
-    }
-
-    public AudioTypeEnum getMp3Type() {
-        return mp3Type;
-    }
-
-    public void setMp3Type(AudioTypeEnum mp3Type) {
-        this.mp3Type = mp3Type;
-    }
-
-    public AudioTypeEnum getAudioType() {
-        return audioType;
-    }
-
-    public void setAudioType(AudioTypeEnum audioType) {
-        this.audioType = audioType;
-    }
-
-    public String getAudioFileUrl() {
-        return audioFileUrl;
-    }
-
-    public void setAudioFileUrl(String audioFileUrl) {
-        this.audioFileUrl = audioFileUrl;
-    }
-
-    public String getFirstTone() {
-        return firstTone;
-    }
-
-    public void setFirstTone(String firstTone) {
-        this.firstTone = firstTone;
-    }
-
-    public String getFixedTone() {
-        return fixedTone;
-    }
-
-    public void setFixedTone(String fixedTone) {
-        this.fixedTone = fixedTone;
-    }
 }

+ 0 - 214
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAudit.java

@@ -1,214 +0,0 @@
-package com.yonge.cooleshow.biz.dal.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.yonge.cooleshow.biz.dal.enums.*;
-import com.yonge.cooleshow.common.enums.YesOrNoEnum;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-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.math.BigDecimal;
-import java.util.Date;
-import java.util.Objects;
-
-@ApiModel(value = "music_sheet_audit-曲谱审核表")
-@Data
-public class MusicSheetAudit implements Serializable {
-
-    @TableId(value = "id_", type = IdType.AUTO)
-    @ApiModelProperty(value = "主键id")
-    private Long id;  //主键ID
-
-    @NotBlank(message = "曲谱名称不能为空!")
-    @Size(max = 64, message = "曲谱名称长度不能超过64位!")
-    @TableField("music_sheet_name_")
-    @ApiModelProperty(value = "曲谱名称")
-    private String musicSheetName;  //曲谱名称
-
-
-	@NotBlank(message = "曲谱封面图不能为空!")
-	@TableField("title_img_")
-	@ApiModelProperty(value = "封面图")
-	private String titleImg;  //曲谱名称
-
-	@TableField("notation_")
-	@ApiModelProperty("是否可以转简谱(0:否,1:是)")
-	private YesOrNoEnum notation;
-
-	@TableField("music_img_")
-	@ApiModelProperty("曲目图片")
-	private String musicImg;
-
-	@TableField("source_type_")
-	@ApiModelProperty(value = "曲目来源类型 TEACHER 老师 PLATFORM 平台")
-	private SourceTypeEnum sourceType;
-
-
-    @TableField("provider_type_")
-    @ApiModelProperty(value = "提供方 TENANT 机构 PLATFORM 平台")
-    private SourceTypeEnum providerType;
-
-    @NotBlank(message = "艺术家不能为空!")
-    @Size(max = 32, message = "艺术家长度不能超过32位!")
-    @TableField("composer_")
-    @ApiModelProperty(value = "艺术家")
-    private String composer;  //音乐家
-
-    @TableField("music_subject_")
-    @ApiModelProperty(value = "曲谱声部(适用的乐器,可能是多个,用逗号分隔)")
-    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;
-
-    @NotBlank(message = "曲谱标签不能为空!")
-    @TableField("music_tag_")
-    @ApiModelProperty(value = "曲谱标签(多个标签用逗号分隔)")
-    private String musicTag;  //曲谱标签(多个标签用逗号分隔)
-
-	@NotNull(message = "伴奏类型不能为空!")
-	@TableField("accompaniment_type_")
-	@ApiModelProperty(value = "伴奏类型 HOMEMODE:自制伴奏  COMMON:普通伴奏")
-	private AccompanimentTypeEnum accompanimentType;
-
-    @TableField("play_speed_")
-	// @NotNull(message = "默认播放速度不能为空!")
-    @ApiModelProperty(value = "默认播放速度")
-    private String playSpeed;  //默认播放速度
-
-    @TableField("can_evaluate_")
-    @ApiModelProperty(value = "是否可以评测(0:否;1:是)")
-    private YesOrNoEnum canEvaluate;  //是否可以评测(0:否;1:是)
-
-    @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:单曲收费)
-
-	@NotNull(message = "收费类型不能为空!")
-	@TableField("payment_type_")
-	@ApiModelProperty(value = "收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)")
-	private String paymentType;
-
-    @TableField("audit_status_")
-    @ApiModelProperty(value = "审核状态(DOING:待审核;PASS:通过;UNPASS:未通过)")
-    private AuthStatusEnum auditStatus;
-
-    @TableField("sort_number_")
-    @ApiModelProperty(value = "排序号")
-    private Integer sortNumber;  //排序号
-
-    @TableField("top_flag_")
-    @ApiModelProperty(value = "是否置顶(0:否;1:是)")
-    private YesOrNoEnum topFlag;  //是否置顶(0:否;1:是)
-
-    @TableField("hot_flag_")
-    @ApiModelProperty(value = "是否热门曲谱(0:否;1:是)")
-    private YesOrNoEnum hotFlag;  //是否热门曲谱(0:否;1:是)
-
-    @TableField("exquisite_flag_")
-    @ApiModelProperty(value = "精品标志(0:否;1:是)")
-    private YesOrNoEnum exquisiteFlag;
-
-    @TableField("music_price_")
-    @ApiModelProperty(value = "曲谱价格")
-    private BigDecimal musicPrice;  //曲谱价格
-
-    @TableField("audio_file_url_")
-    @ApiModelProperty(value = "音频文件存储路径")
-    private String audioFileUrl;  //音频文件存储路径
-
-    @NotBlank(message = "XML文件存储路径不能为空!")
-    @TableField("xml_file_url_")
-    @ApiModelProperty(value = "XML文件存储路径")
-    private String xmlFileUrl;  //XML文件存储路径
-
-
-	@TableField("midi_url_")
-	@ApiModelProperty(value = "midi路径")
-	private String midiUrl;  //XML文件存储路径
-
-
-	@TableField("metronome_url_")
-	@ApiModelProperty(value = "伴奏含节拍器路径")
-	private String metronomeUrl;  //XML文件存储路径
-
-
-	@TableField("url_")
-	@ApiModelProperty(value = "伴奏(不含节拍器)路径")
-	private String url;  //XML文件存储路径
-
-    @TableField("has_beat_")
-    @ApiModelProperty(value = "是否自带节拍器(0:否;1:是)")
-    private YesOrNoEnum hasBeat;  //是否自带节拍器(0:否;1:是)
-
-	@TableField("audit_version_")
-	@ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
-	private YesOrNoEnum auditVersion;
-
-    @TableField("create_time_")
-    @ApiModelProperty(value = "创建时间")
-    private Date createTime;  //创建时间
-
-    @TableField("create_by_")
-    @ApiModelProperty(value = "创建人(老师或者是后台平台用户)")
-    private Long createBy;  //创建人(老师或者是后台平台用户)
-
-    @TableField("update_time_")
-    @ApiModelProperty(value = "更新时间")
-    private Date updateTime;  //更新时间
-
-	@TableField("ext_config_json_")
-	@ApiModelProperty("曲目配置信息")
-	private String extConfigJson;
-	
-	@TableField("music_json_")
-	private String musicJSON;
-	
-	@TableField("music_svg_")
-	private String musicSvg;
-	
-	@TableField("music_jian_svg_")
-	private String musicJianSvg;
-	
-	@TableField("music_first_svg_")
-	private String musicFirstSvg;
-
-	@TableField("first_tone_")
-	@ApiModelProperty("首调")
-	private String firstTone;
-
-	@TableField("fixed_tone_")
-	@ApiModelProperty("固定调")
-	private String fixedTone;
-
-	//曲谱类型 SINGLE/CONCERT ,使用MusicSheetTypeEnum
-	@TableField("music_sheet_type_")
-	@ApiModelProperty(value = "曲谱类型(SINGLE:单曲,CONCERT:合奏)")
-	private MusicSheetTypeEnum musicSheetType;
-
-	public ChargeTypeEnum getChargeType() {
-		if (Objects.isNull(this.chargeType) && StringUtils.isNotEmpty(getPaymentType())) {
-
-			return ChargeTypeEnum.valueOf(getPaymentType().split(",")[0]);
-		}
-		return chargeType;
-	}
-}

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAccompanimentService.java

@@ -23,4 +23,6 @@ public interface MusicSheetAccompanimentService extends IService<MusicSheetAccom
     MusicSheetAccompanimentDao getDao();
 
     List<MusicSheetAccompaniment> getByMusicSheetId(Long musicSheetId);
+
+    List<MusicSheetAccompaniment> initMusicSheetAccompaniment(String musicSheetJson,Long musicSheetId);
 }

+ 0 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuditService.java

@@ -1,9 +0,0 @@
-package com.yonge.cooleshow.biz.dal.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheetAudit;
-
-public interface MusicSheetAuditService extends IService<MusicSheetAudit>  {
-
-    MusicSheetAudit initMusicSheet(String musicSheetJson);
-}

+ 13 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuthRecordService.java

@@ -1,8 +1,14 @@
 package com.yonge.cooleshow.biz.dal.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
+
+import java.util.List;
 
 /**
  * 曲目审核表 服务类
@@ -18,7 +24,7 @@ public interface MusicSheetAuthRecordService extends IService<MusicSheetAuthReco
      * @param userId 用户id
      * @return boolean
      */
-    Long audit(TeacherMusicSheetAuditReq param, Long userId);
+    void audit(TeacherMusicSheetAuditReq param, Long userId);
 
     /**
      * 设置曲目审核中状态
@@ -39,4 +45,10 @@ public interface MusicSheetAuthRecordService extends IService<MusicSheetAuthReco
     Integer addRecord(MusicSheetAuthRecord musicSheetAuthRecord);
 
     void updateRecord(MusicSheetAuthRecord musicSheetAuthRecord);
+
+    IPage<TeacherMusicSheetVo> selectAuditPage(IPage<TeacherMusicSheetVo> page, TeacherMusicSheetAuditSearch query);
+
+    MusicSheetDetailVo auditDetail(Long musicSheetAuthRecordId);
+
+    List<MusicSheetDetailVo> auditDetailList(String batchNo);
 }

+ 6 - 14
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

@@ -2,7 +2,6 @@ package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApplicationExtendWrapper;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
 import com.yonge.cooleshow.biz.dal.dto.MusicImgDto;
@@ -193,6 +192,8 @@ public interface MusicSheetService extends IService<MusicSheet> {
      */
     boolean audit(TeacherMusicSheetAuditReq param, Long userId);
 
+    void auditSyncCbs(Long cbsMusicSheetId);
+
     /**
      * 假删除曲目
      *
@@ -361,20 +362,8 @@ public interface MusicSheetService extends IService<MusicSheet> {
      */
     Boolean updateMusicCorrect(MusicImgDto musicImgDto, Long musicSheetId);
 
-    /**
-     *
-     * @param authMusicSheetId 曲目审核id
-     */
-    MusicSheetDetailVo auditDetail(Long authMusicSheetId);
 
-    /**
-     *
-     * 审核历史记录
-     *
-     * @param authMusicSheetId 曲目审核id
-     * @return
-     */
-    List<MusicSheetDetailVo> auditDetailList(Long authMusicSheetId);
+    void initMusicSheetDetailVo(List<MusicSheetDetailVo> sheetDetailVos);
 
     /**
      * 添加上架曲目的虚拟数
@@ -412,4 +401,7 @@ public interface MusicSheetService extends IService<MusicSheet> {
      *
      */
     MusicCompareWrapper.SearchData searchTenant(MusicCompareWrapper.MusicSearch queryInfo);
+
+    MusicSheet initMusicSheet(String musicSheetJson);
+
 }

+ 25 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAccompanimentServiceImpl.java

@@ -1,14 +1,20 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetAccompanimentDao;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetAccompanimentService;
+import com.yonge.toolset.base.exception.BizException;
+import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -42,4 +48,23 @@ public class MusicSheetAccompanimentServiceImpl extends ServiceImpl<MusicSheetAc
     public void delByMusicSheetId(Long musicSheetId) {
         musicSheetAccompanimentDao.delByMusicSheetId(musicSheetId);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public List<MusicSheetAccompaniment> initMusicSheetAccompaniment(String musicSheetJson,Long musicSheetId) {
+        CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
+        List<CbsMusicSheetWrapper.MusicSheetSound> soundList = addMusicSheet.getMusicSheetSoundList();
+        if (CollectionUtils.isEmpty(soundList)) {
+            throw new BizException("曲目原音不能为空");
+        }
+        List<MusicSheetAccompaniment> background = new ArrayList<>();
+        for (CbsMusicSheetWrapper.MusicSheetSound sound : soundList) {
+            MusicSheetAccompaniment accompaniment = new MusicSheetAccompaniment();
+            accompaniment.setAudioFileUrl(sound.getAudioFileUrl());
+            accompaniment.setSortNumber(sound.getSortNumber());
+            accompaniment.setTrack(sound.getTrack());
+            background.add(accompaniment);
+        }
+        return background;
+    }
 }

+ 0 - 76
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuditServiceImpl.java

@@ -1,76 +0,0 @@
-package com.yonge.cooleshow.biz.dal.service.impl;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.dayaedu.cbs.common.enums.music.EMusicAvailableType;
-import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApplicationExtendClientWrapper;
-import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
-import com.yonge.cooleshow.biz.dal.dao.MusicSheetAuditDao;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheetAudit;
-import com.yonge.cooleshow.biz.dal.enums.AccompanimentTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
-import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetAuditService;
-import com.yonge.cooleshow.common.enums.YesOrNoEnum;
-import com.yonge.toolset.base.exception.BizException;
-import org.apache.commons.collections.CollectionUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.StringUtils;
-
-import java.util.List;
-
-
-@Service
-public class MusicSheetAuditServiceImpl extends ServiceImpl<MusicSheetAuditDao, MusicSheetAudit> implements MusicSheetAuditService {
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public MusicSheetAudit initMusicSheet(String musicSheetJson) {
-        if(StringUtils.isEmpty(musicSheetJson)){
-            throw new BizException("曲目信息不能为空");
-        }
-        CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
-        List<CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend> addMusicSheetApplicationExtend = addMusicSheet.getAddMusicSheetApplicationExtend();
-        if(org.apache.commons.collections.CollectionUtils.isEmpty(addMusicSheetApplicationExtend)){
-            throw new BizException("曲目应用不能为空");
-        }
-        MusicSheetAudit musicSheetAudit = new MusicSheetAudit();
-        if(addMusicSheet.getAvailableType() != null){
-            musicSheetAudit.setProviderType(addMusicSheet.getAvailableType() == EMusicAvailableType.PLATFORM ? SourceTypeEnum.PLATFORM :
-                    addMusicSheet.getAvailableType() == EMusicAvailableType.PERSON ? SourceTypeEnum.TEACHER: SourceTypeEnum.TENANT);
-        }
-        musicSheetAudit.setMusicSheetName(addMusicSheet.getName());
-        musicSheetAudit.setMusicSubject(addMusicSheet.getSubjectIds());
-        musicSheetAudit.setMusicSvg(addMusicSheet.getMusicSvg());
-        musicSheetAudit.setComposer(addMusicSheet.getComposer());
-        musicSheetAudit.setTitleImg(addMusicSheet.getMusicCover());
-        if(addMusicSheet.getAudioType() != null){
-            musicSheetAudit.setAccompanimentType(AccompanimentTypeEnum.valueOf(addMusicSheet.getAudioType().getCode()));
-        }
-        musicSheetAudit.setPlaySpeed(addMusicSheet.getPlaySpeed());
-        List<CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend> extend = addMusicSheet.getAddMusicSheetApplicationExtend();
-        if(CollectionUtils.isNotEmpty(extend)){
-            CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend applicationExtend = extend.get(0);
-            musicSheetAudit.setMusicTag(applicationExtend.getMusicTagIds());
-            if(applicationExtend.getPaymentType() != null){
-                musicSheetAudit.setPaymentType(applicationExtend.getPaymentType().getCode());
-                musicSheetAudit.setChargeType(ChargeTypeEnum.valueOf(applicationExtend.getPaymentType().getCode()));
-            }
-            if(applicationExtend.getTopFlag() != null){
-                musicSheetAudit.setTopFlag(applicationExtend.getTopFlag()? YesOrNoEnum.YES: YesOrNoEnum.NO);
-            }
-            if(applicationExtend.getExquisiteFlag() != null){
-                musicSheetAudit.setExquisiteFlag(applicationExtend.getExquisiteFlag()? YesOrNoEnum.YES: YesOrNoEnum.NO);
-            }
-            musicSheetAudit.setSortNumber(applicationExtend.getSortNo());
-            musicSheetAudit.setAuditStatus(AuthStatusEnum.DOING);
-            musicSheetAudit.setMusicPrice(applicationExtend.getMusicPrice());
-            musicSheetAudit.setNotation(applicationExtend.getNotation()? YesOrNoEnum.YES: YesOrNoEnum.NO);
-            musicSheetAudit.setMusicImg(musicSheetExtend.getMusicImg());
-            musicSheetAudit.setSourceType(musicSheetExtend.getSourceType() == EMusicSourceType.TEACHER ? SourceTypeEnum.TEACHER : SourceTypeEnum.PLATFORM);
-            musicSheetAudit.setComposer(musicSheetExtend.getComposer());
-        }
-    }
-}

+ 123 - 39
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuthRecordServiceImpl.java

@@ -1,83 +1,123 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApplicationExtendClientWrapper;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetAuthRecordDao;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheetAudit;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetAuditService;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetAuthRecordService;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum;
+import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
 import com.yonge.cooleshow.common.service.IdGeneratorService;
 import com.yonge.toolset.base.exception.BizException;
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 @Service
 public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthRecordDao, MusicSheetAuthRecord> implements MusicSheetAuthRecordService {
-
+    private static final Logger log = LoggerFactory.getLogger(MusicSheetAuthRecordServiceImpl.class);
     @Resource
     private IdGeneratorService idGeneratorService;
     @Resource
-    private MusicSheetAuditService musicSheetAuditService;
+    private MusicSheetService musicSheetService;
+    @Resource
+    private MusicFeignClientService musicFeignClientService;
+    @Resource
+    private TeacherService teacherService;
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
+    private SysMessageService sysMessageService;
+    @Resource
+    private MusicSheetAccompanimentService musicSheetAccompanimentService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Long audit(TeacherMusicSheetAuditReq param, Long userId) {
-
+    public void audit(TeacherMusicSheetAuditReq param, Long userId) {
+        musicSheetService.audit(param, userId);
         // 查询到审核记录
         List<MusicSheetAuthRecord> list = this.lambdaQuery()
                                               .eq(MusicSheetAuthRecord::getMusicSheetId, param.getMusicSheetId())
                                               .eq(MusicSheetAuthRecord::getAuditState, AuthStatusEnum.DOING.getCode())
                                               .list();
-
-        MusicSheetAuthRecord musicSheetAuthRecord = new MusicSheetAuthRecord();
-        if (!CollectionUtils.isEmpty(list)) {
-            musicSheetAuthRecord = list.get(0);
-        } else {
-            musicSheetAuthRecord.setCreateTime(new Date());
-        }
-
-        // 替换审核id
-        replaceAuthRecord(param, musicSheetAuthRecord);
-        musicSheetAuthRecord.setMusicSheetId(param.getMusicSheetId());
-        if (param.getAuthStatus().equals(AuthStatusEnum.PASS)) {
-            musicSheetAuthRecord.setMusicSheetId(musicSheetAuthRecord.getOriginalMusicSheetId());
+        if (CollectionUtils.isEmpty(list)) {
+            throw new BizException("没有找到待审核记录");
         }
+        MusicSheetAuthRecord musicSheetAuthRecord = list.get(0);
         musicSheetAuthRecord.setAuditState(param.getAuthStatus());
         musicSheetAuthRecord.setReason(param.getRemark());
         musicSheetAuthRecord.setVerifyUserId(userId);
-        musicSheetAuthRecord.setUpdateTime(new Date());
-        this.saveOrUpdate(musicSheetAuthRecord);
-        return musicSheetAuthRecord.getOriginalMusicSheetId();
+        musicSheetAuthRecord.setAuditState(param.getAuthStatus());
+        MusicSheet musicSheet = musicSheetService.getById(musicSheetAuthRecord.getMusicSheetId());
+        if (musicSheet == null) {
+            throw new BizException("曲目信息不存在");
+        }
+        musicSheet.setAuditStatus(param.getAuthStatus());
+        musicSheet.setUpdateBy(userId);
+        if (param.getAuthStatus().equals(AuthStatusEnum.PASS)) {
+            musicSheetService.updateById(musicSheet);
+            // 修改老师标签
+            teacherService.setTeacherTag(musicSheet.getUserId(), TeacherTagEnum.MUSIC);
+            //同步到内容平台
+            String musicSheetJson = musicSheetAuthRecord.getMusicSheetJson();
+            CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
+            addMusicSheet.setMusicImg(param.getMusicImg());
+            addMusicSheet.setMusicFirstImg(param.getMusicFirstImg());
+            addMusicSheet.setMusicJianImg(param.getMusicJianImg());
+            addMusicSheet.setId(musicSheet.getCbsMusicSheetId());
+            musicFeignClientService.musicSheetAdd(addMusicSheet);
+        }else {
+            musicSheetService.updateById(musicSheet);
+        }
+        this.updateById(musicSheetAuthRecord);
+        // 发送审核通知
+        Map<Long, String> receivers = new HashMap<>();
+        SysUser teacher = sysUserService.getByUserId(musicSheet.getUserId());
+        receivers.put(musicSheet.getUserId(), teacher.getPhone());
+        try {
+            sendMusicSheetAuditMessage(param, musicSheet, receivers);
+        } catch (Exception e) {
+            log.warn("曲目审核消息发送失败,{}", e.getMessage());
+        }
     }
 
-    private void replaceAuthRecord(TeacherMusicSheetAuditReq param, MusicSheetAuthRecord musicSheetAuthRecord) {
-        if (param.getAuthStatus().equals(AuthStatusEnum.PASS) && !musicSheetAuthRecord.getOriginalMusicSheetId().equals(
-                musicSheetAuthRecord.getMusicSheetId())) {
-            List<MusicSheetAuthRecord> musicSheetAuthRecords = this.lambdaQuery()
-                                                   .eq(MusicSheetAuthRecord::getMusicSheetId,
-                                                       musicSheetAuthRecord.getOriginalMusicSheetId())
-                                                   .list();
-            if (!CollectionUtils.isEmpty(musicSheetAuthRecords)) {
-                MusicSheetAuthRecord record = musicSheetAuthRecords.get(0);
-                record.setMusicSheetId(param.getMusicSheetId());
-                this.saveOrUpdate(record);
-            }
-
+    // 发送曲目审核消息
+    private void sendMusicSheetAuditMessage(TeacherMusicSheetAuditReq param, MusicSheet musicSheet, Map<Long, String> receivers) {
+        if (AuthStatusEnum.PASS.getCode().equals(param.getAuthStatus().getCode())) {
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.MUSIC_SHEET_AUTH_PASS,
+                    receivers, null, 0, null, ClientEnum.TEACHER.getCode(), musicSheet.getMusicSheetName());
+        } else if (AuthStatusEnum.UNPASS.getCode().equals(param.getAuthStatus().getCode())) {
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.MUSIC_SHEET_AUTH_UNPASS,
+                    receivers, null, 0, null, ClientEnum.TEACHER.getCode(), musicSheet.getMusicSheetName(),
+                    param.getRemark());
         }
     }
 
+
     @Override
     public void setAuditDoing(Long musicSheetId, Long originalMusicSheetId, Long lastMusicSheetId) {
         List<MusicSheetAuthRecord> list = this.lambdaQuery()
@@ -127,18 +167,23 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Integer addRecord(MusicSheetAuthRecord musicSheetAuthRecord) {
         this.checkRecord(musicSheetAuthRecord);
         //保存曲目信息
-        MusicSheetAudit musicSheetAudit = musicSheetAuditService.initMusicSheet(musicSheetAuthRecord.getMusicSheetJson());
-        musicSheetAuditService.saveApplicationExtend(musicSheetAuthRecord.getMusicSheetJson());
+        MusicSheet musicSheet = musicSheetService.initMusicSheet(musicSheetAuthRecord.getMusicSheetJson());
+        musicSheetService.save(musicSheet);
+        List<MusicSheetAccompaniment> musicSheetAccompaniments = musicSheetAccompanimentService.initMusicSheetAccompaniment(musicSheetAuthRecord.getMusicSheetJson(),musicSheet.getId());
+        musicSheetAccompanimentService.saveBatch(musicSheetAccompaniments);
         String batchNo = idGeneratorService.generatorId("payment") + "";
         musicSheetAuthRecord.setBatchNo(batchNo);
         musicSheetAuthRecord.setAuditState(AuthStatusEnum.DOING);
+        musicSheetAuthRecord.setMusicSheetId(musicSheet.getId());
         return baseMapper.insert(musicSheetAuthRecord);
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void updateRecord(MusicSheetAuthRecord musicSheetAuthRecord) {
         this.checkRecord(musicSheetAuthRecord);
         if(musicSheetAuthRecord.getId() == null){
@@ -148,14 +193,53 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
         if (record == null){
             throw new BizException("曲目信息不存在");
         }
+        MusicSheet musicSheet = musicSheetService.initMusicSheet(musicSheetAuthRecord.getMusicSheetJson());
+        MusicSheet musicSheet1 = musicSheetService.getById(record.getMusicSheetId());
+        musicSheet.setCbsMusicSheetId(musicSheet1.getCbsMusicSheetId());
         if(record.getAuditState() == AuthStatusEnum.DOING){
+            musicSheetService.removeById(record.getMusicSheetId());
+            musicSheetAccompanimentService.delByMusicSheetId(record.getMusicSheetId());
+            //保存曲目信息
+            musicSheetService.save(musicSheet);
+            List<MusicSheetAccompaniment> musicSheetAccompaniments = musicSheetAccompanimentService.initMusicSheetAccompaniment(musicSheetAuthRecord.getMusicSheetJson(),musicSheet.getId());
+            musicSheetAccompanimentService.saveBatch(musicSheetAccompaniments);
+            record.setMusicSheetId(musicSheet.getId());
             record.setMusicSheetJson(musicSheetAuthRecord.getMusicSheetJson());
             baseMapper.updateById(record);
         }else {
+            //保存曲目信息
+            musicSheetService.save(musicSheet);
+            List<MusicSheetAccompaniment> musicSheetAccompaniments = musicSheetAccompanimentService.initMusicSheetAccompaniment(musicSheetAuthRecord.getMusicSheetJson(),musicSheet.getId());
+            musicSheetAccompanimentService.saveBatch(musicSheetAccompaniments);
+            musicSheetAuthRecord.setMusicSheetId(musicSheet.getId());
             musicSheetAuthRecord.setSubmitUserId(record.getSubmitUserId());
             musicSheetAuthRecord.setBatchNo(record.getBatchNo());
             musicSheetAuthRecord.setAuditState(AuthStatusEnum.DOING);
             baseMapper.insert(musicSheetAuthRecord);
         }
     }
+
+    @Override
+    public IPage<TeacherMusicSheetVo> selectAuditPage(IPage<TeacherMusicSheetVo> page, TeacherMusicSheetAuditSearch query) {
+        return page.setRecords(baseMapper.selectAuditPage(page, query));
+    }
+
+    @Override
+    public MusicSheetDetailVo auditDetail(Long musicSheetAuthRecordId) {
+        MusicSheetAuthRecord musicSheetAuthRecord = this.getById(musicSheetAuthRecordId);
+        MusicSheetDetailVo detail = musicSheetService.detail(musicSheetAuthRecord.getMusicSheetId(), null, null);
+        List<MusicSheetDetailVo> sheetDetailVos = musicSheetService.getDao().auditDetailList(musicSheetAuthRecord.getMusicSheetId(),null);
+        musicSheetService.initMusicSheetDetailVo(sheetDetailVos);
+        if (CollectionUtils.isNotEmpty(sheetDetailVos)) {
+            detail.setLastMusicSheet(sheetDetailVos.get(0));
+        }
+        return detail;
+    }
+
+    @Override
+    public List<MusicSheetDetailVo> auditDetailList(String batchNo) {
+        List<MusicSheetDetailVo> sheetDetailVos = musicSheetService.getDao().auditDetailList(null, batchNo);
+        musicSheetService.initMusicSheetDetailVo(sheetDetailVos);
+        return sheetDetailVos;
+    }
 }

+ 71 - 20
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java

@@ -1163,7 +1163,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         return flag;
     }
 
-    private void auditSyncCbs(Long cbsMusicSheetId){
+    @Override
+    public void auditSyncCbs(Long cbsMusicSheetId){
         CbsMusicSheetWrapper.MusicSheetApplicationQuery query = new CbsMusicSheetWrapper.MusicSheetApplicationQuery();
         query.setApplicationId(applicationId);
         query.setMusicSheetIds(Collections.singletonList(cbsMusicSheetId));
@@ -1982,25 +1983,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     }
 
     @Override
-    public MusicSheetDetailVo auditDetail(Long authMusicSheetId) {
-
-        MusicSheetAuthRecord musicSheetAuthRecord = musicSheetAuthRecordService.getById(authMusicSheetId);
-        MusicSheetDetailVo detail = detail(musicSheetAuthRecord.getMusicSheetId(), null, null);
-        List<MusicSheetDetailVo> musicSheetDetailVos = auditDetailList(authMusicSheetId);
-        if (!CollectionUtils.isEmpty(musicSheetDetailVos)) {
-            detail.setLastMusicSheet(musicSheetDetailVos.get(0));
-        }
-        return detail;
-    }
-
-    @Override
-    public List<MusicSheetDetailVo> auditDetailList(Long authMusicSheetId) {
-        MusicSheetAuthRecord musicSheetAuthRecord = musicSheetAuthRecordService.getById(authMusicSheetId);
-        List<MusicSheetDetailVo> sheetDetailVos = baseMapper.auditDetailList(musicSheetAuthRecord.getOriginalMusicSheetId(), authMusicSheetId);
-        this.initMusicSheetDetailVo(sheetDetailVos);
-        return sheetDetailVos;
-    }
-
     public void initMusicSheetDetailVo(List<MusicSheetDetailVo> sheetDetailVos){
         if(CollectionUtils.isEmpty(sheetDetailVos)){
             return;
@@ -2424,6 +2406,75 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         return true;
     }
 
+    @Override
+    public MusicSheet initMusicSheet(String musicSheetJson) {
+        if(org.springframework.util.StringUtils.isEmpty(musicSheetJson)){
+            throw new BizException("曲目信息不能为空");
+        }
+        CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
+        List<CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend> addMusicSheetApplicationExtend = addMusicSheet.getAddMusicSheetApplicationExtend();
+        if(org.apache.commons.collections.CollectionUtils.isEmpty(addMusicSheetApplicationExtend)){
+            throw new BizException("曲目应用不能为空");
+        }
+        MusicSheet musicSheetAudit = new MusicSheet();
+        musicSheetAudit.setProviderType(SourceTypeEnum.TEACHER);
+        musicSheetAudit.setSourceType(SourceTypeEnum.TEACHER);
+        musicSheetAudit.setAuditStatus(AuthStatusEnum.DOING);
+        musicSheetAudit.setState(YesOrNoEnum.NO);
+        musicSheetAudit.setDelFlag(true);
+        musicSheetAudit.setMusicSheetName(addMusicSheet.getName());
+        musicSheetAudit.setMusicSubject(addMusicSheet.getSubjectIds());
+        musicSheetAudit.setMusicSvg(addMusicSheet.getMusicSvg());
+        musicSheetAudit.setComposer(addMusicSheet.getComposer());
+        musicSheetAudit.setTitleImg(addMusicSheet.getMusicCover());
+        if(addMusicSheet.getAudioType() != null){
+            musicSheetAudit.setAccompanimentType(AccompanimentTypeEnum.valueOf(addMusicSheet.getAudioType().getCode()));
+        }
+        musicSheetAudit.setPlaySpeed(addMusicSheet.getPlaySpeed());
+        if(addMusicSheet.getIsConvertibleScore() != null){
+            musicSheetAudit.setNotation(addMusicSheet.getIsConvertibleScore()? YesOrNoEnum.YES: YesOrNoEnum.NO);
+        }
+        if(addMusicSheet.getMusicSheetType() != null){
+            musicSheetAudit.setMusicSheetType(MusicSheetTypeEnum.valueOf(addMusicSheet.getMusicSheetType().getCode()));
+        }
+        if(addMusicSheet.getPlayMode() != null){
+            musicSheetAudit.setAudioType(AudioTypeEnum.valueOf(addMusicSheet.getPlayMode().getCode()));
+        }
+        if(addMusicSheet.getIsShowFingering() != null){
+            musicSheetAudit.setShowFingering(addMusicSheet.getIsShowFingering()? YesOrNoEnum.YES: YesOrNoEnum.NO);
+        }
+        if(addMusicSheet.getIsEvaluated() != null){
+            musicSheetAudit.setCanEvaluate(addMusicSheet.getIsEvaluated()? YesOrNoEnum.YES: YesOrNoEnum.NO);
+        }
+        List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = addMusicSheet.getMusicSheetAccompanimentList();
+        if (CollectionUtils.isNotEmpty(accompanimentList)) {
+            musicSheetAudit.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
+        }
+        musicSheetAudit.setXmlFileUrl(addMusicSheet.getXmlFileUrl());
+        musicSheetAudit.setMidiUrl(addMusicSheet.getMidiFileUrl());
+        List<CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend> extend = addMusicSheet.getAddMusicSheetApplicationExtend();
+        if(CollectionUtils.isNotEmpty(extend)){
+            CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend applicationExtend = extend.get(0);
+            musicSheetAudit.setMusicTag(applicationExtend.getMusicTagIds());
+            if(applicationExtend.getPaymentType() != null){
+                musicSheetAudit.setPaymentType(applicationExtend.getPaymentType().getCode());
+                musicSheetAudit.setChargeType(ChargeTypeEnum.valueOf(applicationExtend.getPaymentType().getCode()));
+            }
+            if(applicationExtend.getTopFlag() != null){
+                musicSheetAudit.setTopFlag(applicationExtend.getTopFlag()? YesOrNoEnum.YES: YesOrNoEnum.NO);
+            }
+            if(applicationExtend.getExquisiteFlag() != null){
+                musicSheetAudit.setExquisiteFlag(applicationExtend.getExquisiteFlag()? YesOrNoEnum.YES: YesOrNoEnum.NO);
+            }
+            if(applicationExtend.getExquisiteFlag() != null){
+                musicSheetAudit.setExquisiteFlag(applicationExtend.getExquisiteFlag()? YesOrNoEnum.YES: YesOrNoEnum.NO);
+            }
+            musicSheetAudit.setSortNumber(applicationExtend.getSortNo());
+            musicSheetAudit.setMusicPrice(applicationExtend.getMusicPrice());
+        }
+        return musicSheetAudit;
+    }
+
     private SysUser getSysUser(Long userId) {
         return Optional.ofNullable(userId)
                 .map(sysUserFeignService::queryUserById)

+ 0 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetAudioMapper.xml

@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE  mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.yonge.cooleshow.biz.dal.dao.MusicSheetAuditDao">
-</mapper>

+ 61 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetAuthRecordMapper.xml

@@ -23,7 +23,66 @@
         , t.create_time_
         , t.update_time_
         , t.music_sheet_json_
-        </sql> 
-    
+        </sql>
+    <select id="selectAuditPage" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo">
+        select
+        msar.id_ as authMusicSheetId,
+        ms.create_by_ as teacherId
+        ,ms.exquisite_flag_ as exquisiteFlag
+        ,ms.title_img_ as titleImg
+        ,ms.accompaniment_type_ as accompanimentType
+        ,su.username_ as username
+        ,su.real_name_ as realName
+        ,su.phone_ as phone
+        ,ms.id_ as musicSheetId
+        ,ms.music_sheet_name_ as musicSheetName
+        ,ms.composer_ as composer
+        ,ms.music_tag_ as musicTag
+        ,(select group_concat(mt.name_) from music_tag mt
+        where find_in_set(mt.id_,ms.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
+        ,ms.play_speed_ as playSpeed
+        ,ms.music_price_ as musicPrice
+        ,ms.update_time_ as createTime
+        ,if(msar.audit_state_ is null,ms.audit_status_,msar.audit_state_) as auditStatus
+        ,su2.username_ as auditName
+        ,msar.first_auth_ as firstAuth
+        from music_sheet_auth_record  msar
+        left join  music_sheet ms on ms.id_ = msar.music_sheet_id_
+        left join sys_user su on su.id_ = ms.create_by_
+        left join sys_user su2 on msar.verify_user_id_ = su2.id_
+        <where>
+            su.del_flag_ = 0 and
+            ms.source_type_  = 'TEACHER'
+            <if test="param.idAndName != null and param.idAndName != ''">
+                and (su.id_ like concat('%',#{param.idAndName} ,'%')
+                or su.username_ like concat('%',#{param.idAndName},'%')
+                or ms.music_sheet_name_ like concat('%',#{param.idAndName},'%')
+                or su.phone_ like concat('%',#{param.idAndName},'%'))
+            </if>
+            <if test="param.auditName != null and param.auditName != ''">
+                and su2.username_ like concat('%',#{param.auditName},'%')
+            </if>
+            <if test="param.authStatus != null">
+                and msar.audit_state_ = #{param.authStatus}
+            </if>
+            <if test="param.startTime != null">
+                and ms.create_time_ &gt; #{param.startTime}
+            </if>
+            <if test="param.endTime != null">
+                and ms.create_time_ &lt; #{param.endTime}
+            </if>
+            <if test="param.chargeType != null">
+                and ms.charge_type_ = #{param.chargeType}
+            </if>
+            <if test="param.firstAuth != null">
+                and msar.first_auth_ = #{param.firstAuth}
+            </if>
+            <if test="param.exquisiteFlag != null">
+                and ms.exquisite_flag_ = #{param.exquisiteFlag}
+            </if>
+        </where>
+        order by field(ms.audit_status_,'DOING') desc,  ms.submit_audit_time_ desc
+    </select>
+
 
 </mapper>

+ 4 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -785,11 +785,11 @@
         left join sys_user su2 on msar.verify_user_id_ = su2.id_
         left join subject s2 on t.music_subject_ = s2.id_
         <where>
-            <if test="originalMusicSheetId != null">
-                and #{originalMusicSheetId} = msar.original_music_sheet_id_
+            <if test="musicSheetId != null">
+                and #{musicSheetId} = msar.music_sheet_id_
             </if>
-            <if test="authMusicSheetId != null">
-                and #{authMusicSheetId} &gt; msar.id_
+            <if test="batchNo != null and batchNo != ''">
+                and #{batchNo} = msar.batch_no_
             </if>
         </where>