Explorar el Código

Merge branch 'zx_saas_cbs' of http://git.dayaedu.com/yonge/mec into dev

# Conflicts:
#	mec-auth/pom.xml
#	mec-common/common-core/pom.xml
#	pom.xml
zouxuan hace 1 año
padre
commit
88f5d8ffd6
Se han modificado 27 ficheros con 484 adiciones y 537 borrados
  1. 1 1
      audio-analysis/src/main/java/com/yonge/netty/server/service/AudioCompareHandler.java
  2. 2 2
      cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsTypeServiceImpl.java
  3. 2 1
      mec-application/src/main/java/com/ym/mec/student/controller/SysMusicCompareRecordController.java
  4. 7 12
      mec-application/src/main/java/com/ym/mec/teacher/controller/SysMusicScoreController.java
  5. 18 13
      mec-application/src/main/java/com/ym/mec/web/controller/SysMusicScoreController.java
  6. 1 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/CbsQrCodeScanServiceImpl.java
  7. 1 1
      mec-auth/pom.xml
  8. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectDao.java
  9. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreCategoriesDao.java
  10. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreDao.java
  11. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserTenantDao.java
  12. 5 98
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Subject.java
  13. 8 299
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicScore.java
  14. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicCompareRecordService.java
  15. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreCategoriesService.java
  16. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreService.java
  17. 122 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CbsMusicSheetServiceImpl.java
  18. 5 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SoundCompareHandler.java
  19. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java
  20. 6 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreCategoriesServiceImpl.java
  21. 144 93
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreServiceImpl.java
  22. 16 3
      mec-biz/src/main/resources/config/mybatis/SubjectMapper.xml
  23. 18 0
      mec-biz/src/main/resources/config/mybatis/SysMusicScoreCategoriesMapper.xml
  24. 59 7
      mec-biz/src/main/resources/config/mybatis/SysMusicScoreMapper.xml
  25. 29 0
      mec-biz/src/main/resources/config/mybatis/SysUserTenantMapper.xml
  26. 1 1
      mec-common/common-core/pom.xml
  27. 1 0
      pom.xml

+ 1 - 1
audio-analysis/src/main/java/com/yonge/netty/server/service/AudioCompareHandler.java

