Browse Source

Merge branch 'dev_v1.3.6_20221021'

Eric 2 years ago
parent
commit
31f3fbda08

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

@@ -12,6 +12,7 @@ import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 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.AlbumDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
@@ -53,6 +54,12 @@ public class MusicAlbumController extends BaseController {
             return failed("用户信息获取失败");
         }
 
+
+        String[] split = musicAlbum.getAlbumTag().split(",");
+        if (split.length >3) {
+            throw new BizException("专辑标签数不能超过3个");
+        }
+
         musicAlbum.setCreateBy(sysUser.getId());
         musicAlbum.setCreateTime(new Date());
         musicAlbum.setUpdateBy(sysUser.getId());
@@ -88,6 +95,12 @@ public class MusicAlbumController extends BaseController {
         if (YesOrNoEnum.YES.getCode().equals(service.getAlbumStatus().getCode())) {
             return failed("启用状态不许修改");
         }
+
+        String[] split = musicAlbum.getAlbumTag().split(",");
+        if (split.length >3) {
+            throw new BizException("专辑标签数不能超过3个");
+        }
+
         musicAlbum.setUpdateBy(sysUser.getId());
         musicAlbum.setUpdateTime(new Date());
         return succeed(musicAlbumService.updateMusicAlbum(musicAlbum));

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

@@ -637,6 +637,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     @Transactional(rollbackFor = Exception.class)
     public boolean saveMusicSheet(MusicSheetDto musicSheetDto, Long userId) {
 
+        String[] split = musicSheetDto.getMusicTag().split(",");
+        if (split!= null  && split.length >3) {
+            throw new BizException("曲目标签数不能超过3个");
+        }
         MusicSheet oldMusicSheet = null;
         Long originalMusicSheetId = null;
         Long lastMusicSheetId = musicSheetDto.getId();

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

@@ -66,6 +66,8 @@ public class MusicTagServiceImpl extends ServiceImpl<MusicTagDao, MusicTag> impl
                                 musicTagVo.setEnableTeacherMusicSheetNum(musicTagVo.getEnableTeacherMusicSheetNum() + children.getEnableTeacherMusicSheetNum());
                                 musicTagVo.setMusicPlatformSheetNum(musicTagVo.getMusicPlatformSheetNum() + children.getMusicPlatformSheetNum());
                                 musicTagVo.setMusicTeacherSheetNum(musicTagVo.getMusicTeacherSheetNum() + children.getMusicTeacherSheetNum());
+                                musicTagVo.setMusicPlatformAlbumNum(musicTagVo.getMusicPlatformAlbumNum() + children.getMusicPlatformAlbumNum());
+                                musicTagVo.setEnablePlatformAlbumNum(musicTagVo.getEnablePlatformAlbumNum() + children.getEnablePlatformAlbumNum());
                             });
                         });
          return musicTagVoIPage;

+ 99 - 80
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -82,111 +82,130 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		long record = super.insert(bean);
 
 		if (record > 0) {
-			ThreadPool.getExecutor().submit(() -> {
-				try {
-
-					// 统计单曲练习时长,频率;评测时长、频率
-					ClientEnum clientType = Optional.of(ClientEnum.valueOf(bean.getClientId().toUpperCase()))
-							.orElse(ClientEnum.STUDENT);
-
-					// 单曲统计
-					MusicCompareWrapper.RecordInfo musicStatRecord = MusicCompareWrapper.RecordInfo.builder()
-							.musicSheetId(bean.getMusicSheetId())
-							.clientId(clientType)
-							.userId(0L)
-							.recentTime(DateTime.now().getMillis())
-							.build();
-
-					// 用户单曲统计
-					MusicCompareWrapper.RecordInfo userStatRecord = MusicCompareWrapper.RecordInfo.builder()
-							.musicSheetId(bean.getMusicSheetId())
-							.clientId(clientType)
-							.userId(bean.getUserId())
-							.recentTime(DateTime.now().getMillis())
-							.build();
+			// 生成曲目评测统计数据
+			saveMusicCompareRecordStatInfo(bean);
+		}
 
-					// 按练习、评测分别进行统计
-					Lists.newArrayList(FeatureType.values()).parallelStream().forEach(dataType -> {
+		return record;
+	}
 
-						MusicCompareWrapper.RecordQueryInfo queryInfo = MusicCompareWrapper.RecordQueryInfo.builder()
-								.clientId(bean.getClientId())
-								.musicSheetId(bean.getMusicSheetId())
-								.feature(dataType)
-								.build();
+	/**
+	 * 生成曲目统计数据
+	 * @param record SysMusicCompareRecord
+	 */
+	private void saveMusicCompareRecordStatInfo(SysMusicCompareRecord record) {
+
+		ThreadPool.getExecutor().submit(() -> {
+			try {
+
+				// 统计单曲练习时长,频率;评测时长、频率
+				ClientEnum clientType = Optional.of(ClientEnum.valueOf(record.getClientId().toUpperCase()))
+						.orElse(ClientEnum.STUDENT);
+
+				// 单曲统计
+				MusicCompareWrapper.RecordInfo musicStatRecord = MusicCompareWrapper.RecordInfo.builder()
+						.musicSheetId(record.getMusicSheetId())
+						.clientId(clientType)
+						.userId(0L)
+						.recentTime(DateTime.now().getMillis())
+						.build();
+
+				// 用户单曲统计
+				MusicCompareWrapper.RecordInfo userStatRecord = MusicCompareWrapper.RecordInfo.builder()
+						.musicSheetId(record.getMusicSheetId())
+						.clientId(clientType)
+						.userId(record.getUserId())
+						.recentTime(DateTime.now().getMillis())
+						.build();
+
+				// 按练习、评测分别进行统计
+				Lists.newArrayList(FeatureType.values()).parallelStream().forEach(dataType -> {
+
+					MusicCompareWrapper.RecordQueryInfo queryInfo = MusicCompareWrapper.RecordQueryInfo.builder()
+							.clientId(record.getClientId())
+							.musicSheetId(record.getMusicSheetId())
+							.feature(dataType)
+							.build();
 
-						// 曲目统计
-						List<StatGroupWrapper> musicWrappers = sysMusicCompareRecordDao.selectMusicCompareRecordStatInfo(queryInfo);
+					// 曲目统计
+					List<StatGroupWrapper> musicWrappers = sysMusicCompareRecordDao.selectMusicCompareRecordStatInfo(queryInfo);
 
-						// 用户曲目统计
-						queryInfo.setUserId(bean.getUserId());
+					// 用户曲目统计
+					queryInfo.setUserId(record.getUserId());
 
-						List<StatGroupWrapper> userMusicWrappers = sysMusicCompareRecordDao.selectMusicCompareRecordStatInfo(queryInfo);
+					List<StatGroupWrapper> userMusicWrappers = sysMusicCompareRecordDao.selectMusicCompareRecordStatInfo(queryInfo);
 
-						switch (dataType) {
-							case CLOUD_STUDY_TRAIN: // 练习
-								{
-									// 先统计练习曲目
-									if (CollectionUtils.isNotEmpty(musicWrappers)) {
+					switch (dataType) {
+						case CLOUD_STUDY_TRAIN: // 练习
+							{
+								// 先统计练习曲目
+								if (CollectionUtils.isNotEmpty(musicWrappers)) {
 
-										StatGroupWrapper wrapper = musicWrappers.get(0);
+									StatGroupWrapper wrapper = musicWrappers.get(0);
 
-										musicStatRecord.trainDuration(wrapper.getNumber().longValue())
-												.trainFrequency(wrapper.getTotal().longValue());
-									}
+									musicStatRecord.trainDuration(wrapper.getNumber().longValue())
+											.trainFrequency(wrapper.getTotal().longValue());
+								}
 
-									// 在按用户统计
-									if (CollectionUtils.isNotEmpty(userMusicWrappers)) {
-										StatGroupWrapper wrapper = userMusicWrappers.get(0);
+								// 在按用户统计
+								if (CollectionUtils.isNotEmpty(userMusicWrappers)) {
+									StatGroupWrapper wrapper = userMusicWrappers.get(0);
 
-										userStatRecord.trainDuration(wrapper.getNumber().longValue())
-												.trainFrequency(wrapper.getTotal().longValue());
-									}
+									userStatRecord.trainDuration(wrapper.getNumber().longValue())
+											.trainFrequency(wrapper.getTotal().longValue());
 								}
-								break;
-							case CLOUD_STUDY_EVALUATION: // 评测
-								{
-									// 先统计评测曲目
-									if (CollectionUtils.isNotEmpty(musicWrappers)) {
+							}
+							break;
+						case CLOUD_STUDY_EVALUATION: // 评测
+							{
+								// 先统计评测曲目
+								if (CollectionUtils.isNotEmpty(musicWrappers)) {
 
-										StatGroupWrapper wrapper = musicWrappers.get(0);
+									StatGroupWrapper wrapper = musicWrappers.get(0);
 
-										musicStatRecord.evaluateDuration(wrapper.getNumber().longValue())
-												.evaluateFrequency(wrapper.getTotal().longValue());
-									}
+									musicStatRecord.evaluateDuration(wrapper.getNumber().longValue())
+											.evaluateFrequency(wrapper.getTotal().longValue());
+								}
 
-									// 在按用户统计
-									if (CollectionUtils.isNotEmpty(userMusicWrappers)) {
-										StatGroupWrapper wrapper = userMusicWrappers.get(0);
+								// 在按用户统计
+								if (CollectionUtils.isNotEmpty(userMusicWrappers)) {
+									StatGroupWrapper wrapper = userMusicWrappers.get(0);
 
-										userStatRecord.evaluateDuration(wrapper.getNumber().longValue())
-												.evaluateFrequency(wrapper.getTotal().longValue());
-									}
+									userStatRecord.evaluateDuration(wrapper.getNumber().longValue())
+											.evaluateFrequency(wrapper.getTotal().longValue());
 								}
-								break;
-							default:
-								break;
-						}
-					});
-
-					List<MusicCompareWrapper.RecordInfo> recordInfos = Lists.newArrayList(musicStatRecord, userStatRecord);
+							}
+							break;
+						default:
+							break;
+					}
+				});
 
-					musicCompareRecordStatService.batchUpdateMusicCompareRecordStat(recordInfos);
+				List<MusicCompareWrapper.RecordInfo> recordInfos = Lists.newArrayList(musicStatRecord, userStatRecord);
 
-				} catch (Exception e) {
-				    log.error("MusicCompareRecordStat userId={}, musicId={}", bean.getUserId(), bean.getMusicSheetId(), e);
-				}
-			});
-		}
+				musicCompareRecordStatService.batchUpdateMusicCompareRecordStat(recordInfos);
 
-		return record;
+			} catch (Exception e) {
+				log.error("MusicCompareRecordStat userId={}, musicId={}", record.getUserId(), record.getMusicSheetId(), e);
+			}
+		});
 	}
 
 	@Override
 	@Transactional
 	public void saveMusicCompareData(SysMusicCompareRecord sysMusicCompareRecord) {
-		
-		sysMusicCompareRecordDao.update(sysMusicCompareRecord);
 
+		int record = sysMusicCompareRecordDao.update(sysMusicCompareRecord);
+
+		if (record > 0) {
+			SysMusicCompareRecord info = sysMusicCompareRecordDao.get(sysMusicCompareRecord.getId());
+
+			if (Objects.nonNull(info)) {
+
+				// 生成曲目评测统计数据
+				saveMusicCompareRecordStatInfo(info);
+			}
+		}
 	}
 
 	@Override

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MusicTagVo.java

