瀏覽代碼

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

# Conflicts:
#	mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml
yonge 3 年之前
父節點
當前提交
36b96e8c7a
共有 100 個文件被更改,包括 3055 次插入354 次删除
  1. 30 7
      .gitignore
  2. 4 0
      audio-analysis/src/main/java/com/yonge/netty/server/service/AudioCompareHandler.java
  3. 0 16
      mec-auth/mec-auth-server/src/main/resources/bootstrap-dev_server.properties
  4. 5 0
      mec-biz/pom.xml
  5. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ActivityUserMapperDao.java
  6. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java
  7. 9 9
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupDao.java
  8. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupMemberDao.java
  9. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupNoticeDao.java
  10. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveBroadcastRoomDao.java
  11. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveRoomReservationDao.java
  12. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImSendGroupMessageDao.java
  13. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LiveGoodsDao.java
  14. 29 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LiveGoodsMapperDao.java
  15. 2 12
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  16. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicCompareRecordDao.java
  17. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreChangeLogDao.java
  18. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreDao.java
  19. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempBuyFreeLiveTheoryCourseDao.java
  20. 50 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLittleArtistTrainingCampDao.java
  21. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLittleArtistTrainingCampUserRelationDao.java
  22. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImLiveBroadcastRoomDto.java
  23. 106 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LiveGoodsMapperDto.java
  24. 41 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MemberPayParamDto.java
  25. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RedisKeyConstant.java
  26. 44 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SysMusicScoreMetronomeTranscod.java
  27. 47 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SysMusicScoreTranscod.java
  28. 104 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TempLittleArtistTrainingCampDto.java
  29. 100 45
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ActivityUserMapper.java
  30. 5 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroup.java
  31. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupMember.java
  32. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupNotice.java
  33. 30 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveBroadcastRoom.java
  34. 86 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveRoomReservation.java
  35. 175 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImSendGroupMessage.java
  36. 145 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LiveGoods.java
  37. 93 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LiveGoodsMapper.java
  38. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysCoupon.java
  39. 66 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicScoreChangeLog.java
  40. 63 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempBuyFreeLiveTheoryCourse.java
  41. 230 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempLittleArtistTrainingCamp.java
  42. 111 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempLittleArtistTrainingCampUserRelation.java
  43. 25 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/UseCondition.java
  44. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/CouponDetailTypeEnum.java
  45. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/GroupType.java
  46. 5 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java
  47. 17 7
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  48. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderDetailTypeEnum.java
  49. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderTypeEnum.java
  50. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TenantOrderRecordEnum.java
  51. 50 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ImGroupQueryInfo.java
  52. 44 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ImSendGroupMessageQueryInfo.java
  53. 40 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/LiveGoodsMapperQueryInfo.java
  54. 30 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/LiveGoodsQueryInfo.java
  55. 27 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/BaseRoomUserVo.java
  56. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/BaseVo.java
  57. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/ImLiveBroadcastRoomDetailVo.java
  58. 39 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/ImLiveBroadcastRoomVo.java
  59. 7 48
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/RoomUserInfoVo.java
  60. 74 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserQualificationsVo.java
  61. 84 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingDetailVo.java
  62. 58 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingPlayTimeVo.java
  63. 64 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserVo.java
  64. 58 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempUserTrainingTimeDetailVo.java
  65. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/handler/SysUserContextHolder.java
  66. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ActivityUserMapperService.java
  67. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  68. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CloudTeacherOrderService.java
  69. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  70. 12 11
      mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupMemberService.java
  71. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupNoticeService.java
  72. 10 7
      mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupService.java
  73. 36 14
      mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java
  74. 42 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomReservationService.java
  75. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ImSendGroupMessageService.java
  76. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/service/LiveGoodsMapperService.java
  77. 31 0
      mec-biz/src/main/java/com/ym/mec/biz/service/LiveGoodsService.java
  78. 13 5
      mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankSettingService.java
  79. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderBaseService.java
  80. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java
  81. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java
  82. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  83. 45 1
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java
  84. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicCompareRecordService.java
  85. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreService.java
  86. 130 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TempLittleArtistTrainingCampService.java
  87. 30 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TempLittleArtistTrainingCampUserRelationService.java
  88. 42 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ActivityUserMapperServiceImpl.java
  89. 16 18
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  90. 6 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java
  91. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  92. 6 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java
  93. 17 32
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CooperationOrganServiceImpl.java
  94. 13 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  95. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java
  96. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  97. 2 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java
  98. 22 43
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java
  99. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/GroupClassServiceImpl.java
  100. 17 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

+ 30 - 7
.gitignore

@@ -1,14 +1,37 @@
 *.class
 .metadata
-target
+/target/
 *.classpath
 .settings
 .project
-/p2p-biz/test-output
-bin
-/manage-center/src/main/resources/config/properties/generatorConfig.xml
-.gitignore
-.idea
 *.iml
 /lib/
-rebel.xml
+
+### 忽略子模块的文件 ###
+**/*.ims
+**/*.iml
+**/*.ipr
+**/dep.txt
+**/.mvn/
+**/.idea/
+**/out/
+**/logs/
+**/target/
+**/mvnw
+**/mvnw.cmd
+
+### IntelliJ IDEA ###
+/.idea/
+/out/
+/logs/
+/.mvn/
+!.gitignore
+mvnw
+mvnw.cmd
+*.iws
+*.ipr
+/codegen/src/main/resources/generateConfigration.xml
+**/bootstrap-dev.yml
+**/bootstrap-dev.properties
+/bin/
+**/logback-spring.xml

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

@@ -232,6 +232,10 @@ public class AudioCompareHandler implements MessageHandler {
 					sysMusicCompareRecordService.saveMusicCompareData(sysMusicCompareRecord);
 				}
 				
+				int totalPlayTimeOfCurrentDate = sysMusicCompareRecordService.queryCurrentDatePlayTimeByUserId(sysMusicCompareRecord.getUserId());
+				
+				params.put("totalPlayTimeOfCurrentDate", totalPlayTimeOfCurrentDate);
+				
 				WebSocketResponse<Map<String, Object>> resp = new WebSocketResponse<Map<String, Object>>("overall", params);
 
 				nettyChannelManager.sendTextMessage(user, resp);

+ 0 - 16
mec-auth/mec-auth-server/src/main/resources/bootstrap-dev_server.properties

@@ -1,16 +0,0 @@
-#\u6307\u5b9a\u5f00\u53d1\u73af\u5883
-#spring.profiles.active=dev
-#\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.114.1.200:8848
-#\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
-spring.cloud.nacos.config.namespace=fd352683-69df-439a-802f-c44f0c21329c
-#\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}
-spring.cloud.nacos.config.prefix=auth
-#\u6307\u5b9a\u6587\u4ef6\u540e\u7f00
-spring.cloud.nacos.config.file-extension=yaml
-#\u662f\u5426\u52a8\u6001\u5237\u65b0
-spring.cloud.nacos.config.refresh.enabled=true
-#\u662f\u5426\u542f\u7528nacos\u914d\u7f6e\u4e2d\u5fc3
-spring.cloud.nacos.config.enabled=true

+ 5 - 0
mec-biz/pom.xml

@@ -46,5 +46,10 @@
             <artifactId>redisson-spring-boot-starter</artifactId>
             <version>${redisson.version}</version>
         </dependency>
+        <dependency>
+            <groupId>net.coobird</groupId>
+            <artifactId>thumbnailator</artifactId>
+            <version>0.4.11</version>
+        </dependency>
     </dependencies>
 </project>

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ActivityUserMapperDao.java

@@ -105,4 +105,8 @@ public interface ActivityUserMapperDao extends BaseDAO<Integer, ActivityUserMapp
      * @date 2021/11/15 16:38
      */
     List<ActivityStudentDto> queryActivityUserMapper(Map<String, Object> params);
