liujc 2 yıl önce
ebeveyn
işleme
700ad0cd40
41 değiştirilmiş dosya ile 246 ekleme ve 72 silme
  1. 1 1
      audio-analysis/src/main/java/com/yonge/netty/server/service/AudioCompareHandler.java
  2. 1 1
      audio-analysis/src/main/resources/bootstrap-prod.yml
  3. 1 1
      cooleshow-app/src/main/resources/bootstrap-prod.yml
  4. 1 1
      cooleshow-auth/auth-server/src/main/resources/bootstrap-prod.yml
  5. 3 3
      cooleshow-auth/auth-server/src/main/resources/logback-spring.xml
  6. 1 1
      cooleshow-bbs/src/main/resources/bootstrap-prod.yml
  7. 1 1
      cooleshow-bbs/src/main/resources/logback-spring.xml
  8. 1 1
      cooleshow-cms/src/main/resources/bootstrap-prod.properties
  9. 1 1
      cooleshow-cms/src/main/resources/logback-spring.xml
  10. 1 1
      cooleshow-gateway/gateway-web/src/main/resources/bootstrap-prod.yml
  11. 1 1
      cooleshow-gateway/gateway-web/src/main/resources/logback-spring.xml
  12. 1 1
      cooleshow-mall/mall-portal/src/main/resources/bootstrap-prod.yml
  13. 1 1
      cooleshow-task/src/main/resources/bootstrap-prod.yml
  14. 1 1
      cooleshow-task/src/main/resources/logback-spring.xml
  15. 20 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java
  16. 1 1
      cooleshow-user/user-admin/src/main/resources/bootstrap-prod.yml
  17. 1 1
      cooleshow-user/user-admin/src/main/resources/logback-spring.xml
  18. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  19. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantAlbumService.java
  20. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserTenantAlbumRecordService.java
  21. 82 26
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  22. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  23. 17 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumServiceImpl.java
  24. 7 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantApplyRecordServiceImpl.java
  25. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java
  26. 20 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java
  27. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/music/MusicCompareWrapper.java
  28. 11 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  29. 1 1
      cooleshow-user/user-classroom/src/main/resources/bootstrap-prod.yml
  30. 1 1
      cooleshow-user/user-classroom/src/main/resources/logback-spring.xml
  31. 13 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  32. 1 1
      cooleshow-user/user-student/src/main/resources/bootstrap-prod.yml
  33. 1 1
      cooleshow-user/user-student/src/main/resources/logback-spring.xml
  34. 1 1
      cooleshow-user/user-teacher/src/main/resources/bootstrap-prod.yml
  35. 1 1
      cooleshow-user/user-teacher/src/main/resources/logback-spring.xml
  36. 15 0
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTenantController.java
  37. 1 1
      cooleshow-user/user-tenant/src/main/resources/bootstrap-prod.yml
  38. 1 1
      cooleshow-user/user-tenant/src/main/resources/logback-spring.xml
  39. 1 1
      cooleshow-user/user-website/src/main/resources/bootstrap-prod.yml
  40. 1 1
      cooleshow-websocket/src/main/resources/bootstrap-prod.yml
  41. 1 1
      cooleshow-websocket/src/main/resources/logback-spring.xml

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