@@ -141,7 +141,7 @@ public class AudioCompareHandler implements MessageHandler {
 				sysMusicCompareRecord.setDeviceType(DeviceTypeEnum.valueOf(musicXmlBasicInfo.getPlatform()));
 				sysMusicCompareRecord.setSpeed(musicXmlBasicInfo.getSpeed());
 				sysMusicCompareRecord.setPartIndex(musicXmlBasicInfo.getPartIndex());
-				
+				sysMusicCompareRecord.setSubjectId(musicXmlBasicInfo.getSubjectId());
 				//SysUser sysUser = sysUserFeignService.queryUserById(sysMusicCompareRecord.getUserId());
 				sysMusicCompareRecord.setTenantId(musicXmlBasicInfo.getTenantId());
 				

+ 2 - 2
cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsTypeServiceImpl.java

@@ -66,11 +66,11 @@ public class SysNewsTypeServiceImpl extends BaseServiceImpl<Integer, SysNewsType
     public List<SysNewsType> listWithTree(Integer id, String memo,Integer userId,String organIds) {
         SysNewsType newsType = sysNewsTypeDao.get(id);
         //获取需要排除的用户编号
-        String excludeUserIds = sysConfigDao.findConfigValue("excludeUserIds");
+        String excludeUserIds = sysConfigDao.findConfigValue("exclude_user_ids");
         String excludeFunctionIds = null;
         if(StringUtils.isNotEmpty(excludeUserIds) && excludeUserIds.contains(userId.toString())){
             //获取需要排除的功能点编号
-            excludeFunctionIds = sysConfigDao.findConfigValue("excludeFunctionIds");
+            excludeFunctionIds = sysConfigDao.findConfigValue("exclude_function_ids");
         }
         List<SysNewsType> all = sysNewsTypeDao.findAll(null);
         String startTime = DateUtil.format(DateUtil.getFirstDayOfMonth(DateUtil.addMonths(new Date(), -1)),DateUtil.ISO_EXPANDED_DATE_FORMAT);

+ 2 - 1
mec-application/src/main/java/com/ym/mec/student/controller/SysMusicCompareRecordController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.student.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
 import com.ym.mec.biz.service.SysMusicCompareRecordService;
 import com.ym.mec.biz.service.SysUserService;
@@ -58,7 +59,7 @@ public class SysMusicCompareRecordController extends BaseController {
 
     @ApiOperation(value = "用户最后一次评测数据")
     @GetMapping("getLastEvaluationMusicalNotesPlayStats")
-    public HttpResponseResult getLastEvaluationMusicalNotesPlayStats(Long recordId){
+    public HttpResponseResult<JSONObject> getLastEvaluationMusicalNotesPlayStats(Long recordId){
         return succeed(sysMusicCompareRecordService.getLastEvaluationMusicalNotesPlayStats(sysUserService.getUserId(), recordId));
     }
 

+ 7 - 12
mec-application/src/main/java/com/ym/mec/teacher/controller/SysMusicScoreController.java

@@ -1,30 +1,29 @@
 package com.ym.mec.teacher.controller;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.MusicScoreDto;
 import com.ym.mec.biz.dal.entity.SysMusicScore;
 import com.ym.mec.biz.dal.enums.ClientTypeEnum;
 import com.ym.mec.biz.dal.enums.ExamSongTypeEnum;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
 import com.ym.mec.biz.service.SysMusicScoreService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+
 @RequestMapping("${app-config.url.teacher:}/sysMusicScore")
 @Api(tags = "曲库")
 @RestController
 public class SysMusicScoreController extends BaseController {
 
-    @Autowired
+    @Resource
     private SysMusicScoreService sysMusicScoreService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private SysUserService sysUserService;
 
     @ApiOperation(value = "新增")
     @PostMapping("/add")
@@ -53,14 +52,10 @@ public class SysMusicScoreController extends BaseController {
         if(StringUtils.isEmpty(type)){
             queryInfo.setType("ALL");
         }
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            throw new BizException("请登录");
-        }
         if(queryInfo.getClientType() == null){
             queryInfo.setClientType(ClientTypeEnum.NETWORK_ROOM);
         }
-        queryInfo.setCreateUserId(sysUser.getId());
+        queryInfo.setCreateUserId(sysUserService.getUserId());
         queryInfo.setShowFlag(1);
         return succeed(sysMusicScoreService.queryPage(queryInfo));
     }

+ 18 - 13
mec-application/src/main/java/com/ym/mec/web/controller/SysMusicScoreController.java

@@ -1,19 +1,23 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.dto.MusicScoreDto;
 import com.ym.mec.biz.dal.entity.SysMusicScore;
 import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
 import com.ym.mec.biz.dal.enums.ClientTypeEnum;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
 import com.ym.mec.biz.service.SysMusicScoreService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 @RequestMapping("${app-config.url.web:}/sysMusicScore")
@@ -21,16 +25,16 @@ import java.util.List;
 @RestController
 public class SysMusicScoreController extends BaseController {
 
-    @Autowired
+    @Resource
     private SysMusicScoreService sysMusicScoreService;
 
-    @ApiOperation(value = "修改")
+    /*@ApiOperation(value = "修改")
     @PostMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('sysMusicScore/update')")
     public Object update(@RequestBody MusicScoreDto musicScoreDto) {
         sysMusicScoreService.updateMusicScore(musicScoreDto);
         return succeed();
-    }
+    }*/
 
     @ApiOperation(value = "修改样式")
     @PostMapping("/updateExtStyleConfigJson")
@@ -43,7 +47,7 @@ public class SysMusicScoreController extends BaseController {
     @ApiOperation(value = "启用/停用")
     @PostMapping("/show")
     @PreAuthorize("@pcs.hasPermissions('sysMusicScore/show')")
-    public Object update(Integer sysMusicScoreId,Integer showFlag) {
+    public HttpResponseResult<Object> update(Integer sysMusicScoreId, Integer showFlag) {
         SysMusicScore sysMusicScore = sysMusicScoreService.get(sysMusicScoreId);
         if(sysMusicScore == null){
             throw new BizException("曲目信息不存在");
@@ -53,26 +57,26 @@ public class SysMusicScoreController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation(value = "新增")
+    /*@ApiOperation(value = "新增")
     @PostMapping("/add")
     @PreAuthorize("@pcs.hasPermissions('sysMusicScore/add')")
     public Object add(@RequestBody MusicScoreDto musicScoreDto) {
         sysMusicScoreService.add(musicScoreDto);
         return succeed();
-    }
+    }*/
 
-    @ApiOperation(value = "删除")
+/*    @ApiOperation(value = "删除")
     @PostMapping("/del")
     @PreAuthorize("@pcs.hasPermissions('sysMusicScore/del')")
     public Object del(Integer id) {
         sysMusicScoreService.del(id);
         return succeed();
-    }
+    }*/
 
     @ApiOperation(value = "分页查询")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('sysMusicScore/queryPage')")
-    public Object queryPage(SysExamSongQueryInfo queryInfo) {
+    public HttpResponseResult<PageInfo<SysMusicScore>> queryPage(SysExamSongQueryInfo queryInfo) {
         return succeed(sysMusicScoreService.queryMusicScorePage(queryInfo));
     }
 
@@ -82,7 +86,8 @@ public class SysMusicScoreController extends BaseController {
         queryInfo.setType("COMMON");
         queryInfo.setShowFlag(1);
         queryInfo.setClientType(ClientTypeEnum.SMART_PRACTICE);
-        return succeed(sysMusicScoreService.queryMusicScorePageInfo(queryInfo));
+//        return succeed(sysMusicScoreService.queryMusicScorePageInfo(queryInfo));
+        return succeed(sysMusicScoreService.queryMusicScorePage(queryInfo));
     }
     
     private void getAllCategoryIdList(List<Integer> categoryIdList, List<SysMusicScoreCategories> sysMusicScoreCategoriesList){

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/CbsQrCodeScanServiceImpl.java

@@ -46,7 +46,7 @@ public class CbsQrCodeScanServiceImpl{
             throw new BizException(HttpStatus.UNAUTHORIZED.value(), "用户不存在");
         }
         //获取需要排除的用户编号
-        String excludeUserIds = sysConfigDao.findConfigValue("excludeUserIds");
+        String excludeUserIds = sysConfigDao.findConfigValue("exclude_user_ids");
         if(StringUtils.isNotEmpty(excludeUserIds) && excludeUserIds.contains(sysUser.getId().toString())){
             throw new BizException("扫码登陆失败: 用户已锁定");
         }

+ 1 - 1
mec-auth/pom.xml

@@ -18,7 +18,7 @@
 		<dependency>
 			<groupId>com.dayaedu.cbs.openfeign</groupId>
 			<artifactId>dayaedu-openfeign-api</artifactId>
-			<version>1.0.4</version>
+			<version>${cbs.version}</version>
 		</dependency>
 		<!-- 引用Mybatis 和 Mysql驱动开始 -->
 		<dependency>

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectDao.java

@@ -174,4 +174,6 @@ public interface SubjectDao extends BaseDAO<Integer, Subject> {
     List<StudentSubjectDto> getSubjectByStudentId(@Param("studentIds") Set studentIds);
 
     List<Subject> findByNames();
+
+    List<Subject> queryCbsList(@Param("cbsSubjectIds") List<Long> cbsSubjectIds);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreCategoriesDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetCategoryWrapper;
 import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
@@ -28,4 +29,6 @@ public interface SysMusicScoreCategoriesDao extends BaseDAO<Integer, SysMusicSco
     List<SysMusicScoreCategories> queryByIds(String ids);
     
     SysMusicScoreCategories queryByParentId(Integer parentId);
+
+    List<CbsMusicSheetCategoryWrapper.MusicSheetCategory> categoryList(@Param("param") CbsMusicSheetCategoryWrapper.MusicSheetCategoryQuery queryInfo);
 }

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreDao.java

@@ -1,6 +1,10 @@
 package com.ym.mec.biz.dal.dao;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApiWrapper;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApplicationExtendWrapper;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetExtendWrapper;
 import com.ym.mec.biz.dal.dto.SysMusicScoreMetronomeTranscod;
 import com.ym.mec.biz.dal.dto.SysMusicScoreTranscod;
 import com.ym.mec.biz.dal.entity.SysMusicScore;
@@ -24,4 +28,16 @@ public interface SysMusicScoreDao extends BaseDAO<Integer, SysMusicScore> {
     int updateAccompanimentBySongId(@Param("param") SysMusicScoreAccompaniment param);
 
     int updateExtStyleConfigJson(@Param("id") Integer id, @Param("extStyleConfigJson") String extStyleConfigJson);
+
+    List<SysMusicScore> findByCbsId(@Param("cbsMusicSheetIds") List<Long> cbsMusicSheetIds);
+
+    void updateBatchByCbsId(@Param("vos") List<CbsMusicSheetApplicationExtendWrapper.MusicSheetApplicationExtend> updateMusicScore);
+
+    void batchInsert(@Param("vos") List<CbsMusicSheetApplicationExtendWrapper.MusicSheetApplicationExtend> addMusicSheet);
+
+    void batchEnable(@Param("cbsMusicSheetIds") String cbsMusicSheetIds, @Param("status") Boolean status);
+
+    void batchDel(@Param("cbsMusicSheetIds") String cbsMusicSheetIds);
+
+    void updateMusicSheet(@Param("param") CbsMusicSheetApiWrapper.MusicSheetUpdate musicSheetUpdate);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserTenantDao.java

@@ -1,6 +1,8 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetExtendWrapper;
 import com.ym.mec.biz.dal.entity.SysUserTenant;
 import com.ym.mec.biz.dal.vo.SysUserTenantVo;
 import org.apache.ibatis.annotations.Param;
@@ -19,5 +21,10 @@ public interface SysUserTenantDao extends BaseMapper<SysUserTenant> {
 
     List<SysUserTenantVo> queryUserTenant(@Param("userId") Integer userId);
 
+    IPage<CbsMusicSheetExtendWrapper.MusicSheetExtend> personOwnerList(@Param("page") IPage<CbsMusicSheetExtendWrapper.MusicSheetExtend> page,
+                                                                       @Param("param") CbsMusicSheetExtendWrapper.MusicSheetExtendQuery queryInfo);
+
+    IPage<CbsMusicSheetExtendWrapper.MusicSheetExtend> orgOwnerList(@Param("page") IPage<CbsMusicSheetExtendWrapper.MusicSheetExtend> page,
+                                                                    @Param("param") CbsMusicSheetExtendWrapper.MusicSheetExtendQuery queryInfo);
 }
 

+ 5 - 98
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Subject.java

@@ -1,9 +1,8 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-
 import io.swagger.annotations.ApiModelProperty;
-
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
@@ -12,10 +11,14 @@ import java.util.List;
 /**
  * 对应数据库表(subject):
  */
+@Data
 public class Subject {
 
 	/**  */
 	private Integer id;
+
+	/**  */
+	private Long cbsSubjectId;
 	
 	/**  */
 	@ApiModelProperty(value = "科目名称",required = false)
@@ -57,104 +60,8 @@ public class Subject {
 	@ApiModelProperty(value = "子节点列表",required = false)
 	private List<Subject> subjects;
 
-	public Integer getTenantId() {
-		return tenantId;
-	}
-
-	public void setTenantId(Integer tenantId) {
-		this.tenantId = tenantId;
-	}
-
-	public List<Subject> getSubjects() {
-		return subjects;
-	}
-
-	public BigDecimal getFee() {
-		return fee;
-	}
-
-	public void setFee(BigDecimal fee) {
-		this.fee = fee;
-	}
-
-	public void setSubjects(List<Subject> subjects) {
-		this.subjects = subjects;
-	}
-
-	public void setId(Integer id){
-		this.id = id;
-	}
-	
-	public Integer getId(){
-		return this.id;
-	}
-			
-	public void setName(String name){
-		this.name = name;
-	}
-	
-	public String getName(){
-		return this.name;
-	}
-			
-	public void setCode(String code){
-		this.code = code;
-	}
-	
-	public String getCode(){
-		return this.code;
-	}
-			
-	public void setParentSubjectId(Integer parentSubjectId){
-		this.parentSubjectId = parentSubjectId;
-	}
-	
-	public Integer getParentSubjectId(){
-		return this.parentSubjectId;
-	}
-			
-	public void setCreateTime(java.util.Date createTime){
-		this.createTime = createTime;
-	}
-	
-	public java.util.Date getCreateTime(){
-		return this.createTime;
-	}
-			
-	public void setUpdateTime(java.util.Date updateTime){
-		this.updateTime = updateTime;
-	}
-	
-	public java.util.Date getUpdateTime(){
-		return this.updateTime;
-	}
-
-	public YesOrNoEnum getDelFlag() {
-		return delFlag;
-	}
-
-	public void setDelFlag(YesOrNoEnum delFlag) {
-		this.delFlag = delFlag;
-	}
-
-	public String getImg() {
-		return img;
-	}
-
-	public void setImg(String img) {
-		this.img = img;
-	}
-
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
-
-	public String getParentSubjectName() {
-		return parentSubjectName;
-	}
-
-	public void setParentSubjectName(String parentSubjectName) {
-		this.parentSubjectName = parentSubjectName;
-	}
 }

+ 8 - 299
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicScore.java

@@ -3,11 +3,14 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.biz.dal.enums.ClientTypeEnum;
 import com.ym.mec.biz.dal.enums.ExamSongTypeEnum;
 import com.ym.mec.common.enums.BaseEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
  * 对应数据库表(sys_music_score):
  */
+@Data
 public class SysMusicScore {
 	
 	public enum PlayMode  implements BaseEnum<String, PlayMode> {
@@ -37,6 +40,9 @@ public class SysMusicScore {
 
 	/**  */
 	private Integer id;
+
+	@ApiModelProperty(value = "内容平台曲目ID")
+	private Long cbsMusicSheetId;  //主键ID
 	
 	/**  */
 	private Integer musicScoreCategoriesId;
@@ -63,7 +69,7 @@ public class SysMusicScore {
 	private String subjectName;
 	
 	/** 速度 */
-	private Integer speed;
+	private String speed;
 	
 	/** 原音MP3 */
 	private String url;
@@ -107,8 +113,8 @@ public class SysMusicScore {
 	/**  */
 	private java.util.Date createTime;
 
-	//是否显示
 	private Integer showFlag = 0;
+
 	private String showName;
 
 	private Boolean isOpenMetronome;
@@ -122,303 +128,6 @@ public class SysMusicScore {
 	private PlayMode playMode;
 
 	private String organName;
-
-	public String getExtConfigJson() {
-		return extConfigJson;
-	}
-
-	public void setExtConfigJson(String extConfigJson) {
-		this.extConfigJson = extConfigJson;
-	}
-
-	public String getExtStyleConfigJson() {
-		return extStyleConfigJson;
-	}
-
-	public void setExtStyleConfigJson(String extStyleConfigJson) {
-		this.extStyleConfigJson = extStyleConfigJson;
-	}
-
-	public String getTypeName() {
-		return typeName;
-	}
-
-	public void setTypeName(String typeName) {
-		this.typeName = typeName;
-	}
-
-	public String getOpenMetronomeName() {
-		return openMetronomeName;
-	}
-
-	public String getShowName() {
-		return showName;
-	}
-
-	public void setShowName(String showName) {
-		this.showName = showName;
-	}
-
-	public void setOpenMetronomeName(String openMetronomeName) {
-		this.openMetronomeName = openMetronomeName;
-	}
-
-	public Integer getSubjectId() {
-		return subjectId;
-	}
-
-	public void setSubjectId(Integer subjectId) {
-		this.subjectId = subjectId;
-	}
-
-	public String getSubjectName() {
-		return subjectName;
-	}
-
-	public void setSubjectName(String subjectName) {
-		this.subjectName = subjectName;
-	}
-
-	public String getOrganName() {
-		return organName;
-	}
-
-	public void setOrganName(String organName) {
-		this.organName = organName;
-	}
-
-	public Boolean getIsOpenMetronome() {
-		return isOpenMetronome;
-	}
-
-	public void setIsOpenMetronome(Boolean isOpenMetronome) {
-		this.isOpenMetronome = isOpenMetronome;
-	}
-
-	public PlayMode getPlayMode() {
-		return playMode;
-	}
-
-	public void setPlayMode(PlayMode playMode) {
-		this.playMode = playMode;
-	}
-
-	public String getAccompanimentUrl() {
-		return accompanimentUrl;
-	}
-
-	public void setAccompanimentUrl(String accompanimentUrl) {
-		this.accompanimentUrl = accompanimentUrl;
-	}
-
-	public String getAccompanimentMetronomeUrl() {
-		return accompanimentMetronomeUrl;
-	}
-
-	public void setAccompanimentMetronomeUrl(String accompanimentMetronomeUrl) {
-		this.accompanimentMetronomeUrl = accompanimentMetronomeUrl;
-	}
-
-	public String getXmlUrl() {
-		return xmlUrl;
-	}
-
-	public void setXmlUrl(String xmlUrl) {
-		this.xmlUrl = xmlUrl;
-	}
-
-	public String getMetronomeUrl() {
-		return metronomeUrl;
-	}
-
-	public void setMetronomeUrl(String metronomeUrl) {
-		this.metronomeUrl = metronomeUrl;
-	}
-
-	public String getMidiUrl() {
-		return midiUrl;
-	}
-
-	public void setMidiUrl(String midiUrl) {
-		this.midiUrl = midiUrl;
-	}
-
-	public Integer getShowFlag() {
-		return showFlag;
-	}
-
-	public void setShowFlag(Integer showFlag) {
-		this.showFlag = showFlag;
-	}
-
-	public String getRankIds() {
-		return rankIds;
-	}
-
-	public void setRankIds(String rankIds) {
-		this.rankIds = rankIds;
-	}
-
-	public String getRenderFrom() {
-		return renderFrom;
-	}
-
-	public void setRenderFrom(String renderFrom) {
-		this.renderFrom = renderFrom;
-	}
-
-	public boolean isEnableEvaluation() {
-		return enableEvaluation;
-	}
-
-	public void setEnableEvaluation(boolean enableEvaluation) {
-		this.enableEvaluation = enableEvaluation;
-	}
-
-	public ClientTypeEnum getClientType() {
-		return clientType;
-	}
-
-	public void setClientType(ClientTypeEnum clientType) {
-		this.clientType = clientType;
-	}
-
-	public Integer getOrder() {
-		return order;
-	}
-
-	public void setOrder(Integer order) {
-		this.order = order;
-	}
-
-	public Integer getCategoriesId() {
-		return categoriesId;
-	}
-
-	public void setCategoriesId(Integer categoriesId) {
-		this.categoriesId = categoriesId;
-	}
-
-	public String getCategoriesName() {
-		return categoriesName;
-	}
-
-	public void setCategoriesName(String categoriesName) {
-		this.categoriesName = categoriesName;
-	}
-
-	public String getCreateUserName() {
-		return createUserName;
-	}
-
-	public void setCreateUserName(String createUserName) {
-		this.createUserName = createUserName;
-	}
-
-	public void setId(Integer id){
-		this.id = id;
-	}
-	
-	public Integer getId(){
-		return this.id;
-	}
-			
-	public void setMusicScoreCategoriesId(Integer musicScoreCategoriesId){
-		this.musicScoreCategoriesId = musicScoreCategoriesId;
-	}
-	
-	public Integer getMusicScoreCategoriesId(){
-		return this.musicScoreCategoriesId;
-	}
-			
-	public void setName(String name){
-		this.name = name;
-	}
-	
-	public String getName(){
-		return this.name;
-	}
-
-	public ExamSongTypeEnum getType() {
-		return type;
-	}
-
-	public void setType(ExamSongTypeEnum type) {
-		this.type = type;
-	}
-
-	public void setSubjectIds(String subjectIds){
-		this.subjectIds = subjectIds;
-	}
-	
-	public String getSubjectIds(){
-		return this.subjectIds;
-	}
-			
-	public void setSpeed(Integer speed){
-		this.speed = speed;
-	}
-	
-	public Integer getSpeed(){
-		return this.speed;
-	}
-			
-	public void setUrl(String url){
-		this.url = url;
-	}
-	
-	public String getUrl(){
-		return this.url;
-	}
-			
-	public void setCreateUserId(Integer createUserId){
-		this.createUserId = createUserId;
-	}
-	
-	public Integer getCreateUserId(){
-		return this.createUserId;
-	}
-			
-	public void setDelFlag(Integer delFlag){
-		this.delFlag = delFlag;
-	}
-	
-	public Integer getDelFlag(){
-		return this.delFlag;
-	}
-			
-	public void setUpdateTime(java.util.Date updateTime){
-		this.updateTime = updateTime;
-	}
-	
-	public java.util.Date getUpdateTime(){
-		return this.updateTime;
-	}
-			
-	public void setCreateTime(java.util.Date createTime){
-		this.createTime = createTime;
-	}
-	
-	public java.util.Date getCreateTime(){
-		return this.createTime;
-	}
-
-	public String getMuseScoreUrl() {
-		return museScoreUrl;
-	}
-
-	public void setMuseScoreUrl(String museScoreUrl) {
-		this.museScoreUrl = museScoreUrl;
-	}
-
-	public String getMuseScoreMemo() {
-		return museScoreMemo;
-	}
-
-	public void setMuseScoreMemo(String museScoreMemo) {
-		this.museScoreMemo = museScoreMemo;
-	}
-
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicCompareRecordService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dao.SysMusicCompareRecordDao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
@@ -41,7 +42,7 @@ public interface SysMusicCompareRecordService extends BaseService<Long, SysMusic
      * @param userId:
      * @return java.util.List<com.ym.mec.biz.dal.dto.MusicalNotesPlayStatDto>
      */
-    Object getLastEvaluationMusicalNotesPlayStats(Integer userId, Long recordId);
+    JSONObject getLastEvaluationMusicalNotesPlayStats(Integer userId, Long recordId);
 
     /**
      * @describe 云教练排行榜

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreCategoriesService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 
 import com.ym.mec.auth.api.dto.MusicScoreQueryInfo;
+import com.ym.mec.biz.dal.dao.SysMusicScoreCategoriesDao;
 import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
 import com.ym.mec.common.service.BaseService;
 
@@ -9,6 +10,8 @@ import java.util.List;
 
 public interface SysMusicScoreCategoriesService extends BaseService<Integer, SysMusicScoreCategories> {
 
+    SysMusicScoreCategoriesDao getDao();
+
     List<SysMusicScoreCategories> queryTree(MusicScoreQueryInfo menuQueryInfo);
     
     List<SysMusicScoreCategories> queryCategoriesTreeList(String categoryIdList, Boolean isQueryEnable);

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreService.java

@@ -4,6 +4,7 @@ package com.ym.mec.biz.service;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.biz.dal.dao.SysMusicScoreDao;
 import com.ym.mec.biz.dal.dto.MusicScoreDto;
 import com.ym.mec.biz.dal.entity.SysMusicScore;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
@@ -12,6 +13,8 @@ import com.ym.mec.common.service.BaseService;
 
 public interface SysMusicScoreService extends BaseService<Integer, SysMusicScore> {
 
+    SysMusicScoreDao getDao();
+
     void updateMusicScore(MusicScoreDto musicScoreDto);
 
     void add(MusicScoreDto musicScoreDto);

+ 122 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CbsMusicSheetServiceImpl.java

@@ -0,0 +1,122 @@
+package com.ym.mec.biz.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.dayaedu.cbs.common.enums.music.EMusicSourceType;
+import com.dayaedu.cbs.openfeign.service.CbsMusicSheetService;
+import com.dayaedu.cbs.openfeign.wrapper.music.*;
+import com.microsvc.toolkit.common.response.paging.PageInfo;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.biz.dal.dao.SysUserTenantDao;
+import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.entity.SysMusicScore;
+import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
+import com.ym.mec.biz.service.SubjectService;
+import com.ym.mec.biz.service.SysMusicScoreCategoriesService;
+import com.ym.mec.biz.service.SysMusicScoreService;
+import com.ym.mec.common.exception.BizException;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class CbsMusicSheetServiceImpl implements CbsMusicSheetService {
+
+    private static final Logger log = LoggerFactory.getLogger(CbsMusicSheetServiceImpl.class);
+
+    @Resource
+    private SysMusicScoreService sysMusicScoreService;
+    @Resource
+    private SysMusicScoreCategoriesService sysMusicScoreCategoriesService;
+    @Resource
+    private SubjectService subjectService;
+    @Resource
+    private SysUserTenantDao sysUserTenantDao;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean saveApplicationExtend(List<CbsMusicSheetApplicationExtendWrapper.MusicSheetApplicationExtend> addMusicSheet) {
+        if (CollectionUtils.isEmpty(addMusicSheet)) {
+            throw new BizException("请选择曲目信息");
+        }
+        List<Long> cbsMusicSheetIds = addMusicSheet.stream().map(e -> e.getMusicSheetId()).collect(Collectors.toList());
+        for (CbsMusicSheetApplicationExtendWrapper.MusicSheetApplicationExtend extend : addMusicSheet) {
+            CbsMusicSheetApiWrapper.MusicSheetUpdate musicSheetUpdate = extend.getMusicSheetUpdate();
+            if(StringUtils.isNotBlank(musicSheetUpdate.getSubjectIds())) {
+                List<Long> cbsSubjectIds = Arrays.stream(musicSheetUpdate.getSubjectIds().split(",")).map(Long::parseLong).collect(Collectors.toList());
+                List<Subject> subjectIds = subjectService.getDao().queryCbsList(cbsSubjectIds);
+                if (CollectionUtils.isNotEmpty(subjectIds)) {
+                    musicSheetUpdate.setSubjectIds(subjectIds.stream().map(e -> e.getId().toString()).collect(Collectors.joining(",")));
+                }
+            }
+        }
+        //需要修改的曲目
+        List<SysMusicScore> musicSheets = sysMusicScoreService.getDao().findByCbsId(cbsMusicSheetIds);
+        if (CollectionUtils.isNotEmpty(musicSheets)){
+            List<Long> collect = musicSheets.stream().map(e -> e.getCbsMusicSheetId()).collect(Collectors.toList());
+            //获取需要修改的曲目
+            List<CbsMusicSheetApplicationExtendWrapper.MusicSheetApplicationExtend> updateMusicScore =
+                    addMusicSheet.stream().filter(e -> collect.contains(e.getMusicSheetId())).collect(Collectors.toList());
+            sysMusicScoreService.getDao().updateBatchByCbsId(updateMusicScore);
+            //排除已经存在的曲目
+            addMusicSheet = addMusicSheet.stream().filter(e -> !collect.contains(e.getMusicSheetId())).collect(Collectors.toList());
+        }
+        if(CollectionUtils.isNotEmpty(addMusicSheet)){
+            sysMusicScoreService.getDao().batchInsert(addMusicSheet);
+        }
+        return true;
+    }
+
+    public Boolean updateApplicationExtendStatus(CbsMusicSheetApplicationExtendWrapper.MusicSheetApplicationExtendStatus updateMusicSheet){
+        if (updateMusicSheet == null || StringUtils.isEmpty(updateMusicSheet.getIds())){
+            throw new BizException("请选择曲目");
+        }
+        if (updateMusicSheet.getStatus() == null){
+            throw new BizException("请选择状态");
+        }
+        if (!updateMusicSheet.getStatus()){
+            sysMusicScoreService.getDao().batchEnable(updateMusicSheet.getIds(),updateMusicSheet.getStatus());
+        }
+        return true;
+    }
+
+    public Boolean delApplicationExtend(CbsMusicSheetApplicationExtendWrapper.MusicSheetApplicationExtendDel musicSheetApplicationExtendDel){
+        if (musicSheetApplicationExtendDel == null || StringUtils.isEmpty(musicSheetApplicationExtendDel.getIds())){
+            throw new BizException("请选择曲目");
+        }
+        sysMusicScoreService.getDao().batchDel(musicSheetApplicationExtendDel.getIds());
+        return true;
+    }
+
+    public List<CbsMusicSheetTagWrapper.MusicSheetTag> tagList(CbsMusicSheetTagWrapper.MusicSheetTagQuery queryInfo){
+        return null;
+    }
+
+    public List<CbsMusicSheetCategoryWrapper.MusicSheetCategory> categoryList(CbsMusicSheetCategoryWrapper.MusicSheetCategoryQuery queryInfo){
+        return sysMusicScoreCategoriesService.getDao().categoryList(queryInfo);
+    }
+
+    public PageInfo<CbsMusicSheetExtendWrapper.MusicSheetExtend> ownerList(CbsMusicSheetExtendWrapper.MusicSheetExtendQuery queryInfo){
+        IPage<CbsMusicSheetExtendWrapper.MusicSheetExtend> page = QueryInfo.getPage(queryInfo);
+        if (queryInfo.getSourceType() == null){
+            throw new BizException("请选择来源类型");
+        }
+        if(queryInfo.getSourceType() == EMusicSourceType.PERSON){
+            return QueryInfo.pageInfo(sysUserTenantDao.personOwnerList(page, queryInfo));
+        }else {
+            return QueryInfo.pageInfo(sysUserTenantDao.orgOwnerList(page, queryInfo));
+        }
+    }
+
+    public boolean updateMusicSheet(CbsMusicSheetApiWrapper.MusicSheetUpdate musicSheetUpdate) {
+        sysMusicScoreService.getDao().updateMusicSheet(musicSheetUpdate);
+        return true;
+    }
+}

+ 5 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SoundCompareHandler.java

@@ -120,10 +120,13 @@ public class SoundCompareHandler implements WebSocketEventHandler {
                 if(bodyObject.containsKey("speed")){
                     userSoundInfoMap.get(phone).setSpeed(bodyObject.getIntValue("speed"));
                 }
-                List<Integer> subjectIds = sysMusicScoreAccompanimentDao.findSubjectByMusicScoreId(userSoundInfoMap.get(phone).getMusicScoreId(), null);
+                if(bodyObject.containsKey("subjectId")){
+                    userSoundInfoMap.get(phone).setSubjectId(bodyObject.getIntValue("subjectId"));
+                }
+                /*List<Integer> subjectIds = sysMusicScoreAccompanimentDao.findSubjectByMusicScoreId(userSoundInfoMap.get(phone).getMusicScoreId(), null);
                 if(!CollectionUtils.isEmpty(subjectIds)){
                     userSoundInfoMap.get(phone).setSubjectId(subjectIds.get(0));
-                }
+                }*/
                 userSoundInfoMap.get(phone).setMeasureXmlInfoMap(musicXmlInfos.stream().collect(Collectors.groupingBy(MusicPitchDetailDto::getMeasureIndex)));
                 musicXmlInfos.forEach(e->userSoundInfoMap.get(phone).getMusicalNotePitchMap().put(e.getMusicalNotesIndex(), e.getFrequency()));
                 for (Map.Entry<Integer, List<MusicPitchDetailDto>> userMeasureXmlInfoEntry : userSoundInfoMap.get(phone).getMeasureXmlInfoMap().entrySet()) {

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -166,7 +166,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 	}
 
 	@Override
-	public Object getLastEvaluationMusicalNotesPlayStats(Integer userId, Long recordId) {
+	public JSONObject getLastEvaluationMusicalNotesPlayStats(Integer userId, Long recordId) {
 		SysMusicCompareRecord userLastEvaluationData;
 		if(Objects.nonNull(recordId)){
 			userLastEvaluationData = sysMusicCompareRecordDao.get(recordId);
@@ -182,6 +182,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 
 		JSONObject jsonObject = JSON.parseObject(userLastEvaluationData.getScoreData());
 		jsonObject.put("recordId", userLastEvaluationData.getId());
+		jsonObject.put("subjectId", userLastEvaluationData.getSubjectId());
 		jsonObject.put("score", userLastEvaluationData.getScore());
 		jsonObject.put("cadence", userLastEvaluationData.getCadence());
 		jsonObject.put("intonation", userLastEvaluationData.getIntonation());

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreCategoriesServiceImpl.java

@@ -34,7 +34,12 @@ public class SysMusicScoreCategoriesServiceImpl extends BaseServiceImpl<Integer,
 	}
 
 
-	@Override
+    @Override
+    public SysMusicScoreCategoriesDao getDao() {
+		return sysMusicScoreCategoriesDao;
+    }
+
+    @Override
 	public List<SysMusicScoreCategories> queryTree(MusicScoreQueryInfo menuQueryInfo) {
 		List<SysMusicScoreCategories> scoreCategories = sysMusicScoreCategoriesDao.findByParentId(menuQueryInfo.getParentId(),menuQueryInfo.getSearch(),menuQueryInfo.getEnable());
 		List<SysMusicScoreCategories> scoreCategoriesAllList = sysMusicScoreCategoriesDao.findByParentId(null,menuQueryInfo.getSearch(),menuQueryInfo.getEnable());

+ 144 - 93
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreServiceImpl.java

@@ -1,77 +1,74 @@
 package com.ym.mec.biz.service.impl;
 
 
-import static com.ym.mec.biz.dal.enums.ClientTypeEnum.SMART_PRACTICE;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsSubjectApiWrapper;
+import com.microsvc.toolkit.common.response.template.R;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.MusicScoreDto;
 import com.ym.mec.biz.dal.dto.SysMusicScoreMetronomeTranscod;
 import com.ym.mec.biz.dal.dto.SysMusicScoreTranscod;
-import com.ym.mec.biz.dal.entity.SysMusicScoreChangeLog;
-import com.ym.mec.biz.service.OrganizationService;
-import com.ym.mec.biz.service.UploadFileService;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
+import com.ym.mec.biz.service.*;
+import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.UploadReturnBean;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.IdGeneratorService;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.file.FileUtil;
 import com.ym.mec.util.shell.ScriptUtil;
-
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.MusicScoreDto;
-import com.ym.mec.biz.dal.entity.SysMusicScore;
-import com.ym.mec.biz.dal.entity.SysMusicScoreAccompaniment;
-import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
-import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
-import com.ym.mec.biz.service.SysMusicScoreCategoriesService;
-import com.ym.mec.biz.service.SysMusicScoreService;
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.service.impl.BaseServiceImpl;
-import com.ym.mec.util.collection.MapUtil;
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import static com.ym.mec.biz.dal.enums.ClientTypeEnum.SMART_PRACTICE;
 
 @Service
 public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicScore> implements SysMusicScoreService {
 
-    @Autowired
+    @Resource
     private SysMusicScoreDao sysMusicScoreDao;
-    @Autowired
+    @Resource
     private SysMusicScoreAccompanimentDao sysMusicScoreAccompanimentDao;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-    @Autowired
+    @Resource
+    private SysUserService sysUserService;
+    @Resource
     private SysMusicScoreCategoriesDao sysMusicScoreCategoriesDao;
-    @Autowired
+    @Resource
     private SubjectDao subjectDao;
-    @Autowired
+    @Resource
     private SysMusicScoreCategoriesService sysMusicScoreCategoriesService;
-    @Autowired
+    @Resource
     private SysMusicScoreChangeLogDao sysMusicScoreChangeLogDao;
-    @Autowired
+    @Resource
     private IdGeneratorService idGeneratorService;
-    @Autowired
+    @Resource
     private UploadFileService uploadFileService;
-    @Autowired
+    @Resource
     private OrganizationService organizationService;
+    @Resource
+    private MusicFeignClientService musicFeignClientService;
+
+    @Value("${openfeign-client.app-id:1745637981387108354}")
+    public Long applicationId;
 
     @Override
     public BaseDAO<Integer, SysMusicScore> getDAO() {
@@ -79,6 +76,11 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
     }
 
     @Override
+    public SysMusicScoreDao getDao() {
+        return sysMusicScoreDao;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public void updateMusicScore(MusicScoreDto musicScoreDto) {
         SysMusicScore sysMusicScore = musicScoreDto.getSysMusicScore();
@@ -118,12 +120,8 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void add(MusicScoreDto musicScoreDto) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("请登录");
-        }
         SysMusicScore sysMusicScore = musicScoreDto.getSysMusicScore();
-        sysMusicScore.setCreateUserId(sysUser.getId());
+        sysMusicScore.setCreateUserId(sysUserService.getUserId());
         sysMusicScoreDao.insert(sysMusicScore);
         List<SysMusicScoreAccompaniment> sysMusicScoreAccompaniments = musicScoreDto.getSysMusicScoreAccompaniments();
         if (sysMusicScoreAccompaniments != null && sysMusicScoreAccompaniments.size() > 0) {
@@ -153,6 +151,10 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
         if (sysMusicScore == null) {
             throw new BizException("曲目不存在");
         }
+        Integer userId = sysUserService.getUserId();
+        if (!Objects.equals(sysMusicScore.getCreateUserId(), userId)) {
+            throw new BizException("无权限删除");
+        }
         sysMusicScoreDao.delete(id);
         sysMusicScoreAccompanimentDao.deleteBySongId(id);
         Integer categoriesId = sysMusicScore.getMusicScoreCategoriesId();
@@ -190,32 +192,36 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
         }
     }
 
-    private void dealMusicScoreParam(SysExamSongQueryInfo queryInfo){
-        queryInfo.setOrganId(organizationService.getEmployeeOrgan(queryInfo.getOrganId()));
-        if(queryInfo.getCategoriesId() != null){
-            List<Integer> categoriesIdList = new ArrayList<>();
-            Integer categoriesId = Integer.parseInt(queryInfo.getCategoriesId());
-
-            SysMusicScoreCategories sysMusicScoreCategories = sysMusicScoreCategoriesService.get(categoriesId);
-
-            if(sysMusicScoreCategories == null){
-                throw new BizException("分类找不到");
+    private void dealMusicScoreData(List<SysMusicScore> records){
+        if (CollectionUtils.isNotEmpty(records)) {
+            List<Long> cbsMusicSheetIds = records.stream().map(e -> e.getCbsMusicSheetId()).collect(Collectors.toList());
+            CbsMusicSheetWrapper.MusicSheetApplicationQuery query = new CbsMusicSheetWrapper.MusicSheetApplicationQuery();
+            query.setMusicSheetIds(cbsMusicSheetIds);
+            query.setDetailFlag(true);
+            R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetApplication>> pageInfoR =
+                    musicFeignClientService.musicSheetPageByApplication(query);
+            if(pageInfoR.getCode() != 200){
+                throw new BizException("获取曲目信息失败");
             }
-            categoriesIdList.add(categoriesId);
-            sysMusicScoreCategories = sysMusicScoreCategoriesService.getChildTree(sysMusicScoreCategories);
-            getAllCategoryIdList(categoriesIdList, sysMusicScoreCategories.getSysMusicScoreCategoriesList());
-
-            queryInfo.setCategoriesIdList(categoriesIdList);
-        }
-    }
-
-    private void dealMusicScoreData(List<SysMusicScore> rows){
-        if (rows != null && rows.size() > 0) {
-            Set<Integer> categoriesIds = rows.stream().map(e -> e.getMusicScoreCategoriesId()).collect(Collectors.toSet());
+            com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetApplication> pageInfo = pageInfoR.getData();
+            if(pageInfo != null && CollectionUtils.isNotEmpty(pageInfo.getRows())){
+                Map<Long, CbsMusicSheetWrapper.MusicSheetApplication> musicSheetApplicationMap = pageInfo.getRows()
+                        .stream().collect(Collectors.toMap(CbsMusicSheetWrapper.MusicSheetApplication::getId, Function.identity()));
+                List<Subject> subjects = subjectDao.queryCbsList(records.stream().map(SysMusicScore::getSubjectIds)
+                        .filter(StringUtils::isNotEmpty).map(Long::parseLong).distinct().collect(Collectors.toList()));
+                Map<Integer, Subject> subjectMap = subjects.stream().collect(Collectors.toMap(Subject::getId, Function.identity()));
+                for (SysMusicScore record : records) {
+                    CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication = musicSheetApplicationMap.get(record.getCbsMusicSheetId());
+                    if(musicSheetApplication != null){
+                        this.initMusicSheetVo(record,musicSheetApplication,subjectMap);
+                    }
+                }
+            }
+            Set<Integer> categoriesIds = records.stream().map(e -> e.getMusicScoreCategoriesId()).collect(Collectors.toSet());
             //获取分部列表
             Map<Integer, String> organMap = MapUtil.convertMybatisMap(sysMusicScoreCategoriesDao.queryOrganByIds(categoriesIds));
             //获取声部列表
-            Set<Integer> subjectIds = rows.stream().map(e -> e.getSubjectId()).collect(Collectors.toSet());
+            /*Set<Integer> subjectIds = rows.stream().map(e -> e.getSubjectId()).collect(Collectors.toSet());
             subjectIds.removeAll(Collections.singleton(null));
             Map<Long, String> subjectMap = new HashMap();
             if (subjectIds.size() > 0) {
@@ -227,19 +233,60 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
                 if(null != categoriesId){
                     map.put(categoriesId, getParentTreeName(categoriesId));
                 }
-            }
-            for (SysMusicScore row : rows) {
-                row.setCategoriesName(map.get(row.getMusicScoreCategoriesId()));
+            }*/
+            for (SysMusicScore row : records) {
+//                row.setCategoriesName(map.get(row.getMusicScoreCategoriesId()));
                 row.setOrganName(organMap.get(row.getMusicScoreCategoriesId()));
-                row.setSubjectName(subjectMap.get(row.getSubjectId()));
+//                row.setSubjectName(subjectMap.get(row.getSubjectId()));
+            }
+        }
+    }
+
+    public void initMusicSheetVo(SysMusicScore record,CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication,Map<Integer, Subject> subjectMap){
+        if(StringUtils.isNotEmpty(musicSheetApplication.getSubjectIds())){
+            StringBuffer sb = new StringBuffer();
+            for (String s : musicSheetApplication.getSubjectIds().split(",")) {
+                Subject subject = subjectMap.get(Integer.parseInt(s));
+                if(subject != null){
+                    if (sb.length() > 0) {
+                        sb.append(",");
+                    }
+                    sb.append(subject.getName());
+                }
             }
+            record.setSubjectName(sb.toString());
+        }
+        record.setCbsMusicSheetId(musicSheetApplication.getId());
+        record.setPlayMode(SysMusicScore.PlayMode.valueOf(musicSheetApplication.getPlayMode().getCode()));
+        record.setExtConfigJson(musicSheetApplication.getExtConfigJson());
+        record.setExtStyleConfigJson(musicSheetApplication.getExtStyleConfigJson());
+        if(musicSheetApplication.getMusicSheetCategoryId() != null){
+            record.setMusicScoreCategoriesId(musicSheetApplication.getMusicSheetCategoryId().intValue());
+            record.setCategoriesId(musicSheetApplication.getMusicSheetCategoryId().intValue());
+        }
+        record.setName(musicSheetApplication.getName());
+        record.setCategoriesName(musicSheetApplication.getMusicSheetCategoryName());
+        record.setSpeed(musicSheetApplication.getPlaySpeed());
+        List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = musicSheetApplication.getMusicSheetAccompanimentList();
+        if (CollectionUtils.isNotEmpty(accompanimentList)) {
+            record.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
+        }
+        List<CbsMusicSheetWrapper.MusicSheetSound> soundList = musicSheetApplication.getMusicSheetSoundList();
+        if (CollectionUtils.isNotEmpty(soundList)) {
+            record.setAccompanimentMetronomeUrl(soundList.get(0).getAudioFileUrl());
         }
+        record.setXmlUrl(musicSheetApplication.getXmlFileUrl());
+        record.setMidiUrl(musicSheetApplication.getMidiFileUrl());
+        record.setOrder(musicSheetApplication.getSortNo());
+        record.setEnableEvaluation(musicSheetApplication.getIsEvaluated());
+        record.setIsOpenMetronome(musicSheetApplication.getIsUseSystemBeat() && musicSheetApplication.getIsPlayBeat());
     }
 
     @Override
     public List<SysMusicScore> queryMusicScoreAll(SysExamSongQueryInfo queryInfo) {
         //封装查询参数
-        dealMusicScoreParam(queryInfo);
+        queryInfo.setOrganId(organizationService.getEmployeeOrgan(queryInfo.getOrganId()));
+        this.initCategoryIds(queryInfo);
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
@@ -252,7 +299,8 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
     @Override
     public PageInfo<SysMusicScore> queryMusicScorePage(SysExamSongQueryInfo queryInfo) {
         //封装查询参数
-        dealMusicScoreParam(queryInfo);
+        queryInfo.setOrganId(organizationService.getEmployeeOrgan(queryInfo.getOrganId()));
+        this.initCategoryIds(queryInfo);
 
         PageInfo<SysMusicScore> sysMusicScorePageInfo = queryPage(queryInfo);
         List<SysMusicScore> rows = sysMusicScorePageInfo.getRows();
@@ -261,19 +309,14 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
         return sysMusicScorePageInfo;
     }
 
-    @Override
-    public PageInfo<SysMusicScore> queryMusicScorePageInfo(SysExamSongQueryInfo queryInfo) {
-        if (queryInfo.getCategoriesId() != null) {
+    private void initCategoryIds(SysExamSongQueryInfo queryInfo){
+        if(StringUtils.isNotEmpty(queryInfo.getCategoriesId())){
             List<Integer> categoriesIdList = new ArrayList<>();
-            Integer categoriesId = null;
-            if (StringUtils.isNotEmpty(queryInfo.getCategoriesId())) {
-                categoriesId = Integer.parseInt(queryInfo.getCategoriesId());
-            }
-            //List<SysMusicScoreCategories> scoreCategories = sysMusicScoreCategoriesService.queryTree(musicScoreQueryInfo);
+            Integer categoriesId = Integer.parseInt(queryInfo.getCategoriesId());
 
             SysMusicScoreCategories sysMusicScoreCategories = sysMusicScoreCategoriesService.get(categoriesId);
 
-            if (sysMusicScoreCategories == null) {
+            if(sysMusicScoreCategories == null){
                 throw new BizException("分类找不到");
             }
             categoriesIdList.add(categoriesId);
@@ -281,12 +324,20 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
             getAllCategoryIdList(categoriesIdList, sysMusicScoreCategories.getSysMusicScoreCategoriesList());
 
             queryInfo.setCategoriesIdList(categoriesIdList);
-        }else {
-            if(queryInfo.getCategoriesId() == null){
-                return new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-            }
         }
-        return this.queryPage(queryInfo);
+    }
+
+
+    @Override
+    public PageInfo<SysMusicScore> queryMusicScorePageInfo(SysExamSongQueryInfo queryInfo) {
+        this.initCategoryIds(queryInfo);
+        if(CollectionUtils.isEmpty(queryInfo.getCategoriesIdList())){
+            return new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        }
+        PageInfo<SysMusicScore> pageInfo = this.queryPage(queryInfo);
+        List<SysMusicScore> rows = pageInfo.getRows();
+        dealMusicScoreData(rows);
+        return pageInfo;
     }
 
     @Override

+ 16 - 3
mec-biz/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -8,6 +8,7 @@
 
     <resultMap type="com.ym.mec.biz.dal.entity.Subject" id="Subject">
         <result column="id_" property="id"/>
+        <result column="cbs_subject_id_" property="cbsSubjectId"/>
         <result column="name_" property="name"/>
         <result column="code_" property="code"/>
         <result column="parent_subject_id_" property="parentSubjectId"/>
@@ -30,8 +31,8 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Subject" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
-        INSERT INTO subject (id_,name_,code_,parent_subject_id_,img_,create_time_,update_time_)
-        VALUES(#{id},#{name},#{code},#{parentSubjectId},#{img},now(),now())
+        INSERT INTO subject (id_,cbs_subject_id_,name_,code_,parent_subject_id_,img_,create_time_,update_time_)
+        VALUES(#{id},#{cbsSubjectId},#{name},#{code},#{parentSubjectId},#{img},now(),now())
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -41,8 +42,11 @@
             <if test="delFlag != null">
                 del_flag_ = #{delFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
+            <if test="cbsSubjectId != null">
+                parent_subject_id_ = #{cbsSubjectId},
+            </if>
             <if test="parentSubjectId != null">
-                parent_subject_id_ = #{parentSubjectId},
+                cbs_subject_id_ = #{parentSubjectId},
             </if>
             <if test="code != null">
                 code_ = #{code},
@@ -305,4 +309,13 @@
     <select id="findByNames" resultMap="Subject">
         SELECT * FROM `subject` where name_ IN ('长笛','单簧管','萨克斯','小号','长号','圆号','上低音号','大号','打击乐') and del_flag_ = 0
     </select>
+    <select id="queryCbsList" resultType="com.ym.mec.biz.dal.entity.Subject">
+        SELECT * FROM `subject` WHERE del_flag_ = 0 AND parent_subject_id_ != 0
+        <if test="cbsSubjectIds != null and cbsSubjectIds.size > 0">
+            AND cbs_subject_id_ IN
+            <foreach collection="query.cbsSubjectIds" item="cbsSubjectId" open="(" close=")" separator=",">
+                #{cbsSubjectId}
+            </foreach>
+        </if>
+    </select>
 </mapper>

+ 18 - 0
mec-biz/src/main/resources/config/mybatis/SysMusicScoreCategoriesMapper.xml

@@ -204,4 +204,22 @@
 	<select id="queryByParentId" resultMap="SysMusicScoreCategories" >
 		SELECT categ.* FROM sys_music_score_categories categ WHERE categ.id_ = #{parentId}
 	</select>
+    <select id="categoryList"
+            resultType="com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetCategoryWrapper$MusicSheetCategory">
+		SELECT t.id_ id,t.name_ name,t.parent_id_ parentId FROM sys_music_score_categories t
+		<where>
+			<if test="param.ids != null and param.ids.size > 0">
+				and t.id_ IN
+				<foreach collection="param.ids" item="id" open="(" close=")" separator=",">
+					#{id}
+				</foreach>
+			</if>
+			<if test="param.id != null">
+				and t.id_ = #{param.id}
+			</if>
+			<if test="param.delFlag != null">
+				and t.enable_ = #{param.delFlag}
+			</if>
+		</where>
+	</select>
 </mapper>

+ 59 - 7
mec-biz/src/main/resources/config/mybatis/SysMusicScoreMapper.xml

@@ -184,6 +184,15 @@
 		from sys_music_score_accompaniment smsa
 		where smsa.del_flag_ = 0 and smsa.exam_song_id_ = #{sysMusicScoreId}
 	</select>
+	<select id="findByCbsId" resultMap="SysMusicScore">
+		SELECT * FROM sys_music_score WHERE del_flag_ = 0
+		<if test="cbsMusicSheetIds != null">
+			AND cbs_music_sheet_id_ IN
+			<foreach collection="cbsMusicSheetIds" separator="," item="item" open="(" close=")">
+				#{item}
+			</foreach>
+		</if>
+	</select>
 
 	<update id="updateAccompanimentBySongId">
 		update sys_music_score_accompaniment t
@@ -202,16 +211,59 @@
 		update sys_music_score ms set ms.ext_style_config_json_ = #{extStyleConfigJson}
 		where ms.id_ = #{id}
 	</update>
+	<update id="updateBatchByCbsId">
+		<foreach collection="vos" item="item" index="index" separator=";">
+			update sys_music_score set music_score_categories_id_ = #{item.musicSheetCategoryId},
+			client_type_ = 'SMART_PRACTICE',type_ = 'COMMON',
+			rank_ids_ = CASE WHEN #{item.paymentType} = 'FREE' THEN NULL ELSE '1' END,
+			order_ = #{item.sortNo}
+			<if test="item.musicSheetUpdate != null">
+				,name_ = #{item.musicSheetUpdate.name},
+				subject_ids_ = #{item.musicSheetUpdate.subjectIds},
+				speed_ = #{item.musicSheetUpdate.playSpeed},
+				enable_evaluation_ = #{item.musicSheetUpdate.canEvaluate},
+				play_mode_ = #{item.musicSheetUpdate.playMode}
+			</if>
+			where cbs_music_sheet_id_ = #{item.musicSheetId}
+		</foreach>
+	</update>
+	<update id="batchEnable">
+		update sys_music_score set show_flag_ = #{status} where FIND_IN_SET(cbs_music_sheet_id_,#{cbsMusicSheetIds})
+	</update>
+	<update id="batchDel">
+		update sys_music_score set del_flag_ = 1 where FIND_IN_SET(cbs_music_sheet_id_,#{cbsMusicSheetIds})
+	</update>
+	<update id="updateMusicSheet">
+		update sys_music_score set name_ = #{param.name},
+		subject_ids_ = #{param.subjectIds},
+		speed_ = #{param.playSpeed},
+		enable_evaluation_ = #{param.canEvaluate},
+		play_mode_ = #{param.playMode}
+		where cbs_music_sheet_id_ = #{param.id}
+	</update>
+
+	<insert id="batchInsert">
+		insert into sys_music_score
+		(music_score_categories_id_,client_type_,type_,rank_ids_,order_
+		,name_,subject_ids_,speed_,enable_evaluation_,play_mode_,show_flag_)
+		values
+		<foreach collection="vos" item="item" separator=",">
+			(#{item.musicSheetCategoryId},
+			'SMART_PRACTICE','COMMON',
+			CASE WHEN #{item.paymentType} = 'FREE' THEN NULL ELSE '1' END,
+			#{item.sortNo},
+			#{item.musicSheetUpdate.name},
+			#{item.musicSheetUpdate.subjectIds},
+			#{item.musicSheetUpdate.playSpeed},
+			#{item.musicSheetUpdate.canEvaluate},
+			#{item.musicSheetUpdate.playMode},0
+			)
+		</foreach>
+	</insert>
 
 	<sql id="queryPageSql">
 		<where>
-			ses.del_flag_ = 0
-			<!-- <if test="organId != null and organId != null">
-				AND INTE_ARRAY(smsc.organ_id_,#{organId})
-			</if> -->
-			<!-- <if test="categoriesId != null">
-				AND FIND_IN_SET(ses.music_score_categories_id_,#{categoriesId})
-			</if> -->
+			ses.del_flag_ = 0 AND ses.cbs_music_sheet_id_ IS NOT NULL
 			<if test="categoriesIdList != null">
 				AND smsc.id_ IN
 				<foreach collection="categoriesIdList" separator="," item="item" open="(" close=")">

+ 29 - 0
mec-biz/src/main/resources/config/mybatis/SysUserTenantMapper.xml

@@ -33,5 +33,34 @@
                  left join tenant_info as b on a.tenant_id_ = b.id_
         where a.user_id_ = #{userId}
     </select>
+    <select id="personOwnerList"
+            resultType="com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetExtendWrapper$MusicSheetExtend">
+        select su.id_ userId,su.real_name_ username
+        ,'TEACHER' clientType,su.phone_ phone from teacher t
+        left join sys_user su ON su.id_ = t.id_
+        where su.user_type_ LIKE '%TEACHER%' AND su.del_flag_ = 0 AND su.lock_flag_ = 0
+        <if test="param.name != null and param.name != ''">
+            AND (su.phone_ LIKE CONCAT('%',#{param.name},'%') OR su.username_ LIKE CONCAT('%',#{param.name},'%'))
+        </if>
+        <if test="param.userIdList != null and param.userIdList.size > 0">
+            AND su.id_ IN
+            <foreach collection="param.userIdList" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+    <select id="orgOwnerList"
+            resultType="com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetExtendWrapper$MusicSheetExtend">
+        select id_ organizationRoleId,name_ organizationRole,'ORG' clientType,phone_ phone from tenant_info where state_ = 1
+        <if test="param.name != null and param.name != ''">
+            AND (phone_ LIKE CONCAT('%',#{param.name},'%') OR name_ LIKE CONCAT('%',#{param.name},'%'))
+        </if>
+        <if test="param.userIdList != null and param.userIdList.size > 0">
+            AND id_ IN
+            <foreach collection="param.userIdList" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </select>
 
 </mapper>

+ 1 - 1
mec-common/common-core/pom.xml

@@ -20,7 +20,7 @@
 		<dependency>
 			<groupId>com.dayaedu.cbs.openfeign</groupId>
 			<artifactId>dayaedu-openfeign-client</artifactId>
-			<version>1.0.4</version>
+			<version>${cbs.version}</version>
 			<exclusions>
 				<exclusion>
 					<groupId>com.alibaba.cloud</groupId>

+ 1 - 0
pom.xml

@@ -25,6 +25,7 @@
 		<docker.host>http://127.0.0.1:2375</docker.host>
 		<docker.registry.repository>127.0.0.1:5000</docker.registry.repository>
 		<docker.maven.plugin.version>1.2.2</docker.maven.plugin.version>
+		<cbs.version>1.0.7</cbs.version>
 		<com.microsvc.toolkit.version>1.0.4</com.microsvc.toolkit.version>
 	</properties>