+
+    //获取学员未排课资格
+    Integer getStudentNoMapperInfo(@Param("userId") Integer userId,
+                                  @Param("activityId") Integer activityId);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -574,7 +574,7 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
 
     List<Mapper> queryUserMusicGroupCourseNumByClassTime(@Param("groupType") GroupType groupType, @Param("musicGroupIds") Set<String> musicGroupIds,
 			@Param("userId") Integer userId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
-    
+
 	Boolean hasStudentMusicTheoryCourseInfo(@Param("organId") String organId, @Param("tenantId") Integer tenantId, @Param("groupType") String groupType);
 
     List<ExportStudentCourseInfoDto> queryStudentCourseInfo(@Param("organId") String organId, @Param("tenantId") Integer tenantId, @Param("groupType") String groupType);

+ 9 - 9
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupDao.java

@@ -1,16 +1,15 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
-public interface ImGroupDao extends BaseDAO<Long, ImGroup> {
+public interface ImGroupDao extends BaseDAO<String, ImGroup> {
 
-	ImGroup getLocked(Long imGroupId);
+	ImGroup getLocked(String imGroupId);
 
 	/**
 	 * 查询用户所在的群列表
@@ -18,16 +17,17 @@ public interface ImGroupDao extends BaseDAO<Long, ImGroup> {
 	 * @param search
 	 * @return
 	 */
-	List<ImGroup> queryByUserId(@Param("userId") Integer userId, @Param("search") String search);
+	List<ImGroup> queryByUserId(@Param("userId") Integer userId,
+								@Param("search") String search);
 
 	/**
 	 * 查询群成员列表
 	 * @param imGroupId
 	 * @return
 	 */
-	List<ImGroupMemberDto> queryMemberById(Long imGroupId);
+	List<ImGroupMemberDto> queryMemberById(String imGroupId);
 
-	ImGroupMemberDto queryMember(@Param("imGroupId") Long imGroupId, @Param("userId") Integer userId);
+	ImGroupMemberDto queryMember(@Param("imGroupId") String imGroupId, @Param("userId") Integer userId);
 
     int updateNickname(@Param("userId") Integer userId, @Param("nickName") String nickName);
 

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupMemberDao.java

@@ -11,7 +11,7 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface ImGroupMemberDao extends BaseDAO<Long, ImGroupMember> {
 
-	int deleteByImGroupId(Long imGroupId);
+	int deleteByImGroupId(String imGroupId);
 
 	int batchDelete(List<ImGroupMember> imGroupMemberList);
 
@@ -27,4 +27,7 @@ public interface ImGroupMemberDao extends BaseDAO<Long, ImGroupMember> {
 
 	void delRepeat();
 
+    List<ImGroupMember> queryMembers(@Param("groupId") String groupId,
+									 @Param("userIdList") List<String> userIdList,
+									 @Param("tenantId") Integer tenantId);
 }

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

@@ -14,9 +14,9 @@ public interface ImGroupNoticeDao extends BaseDAO<Long, ImGroupNotice> {
 	 * @param imGroupId
 	 * @return
 	 */
-	ImGroupNoticeDto queryLatestNotice(Long imGroupId);
+	ImGroupNoticeDto queryLatestNotice(String imGroupId);
 	
 	List<ImGroupNoticeDto> queryForPage(Map<String, Object> params);
 	
-	int deleteByImGroupId(Long imGroupId);
+	int deleteByImGroupId(String imGroupId);
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveBroadcastRoomDao.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
+import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -24,5 +25,9 @@ public interface ImLiveBroadcastRoomDao extends BaseMapper<ImLiveBroadcastRoom>
 
     int insertBatch(@Param("entities") List<ImLiveBroadcastRoom> entities);
 
+    IPage<Map<Integer,Object>> queryUserPageByTenantId(Page<Map<Integer,Object>> page);
+
+    List<BaseRoomUserVo> queryBaseUserInfo(@Param("list") List<Integer> list);
+
 }
 

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveRoomReservationDao.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ym.mec.biz.dal.entity.ImLiveRoomReservation;
+import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 直播预约记录(ImLiveRoomReservation)表数据库访问层
+ *
+ * @author hgw
+ * @since 2022-05-24 14:54:05
+ */
+public interface ImLiveRoomReservationDao extends BaseMapper<ImLiveRoomReservation> {
+
+    int insertBatch(@Param("entities") List<ImLiveRoomReservation> entities);
+
+    IPage<ImLiveBroadcastRoomVo> queryPageStudent(Page<ImLiveBroadcastRoomVo> page, @Param("param") Map<String, Object> param);
+
+}
+

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImSendGroupMessageDao.java

@@ -0,0 +1,15 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.biz.dal.entity.ImSendGroupMessage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+public interface ImSendGroupMessageDao extends BaseDAO<Long, ImSendGroupMessage> {
+
+	List<ImSendGroupMessage> findBySendFlag(@Param("sendFlag") Boolean sendFlag, @Param("sendTime") Date sendTime);
+
+	void batchUpdateSendFlag(@Param("sendGroupMessages") List<ImSendGroupMessage> sendGroupMessages);
+}

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

@@ -0,0 +1,16 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.biz.dal.entity.LiveGoods;
+import org.apache.ibatis.annotations.Param;
+
+public interface LiveGoodsDao extends BaseDAO<Integer, LiveGoods> {
+
+    LiveGoods getLock(Integer liveGoodsId);
+
+    int reduceStock(@Param("liveGoodsId") Integer liveGoodsId);
+
+    void addStock(@Param("liveGoodsId") Integer liveGoodsId);
+
+    LiveGoods getByName(@Param("goodsName") String goodsName);
+}

+ 29 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LiveGoodsMapperDao.java

@@ -0,0 +1,29 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.dto.LiveGoodsMapperDto;
+import com.ym.mec.biz.dal.entity.LiveGoods;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.biz.dal.entity.LiveGoodsMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface LiveGoodsMapperDao extends BaseDAO<Integer, LiveGoodsMapper> {
+
+    List<LiveGoodsMapper> findByLiveGoodsIdAndStatus(@Param("liveGoodsId") Integer liveGoodsId, @Param("status") Boolean status);
+
+    int updateStatus(@Param("liveId") String liveId, @Param("liveGoodsId") Integer liveGoodsId, @Param("status") boolean status);
+
+    LiveGoodsMapper findByLiveIdAndGoodsId(@Param("liveId") String liveId, @Param("liveGoodsId") Integer liveGoodsId);
+
+    List<LiveGoodsMapperDto> getLiveGoodsList(@Param("liveId") String liveId, @Param("liveGoodsId") Integer liveGoodsId, @Param("status") Boolean status);
+
+    void batchInsert(@Param("liveId") String liveId, @Param("liveGoodsIds") String[] liveGoodsIds);
+
+    int countLiveGoods(Map<String, Object> params);
+
+    List<LiveGoodsMapperDto> queryGoodsPage(Map<String, Object> params);
+
+    List<Integer> queryGoodsIdsByLiveId(@Param("liveId") String liveId);
+}

+ 2 - 12
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -402,18 +402,6 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
     List<Mapper> getMoneyInMusicApply(@Param("musicGroupIds") List<String> musicGroupIds);
 
     /**
-     * 获取学员购买的云教练活动订单
-     *
-     * @param userId
-     * @param activeRemark
-     * @param remark
-     * @return
-     */
-    StudentPaymentOrder findByUserAndActive(@Param("userId") Integer userId,
-                                            @Param("activeRemark") Integer activeRemark,
-                                            @Param("remark") String remark, @Param("status") String status);
-
-    /**
      * 获取购买了乐器的报名订单
      *
      * @param musicGroupId
@@ -454,4 +442,6 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
 
     //获取学员之前的乐团缴费订单数量
     int getStudentMusicOrderNum(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId, @Param("orderId") Long orderId);
+
+    StudentPaymentOrder getMemberIngOrder(@Param("type") OrderTypeEnum type, @Param("status") DealStatusEnum status);
 }

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

@@ -99,4 +99,6 @@ public interface SysMusicCompareRecordDao extends BaseDAO<Long, SysMusicCompareR
     Integer getUserWeekMaxMusicScoreId(@Param("userId") Integer userId,
                                        @Param("monday") String monday,
                                         @Param("heardLevel") HeardLevelEnum heardLevel);
+    
+    int queryCurrentDatePlayTimeByUserId(Integer userId);
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreChangeLogDao.java

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.SysMusicScoreChangeLog;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface SysMusicScoreChangeLogDao extends BaseDAO<Integer, SysMusicScoreChangeLog> {
+
+}

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

@@ -1,7 +1,10 @@
 package com.ym.mec.biz.dal.dao;
 
 
+import com.ym.mec.biz.dal.dto.SysMusicScoreMetronomeTranscod;
+import com.ym.mec.biz.dal.dto.SysMusicScoreTranscod;
 import com.ym.mec.biz.dal.entity.SysMusicScore;
+import com.ym.mec.biz.dal.entity.SysMusicScoreAccompaniment;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
@@ -12,4 +15,11 @@ public interface SysMusicScoreDao extends BaseDAO<Integer, SysMusicScore> {
     List<SysMusicScore> findByIds(@Param("musicScoreIds") String musicScoreIds);
 
     int countBuyCategoriesIds(@Param("categoriesIds") String delCategoriesIds);
+
+    SysMusicScoreTranscod getTranscod(@Param("sysMusicScoreId") Integer sysMusicScoreId);
+
+    List<SysMusicScoreMetronomeTranscod> getMetronomeTranscod(@Param("sysMusicScoreId") Integer sysMusicScoreId);
+
+    int updateAccompanimentBySongId(@Param("param") SysMusicScoreAccompaniment param);
+
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempBuyFreeLiveTheoryCourseDao.java

@@ -0,0 +1,11 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
+import org.apache.ibatis.annotations.Param;
+
+public interface TempBuyFreeLiveTheoryCourseDao extends BaseDAO<Integer, TempBuyFreeLiveTheoryCourse> {
+
+
+    int countByUserId(@Param("userId") Integer userId);
+}

+ 50 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLittleArtistTrainingCampDao.java

@@ -0,0 +1,50 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp;
+import com.ym.mec.biz.dal.vo.BaseVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 小小艺术家训练营活动(TempLittleArtistTrainingCamp)表数据库访问层
+ *
+ * @author hgw
+ * @since 2022-05-17 20:56:22
+ */
+public interface TempLittleArtistTrainingCampDao extends BaseMapper<TempLittleArtistTrainingCamp> {
+
+    int insertBatch(@Param("entities") List<TempLittleArtistTrainingCamp> entities);
+
+    <T> IPage<T> queryUserTrainingTime(Page<T> page, @Param("param") Map<String, Object> param);
+
+    <T> List<T> queryUserTrainingTime(@Param("param") Map<String, Object> param);
+
+    List<Integer> queryAllUserId();
+
+    <T> IPage<T> queryCampUser(Page<T> page, @Param("param") Map<String, Object> param);
+
+    /**
+     * imGroupId
+     * search
+     */
+    <T> IPage<T> queryUserTrainingDetail(Page<T> page, @Param("param") Map<String, Object> param);
+
+    <T> List<T> queryUserTrainingDetail(@Param("param") Map<String, Object> param);
+
+    List<ImGroup> queryCampImGroup(String imGroupIds);
+
+    Integer queryUserTrainingPlayTime(@Param("param") Map<String, Object> param);
+
+    List<Integer> queryUserGroup(@Param("campId") Integer campId);
+
+    List<BaseVo> queryStartTrainInfo(@Param("date") String date);
+
+    int updateUserNum(@Param("campId") Integer campId, @Param("maxNum") Integer maxNum);
+}
+

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLittleArtistTrainingCampUserRelationDao.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCampUserRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 训练营与学生关系表(TempLittleArtistTrainingCampUserRelation)表数据库访问层
+ *
+ * @author hgw
+ * @since 2022-05-18 15:48:00
+ */
+public interface TempLittleArtistTrainingCampUserRelationDao extends BaseMapper<TempLittleArtistTrainingCampUserRelation> {
+
+    int insertBatch(@Param("entities") List<TempLittleArtistTrainingCampUserRelation> entities);
+
+}
+

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImLiveBroadcastRoomDto.java

@@ -64,6 +64,9 @@ public class ImLiveBroadcastRoomDto implements Serializable {
         @ApiModelProperty(value = "是否允许连麦 0允许 1不允许")
         private Integer whether_mic = 0;
 
+        @ApiModelProperty(value = "是否展示购物车 0展示 1不展示")
+        private Integer whether_view_shop_cart = 0;
+
         public Integer getWhether_like() {
             return whether_like;
         }
@@ -95,6 +98,14 @@ public class ImLiveBroadcastRoomDto implements Serializable {
         public void setWhether_mic(Integer whether_mic) {
             this.whether_mic = whether_mic;
         }
+
+        public Integer getWhether_view_shop_cart() {
+            return whether_view_shop_cart;
+        }
+
+        public void setWhether_view_shop_cart(Integer whether_view_shop_cart) {
+            this.whether_view_shop_cart = whether_view_shop_cart;
+        }
     }
 
     public Integer getId() {

+ 106 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LiveGoodsMapperDto.java

@@ -0,0 +1,106 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+public class LiveGoodsMapperDto {
+    @ApiModelProperty(value = "商品编号",required = false)
+    private Integer id;
+
+    @ApiModelProperty(value = "商品名称",required = true)
+    private String name;
+
+    @ApiModelProperty(value = "展示图片的地址",required = true)
+    private String image;
+
+    @ApiModelProperty(value = "库存",required = true)
+    private Integer stockCount;
+
+    @ApiModelProperty(value = "现价",required = true)
+    private java.math.BigDecimal currentPrice;
+
+    @ApiModelProperty(value = "原价",required = true)
+    private java.math.BigDecimal originalPrice;
+
+    @ApiModelProperty(value = "商品详情链接",required = false)
+    private String goodsDetailUrl;
+
+    @ApiModelProperty(value = "商品的详细描述",required = false)
+    private String desc;
+
+    @ApiModelProperty(value = "状态(1,上下架  0,下架)",required = false)
+    private Boolean status = false;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public Integer getStockCount() {
+        return stockCount;
+    }
+
+    public void setStockCount(Integer stockCount) {
+        this.stockCount = stockCount;
+    }
+
+    public BigDecimal getCurrentPrice() {
+        return currentPrice;
+    }
+
+    public void setCurrentPrice(BigDecimal currentPrice) {
+        this.currentPrice = currentPrice;
+    }
+
+    public BigDecimal getOriginalPrice() {
+        return originalPrice;
+    }
+
+    public void setOriginalPrice(BigDecimal originalPrice) {
+        this.originalPrice = originalPrice;
+    }
+
+    public String getGoodsDetailUrl() {
+        return goodsDetailUrl;
+    }
+
+    public void setGoodsDetailUrl(String goodsDetailUrl) {
+        this.goodsDetailUrl = goodsDetailUrl;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    public Boolean getStatus() {
+        return status;
+    }
+
+    public void setStatus(Boolean status) {
+        this.status = status;
+    }
+}

+ 41 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MemberPayParamDto.java

@@ -1,21 +1,60 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.enums.PeriodEnum;
+import io.swagger.annotations.ApiModelProperty;
+
 import java.io.Serializable;
 import java.math.BigDecimal;
 
 public class MemberPayParamDto extends PayParamBasicDto implements Serializable {
 
-    //前端录入实际缴费金额
+    @ApiModelProperty(value = "前端录入实际缴费金额",required = false)
     private BigDecimal amount;
 
+    @ApiModelProperty(value = "用于后台创建的团练宝订单购买",required = false)
     private Long paymentId;
 
-    //购买数量
+    @ApiModelProperty(value = "购买数量",required = false)
     private Integer val;
 
     //如果isRepeatPay = true 则需要传入订单号
     private String orderNo;
 
+    @ApiModelProperty(value = "年月日",required = false)
+    private PeriodEnum periodEnum;
+
+    //直播房间号
+    @ApiModelProperty(value = "直播房间号(用于直播间商品购买)",required = false)
+    private String liveId;
+
+    //商品编号
+    @ApiModelProperty(value = "直播间商品编号(用于直播间商品购买,目前只支持1和2,1代表免费的云课堂,2代表云教练(送网管课))",required = false)
+    private Integer liveGoodsId;
+
+    public String getLiveId() {
+        return liveId;
+    }
+
+    public void setLiveId(String liveId) {
+        this.liveId = liveId;
+    }
+
+    public Integer getLiveGoodsId() {
+        return liveGoodsId;
+    }
+
+    public void setLiveGoodsId(Integer liveGoodsId) {
+        this.liveGoodsId = liveGoodsId;
+    }
+
+    public PeriodEnum getPeriodEnum() {
+        return periodEnum;
+    }
+
+    public void setPeriodEnum(PeriodEnum periodEnum) {
+        this.periodEnum = periodEnum;
+    }
+
     public BigDecimal getAmount() {
         return amount;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RedisKeyConstant.java

@@ -0,0 +1,11 @@
+package com.ym.mec.biz.dal.dto;
+
+public interface RedisKeyConstant {
+
+    //直播间商品库存缓存key
+    String LIVE_GOODS_STOCK_CACHE_KEY = "live_goods_stock:";
+    //直播间商品冻结库存缓存key
+    String LIVE_GOODS_FROZEN_CACHE_KEY = "live_goods_frozen_stock:";
+    //购买了0元直播课的学员
+    String LIVE_GOODS_ZERO_CACHE_KEY = "live_goods_zero:";
+}

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SysMusicScoreMetronomeTranscod.java

@@ -0,0 +1,44 @@
+package com.ym.mec.biz.dal.dto;
+
+public class SysMusicScoreMetronomeTranscod {
+    //sys_music_score_accompaniment.id_
+    private Integer id;
+    //sys_music_score_accompaniment.exam_song_id_
+    private Integer examSongId;
+    //原音MP3
+    private String mp3Url;
+    //原音MP3(含节拍器)
+    private String  metronomeMp3Url;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getExamSongId() {
+        return examSongId;
+    }
+
+    public void setExamSongId(Integer examSongId) {
+        this.examSongId = examSongId;
+    }
+
+    public String getMp3Url() {
+        return mp3Url;
+    }
+
+    public void setMp3Url(String mp3Url) {
+        this.mp3Url = mp3Url;
+    }
+
+    public String getMetronomeMp3Url() {
+        return metronomeMp3Url;
+    }
+
+    public void setMetronomeMp3Url(String metronomeMp3Url) {
+        this.metronomeMp3Url = metronomeMp3Url;
+    }
+}

+ 47 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SysMusicScoreTranscod.java

@@ -0,0 +1,47 @@
+package com.ym.mec.biz.dal.dto;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SysMusicScoreTranscod {
+    //sys_music_score.id_
+    private Integer id;
+    //伴奏MP3
+    private String url;
+    //伴奏MP3(含节拍器)
+    private String  metronomeUrl;
+
+    private List<SysMusicScoreMetronomeTranscod> accompanimentList = new ArrayList<>();
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getMetronomeUrl() {
+        return metronomeUrl;
+    }
+
+    public void setMetronomeUrl(String metronomeUrl) {
+        this.metronomeUrl = metronomeUrl;
+    }
+
+    public List<SysMusicScoreMetronomeTranscod> getAccompanimentList() {
+        return accompanimentList;
+    }
+
+    public void setAccompanimentList(List<SysMusicScoreMetronomeTranscod> accompanimentList) {
+        this.accompanimentList = accompanimentList;
+    }
+}

+ 104 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TempLittleArtistTrainingCampDto.java

@@ -0,0 +1,104 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+public class TempLittleArtistTrainingCampDto implements Serializable {
+
+    @TableId(value = "id_", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+
+    @NotNull(message = "报名开始日期不能为空")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "申请报名登记开始日期")
+    private Date applyStartDate;
+
+    @NotNull(message = "报名结束日期不能为空")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "申请报名登记结束日期")
+    private Date applyEndDate;
+
+    @NotNull(message = "训练开始日期不能为空")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "训练开始日期")
+    private Date trainStartDate;
+
+    @NotNull(message = "训练结束日期不能为空")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "训练结束日期")
+    private Date trainEndDate;
+
+    @ApiModelProperty(value = "图片")
+    private String picUrl;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Date getApplyStartDate() {
+        return applyStartDate;
+    }
+
+    public void setApplyStartDate(Date applyStartDate) {
+        this.applyStartDate = applyStartDate;
+    }
+
+    public Date getApplyEndDate() {
+        return applyEndDate;
+    }
+
+    public void setApplyEndDate(Date applyEndDate) {
+        this.applyEndDate = applyEndDate;
+    }
+
+    public Date getTrainStartDate() {
+        return trainStartDate;
+    }
+
+    public void setTrainStartDate(Date trainStartDate) {
+        this.trainStartDate = trainStartDate;
+    }
+
+    public Date getTrainEndDate() {
+        return trainEndDate;
+    }
+
+    public void setTrainEndDate(Date trainEndDate) {
+        this.trainEndDate = trainEndDate;
+    }
+
+    public String getPicUrl() {
+        return picUrl;
+    }
+
+    public void setPicUrl(String picUrl) {
+        this.picUrl = picUrl;
+    }
+}

+ 100 - 45
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ActivityUserMapper.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.common.entity.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
@@ -10,56 +11,78 @@ import java.math.BigDecimal;
  */
 public class ActivityUserMapper extends BaseEntity {
 
-	/**  */
 	private Integer id;
 	
-	/**  */
+	@ApiModelProperty(value = "活动编号")
 	private Integer activityId;
 	
-	/**  */
+	@ApiModelProperty(value = "学员编号")
 	private Integer userId;
 
-	/**  */
+	@ApiModelProperty(value = "指导老师编号")
 	private Integer teacherId;
 	
-	/** vip课排课标记0没有排课资格1未排课2已排课 */
+	@ApiModelProperty(value = "vip课排课标记0没有排课资格1未排课2已排课")
 	private Integer vipFlag = 0;
 	
-	/**  */
+	@ApiModelProperty(value = "赠送vip课次数")
 	private Integer giveVipFlag = 0;
-	
-	/**  */
+
+	@ApiModelProperty(value = "网管课次数")
 	private Integer practiceFlag = 0;
-	
-	/**  */
+
+	@ApiModelProperty(value = "赠送网管课次数")
 	private Integer givePracticeFlag = 0;
 
-	/**  */
+	@ApiModelProperty(value = "购买会员标识")
 	private Integer memberFlag = 0;
 
-	/**  */
+	@ApiModelProperty(value = "赠送会员标识")
 	private Integer giveMemberFlag = 0;
 
+	@ApiModelProperty(value = "购买的总课时数")
+	private Integer totalCourseNum;
+
+	@ApiModelProperty(value = "赠送的总课时数")
+	private Integer totalGiveCourseNum;
+
+	@ApiModelProperty(value = "剩余的总课时数")
+	private Integer subCourseNum;
+
+	@ApiModelProperty(value = "剩余的赠送课时数")
+	private Integer subGiveCourseNum;
+
+	@ApiModelProperty(value = "缴费编号")
 	private Long paymentOrderId;
 
+	@ApiModelProperty(value = "已排课的vip课程组编号")
 	private Long vipGroupId;
 
+	@ApiModelProperty(value = "已排课的赠送的vip课程组编号")
 	private Long giveVipGroupId;
 
+	@ApiModelProperty(value = "会员订单号")
 	private Long memberOrderId;
 
+	@ApiModelProperty(value = "赠送的会员订单号")
 	private Long giveMemberOrderId;
 
+	@ApiModelProperty(value = "已排课的陪练课课程组编号")
 	private Long practiceGroupId;
 
+	@ApiModelProperty(value = "已排课的陪练课课程组编号")
 	private Long givePracticeGroupId;
 
+	@ApiModelProperty(value = "是否退费")
 	private Boolean returnFee = false;
 
+	@ApiModelProperty(value = "实际支付金额")
 	private BigDecimal actualPrice = BigDecimal.ZERO;
 
+	@ApiModelProperty(value = "添加资格时的备注")
 	private String addMemo;
 
+	@ApiModelProperty(value = "减少资格时的备注")
 	private String cutMemo;
 	
 	/**  */
@@ -68,9 +91,73 @@ public class ActivityUserMapper extends BaseEntity {
 	/**  */
 	private java.util.Date updateTime;
 
-	//赠送的优惠券编号
+	@ApiModelProperty(value = "赠送的优惠券编号")
 	private Integer giveCouponId;
 
+	public Integer getTotalCourseNum() {
+		return totalCourseNum;
+	}
+
+	public void setTotalCourseNum(Integer totalCourseNum) {
+		this.totalCourseNum = totalCourseNum;
+	}
+
+	public Integer getTotalGiveCourseNum() {
+		return totalGiveCourseNum;
+	}
+
+	public void setTotalGiveCourseNum(Integer totalGiveCourseNum) {
+		this.totalGiveCourseNum = totalGiveCourseNum;
+	}
+
+	public Integer getSubCourseNum() {
+		return subCourseNum;
+	}
+
+	public void setSubCourseNum(Integer subCourseNum) {
+		this.subCourseNum = subCourseNum;
+	}
+
+	public Integer getSubGiveCourseNum() {
+		return subGiveCourseNum;
+	}
+
+	public void setSubGiveCourseNum(Integer subGiveCourseNum) {
+		this.subGiveCourseNum = subGiveCourseNum;
+	}
+
+	public Long getVipGroupId() {
+		return vipGroupId;
+	}
+
+	public void setVipGroupId(Long vipGroupId) {
+		this.vipGroupId = vipGroupId;
+	}
+
+	public Long getGiveVipGroupId() {
+		return giveVipGroupId;
+	}
+
+	public void setGiveVipGroupId(Long giveVipGroupId) {
+		this.giveVipGroupId = giveVipGroupId;
+	}
+
+	public Long getPracticeGroupId() {
+		return practiceGroupId;
+	}
+
+	public void setPracticeGroupId(Long practiceGroupId) {
+		this.practiceGroupId = practiceGroupId;
+	}
+
+	public Long getGivePracticeGroupId() {
+		return givePracticeGroupId;
+	}
+
+	public void setGivePracticeGroupId(Long givePracticeGroupId) {
+		this.givePracticeGroupId = givePracticeGroupId;
+	}
+
 	public Integer getGiveCouponId() {
 		return giveCouponId;
 	}
@@ -151,38 +238,6 @@ public class ActivityUserMapper extends BaseEntity {
 		this.returnFee = returnFee;
 	}
 
-	public Long getVipGroupId() {
-		return vipGroupId;
-	}
-
-	public void setVipGroupId(Long vipGroupId) {
-		this.vipGroupId = vipGroupId;
-	}
-
-	public Long getGiveVipGroupId() {
-		return giveVipGroupId;
-	}
-
-	public void setGiveVipGroupId(Long giveVipGroupId) {
-		this.giveVipGroupId = giveVipGroupId;
-	}
-
-	public Long getPracticeGroupId() {
-		return practiceGroupId;
-	}
-
-	public void setPracticeGroupId(Long practiceGroupId) {
-		this.practiceGroupId = practiceGroupId;
-	}
-
-	public Long getGivePracticeGroupId() {
-		return givePracticeGroupId;
-	}
-
-	public void setGivePracticeGroupId(Long givePracticeGroupId) {
-		this.givePracticeGroupId = givePracticeGroupId;
-	}
-
 	public Long getPaymentOrderId() {
 		return paymentOrderId;
 	}

+ 5 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroup.java

@@ -10,7 +10,7 @@ import com.ym.mec.common.entity.BaseEntity;
 public class ImGroup extends BaseEntity {
 
 	/**  */
-	private Long id;
+	private String id;
 	
 	/** 群名称 */
 	private String name;
@@ -28,7 +28,8 @@ public class ImGroup extends BaseEntity {
 	private String tags;
 	
 	private String img;
-	
+
+	/** 乐团群 MUSIC,班级群 CLASS,训练营 TRAINING */
 	private String type;
 	
 	/**  */
@@ -37,11 +38,11 @@ public class ImGroup extends BaseEntity {
 	/**  */
 	private java.util.Date updateTime;
 	
-	public void setId(Long id){
+	public void setId(String id){
 		this.id = id;
 	}
 	
-	public Long getId(){
+	public String getId(){
 		return this.id;
 	}
 			

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupMember.java

@@ -13,7 +13,7 @@ public class ImGroupMember extends BaseEntity {
 	private Long id;
 	
 	/**  */
-	private Long imGroupId;
+	private String imGroupId;
 	
 	/**  */
 	private Integer userId;
@@ -70,11 +70,11 @@ public class ImGroupMember extends BaseEntity {
 		return this.id;
 	}
 			
-	public void setImGroupId(Long imGroupId){
+	public void setImGroupId(String imGroupId){
 		this.imGroupId = imGroupId;
 	}
 	
-	public Long getImGroupId(){
+	public String getImGroupId(){
 		return this.imGroupId;
 	}
 			

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupNotice.java

@@ -13,7 +13,7 @@ public class ImGroupNotice extends BaseEntity {
 	private Long id;
 	
 	/**  */
-	private Long imGroupId;
+	private String imGroupId;
 	
 	/** 标题 */
 	private String title;
@@ -47,11 +47,11 @@ public class ImGroupNotice extends BaseEntity {
 		return this.id;
 	}
 			
-	public void setImGroupId(Long imGroupId){
+	public void setImGroupId(String imGroupId){
 		this.imGroupId = imGroupId;
 	}
 	
-	public Long getImGroupId(){
+	public String getImGroupId(){
 		return this.imGroupId;
 	}
 			

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveBroadcastRoom.java

@@ -67,6 +67,10 @@ public class ImLiveBroadcastRoom implements Serializable {
     @ApiModelProperty(value = "房间状态 0正常 1已删除 2销毁")
     private Integer roomState;
 
+    @TableField("popularize_")
+    @ApiModelProperty(value = "是否在首页推广 0否 1是 - 每个机构只能有一个直播间在首页推广")
+    private Integer popularize;
+
     @TableField("created_by_")
     @ApiModelProperty(value = "创建人")
     private Integer createdBy;
@@ -165,22 +169,48 @@ public class ImLiveBroadcastRoom implements Serializable {
         this.roomConfig = roomConfig;
     }
 
+    /**
+     * 直播状态 0未开始 1开始 2已结束
+     */
     public Integer getLiveState() {
         return liveState;
     }
 
+    /**
+     * 直播状态 0未开始 1开始 2已结束
+     */
     public void setLiveState(Integer liveState) {
         this.liveState = liveState;
     }
 
+    /**
+     * 房间状态 0正常 1已删除 2销毁
+     */
     public Integer getRoomState() {
         return roomState;
     }
 
+    /**
+     * 房间状态 0正常 1已删除 2销毁
+     */
     public void setRoomState(Integer roomState) {
         this.roomState = roomState;
     }
 
+    /**
+     * 是否在首页推广 0否 1是 - 每个机构只能有一个直播间在首页推广
+     */
+    public Integer getPopularize() {
+        return popularize;
+    }
+
+    /**
+     * 是否在首页推广 0否 1是 - 每个机构只能有一个直播间在首页推广
+     */
+    public void setPopularize(Integer popularize) {
+        this.popularize = popularize;
+    }
+
     public Integer getCreatedBy() {
         return createdBy;
     }

+ 86 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveRoomReservation.java

@@ -0,0 +1,86 @@
+package com.ym.mec.biz.dal.entity;
+
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+
+/**
+ * 直播预约记录(ImLiveRoomReservation)表实体类
+ *
+ * @author hgw
+ * @since 2022-05-24 14:54:05
+ */
+@ApiModel(value = "im_live_room_reservation-直播预约记录")
+public class ImLiveRoomReservation implements Serializable {
+    @TableId(value = "id_", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @TableField("room_uid_")
+    @ApiModelProperty(value = "直播间uid")
+    private String roomUid;
+
+    @TableField("user_id_")
+    @ApiModelProperty(value = "预约的用户id")
+    private Integer userId;
+
+    @TableField("push_state_")
+    @ApiModelProperty(value = "未推送-1 推送状态 0推送完成 1推送失败")
+    private Integer pushState;
+
+    @TableField("create_time_")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getRoomUid() {
+        return roomUid;
+    }
+
+    public void setRoomUid(String roomUid) {
+        this.roomUid = roomUid;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getPushState() {
+        return pushState;
+    }
+
+    public void setPushState(Integer pushState) {
+        this.pushState = pushState;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+
+}
+

+ 175 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImSendGroupMessage.java

@@ -0,0 +1,175 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+public class ImSendGroupMessage {
+
+    private Long id;
+
+    @ApiModelProperty(value = "消息内容")
+    private String messageContent;
+
+    @ApiModelProperty(value = "发送人")
+    @NotBlank(message = "发送人不能为空")
+    private String senderId;
+
+    @ApiModelProperty(value = "附加字段")
+    private String extra;
+
+    @ApiModelProperty(value = "目标用户(群组)")
+    @NotNull(message = "目标用户(群组)不能为空")
+    private String targetIds;
+
+    @ApiModelProperty(value = "文件地址")
+    private String fileUrl;
+
+    @ApiModelProperty(value = "文件名称")
+    private String fileName;
+
+    @ApiModelProperty(value = "文件大小")
+    private Long fileSize;
+
+    @ApiModelProperty(value = "消息发送类型即时 NOW、定时发送 TIMING")
+    private String sendType = "TIMING";
+
+    @ApiModelProperty(value = "消息类型(IMG,FILE)")
+    private ImSendTypeEnum messageType;
+
+    @ApiModelProperty(value = "是否发送")
+    private Boolean sendFlag = false;
+
+    @ApiModelProperty(value = "定时发送时间")
+    private Date sendTime;
+
+    @ApiModelProperty(value = "创建人")
+    private String operator;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public String getSendType() {
+        return sendType;
+    }
+
+    public void setSendType(String sendType) {
+        this.sendType = sendType;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Boolean getSendFlag() {
+        return sendFlag;
+    }
+
+    public void setSendFlag(Boolean sendFlag) {
+        this.sendFlag = sendFlag;
+    }
+
+    public Date getSendTime() {
+        return sendTime;
+    }
+
+    public void setSendTime(Date sendTime) {
+        this.sendTime = sendTime;
+    }
+
+    public String getFileName() {
+        return fileName;
+    }
+
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+    }
+
+    public ImSendTypeEnum getMessageType() {
+        return messageType;
+    }
+
+    public void setMessageType(ImSendTypeEnum messageType) {
+        this.messageType = messageType;
+    }
+
+    public String getMessageContent() {
+        return messageContent;
+    }
+
+    public void setMessageContent(String messageContent) {
+        this.messageContent = messageContent;
+    }
+
+    public String getSenderId() {
+        return senderId;
+    }
+
+    public void setSenderId(String senderId) {
+        this.senderId = senderId;
+    }
+
+    public String getExtra() {
+        return extra;
+    }
+
+    public void setExtra(String extra) {
+        this.extra = extra;
+    }
+
+    public String getTargetIds() {
+        return targetIds;
+    }
+
+    public void setTargetIds(String targetIds) {
+        this.targetIds = targetIds;
+    }
+
+    public String getFileUrl() {
+        return fileUrl;
+    }
+
+    public void setFileUrl(String fileUrl) {
+        this.fileUrl = fileUrl;
+    }
+
+    public Long getFileSize() {
+        return fileSize;
+    }
+
+    public void setFileSize(Long fileSize) {
+        this.fileSize = fileSize;
+    }
+}

+ 145 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LiveGoods.java

@@ -0,0 +1,145 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.ym.mec.common.entity.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 对应数据库表(live_goods):
+ */
+public class LiveGoods extends BaseEntity {
+
+	@ApiModelProperty(value = "商品编号",required = false)
+	private Integer id;
+
+	@ApiModelProperty(value = "商品名称",required = true)
+	@NotBlank(message = "商品名称不可为空")
+	private String name;
+
+	@ApiModelProperty(value = "展示图片的地址",required = true)
+	@NotBlank(message = "图片地址不可为空")
+	private String image;
+	
+	@ApiModelProperty(value = "库存",required = true)
+	@NotNull(message = "库存不可为空")
+	private Integer stockCount;
+
+	@ApiModelProperty(value = "现价",required = true)
+	@NotNull(message = "现价不可为空")
+	private java.math.BigDecimal currentPrice;
+	
+	@ApiModelProperty(value = "原价",required = true)
+	@NotNull(message = "原价不可为空")
+	private java.math.BigDecimal originalPrice;
+	
+	@ApiModelProperty(value = "商品详情链接",required = false)
+	private String goodsDetailUrl;
+	
+	@ApiModelProperty(value = "商品的详细描述",required = false)
+	private String desc;
+
+	@ApiModelProperty(value = "上下架状态",required = false)
+	private Boolean status = false;
+
+	@ApiModelProperty(value = "创建时间",required = false)
+	private java.util.Date createTime;
+	
+	@ApiModelProperty(value = "修改时间",required = false)
+	private java.util.Date updateTime;
+
+	public Boolean getStatus() {
+		return status;
+	}
+
+	public void setStatus(Boolean status) {
+		this.status = status;
+	}
+
+	public String getGoodsDetailUrl() {
+		return goodsDetailUrl;
+	}
+
+	public void setGoodsDetailUrl(String goodsDetailUrl) {
+		this.goodsDetailUrl = goodsDetailUrl;
+	}
+
+	public void setId(Integer id){
+		this.id = id;
+	}
+	
+	public Integer getId(){
+		return this.id;
+	}
+
+	public void setName(String name){
+		this.name = name;
+	}
+	
+	public String getName(){
+		return this.name;
+	}
+			
+	public void setImage(String image){
+		this.image = image;
+	}
+	
+	public String getImage(){
+		return this.image;
+	}
+			
+	public void setStockCount(Integer stockCount){
+		this.stockCount = stockCount;
+	}
+	
+	public Integer getStockCount(){
+		return this.stockCount;
+	}
+
+	public void setCurrentPrice(java.math.BigDecimal currentPrice){
+		this.currentPrice = currentPrice;
+	}
+	
+	public java.math.BigDecimal getCurrentPrice(){
+		return this.currentPrice;
+	}
+			
+	public void setOriginalPrice(java.math.BigDecimal originalPrice){
+		this.originalPrice = originalPrice;
+	}
+	
+	public java.math.BigDecimal getOriginalPrice(){
+		return this.originalPrice;
+	}
+			
+	public void setDesc(String desc){
+		this.desc = desc;
+	}
+	
+	public String getDesc(){
+		return this.desc;
+	}
+
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 93 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LiveGoodsMapper.java

@@ -0,0 +1,93 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.ym.mec.common.entity.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(live_goods_mapper):
+ */
+public class LiveGoodsMapper extends BaseEntity {
+
+	/** 主键 */
+	private Integer id;
+	
+	/** 商品编号 */
+	private Integer goodsId;
+	
+	/** 直播间编号 */
+	private String liveId;
+	
+	/** 销量 */
+	private Integer sellCount;
+	
+	/** 状态(1,上架  0,下架) */
+	private Boolean status = false;
+	
+	/** 创建时间 */
+	private java.util.Date createTime;
+	
+	/** 修改时间 */
+	private java.util.Date updateTime;
+	
+	public void setId(Integer id){
+		this.id = id;
+	}
+	
+	public Integer getId(){
+		return this.id;
+	}
+			
+	public void setGoodsId(Integer goodsId){
+		this.goodsId = goodsId;
+	}
+	
+	public Integer getGoodsId(){
+		return this.goodsId;
+	}
+			
+	public void setLiveId(String liveId){
+		this.liveId = liveId;
+	}
+	
+	public String getLiveId(){
+		return this.liveId;
+	}
+			
+	public void setSellCount(Integer sellCount){
+		this.sellCount = sellCount;
+	}
+	
+	public Integer getSellCount(){
+		return this.sellCount;
+	}
+
+	public Boolean getStatus() {
+		return status;
+	}
+
+	public void setStatus(Boolean status) {
+		this.status = status;
+	}
+
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysCoupon.java

@@ -90,6 +90,18 @@ public class SysCoupon extends BaseEntity implements Serializable{
 	@ApiModelProperty("非数据库字段-可以领取的优惠券数量")
 	private Integer canBeGetNum;
 
+	@ApiModelProperty("领取优惠券条件JSON: {organId:分部id(逗号隔开)}")
+	private String useCondition;
+
+	public String getUseCondition() {
+		return useCondition;
+	}
+
+	public void setUseCondition(String useCondition) {
+		this.useCondition = useCondition;
+	}
+
+
 	public Integer getId() {
 		return id;
 	}

+ 66 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicScoreChangeLog.java

@@ -0,0 +1,66 @@
+package com.ym.mec.biz.dal.entity;
+
+import java.util.Date;
+
+/**
+ * 对应数据库表(sys_music_score_change_log):
+ */
+public class SysMusicScoreChangeLog {
+
+    private Integer id;
+
+    /**
+     * 曲库表id
+     */
+    private Integer sysMusicScoreId;
+    /**
+     * 修改前
+     */
+    private String changeBefore;
+    /**
+     * 修改后
+     */
+    private String changeAfter;
+
+    private Date createTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getSysMusicScoreId() {
+        return sysMusicScoreId;
+    }
+
+    public void setSysMusicScoreId(Integer sysMusicScoreId) {
+        this.sysMusicScoreId = sysMusicScoreId;
+    }
+
+    public String getChangeBefore() {
+        return changeBefore;
+    }
+
+    public void setChangeBefore(String changeBefore) {
+        this.changeBefore = changeBefore;
+    }
+
+    public String getChangeAfter() {
+        return changeAfter;
+    }
+
+    public void setChangeAfter(String changeAfter) {
+        this.changeAfter = changeAfter;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 63 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempBuyFreeLiveTheoryCourse.java

@@ -0,0 +1,63 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(temp_buy_free_live_theory_course):
+ */
+public class TempBuyFreeLiveTheoryCourse {
+
+	/**  */
+	private Integer id;
+	
+	/**  */
+	private Integer userId;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private java.util.Date updateTime;
+
+	public TempBuyFreeLiveTheoryCourse(Integer userId) {
+		this.userId = userId;
+	}
+
+	public void setId(Integer id){
+		this.id = id;
+	}
+	
+	public Integer getId(){
+		return this.id;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 230 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempLittleArtistTrainingCamp.java

@@ -0,0 +1,230 @@
+package com.ym.mec.biz.dal.entity;
+
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+
+/**
+ * 小小艺术家训练营活动(TempLittleArtistTrainingCamp)表实体类
+ *
+ * @author hgw
+ * @since 2022-05-17 20:56:22
+ */
+@ApiModel(value = "temp_little_artist_training_camp-小小艺术家训练营活动")
+public class TempLittleArtistTrainingCamp implements Serializable {
+    //未开始-未到报名时间
+    public static final String NOT_START = "NOT_START";
+    //报名中
+    public static final String APPLY = "APPLY";
+    //筹备中 - 报名结束-还未到训练时间
+    public static final String READY = "READY";
+    //进行中 - 训练周期内
+    public static final String ING = "ING";
+    //已结束
+    public static final String END = "END";
+
+    @TableId(value = "id_", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @TableField("name_")
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+
+    @TableField("num_")
+    @ApiModelProperty(value = "报名人数")
+    private Integer num;
+
+    @TableField("apply_start_date_")
+    @ApiModelProperty(value = "申请报名登记开始日期")
+    private Date applyStartDate;
+
+    @TableField("apply_end_date_")
+    @ApiModelProperty(value = "申请报名登记结束日期")
+    private Date applyEndDate;
+
+    @TableField("train_start_date_")
+    @ApiModelProperty(value = "训练开始日期")
+    private Date trainStartDate;
+
+    @TableField("train_end_date_")
+    @ApiModelProperty(value = "训练结束日期")
+    private Date trainEndDate;
+
+    @TableField("state_")
+    @ApiModelProperty(value = "未开始 NOT_START,报名中 APPLY,筹备中 READY,进行中 ING,已结束 END")
+    private String state;
+
+    @TableField("im_group_ids_")
+    @ApiModelProperty(value = "聊天群组id多个用逗号隔开")
+    private String imGroupIds;
+
+    @TableField("pic_url_")
+    @ApiModelProperty(value = "图片")
+    private String picUrl;
+
+    @TableField("del_flag_")
+    @ApiModelProperty(value = "删除标识 0未删除 1已删除' ")
+    private Integer delFlag;
+
+    @TableField("create_by_")
+    @ApiModelProperty(value = "创建人")
+    private Integer createBy;
+
+    @TableField("create_time_")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @TableField("update_by_")
+    @ApiModelProperty(value = "修改人")
+    private Integer updateBy;
+
+    @TableField("update_time_")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private Integer userCount;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public Date getApplyStartDate() {
+        return applyStartDate;
+    }
+
+    public void setApplyStartDate(Date applyStartDate) {
+        this.applyStartDate = applyStartDate;
+    }
+
+    public Date getApplyEndDate() {
+        return applyEndDate;
+    }
+
+    public void setApplyEndDate(Date applyEndDate) {
+        this.applyEndDate = applyEndDate;
+    }
+
+    public Date getTrainStartDate() {
+        return trainStartDate;
+    }
+
+    public void setTrainStartDate(Date trainStartDate) {
+        this.trainStartDate = trainStartDate;
+    }
+
+    public Date getTrainEndDate() {
+        return trainEndDate;
+    }
+
+    public void setTrainEndDate(Date trainEndDate) {
+        this.trainEndDate = trainEndDate;
+    }
+
+    /**
+     * 未开始 NOT_START,报名中 APPLY,筹备中 READY,进行中 ING,已结束 END
+     */
+    public String getState() {
+        return state;
+    }
+
+    /**
+     * 未开始 NOT_START,报名中 APPLY,筹备中 READY,进行中 ING,已结束 END
+     */
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getImGroupIds() {
+        return imGroupIds;
+    }
+
+    public void setImGroupIds(String imGroupIds) {
+        this.imGroupIds = imGroupIds;
+    }
+
+    public String getPicUrl() {
+        return picUrl;
+    }
+
+    public void setPicUrl(String picUrl) {
+        this.picUrl = picUrl;
+    }
+
+    public Integer getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(Integer delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getCreateBy() {
+        return createBy;
+    }
+
+    public void setCreateBy(Integer createBy) {
+        this.createBy = createBy;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Integer getUpdateBy() {
+        return updateBy;
+    }
+
+    public void setUpdateBy(Integer updateBy) {
+        this.updateBy = updateBy;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Integer getUserCount() {
+        return userCount;
+    }
+
+    public void setUserCount(Integer userCount) {
+        this.userCount = userCount;
+    }
+}
+

+ 111 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempLittleArtistTrainingCampUserRelation.java

@@ -0,0 +1,111 @@
+package com.ym.mec.biz.dal.entity;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 训练营与学生关系表(TempLittleArtistTrainingCampUserRelation)表实体类
+ *
+ * @author hgw
+ * @since 2022-05-18 15:48:00
+ */
+@ApiModel(value = "temp_little_artist_training_camp_user_relation-训练营与学生关系表")
+public class TempLittleArtistTrainingCampUserRelation implements Serializable {
+
+    //已报名 APPLY
+    public static final String APPLY = "APPLY";
+    //未报名NOT_APPLY
+    public static final String NOT_APPLY = "NOT_APPLY";
+
+    @TableId(value = "id_", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @TableField("activity_id_")
+    @ApiModelProperty(value = "训练营id")
+    private Integer activityId;
+
+    @TableField("user_id_")
+    @ApiModelProperty(value = "用户id")
+    private Integer userId;
+
+    @TableField("im_group_id_")
+    @ApiModelProperty(value = "im群id")
+    private String imGroupId;
+
+    @TableField("state_")
+    @ApiModelProperty(value = "状态:未报名NOT_APPLY ,已报名 APPLY")
+    private String state;
+
+    @TableField("create_time_")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @TableField("apply_time_")
+    @ApiModelProperty(value = "报名时间")
+    private Date applyTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Integer activityId) {
+        this.activityId = activityId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getApplyTime() {
+        return applyTime;
+    }
+
+    public void setApplyTime(Date applyTime) {
+        this.applyTime = applyTime;
+    }
+}
+

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/UseCondition.java

@@ -0,0 +1,25 @@
+package com.ym.mec.biz.dal.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-05-24
+ */
+public class UseCondition implements Serializable {
+
+    @ApiModelProperty("分部id(逗号隔开)")
+    private String organId;
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/CouponDetailTypeEnum.java

@@ -35,7 +35,7 @@ public enum CouponDetailTypeEnum {
     //VIP = vip课 VIP +乐理课 THEORY_COURSE
     VIP("VIP", "VIP"),
     //会员开通,团练宝   CLOUD_TEACHER  CLOUD_TEACHER_PLUS
-    MEMBER("MEMBER", "团练宝"),
+    MEMBER("MEMBER", "云教练"),
     //全类都可以使用
     FULLCOUPON("FULLCOUPON", "全类券");
 

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/GroupType.java

@@ -17,7 +17,8 @@ public enum GroupType implements BaseEnum<String, GroupType> {
 	REPLACEMENT("乐器置换"),
 	DEGREE("6.1考级活动"),
 	ACTIVITY("活动购买"),
-	MEMBER("购买会员");
+	MEMBER("购买会员"),
+	LIVE_BUY("直播购物");
 
 	private String desc;
 

+ 5 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java

@@ -73,15 +73,15 @@ public enum IndexDataType implements BaseEnum<String, IndexDataType> {
     //活跃用户统计
     ORGAN_TOTAL_STUDENT_NUM("ORGAN_TOTAL_STUDENT_NUM", "分部学员总数", false, false),
     CLOUD_STUDY_LIVELY_STUDENT_NUM("CLOUD_STUDY_LIVELY_STUDENT_NUM", "活跃用户", false, false),
-    CLOUD_STUDY_DAY_USE_STUDENT_NUM("CLOUD_STUDY_DAY_USE_STUDENT_NUM", "团练宝使用用户", false, false),
-    CLOUD_STUDY_NEW_STUDENT_NUM("CLOUD_STUDY_NEW_STUDENT_NUM", "团练宝新增用户", false, false),
-    CLOUD_NEW_STUDENT_NUM("CLOUD_NEW_STUDENT_NUM", "团练宝新用户人数", false, false),
+    CLOUD_STUDY_DAY_USE_STUDENT_NUM("CLOUD_STUDY_DAY_USE_STUDENT_NUM", "云教练使用用户", false, false),
+    CLOUD_STUDY_NEW_STUDENT_NUM("CLOUD_STUDY_NEW_STUDENT_NUM", "云教练新增用户", false, false),
+    CLOUD_NEW_STUDENT_NUM("CLOUD_NEW_STUDENT_NUM", "云教练新用户人数", false, false),
     MEMBER_STUDENT_NUM("MEMBER_STUDENT_NUM", "会员数量", false, false),
     EXPERIENCE_MEMBER_STUDENT_NUM("EXPERIENCE_MEMBER_STUDENT_NUM", "试用会员数量", false, false),
     NEW_MEMBER_STUDENT_NUM("NEW_MEMBER_STUDENT_NUM", "新增会员数量", false, false),
 
-    CLOUD_STUDY_TRAIN_NUM("CLOUD_STUDY_TRAIN_NUM", "团练宝训练次数", false, false),
-    CLOUD_STUDY_TRAIN_TIME("CLOUD_STUDY_TRAIN_TIME", "团练宝训练时长", false, false),
+    CLOUD_STUDY_TRAIN_NUM("CLOUD_STUDY_TRAIN_NUM", "云教练训练次数", false, false),
+    CLOUD_STUDY_TRAIN_TIME("CLOUD_STUDY_TRAIN_TIME", "云教练训练时长", false, false),
 
     //小课数据统计
     STUDENT_VIP_ORDER_NUM("STUDENT_VIP_ORDER_NUM", "学员vip课订单数量", false, false),

+ 17 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -132,6 +132,9 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     TEACHER_PUSH_VIP_COURSE_APPLY_RESULT("TEACHER_PUSH_VIP_COURSE_APPLY_RESULT", "VIP课申请结果"),
     TEACHER_PUSH_VIP_COURSE_ADD("TEACHER_PUSH_VIP_COURSE_ADD", "VIP课新增"),
 
+    GOOD_HABITS_TRAINING_CAMP_EXPERIENCE_QUALIFICATION_PUSH("GOOD_HABITS_TRAINING_CAMP_EXPERIENCE_QUALIFICATION_PUSH", "好习惯养成训练营体验资格"),
+    GOOD_HABITS_TRAINING_CAMP_EXPERIENCE_QUALIFICATION_SMS("GOOD_HABITS_TRAINING_CAMP_EXPERIENCE_QUALIFICATION_SMS", "好习惯养成训练营体验资格"),
+
 
     //    EDUCATION_PUSH_MUSIC_GROUP_FOUND("EDUCATION_PUSH_MUSIC_GROUP_FOUND", "乐团成立"),
 //    EDUCATION_PUSH_MUSIC_GROUP_CLOSE("EDUCATION_PUSH_MUSIC_GROUP_CLOSE", "乐团关闭"),
@@ -187,21 +190,21 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     BACKSTAGE_STUDENT_APPLY_WITHDRAW("BACKSTAGE_STUDENT_APPLY_WITHDRAW", "学员申请提现"),
     CHILDREN_DAY_NOTICE_PUSH("CHILDREN_DAY_NOTICE_PUSH", "技能评测考级报名推送"),
     CHILDREN_DAY_NOTICE_MSG("CHILDREN_DAY_NOTICE_MSG", "技能评测考级报名短信"),
-    NO_BUY_CLOUD_TEACHER_MSG("NO_BUY_CLOUD_TEACHER_MSG", "未购买买团练宝短信"),
+    NO_BUY_CLOUD_TEACHER_MSG("NO_BUY_CLOUD_TEACHER_MSG", "未购买买云教练短信"),
 
     OA_NOTICE_PUSH("OA_NOTICE_PUSH", "待审批提醒"),
     OA_CC_NOTICE_PUSH("OA_CC_NOTICE_PUSH", "审批抄送提醒"),
     OA_END_NOTICE_PUSH("OA_END_NOTICE_PUSH", "审批结束提醒"),
 
-    //团练宝
-    TRAIN_NO_RANK_STUDENT_PUSH("TRAIN_NO_RANK_STUDENT_PUSH", "团练宝训练提醒"),
-    TRAIN_RANK_STUDENT_PUSH("TRAIN_RANK_STUDENT_PUSH", "团练宝训练提醒"),
-    NO_TRAIN_STUDENT_PUSH("NO_TRAIN_STUDENT_PUSH", "团练宝训练提醒"),
+    //云教练
+    TRAIN_NO_RANK_STUDENT_PUSH("TRAIN_NO_RANK_STUDENT_PUSH", "云教练训练提醒"),
+    TRAIN_RANK_STUDENT_PUSH("TRAIN_RANK_STUDENT_PUSH", "云教练训练提醒"),
+    NO_TRAIN_STUDENT_PUSH("NO_TRAIN_STUDENT_PUSH", "云教练训练提醒"),
 
     COUPON_STOCK_WARNING("COUPON_STOCK_WARNING", "优惠券库存预警"),
 
     APP_REDEMPTION_CODE("APP_REDEMPTION_CODE", "兑换码分配量预警"),
-    CLOUD_TEACHER_ORDER_SUCCESS("CLOUD_TEACHER_ORDER_SUCCESS", "团练宝激活成功"),
+    CLOUD_TEACHER_ORDER_SUCCESS("CLOUD_TEACHER_ORDER_SUCCESS", "云教练激活成功"),
 
     EMAIL_TENANT_ACTIVATION_SUCCESSFUL("EMAIL_TENANT_ACTIVATION_SUCCESSFUL",   "开通成功"),
     EMAIL_TENANT_RENEWAL_SUCCESSFUL("EMAIL_TENANT_RENEWAL_SUCCESSFUL", "续费成功"),
@@ -221,7 +224,14 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
 
     STUDENT_SMS_CLOUD_PAYMENT("STUDENT_SMS_CLOUD_PAYMENT",  "待缴费订单"),
     STUDENT_PUSH_CLOUD_PAYMENT("STUDENT_PUSH_CLOUD_PAYMENT",  "待缴费订单"),
-    IM_SHARE_LIVE_URL("IM_SHARE_LIVE_URL",  "直播链接分享")
+    IM_SHARE_LIVE_URL("IM_SHARE_LIVE_URL",  "直播链接分享"),
+
+    //直播推送
+    JIGUANG_LIVE_RESERVATION("IM_LIVE_RESERVATION","直播开播预约提醒-极光推送"),
+
+    //小小训练营-训练营开始训练推送
+    JIGUANG_TEMP_LITTLE_ARTIST_START_TRAIN("JIGUANG_TEMP_LITTLE_ARTIST_START_TRAIN","训练营开始训练推送-极光推送"),
+
     ;
 
     MessageTypeEnum(String code, String msg) {

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderDetailTypeEnum.java

@@ -27,8 +27,8 @@ public enum OrderDetailTypeEnum implements BaseEnum<String, OrderDetailTypeEnum>
     CLASSROOM("CLASSROOM", "课堂课"),
 	DEGREE_REGISTRATION("DEGREE_REGISTRATION", "考级报名"),
     MAINTENANCE("MAINTENANCE","乐保服务"),
-    CLOUD_TEACHER("CLOUD_TEACHER","团练宝"),
-    CLOUD_TEACHER_PLUS("CLOUD_TEACHER_PLUS","团练宝"),
+    CLOUD_TEACHER("CLOUD_TEACHER","云教练"),
+    CLOUD_TEACHER_PLUS("CLOUD_TEACHER_PLUS","云教练"),
     THEORY_COURSE("THEORY_COURSE", "乐理课");
 
     private String code;

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderTypeEnum.java

@@ -33,7 +33,8 @@ public enum OrderTypeEnum implements BaseEnum<String, OrderTypeEnum> {
     REPLACEMENT("REPLACEMENT", "乐器置换"),
     DEGREE("DEGREE", "6.1考级活动"),
     ACTIVITY("ACTIVITY", "活动购买"),
-    MEMBER("MEMBER", "会员购买");
+    MEMBER("MEMBER", "会员购买"),
+    LIVE_BUY("LIVE_BUY", "直播购物");
 
 
     private String code;

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TenantOrderRecordEnum.java

@@ -3,7 +3,7 @@ package com.ym.mec.biz.dal.enums;
 public enum TenantOrderRecordEnum {
     TENANT_OPEN("TENANT_OPEN","机构开通缴费"),
     TENANT_RENEW("TENANT_RENEW","机构续费"),
-    CLOUD_TEACHER("CLOUD_TEACHER","激活团练宝"),
+    CLOUD_TEACHER("CLOUD_TEACHER","激活云教练"),
     TENANT_RECHARGE("TENANT_RECHARGE","机构充值");
 
     private String code;

+ 50 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ImGroupQueryInfo.java

@@ -0,0 +1,50 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+/**
+* @author zx
+* @date 2021/9/26 15:52
+*/
+public class ImGroupQueryInfo extends QueryInfo {
+
+    private Integer userId;
+
+    private Long imSendGroupMessageId;
+
+    private String ignoreIds;
+
+    private String targetIds;
+
+    public String getTargetIds() {
+        return targetIds;
+    }
+
+    public void setTargetIds(String targetIds) {
+        this.targetIds = targetIds;
+    }
+
+    public String getIgnoreIds() {
+        return ignoreIds;
+    }
+
+    public void setIgnoreIds(String ignoreIds) {
+        this.ignoreIds = ignoreIds;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Long getImSendGroupMessageId() {
+        return imSendGroupMessageId;
+    }
+
+    public void setImSendGroupMessageId(Long imSendGroupMessageId) {
+        this.imSendGroupMessageId = imSendGroupMessageId;
+    }
+}

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ImSendGroupMessageQueryInfo.java

@@ -0,0 +1,44 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author zx
+* @date 2021/9/26 15:52
+*/
+public class ImSendGroupMessageQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "消息是否发送")
+    private Boolean sendFlag;
+
+    @ApiModelProperty(value = "发送人")
+    private String senderId;
+
+    @ApiModelProperty(value = "消息发送类型即时 NOW、定时发送 TIMING")
+    private String sendType;
+
+    public String getSendType() {
+        return sendType;
+    }
+
+    public void setSendType(String sendType) {
+        this.sendType = sendType;
+    }
+
+    public String getSenderId() {
+        return senderId;
+    }
+
+    public void setSenderId(String senderId) {
+        this.senderId = senderId;
+    }
+
+    public Boolean getSendFlag() {
+        return sendFlag;
+    }
+
+    public void setSendFlag(Boolean sendFlag) {
+        this.sendFlag = sendFlag;
+    }
+}

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/LiveGoodsMapperQueryInfo.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class LiveGoodsMapperQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "上下架状态",required = false)
+    private Boolean status;
+
+    @ApiModelProperty(value = "直播房间号",required = false)
+    private String liveId;
+
+    @ApiModelProperty(value = "商品编号",required = false)
+    private Integer liveGoodsId;
+
+    public Integer getLiveGoodsId() {
+        return liveGoodsId;
+    }
+
+    public void setLiveGoodsId(Integer liveGoodsId) {
+        this.liveGoodsId = liveGoodsId;
+    }
+
+    public String getLiveId() {
+        return liveId;
+    }
+
+    public void setLiveId(String liveId) {
+        this.liveId = liveId;
+    }
+
+    public Boolean getStatus() {
+        return status;
+    }
+
+    public void setStatus(Boolean status) {
+        this.status = status;
+    }
+}

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/LiveGoodsQueryInfo.java

@@ -0,0 +1,30 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+public class LiveGoodsQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "直播房间号(需要排出当前直播间的商品)",required = false)
+    private String liveId;
+
+    private List<Integer> ignoreGoodsIds;
+
+    public List<Integer> getIgnoreGoodsIds() {
+        return ignoreGoodsIds;
+    }
+
+    public void setIgnoreGoodsIds(List<Integer> ignoreGoodsIds) {
+        this.ignoreGoodsIds = ignoreGoodsIds;
+    }
+
+    public String getLiveId() {
+        return liveId;
+    }
+
+    public void setLiveId(String liveId) {
+        this.liveId = liveId;
+    }
+}

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/BaseRoomUserVo.java

@@ -0,0 +1,27 @@
+package com.ym.mec.biz.dal.vo;
+
+import java.io.Serializable;
+
+public class BaseRoomUserVo implements Serializable {
+
+    private Integer userId;
+
+    private String userName;
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+}

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/BaseVo.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.dal.vo;
+
+import java.io.Serializable;
+
+public class BaseVo implements Serializable {
+
+    private Integer id;
+
+    private String name;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/ImLiveBroadcastRoomDetailVo.java

@@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.entity.ImLiveRoomVideo;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -33,8 +34,41 @@ public class ImLiveBroadcastRoomDetailVo implements Serializable {
     @ApiModelProperty(value = "直播时长")
     private Integer totalLiveTime;
 
+    @ApiModelProperty(value = "直播开始时间")
+    private Date liveStartTime;
+
+    @ApiModelProperty(value = "直播结束时间")
+    private Date liveEndTime;
+
+    @ApiModelProperty(value = "直播状态 0未开始 1开始 2已结束")
+    private Integer liveState;
+
     private List<ImLiveRoomVideo> videoList;
 
+    public Date getLiveStartTime() {
+        return liveStartTime;
+    }
+
+    public void setLiveStartTime(Date liveStartTime) {
+        this.liveStartTime = liveStartTime;
+    }
+
+    public Date getLiveEndTime() {
+        return liveEndTime;
+    }
+
+    public void setLiveEndTime(Date liveEndTime) {
+        this.liveEndTime = liveEndTime;
+    }
+
+    public Integer getLiveState() {
+        return liveState;
+    }
+
+    public void setLiveState(Integer liveState) {
+        this.liveState = liveState;
+    }
+
     public String getRoomUid() {
         return roomUid;
     }

+ 39 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/ImLiveBroadcastRoomVo.java

@@ -71,6 +71,15 @@ public class ImLiveBroadcastRoomVo implements Serializable {
     @ApiModelProperty(value = "播出端")
     private String os = "pc";
 
+    @ApiModelProperty(value = "是否在首页推广 0否 1是 - 每个机构只能有一个直播间在首页推广")
+    private Integer popularize;
+
+    @ApiModelProperty(value = "是否预约过该直播间 0否 1是")
+    private Integer reserve;
+
+    @ApiModelProperty(value = "当前登录人是否是黑名单用户 0否 1是")
+    private Integer blacklistFlag = 0;
+
     @ApiModelProperty(value = "点赞数")
     private Integer likeNum;
     @ApiModelProperty(value = "当前观看人数")
@@ -245,5 +254,35 @@ public class ImLiveBroadcastRoomVo implements Serializable {
     public void setTotalLookNum(Integer totalLookNum) {
         this.totalLookNum = totalLookNum;
     }
+
+    public Integer getPopularize() {
+        return popularize;
+    }
+
+    public void setPopularize(Integer popularize) {
+        this.popularize = popularize;
+    }
+
+    /**
+     * 是否预约过该直播间 0否 1是
+     */
+    public Integer getReserve() {
+        return reserve;
+    }
+
+    /**
+     * 是否预约过该直播间 0否 1是
+     */
+    public void setReserve(Integer reserve) {
+        this.reserve = reserve;
+    }
+
+    public Integer getBlacklistFlag() {
+        return blacklistFlag;
+    }
+
+    public void setBlacklistFlag(Integer blacklistFlag) {
+        this.blacklistFlag = blacklistFlag;
+    }
 }
 

+ 7 - 48
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/RoomUserInfoVo.java

@@ -9,10 +9,7 @@ import java.util.Date;
  * @author hgw
  * Created by 2022-02-24
  */
-public class RoomUserInfoVo implements Serializable {
-    private Integer userId;
-
-    private String userName;
+public class RoomUserInfoVo extends BaseRoomUserVo implements Serializable  {
 
     private Integer tenantId;
 
@@ -23,32 +20,9 @@ public class RoomUserInfoVo implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date firstJoinTime;
 
-    //动态进入房间时间  多次进入房间每次进入更新
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date dynamicJoinTime;
-
-    //最后一次退出时间 该字段是为了控制连续退出的 如果2次退出时间间隔不足1分钟则不处理
+    //动态观看直播时间  主播每次开启直播后更新
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date lastOutTime;
-
-    //0:在房间 1:不在房间
-    private Integer state;
-
-    public Integer getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Integer userId) {
-        this.userId = userId;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
+    private Date dynamicLookTime;
 
     public Integer getTotalViewTime() {
         return totalViewTime;
@@ -66,20 +40,12 @@ public class RoomUserInfoVo implements Serializable {
         this.firstJoinTime = firstJoinTime;
     }
 
-    public Date getDynamicJoinTime() {
-        return dynamicJoinTime;
+    public Date getDynamicLookTime() {
+        return dynamicLookTime;
     }
 
-    public void setDynamicJoinTime(Date dynamicJoinTime) {
-        this.dynamicJoinTime = dynamicJoinTime;
-    }
-
-    public Date getLastOutTime() {
-        return lastOutTime;
-    }
-
-    public void setLastOutTime(Date lastOutTime) {
-        this.lastOutTime = lastOutTime;
+    public void setDynamicLookTime(Date dynamicLookTime) {
+        this.dynamicLookTime = dynamicLookTime;
     }
 
     public Integer getTenantId() {
@@ -90,11 +56,4 @@ public class RoomUserInfoVo implements Serializable {
         this.tenantId = tenantId;
     }
 
-    public Integer getState() {
-        return state;
-    }
-
-    public void setState(Integer state) {
-        this.state = state;
-    }
 }

+ 74 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserQualificationsVo.java

@@ -0,0 +1,74 @@
+package com.ym.mec.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel(value = "训练营资格信息")
+public class TempCampUserQualificationsVo {
+
+    @ApiModelProperty(value = "训练营资格 有资格0  无资格1")
+    private Integer qualifications;
+
+    @ApiModelProperty(value = "训练营标题")
+    private String campTitle;
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+    @ApiModelProperty(value = "训练营内容文案")
+    private String content;
+
+    @ApiModelProperty(value = "训练营id")
+    private Integer campId;
+
+    @ApiModelProperty(value = "训练营url")
+    private String url;
+
+    public Integer getQualifications() {
+        return qualifications;
+    }
+
+    public void setQualifications(Integer qualifications) {
+        this.qualifications = qualifications;
+    }
+
+    public String getCampTitle() {
+        return campTitle;
+    }
+
+    public void setCampTitle(String campTitle) {
+        this.campTitle = campTitle;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getCampId() {
+        return campId;
+    }
+
+    public void setCampId(Integer campId) {
+        this.campId = campId;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+}

+ 84 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingDetailVo.java

@@ -0,0 +1,84 @@
+package com.ym.mec.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Objects;
+
+@ApiModel(value = "训练营详情")
+public class TempCampUserTrainingDetailVo implements Serializable {
+    @ApiModelProperty(value = "用户id")
+    private Integer id;
+    @ApiModelProperty(value = "用户名称")
+    private String username;
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "群组名称")
+    private String imGroupName;
+    @ApiModelProperty(value = "训练天数")
+    private Integer playDay;
+    @ApiModelProperty(value = "训练时间")
+    private Integer playTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getImGroupName() {
+        return imGroupName;
+    }
+
+    public void setImGroupName(String imGroupName) {
+        this.imGroupName = imGroupName;
+    }
+
+    public Integer getPlayDay() {
+        return playDay;
+    }
+
+    public void setPlayDay(Integer playDay) {
+        this.playDay = playDay;
+    }
+
+    public Integer getPlayTime() {
+        return playTime;
+    }
+
+    /**
+     * 传入秒钟换算成分钟
+     */
+    public void setPlayTime(Integer playTime) {
+        if (Objects.nonNull(playTime)) {
+            if (playTime >= 60) {
+                BigDecimal divide = BigDecimal.valueOf(playTime).divide(BigDecimal.valueOf(60), 0, RoundingMode.DOWN);
+                playTime = divide.intValue();
+            } else {
+                playTime = 0;
+            }
+        }
+        this.playTime = playTime;
+    }
+}

+ 58 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingPlayTimeVo.java

@@ -0,0 +1,58 @@
+package com.ym.mec.biz.dal.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+@ApiModel(value = "训练营-用户训练信息")
+public class TempCampUserTrainingPlayTimeVo {
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "训练开始日期")
+    private Date trainStartDate;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "训练结束日期")
+    private Date trainEndDate;
+
+    @ApiModelProperty(value = "训练时长")
+    private Integer playTime;
+
+    @ApiModelProperty(value = "是否完成 0完成 1未完成")
+    private Integer isFinish;
+
+    public Date getTrainStartDate() {
+        return trainStartDate;
+    }
+
+    public void setTrainStartDate(Date trainStartDate) {
+        this.trainStartDate = trainStartDate;
+    }
+
+    public Date getTrainEndDate() {
+        return trainEndDate;
+    }
+
+    public void setTrainEndDate(Date trainEndDate) {
+        this.trainEndDate = trainEndDate;
+    }
+
+    public Integer getPlayTime() {
+        return playTime;
+    }
+
+    public void setPlayTime(Integer playTime) {
+        this.playTime = playTime;
+    }
+
+    public Integer getIsFinish() {
+        return isFinish;
+    }
+
+    public void setIsFinish(Integer isFinish) {
+        this.isFinish = isFinish;
+    }
+}

+ 64 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserVo.java

@@ -0,0 +1,64 @@
+package com.ym.mec.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @author hgw
+ * Created by 2022-03-02
+ */
+@ApiModel(value = "训练营参与人员信息")
+public class TempCampUserVo implements Serializable {
+    @ApiModelProperty(value = "用户id")
+    private Integer id;
+    @ApiModelProperty(value = "用户名称")
+    private String username;
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "状态:未报名NOT_APPLY ,已报名 APPLY")
+    private String state;
+    @ApiModelProperty(value = "训练营名称")
+    private String campName;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getCampName() {
+        return campName;
+    }
+
+    public void setCampName(String campName) {
+        this.campName = campName;
+    }
+}

+ 58 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempUserTrainingTimeDetailVo.java

@@ -0,0 +1,58 @@
+package com.ym.mec.biz.dal.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class TempUserTrainingTimeDetailVo implements Serializable {
+
+    @ApiModelProperty(value = "用户id")
+    private Integer userId;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "训练日期")
+    private Date trainingDate;
+
+    @ApiModelProperty(value = "训练时长/秒-保留2位")
+    private BigDecimal playTime;
+
+    @ApiModelProperty(value = "是否完成训练  0-未完成 1-已完成")
+    private Integer isFinish;
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Date getTrainingDate() {
+        return trainingDate;
+    }
+
+    public void setTrainingDate(Date trainingDate) {
+        this.trainingDate = trainingDate;
+    }
+
+    public BigDecimal getPlayTime() {
+        return playTime;
+    }
+
+    public void setPlayTime(BigDecimal playTime) {
+        this.playTime = playTime;
+    }
+
+    public Integer getIsFinish() {
+        return isFinish;
+    }
+
+    public void setIsFinish(Integer isFinish) {
+        this.isFinish = isFinish;
+    }
+}

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/handler/SysUserContextHolder.java

@@ -0,0 +1,22 @@
+package com.ym.mec.biz.handler;
+
+
+import com.ym.mec.auth.api.entity.SysUser;
+
+public class SysUserContextHolder {
+
+	private static final ThreadLocal<SysUser> sysUserContextHolder = new ThreadLocal<SysUser>();
+
+	public static void setSysUser(SysUser sysUser) {
+		sysUserContextHolder.set(sysUser);
+	}
+
+	public static SysUser getSysUser() {
+		return sysUserContextHolder.get();
+	}
+
+	public static void clearSysUser() {
+		sysUserContextHolder.remove();
+	}
+
+}

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ActivityUserMapperService.java

@@ -14,6 +14,7 @@ import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 public interface ActivityUserMapperService extends BaseService<Integer, ActivityUserMapper> {
 
@@ -115,4 +116,9 @@ public interface ActivityUserMapperService extends BaseService<Integer, Activity
     * @date 2021/12/29 17:28
     */
     void addOrderDetail2Activity(StudentPaymentOrder studentPaymentOrder, List<StudentPaymentOrderDetail> activity);
+
+    //获取学员未排课资格
+    Map<String,Object> getStudentNoMapperInfo();
+
+    Integer getStudentNoCourseNum(Integer userId, Integer activityId);
 }

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

@@ -597,7 +597,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @return
      * @author zouxuan
      */
-    int batchUpdateLockByClassGroupIds(List<Integer> classGroupIds,int lockFlag);
+    void batchUpdateLockByClassGroupIds(List<Integer> classGroupIds,int lockFlag);
 
     //修改班级基本信息
     int updateClassGroup(ClassGroup classGroup);

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CloudTeacherOrderService.java

@@ -123,4 +123,6 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
     * @date 2022/3/21 11:59
     */
     void save(CloudTeacherOrder cloudTeacherOrder,Boolean autoActivationFlag);
+
+    CloudTeacherOrder queryByOrderId(Long orderId);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -120,6 +120,13 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @Date: 2019/9/17
 	 * 批量插入课程计划
 	 */
+	void batchAddCourseSchedule1(List<CourseSchedule> courseSchedules);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/17
+	 * 批量插入课程计划
+	 */
 	void batchAddCourseSchedule(List<CourseSchedule> courseSchedules);
 
 	/**

+ 12 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupMemberService.java

@@ -1,14 +1,13 @@
 package com.ym.mec.biz.service;
 
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroupMember;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+import java.util.Map;
+
 public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 
 	/**
@@ -19,7 +18,7 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 * @param isAdmin 是否是管理员
 	 * @return
 	 */
-	boolean join(Long imGroupId, Integer userId, String roleType, boolean isAdmin);
+	boolean join(String imGroupId, Integer userId, String roleType, boolean isAdmin);
 
 	/**
 	 * 加入群组
@@ -28,7 +27,7 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 * @param isAdmin 是否是管理员
 	 * @return
 	 */
-	boolean join(Long imGroupId, String roleType, boolean isAdmin, ImGroup imGroup, SysUser user);
+	boolean join(String imGroupId, String roleType, boolean isAdmin, ImGroup imGroup, SysUser user);
 
 	/**
 	 * 批量加入群组
@@ -36,7 +35,7 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 * @param userRoleMap key-用户编号  value-角色类型
 	 * @return
 	 */
-	boolean join(Long imGroupId, Map<Integer, String> userRoleMap);
+	boolean join(String imGroupId, Map<Integer, String> userRoleMap);
 
 	/**
 	 * 指定用户退出群组
@@ -44,7 +43,7 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 * @param userId 指定的用户编号
 	 * @return
 	 */
-	boolean quit(Long imGroupId, Integer userId);
+	boolean quit(String imGroupId, Integer userId);
 
 	/**
 	 * 退出指定群组
@@ -52,7 +51,7 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 * @param userId 用户编号
 	 * @return
 	 */
-	boolean quit(List<Long> imGroupIdList, Integer userId);
+	boolean quit(List<String> imGroupIdList, Integer userId);
 
 	/**
 	 * 用户批量退出群组
@@ -60,7 +59,7 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 * @param userIdList 学生编号
 	 * @return
 	 */
-	boolean quit(Long imGroupId, List<Integer> userIdList);
+	boolean quit(String imGroupId, List<Integer> userIdList);
 
 	/**
 	 * 修改角色类型
@@ -69,7 +68,7 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	 * @param roleType 角色类型
 	 * @return
 	 */
-	boolean updateRoleType(Long imGroupId, Integer userId, String roleType);
+	boolean updateRoleType(String imGroupId, Integer userId, String roleType);
 
 	void batchInsert(List<ImGroupMember> imGroupMemberList);
 
@@ -94,4 +93,6 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	boolean isExit(String groupId, String userId);
 
 	void delRepeat();
+
+	List<ImGroupMember> queryMembers(String groupId, List<String> userIdList, Integer tenantId);
 }

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

@@ -15,5 +15,5 @@ public interface ImGroupNoticeService extends BaseService<Long, ImGroupNotice> {
 	 * @param imGroupId
 	 * @return
 	 */
-	ImGroupNoticeDto queryLatestNotice(Long imGroupId);
+	ImGroupNoticeDto queryLatestNotice(String imGroupId);
 }

+ 10 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupService.java

@@ -1,12 +1,12 @@
 package com.ym.mec.biz.service;
 
-import java.util.List;
-
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.common.service.BaseService;
 
-public interface ImGroupService extends BaseService<Long, ImGroup> {
+import java.util.List;
+
+public interface ImGroupService extends BaseService<String, ImGroup> {
 
 	/**
 	 * 创建群组
@@ -20,14 +20,17 @@ public interface ImGroupService extends BaseService<Long, ImGroup> {
 	 * @param type 群类型
 	 * @return
 	 */
-	ImGroup create(Long id, Integer userId, String name, String introduce, String memo, String tags, String img, String type);
+	ImGroup create(String id, Integer userId, String name, String introduce, String memo, String tags, String img, String type);
+
+	//创建非课程类型的业务群组
+	String createGroup(List<String> userIdList,String groupName,String groupType);
 
 	/**
 	 * 解散群组
 	 * @param imGroupId
 	 * @return
 	 */
-	boolean cancel(Long imGroupId);
+	boolean cancel(String imGroupId);
 
 	/**
 	 * 查询用户所在的群列表
@@ -42,7 +45,7 @@ public interface ImGroupService extends BaseService<Long, ImGroup> {
 	 * @param imGroupId
 	 * @return
 	 */
-	List<ImGroupMemberDto> queryMemberById(Long imGroupId);
+	List<ImGroupMemberDto> queryMemberById(String imGroupId);
 
 	/**
 	 * 查询指定用户在群众的信息
@@ -50,7 +53,7 @@ public interface ImGroupService extends BaseService<Long, ImGroup> {
 	 * @param userId 指定的用户编号
 	 * @return
 	 */
-	ImGroupMemberDto queryMember(Long imGroupId, Integer userId);
+	ImGroupMemberDto queryMember(String imGroupId, Integer userId);
 
 	/**
 	 * 修改用户在群、通讯录的备注

+ 36 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java

@@ -3,8 +3,8 @@ package com.ym.mec.biz.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
+import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
-import com.ym.mec.biz.dal.vo.RoomUserInfoVo;
 import com.ym.mec.common.entity.ImUserState;
 import com.ym.mec.common.page.PageInfo;
 
@@ -21,7 +21,7 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
 
     PageInfo<ImLiveBroadcastRoomVo> queryPage(Map<String, Object> param);
 
-    ImLiveBroadcastRoomVo queryRoomAndCheck(String roomUid, Integer userId);
+    ImLiveBroadcastRoomVo queryRoomAndCheck(String roomUid, Integer userId,Integer osType);
 
     ImLiveBroadcastRoomVo queryRoomInfo(String roomUid);
 
@@ -35,6 +35,19 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
 
     void delete(Integer id);
 
+    /**
+     * 推广直播间-每个机构只能有一个直播间在首页推广
+     *
+     * @param id         直播间id
+     * @param popularize 是否在首页推广 0否 1是
+     */
+    void opsPopularize(Integer id, Integer popularize);
+
+    /**
+     * 查询该机构目前推广的直播间
+     */
+    ImLiveBroadcastRoomVo queryPopularizeRoom();
+
     void destroyExpiredLiveRoom();
 
     void syncLike(String roomUid, Integer likeNum);
@@ -45,23 +58,32 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
 
     void joinRoom(String roomUid, Integer userId);
 
-    void startLive(String roomUid,Integer userId);
+    void startLive(String roomUid, Integer userId);
 
-    void closeLive(String roomUid,Integer userId);
+    void closeLive(String roomUid, Integer userId);
 
     void createLiveRoom();
 
-    Map<String, Object> test(String roomUid, Integer userId);
+    Map<String, Object> test(String roomUid);
 
     /**
-    * @description: 分享直播链接
-     * @param roomUid
-    * @return void
-    * @author zx
-    * @date 2022/2/23 16:17
-    */
-    void shareGroup(String roomUid,String groupIds);
-
-    List<RoomUserInfoVo> queryRoomUserInfo(String roomUid);
+     * @param roomUid 直播间uid
+     * @author zx
+     * @since 2022/2/23 16:17
+     * 分享直播链接
+     */
+    void shareGroup(String roomUid, String groupIds);
+
+    List<BaseRoomUserVo> queryRoomOnlineUserInfo(String roomUid);
+
+    List<BaseRoomUserVo> queryRoomLimitOnlineUserInfo(String roomUid);
+
+    /**
+     * 根据传入的用户id查询用户信息
+     *
+     * @param userIdList 用户id集合
+     */
+    List<BaseRoomUserVo> queryBaseUserInfo(List<Integer> userIdList);
+
 }
 

+ 42 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomReservationService.java

@@ -0,0 +1,42 @@
+package com.ym.mec.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
+import com.ym.mec.biz.dal.entity.ImLiveRoomReservation;
+import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import com.ym.mec.common.page.PageInfo;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+
+/**
+ * 直播预约记录(ImLiveRoomReservation)表服务接口
+ *
+ * @author hgw
+ * @since 2022-05-24 14:54:05
+ */
+public interface ImLiveRoomReservationService extends IService<ImLiveRoomReservation> {
+
+    /**
+     * 添加直播预约
+     */
+    void add(ImLiveRoomReservation entity);
+
+    /**
+     * 取消预约
+     */
+    void cancel(ImLiveRoomReservation entity);
+
+    /**
+     * 分页查询直播间
+     * @param param
+     * <p> liveState 直播状态 0未开始 1开始 2结束
+     */
+    PageInfo<ImLiveBroadcastRoomVo> queryPageStudent(Map<String, Object> param);
+
+    /**
+     * 预约直播间推送极光
+     */
+    void push(ImLiveBroadcastRoom room);
+}
+

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImSendGroupMessageService.java

@@ -0,0 +1,23 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.ImSendGroupMessage;
+import com.ym.mec.common.service.BaseService;
+import org.springframework.transaction.annotation.Transactional;
+
+public interface ImSendGroupMessageService extends BaseService<Long, ImSendGroupMessage> {
+
+    @Transactional(rollbackFor = Exception.class)
+    void sendTimedMessages() throws Exception;
+
+    //发送群消息
+    void sendGroupMessage(ImSendGroupMessage imSendGroupMessage) throws Exception;
+
+    //修改未发送的群消息
+    void updateGroupMessage(ImSendGroupMessage imSendGroupMessage);
+
+    void deleteGroupMessage(Long id);
+
+    void deleteGroupList(Long imSendGroupMessageId, String groupIds);
+
+    void addGroupList(Long imSendGroupMessageId, String groupIds);
+}

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/LiveGoodsMapperService.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.dto.LiveGoodsMapperDto;
+import com.ym.mec.biz.dal.entity.LiveGoodsMapper;
+import com.ym.mec.biz.dal.page.LiveGoodsMapperQueryInfo;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.service.BaseService;
+
+import java.util.List;
+
+public interface LiveGoodsMapperService extends BaseService<Integer, LiveGoodsMapper> {
+
+    //新增直播间商品
+    void add(String liveId, String liveGoodsIds);
+
+    //商品下架
+    void downGoods(Integer liveGoodsId);
+
+    //商品下架
+    void downGoods(Integer liveGoodsId, String liveId);
+
+    //商品下架
+    void downGoods(String liveId);
+
+    //商品上架
+    void upGoods(Integer liveGoodsId, String liveId);
+
+    List<LiveGoodsMapper> findByLiveGoodsIdAndStatus(Integer goodsId, Boolean status);
+
+    //分页查询
+    PageInfo<LiveGoodsMapperDto> queryGoodsPage(LiveGoodsMapperQueryInfo queryInfo);
+
+    List<LiveGoodsMapperDto> getLiveGoodsList(String liveId, Integer liveGoodsId, Boolean status);
+
+    List<Integer> queryGoodsIdsByLiveId(String liveId);
+}

+ 31 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/LiveGoodsService.java

@@ -0,0 +1,31 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.LiveGoods;
+import com.ym.mec.biz.dal.page.LiveGoodsQueryInfo;
+import com.ym.mec.common.service.BaseService;
+
+public interface LiveGoodsService extends BaseService<Integer, LiveGoods> {
+
+    void updateLiveGoods(LiveGoods liveGoods);
+
+    void deleteLiveGoods(Integer goodsId);
+
+    //初始化商品缓存
+    void initGoodsStockCache(Integer liveGoodsId, String liveId);
+
+    //商品库存+1
+    void addGoodsStock(Integer liveGoodsId, String liveId);
+
+    //商品库存-1
+    void reduceGoodsStock(Integer liveGoodsId, String liveId);
+
+    //商品冻结库存+1
+    void addGoodsFreezeStock(Integer liveGoodsId, String liveId);
+
+    //商品冻结库存-1
+    void reduceGoodsFreezeStock(Integer liveGoodsId, String liveId);
+
+    Object queryGoodsPage(LiveGoodsQueryInfo queryInfo);
+
+    void add(LiveGoods liveGoods);
+}

+ 13 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankSettingService.java

@@ -18,13 +18,10 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
 
     List<MemberRankSetting> queryListByIsDefault(Boolean isDefault);
 
-    /**
-     * 会员购买
-     *
-     * @return
-     */
     HttpResponseResult buy(MemberPayParamDto memberPayParamDto) throws Exception;
 
+    HttpResponseResult buy1(MemberPayParamDto memberPayParamDto) throws Exception;
+
     HttpResponseResult buy2Qqhe(MemberPayParamDto memberPayParamDto) throws Exception;
 
     HttpResponseResult queryBuy2Qqhe();
@@ -39,4 +36,15 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
      */
     boolean orderCallback(StudentPaymentOrder studentPaymentOrder);
 
+    /**
+     * 订单回调
+     *
+     * @param studentPaymentOrder
+     * @return
+     */
+    boolean liveBuyOrderCallback(StudentPaymentOrder studentPaymentOrder);
+
+    HttpResponseResult activeBuy(MemberPayParamDto memberPayParamDto) throws Exception;
+
+    HttpResponseResult<Integer> checkActiveBuy(MemberPayParamDto memberPayParamDto);
 }

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderBaseService.java

@@ -2,9 +2,7 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentBaseCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderBase;
 import com.ym.mec.biz.dal.enums.CalenderBaseServiceEnum;
-import org.apache.poi.ss.formula.functions.T;
 
 import java.math.BigDecimal;
 import java.util.HashMap;

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

@@ -394,4 +394,7 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
 	* @date 2021/11/2 18:07
 	*/
 	Map<String,BigDecimal> getStudentSurplusCourseFee(Long practiceGroupId);
+
+	//学生端网管课活动排课
+	HttpResponseResult studentCreateActivityPracticeGroup(PracticeGroupBuyDto practiceGroupBuyParams);
 }

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -24,8 +24,6 @@ import java.util.Map;
 
 public interface StudentPaymentOrderService extends BaseService<Long, StudentPaymentOrder> {
 
-    StudentPaymentOrder findByUserAndActive(Integer userId, Integer activeRemark, String remark, String status);
-
     Map createOrder(StudentPaymentOrder studentPaymentOrder, List<StudentPaymentOrderDetail> details, String payReceiver) throws Exception;
 
     /**
@@ -224,4 +222,7 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
     * @date 2022/1/20 16:23
     */
     void returnBalanceAndCoupon(StudentPaymentOrder studentPaymentOrder,String memo);
+
+    //获取云教练订单
+    StudentPaymentOrder getMemberIngOrder(OrderTypeEnum member, DealStatusEnum status);
 }

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -1,8 +1,11 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.BaseService;
+import com.ym.mec.util.date.DateUtil;
 
+import java.util.Date;
 import java.util.List;
 
 public interface SysConfigService extends BaseService<Long, SysConfig> {
@@ -391,6 +394,19 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
     //平台收款账户
     String PLATFORM_PAYEE_ACCOUNT = "platform_payee_account";
 
+    static Date checkActivityDate(String startTimeStr, String endTimeStr) {
+        Date now = new Date();
+        Date startTime = DateUtil.stringToDate(startTimeStr);
+        if (startTime.compareTo(now) > 0) {
+            throw new BizException("活动还未开始,谢谢关注");
+        }
+        Date endTime = DateUtil.stringToDate(endTimeStr);
+        if (endTime.compareTo(now) <= 0) {
+            throw new BizException("活动已结束,谢谢关注");
+        }
+        return now;
+    }
+
     /**
      * @return com.ym.mec.biz.dal.entity.SysConfig
      * @params paramName

+ 45 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import java.net.MalformedURLException;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -42,7 +43,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	void batchSendImMessage(MessageTypeEnum messageType,String senderId,String extra, String[] targetIds,String url, Object... args);
 
 	/**
-	 * 推送im文本消息,包含跳转链接
+	 * 推送im 模板文本消息,包含跳转链接
 	 * @param senderId
 	 * @param messageType
 	 * @return
@@ -50,6 +51,49 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	void batchSendImGroupMessage(MessageTypeEnum messageType,String senderId,String extra, String[] targetIds,String url, Object... args);
 
 	/**
+	 * 发送文本消息
+	 * @param senderId
+	 * @param messageContent
+	 * @return
+	 */
+	void batchSendImGroupMessage(String messageContent,String senderId,String extra, String[] targetIds) throws MalformedURLException;
+
+	/**
+	 * 发送自定义文本消息
+	 * @param senderId
+	 * @param messageContent
+	 * @return
+	 */
+	void batchSendImGroupMessage(String messageContent,String senderId,String extra, String[] targetIds,String objectName);
+
+
+	/**
+	* @description: 发送图片消息
+	 * @param senderId
+	 * @param extra
+	 * @param imgUrl
+	 * @param targetIds
+	* @return void
+	* @author zx
+	* @date 2022/5/17 10:05
+	*/
+	void batchSendImGroupMessage(String[] targetIds,String senderId,String extra,String imgUrl) throws Exception;
+
+	/**
+	* @description: 发送文件消息
+	 * @param senderId 发送者编号
+	 * @param extra 扩展字段
+	 * @param name	文件名称
+	 * @param targetIds	接收者编号
+	 * @param fileUrl	文件地址
+	 * @param size	文件大小
+	* @return void
+	* @author zx
+	* @date 2022/5/17 10:05
+	*/
+	void batchSendImGroupMessage(String senderId,String extra,String name, String[] targetIds, String fileUrl,Long size);
+
+	/**
 	 * 发送消息
 	 * @param senderTenantId 消息发送者所在的机构编号
 	 * @param messageSender 消息发送者

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

@@ -90,4 +90,6 @@ public interface SysMusicCompareRecordService extends BaseService<Long, SysMusic
      * @return
      */
     PageInfo<CountStudentTrainDataDto> countStudentTrain(SysMusicCompareRecordQueryInfo queryInfo);
+    
+    int queryCurrentDatePlayTimeByUserId(Integer userId);
 }

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 
 import com.ym.mec.biz.dal.dto.MusicScoreDto;
+import com.ym.mec.biz.dal.dto.SysMusicScoreTranscod;
 import com.ym.mec.biz.dal.entity.SysMusicScore;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -18,4 +19,6 @@ public interface SysMusicScoreService extends BaseService<Integer, SysMusicScore
     PageInfo<SysMusicScore> queryMusicScorePage(SysExamSongQueryInfo queryInfo);
     
     PageInfo<SysMusicScore> queryMusicScorePageInfo(SysExamSongQueryInfo queryInfo);
+
+    void transcod(Integer sysMusicScoreId);
 }

+ 130 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TempLittleArtistTrainingCampService.java

@@ -0,0 +1,130 @@
+package com.ym.mec.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.dao.TempLittleArtistTrainingCampDao;
+import com.ym.mec.biz.dal.dto.TempLittleArtistTrainingCampDto;
+import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp;
+import com.ym.mec.biz.dal.vo.TempCampUserTrainingDetailVo;
+import com.ym.mec.biz.dal.vo.TempCampUserTrainingPlayTimeVo;
+import com.ym.mec.biz.dal.vo.TempCampUserVo;
+import com.ym.mec.biz.dal.vo.TempUserTrainingTimeDetailVo;
+import com.ym.mec.common.page.PageInfo;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 小小艺术家训练营活动(TempLittleArtistTrainingCamp)表服务接口
+ *
+ * @author hgw
+ * @since 2022-05-17 20:56:22
+ */
+public interface TempLittleArtistTrainingCampService extends IService<TempLittleArtistTrainingCamp> {
+
+    TempLittleArtistTrainingCampDao getDao();
+
+    /**
+     * 新建训练营
+     */
+    void add(TempLittleArtistTrainingCampDto dto);
+
+    /**
+     * 修改训练营
+     */
+    void update(TempLittleArtistTrainingCampDto dto);
+
+    /**
+     * 删除训练营
+     */
+    void delete(Integer id);
+
+    /**
+     * 分页查询-训练营列表
+     *
+     * @param param 条件
+     *              <p> - row 条数
+     *              <p> - page 页数
+     *              <p> - name 训练营标题-模糊搜索
+     *              <p> - state 筹备中 READY,报名中 APPLY,未开始 NOT_START,进行中 ING,已结束 END
+     *              <p> - applyStartDate 申请报名登记开始日期-年月日
+     *              <p> - applyEndDate 申请报名登记结束日期-年月日
+     *              <p> - trainStartDate 训练开始日期-年月日
+     *              <p> - trainEndDate 训练结束日期-年月日
+     */
+    PageInfo<TempLittleArtistTrainingCamp> queryPageTrainingCamp(Map<String, Object> param);
+
+    /**
+     * 参与名单
+     *
+     * @param param 条件
+     *              <p> - row 条数
+     *              <p> - page 页数
+     *              <p> - state 状态:未报名NOT_APPLY ,已报名 APPLY
+     *              <p> - search 学员姓名/手机号/编号
+     */
+    PageInfo<TempCampUserVo> queryPageTrainingCampUser(Map<String, Object> param);
+
+    /**
+     * 查询指定学生-训练营每日训练时长
+     *
+     * @param param 参数
+     *              <p> - userId 用户id
+     */
+    List<TempUserTrainingTimeDetailVo> queryUserTrainingTime(Map<String, Object> param);
+
+    /**
+     * 分页查询-训练营详情
+     *
+     * @param param 条件
+     *              <p> - row 条数
+     *              <p> - page 页数
+     *              <p> - imGroupId  所在群组Id
+     *              <p> - search 学员姓名/手机号/编号
+     */
+    PageInfo<TempCampUserTrainingDetailVo> queryUserTrainingDetail(Map<String, Object> param);
+
+    /**
+     * 根据群组Id查询群组信息
+     *
+     * @param imGroupIds 群组id,多个用逗号隔开
+     */
+    List<ImGroup> queryCampImGroup(String imGroupIds);
+
+    /**
+     * 查询训练营周期表
+     *
+     * @return result:
+     * <p>user 学员信息
+     * <p>campList 训练营信息
+     */
+    Map<String, Object> queryCampCycle();
+
+    /**
+     * 定时任务-修改训练营状态
+     */
+    void checkCampState();
+
+    void studentGrouping(Date now);
+
+    /**
+     * 每天早上8点执行-提醒当天开启训练营并已分群的用户开始训练
+     * <p>您已加入小小艺术家训练营{群组标题},及时查看群聊消息完成老师布置的任务哦
+     */
+    void pushStartTrain();
+
+    /**
+     * 云教练训练是否达标
+     */
+    TempCampUserTrainingPlayTimeVo queryUserTrainingPlayTime();
+
+    /**
+     * 导出小小训练营想详情
+     */
+    void exportUserTrainingDetail(Map<String, Object> param, HttpServletResponse response) throws IOException;
+}
+
+

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TempLittleArtistTrainingCampUserRelationService.java

@@ -0,0 +1,30 @@
+package com.ym.mec.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.dao.TempLittleArtistTrainingCampUserRelationDao;
+import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCampUserRelation;
+import com.ym.mec.biz.dal.vo.TempCampUserQualificationsVo;
+
+/**
+ * 训练营与学生关系表(TempLittleArtistTrainingCampUserRelation)表服务接口
+ *
+ * @author hgw
+ * @since 2022-05-18 15:48:00
+ */
+public interface TempLittleArtistTrainingCampUserRelationService extends IService<TempLittleArtistTrainingCampUserRelation> {
+
+    TempLittleArtistTrainingCampUserRelationDao getDao();
+
+    /**
+     * 参与训练营
+     *
+     * @param campId 训练营id
+     */
+    void add(Integer campId);
+
+    /**
+     * 查询当前登录学生有没有资格参加训练营
+     */
+    TempCampUserQualificationsVo checkCampQualifications();
+}
+

+ 42 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ActivityUserMapperServiceImpl.java

@@ -1,12 +1,10 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.ActivityQueryDto;
-import com.ym.mec.biz.dal.dto.ActivityStudentAdjustDto;
-import com.ym.mec.biz.dal.dto.ActivityStudentDto;
-import com.ym.mec.biz.dal.dto.ActivityUserMapperAddDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.ReturnFeeEnum;
@@ -19,15 +17,14 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.enums.GroupType.*;
@@ -49,6 +46,10 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 	private SysUserCashAccountLogService sysUserCashAccountLogService;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private SysConfigDao sysConfigDao;
+	@Autowired
+	private SubjectDao subjectDao;
 
 	@Override
 	public BaseDAO<Integer, ActivityUserMapper> getDAO() {
@@ -265,4 +266,37 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 		}
 		activityUserMapperDao.batchInsert(activityUserMapperList);
     }
+
+    @Override
+    public Map<String,Object> getStudentNoMapperInfo() {
+		HashMap<String, Object> map = new HashMap<>();
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		map.put("userId",sysUser.getId());
+		map.put("username",sysUser.getUsername());
+		map.put("avatar",sysUser.getAvatar());
+		Student student = studentDao.get(sysUser.getId());
+		if(StringUtils.isNotEmpty(student.getSubjectIdList())){
+			Subject subject = subjectDao.get(Integer.parseInt(student.getSubjectIdList()));
+			if (subject != null) {
+				map.put("subjectName",subject.getName());
+			}
+		}
+		String activeConfig = sysConfigDao.findConfigValue("cloud_teacher_active_config");
+		List<Cloud2022ActivityDto> cloud2022ActivityDtos = JSONArray.parseArray(activeConfig, Cloud2022ActivityDto.class);
+		List<Cloud2022ActivityDto> activityDtos = cloud2022ActivityDtos.stream().filter(e -> e.getOrganId().contains(sysUser.getOrganId().toString())).collect(Collectors.toList());
+		if(CollectionUtils.isEmpty(activityDtos)){
+			map.put("courseNum",0);
+			return map;
+		}
+		//是否还有购买资格
+		Integer activityId = Integer.parseInt(activityDtos.get(0).getActivityId());
+		Integer noCourseNum = activityUserMapperDao.getStudentNoMapperInfo(sysUser.getId(), activityId);
+		map.put("courseNum",noCourseNum == null?0:noCourseNum);
+		return map;
+    }
+
+	@Override
+	public Integer getStudentNoCourseNum(Integer userId, Integer activityId) {
+		return activityUserMapperDao.getStudentNoMapperInfo(userId, activityId);
+	}
 }

+ 16 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
@@ -41,7 +40,6 @@ import java.math.BigDecimal;
 import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
-import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType.*;
@@ -301,8 +299,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     userRoleMap.put(teacherId, "指导老师");
                 }
             }
-            imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), musicGroup.getName(), musicGroup.getName(), musicGroup.getName(), null, "MUSIC");
-            imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+            imGroupService.create(classGroup.getId().toString(), null, classGroup.getName(), musicGroup.getName(), musicGroup.getName(), musicGroup.getName(), null, "MUSIC");
+            imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
         }
         return true;
     }
@@ -1178,7 +1176,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
 
         //5、加入班级群组
-        imGroupMemberService.join(classGroup.getId().longValue(), userId, null, false);
+        imGroupMemberService.join(classGroup.getId().toString(), userId, null, false);
 
         return classGroup;
     }
@@ -1384,7 +1382,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             }
 
             // 5、加入班级群组
-            imGroupMemberService.join(classGroup.getId().longValue(), studentId, null, false);
+            imGroupMemberService.join(classGroup.getId().toString(), studentId, null, false);
 
         }
 
@@ -1445,7 +1443,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //删除班级
         classGroupDao.delete(classGroupId);
         //删除im群组
-        imGroupService.cancel(classGroupId.longValue());
+        imGroupService.cancel(classGroupId.toString());
     }
 
     @Override
@@ -1470,7 +1468,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //删除合奏班
         classGroupDao.delete(classGroupId);
         //删除im群组
-        imGroupService.cancel(classGroupId.longValue());
+        imGroupService.cancel(classGroupId.toString());
     }
 
     @Override
@@ -2396,17 +2394,17 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if (byClassGroup != null && byClassGroup.size() > 0) {
                     ClassGroupTeacherMapper groupTeacherMapper = byClassGroup.stream().filter(classGroupTeacherMapper -> classGroupTeacherMapper.getTeacherRole() == TeachTypeEnum.BISHOP).findFirst().get();
                     if (groupTeacherMapper != null) {
-                        imGroupMemberService.quit(classGroupId.longValue(), groupTeacherMapper.getUserId());
+                        imGroupMemberService.quit(classGroupId.toString(), groupTeacherMapper.getUserId());
                     }
                 }
                 if (newTeacherMapperList.size() > 0) {
                     //获取之前的班级老师
                     Set<Integer> groupTeacher = classGroupDao.findGroupTeacher(classGroupId);
                     groupTeacher.forEach(e -> {
-                        imGroupMemberService.quit(classGroupId.longValue(), e);
+                        imGroupMemberService.quit(classGroupId.toString(), e);
                     });
                     newTeacherMapperList.forEach(e -> {
-                        imGroupMemberService.join(classGroupId.longValue(), e.getUserId(), "指导老师", false);
+                        imGroupMemberService.join(classGroupId.toString(), e.getUserId(), "指导老师", false);
                     });
                 }
             }
@@ -3413,8 +3411,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int batchUpdateLockByClassGroupIds(List<Integer> classGroupIds, int lockFlag) {
-        return classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds,lockFlag);
+    public void batchUpdateLockByClassGroupIds(List<Integer> classGroupIds, int lockFlag) {
+        classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds, lockFlag);
     }
 
     @Override
@@ -3429,7 +3427,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             throw new BizException("请填写班级名称");
         }
         classGroupDao.update(classGroup);
-        ImGroup imGroup = imGroupService.get(classGroup.getId().longValue());
+        ImGroup imGroup = imGroupService.get(classGroup.getId().toString());
         if(!Objects.isNull(imGroup)){
             imGroup.setName(groupName);
             imGroupService.update(imGroup);
@@ -3747,8 +3745,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             }
         }
 
-        imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), musicGroup.getName(), musicGroup.getName(), musicGroup.getName(), null, "MUSIC");
-        imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+        imGroupService.create(classGroup.getId().toString(), null, classGroup.getName(), musicGroup.getName(), musicGroup.getName(), musicGroup.getName(), null, "MUSIC");
+        imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
         imUserFriendService.refreshClassImUserFriend(classGroup.getId());
         return true;
     }
@@ -4240,7 +4238,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     for (Integer integer : integers) {
                         List<Integer> collect = Arrays.asList(classGroupStudent.get(integer).split(",")).stream().map(e -> Integer.parseInt(e)).collect(Collectors.toList());
                         //学员退出群聊
-                        imGroupMemberService.quit(integer.longValue(), collect);
+                        imGroupMemberService.quit(integer.toString(), collect);
                         classGroupStudentMapperDao.deleteByClassGroupIdAndStudents(integer, classGroupStudent.get(integer));
                     }
                 }
@@ -4746,7 +4744,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 for (Integer integer : integers) {
                     List<Integer> collect = Arrays.asList(classGroupStudent.get(integer).split(",")).stream().map(e -> Integer.parseInt(e)).collect(Collectors.toList());
                     //学员退出群聊
-                    imGroupMemberService.quit(integer.longValue(), collect);
+                    imGroupMemberService.quit(integer.toString(), collect);
                     classGroupIds.add(integer);
                     classGroupStudentMapperDao.deleteByClassGroupIdAndStudents(integer, classGroupStudent.get(integer));
                 }

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

@@ -233,7 +233,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 //        }
 
         //5、学生退出班级群组
-        imGroupMemberService.quit(classGroup.getId().longValue(), userId);
+        imGroupMemberService.quit(classGroup.getId().toString(), userId);
         return true;
     }
 
@@ -431,7 +431,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         }
 
         //5、添加进IM群组
-        imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+        imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
 
         return true;
     }
@@ -564,7 +564,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
                         userRoleMap.put(addStudentId, "");
                     }
                     //5、添加进IM群组
-                    imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+                    imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
                 }
             }
             if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
@@ -586,7 +586,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
             courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, new ArrayList<>(removeStudentIds));
             if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
                 //5、学生退出班级群组
-                imGroupMemberService.quit(classGroup.getId().longValue(), new ArrayList<Integer>(addStudentIds));
+                imGroupMemberService.quit(classGroup.getId().toString(), new ArrayList<Integer>(addStudentIds));
             }
         }
 
@@ -599,7 +599,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
                     userRoleMap.put(addStudentId, "");
                 }
                 //5、添加进IM群组
-                imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+                imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
             }
         }
 
@@ -718,7 +718,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         for (Integer studentId : studentIds) {
         	userRoleMap.put(studentId, null);
         }
-        imGroupMemberService.join(classGroupId.longValue(), userRoleMap);
+        imGroupMemberService.join(classGroupId.toString(), userRoleMap);
         imUserFriendService.refreshClassImUserFriend(classGroupId.intValue());
     }
 }

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -74,7 +74,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 userIdList.add(classGroupTeacherMapper.getUserId());
             }
             if (userIdList.size() > 0) {
-                imGroupMemberService.quit(classGroup.getId().longValue(), userIdList);
+                imGroupMemberService.quit(classGroup.getId().toString(), userIdList);
             }
             // 新设置的老师加入群组
             userIdList.clear();
@@ -89,7 +89,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
             	for(Integer userId : userIdList){
             		userRoleMap.put(userId, "指导老师");
             	}
-                imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+                imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
             }
         }
         classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
@@ -118,7 +118,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 oldTeacher.add(classGroupTeacherMapper.getClassGroupId() + classGroupTeacherMapper.getTeacherRole().getCode() + classGroupTeacherMapper.getUserId());
             }
             if (userIdList.size() > 0) {
-                imGroupMemberService.quit(classGroup.getId().longValue(), userIdList);
+                imGroupMemberService.quit(classGroup.getId().toString(), userIdList);
             }
             // 新设置的老师加入群组
             userIdList.clear();
@@ -134,7 +134,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
             	for(Integer userId : userIdList){
             		userRoleMap.put(userId, "指导老师");
             	}
-                imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+                imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
             }
         }
         classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);

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

@@ -258,6 +258,11 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         }
     }
 
+    @Override
+    public CloudTeacherOrder queryByOrderId(Long orderId) {
+        return cloudTeacherOrderDao.queryByOrderId(orderId);
+    }
+
     public Boolean payCheck(String orderNo) {
         TenantOrderRecord record = tenantOrderRecordService.getOne(new QueryWrapper<TenantOrderRecord>().eq("order_no_", orderNo));
         return record.getOrderState() == 1;
@@ -287,7 +292,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         Date startTime = DateUtil.trunc(now);
         Date endTime = this.calcCloudTeacherOrderTime(cloudTeacherOrder, startTime, now);
         cloudTeacherOrder.setStartTime(startTime);
-        cloudTeacherOrder.setEndTime(endTime);
+        cloudTeacherOrder.setEndTime(DateUtil.addDays(endTime,1));
         cloudTeacherOrder.setStatus(2);
         if(Objects.isNull(cloudTeacherOrder.getId())){
             cloudTeacherOrderDao.insert(cloudTeacherOrder);

+ 17 - 32
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CooperationOrganServiceImpl.java

@@ -1,34 +1,19 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.CooperationOrganDao;
-import com.ym.mec.biz.dal.dao.CooperationOrganLinkmanDao;
-import com.ym.mec.biz.dal.dao.EmployeeDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.CooperationOrgan;
-import com.ym.mec.biz.dal.entity.CooperationOrganLinkman;
-import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.entity.ImGroup;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.service.CooperationOrganService;
 import com.ym.mec.biz.service.ImGroupMemberService;
 import com.ym.mec.biz.service.ImGroupService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
 
 @Service
 public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, CooperationOrgan>  implements CooperationOrganService {
@@ -107,9 +92,9 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 					Integer educationalTeacherId = musicGroup.getEducationalTeacherId();
 					classGroups.forEach(e -> {
 						if(educationalTeacherId != null){
-							imGroupMemberService.quit(e.getId().longValue(), educationalTeacherId);
+							imGroupMemberService.quit(e.getId().toString(), educationalTeacherId);
 						}
-						imGroupMemberService.join(e.getId().longValue(),"乐团主管",false,null,sysUser);
+						imGroupMemberService.join(e.getId().toString(),"乐团主管",false,null,sysUser);
 					});
 				}
 			}
@@ -120,10 +105,10 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 					//不是导入的乐团
 					if(musicGroup.getId().length() > 10){
 						//是否有预报名的群聊
-						ImGroup imGroup = imGroupService.get(Long.parseLong(musicGroup.getId()));
+						ImGroup imGroup = imGroupService.get(musicGroup.getId());
 						if(imGroup != null){
-							imGroupMemberService.quit(Long.parseLong(musicGroup.getId()),musicGroup.getEducationalTeacherId());
-							imGroupMemberService.join(Long.parseLong(musicGroup.getId()),"乐团主管",false,imGroup,sysUser);
+							imGroupMemberService.quit(musicGroup.getId(),musicGroup.getEducationalTeacherId());
+							imGroupMemberService.join(musicGroup.getId(),"乐团主管",false,imGroup,sysUser);
 						}
 					}
 				}