@@ -93,7 +93,7 @@ public class AudioCompareHandler implements MessageHandler {
 
 	private AudioFloatConverter converter = AudioFloatConverter.getConverter(audioFormat);
 
-	private String tmpFileDir = "/mdata/soundCompare/";
+	private String tmpFileDir = "/mnt/datadisk/soundCompare/";
 
 	private SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmSS");
 	

+ 1 - 1
audio-analysis/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: audio-analysis
         file-extension: yaml

+ 1 - 1
cooleshow-app/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: app
         file-extension: yaml

+ 1 - 1
cooleshow-auth/auth-server/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: auth
         file-extension: yaml

+ 3 - 3
cooleshow-auth/auth-server/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-test/jenkins/logs/auth-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/auth-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 
@@ -27,8 +27,8 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.yonge" level="DEBUG" />
-	<root level="DEBUG">
+	<logger name="com.yonge" level="WARN" />
+	<root level="WARN">
 		<appender-ref ref="stdout" />
 		<appender-ref ref="file" />
 	</root>

+ 1 - 1
cooleshow-bbs/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: bbs
         file-extension: yaml

+ 1 - 1
cooleshow-bbs/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-dev/jenkins/logs/bbs-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/bbs-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

+ 1 - 1
cooleshow-cms/src/main/resources/bootstrap-prod.properties

@@ -2,7 +2,7 @@
 #\u670d\u52a1\u5668\u5730\u5740
 spring.cloud.nacos.config.server-addr=10.206.0.16:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
-spring.cloud.nacos.config.namespace=dba505ee-020c-4c2b-bab2-e91d89cf248e
+spring.cloud.nacos.config.namespace=e456599c-bef6-453d-927f-0e4a321259ed
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
 spring.cloud.nacos.config.group=DEFAULT_GROUP
 #\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}

+ 1 - 1
cooleshow-cms/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-test/jenkins/logs/cms-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/cms-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

+ 1 - 1
cooleshow-gateway/gateway-web/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: gateway-web
         file-extension: yaml

+ 1 - 1
cooleshow-gateway/gateway-web/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-test/jenkins/logs/gateway-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/gateway-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

+ 1 - 1
cooleshow-mall/mall-portal/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: mall-portal
         file-extension: yaml

+ 1 - 1
cooleshow-task/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: task
         file-extension: yaml

+ 1 - 1
cooleshow-task/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-test/jenkins/logs/task-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/task-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 			  value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

+ 20 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.admin.controller;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Sets;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.yonge.cooleshow.admin.io.request.TenantAlbumVo;
 import com.yonge.cooleshow.api.feign.dto.TenantWrapper;
@@ -191,6 +192,15 @@ public class TenantAlbumController {
             throw new BizException("当前机构已有专辑");
         }
 
+        // 检查曲目重复
+        if (CollectionUtils.isNotEmpty(album.getMusicSheetData())) {
+            List<Long> musicIds = album.getMusicSheetData().stream().flatMap(o -> o.getMusicSheetList().stream().map(m -> m.getId())).collect(Collectors.toList());
+            Set<Long> musicSet = new HashSet<>(musicIds);
+            if (musicSet.size() < musicIds.size()) {
+                throw new BizException("不予许添加相同的曲目");
+            }
+        }
+
         TenantAlbum tenantAlbum = JSON.parseObject(album.jsonString(), TenantAlbum.class);
         List<TenantAlbumVo.MusicSheetData> musicSheetData = album.getMusicSheetData();
 
@@ -230,6 +240,16 @@ public class TenantAlbumController {
             });
         }
 
+        // 检查曲目重复
+        if (CollectionUtils.isNotEmpty(album.getMusicSheetData())) {
+            List<Long> musicIds = album.getMusicSheetData().stream().flatMap(o -> o.getMusicSheetList()
+                    .stream().map(TenantAlbumVo.MusicObject::getId)).collect(Collectors.toList());
+            Set<Long> musicSet = new HashSet<>(musicIds);
+            if (musicSet.size() < musicIds.size()) {
+                throw new BizException("不予许添加相同的曲目");
+            }
+        }
+
         TenantAlbum tenantAlbum = JSON.parseObject(album.jsonString(), TenantAlbum.class);
         List<TenantAlbumVo.MusicSheetData> musicSheetData = album.getMusicSheetData();
 

+ 1 - 1
cooleshow-user/user-admin/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: admin
         file-extension: yaml

+ 1 - 1
cooleshow-user/user-admin/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-test/jenkins/logs/admin-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/admin-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

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

@@ -392,4 +392,10 @@ public interface MusicSheetService extends IService<MusicSheet> {
     Map<Long,MusicSheet> getMapByIds(List<Long> bizIds);
 
     MusicCompareWrapper.SearchData search(MusicCompareWrapper.MusicSearch queryInfo);
+
+    /**
+     * 机构曲目搜索
+     *
+     */
+    MusicCompareWrapper.SearchData searchTenant(MusicCompareWrapper.MusicSearch queryInfo);
 }

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantAlbumService.java

