Ver Fonte

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

zouxuan há 1 ano atrás
pai
commit
6773637a80
16 ficheiros alterados com 550 adições e 129 exclusões
  1. 57 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetAuthRecordController.java
  2. 0 40
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java
  3. 42 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetAuthRecordController.java
  4. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetAuditDao.java
  5. 0 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetAuditSearch.java
  6. 214 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAudit.java
  7. 17 80
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAuthRecord.java
  8. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuditService.java
  9. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuthRecordService.java
  10. 47 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/cbs/impl/CbsMusicScoreServiceImpl.java
  11. 1 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CbsMusicSheetServiceImpl.java
  12. 76 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuditServiceImpl.java
  13. 57 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuthRecordServiceImpl.java
  14. 9 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  15. 4 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetAudioMapper.xml
  16. 3 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetAuthRecordMapper.xml

+ 57 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetAuthRecordController.java

@@ -0,0 +1,57 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
+import com.yonge.cooleshow.biz.dal.service.MusicSheetAuthRecordService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.page.PageInfo;
+import com.yonge.toolset.mybatis.support.PageUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+
+@RestController
+@RequestMapping("${app-config.url.teacher:}/musicSheetAuthRecord")
+@Api(tags = "曲谱审核表 API接口")
+public class MusicSheetAuthRecordController extends BaseController {
+    @Resource
+    private MusicSheetAuthRecordService musicSheetAuthRecordService;
+	@Resource
+	private SysUserService sysUserService;
+
+    @PostMapping(value = "/audit/list", consumes="application/json", produces="application/json")
+    @ApiOperation(value = "审核中心-乐谱审核列表", httpMethod="POST", consumes="application/json", produces="application/json")
+    @PreAuthorize("@pcs.hasPermissions('music/sheet/audit/list')")
+    public HttpResponseResult<PageInfo<TeacherMusicSheetVo>> audit(@RequestBody TeacherMusicSheetAuditSearch query) {
+        return succeed(PageUtil.pageInfo(musicSheetAuthRecordService.selectAuditPage(PageUtil.getPage(query),query)));
+    }
+
+    @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()));
+    }
+
+
+    @GetMapping(value = "/auditDetail/{authMusicSheetId}")
+    @ApiOperation(value = "审核中心-乐谱审核详情",  notes = "传入曲目审核id")
+    public HttpResponseResult<MusicSheetDetailVo> auditDetail(@PathVariable Long authMusicSheetId) {
+        return succeed(musicSheetService.auditDetail(authMusicSheetId));
+    }
+
+    @GetMapping(value = "/auditDetailList/{authMusicSheetId}")
+    @ApiOperation(value = "审核中心-乐谱审核详情历史记录",  notes = "传入曲目审核id")
+    public HttpResponseResult<List<MusicSheetDetailVo>> auditDetailList(@PathVariable Long authMusicSheetId) {
+        return succeed(musicSheetService.auditDetailList(authMusicSheetId));
+    }
+}

+ 0 - 40
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -121,46 +121,6 @@ public class MusicSheetController extends BaseController {
         return succeed(PageUtil.pageInfo(musicSheetService.selectTeacherPage(PageUtil.getPage(query),query)));
     }
 
