Jelajahi Sumber

fix:添加标签,曲目添加逻辑判断

liujunchi 3 tahun lalu
induk
melakukan
784e341124

+ 5 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicAlbumController.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
@@ -73,7 +74,10 @@ public class MusicAlbumController extends BaseController {
         if (musicAlbum.getId()==null){
             return failed("缺少ID");
         }
-
+        MusicAlbum service = musicAlbumService.getById(musicAlbum.getId());
+        if (YesOrNoEnum.YES.getCode().equals(service.getAlbumStatus().getCode())) {
+            return failed("启用状态不许修改");
+        }
         musicAlbum.setUpdateBy(sysUser.getId());
         musicAlbum.setUpdateTime(new Date());
         return succeed(musicAlbumService.updateMusicAlbum(musicAlbum));

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

@@ -14,6 +14,7 @@ import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
+import com.yonge.cooleshow.biz.dal.service.MusicTagService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
@@ -51,6 +52,8 @@ public class MusicSheetController extends BaseController {
 	@Autowired
 	private MusicSheetService musicSheetService;
 
+    @Autowired
+    private MusicTagService musicTagService;
 
     /**
      * 查询单条
@@ -81,6 +84,14 @@ public class MusicSheetController extends BaseController {
             return failed("曲目声部不能为空");
         }
 
+        String musicTag = musicSheetDto.getMusicTag();
+        List<Long> musicTagList = StringUtil.toLongList(musicTag);
+
+        //  一级曲谱标签只能选一个二级
+        if (!musicTagService.checkParentDifferent(musicTagList)) {
+            return failed("每个一级标签只能选一个二级标签");
+        }
+
         musicSheetDto.setUserId(sysUser.getId());
         musicSheetDto.setAuditStatus(AuthStatusEnum.PASS);
         musicSheetDto.setDelFlag(false);
@@ -130,6 +141,10 @@ public class MusicSheetController extends BaseController {
         if (musicSheet.getId()==null){
             return failed("缺少ID");
         }
+        MusicSheet service = musicSheetService.getById(musicSheet.getId());
+        if (YesOrNoEnum.YES.getCode().equals(service.getState().getCode())) {
+            return failed("启用状态不许修改");
+        }
 
         musicSheet.setUpdateBy(sysUser.getId());
         musicSheet.setUpdateTime(new Date());

+ 13 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicTagController.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.admin.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.MusicTagSaveDto;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicTagSearch;
+import com.yonge.cooleshow.biz.dal.entity.MusicTag;
 import com.yonge.cooleshow.biz.dal.service.MusicTagService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.MusicTagVo;
@@ -64,6 +65,12 @@ public class MusicTagController extends BaseController {
 	@PostMapping(value = "/save",  consumes="application/json", produces="application/json")
 	@ApiOperation(value = "新增", httpMethod="POST", consumes="application/json", produces="application/json")
 	public HttpResponseResult<Boolean> save(@Validated(MusicTagSaveDto.Create.class) @RequestBody MusicTagSaveDto musicTagSaveDto) {
+		if (musicTagSaveDto.getParentTagId() != null && musicTagSaveDto.getParentTagId() != 0) {
+			MusicTag musicTag = musicTagService.getById(musicTagSaveDto.getParentTagId());
+			if (musicTag.getParentTagId() != 0) {
+				return failed("标签只能有两级");
+			}
+		}
 		return succeed(musicTagService.createMusicTag(musicTagSaveDto));
 	}
 
@@ -73,6 +80,12 @@ public class MusicTagController extends BaseController {
 	@PostMapping(value =  "/update",  consumes="application/json", produces="application/json")
 	@ApiOperation(value = "修改", httpMethod="POST", consumes="application/json", produces="application/json")
 	public HttpResponseResult<Boolean> update(@Validated(MusicTagSaveDto.Update.class) @RequestBody MusicTagSaveDto musicTagSaveDto) {
+		if (musicTagSaveDto.getParentTagId() != null && musicTagSaveDto.getParentTagId() != 0) {
+			MusicTag musicTag = musicTagService.getById(musicTagSaveDto.getParentTagId());
+			if (musicTag.getParentTagId() != 0) {
+				return failed("标签只能有两级");
+			}
+		}
 		return succeed(musicTagService.updateMusicTag(musicTagSaveDto));
 	}
 

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

@@ -66,4 +66,12 @@ public interface MusicTagService extends IService<MusicTag>  {
 	 * @return list
 	 */
     List<MusicTagVo> selectMusicTagTree();
+
+	/**
+	 * 检查每个二级标签都在不同的一级标签下
+	 *
+	 * @param musicTagIdList 二级标签id集合
+	 * @return boolean
+	 */
+    boolean checkParentDifferent(List<Long> musicTagIdList);
 }

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

@@ -18,6 +18,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -199,5 +200,16 @@ public class MusicTagServiceImpl extends ServiceImpl<MusicTagDao, MusicTag> impl
         return tree;
     }
 
+    @Override
+    public boolean checkParentDifferent(List<Long> musicTagIdList) {
+
+        if (CollectionUtils.isEmpty(musicTagIdList)) {
+            return true;
+        }
+        List<MusicTag> list = this.lambdaQuery().in(MusicTag::getId, musicTagIdList).list();
+        return list.size() == musicTagIdList.size();
+
+    }
+
 
 }