@@ -168,9 +153,9 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 							userRoleMap.put(cooperationOrgan.getEducationUserId(), "乐团主管");
 							classGroups.forEach(e -> {
 								if(educationalTeacherId != null){
-									imGroupMemberService.quit(e.getId().longValue(), quitUserIdList);
+									imGroupMemberService.quit(e.getId().toString(), quitUserIdList);
 								}
-								imGroupMemberService.join(e.getId().longValue(), userRoleMap);
+								imGroupMemberService.join(e.getId().toString(), userRoleMap);
 							});
 						}
 					}
@@ -181,10 +166,10 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 							//不是导入的乐团
 							if(musicGroup.getId().length() > 10){
 								//是否有预报名的群聊
-								ImGroup imGroup = imGroupService.get(Long.parseLong(musicGroup.getId()));
+								ImGroup imGroup = imGroupService.get(musicGroup.getId());
 								if(imGroup != null){
-									imGroupMemberService.quit(Long.parseLong(musicGroup.getId()),musicGroup.getEducationalTeacherId());
-									imGroupMemberService.join(Long.parseLong(musicGroup.getId()),cooperationOrgan.getEducationUserId(),"乐团主管",false);
+									imGroupMemberService.quit(musicGroup.getId(),musicGroup.getEducationalTeacherId());
+									imGroupMemberService.join(musicGroup.getId(),cooperationOrgan.getEducationUserId(),"乐团主管",false);
 								}
 							}
 						}