-    /**
-     * 审核中心-乐谱审核列表
-     */
-    @PostMapping(value = "/audit/list", consumes="application/json", produces="application/json")
-    @ApiOperation(value = "审核中心-乐谱审核列表", httpMethod="POST", consumes="application/json", produces="application/json")
-    @PreAuthorize("@pcs.hasPermissions('music/sheet/audit/list')")
-    public HttpResponseResult<PageInfo<TeacherMusicSheetVo>> audit(@RequestBody TeacherMusicSheetAuditSearch query) {
-        return succeed(PageUtil.pageInfo(musicSheetService.selectAuditPage(PageUtil.getPage(query),query)));
-    }
-
-    /**
-     * 审核中心-乐谱审核
-     */
-    @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()));
-    }
-
-
-    /**
-     * 审核中心-乐谱审核
-     */
-    @GetMapping(value = "/auditDetail/{authMusicSheetId}")
-    @ApiOperation(value = "审核中心-乐谱审核详情",  notes = "传入曲目审核id")
-    public HttpResponseResult<MusicSheetDetailVo> auditDetail(@PathVariable Long authMusicSheetId) {
-
-        return succeed(musicSheetService.auditDetail(authMusicSheetId));
-    }
-
-    /**
-     * 审核中心-乐谱审核记录列表
-     */
-    @GetMapping(value = "/auditDetailList/{authMusicSheetId}")
-    @ApiOperation(value = "审核中心-乐谱审核详情历史记录",  notes = "传入曲目审核id")
-    public HttpResponseResult<List<MusicSheetDetailVo>> auditDetailList(@PathVariable Long authMusicSheetId) {
-        return succeed(musicSheetService.auditDetailList(authMusicSheetId));
-    }
-
     @PostMapping(value = "/buySendMessage", consumes="application/json", produces="application/json")
     @ApiOperation(value = "发送学生购买老师曲目信息", httpMethod="POST", consumes="application/json", produces="application/json")
     public HttpResponseResult<Boolean> buySendMessage(@Valid @RequestBody MusicSheetStudentByMessage param) {

+ 42 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetAuthRecordController.java

@@ -0,0 +1,42 @@
+package com.yonge.cooleshow.teacher.controller;
+
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
+import com.yonge.cooleshow.biz.dal.service.MusicSheetAuthRecordService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("${app-config.url.teacher:}/musicSheetAuthRecord")
+@Api(tags = "曲谱审核表 API接口")
+public class MusicSheetAuthRecordController extends BaseController {
+    @Resource
+    private MusicSheetAuthRecordService musicSheetAuthRecordService;
+	@Resource
+	private SysUserService sysUserService;
+
+    @ApiOperation(value = "新增", notes = " 传入 MusicSheetAuthRecord")
+    @PostMapping("/save")
+    public HttpResponseResult<Integer> cbsAdd(@RequestBody MusicSheetAuthRecord musicSheetAuthRecord) {
+        SysUser sysUser = sysUserService.getUser();
+        musicSheetAuthRecord.setSubmitUserId(sysUser.getId());
+        return succeed(musicSheetAuthRecordService.addRecord(musicSheetAuthRecord));
+    }
+
+    @ApiOperation(value = "修改", notes = " 传入 MusicSheetAuthRecord")
+    @PostMapping("/update")
+    public HttpResponseResult update(@Validated @RequestBody MusicSheetAuthRecord musicSheetAuthRecord) {
+        musicSheetAuthRecordService.updateRecord(musicSheetAuthRecord);
+        return succeed();
+    }
+}

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

@@ -0,0 +1,10 @@
+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>{
+
+	
+}

+ 0 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherMusicSheetAuditSearch.java

@@ -28,7 +28,6 @@ public class TeacherMusicSheetAuditSearch extends QueryInfo{
     @ApiModelProperty("审核类型  0:新增 1:修改")
     private Integer firstAuth;
 
-
     @ApiModelProperty("审批人")
     private String auditName;
 

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

@@ -0,0 +1,214 @@
+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;
+	}
+}

+ 17 - 80
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAuthRecord.java

@@ -11,6 +11,7 @@ import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
@@ -18,113 +19,49 @@ import org.springframework.format.annotation.DateTimeFormat;
  */
 @TableName("music_sheet_auth_record")
 @ApiModel(value = "MusicSheetAuthRecord对象", description = "曲目审核表")