@@ -40,6 +40,28 @@ public class MusicTagVo extends MusicTag{
 	@ApiModelProperty("老师乐谱数")
 	private Integer musicTeacherSheetNum= 0;
 
+	@ApiModelProperty("平台专辑启用数")
+	private Integer enablePlatformAlbumNum = 0;
+
+	@ApiModelProperty("平台专辑数")
+	private Integer musicPlatformAlbumNum= 0;
+
+	public Integer getEnablePlatformAlbumNum() {
+		return enablePlatformAlbumNum;
+	}
+
+	public void setEnablePlatformAlbumNum(Integer enablePlatformAlbumNum) {
+		this.enablePlatformAlbumNum = enablePlatformAlbumNum;
+	}
+
+	public Integer getMusicPlatformAlbumNum() {
+		return musicPlatformAlbumNum;
+	}
+
+	public void setMusicPlatformAlbumNum(Integer musicPlatformAlbumNum) {
+		this.musicPlatformAlbumNum = musicPlatformAlbumNum;
+	}
+
 	public Integer getEnablePlatformMusicSheetNum() {
 		return enablePlatformMusicSheetNum;
 	}

+ 3 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicTagMapper.xml

@@ -68,7 +68,9 @@
         (select count(1) from music_sheet ms where find_in_set(t.id_,ms.music_tag_) and ms.del_flag_ = 0 and  ms.state_ = 1 and ms.source_type_ = 'PLATFORM') as enablePlatformMusicSheetNum,
         (select count(1) from music_sheet ms where find_in_set(t.id_,ms.music_tag_) and ms.del_flag_ = 0  and ms.source_type_ = 'PLATFORM') as musicPlatformSheetNum,
         (select count(1) from music_sheet ms where find_in_set(t.id_,ms.music_tag_) and ms.del_flag_ = 0 and ms.source_type_ = 'TEACHER' and ms.audit_status_ = 'PASS') as musicTeacherSheetNum,
-        (select count(1) from music_sheet ms where find_in_set(t.id_,ms.music_tag_) and ms.del_flag_ = 0  and ms.source_type_ = 'TEACHER' and ms.state_ = 1 and ms.audit_status_ = 'PASS') as enableTeacherMusicSheetNum
+        (select count(1) from music_sheet ms where find_in_set(t.id_,ms.music_tag_) and ms.del_flag_ = 0  and ms.source_type_ = 'TEACHER' and ms.state_ = 1 and ms.audit_status_ = 'PASS') as enableTeacherMusicSheetNum,
+        (select count(1) from music_album ma where find_in_set(t.id_,ma.album_tag_) and ma.del_flag_ = 0    and ma.album_status_ = 1) as enablePlatformAlbumNum,
+        (select count(1) from music_album ma where find_in_set(t.id_,ma.album_tag_) and ma.del_flag_ = 0 ) as musicPlatformAlbumNum
         FROM music_tag t
         left join sys_user su on t.update_by_ = su.id_
         <where>

+ 1 - 1
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/config/ResourceServerConfig.java

@@ -28,7 +28,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .authorizeRequests()
                 .antMatchers("/task/**")
                 .hasIpAddress("0.0.0.0/0")
-                .antMatchers("/wechat/*", "/v2/api-docs", "/code/*","/open/**","/sysMusicRecord/getLastEvaluationMusicalNotesPlayStats","/music/sheet/detail/**")
+                .antMatchers("/wechat/*", "/v2/api-docs", "/code/*","/open/**","/sysMusicRecord/getLastEvaluationMusicalNotesPlayStats","/sysConfig/queryByParamNameList","/music/sheet/detail/**")
                 .permitAll().anyRequest().authenticated().and().httpBasic();
     }
 

