Explorar o código

Merge branch 'feature/0925_opt' into develop

liujc hai 1 ano
pai
achega
1d81ab981a
Modificáronse 58 ficheiros con 363 adicións e 493 borrados
  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-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java
  4. 2 4
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantAccountRecordController.java
  5. 0 2
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantEntryRecordController.java
  6. 2 11
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantUnbindHistoryController.java
  7. 7 3
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantActivationCodeController.java
  8. 6 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/UserOrderController.java
  9. 0 5
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/vo/UserPaymentOrderVo.java
  10. 12 0
      cooleshow-app/src/main/resources/bootstrap-dev.yml
  11. 1 1
      cooleshow-app/src/main/resources/bootstrap-prod.yml
  12. 0 12
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/handler/BaseAuthenticationSuccessEventHandler.java
  13. 1 1
      cooleshow-auth/auth-server/src/main/resources/bootstrap-prod.yml
  14. 3 3
      cooleshow-auth/auth-server/src/main/resources/logback-spring.xml
  15. 1 1
      cooleshow-bbs/src/main/resources/bootstrap-prod.yml
  16. 1 1
      cooleshow-bbs/src/main/resources/logback-spring.xml
  17. 1 1
      cooleshow-cms/src/main/resources/bootstrap-dev.properties
  18. 1 1
      cooleshow-cms/src/main/resources/bootstrap-prod.properties
  19. 1 1
      cooleshow-cms/src/main/resources/logback-spring.xml
  20. 4 4
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java
  21. 1 1
      cooleshow-gateway/gateway-web/src/main/resources/bootstrap-prod.yml
  22. 1 1
      cooleshow-gateway/gateway-web/src/main/resources/logback-spring.xml
  23. 1 1
      cooleshow-mall/mall-portal/src/main/resources/bootstrap-prod.yml
  24. 0 1
      cooleshow-task/src/main/resources/bootstrap-dev.yml
  25. 1 1
      cooleshow-task/src/main/resources/bootstrap-prod.yml
  26. 1 2
      cooleshow-task/src/main/resources/bootstrap-test.yml
  27. 1 1
      cooleshow-task/src/main/resources/logback-spring.xml
  28. 20 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java
  29. 1 1
      cooleshow-user/user-admin/src/main/resources/bootstrap-prod.yml
  30. 1 1
      cooleshow-user/user-admin/src/main/resources/logback-spring.xml
  31. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  32. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantAlbumService.java
  33. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserTenantAlbumRecordService.java
  34. 102 56
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  35. 11 12
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  36. 21 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysMusicCompareRecordServiceImpl.java
  37. 17 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumServiceImpl.java
  38. 7 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantApplyRecordServiceImpl.java
  39. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java
  40. 20 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java
  41. 8 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeVo.java
  42. 0 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumPurchaseWrapper.java
  43. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/music/MusicCompareWrapper.java
  44. 11 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  45. 0 309
      cooleshow-user/user-classroom/src/main/java/com/yonge/cooleshow/classroom/controller/RoomController.java
  46. 1 1
      cooleshow-user/user-classroom/src/main/resources/bootstrap-prod.yml
  47. 12 0
      cooleshow-user/user-classroom/src/main/resources/bootstrap-test.yml
  48. 13 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  49. 1 1
      cooleshow-user/user-student/src/main/resources/bootstrap-prod.yml
  50. 1 1
      cooleshow-user/user-student/src/main/resources/logback-spring.xml
  51. 1 1
      cooleshow-user/user-teacher/src/main/resources/bootstrap-prod.yml
  52. 0 1
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/IndexController.java
  53. 15 0
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTenantController.java
  54. 1 1
      cooleshow-user/user-tenant/src/main/resources/bootstrap-prod.yml
  55. 1 1
      cooleshow-user/user-website/src/main/resources/bootstrap-prod.yml
  56. 1 1
      cooleshow-websocket/src/main/resources/bootstrap-prod.yml
  57. 1 1
      cooleshow-websocket/src/main/resources/logback-spring.xml
  58. 15 14
      scripts/install.sh

+ 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-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -2,12 +2,12 @@ package com.yonge.cooleshow.api.feign;
 
 import com.yonge.cooleshow.api.feign.dto.CouponInfoApi;
 import com.yonge.cooleshow.api.feign.dto.EmployeeApi;