+@Data
 public class MusicSheetAuthRecord implements Serializable {
 	private static final long serialVersionUID = 1L;
     @ApiModelProperty("审核单id ")
     @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
+
     @ApiModelProperty("曲目id ")
 	@TableField(value = "music_sheet_id_")
     private Long musicSheetId;
 
+    @ApiModelProperty("曲目JSON")
+    @TableField(value = "music_sheet_json_")
+    private String musicSheetJson;
 
-    @ApiModelProperty("原本的曲目id ")
-    @TableField(value = "original_music_sheet_id_")
-    private Long originalMusicSheetId;
-
-
-    @ApiModelProperty("第一次提交审核 ")
-    @TableField(value = "first_auth_")
-    private Integer firstAuth;
+    @ApiModelProperty("批次号,同一个批次为一条审核记录")
+    @TableField(value = "batch_no_")
+    private String batchNo;
 
     @ApiModelProperty("审核状态 DOING:审核中;PASS:通过;UNPASS:未通过 ")
 	@TableField(value = "audit_state_")
     private AuthStatusEnum auditState;
+
+    @ApiModelProperty("提交人 ")
+    @TableField(value = "submit_user_id_")
+    private Long submitUserId;
+
     @ApiModelProperty("审核人 ")
 	@TableField(value = "verify_user_id_")
     private Long verifyUserId;
+
     @ApiModelProperty("审核理由 ")
 	@TableField(value = "reason_")
     private String reason;
+
 	@TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date createTime;
+
 	@TableField(value = "update_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date updateTime;
-
-    public Integer getFirstAuth() {
-        return firstAuth;
-    }
-
-    public void setFirstAuth(Integer firstAuth) {
-        this.firstAuth = firstAuth;
-    }
-
-    public Long getOriginalMusicSheetId() {
-        return originalMusicSheetId;
-    }
-
-    public void setOriginalMusicSheetId(Long originalMusicSheetId) {
-        this.originalMusicSheetId = originalMusicSheetId;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-    
-	public Long getMusicSheetId() {
-        return musicSheetId;
-    }
-
-    public void setMusicSheetId(Long musicSheetId) {
-        this.musicSheetId = musicSheetId;
-    }
-    
-	public AuthStatusEnum getAuditState() {
-        return auditState;
-    }
-
-    public void setAuditState(AuthStatusEnum auditState) {
-        this.auditState = auditState;
-    }
-    
-	public Long getVerifyUserId() {
-        return verifyUserId;
-    }
-
-    public void setVerifyUserId(Long verifyUserId) {
-        this.verifyUserId = verifyUserId;
-    }
-    
-	public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-    
-	public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-    
-	public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
     
 }

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

@@ -0,0 +1,9 @@
+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);
+}

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAuthRecordService.java

@@ -35,4 +35,8 @@ public interface MusicSheetAuthRecordService extends IService<MusicSheetAuthReco
      * @return
      */
     String selectAuditReason(Long musicSheetId);
+
+    Integer addRecord(MusicSheetAuthRecord musicSheetAuthRecord);
+
+    void updateRecord(MusicSheetAuthRecord musicSheetAuthRecord);
 }

+ 47 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/cbs/impl/CbsMusicScoreServiceImpl.java

@@ -89,6 +89,53 @@ public class CbsMusicScoreServiceImpl implements CbsMusicScoreService {
         return musicSheet.getId();
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    public Long musicSheetAdd1(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet) {
+        List<CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend> addMusicSheetApplicationExtend = addMusicSheet.getAddMusicSheetApplicationExtend();
+        if(CollectionUtils.isEmpty(addMusicSheetApplicationExtend)){
+            throw new BizException("曲目应用不能为空");
+        }
+        Long addMusicSheetId = addMusicSheet.getId();
+        MusicSheet musicSheet = null;
+        Long cbsMusicSheetId = null;
+        if(addMusicSheetId != null){
+            musicSheet = musicSheetService.lambdaQuery().eq(MusicSheet::getId, addMusicSheetId).one();
+            if(musicSheet == null){
+                throw new BizException("曲目不存在");
+            }
+            cbsMusicSheetId = musicSheet.getCbsMusicSheetId();
+        }
+        addMusicSheetApplicationExtend.forEach(item->{
+            item.setApplicationId(applicationId);
+            item.setStatus(false);
+        });
+        CbsMusicSheetWrapper.MusicSheetExtend musicSheetExtend = new CbsMusicSheetWrapper.MusicSheetExtend();
+        musicSheetExtend.setApplicationId(applicationId);
+        addMusicSheet.setMusicSheetExtend(musicSheetExtend);
+        musicSheetExtend.setUserId(addMusicSheet.getCreateBy());
+        addMusicSheet.setDelFlag(true);
+        addMusicSheet.setSendAppFlag(true);
+        addMusicSheet.setStatus(true);
+        addMusicSheet.setId(cbsMusicSheetId);
+        R<Long> longR = musicFeignClientService.musicSheetAdd(addMusicSheet);
+        if (longR.getCode() != 200) {
+            throw new BizException("添加失败,{}",longR.getMessage());
+        }
+        if(addMusicSheetId == null){
+            cbsMusicSheetId = longR.getData();
+            //获取本地曲目修改审核状态
+            musicSheet = musicSheetService.lambdaQuery().eq(MusicSheet::getCbsMusicSheetId, cbsMusicSheetId).one();
+            if(musicSheet == null){
+                throw new BizException("曲目上传失败,请联系管理员");
+            }
+        }
+        musicSheet.setState(YesOrNoEnum.NO);
+        musicSheet.setAuditStatus(AuthStatusEnum.DOING);
+        musicSheetService.updateById(musicSheet);
+        musicSheetAuthRecordService.setAuditDoing(musicSheet.getId(),addMusicSheetId,null);
+        return musicSheet.getId();
+    }
+
     @Override
     public void update(CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend addMusicSheetApplicationExtend) {
         addMusicSheetApplicationExtend.setApplicationId(applicationId);

+ 1 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CbsMusicSheetServiceImpl.java

@@ -77,9 +77,7 @@ public class CbsMusicSheetServiceImpl implements CbsMusicSheetService {
         if (updateMusicSheet.getStatus() == null){
             throw new BizException("请选择状态");
         }
-        if (!updateMusicSheet.getStatus()){
-            musicSheetService.getDao().batchEnable(updateMusicSheet.getIds(),updateMusicSheet.getStatus());
-        }
+        musicSheetService.getDao().batchEnable(updateMusicSheet.getIds(),updateMusicSheet.getStatus());
         return true;
     }
 

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

@@ -0,0 +1,76 @@
+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());
+        }
+    }
+}

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