+ 13 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1072,6 +1072,17 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	@Override
     @Transactional(rollbackFor = Exception.class)
+    public void batchAddCourseSchedule1(List<CourseSchedule> courseSchedules) {
+        if (Objects.isNull(courseSchedules) && courseSchedules.size() <= 0) {
+            throw new BizException("参数错误!");
+        }
+//        checkNewCourseSchedules(courseSchedules, false,false);
+        createCourseScheduleName(courseSchedules);
+        courseScheduleDao.batchAddCourseSchedules(courseSchedules);
+    }
+
+	@Override
+    @Transactional(rollbackFor = Exception.class)
     public void batchAddCourseSchedule(List<CourseSchedule> courseSchedules) {
         if (Objects.isNull(courseSchedules) && courseSchedules.size() <= 0) {
             throw new BizException("参数错误!");
@@ -5350,8 +5361,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			ImGroupMember[] oldImGroupMembers = {new ImGroupMember(oldTeacherId.toString())};
 			ImGroupMember[] imGroupMembers = {new ImGroupMember(newTeacherId.toString())};
 			for (ClassGroup classGroup:classGroupList) {
-				imGroupMemberService.quit(classGroup.getId().longValue(), oldTeacherId);
-				imGroupMemberService.join(classGroup.getId().longValue(), newTeacherId, "指导老师", false);
+				imGroupMemberService.quit(classGroup.getId().toString(), oldTeacherId);
+				imGroupMemberService.join(classGroup.getId().toString(), newTeacherId, "指导老师", false);
 			}
 		}
 	}

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java

