Browse Source

Merge remote-tracking branch 'origin/master'

weifanli 3 năm trước cách đây
mục cha
commit
d0f992cdf9

+ 23 - 5
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import javax.validation.Valid;
 import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
@@ -17,6 +18,9 @@ import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 
+import java.util.Date;
+import java.util.List;
+
 /**
  * 曲谱表 web 控制层
  * @author yzp
@@ -35,16 +39,30 @@ public class MusicSheetController extends BaseController {
 
 	@ApiOperation(value = "新增", httpMethod="POST", consumes="application/json", produces="application/json")
     @PostMapping(value="/create", consumes="application/json", produces="application/json")
-    public HttpResponseResult<Object> create(@Valid @RequestBody MusicSheet musicSheet) {
+    public HttpResponseResult<Object> create(@Valid @RequestBody MusicSheetDto musicSheetDto) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
 
-        //musicSheet.setCreateBy(sysUser.getId());
-        //musicSheet.setCreateTime(new Date());
-        musicSheetService.save(musicSheet);
-        return succeed();
+        List<MusicSheetAccompaniment> list = null;
+        if (!musicSheetDto.getAudioType().equalsIgnoreCase("midi")){
+            list = musicSheetDto.getBackground();
+            if (list.isEmpty()){
+                return failed("mp3音频文件对应的主音或者伴奏文件没有提供");
+            }
+        }
+
+        if (musicSheetDto.getChargeType()==2 && musicSheetDto.getMusicPrice()==null){
+            return failed("此曲谱为收费曲谱,需要提供价格");
+        }
+        musicSheetDto.setAuditStatus(0);
+        boolean result = musicSheetService.saveMp3AndAccompaniment(musicSheetDto,sysUser);
+        if (result) {
+            return succeed("新增曲谱成功");
+        } else {
+            return failed("新增曲谱失败");
+        }
     }
 
     @ApiOperation(value = "删除", httpMethod="POST", consumes="application/json", produces="application/json")

+ 19 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicSheetDto.java

@@ -1,6 +1,10 @@
 package com.yonge.cooleshow.biz.dal.dto;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
+
+import java.util.List;
 
 /**
  * MusicSheetDto
@@ -9,10 +13,18 @@ import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
  * @version v1.0
  **/
 public class MusicSheetDto extends MusicSheet {
+    @JsonIgnore
     private Integer pageNo;
+
+    @JsonIgnore
     private Integer pageSize;
+
+    @JsonIgnore
     private String search;
 
+    @JsonIgnore
+    private List<MusicSheetAccompaniment> background;
+
     public int getPageNo() {
         return pageNo;
     }
@@ -37,4 +49,11 @@ public class MusicSheetDto extends MusicSheet {
         this.search = search;
     }
 
+    public List<MusicSheetAccompaniment> getBackground() {
+        return background;
+    }
+
+    public void setBackground(List<MusicSheetAccompaniment> background) {
+        this.background = background;
+    }
 }

+ 16 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java