@@ -1,15 +1,24 @@
 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.CbsMusicSheetApplicationExtendClientWrapper;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 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.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.common.service.IdGeneratorService;
+import com.yonge.toolset.base.exception.BizException;
 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.List;
 
@@ -17,6 +26,10 @@ import java.util.List;
 @Service
 public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthRecordDao, MusicSheetAuthRecord> implements MusicSheetAuthRecordService {
 
+    @Resource
+    private IdGeneratorService idGeneratorService;
+    @Resource
+    private MusicSheetAuditService musicSheetAuditService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -101,4 +114,48 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
         return one.getReason();
 
     }
+
+    private void checkRecord(MusicSheetAuthRecord musicSheetAuthRecord){
+        if(StringUtils.isEmpty(musicSheetAuthRecord.getMusicSheetJson())){
+            throw new BizException("曲目信息不能为空");
+        }
+        CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetAuthRecord.getMusicSheetJson(), CbsMusicSheetWrapper.AddMusicSheet.class);
+        List<CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend> addMusicSheetApplicationExtend = addMusicSheet.getAddMusicSheetApplicationExtend();
+        if(org.apache.commons.collections.CollectionUtils.isEmpty(addMusicSheetApplicationExtend)){
+            throw new BizException("曲目应用不能为空");
+        }
+    }
+
+    @Override
+    public Integer addRecord(MusicSheetAuthRecord musicSheetAuthRecord) {
+        this.checkRecord(musicSheetAuthRecord);
+        //保存曲目信息
+        MusicSheetAudit musicSheetAudit = musicSheetAuditService.initMusicSheet(musicSheetAuthRecord.getMusicSheetJson());
+        musicSheetAuditService.saveApplicationExtend(musicSheetAuthRecord.getMusicSheetJson());
+        String batchNo = idGeneratorService.generatorId("payment") + "";
+        musicSheetAuthRecord.setBatchNo(batchNo);
+        musicSheetAuthRecord.setAuditState(AuthStatusEnum.DOING);
+        return baseMapper.insert(musicSheetAuthRecord);
+    }
+
+    @Override
+    public void updateRecord(MusicSheetAuthRecord musicSheetAuthRecord) {
+        this.checkRecord(musicSheetAuthRecord);
+        if(musicSheetAuthRecord.getId() == null){
+            throw new BizException("先选择要修改的曲目");
+        }
+        MusicSheetAuthRecord record = baseMapper.selectById(musicSheetAuthRecord.getId());
+        if (record == null){
+            throw new BizException("曲目信息不存在");
+        }
+        if(record.getAuditState() == AuthStatusEnum.DOING){
+            record.setMusicSheetJson(musicSheetAuthRecord.getMusicSheetJson());
+            baseMapper.updateById(record);
+        }else {
+            musicSheetAuthRecord.setSubmitUserId(record.getSubmitUserId());
+            musicSheetAuthRecord.setBatchNo(record.getBatchNo());
+            musicSheetAuthRecord.setAuditState(AuthStatusEnum.DOING);
+            baseMapper.insert(musicSheetAuthRecord);
+        }
+    }
 }

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

@@ -444,7 +444,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         detailVo.setMusicTagNames(musicSheet1.getMusicTagNames());
         List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = musicSheet1.getMusicSheetAccompanimentList();
         if (CollectionUtils.isNotEmpty(accompanimentList)) {
-            detailVo.setAudioFileUrl(accompanimentList.get(0).getAudioFileUrl());
+            detailVo.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
         }
         detailVo.setXmlFileUrl(musicSheet1.getXmlFileUrl());
         detailVo.setMidiUrl(musicSheet1.getMidiFileUrl());
@@ -620,6 +620,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         if(musicSheetApplication.getMusicSheetExtend() != null){
             sheet.setAddName(musicSheetApplication.getMusicSheetExtend().getUserName());
         }
+        List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = musicSheetApplication.getMusicSheetAccompanimentList();
+        if (CollectionUtils.isNotEmpty(accompanimentList)){
+            sheet.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
+        }
     }
 
     @Override
@@ -840,7 +844,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         record.setMusicTagNames(musicSheetApplication.getMusicTagNames());
         List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = musicSheetApplication.getMusicSheetAccompanimentList();
         if (CollectionUtils.isNotEmpty(accompanimentList)) {
-            record.setAudioFileUrl(accompanimentList.get(0).getAudioFileUrl());
+            record.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
         }
         record.setXmlFileUrl(musicSheetApplication.getXmlFileUrl());
         record.setMidiUrl(musicSheetApplication.getMidiFileUrl());
@@ -1168,16 +1172,16 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         query.setRows(1);
         R<PageInfo<CbsMusicSheetWrapper.MusicSheetApplication>> pageInfoR = musicFeignClientService.musicSheetPageByApplication(query);
         if (pageInfoR.getCode() != 200) {
-            throw new BizException("获取曲目信息失败,{}", pageInfoR.getMessage());
+            throw new BizException("获取曲目信息异常,{}", pageInfoR.getMessage());
         }
         List<CbsMusicSheetWrapper.MusicSheetApplication> rows = pageInfoR.feignData().getRows();
         if (CollectionUtils.isEmpty(rows)) {
             throw new BizException("获取曲目信息失败");
-        }
+        }/*
         R<CbsMusicSheetWrapper.MusicSheet> musicSheetR = musicFeignClientService.musicSheetDetail(cbsMusicSheetId, applicationId);
         if (musicSheetR.getCode() != 200) {
             throw new BizException("获取曲目详情失败,{}", musicSheetR.getMessage());
-        }
+        }*/
         CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication = rows.get(0);
         CbsMusicSheetApplicationExtendClientWrapper.MusicSheetApplicationExtendStatus extendStatus = new CbsMusicSheetApplicationExtendClientWrapper.MusicSheetApplicationExtendStatus();
         extendStatus.setIds(musicSheetApplication.getApplicationExtendId().toString());

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

@@ -0,0 +1,4 @@
+<?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>

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetAuthRecordMapper.xml

@@ -7,6 +7,8 @@
 	        <result column="audit_state_" property="auditState" />
 	        <result column="verify_user_id_" property="verifyUserId" />
 	        <result column="reason_" property="reason" />
+	        <result column="music_sheet_json_" property="musicSheetJson" />
+	        <result column="batch_no_" property="batchNo" />
 	        <result column="create_time_" property="createTime" />
 	        <result column="update_time_" property="updateTime" />
 		</resultMap>  
@@ -20,6 +22,7 @@
         , t.reason_
         , t.create_time_
         , t.update_time_
+        , t.music_sheet_json_
         </sql>