@@ -257,10 +257,10 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
         teacherAttendanceDao.batchInsert(teacherAttendances);
         //创建群聊
-        imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), courseGroup.getName(), courseGroup.getName(), courseGroup.getName(), null, "COMM");
+        imGroupService.create(classGroup.getId().toString(), null, classGroup.getName(), courseGroup.getName(), courseGroup.getName(), courseGroup.getName(), null, "COMM");
         Map<Integer,String> userRoleMap = new HashMap(1);
         userRoleMap.put(courseGroup.getTeacherId(),"指导老师");
-        imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+        imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
         return BaseController.succeed();
     }
 
@@ -754,8 +754,8 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         userRoleMap.put(coursesGroup.getTeacherId(), "");
         userRoleMap.put(order.getUserId(), "");
         
-        imGroupService.create(classGroup.getId().longValue(), coursesGroup.getTeacherId(), classGroup.getName(), classGroup.getName(), classGroup.getName(), classGroup.getName(), null, "COMM");
-        imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+        imGroupService.create(classGroup.getId().toString(), coursesGroup.getTeacherId(), classGroup.getName(), classGroup.getName(), classGroup.getName(), classGroup.getName(), null, "COMM");
+        imGroupMemberService.join(classGroup.getId().toString(), userRoleMap);
         imUserFriendService.refreshClassImUserFriend(classGroup.getId());
         return BaseController.succeed();
     }

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

@@ -418,7 +418,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
                 String userId = imGroupModel.getMemberList().get(0).getId();
                 com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
                 imGroupMember.setCreateTime(date);
-                imGroupMember.setImGroupId(Long.parseLong(imGroupModel.getId()));
+                imGroupMember.setImGroupId(imGroupModel.getId());
                 imGroupMember.setIsAdmin(false);
                 imGroupMember.setRoleType(imGroupModel.getUserRole());
                 imGroupMember.setUpdateTime(date);
@@ -441,7 +441,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
             List<GroupModel> groupModelList = new ArrayList<>();
             for (ImGroupModel imGroupModel : groupModels) {
                 com.ym.mec.biz.dal.entity.ImGroupMember imGroupMember = new com.ym.mec.biz.dal.entity.ImGroupMember();
-                imGroupMember.setImGroupId(Long.parseLong(imGroupModel.getId()));
+                imGroupMember.setImGroupId(imGroupModel.getId());
                 imGroupMember.setUserId(Integer.parseInt(imGroupModel.getMemberList().get(0).getId()));
                 imGroupMemberList.add(imGroupMember);
 

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

@@ -1402,10 +1402,8 @@ public class ExportServiceImpl implements ExportService {
             } catch (Exception e) {
                 e.printStackTrace();
             }
-        },executor);
-        HttpResponseResult<Object> succeed = BaseController.succeed();
-        succeed.setMsg(managerDownload.getName() + "导出申请已提交,请到【报表中心-下载列表查看】");
-        return succeed;
+        }, executor);
+        return BaseController.succeed(managerDownload.getName() + "导出申请已提交,请到【报表中心-下载列表查看】");
     }
 
     //学员小课记录导出