+ 1 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/config/ResourceServerConfig.java

@@ -32,7 +32,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .and()
                 .authorizeRequests()
                 .antMatchers("/task/*").hasIpAddress("0.0.0.0/0")
-                .antMatchers("/v2/api-docs", "/code/*",
+                .antMatchers("/v2/api-docs", "/code/*","/sysConfig/queryByParamNameList",
                         "/liveRoom/test", "/liveRoom/syncUserStatus", "/courseGroup/getLockCache", "/open/**",
                         "/liveRoomVideo/recordSync"
                 ).permitAll().anyRequest().authenticated().and().httpBasic();

+ 1 - 1
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/config/ResourceServerConfig.java

@@ -31,7 +31,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .and()
                 .authorizeRequests()
                 .antMatchers("/task/*").hasIpAddress("0.0.0.0/0")
-                .antMatchers("/v2/api-docs", "/code/*",
+                .antMatchers("/v2/api-docs", "/code/*","/sysConfig/queryByParamNameList",
                         "/liveRoom/test", "/liveRoom/syncUserStatus", "/courseGroup/getLockCache", "/open/**")
                 .permitAll().anyRequest().authenticated().and().httpBasic();
     }

+ 2 - 2
service.md

@@ -1,12 +1,12 @@
 - [ ] gateway-server
 - [ ] auth-server
-- [x] admin-server
+- [ ] admin-server
 - [ ] teacher-server
 - [ ] student-server
 - [ ] website-server
 - [ ] task-server
 - [ ] websocket-server
-- [ ] audio-analysis
+- [x] audio-analysis
 - [ ] bbs-server
 - [ ] classroom-server
 - [ ] cms-server