@@ -72,6 +72,13 @@ public interface TenantAlbumService extends IService<TenantAlbum>  {
 
     void buyCancel(UserOrderDetailVo userOrderDetailVo);
 
+    /**
+     * 根据机构Id获取专辑
+     *
+     * @param tenantId 机构Id
+     */
+    List<TenantAlbum> getByTenantId(Long tenantId,Boolean status);
+
 
     /**
      * 添加机构专辑数据

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

@@ -54,6 +54,15 @@ public interface UserTenantAlbumRecordService extends IService<UserTenantAlbumRe
     UserTenantAlbumRecord getNewestByTenantIdAndUserId(Long tenantId, Long userId, ClientEnum clientType);
 
     /**
+     * 获取最新的购买记录
+     *
+     * @param tenantId   机构ID
+     * @param userId     用户ID
+     * @param clientType 客户端类型
+     */
+    List<UserTenantAlbumRecord> getNewestByTenantIdAndUserId(Long tenantId, Long userId, ClientEnum clientType, List<Long> tenantAlbumIds);
+
+    /**
      * 获取生效中的专辑ID
      *
      * @param userId

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

@@ -79,31 +79,7 @@ import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.biz.dal.mapper.UserTenantAlbumRecordMapper;
-import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
-import com.yonge.cooleshow.biz.dal.service.AlbumFavoriteService;
-import com.yonge.cooleshow.biz.dal.service.AlbumMusicRelateService;
-import com.yonge.cooleshow.biz.dal.service.CourseCoursewareService;
-import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
-import com.yonge.cooleshow.biz.dal.service.MusicFavoriteService;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetAccompanimentService;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetAuthRecordService;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetPracticeRecordService;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetPurchaseRecordService;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
-import com.yonge.cooleshow.biz.dal.service.MusicTagService;
-import com.yonge.cooleshow.biz.dal.service.PlatformCashAccountRecordService;
-import com.yonge.cooleshow.biz.dal.service.RedisCacheService;
-import com.yonge.cooleshow.biz.dal.service.StudentService;
-import com.yonge.cooleshow.biz.dal.service.StudentStarService;
-import com.yonge.cooleshow.biz.dal.service.SubjectService;
-import com.yonge.cooleshow.biz.dal.service.SysConfigService;
-import com.yonge.cooleshow.biz.dal.service.SysMessageService;
-import com.yonge.cooleshow.biz.dal.service.TeacherService;
-import com.yonge.cooleshow.biz.dal.service.TeacherTotalService;
-import com.yonge.cooleshow.biz.dal.service.TenantAlbumMusicService;
-import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
-import com.yonge.cooleshow.biz.dal.service.UserAccountService;
-import com.yonge.cooleshow.biz.dal.service.UserOrderService;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.biz.dal.vo.HomeMusicSheetVo;
@@ -263,6 +239,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     @Autowired
     private RedisCacheService redisCacheService;
 
+    @Autowired
+    private TenantAlbumService tenantAlbumService;
+
+    @Autowired
+    private UserTenantAlbumRecordService userTenantAlbumRecordService;
+
     public MusicSheetDao getDao() {
         return musicSheetDao;
     }
@@ -1851,7 +1833,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         List<MusicCompareWrapper.MusicName> musicNames = new ArrayList<>();
         if (StringUtil.isEmpty(queryInfo.getType()) || queryInfo.getType().equals("MUSIC")) {
 
-            PageUtil.getPage(queryInfo);
             // 查询曲目列表
             List<Long> musicIds = musicSheetDao.searchMusic(PageUtil.getPage(queryInfo),queryInfo);
 
@@ -1935,6 +1916,81 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     }
 
     @Override
+    public MusicCompareWrapper.SearchData searchTenant(MusicCompareWrapper.MusicSearch queryInfo) {
+        MusicCompareWrapper.SearchData searchData = new MusicCompareWrapper.SearchData();
+        List<MusicCompareWrapper.MusicName> musicNames = new ArrayList<>();
+        searchData.setMusicNames(musicNames);
+
+        // 查询学生机构
+        Student student = studentService.getById(queryInfo.getUserId());
+        if (student == null) {
+            throw new BizException("学生不存在");
+        }
+        if (student.getTenantId() == null || student.getTenantId() == -1) {
+            throw new BizException("学生未绑定机构");
+        }
+        // 查询机构下的专辑
+        List<TenantAlbum> albumList = tenantAlbumService.getByTenantId(student.getTenantId(), true);
+        List<Long> albumIds = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(albumList)) {
+            albumIds = albumList.stream().map(TenantAlbum::getId).distinct().collect(Collectors.toList());
+        }
+
+        List<UserTenantAlbumRecord> recordList = userTenantAlbumRecordService
+                .getNewestByTenantIdAndUserId(student.getTenantId(), queryInfo.getUserId(), ClientEnum.STUDENT, albumIds);
+
+        if (CollectionUtils.isNotEmpty(recordList)) {
+            albumIds = recordList.stream().map(UserTenantAlbumRecord::getTenantAlbumId).distinct().collect(Collectors.toList());
+            queryInfo.setTenantAlbumIds(albumIds);
+        } else {
+            return searchData;
+        }
+
+        // 查询曲目列表
+        List<Long> musicIds = musicSheetDao.searchMusic(PageUtil.getPage(queryInfo),queryInfo);
+        if (CollectionUtils.isNotEmpty(musicIds)) {
+
+
+            MusicSheetSearch musicSheetSearch = new MusicSheetSearch();
+            musicSheetSearch.setMusicSheetIdlist(musicIds);
+            IPage<MusicSheetVo> musicSheetVoIPage = selectPage(PageUtil.getPage(queryInfo), musicSheetSearch);
+            List<MusicSheetVo> records = musicSheetVoIPage.getRecords();
+            if (CollectionUtils.isNotEmpty(records)) {
+                for (MusicSheetVo record : records) {
+                    MusicCompareWrapper.MusicName musicName = new MusicCompareWrapper.MusicName();
+                    musicName.setId(record.getId());
+                    musicName.setName(record.getMusicSheetName());
+                    musicName.setType("MUSIC");
+                    musicName.setHotFlag(record.getHotFlag() != null?record.getHotFlag():YesOrNoEnum.NO);
+                    musicName.setSort(Optional.ofNullable(record.getFavoriteCount()).orElse(0));
+                    musicNames.add(musicName);
+                }
+                searchData.setMusic(PageUtil.pageInfo(musicSheetVoIPage));
+            }
+
+            // 是否关注
+            if (queryInfo.getUserId() != null) {
+                List<MusicFavorite> musicFavoriteList = musicFavoriteService.lambdaQuery()
+                        .eq(MusicFavorite::getUserId, queryInfo.getUserId())
+                        .eq(MusicFavorite::getClientType, ClientEnum.STUDENT)
+                        .in(MusicFavorite::getMusicSheetId, musicIds)
+                        .list();
+                if (CollectionUtils.isNotEmpty(musicFavoriteList)) {
+                    Set<Long> set = musicFavoriteList.stream()
+                            .map(MusicFavorite::getMusicSheetId)
+                            .collect(Collectors.toSet());
+                    for (MusicCompareWrapper.MusicName record : musicNames) {
+                        record.setFavorite(set.contains(record.getId()) ? YesOrNoEnum.YES : YesOrNoEnum.NO);
+                    }
+                }
+            }
+        }
+
+        musicNames.sort(Comparator.comparing(MusicCompareWrapper.MusicName::getSort).reversed());
+        return searchData;
+    }
+
+    @Override
     public Boolean updateMusicImg(MusicImgDto musicImgDto, Long musicSheetId) {
         MusicSheet musicSheet = new MusicSheet();
         musicSheet.setMusicImg(musicImgDto.getMusicImg());

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

@@ -287,6 +287,9 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         if (null == studentVo) {
             return HttpResponseResult.failed("未找到用户信息");
         }
+        if (studentVo.getTenantId() != null && studentVo.getTenantId() > 0) {
+            throw  new BizException("不可邀请机构学生");
+        }
         TeacherVo detail = teacherDao.detail(userId);
         if (null != detail) {
             //身份证号、手机号脱敏

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

@@ -476,6 +476,23 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
         tenantAlbumPurchaseService.updateById(tenantAlbumPurchase);
     }
 
+    @Override
+    public List<TenantAlbum> getByTenantId(Long tenantId,Boolean status) {
+        if (tenantId == null) {
+            return new ArrayList<>();
+        }
+        List<TenantAlbumRef> list = tenantAlbumRefService.lambdaQuery().eq(TenantAlbumRef::getTenantId, tenantId).list();
+        if (CollectionUtils.isEmpty(list)) {
+            return new ArrayList<>();
+        }
+        Set<Long> tenantAlbumId = list.stream().map(TenantAlbumRef::getTenantAlbumId).collect(Collectors.toSet());
+        return this.lambdaQuery().in(TenantAlbum::getId, tenantAlbumId)
+                .eq(status != null, TenantAlbum::getStatus, status)
+                .eq(TenantAlbum::getDelFlag,false).list();
+
+
+    }
+
     private void insertAlbumMusic(Long tenantId, TenantAlbum tenantAlbum,
                                   List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList) {
         //曲目表赋值

+ 7 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantApplyRecordServiceImpl.java

@@ -128,13 +128,13 @@ public class TenantApplyRecordServiceImpl extends ServiceImpl<TenantApplyRecordM
         if (tenantStaff != null) {
             throw new BizException("该手机号已经有机构账号");
         }
-
-        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
-        sysUserQueryWrapper.lambda().eq(SysUser::getPhone, tenantApply.getPhone());
-        List<SysUser> sysUsers = sysUserMapper.selectList(sysUserQueryWrapper);
-        if (!sysUsers.isEmpty() && sysUsers.stream().anyMatch(next -> next.getUserType().contains(ClientEnum.SYSTEM.getCode()))) {
-            throw new BizException("该手机号已经有系统员工账户");
-        }
+//
+//        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
+//        sysUserQueryWrapper.lambda().eq(SysUser::getPhone, tenantApply.getPhone());
+//        List<SysUser> sysUsers = sysUserMapper.selectList(sysUserQueryWrapper);
+//        if (!sysUsers.isEmpty() && sysUsers.stream().anyMatch(next -> next.getUserType().contains(ClientEnum.SYSTEM.getCode()))) {
+//            throw new BizException("该手机号已经有系统员工账户");
+//        }
 
         // 查询申请记录 是否存在正在申请中的
         TenantApplyRecord record = this.lambdaQuery()

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java

@@ -262,9 +262,9 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
             //获取当前账户的用户类型
             String userType = sysUser.getUserType();
 
-            if (userType.contains(SysUserType.SYSTEM.getCode())){
-                throw new BizException("该手机号已注册平台员工");
-            }
+//            if (userType.contains(SysUserType.SYSTEM.getCode())){
+//                throw new BizException("该手机号已注册平台员工");
+//            }
             //设置默认机构类型
             String tenantUserType = SysUserType.ORGANIZATION.getCode();
             if (StringUtils.isEmpty(userType)) {

+ 20 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java

@@ -20,12 +20,10 @@ import com.yonge.cooleshow.biz.dal.vo.StudentVo;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
-import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.toolset.utils.obj.ObjectUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.BeanUtils;
@@ -210,6 +208,7 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
         return this.updateById(JSON.parseObject(userTenantAlbumRecord.jsonString(), UserTenantAlbumRecord.class));       
     }
 
+
     /**
      * 获取最新的购买记录
      *
@@ -219,16 +218,32 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
      */
     @Override
     public UserTenantAlbumRecord getNewestByTenantIdAndUserId(Long tenantId, Long userId, ClientEnum clientType) {
-        if (tenantId == null || userId == null || clientType == null) {
+        List<UserTenantAlbumRecord> recordList = getNewestByTenantIdAndUserId(tenantId, userId, clientType, null);
+        if (CollectionUtils.isEmpty(recordList)) {
             return null;
         }
+        return recordList.get(0);
+    }
+    /**
+     * 获取最新的购买记录
+     *
+     * @param tenantId   机构ID
+     * @param userId     用户ID
+     * @param clientType 客户端类型
+     */
+    @Override
+    public List<UserTenantAlbumRecord> getNewestByTenantIdAndUserId(Long tenantId, Long userId, ClientEnum clientType, List<Long> tenantAlbumIds) {
+        if (tenantId == null || userId == null || clientType == null) {
+            return new ArrayList<>();
+        }
         return this.lambdaQuery()
                 .eq(UserTenantAlbumRecord::getTenantId, tenantId)
                 .eq(UserTenantAlbumRecord::getUserId, userId)
                 .eq(UserTenantAlbumRecord::getClientType, clientType)
+                .in(CollectionUtils.isNotEmpty(tenantAlbumIds),UserTenantAlbumRecord::getTenantAlbumId,tenantAlbumIds)
+                .ge(UserTenantAlbumRecord::getEndTime, new Date())
                 .orderByDesc(UserTenantAlbumRecord::getEndTime)
-                .last("limit 1")
-                .one();
+                .list();
     }
 
     @Override

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/music/MusicCompareWrapper.java

@@ -384,6 +384,10 @@ public class MusicCompareWrapper {
         @ApiModelProperty("类型 MUSIC 曲目 ALBUM专辑")
         private String type;
 
+        @ApiModelProperty(value = "机构专辑ID",hidden = true)
+        private List<Long> tenantAlbumIds;
+
+        @ApiModelProperty(hidden = true)
         private Long userId;
     }
 

+ 11 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -806,15 +806,24 @@
     </select>
 
     <select id="searchMusic" resultType="java.lang.Long">
-        select id_ from music_sheet  t
+        select t.id_ from music_sheet  t
+        <if test="param.tenantAlbumIds != null and param.tenantAlbumIds.size() != 0">
+            left join tenant_album_music tam on t.id_ = tam.music_sheet_id_
+        </if>
             <where>
-                t.state_=1 and t.audit_version_ = 0 and del_flag_ = 0 and audit_status_ = 'PASS'
+                t.state_=1 and t.audit_version_ = 0 and t.del_flag_ = 0 and t.audit_status_ = 'PASS'
                 <if test="param.subjectId != null">
                     and ( t.music_subject_ = #{param.subjectId} or t.music_subject_ is null or t.music_subject_ = '')
                 </if>
                 <if test="param.name != null and param.name != ''">
                     and t.music_sheet_name_ like concat('%',#{param.name},'%')
                 </if>
+                <if test="param.tenantAlbumIds != null and param.tenantAlbumIds.size() != 0">
+                    and tam.tenant_album_id_ in
+                    <foreach collection="param.tenantAlbumIds" item="item" open="(" close=")" separator=",">
+                        #{item}
+                    </foreach>
+                </if>
             </where>
         order by t.top_flag_ desc, t.sort_number_ desc, t.favorite_count_ desc
 

+ 1 - 1
cooleshow-user/user-classroom/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: classroom
         file-extension: yaml

+ 1 - 1
cooleshow-user/user-classroom/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-test/jenkins/logs/classroom-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/classroom-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

+ 13 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -422,4 +422,17 @@ public class MusicSheetController extends BaseController {
     }
 
 
+    @ApiOperation(value = "搜索机构")
+    @PostMapping(value="/searchTenant")
+    public HttpResponseResult<MusicCompareWrapper.SearchData> searchTenant(@RequestBody MusicCompareWrapper.MusicSearch queryInfo) {
+
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new BizException("用户信息获取失败");
+        }
+        queryInfo.setUserId(sysUser.getId());
+        return succeed(musicSheetService.searchTenant(queryInfo));
+    }
+
+
 }

+ 1 - 1
cooleshow-user/user-student/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: student
         file-extension: yaml

+ 1 - 1
cooleshow-user/user-student/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-test/jenkins/logs/student-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/student-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

+ 1 - 1
cooleshow-user/user-teacher/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: teacher
         file-extension: yaml

+ 1 - 1
cooleshow-user/user-teacher/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-test/jenkins/logs/teacher-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/teacher-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

+ 15 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTenantController.java

@@ -65,6 +65,21 @@ public class OpenTenantController {
     }
 
 
+
+    @GetMapping("/checkPhone")
+    @ApiOperation(value = "检查手机是否已经注册机构账户")
+    public HttpResponseResult<Boolean> checkPhone(String phone) {
+
+
+        // 根据手机号 判断是否已经有机构账户
+        TenantStaff tenantStaff = tenantStaffService.getByPhone(phone);
+        if (tenantStaff != null) {
+            throw new BizException("该手机号已经有机构账号");
+        }
+        return HttpResponseResult.status(true);
+    }
+
+
     @GetMapping("/bindWechat")
     @ApiOperation(value = "绑定微信")
     public HttpResponseResult<Boolean> bindWechat(@RequestParam("phone") String phone,

+ 1 - 1
cooleshow-user/user-tenant/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: tenant
         file-extension: yaml

+ 1 - 1
cooleshow-user/user-tenant/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-test/jenkins/logs/tenant-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/tenant-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 

+ 1 - 1
cooleshow-user/user-website/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: website
         file-extension: yaml

+ 1 - 1
cooleshow-websocket/src/main/resources/bootstrap-prod.yml

@@ -3,7 +3,7 @@ spring:
     nacos:
       config:
         server-addr: 10.206.0.16:8848
-        namespace: dba505ee-020c-4c2b-bab2-e91d89cf248e
+        namespace: e456599c-bef6-453d-927f-0e4a321259ed
         group: DEFAULT_GROUP
         prefix: websocket
         file-extension: yaml

+ 1 - 1
cooleshow-websocket/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/cooleshow-dev/jenkins/logs/websocket-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/mnt/datadisk/logs/websocket-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 		value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />