Browse Source

Merge remote-tracking branch 'origin/master_saas' into master_saas

# Conflicts:
#	.idea/httpRequests/http-requests-log.http
zouxuan 2 năm trước cách đây
mục cha
commit
e7b840b48f
23 tập tin đã thay đổi với 658 bổ sung200 xóa
  1. 451 129
      .idea/httpRequests/http-requests-log.http
  2. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupCategoryDao.java
  3. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDefaultClassesUnitPriceDao.java
  4. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  5. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  6. 12 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupCategory.java
  7. 12 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupDefaultClassesUnitPrice.java
  8. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/CouponDetailTypeEnum.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupCategoryService.java
  10. 2 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupCategoryServiceImpl.java
  11. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupDefaultClassesUnitPriceServiceImpl.java
  12. 17 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  13. 10 3
      mec-biz/src/main/resources/config/mybatis/VipGroupCategoryMapper.xml
  14. 30 24
      mec-biz/src/main/resources/config/mybatis/VipGroupDefaultClassesUnitPriceMapper.xml
  15. 9 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ActivityUserMapperController.java
  16. 8 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java
  17. 12 7
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupCategoryController.java
  18. 17 6
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupCategoryController.java
  19. 22 1
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupDefaultClassesUnitPriceController.java
  20. 9 1
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduActivityUserMapperController.java
  21. 9 8
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduVipGroupCategoryController.java
  22. 11 1
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduVipGroupManageController.java
  23. 2 2
      mec-websocket/src/main/java/com/ym/mec/web/handler/WhiteboardHandler.java

+ 451 - 129
.idea/httpRequests/http-requests-log.http

@@ -1,131 +1,3 @@
-POST http://127.0.0.1:8005/open/school/staffSave
-Content-Type: application/json
-coopId: 19
-tenantId: 1
-Content-Length: 129
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{
-  "schoolId": 3,
-  "userType": "ORCHESTRA_LEADER",
-  "username": "测试113",
-  "mobile": "19900990114",
-  "smsCode" : 666666
-}
-
-<> 2023-05-29T183339.200.json
-
-###
-
-GET http://127.0.0.1:8005/imGroup/queryGroupMemberList?imGroupId=62
-Content-Type: application/json
-Authorization: bearer 9e3a8ca3-b369-485a-aae0-5cdf17d46e61
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-<> 2023-05-29T182845.200.json
-
-###
-
-POST http://127.0.0.1:8005/coursePatrolEvaluation/pageStat
-Authorization: bearer 9e3a8ca3-b369-485a-aae0-5cdf17d46e61
-Content-Type: application/json
-coopId: 12
-Content-Length: 58
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{
-  "startTime": "2023-01-01",
-  "endTime": "2024-04-04"
-}
-
-<> 2023-05-29T182738.200.json
-
-###
-
-POST http://127.0.0.1:8005/coursePatrolEvaluation/pageStat
-Authorization: bearer 703c9711-ca6d-45c3-9583-34d7b9d86705
-Content-Type: application/json
-coopId: 12
-Content-Length: 58
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{
-  "startTime": "2023-01-01",
-  "endTime": "2024-04-04"
-}
-
-<> 2023-05-29T182713.200.json
-
-###
-
-GET http://127.0.0.1:8005/schoolStaff/cooperation
-Authorization: bearer 66862b1d-938b-467e-b7c9-65f77f0e7347
-tenantId: 1
-coopId: 14
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-<> 2023-05-25T181738.200.json
-
-###
-
-GET http://127.0.0.1:8005/schoolStaff/cooperation
-Authorization: bearer 66862b1d-938b-467e-b7c9-65f77f0e7347
-tenantId: 1
-coopId: 14
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-<> 2023-05-25T181606.200.json
-
-###
-
-GET http://127.0.0.1:8005/schoolStaff/cooperation
-Authorization: bearer 66862b1d-938b-467e-b7c9-65f77f0e7347
-tenantId: 1
-coopId: 14
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-<> 2023-05-25T180935.200.json
-
-###
-
-GET http://127.0.0.1:8005/schoolStaff/cooperation
-Authorization: bearer 66862b1d-938b-467e-b7c9-65f77f0e7347
-tenantId: 1
-coopId: 14
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-<> 2023-05-25T180923.200.json
-
-###
-
-GET http://127.0.0.1:8005/schoolStaff/cooperation
-Authorization: bearer 3f804d4e-b7f0-41ad-8dbf-119a0c54becc
-tenantId: 1
-coopId: 1
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-<> 2023-05-25T180355.200.json
-
-###
-
 POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
 Authorization: bearer 07bef4ad-6d9e-46e0-8fd3-c24a2fd11332
 Content-Type: application/json
@@ -500,7 +372,7 @@ Connection: Keep-Alive
 User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
 Accept-Encoding: br,deflate,gzip,x-gzip
 
-<> 2023-05-19T170850.200.json
+<> 2023-05-18T145937.200.json
 
 ###
 
@@ -629,3 +501,453 @@ Accept-Encoding: br,deflate,gzip,x-gzip
 
 ###
 
+POST http://127.0.0.1:8005/imLiveBroadcastRoomMember/queryRoomMember
+Content-Type: application/json
+Authorization: bearer 70c30cec-f77c-4871-beaa-ce4b5224bf3e
+Content-Length: 59
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{"rows":10,"page":1,"roomUid":"LIVE-2248475-1683777517444"}
+
+<> 2023-05-12T184412.200.json
+
+###
+
+POST http://127.0.0.1:8005/imLiveBroadcastRoomMember/queryRoomMember
+Content-Type: application/json
+Authorization: bearer 70c30cec-f77c-4871-beaa-ce4b5224bf3e
+Content-Length: 59
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{"rows":10,"page":1,"roomUid":"LIVE-2248475-1683777517444"}
+
+<> 2023-05-12T183529.200.json
+
+###
+
+POST http://127.0.0.1:8005/imLiveBroadcastRoomMember/queryRoomMember
+Content-Type: application/json
+Authorization: bearer 70c30cec-f77c-4871-beaa-ce4b5224bf3e
+Content-Length: 59
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{"rows":10,"page":1,"roomUid":"LIVE-2248475-1683777517444"}
+
+<> 2023-05-12T183456.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorRoomInfo?roomUid=LIVE-2248475-1683777517444&userId=10001
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T204659.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111112
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T204644.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorJoinRoom?roomUid=LIVE-2248475-1683777517444&userId=10000
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T204620.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorRoomInfo?roomUid=LIVE-2248475-1683777517444&userId=10000
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T204529.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111111
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T204510.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111112
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T203037.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111111
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T203024.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111111
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T203016.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111111
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T202954.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111111
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T202704.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111111
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T202141.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111111
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T202117.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorJoinRoom?roomUid=LIVE-2248475-1683777517444&userId=10000
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T201906.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorRoomInfo?roomUid=LIVE-2248475-1683777517444&userId=10000
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T201829.200.json
+
+###
+
+GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorCredentials?roomUid=LIVE-2248475-1683777517444&fingerprint=111111111
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-11T201306.200.json
+
+###
+
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+Content-Length: 127
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 3,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "李四",
+  "mobile": "18682475902",
+  "smsCode": "666666"
+}
+
+<> 2023-05-10T212648.200.json
+
+###
+
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+Content-Length: 104
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 3,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "李四",
+  "mobile": "18682475902"
+}
+
+<> 2023-05-10T212627.200.json
+
+###
+
+GET http://127.0.0.1:8005/schoolStaff/cooperation
+Authorization: bearer ae333169-e0f2-4fc3-adc1-08048fd77196
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T202004.200.json
+
+###
+
+GET http://127.0.0.1:8005/schoolStaff/cooperation
+Authorization: bearer ae333169-e0f2-4fc3-adc1-08048fd77196
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T201748.200.json
+
+###
+
+GET http://127.0.0.1:8005/schoolStaff/cooperation
+Authorization: bearer ae333169-e0f2-4fc3-adc1-08048fd77196
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T201724.200.json
+
+###
+
+POST http://127.0.0.1:8001/smsLogin?clientId=EDUCATION&clientSecret=EDUCATION&deviceNum=&phone=18682475952&smsCode=666666
+Content-Type: application/x-www-form-urlencoded
+Content-Length: 2
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{}
+
+<> 2023-05-10T201707.200.json
+
+###
+
+POST http://127.0.0.1:8001/smsLogin?clientId=EDUCATION&clientSecret=EDUCATION&deviceNum=&phone=18682475901&smsCode=666666
+Content-Type: application/x-www-form-urlencoded
+Content-Length: 2
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{}
+
+<> 2023-05-10T201654.200.json
+
+###
+
+GET http://127.0.0.1:8005/schoolStaff/cooperation
+Authorization: bearer 7d12c468-e8cf-4e81-bc56-a9de18ba8fc5
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T201550.200.json
+
+###
+
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+Content-Length: 104
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 3,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "李四",
+  "mobile": "18682475902"
+}
+
+<> 2023-05-10T155616.200.json
+
+###
+
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+Content-Length: 104
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 3,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "李四",
+  "mobile": "18682475902"
+}
+
+<> 2023-05-10T154304.200.json
+
+###
+
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+Content-Length: 104
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 3,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "李四",
+  "mobile": "18682475902"
+}
+
+<> 2023-05-10T154238.200.json
+
+###
+
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+Content-Length: 104
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 3,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "李四",
+  "mobile": "18682475902"
+}
+
+<> 2023-05-10T154216.200.json
+
+###
+
+GET http://127.0.0.1:8006/news/list?type=29
+Authorization: bearer e50cd2ae-3fad-4b3a-93ce-c86689cae2dc
+tenantid: 1
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T153150.200.json
+
+###
+
+GET http://127.0.0.1:8006/news/list?type=29
+Authorization: bearer e50cd2ae-3fad-4b3a-93ce-c86689cae2dc
+tenantid: 1
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T152508.200.json
+
+###
+
+GET http://127.0.0.1:8006/news/list?type=29
+Authorization: bearer e50cd2ae-3fad-4b3a-93ce-c86689cae2dc
+tenantid: 1
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T152417.200.json
+
+###
+
+GET http://127.0.0.1:8006/news/list?type=29
+Authorization: bearer e50cd2ae-3fad-4b3a-93ce-c86689cae2dc
+tenantid: 1
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T152236.200.json
+
+###
+
+GET http://127.0.0.1:8006/news/list?type=29
+Authorization: bearer e50cd2ae-3fad-4b3a-93ce-c86689cae2dc
+tenantid: 1
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T152033.200.json
+
+###
+
+GET http://127.0.0.1:8006/news/list?type=29
+Authorization: bearer e50cd2ae-3fad-4b3a-93ce-c86689cae2dc
+tenantid: 1
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T151724.200.json
+
+###
+
+GET http://127.0.0.1:8006/news/list?type=29
+Authorization: bearer e50cd2ae-3fad-4b3a-93ce-c86689cae2dc
+tenantid: 1
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T151501.200.json
+
+###
+
+GET http://127.0.0.1:8006/news/list?type=29
+Authorization: bearer e50cd2ae-3fad-4b3a-93ce-c86689cae2dc
+tenantid: 1
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T151443.200.json
+
+###
+
+GET http://127.0.0.1:8006/news/list?type=29
+Authorization: bearer e50cd2ae-3fad-4b3a-93ce-c86689cae2dc
+Proxy-Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-10T151238.200.json
+
+###
+

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

@@ -10,7 +10,7 @@ import java.util.Set;
 
 public interface VipGroupCategoryDao extends BaseDAO<Integer, VipGroupCategory> {
 
-    List<VipGroupCategory> findAllByOrgan(@Param("organId") String organId);
+    List<VipGroupCategory> findAllByOrgan(@Param("organId") String organId, @Param("groupType") String groupType);
 
     List<VipGroupCategory> findTeacherDefaultSalary(Integer userId);
 

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

@@ -23,7 +23,8 @@ public interface VipGroupDefaultClassesUnitPriceDao extends BaseDAO<Integer, Vip
      * @describe 根据vip课类型获取课时收费设置
      */
     VipGroupDefaultClassesUnitPrice getByVipGroupCategory(@Param("vipGroupCategoryId") Integer vipGroupCategoryId,
-                                                          @Param("organId") Integer organId);
+                                                          @Param("organId") Integer organId,
+                                                          @Param("groupType") String groupType);
 
 
     int updateByVipGroupCategory(VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice);

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

@@ -44,7 +44,9 @@ public class CourseSchedule  extends BaseEntity{
         CLASSROOM("CLASSROOM", "课堂课"),
         COMM("COMM", "对外课程"),
         HIGH_ONLINE("HIGH_ONLINE", "线上基础技能课"),
-        MUSIC_NETWORK("MUSIC_NETWORK", "乐团网管课");
+        MUSIC_NETWORK("MUSIC_NETWORK", "乐团网管课"),
+		LIVE("LIVE", "直播课"),
+		;
 
         @EnumValue
 		private String code;

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -23,6 +23,9 @@ public class VipGroup extends BaseEntity {
 	@ApiModelProperty(value = "课程名称",required = false)
 	private String name;
 
+	@ApiModelProperty(value = "课程类型: VIP, LIVE", required = true)
+	private String groupType;
+
 	/**  */
 	@ApiModelProperty(value = "用户编号", required = false)
 	private Integer userId;
@@ -500,4 +503,12 @@ public class VipGroup extends BaseEntity {
 	public void setSubjectName(String subjectName) {
 		this.subjectName = subjectName;
 	}
+
+	public String getGroupType() {
+		return groupType;
+	}
+
+	public void setGroupType(String groupType) {
+		this.groupType = groupType;
+	}
 }

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupCategory.java

@@ -18,6 +18,9 @@ public class VipGroupCategory extends BaseEntity {
 	
 	@ApiModelProperty(value = "名称",required = false)
 	private String name;
+
+	@ApiModelProperty(value = "课程类型: VIP, LIVE", required = true)
+	private String groupType;
 	
 	/**  */
 	private String delFlag;
@@ -122,7 +125,15 @@ public class VipGroupCategory extends BaseEntity {
 	public Integer getStudentNum(){
 		return this.studentNum;
 	}
-			
+
+	public String getGroupType() {
+		return groupType;
+	}
+
+	public void setGroupType(String groupType) {
+		this.groupType = groupType;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupDefaultClassesUnitPrice.java

@@ -27,6 +27,9 @@ public class VipGroupDefaultClassesUnitPrice extends BaseEntity {
 	
 	@ApiModelProperty(value = "线下课单价",required = false)
 	private BigDecimal offlineClassesUnitPrice;
+
+	@ApiModelProperty(value = "课程类型: VIP, LIVE", required = true)
+	private String groupType;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -89,7 +92,15 @@ public class VipGroupDefaultClassesUnitPrice extends BaseEntity {
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
-			
+
+	public String getGroupType() {
+		return groupType;
+	}
+
+	public void setGroupType(String groupType) {
+		this.groupType = groupType;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

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

@@ -39,7 +39,10 @@ public enum CouponDetailTypeEnum {
     //全类都可以使用
     FULLCOUPON("FULLCOUPON", "全类券"),
     // 商城券
-    MALLCOUPON("MALLCOUPON", "商城券");
+    MALLCOUPON("MALLCOUPON", "商城券"),
+    // 直播课
+    LIVE("LIVE", "直播课"),
+    ;
 
     private String code;
 

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

@@ -8,7 +8,7 @@ import java.util.List;
 
 public interface VipGroupCategoryService extends BaseService<Integer, VipGroupCategory> {
 
-    List<VipGroupCategory> findAllByOrgan(String organId);
+    List<VipGroupCategory> findAllByOrgan(String organId, String groupType);
 
     List<VipGroupCategory> findTeacherSalary(Integer userId);
 

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

@@ -3,7 +3,6 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.biz.dal.dao.VipGroupCategoryDao;
 import com.ym.mec.biz.dal.dto.ConditionDto;
 import com.ym.mec.biz.dal.entity.VipGroupCategory;
-import com.ym.mec.biz.service.TenantConfigService;
 import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -26,8 +25,8 @@ public class VipGroupCategoryServiceImpl extends BaseServiceImpl<Integer, VipGro
 	}
 
 	@Override
-	public List<VipGroupCategory> findAllByOrgan(String organId) {
-		return vipGroupCategoryDao.findAllByOrgan(organId);
+	public List<VipGroupCategory> findAllByOrgan(String organId, String groupType) {
+		return vipGroupCategoryDao.findAllByOrgan(organId, groupType);
 	}
 
 	@Override

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

@@ -29,7 +29,8 @@ public class VipGroupDefaultClassesUnitPriceServiceImpl extends BaseServiceImpl<
 		if(Objects.isNull(bean.getOrganId())){
 			throw new BizException("请选择分部");
 		}
-		VipGroupDefaultClassesUnitPrice byVipGroupCategory = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory( bean.getVipGroupCategoryId(),bean.getOrganId());
+		VipGroupDefaultClassesUnitPrice byVipGroupCategory = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(bean.getVipGroupCategoryId(),
+				bean.getOrganId(), bean.getGroupType());
 		if(null!=byVipGroupCategory){
 			return vipGroupDefaultClassesUnitPriceDao.updateByVipGroupCategory(bean);
 		}else{
@@ -39,7 +40,7 @@ public class VipGroupDefaultClassesUnitPriceServiceImpl extends BaseServiceImpl<
 
 	@Override
 	public BigDecimal getAmount(Integer categoryId,Integer organId, BigDecimal courseNum) {
-		VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = Optional.ofNullable(vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(categoryId,organId)).
+		VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = Optional.ofNullable(vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(categoryId,organId, "VIP")).
 				orElseThrow(()->new BizException("课程单价设置错误"));
 		return vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice().multiply(courseNum);
 	}

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

@@ -739,7 +739,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
         vipGroupApplyBaseInfoDto.setPaymentExpireDate(DateUtil.getLastSecondWithDay(vipGroupApplyBaseInfoDto.getPaymentExpireDate()));
 
-        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroup.getVipGroupApplyBaseInfo().getVipGroupCategoryId(), vipGroup.getVipGroupApplyBaseInfo().getOrganId());
+        // 默认VIP课
+        if (StringUtils.isBlank(vipGroup.getVipGroupApplyBaseInfo().getGroupType())) {
+            vipGroup.getVipGroupApplyBaseInfo().setGroupType("VIP");
+        }
+
+        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroup.getVipGroupApplyBaseInfo().getVipGroupCategoryId(),
+                vipGroup.getVipGroupApplyBaseInfo().getOrganId(), vipGroup.getVipGroupApplyBaseInfo().getGroupType());
 
         if (Objects.isNull(vipGroupDefaultClassesUnitPrice)) {
             vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.ING);
@@ -869,7 +875,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         }
 
         if (ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())) {
-            List<VipGroupCategory> vipGroupCategories = vipGroupCategoryService.findAllByOrgan(vipGroup.getVipGroupApplyBaseInfo().getOrganId().toString());
+            List<VipGroupCategory> vipGroupCategories = vipGroupCategoryService.findAllByOrgan(vipGroup.getVipGroupApplyBaseInfo().getOrganId().toString(),
+                    CourseSchedule.CourseScheduleType.VIP.getCode());
             VipGroupCategory vipGroupCategory = vipGroupCategories.stream().filter(v -> v.getName().equals("1v2")).findFirst().get();
             vipGroup.getVipGroupApplyBaseInfo().setVipGroupCategoryId(vipGroupCategory.getId());
         }
@@ -1296,7 +1303,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                 throw new BizException("学员信息异常");
             }
 
-            List<VipGroupCategory> vipGroupCategories = vipGroupCategoryService.findAllByOrgan(student.getOrganId().toString());
+            List<VipGroupCategory> vipGroupCategories = vipGroupCategoryService.findAllByOrgan(student.getOrganId().toString(), CourseSchedule.CourseScheduleType.VIP.getCode());
             VipGroupCategory vipGroupCategory = vipGroupCategories.stream().filter(v -> v.getName().equals(vipGroupCategoryName)).findFirst().get();
 
             List<VipGroupActivity> vipGroupActivities = vipGroupActivityDao.findByName(vipGroupActivityName, TenantContextHolder.getTenantId());
@@ -1896,6 +1903,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         if (Objects.isNull(groupId)) {
             throw new BizException("请指定课程组");
         }
+        // groupType -> PRACTICE, VIP, LIVE
         if ("PRACTICE".equals(groupType)) {
             PracticeGroup practiceGroup = practiceGroupService.get(groupId);
             if (Objects.isNull(practiceGroup)) {
@@ -2500,7 +2508,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                 if (studentNum.equals(classGroup.getExpectStudentNum())) {
                     vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
                     classGroup.setDelFlag(0);
-                    VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroup.getVipGroupCategoryId(), vipGroup.getOrganId());
+                    VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroup.getVipGroupCategoryId(),
+                            vipGroup.getOrganId(), vipGroup.getGroupType());
 
                     //生成课表
                     List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroup.getCourseSchedulesJson(), CourseSchedule.class);
@@ -4369,9 +4378,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         queryInfo.setExpireFlag(true);
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
+        // VIP小课
         List<StudentVipGroupShowListDto> vipGroups = vipGroupDao.findVipGroups(params);
+        // 网课
         vipGroups.addAll(practiceGroupService.findPracticeGroups(params));
+        // 删除返回null值数据
         vipGroups.removeAll(Collections.singleton(null));
+        // 按照创建时间倒序
         List<StudentVipGroupShowListDto> collect = vipGroups.stream().sorted(Comparator.comparing(StudentVipGroupShowListDto::getCreateTime).reversed()).collect(Collectors.toList());
         return collect;
     }

+ 10 - 3
mec-biz/src/main/resources/config/mybatis/VipGroupCategoryMapper.xml

@@ -32,9 +32,16 @@
 	</select>
 
 	<select id="findAllByOrgan" resultMap="VipGroupCategory">
-		SELECT vgc.*,vgdcup.online_classes_unit_price_,vgdcup.offline_classes_unit_price_ FROM vip_group_category vgc
+		SELECT
+		    vgc.*
+		    , vgdcup.online_classes_unit_price_
+		    , vgdcup.offline_classes_unit_price_
+		FROM vip_group_category vgc
 		LEFT JOIN vip_group_default_classes_unit_price_ vgdcup ON vgc.id_=vgdcup.vip_group_category_id_ AND FIND_IN_SET(vgdcup.organ_id_,#{organId})
 		WHERE vgc.del_flag_ != 1
+		<if test="groupType != null">
+			AND vgc.group_type_ = #{groupType}
+		</if>
 		ORDER BY id_
 	</select>
 
@@ -56,8 +63,8 @@
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.VipGroupCategory"
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO vip_group_category
-		(id_,name_,del_flag_,create_time_,update_time_,single_class_minutes_,student_num_,music_theory_,tenant_id_)
-		VALUES(#{id},#{name},#{delFlag},#{createTime},NOW(),#{singleClassMinutes},#{studentNum},#{musicTheory},#{tenantId})
+		(id_,name_,del_flag_,create_time_,update_time_,single_class_minutes_,student_num_,music_theory_,tenant_id_, group_type_)
+		VALUES(#{id},#{name},#{delFlag},#{createTime},NOW(),#{singleClassMinutes},#{studentNum},#{musicTheory},#{tenantId}, #{groupType})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->

+ 30 - 24
mec-biz/src/main/resources/config/mybatis/VipGroupDefaultClassesUnitPriceMapper.xml

@@ -34,7 +34,8 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO vip_group_default_classes_unit_price_ (id_,organ_id_,vip_group_category_id_,online_classes_unit_price_,offline_classes_unit_price_,create_time_,update_time_,tenant_id_) VALUES(#{id},#{organId},#{vipGroupCategoryId},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{createTime},NOW(),#{tenantId})
+		INSERT INTO vip_group_default_classes_unit_price_ (id_,organ_id_,vip_group_category_id_,online_classes_unit_price_,offline_classes_unit_price_,create_time_,update_time_,tenant_id_,group_type_)
+		VALUES(#{id},#{organId},#{vipGroupCategoryId},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{createTime},NOW(),#{tenantId}, #{groupType})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -66,29 +67,31 @@ create_time_ = #{createTime},
 
 	<!-- 根据主键查询一条记录 -->
 	<update id="updateByVipGroupCategory" parameterType="com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice">
-		UPDATE vip_group_default_classes_unit_price_ <set>
-		<if test="organId != null">
-			organ_id_ = #{organId},
-		</if>
-		<if test="id != null">
-			id_ = #{id},
-		</if>
-		<if test="offlineClassesUnitPrice != null">
-			offline_classes_unit_price_ = #{offlineClassesUnitPrice},
-		</if>
-		<if test="onlineClassesUnitPrice != null">
-			online_classes_unit_price_ = #{onlineClassesUnitPrice},
-		</if>
-		<if test="updateTime != null">
-			update_time_ = NOW(),
-		</if>
-		<if test="vipGroupCategoryId != null">
-			vip_group_category_id_ = #{vipGroupCategoryId},
-		</if>
-		<if test="createTime != null">
-			create_time_ = #{createTime},
-		</if>
-	</set> WHERE organ_id_=#{organId} AND vip_group_category_id_=#{vipGroupCategoryId}
+		UPDATE vip_group_default_classes_unit_price_
+		<set>
+			<if test="organId != null">
+				organ_id_ = #{organId},
+			</if>
+			<if test="id != null">
+				id_ = #{id},
+			</if>
+			<if test="offlineClassesUnitPrice != null">
+				offline_classes_unit_price_ = #{offlineClassesUnitPrice},
+			</if>
+			<if test="onlineClassesUnitPrice != null">
+				online_classes_unit_price_ = #{onlineClassesUnitPrice},
+			</if>
+			<if test="updateTime != null">
+				update_time_ = NOW(),
+			</if>
+			<if test="vipGroupCategoryId != null">
+				vip_group_category_id_ = #{vipGroupCategoryId},
+			</if>
+			<if test="createTime != null">
+				create_time_ = #{createTime},
+			</if>
+		</set>
+		WHERE organ_id_=#{organId} AND vip_group_category_id_=#{vipGroupCategoryId}
 	</update>
 	
 	<!-- 根据主键删除一条记录 -->
@@ -119,5 +122,8 @@ create_time_ = #{createTime},
 		FROM
 			vip_group_default_classes_unit_price_ vgdcup
 		WHERE vgdcup.organ_id_=#{organId} AND vgdcup.vip_group_category_id_=#{vipGroupCategoryId}
+		<!--<if test="groupType != null">
+			AND vgdcup.group_type_ = #{groupType}
+		</if>-->
     </select>
 </mapper>

+ 9 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ActivityUserMapperController.java

@@ -15,6 +15,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -82,7 +83,14 @@ public class ActivityUserMapperController extends BaseController {
         Teacher teacher = teacherDao.get(applyBaseInfo.getUserId());
         applyBaseInfo.setOrganId(teacher.getTeacherOrganId());
         vipGroupApplyDto.getCourseSchedules().stream().forEach(e->e.setEndClassTime(DateUtil.addMinutes(e.getStartClassTime(), applyBaseInfo.getSingleClassMinutes())));
-        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(applyBaseInfo.getVipGroupCategoryId(), applyBaseInfo.getOrganId());
+
+        // 默认VIP课
+        if (StringUtils.isBlank(applyBaseInfo.getGroupType())) {
+            applyBaseInfo.setGroupType("VIP");
+        }
+
+        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(applyBaseInfo.getVipGroupCategoryId(),
+                applyBaseInfo.getOrganId(), applyBaseInfo.getGroupType());
         if(Objects.nonNull(vipGroupDefaultClassesUnitPrice)){
             applyBaseInfo.setOnlineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice());
             applyBaseInfo.setOfflineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());

+ 8 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java

@@ -235,7 +235,14 @@ public class TeacherVipGroupController extends BaseController {
 		for (CourseSchedule courseSchedule : vipGroupApplyDto.getCourseSchedules()) {
 			courseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getSingleClassMinutes()));
 		}
-		VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId());
+
+		// 默认VIP课
+		if (StringUtils.isBlank(vipGroupApplyDto.getVipGroupApplyBaseInfo().getGroupType())) {
+			vipGroupApplyDto.getVipGroupApplyBaseInfo().setGroupType("VIP");
+		}
+
+		VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId(),
+				vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getGroupType());
 		if(Objects.nonNull(vipGroupDefaultClassesUnitPrice)){
 			vipGroupApplyDto.getVipGroupApplyBaseInfo().setOnlineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice());
 			vipGroupApplyDto.getVipGroupApplyBaseInfo().setOfflineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());

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

@@ -3,20 +3,20 @@ package com.ym.mec.teacher.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
 import java.util.List;
@@ -44,14 +44,19 @@ public class VipGroupCategoryController extends BaseController {
 	}
 
 	@ApiOperation("全查询")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "organId", value = "分部id", dataType = "int", paramType = "query"),
+			@ApiImplicitParam(name = "includeMusicTheory", value = "是否包含乐理", dataType = "int", paramType = "query", defaultValue = "0"),
+			@ApiImplicitParam(name = "groupType", value = "课类别", dataType = "String", paramType = "query", defaultValue = "VIP")
+	})
 	@GetMapping(value = "/queryAll")
-	public Object queryAll(Integer organId, Integer includeMusicTheory) {
+	public Object queryAll(Integer organId, Integer includeMusicTheory, @RequestParam(defaultValue = "VIP") String groupType) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if (Objects.isNull(user)) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
 		if(Objects.nonNull(organId)){
-			List<VipGroupCategory> result = vipGroupCategoryService.findAllByOrgan(organId.toString());
+			List<VipGroupCategory> result = vipGroupCategoryService.findAllByOrgan(organId.toString(), groupType);
 			if(!CollectionUtils.isEmpty(result)){
 				result = result.stream().filter(c->!c.getMusicTheory()).collect(Collectors.toList());
 			}
@@ -61,7 +66,7 @@ public class VipGroupCategoryController extends BaseController {
 			if(Objects.isNull(teacher)){
 				return failed("教师信息不存在");
 			}
-			List<VipGroupCategory> result = vipGroupCategoryService.findAllByOrgan(teacher.getTeacherOrganId().toString());
+			List<VipGroupCategory> result = vipGroupCategoryService.findAllByOrgan(teacher.getTeacherOrganId().toString(), groupType);
 			if(!CollectionUtils.isEmpty(result)&&(Objects.isNull(includeMusicTheory)||includeMusicTheory<=0)){
 				result = result.stream().filter(c->!c.getMusicTheory()).collect(Collectors.toList());
 			}

+ 17 - 6
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupCategoryController.java

@@ -4,13 +4,13 @@ import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
 
@@ -30,10 +30,15 @@ public class VipGroupCategoryController extends BaseController {
 	}
 
 	@ApiOperation("全查询")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "organId", value = "分部id", dataType = "String", paramType = "query"),
+			@ApiImplicitParam(name = "groupType", value = "课程类型", dataType = "String", paramType = "query", defaultValue = "VIP"),
+
+	})
 	@GetMapping(value = "/queryAll")
     @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/queryAll')")
-	public Object queryAll(String organId) {
-		return succeed(vipGroupCategoryService.findAllByOrgan(organId));
+	public Object queryAll(String organId, @RequestParam(defaultValue = "VIP") String groupType) {
+		return succeed(vipGroupCategoryService.findAllByOrgan(organId, groupType));
 	}
 
 	@ApiOperation("获取教师课酬")
@@ -47,6 +52,12 @@ public class VipGroupCategoryController extends BaseController {
 	@PostMapping(value = "/add")
     @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/add')")
 	public Object add(VipGroupCategory vipGroupCategory) {
+
+		// 默认为VIP课
+		if (StringUtils.isBlank(vipGroupCategory.getGroupType())) {
+			vipGroupCategory.setGroupType("VIP");
+		}
+
 		Date date = new Date();
 		vipGroupCategory.setCreateTime(date);
 		vipGroupCategory.setUpdateTime(date);

+ 22 - 1
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupDefaultClassesUnitPriceController.java

@@ -2,11 +2,14 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
+import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.biz.service.VipGroupDefaultClassesUnitPriceService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -15,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Date;
+import java.util.Objects;
 
 @Api(tags = "vip课默认单价")
 @RequestMapping("vipGroupDefaultClassesUnitPrice")
@@ -25,10 +29,12 @@ public class VipGroupDefaultClassesUnitPriceController extends BaseController {
 	private VipGroupDefaultClassesUnitPriceService vipGroupDefaultClassesUnitPriceService;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private VipGroupCategoryService vipGroupCategoryService;
 
 	@ApiOperation("单查询")
 	@GetMapping(value = "/query")
-    @PreAuthorize("@pcs.hasPermissions('c')")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupDefaultClassesUnitPrice/query')")
 	public Object query(int id) {
 		return succeed(vipGroupDefaultClassesUnitPriceService.get(id));
 	}
@@ -48,6 +54,21 @@ public class VipGroupDefaultClassesUnitPriceController extends BaseController {
 		if(sysUser == null){
 			return failed("获取用户信息失败");
 		}
+
+		// 默认VIP课
+		if (StringUtils.isBlank(vipGroupDefaultClassesUnitPrice.getGroupType())) {
+
+			if (vipGroupDefaultClassesUnitPrice.getVipGroupCategoryId() == null) {
+				return failed("VIP课程类别不能为空");
+			}
+			VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(vipGroupDefaultClassesUnitPrice.getVipGroupCategoryId());
+			if (Objects.isNull(vipGroupCategory)) {
+				return failed("VIP课程类别不存在");
+			}
+
+			vipGroupDefaultClassesUnitPrice.setGroupType(vipGroupCategory.getGroupType());
+		}
+
 		Date date = new Date();
 		vipGroupDefaultClassesUnitPrice.setCreateTime(date);
 		vipGroupDefaultClassesUnitPrice.setUpdateTime(date);

+ 9 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/EduActivityUserMapperController.java

@@ -14,6 +14,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -80,7 +81,14 @@ public class EduActivityUserMapperController extends BaseController {
         for (CourseSchedule courseSchedule : vipGroupApplyDto.getCourseSchedules()) {
             courseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(), applyBaseInfo.getSingleClassMinutes()));
         }
-        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(applyBaseInfo.getVipGroupCategoryId(), applyBaseInfo.getOrganId());
+
+        // 默认VIP课
+        if (StringUtils.isBlank(applyBaseInfo.getGroupType())) {
+            applyBaseInfo.setGroupType("VIP");
+        }
+
+        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(applyBaseInfo.getVipGroupCategoryId(),
+                applyBaseInfo.getOrganId(), applyBaseInfo.getGroupType());
         if(Objects.nonNull(vipGroupDefaultClassesUnitPrice)){
             applyBaseInfo.setOnlineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice());
             applyBaseInfo.setOfflineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());

+ 9 - 8
mec-web/src/main/java/com/ym/mec/web/controller/education/EduVipGroupCategoryController.java

@@ -4,24 +4,21 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.entity.Teacher;
-import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Arrays;
-import java.util.Date;
 import java.util.List;
-import java.util.Objects;
 
 @Api(tags = "vip课类别")
 @RequestMapping("eduVipGroupCategory")
@@ -36,8 +33,12 @@ public class EduVipGroupCategoryController extends BaseController {
 	private EmployeeDao employeeDao;
 
 	@ApiOperation("全查询")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "organId", value = "分部id", dataType = "int", paramType = "query"),
+			@ApiImplicitParam(name = "groupType", value = "课程类型", dataType = "String", paramType = "query", defaultValue = "VIP"),
+	})
 	@GetMapping(value = "/queryAll")
-	public Object queryAll(String organId) {
+	public Object queryAll(String organId, @RequestParam(defaultValue = "VIP") String groupType) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null) {
 			return failed("用户信息获取失败");
@@ -53,6 +54,6 @@ public class EduVipGroupCategoryController extends BaseController {
 				return failed("非法请求");
 			}
 		}
-		return succeed(vipGroupCategoryService.findAllByOrgan(organId));
+		return succeed(vipGroupCategoryService.findAllByOrgan(organId, groupType));
 	}
 }

+ 11 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/EduVipGroupManageController.java

@@ -4,6 +4,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
+import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.Teacher;
@@ -14,6 +15,7 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -65,7 +67,15 @@ public class EduVipGroupManageController extends BaseController {
         }
 
         if(Objects.nonNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId())){
-            VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId());
+
+            VipGroupApplyBaseInfoDto vipGroupApplyBaseInfo = vipGroupApplyDto.getVipGroupApplyBaseInfo();
+            // 默认VIP课
+            if (StringUtils.isBlank(vipGroupApplyBaseInfo.getGroupType())) {
+                vipGroupApplyBaseInfo.setGroupType("VIP");
+            }
+
+            VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroupApplyBaseInfo.getVipGroupCategoryId(),
+                    vipGroupApplyBaseInfo.getOrganId(), vipGroupApplyBaseInfo.getGroupType());
             if(Objects.nonNull(vipGroupDefaultClassesUnitPrice)){
                 vipGroupApplyDto.getVipGroupApplyBaseInfo().setOnlineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice());
                 vipGroupApplyDto.getVipGroupApplyBaseInfo().setOfflineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());

+ 2 - 2
mec-websocket/src/main/java/com/ym/mec/web/handler/WhiteboardHandler.java

@@ -195,8 +195,8 @@ public class WhiteboardHandler {
         // 客户端类型
         String clientType = client.getHandshakeData().getSingleUrlParam(CLIENT_TYPE);
 
-        /*log.debug("onHeartbeatSync client={}, ns={}, roomId={}, userId={}, timestamp={}", client.getSessionId(),
-                client.getNamespace().getName(), roomId, userId, timestamp);*/
+        log.info("onHeartbeatSync EVENT_HEARTBEAT_SYNC sessionId={}, ns={}, roomId={}, userId={}, timestamp={}", client.getSessionId(),
+                client.getNamespace().getName(), roomId, userId, timestamp);
 
         if (StringUtils.isNoneBlank(roomId, userId, clientType)) {