@@ -2313,7 +2311,6 @@ public class ExportServiceImpl implements ExportService {
     @Override
     public void routeOrderList(Map<String, Object> params, ManagerDownload managerDownload,List<String> headColumns) throws Exception {
         List<StudentPaymentOrderExportDto> studentPaymentOrderExportDtos = studentPaymentRouteOrderDao.ExportQueryPage(params);
-
         Map<Integer, String> cooperationOrganMap = new HashMap<>();
         List<Integer> cooperationOrganIds = studentPaymentOrderExportDtos.stream()
                 .filter(e -> OUTORDER.equals(e.getType()))

+ 22 - 43
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java

@@ -1,55 +1,16 @@
 package com.ym.mec.biz.service.impl;
 
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Collectors;
-
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.page.GoodsQuery;
-import com.ym.mec.biz.dal.page.GoodsQueryInfo;
-import com.ym.mec.biz.service.*;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.util.collection.MapUtil;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.usermodel.PictureData;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.multipart.MultipartFile;
-
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.GoodsSellDto;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.GoodsProcurement;
 import com.ym.mec.biz.dal.entity.SellOrder;
-import com.ym.mec.biz.dal.enums.AccountType;
-import com.ym.mec.biz.dal.enums.GoodsType;
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
-import com.ym.mec.biz.dal.enums.SellStatus;
-import com.ym.mec.biz.dal.enums.StockType;
-import com.ym.mec.biz.dal.enums.TemplateTypeEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.page.GoodsQuery;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.UploadReturnBean;
 import com.ym.mec.common.exception.BizException;
@@ -59,6 +20,24 @@ import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.excel.POIUtil;
 import com.ym.mec.util.ini.IniFileUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.PictureData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 @Service
 public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implements GoodsService {

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

@@ -513,7 +513,7 @@ public class GroupClassServiceImpl implements GroupClassService {
                 classGroupDao.update(giveClassGroup);
 
                 //学员退出班级群
-                imGroupMemberService.quit(giveClassGroup.getId().longValue(), studentId);
+                imGroupMemberService.quit(giveClassGroup.getId().toString(), studentId);
             }
             if((masterGroup && activityUserMapper.getGivePracticeFlag() == 2) || (!masterGroup && activityUserMapper.getPracticeFlag() == 2)){
                 Long givePracticeGroupId = activityUserMapper.getGivePracticeGroupId();

+ 17 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

@@ -15,7 +15,6 @@ import com.ym.mec.im.entity.GroupModel;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -52,14 +51,15 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		return imGroupMemberDao;
 	}
 
-	public ImGroup joinGroup(Long imGroupId, Integer userId, String roleType, boolean isAdmin,Map<Integer,String> userRoleMap){
-		ClassGroup classGroup = classGroupDao.get(imGroupId.intValue());
+	public ImGroup joinGroup(String imGroupId, Integer userId, String roleType, boolean isAdmin,Map<Integer,String> userRoleMap){
+		int groupId = Integer.parseInt(imGroupId);
+		ClassGroup classGroup = classGroupDao.get(groupId);
 		String tags = classGroup.getName();
 		//相关用户加入群组
 		//获取班级关联的老师列表
-		Set<Integer> teacherIds = classGroupTeacherMapperDao.queryTeacherIdsByClassGroupId(imGroupId.intValue(),null,null);
+		Set<Integer> teacherIds = classGroupTeacherMapperDao.queryTeacherIdsByClassGroupId(groupId,null,null);
 		//获取班级关联的学员列表
-		Set<Integer> studentIds = classGroupStudentMapperDao.queryStudentIdsByClassGroupId(imGroupId.intValue(),null,null);
+		Set<Integer> studentIds = classGroupStudentMapperDao.queryStudentIdsByClassGroupId(groupId,null,null);
 		if(studentIds != null && studentIds.size() > 0){
 			for(Integer studentId : studentIds){
 				userRoleMap.put(studentId, null);
@@ -110,7 +110,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean join(Long imGroupId, Integer userId, String roleType, boolean isAdmin) {
+	public boolean join(String imGroupId, Integer userId, String roleType, boolean isAdmin) {
 		ImGroup imGroup = imGroupDao.getLocked(imGroupId);
 		if (imGroup == null) {
 			joinGroup(imGroupId,userId,roleType,isAdmin,new HashMap<>());
@@ -153,7 +153,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean join(Long imGroupId,String roleType, boolean isAdmin,ImGroup imGroup,SysUser user) {
+	public boolean join(String imGroupId,String roleType, boolean isAdmin,ImGroup imGroup,SysUser user) {
 		if (imGroup == null) {
 			imGroup = imGroupDao.getLocked(imGroupId);
 		}
@@ -198,7 +198,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean join(Long imGroupId, Map<Integer, String> userRoleMap) {
+	public boolean join(String imGroupId, Map<Integer, String> userRoleMap) {
 		ImGroup imGroup = imGroupDao.getLocked(imGroupId);
 		if (imGroup == null) {
 			joinGroup(imGroupId,null,null,false,userRoleMap);
@@ -268,7 +268,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean quit(Long imGroupId, Integer userId) {
+	public boolean quit(String imGroupId, Integer userId) {
 		List<Integer> userIdList = new ArrayList<Integer>();
 		userIdList.add(userId);
 
@@ -277,8 +277,8 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean quit(List<Long> imGroupIdList, Integer userId) {
-		for (Long imGroupId : imGroupIdList) {
+	public boolean quit(List<String> imGroupIdList, Integer userId) {
+		for (String imGroupId : imGroupIdList) {
 			quit(imGroupId, userId);
 		}
 		return true;
@@ -286,7 +286,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean quit(Long imGroupId, List<Integer> userIdList) {
+	public boolean quit(String imGroupId, List<Integer> userIdList) {
 
 		ImGroup imGroup = imGroupDao.getLocked(imGroupId);
 		if (imGroup == null) {
@@ -318,7 +318,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 	}
 
 	@Override
-	public boolean updateRoleType(Long imGroupId, Integer userId, String roleType) {
+	public boolean updateRoleType(String imGroupId, Integer userId, String roleType) {
 		List<Integer> userIdList = new ArrayList<Integer>();
 		userIdList.add(userId);
 		List<ImGroupMember> imGroupMemberList = imGroupMemberDao.queryByImGroupIdAndUserId(imGroupId.toString(), userIdList.stream().map(Objects::toString)
@@ -363,4 +363,8 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		imGroupMemberDao.delRepeat();
 	}
 
+	@Override
+	public List<ImGroupMember> queryMembers(String groupId, List<String> userIdList, Integer tenantId) {
+		return imGroupMemberDao.queryMembers(groupId, userIdList, tenantId);
+	}
 }

Some files were not shown because too many files changed in this diff