Преглед изворни кода

Merge branch 'dev_1_3_3_0824_online' into online

liweifan пре 3 година
родитељ
комит
b70a07db33
14 измењених фајлова са 250 додато и 12 уклоњено
  1. 3 5
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java
  2. 9 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java
  3. 41 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicImgDto.java
  4. 36 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/SaveOrUpdateRewardDto.java
  5. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherMusicSheetAuditReq.java
  6. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java
  7. 3 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java
  8. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  9. 9 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java
  10. 15 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  11. 3 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  12. 40 3
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/open/OpenClient.java
  13. 50 0
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenClient.java
  14. 9 0
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenMusicSheetController.java

+ 3 - 5
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ActivityPlanController.java

@@ -4,6 +4,7 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
+import com.yonge.cooleshow.biz.dal.dto.SaveOrUpdateRewardDto;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -121,17 +122,14 @@ public class ActivityPlanController extends BaseController {
     @PostMapping("/saveOrUpdateReward")
     @ApiOperation(value = "修改奖品")
     @PreAuthorize("@pcs.hasPermissions('activityPlan/saveOrUpdateReward')")
-    public HttpResponseResult saveOrUpdateReward(@Validated @RequestBody List<ActivityPlanRewardDto> updateRewardDtoList) {
+    public HttpResponseResult saveOrUpdateReward(@Validated @RequestBody SaveOrUpdateRewardDto saveOrUpdateRewardDto) {
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
 
-        if (CollectionUtils.isEmpty(updateRewardDtoList)) {
-            return failed("参数异常");
-        }
         try {
-            return HttpResponseResult.succeed(activityPlanService.saveOrUpdateReward(updateRewardDtoList));
+            return HttpResponseResult.succeed(activityPlanService.saveOrUpdateReward(saveOrUpdateRewardDto));
         } catch (BizException e) {
             return HttpResponseResult.failed(e.getMessage());
         } catch (Exception e) {

+ 9 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -16,6 +16,7 @@ import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.service.MusicTagService;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -101,6 +102,10 @@ public class MusicSheetController extends BaseController {
             return failed("每个一级标签只能选一个二级标签");
         }
 
+        if (StringUtil.isEmpty(musicSheetDto.getMusicImg())) {
+            throw new BizException("曲目渲染失败");
+        }
+
         musicSheetDto.setUserId(sysUser.getId());
         musicSheetDto.setAuditStatus(AuthStatusEnum.PASS);
         musicSheetDto.setDelFlag(false);
@@ -151,6 +156,10 @@ public class MusicSheetController extends BaseController {
             musicSheet.setNotation(YesOrNoEnum.NO);
         }
 
+        if (StringUtil.isEmpty(musicSheet.getMusicImg())) {
+            throw new BizException("曲目渲染失败");
+        }
+
         musicSheet.setUpdateBy(sysUser.getId());
         musicSheet.setAuditStatus(AuthStatusEnum.PASS);
         musicSheet.setUpdateTime(new Date());

+ 41 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicImgDto.java

@@ -0,0 +1,41 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2019-08-23
+ */
+@ApiModel("曲谱渲染图")
+public class MusicImgDto {
+
+    @NotBlank(message = "渲染图片不能为空")
+    @ApiModelProperty("渲染图片")
+    private String musicImg;
+
+    @NotNull(message = "曲目id不能为空")
+    @ApiModelProperty("曲目id")
+    private Long musicSheetId;
+
+    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;
+    }
+}

+ 36 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/SaveOrUpdateRewardDto.java

@@ -0,0 +1,36 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+@ApiModel(value = "SaveOrUpdateRewardDto对象", description = "修改奖品对象")
+public class SaveOrUpdateRewardDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("活动id")
+    @NotNull(message = "活动id不能为空")
+    private Long activityId;
+
+    @ApiModelProperty("奖品集合")
+    private List<ActivityPlanRewardDto> updateRewardDtoList;
+
+    public Long getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Long activityId) {
+        this.activityId = activityId;
+    }
+
+    public List<ActivityPlanRewardDto> getUpdateRewardDtoList() {
+        return updateRewardDtoList;
+    }
+
+    public void setUpdateRewardDtoList(List<ActivityPlanRewardDto> updateRewardDtoList) {
+        this.updateRewardDtoList = updateRewardDtoList;
+    }
+}

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

@@ -21,6 +21,9 @@ public class TeacherMusicSheetAuditReq {
     @NotNull(message = "曲目id不能为空 ")
     private Long musicSheetId;
 
+    @ApiModelProperty(value = "曲谱渲染图",required = true)
+    private String musicImg;
+
     @ApiModelProperty(value = "审批状态(PASS:通过,UNPASS:不通过)",required = true)
     @NotNull(message = "审批状态不为空 ")
     private AuthStatusEnum authStatus;
@@ -29,6 +32,14 @@ public class TeacherMusicSheetAuditReq {
     @NotBlank(message = "审核理由不能为空 ")
     private String remark;
 
+    public String getMusicImg() {
+        return musicImg;
+    }
+
+    public void setMusicImg(String musicImg) {
+        this.musicImg = musicImg;
+    }
+
     public Long getMusicSheetId() {
         return musicSheetId;
     }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java

@@ -48,6 +48,10 @@ public class MusicSheet implements Serializable {
 	@ApiModelProperty("是否可以转简谱(0:否,1:是)")
 	private YesOrNoEnum notation;
 
+	@TableField("music_img_")
+	@ApiModelProperty("曲目图片")
+	private String musicImg;
+
 	@TableField("source_type_")
 	@ApiModelProperty(value = "曲目来源类型 TEACHER 老师 PLATFORM 平台")
 	private SourceTypeEnum sourceType;
@@ -194,6 +198,14 @@ public class MusicSheet implements Serializable {
 	@ApiModelProperty(value = "假删除标识 0:未删除 1:已删除")
 	private Boolean delFlag;
 
+	public String getMusicImg() {
+		return musicImg;
+	}
+
+	public void setMusicImg(String musicImg) {
+		this.musicImg = musicImg;
+	}
+
 	public AccompanimentTypeEnum getAccompanimentType() {
 		return accompanimentType;
 	}

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
+import com.yonge.cooleshow.biz.dal.dto.SaveOrUpdateRewardDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
@@ -103,8 +104,8 @@ public interface ActivityPlanService extends IService<ActivityPlan>  {
 
 	/**
 	 * 变更活动奖品
-	 * @param updateRewardDtoList
+	 * @param saveOrUpdateRewardDto
 	 * @return
 	 */
-    Boolean saveOrUpdateReward(List<ActivityPlanRewardDto> updateRewardDtoList);
+    Boolean saveOrUpdateReward(SaveOrUpdateRewardDto saveOrUpdateRewardDto);
 }

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

@@ -292,4 +292,13 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * @return
      */
     Boolean stateList(ReasonDto reasonDto);
+
+    /**
+     * 渲染图
+     *
+     * @param musicImg
+     * @param musicSheetId
+     * @return
+     */
+    Boolean updateMusicImg(String musicImg, Long musicSheetId);
 }

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

@@ -11,6 +11,7 @@ import com.yonge.cooleshow.biz.dal.dao.ActivityPlanEvaluationDao;
 import com.yonge.cooleshow.biz.dal.dao.ActivityRewardChangeStockDao;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
+import com.yonge.cooleshow.biz.dal.dto.SaveOrUpdateRewardDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderPayReq;
 import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlanEvaluation;
@@ -470,12 +471,18 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean saveOrUpdateReward(List<ActivityPlanRewardDto> updateRewardDtoList) {
-        Long activityId = updateRewardDtoList.get(0).getActivityId();
+    public Boolean saveOrUpdateReward(SaveOrUpdateRewardDto saveOrUpdateRewardDto) {
+        Long activityId = saveOrUpdateRewardDto.getActivityId();
+        List<ActivityPlanRewardDto> updateRewardDtoList = saveOrUpdateRewardDto.getUpdateRewardDtoList();
+
+        if(CollectionUtils.isEmpty(updateRewardDtoList)){
+            updateRewardDtoList = new ArrayList<>();
+        }
 
         for (ActivityPlanRewardDto rewardDto : updateRewardDtoList) {
             activityPlanRewardService.saveOrUpdateReward(rewardDto);
         }
+
         //还有删除的
         List<Long> rewardIds = updateRewardDtoList.stream().map(ActivityPlanRewardDto::getRewardId).collect(Collectors.toList());
         List<ActivityPlanReward> delList = activityPlanRewardService.getDelRewardList(activityId, rewardIds);

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

@@ -372,6 +372,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         boolean flag = false;
         if (musicSheetAuthRecordService.audit(param, userId)) {
             musicSheet.setAuditStatus(param.getAuthStatus());
+            if (param.getAuthStatus().equals(AuthStatusEnum.PASS) && StringUtil.isEmpty(param.getMusicImg())) {
+                throw new BizException("曲目渲染失败");
+            } else if (param.getAuthStatus().equals(AuthStatusEnum.PASS) && !StringUtil.isEmpty(param.getMusicImg())) {
+                musicSheet.setMusicImg(param.getMusicImg());
+            }
             musicSheet.setUpdateBy(userId);
             musicSheet.setUpdateTime(new Date());
             if (AuthStatusEnum.PASS.getCode().equals(param.getAuthStatus().getCode())) {
@@ -998,6 +1003,16 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
     }
 
+    @Override
+    public Boolean updateMusicImg(String musicImg, Long musicSheetId) {
+        MusicSheet musicSheet = new MusicSheet();
+        musicSheet.setMusicImg(musicImg);
+        musicSheet.setId(musicSheetId);
+        this.updateById(musicSheet);
+
+        return true;
+    }
+
     private SysUser getSysUser(Long userId) {
         return Optional.ofNullable(userId)
                 .map(sysUserFeignService::queryUserById)

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

@@ -30,6 +30,7 @@
         <result column="notation_" jdbcType="VARCHAR" property="notation"/>
         <result column="accompaniment_type_" jdbcType="VARCHAR" property="accompanimentType"/>
         <result column="title_img_" jdbcType="VARCHAR" property="titleImg"/>
+        <result column="music_img_" jdbcType="VARCHAR" property="musicImg"/>
     </resultMap>
 
     <sql id="Base_Column_List">
@@ -67,6 +68,7 @@
         t.remark_ as remark,
         t.title_img_ as titleImg,
         t.reason_ as reason,
+        t.music_img_ as musicImg,
         t.notation_ as notation
     </sql>
 
@@ -261,6 +263,7 @@
         <result column="reason" jdbcType="VARCHAR" property="reason"/>
         <result column="accompanimentType" jdbcType="VARCHAR" property="accompanimentType"/>
         <result column="notation" jdbcType="VARCHAR" property="notation"/>
+        <result column="musicImg" jdbcType="VARCHAR" property="musicImg"/>
         <result column="aiDefaultFrequency" jdbcType="VARCHAR" property="aiDefaultFrequency"/>
         <collection property="background" ofType="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
             <id column="accompanimentId" jdbcType="BIGINT" property="id"/>

+ 40 - 3
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/open/OpenClient.java

@@ -1,20 +1,22 @@
 package com.yonge.cooleshow.student.controller.open;
 
+import com.ksyun.ks3.dto.PostObjectFormFields;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
-import com.yonge.cooleshow.biz.dal.service.StudentService;
-import com.yonge.cooleshow.biz.dal.service.TeacherService;
+import com.yonge.cooleshow.biz.dal.dto.MusicImgDto;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.MusicActivityVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.util.StringUtil;
+import com.yonge.toolset.thirdparty.entity.UploadSign;
 import com.yonge.toolset.utils.string.ValueUtil;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.Map;
 
 
@@ -28,6 +30,11 @@ public class OpenClient extends BaseController {
     private SysUserFeignService sysUserFeignService;
 
     @Autowired
+    private UploadFileService uploadFileService;
+    @Autowired
+    private MusicSheetService musicSheetService;
+
+    @Autowired
     private StudentService studentService;
 
     @ApiOperation(value = "查询老师头像昵称信息")
@@ -74,4 +81,34 @@ public class OpenClient extends BaseController {
 
         return succeed(activityVo);
     }
+
+
+
+    @ApiOperation(value = "新增曲谱渲染图")
+    @PostMapping(value="/music/sheet/img")
+    public HttpResponseResult<Boolean> img(@RequestBody @Valid MusicImgDto musicImgDto) {
+        return succeed(musicSheetService.updateMusicImg(musicImgDto.getMusicImg(),musicImgDto.getMusicSheetId()));
+    }
+
+
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "bucketName", dataType = "String", value = "为空时默认使用daya"),
+            @ApiImplicitParam(name = "fileName", dataType = "String", value = "要上传的文件名称,不包含路径信息"),
+            @ApiImplicitParam(name = "postData", dataType = "Map", value = "1.如果使用js sdk上传的时候设置了ACL请设置,例\"acl\":\"public-read\"值要与SDK中一致,没有则删除该项</br>" +
+                    "2.提供js sdk中的key值,例\"key\":\"20150115/中文/${filename}\""),
+            @ApiImplicitParam(name = "unknowValueField", dataType = "List", value = "对于用户无法确定表单值的放在unknownValueField中(比如有的上传控件会添加一些表单项,但表单项的值可能是随机的)"),
+    })
+    @ApiOperation(value = "获取上传文件签名", notes = "{\n" +
+            "    \"bucketName\":\"\",\n" +
+            "    \"filename\":\"test.png\",\n" +
+            "    \"postData\":{\n" +
+            "        \"acl\":\"public-read\",\n" +
+            "        \"key\":\"20150115/中文/${filename}\"\n" +
+            "    },\n" +
+            "    \"unknowValueField\":[\"test\"]\n" +
+            "}")
+    @PostMapping("/getUploadSign")
+    public HttpResponseResult<PostObjectFormFields> getUploadSign(@RequestBody UploadSign uploadSign) {
+        return succeed(uploadFileService.getUploadSign(uploadSign));
+    }
 }

+ 50 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenClient.java

@@ -0,0 +1,50 @@
+package com.yonge.cooleshow.website.controller.open;
+
+import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.MusicImgDto;
+import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.vo.MusicActivityVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.util.StringUtil;
+import com.yonge.toolset.thirdparty.entity.UploadSign;
+import com.yonge.toolset.utils.string.ValueUtil;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Map;
+
+
+@RestController
+@RequestMapping("/open")
+@Api(value = "开放权限接口", tags = "开放权限接口")
+public class OpenClient extends BaseController {
+    @Autowired
+    private UploadFileService uploadFileService;
+
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "bucketName", dataType = "String", value = "为空时默认使用daya"),
+            @ApiImplicitParam(name = "fileName", dataType = "String", value = "要上传的文件名称,不包含路径信息"),
+            @ApiImplicitParam(name = "postData", dataType = "Map", value = "1.如果使用js sdk上传的时候设置了ACL请设置,例\"acl\":\"public-read\"值要与SDK中一致,没有则删除该项</br>" +
+                    "2.提供js sdk中的key值,例\"key\":\"20150115/中文/${filename}\""),
+            @ApiImplicitParam(name = "unknowValueField", dataType = "List", value = "对于用户无法确定表单值的放在unknownValueField中(比如有的上传控件会添加一些表单项,但表单项的值可能是随机的)"),
+    })
+    @ApiOperation(value = "获取上传文件签名", notes = "{\n" +
+            "    \"bucketName\":\"\",\n" +
+            "    \"filename\":\"test.png\",\n" +
+            "    \"postData\":{\n" +
+            "        \"acl\":\"public-read\",\n" +
+            "        \"key\":\"20150115/中文/${filename}\"\n" +
+            "    },\n" +
+            "    \"unknowValueField\":[\"test\"]\n" +
+            "}")
+    @PostMapping("/getUploadSign")
+    public HttpResponseResult<PostObjectFormFields> getUploadSign(@RequestBody UploadSign uploadSign) {
+        return succeed(uploadFileService.getUploadSign(uploadSign));
+    }
+}

+ 9 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenMusicSheetController.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.website.controller.open;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.MusicImgDto;
 import com.yonge.cooleshow.biz.dal.dto.search.HotSearchSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
@@ -23,6 +24,7 @@ import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -122,4 +124,11 @@ public class OpenMusicSheetController extends BaseController {
         return succeed(pages.getRecords());
     }
 
+
+    @ApiOperation(value = "新增曲谱渲染图")
+    @PostMapping(value="/img")
+    public HttpResponseResult<Boolean> img(@RequestBody @Valid MusicImgDto musicImgDto) {
+        return succeed(musicSheetService.updateMusicImg(musicImgDto.getMusicImg(),musicImgDto.getMusicSheetId()));
+    }
+
 }