+import com.yonge.cooleshow.api.feign.dto.ImUserInfo;
 import com.yonge.cooleshow.api.feign.dto.StudentApi;
 import com.yonge.cooleshow.api.feign.dto.StudentWrapper;
 import com.yonge.cooleshow.api.feign.dto.TeacherApi;
 import com.yonge.cooleshow.api.feign.dto.TenantWrapper;
 import com.yonge.cooleshow.api.feign.dto.UserFriendInfoVO;
-import com.yonge.cooleshow.api.feign.dto.*;
 import com.yonge.cooleshow.api.feign.fallback.AdminFeignServiceFallback;
 import com.yonge.cooleshow.common.entity.ContractDto;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;

+ 2 - 4
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantAccountRecordController.java

@@ -5,7 +5,6 @@ import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.microsvc.toolkit.common.response.template.R;
 import com.microsvc.toolkit.common.tools.DownloadManager;
 import com.microsvc.toolkit.middleware.oss.OssPluginContext;
 import com.microsvc.toolkit.middleware.oss.impl.TencentOssPlugin;
@@ -42,7 +41,6 @@ import java.util.List;
 @RequestMapping("${app-config.url.admin:}/tenantAccountRecord")
 @Api(value = "机构账户流水表", tags = "机构账户流水表")
 public class TenantAccountRecordController extends BaseController {
-
     @Autowired
     private TenantAccountRecordService tenantAccountRecordService;
 
@@ -112,12 +110,12 @@ public class TenantAccountRecordController extends BaseController {
     @PostMapping("/import")
     @ApiOperation(value = "机构流水", notes = "TenantAccountRecordQuery")
     @PreAuthorize("@pcs.hasPermissions('tenantAccountRecord/import')")
-    public R<FileImportInfo> importFile(@RequestBody FileImportInfoWrapper.FileImport wrapper) {
+    public HttpResponseResult<FileImportInfo> importFile(@RequestBody FileImportInfoWrapper.FileImport wrapper) {
 
 
         wrapper.setImportUrl(URLEncodeUtil.encode(wrapper.getImportUrl()));
         // 读取数据
-        return R.from(excelAnalyseCoreService.analyseReadExcelData(
+        return HttpResponseResult.succeed(excelAnalyseCoreService.analyseReadExcelData(
                 JSON.parseObject(JSON.toJSONString(wrapper), FileImportInfoWrapper.FileImportInfo.class)));
     }
 

+ 0 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantEntryRecordController.java

@@ -4,13 +4,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.service.TenantApplyRecordService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantApplyRecordWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;

+ 2 - 11
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantUnbindHistoryController.java

@@ -5,27 +5,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.microsvc.toolkit.common.response.template.R;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.biz.dal.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.entity.TenantUnbindHistory;
-import com.yonge.cooleshow.biz.dal.service.EmployeeService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.service.TenantUnbindHistoryService;
-import com.yonge.cooleshow.biz.dal.service.TenantUnbindRecordService;
-import com.yonge.cooleshow.biz.dal.vo.EmployeeVo;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantUnbindHistoryWrapper;
-import com.yonge.cooleshow.biz.dal.wrapper.TenantUnbindRecordWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.common.enums.UserLockFlag;
-import com.yonge.toolset.base.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -67,7 +58,7 @@ public class TenantUnbindHistoryController extends BaseController{
         List<Long> userIds =
                 pages.getRecords().stream().map(TenantUnbindHistory::getVerifyUserId).distinct()
                         .collect(Collectors.toList());
-        Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> mapByIds = sysUserService.getMapByIds(userIds);
+        Map<Long, SysUser> mapByIds = sysUserService.getMapByIds(userIds);
 
         List<Long> tenantIds =
                 pages.getRecords().stream().map(TenantUnbindHistory::getTenantId).distinct()
@@ -76,7 +67,7 @@ public class TenantUnbindHistoryController extends BaseController{
         List<TenantUnbindHistoryWrapper.TenantUnbindHistory> histories = records.stream().map(next -> {
             TenantUnbindHistoryWrapper.TenantUnbindHistory tenantUnbindHistory =
                     JSON.parseObject(JSON.toJSONString(next), TenantUnbindHistoryWrapper.TenantUnbindHistory.class);
-            com.yonge.cooleshow.biz.dal.entity.SysUser orDefault = mapByIds.getOrDefault(next.getVerifyUserId(), new SysUser());
+            SysUser orDefault = mapByIds.getOrDefault(next.getVerifyUserId(), new SysUser());
             tenantUnbindHistory.setVerifyUserName(orDefault.getUsername());
             if(tenantInfoMap.containsKey(next.getTenantId())){
                 TenantInfo tenantInfo = tenantInfoMap.get(next.getTenantId());

+ 7 - 3
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantActivationCodeController.java

@@ -15,12 +15,10 @@ import com.microsvc.toolkit.middleware.oss.OssPluginContext;
 import com.microsvc.toolkit.middleware.oss.impl.TencentOssPlugin;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.entity.TenantActivationCode;
 import com.yonge.cooleshow.biz.dal.entity.TenantAlbumPurchase;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
-import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.biz.dal.service.TenantActivationCodeService;
 import com.yonge.cooleshow.biz.dal.service.TenantAlbumPurchaseService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
@@ -47,7 +45,13 @@ import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;

+ 6 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/UserOrderController.java

@@ -30,7 +30,12 @@ import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import javax.servlet.http.HttpServletRequest;

+ 0 - 5
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/vo/UserPaymentOrderVo.java

@@ -1,9 +1,6 @@
 package com.yonge.cooleshow.tenant.vo;
 
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import io.swagger.annotations.ApiModel;
@@ -12,14 +9,12 @@ import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
-import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
-import java.util.Optional;
 
 /**
  * 平台订单表

+ 12 - 0
cooleshow-app/src/main/resources/bootstrap-dev.yml

@@ -0,0 +1,12 @@
+spring:
+  cloud:
+    nacos:
+      config:
+        server-addr: 10.206.0.17:8848
+        namespace: 6f8374a9-598f-4889-bb17-476070ffb8de
+        group: DEFAULT_GROUP
+        prefix: app
+        file-extension: yaml
+        refresh:
+          enabled: true
+        enabled: true

+ 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

+ 0 - 12
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/handler/BaseAuthenticationSuccessEventHandler.java

@@ -1,18 +1,6 @@
 package com.yonge.cooleshow.auth.core.handler;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.auth.api.entity.SysUserLogin;
-import com.yonge.cooleshow.auth.api.entity.SysUserLoginLog;
-import com.yonge.cooleshow.auth.config.RongCloudConfig;
-import com.yonge.cooleshow.auth.service.SysUserLoginLogService;
-import com.yonge.cooleshow.auth.service.SysUserLoginService;
-import com.yonge.cooleshow.auth.service.SysUserService;
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.common.security.SecurityConstants;
-import io.rong.models.response.TokenResult;
-import io.rong.models.user.UserModel;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.yonge.cooleshow.api.feign.AdminFeignService;
 import com.yonge.cooleshow.api.feign.dto.ImUserInfo;
 import com.yonge.cooleshow.auth.api.entity.SysUser;

+ 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-dev/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-dev.properties

@@ -1,6 +1,6 @@
 
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=43.137.4.92:8848
+spring.cloud.nacos.config.server-addr=10.206.0.17:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
 spring.cloud.nacos.config.namespace=6f8374a9-598f-4889-bb17-476070ffb8de
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e

+ 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-dev/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" />
 

+ 4 - 4
cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java

@@ -375,6 +375,10 @@ public interface SysConfigConstant {
     String TENANT_USER_UNBIND_EXPIRE_TIME = "tenant_user_unbind_expire_time";
 
     /**
+     * 机构人员解绑手机号
+     */
+    String TENANT_USER_UNBIND_PHONE = "tenant_user_unbind_phone";
+    /**
      * 课程群头像 icon_course_group_default
      */
     String ICON_COURSE_GROUP_DEFAULT = "icon_course_group_default";
@@ -386,10 +390,6 @@ public interface SysConfigConstant {
 
 
     /**
-     * 机构人员解绑手机号
-     */
-    String TENANT_USER_UNBIND_PHONE = "tenant_user_unbind_phone";
-    /**
      *  子账户创建回调url
      */
     String SUB_ACCOUNT_CREATE_CALLBACK_URL = "sub_account_create_callback_url";

+ 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-dev/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

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

@@ -10,4 +10,3 @@ spring:
         refresh:
           enabled: true
         enabled: true
-

+ 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 - 2
cooleshow-task/src/main/resources/bootstrap-test.yml

@@ -9,5 +9,4 @@ spring:
         file-extension: yaml
         refresh:
           enabled: true
-        enabled: true
-
+        enabled: true

+ 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-dev/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-dev/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

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

@@ -18,71 +18,37 @@ import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherMusicSheetAuditReq;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetOrderSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetAuditSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherMusicSheetSearch;
-import com.yonge.cooleshow.biz.dal.entity.AlbumMusicRelate;
-import com.yonge.cooleshow.biz.dal.entity.CourseCourseware;
-import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
-import com.yonge.cooleshow.biz.dal.entity.MusicFavorite;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheetPurchaseRecord;
-import com.yonge.cooleshow.biz.dal.entity.MusicTag;
-import com.yonge.cooleshow.biz.dal.entity.PlatformCashAccountRecord;
-import com.yonge.cooleshow.biz.dal.entity.StudentStar;
-import com.yonge.cooleshow.biz.dal.entity.Subject;
-import com.yonge.cooleshow.biz.dal.entity.Teacher;
-import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
-import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
-import com.yonge.cooleshow.biz.dal.entity.UserOrderDetail;
-import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.AudioTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
-import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
-import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
-import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum;
-import com.yonge.cooleshow.biz.dal.dto.search.*;
 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.*;
+import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
+import com.yonge.cooleshow.biz.dal.vo.HomeMusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetShareVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetUploadCountVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetWebsiteDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicTagVo;
+import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentMusicSheetOrderVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentTotalVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherAuditMusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetListVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherMusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
+import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
@@ -222,6 +188,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;
     }
@@ -1810,7 +1782,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);
 
@@ -1894,6 +1865,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());

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

@@ -29,7 +29,6 @@ import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.biz.dal.service.StudentTotalService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
-import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.service.UserTenantAlbumRecordService;
 import com.yonge.cooleshow.biz.dal.service.im.ImGroupCoreService;
@@ -95,33 +94,30 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     private SysUserMapper sysUserMapper;
     @Autowired
     private SubjectDao subjectDao;
-
     @Autowired
-    private ImGroupService imGroupService;
-
+    private TenantInfoService tenantInfoService;
     @Autowired
-    private ImGroupCoreService imGroupCoreService;
-
+    private UserTenantAlbumRecordService userTenantAlbumRecordService;
     @Autowired
-    private ImGroupMemberService imGroupMemberService;
+    private SysConfigService sysConfigService;
 
     @Autowired
-    private TenantInfoService tenantInfoService;
+    private ImGroupService imGroupService;
 
     @Autowired
-    private UserTenantAlbumRecordService userTenantAlbumRecordService;
+    private EmployeeDao employeeDao;
 
     @Autowired
-    private SysConfigService sysConfigService;
-
+    private ImGroupCoreService imGroupCoreService;
     @Autowired
     private TenantAlbumRefMapper tenantAlbumRefMapper;
 
     @Autowired
     private TenantAlbumMapper tenantAlbumMapper;
 
+    private TenantAlbumPurchaseMapper tenantAlbumPurchaseMapper;
     @Autowired
-    private EmployeeDao employeeDao;
+    private ImGroupMemberService imGroupMemberService;
 
     @Override
     public StudentDao getDao() {
@@ -291,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) {
             //身份证号、手机号脱敏

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

@@ -10,12 +10,22 @@ import com.yonge.cooleshow.biz.dal.dto.IndexBaseDto;
 import com.yonge.cooleshow.biz.dal.dto.IndexBaseMonthData;
 import com.yonge.cooleshow.biz.dal.dto.StudentTrainChartDto;
 import com.yonge.cooleshow.biz.dal.dto.StudentTrainOverviewDto;
-import com.yonge.cooleshow.biz.dal.entity.*;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
+import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
+import com.yonge.cooleshow.biz.dal.entity.SysMusicCompareRecord;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.FeatureType;
 import com.yonge.cooleshow.biz.dal.enums.IndexDataType;
 import com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo;
-import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.service.MusicCompareRecordStatService;
+import com.yonge.cooleshow.biz.dal.service.StudentService;
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.biz.dal.service.SysMusicCompareRecordService;
+import com.yonge.cooleshow.biz.dal.service.SysMusicCompareWeekDataService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
@@ -39,7 +49,15 @@ import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 @Service

+ 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

@@ -255,9 +255,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

+ 8 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeVo.java

@@ -348,6 +348,14 @@ public class TeacherHomeVo extends Teacher implements Serializable {
         this.imUserId = imUserId;
     }
 
+    public String getImToken() {
+        return imToken;
+    }
+
+    public void setImToken(String imToken) {
+        this.imToken = imToken;
+    }
+
     public YesOrNoEnum getTenantAlbumFlag() {
         return tenantAlbumFlag;
     }
@@ -364,11 +372,4 @@ public class TeacherHomeVo extends Teacher implements Serializable {
         this.tenantAlbumStatus = tenantAlbumStatus;
     }
 
-    public String getImToken() {
-        return imToken;
-    }
-
-    public void setImToken(String imToken) {
-        this.imToken = imToken;
-    }
 }

+ 0 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumPurchaseWrapper.java

@@ -1,7 +1,6 @@
 package com.yonge.cooleshow.biz.dal.wrapper;
 
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 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
 

+ 0 - 309
cooleshow-user/user-classroom/src/main/java/com/yonge/cooleshow/classroom/controller/RoomController.java

@@ -1,309 +0,0 @@
-package com.yonge.cooleshow.classroom.controller;
-
-
-import com.alibaba.fastjson.JSONObject;
-import com.yonge.cooleshow.biz.dal.dto.BasicUserInfoDto;
-import com.yonge.cooleshow.biz.dal.dto.ETencentTRTCCallbackCommand;
-import com.yonge.cooleshow.biz.dal.dto.ImChannelStateNotify;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkBaseDto;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkCustomMessage;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkDeviceControlDto;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkDisplayDataDto;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkMusicSheetDto;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkRoomResult;
-import com.yonge.cooleshow.biz.dal.dto.RoomStatusNotify;
-import com.yonge.cooleshow.biz.dal.dto.TencentData;
-import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.enums.RoleEnum;
-import com.yonge.cooleshow.biz.dal.service.ImGroupService;
-import com.yonge.cooleshow.biz.dal.service.ImNetworkRoomService;
-import com.yonge.cooleshow.biz.dal.service.SysUserService;
-import com.yonge.cooleshow.common.controller.BaseController;
-import com.yonge.cooleshow.common.entity.BaseResponse;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.joda.time.DateTime;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.List;
-import java.util.Objects;
-
-/**
- * 网络教室房间(room)表控制层
- *
- * @author zx
- * @since 2022-03-30 16:36:36
- */
-@Api(tags = "网络教室房间")
-@RestController
-@RequestMapping("/room")
-public class RoomController extends BaseController {
-
-    private final static Logger log = LoggerFactory.getLogger(RoomController.class);
-    /**
-     * 服务对象
-     */
-    @Resource
-    private ImNetworkRoomService imNetworkRoomService;
-    @Resource
-    private SysUserService sysUserService;
-    @Autowired
-    private ImGroupService imGroupService;
-
-    @ApiOperation("加入网络教室")
-    @PostMapping(value = "/join")
-    public BaseResponse<ImNetworkRoomResult> joinRoom(@RequestBody ImNetworkBaseDto imNetworkBaseDto) {
-        RoleEnum userRole = RoleEnum.RoleStudent;
-        if(imNetworkBaseDto.getClientType() == ClientEnum.TEACHER){
-            userRole = RoleEnum.RoleTeacher;
-        }
-        return imNetworkRoomService.joinRoom(imNetworkBaseDto.getRoomId(), userRole);
-    }
-
-    @ApiOperation("查询网络教室信息")
-    @PostMapping(value = "/info")
-    public BaseResponse<ImNetworkRoomResult> getRoomInfo(@RequestBody ImNetworkBaseDto imNetworkBaseDto){
-        return imNetworkRoomService.roomInfo(imNetworkBaseDto);
-    }
-
-    @RequestMapping(value = "joinRoomStatusNotify", method = RequestMethod.POST)
-    public Object joinRoomStatusNotify(@RequestBody RoomStatusNotify roomStatusNotify) throws Exception {
-        log.info("joinRoomStatusNotify: {}",JSONObject.toJSON(roomStatusNotify));
-        if(!roomStatusNotify.isRequestStatus()){
-            imNetworkRoomService.joinRoomFailure(roomStatusNotify.getRoomId(), roomStatusNotify.getClientType());
-        }
-        return new BaseResponse<>();
-    }
-
-    @PostMapping(value = "/statusSync")
-    @ApiOperation("加入网络教室状态回调")
-    public void statusSync(@RequestBody String body) throws Exception {
-        log.info("statusSync body: {}",body);
-        ImChannelStateNotify notify = JSONObject.parseObject(body, ImChannelStateNotify.class);
-
-        switch (notify.getEvent()) {
-            case 11:
-                //成员加入
-                imNetworkRoomService.joinRoomSuccess(notify.getRoomId(), notify.getUserId());
-                break;
-            case 12:
-                //成员退出
-                imNetworkRoomService.quitRoomSuccess(notify.getRoomId(), notify.getUserId());
-                break;
-        }
-    }
-
-
-    @PostMapping(value = "/tencentRtcCallback")
-    public void statusSyncTencent(@RequestBody TencentData.TRTCEventInfo eventInfo) {
-        try {
-            if (Objects.isNull(eventInfo.getEventInfo())) {
-                log.warn("statusSyncTencent eventInfo is null, time={}", DateTime.now().toString("yyy-MM-dd HH:mm:ss"));
-                return;
-            }
-            log.info("statusSyncTencent: {}", eventInfo.jsonString());
-            String roomId = eventInfo.getEventInfo().getRoomId();
-
-            // 网络教室回调整消息
-            // 进出用户信息
-            String userId = eventInfo.getEventInfo().getUserId();
-            switch (ETencentTRTCCallbackCommand.get(eventInfo.getEventType())){
-                case EVENT_TYPE_ENTER_ROOM:
-                    //成员加入
-                    imNetworkRoomService.joinRoomSuccess(roomId, userId);
-                    break;
-                case EVENT_TYPE_EXIT_ROOM:
-                    //成员退出
-                    imNetworkRoomService.quitRoomSuccess(roomId, userId);
-                    break;
-                default:
-                    // 默认事件,直接忽略
-                    break;
-            }
-
-            // 直播课回调消息, roomId.startsWith("LIVE")
-            if (roomId.startsWith("LIVE")) {
-                String[] values = roomId.split("-");
-                if (values.length < 2 || !values[1].startsWith("S")) {
-                    return;
-                }
-
-                roomId = values[1];
-                // 直播课回调事件处理, 课程编号
-                switch (ETencentTRTCCallbackCommand.get(eventInfo.getEventType())){
-                    case EVENT_TYPE_START_VIDEO:
-                    case EVENT_TYPE_START_AUDIO:
-                    case EVENT_TYPE_START_ASSIT:
-                        //成员加入
-                        imNetworkRoomService.joinRoomSuccess(roomId, eventInfo.getEventInfo().getUserId());
-                        break;
-                    case EVENT_TYPE_STOP_VIDEO:
-                    case EVENT_TYPE_STOP_AUDIO:
-                    case EVENT_TYPE_STOP_ASSIT:
-                        //成员退出
-                        imNetworkRoomService.quitRoomSuccess(roomId, eventInfo.getEventInfo().getUserId());
-                        break;
-                    default:
-                        // 默认事件,直接忽略
-                        break;
-                }
-            }
-
-        }catch (Exception e){
-            log.error("statusSyncTencent event={}", eventInfo.jsonString(), e);
-        }
-    }
-
-    @ApiOperation("退出网络教室")
-    @PostMapping(value = "/leave")
-    public BaseResponse leaveRoom(@RequestBody ImNetworkBaseDto imNetworkBaseDto) throws Exception {
-        // 设置请求客户端来源
-        if (Objects.isNull(imNetworkBaseDto.getClientType())) {
-            imNetworkBaseDto.setClientType(ClientEnum.STUDENT);
-        }
-        // 用户ID
-        Long userId = sysUserService.getUserId();
-        // IM用户ID
-        String imUserId = String.valueOf(userId);
-        if (ClientEnum.STUDENT == imNetworkBaseDto.getClientType()) {
-            imUserId = imGroupService.getImUserId(imUserId, ClientEnum.STUDENT.name());
-        }else {
-            imUserId = imGroupService.getImUserId(imUserId, ClientEnum.TEACHER.name());
-        }
-
-        imNetworkRoomService.quitRoomSuccess(imNetworkBaseDto.getRoomId(), imUserId);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation("控制学员节拍器")
-    @PostMapping(value = "/sendImPlayMidiMessage")
-    public BaseResponse sendImPlayMidiMessage(@RequestBody ImNetworkCustomMessage customMessage) throws Exception {
-        // 设置客户端类型
-        if (Objects.isNull(customMessage.getClientType())) {
-            customMessage.setClientType(ClientEnum.TEACHER);
-        }
-        imNetworkRoomService.sendImPlayMidiMessage(customMessage);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation("移动端用来渲染页面")
-    @PostMapping(value = "/display")
-    public BaseResponse display(@RequestBody ImNetworkDisplayDataDto displayData) throws Exception {
-        // 设置客户端类型
-        if (Objects.isNull(displayData.getClientType())) {
-            displayData.setClientType(ClientEnum.TEACHER);
-        }
-        imNetworkRoomService.display(displayData);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation(value = "批量控制学员设备开关")
-    @PostMapping(value = "/device/batchControl")
-    public BaseResponse batchControlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl)throws Exception {
-
-        // 设置客户端类型
-        if (Objects.isNull(deviceControl.getClientType())) {
-            deviceControl.setClientType(ClientEnum.TEACHER);
-        }
-
-        imNetworkRoomService.batchControlDevice(deviceControl);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation(value = "控制学员设备开关")
-    @PostMapping(value = "/device/control")
-    public BaseResponse controlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl)
-            throws Exception {
-
-        // 设置客户端类型
-        if (Objects.isNull(deviceControl.getClientType())) {
-            deviceControl.setClientType(ClientEnum.TEACHER);
-        }
-
-        imNetworkRoomService.controlDevice(deviceControl);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation(value = "学员同意打开,麦克风、摄像头")
-    @PostMapping(value = "/device/approve")
-    public BaseResponse approveControlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl) throws Exception {
-        deviceControl.setEnable(true);
-
-        // 设置客户端类型
-        if (Objects.isNull(deviceControl.getClientType())) {
-            deviceControl.setClientType(ClientEnum.STUDENT);
-        }
-
-        imNetworkRoomService.approveControlDevice(deviceControl);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation(value = "学员拒绝打开,麦克风、摄像头")
-    @PostMapping(value = "/device/reject")
-    public BaseResponse rejectControlDevice(@RequestBody ImNetworkDeviceControlDto deviceControl)
-            throws Exception {
-        deviceControl.setEnable(false);
-
-        // 设置客户端类型
-        if (Objects.isNull(deviceControl.getClientType())) {
-            deviceControl.setClientType(ClientEnum.STUDENT);
-        }
-
-        imNetworkRoomService.rejectControlDevice(deviceControl);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation(value = "学员设备状态同步")
-    @PostMapping(value = "/device/sync")
-    public Object deviceStatusSync(@RequestBody ImNetworkDeviceControlDto deviceControl)
-            throws Exception {
-
-        // 设置客户端类型
-        if (Objects.isNull(deviceControl.getClientType())) {
-            deviceControl.setClientType(ClientEnum.STUDENT);
-        }
-
-        imNetworkRoomService.deviceStatusSync(deviceControl);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation(value = "老师在网络教室选择完伴奏后、通知学员下载伴奏")
-    @PostMapping(value = "pushDownloadMusicScoreMsg")
-    public BaseResponse pushDownloadMusicSheetMsg(@RequestBody ImNetworkMusicSheetDto musicSheetDto) throws Exception {
-        // 设置客户端类型
-        if (Objects.isNull(musicSheetDto.getClientType())) {
-            musicSheetDto.setClientType(ClientEnum.TEACHER);
-        }
-        imNetworkRoomService.pushDownloadMusicSheetMsg(musicSheetDto);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation(value = "学员伴奏下载状态回调")
-    @PostMapping(value = "adjustExamSong")
-    public BaseResponse adjustMusicScore(@RequestBody ImNetworkMusicSheetDto musicSheetDto) throws Exception {
-
-        // 设置客户端类型
-        if (Objects.isNull(musicSheetDto.getClientType())) {
-            musicSheetDto.setClientType(ClientEnum.STUDENT);
-        }
-
-        imNetworkRoomService.musicSheetDownNotify(musicSheetDto);
-        return BaseResponse.success();
-    }
-
-    @ApiOperation(value = "查询不在教室的学员")
-    @GetMapping(value = "/queryNoJoinStu")
-    public BaseResponse<List<BasicUserInfoDto>> queryNoJoinStu(String roomId){
-        return BaseResponse.success(imNetworkRoomService.queryNoJoinStu(roomId));
-    }
-}
-

+ 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

+ 12 - 0
cooleshow-user/user-classroom/src/main/resources/bootstrap-test.yml

@@ -0,0 +1,12 @@
+spring:
+  cloud:
+    nacos:
+      config:
+        server-addr: 10.206.0.17:8848
+        namespace: 6bb97710-4f6e-4bac-a5f0-4b860d4da9bb
+        group: DEFAULT_GROUP
+        prefix: classroom
+        file-extension: yaml
+        refresh:
+          enabled: true
+        enabled: true

+ 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-dev/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

+ 0 - 1
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/IndexController.java

@@ -58,7 +58,6 @@ public class IndexController extends BaseController {
         return succeed(sysMusicCompareRecordService.weChatStudentTrainData(queryInfo));
     }
 
-
     @ApiOperation("首页学员训练数据统计列表、汇总")
     @PostMapping("studentTrainData")
     public HttpResponseResult<SysMusicCompareRecordQueryInfo.WechatCompareRecordDto> studentTrainData

+ 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-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" />
 

+ 15 - 14
scripts/install.sh

@@ -33,20 +33,21 @@ echo "create jar dir done"
 
 cp service.md \
 		cooleshow-user/user-admin/target/user-admin.jar \
-    audio-analysis/target/audio-analysis.jar \
-    cooleshow-auth/auth-server/target/auth-server.jar \
-    cooleshow-bbs/target/cooleshow-bbs.jar \
-    cooleshow-user/user-classroom/target/user-classroom.jar \
-    cooleshow-cms/target/cooleshow-cms.jar \
-    cooleshow-gateway/gateway-web/target/gateway-web.jar \
-    cooleshow-mall/mall-admin/target/mall-admin.jar \
-    cooleshow-mall/mall-portal/target/mall-portal.jar \
-    cooleshow-user/user-student/target/user-student.jar \
-    cooleshow-task/target/cooleshow-task.jar \
-    cooleshow-user/user-teacher/target/user-teacher.jar \
-    cooleshow-user/user-website/target/user-website.jar \
-    cooleshow-user/user-tenant/target/user-tenant.jar \
-    cooleshow-websocket/target/cooleshow-websocket.jar \
+                audio-analysis/target/audio-analysis.jar \
+                cooleshow-auth/auth-server/target/auth-server.jar \
+                cooleshow-bbs/target/cooleshow-bbs.jar \
+                cooleshow-user/user-classroom/target/user-classroom.jar \
+                cooleshow-cms/target/cooleshow-cms.jar \
+                cooleshow-gateway/gateway-web/target/gateway-web.jar \
+                cooleshow-mall/mall-admin/target/mall-admin.jar \
+                cooleshow-mall/mall-portal/target/mall-portal.jar \
+                cooleshow-user/user-student/target/user-student.jar \
+                cooleshow-task/target/cooleshow-task.jar \
+                cooleshow-user/user-teacher/target/user-teacher.jar \
+                cooleshow-user/user-website/target/user-website.jar \
+                cooleshow-user/user-tenant/target/user-tenant.jar \
+                cooleshow-websocket/target/cooleshow-websocket.jar \
+                cooleshow-app/target/cooleshow-app.jar \
   ${CURRENT_DIR}/${PROJECT_LIBS}/
 
 echo "copy jar done"