@@ -7,6 +7,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import java.util.Date;
 
 /**
@@ -22,6 +26,8 @@ public class MusicSheet extends BaseEntity {
     @ApiModelProperty(value = "主键id")
     private Long id;  //主键ID
 
+    @NotBlank(message = "曲谱名称不能为空!")
+    @Size(max = 64, message = "曲谱名称长度不能超过64位!")
     @TableField("music_sheet_name_")
     @ApiModelProperty(value = "曲谱名称")
     private String musicSheetName;  //曲谱名称
@@ -30,18 +36,23 @@ public class MusicSheet extends BaseEntity {
     @ApiModelProperty(value = "曲谱来源(0:平台;非0:老师ID)")
     private Long userId;  //曲谱来源(0:平台;非0:老师ID)
 
+    @NotBlank(message = "作曲人不能为空!")
+    @Size(max = 32, message = "作曲人长度不能超过32位!")
     @TableField("composer_")
     @ApiModelProperty(value = "作曲人")
     private String composer;  //作曲人
 
+    @NotBlank(message = "曲谱声部不能为空!")
     @TableField("music_subject_")
     @ApiModelProperty(value = "曲谱声部(适用的乐器,可能是多个,用逗号分隔)")
     private String musicSubject;  //曲谱声部(适用的乐器,可能是多个,用逗号分隔)
 
+    @NotBlank(message = "曲谱音频文件类型不能为空!")
     @TableField("audio_type_")
     @ApiModelProperty(value = "曲谱音频文件类型(midi;mp3)")
     private String audioType;  //曲谱音频文件类型(midi;mp3)
 
+    @NotBlank(message = "曲谱标签不能为空!")
     @TableField("music_tag_")
     @ApiModelProperty(value = "曲谱标签(多个标签用逗号分隔)")
     private String musicTag;  //曲谱标签(多个标签用逗号分隔)
@@ -58,13 +69,14 @@ public class MusicSheet extends BaseEntity {
     @ApiModelProperty(value = "是否展示指法(0:否;1:是)")
     private Integer showFingering;  //是否展示指法(0:否;1:是)
 
+    @NotNull(message = "收费类型不能为空!")
     @TableField("charge_type_")
     @ApiModelProperty(value = "收费类型(0:免费;1:会员;2:单曲收费)")
     private Integer chargeType;  //收费类型(0:免费;1:会员;2:单曲收费)
 
     @TableField("audit_status_")
     @ApiModelProperty(value = "审核状态")
-    private Integer auditStatus;  //审核状态
+    private Integer auditStatus;  //审核状态(0:待审核;1:通过;2:未通过)
 
     @TableField("sort_number_")
     @ApiModelProperty(value = "排序号")
@@ -82,10 +94,12 @@ public class MusicSheet extends BaseEntity {
     @ApiModelProperty(value = "曲谱价格")
     private java.math.BigDecimal musicPrice;  //曲谱价格
 
+    @NotBlank(message = "音频文件存储路径不能为空!")
     @TableField("audio_file_url_")
     @ApiModelProperty(value = "音频文件存储路径")
     private String audioFileUrl;  //音频文件存储路径
 
+    @NotBlank(message = "XML文件存储路径不能为空!")
     @TableField("xml_file_url_")
     @ApiModelProperty(value = "XML文件存储路径")
     private String xmlFileUrl;  //XML文件存储路径
@@ -112,7 +126,7 @@ public class MusicSheet extends BaseEntity {
 
     @TableField("remark_")
     @ApiModelProperty(value = "备注")
-    private String remark;  //备注
+    private String remark;  //备注,填写未通过审核的原因
 
 
 	public MusicSheet setId(Long id) {

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

@@ -1,5 +1,7 @@
 package com.yonge.cooleshow.biz.dal.service;
 
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -10,5 +12,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @version v1.0
  **/
 public interface MusicSheetService extends IService<MusicSheet> {
+    /**
+     * 保存mp3以及相应的主音或者伴奏文件
+     * @param musicSheetDto
+     * @return
+     */
+    boolean saveMp3AndAccompaniment(MusicSheetDto musicSheetDto, SysUser sysUser);
 
 }

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

@@ -1,13 +1,22 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dao.MusicSheetAccompanimentDao;
+import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * MusicSheetService服务实现类
@@ -23,7 +32,37 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
     @Autowired
     private MusicSheetDao musicSheetDao;
 
+    @Autowired
+    private MusicSheetAccompanimentDao musicSheetAccompanimentDao;
+
     public MusicSheetDao getDao() {
         return musicSheetDao;
     }
+
+    @Override
+    @Transactional(readOnly = false)
+    public boolean saveMp3AndAccompaniment(MusicSheetDto musicSheetDto, SysUser sysUser) {
+        MusicSheet musicSheet = new MusicSheet();
+        BeanUtils.copyProperties(musicSheetDto, musicSheet);
+        //保存主表
+        musicSheetDao.insert(musicSheet);
+
+        Long sheetId = musicSheet.getId();
+        int count = 0;
+        List<MusicSheetAccompaniment> list = musicSheetDto.getBackground();
+        for (int i = 0; i < list.size(); i++) {
+            MusicSheetAccompaniment musicSheetAccompaniment = list.get(i);
+            musicSheetAccompaniment.setCreateBy(sysUser.getId());
+            musicSheetAccompaniment.setCreateTime(new Date());
+            musicSheetAccompaniment.setMusicSheetId(sheetId);
+            //保存从表
+            musicSheetAccompanimentDao.insert(musicSheetAccompaniment);
+            count ++;
+        }
+        if (count > 0){
+            return true;
+        } else {
+            return false;
+        }
+    }
 }