Browse Source

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

# Conflicts:
#	.idea/httpRequests/http-requests-log.http
zouxuan 2 years ago
parent
commit
fab38f47c5

+ 521 - 199
.idea/httpRequests/http-requests-log.http

@@ -1,201 +1,3 @@
-POST http://127.0.0.1:8005/schoolStaff/updateAccount
-Authorization: bearer 6882e681-2f9a-4f8f-aee1-79b1e42de850
-Content-Type: application/json
-Content-Length: 71
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"coopId":19,"phone":"19900990111","staffId":1839,"userType":"TEACHER"}
-
-<> 2023-05-30T145725.200.json
-
-###
-
-POST http://127.0.0.1:8005/schoolStaff/updateAccount
-Authorization: bearer 6882e681-2f9a-4f8f-aee1-79b1e42de850
-Content-Type: application/json
-Content-Length: 71
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"coopId":16,"phone":"19900990111","staffId":1820,"userType":"TEACHER"}
-
-<> 2023-05-30T145417.200.json
-
-###
-
-POST http://127.0.0.1:8005/schoolStaff/updateAccount
-Authorization: bearer 6882e681-2f9a-4f8f-aee1-79b1e42de850
-Content-Type: application/json
-Content-Length: 71
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"coopId":16,"phone":"19900990111","staffId":1837,"userType":"TEACHER"}
-
-<> 2023-05-30T145329.200.json
-
-###
-
-POST http://127.0.0.1:8005/schoolStaff/updateAccount
-Authorization: bearer 6882e681-2f9a-4f8f-aee1-79b1e42de850
-Content-Type: application/json
-Content-Length: 71
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"coopId":19,"phone":"19900990114","staffId":1837,"userType":"TEACHER"}
-
-<> 2023-05-30T144905.200.json
-
-###
-
-POST http://127.0.0.1:8005/schoolStaff/updateAccount
-Authorization: bearer 9e3a8ca3-b369-485a-aae0-5cdf17d46e61
-Content-Type: application/json
-Content-Length: 71
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"coopId":19,"phone":"19900990114","staffId":1837,"userType":"TEACHER"}
-
-<> 2023-05-30T144848.200.json
-
-###
-
-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
@@ -570,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 +431,523 @@ 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-12T190114.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-12T185307.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-12T184904.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-12T184725.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-12T184519.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-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
+
+###
+

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

@@ -339,7 +339,8 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      */
     List<TeacherClassGroupDto> findTeacherVipClassGroup(@Param("teacherId") Long teacherId,
                                                         @Param("status") String status,
-                                                        @Param("groupName") String groupName);
+                                                        @Param("groupName") String groupName,
+                                                        @Param("groupType") String groupType);
 
     /**
      * 根据合奏班编号列表,获取单技班名称列表

+ 12 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClassGroupTypeEnum.java

@@ -6,10 +6,18 @@ import com.ym.mec.common.enums.BaseEnum;
  * 班级类型
  */
 public enum ClassGroupTypeEnum implements BaseEnum<String, ClassGroupTypeEnum> {
-	NORMAL("NORMAL", "声部班"), MIX("MIX", "合奏班"), HIGH("HIGH", "基础技能班"),
-	VIP("VIP", "vip课"), DEMO("DEMO", "试听课"), PRACTICE("PRACTICE", "网管课"), SNAP("SNAP",
-			"临时班"), COMM("COMM", "对外课程"), HIGH_ONLINE("HIGH_ONLINE", "线上基础技能班"),
-	MUSIC_NETWORK("MUSIC_NETWORK","乐团网管课");
+	NORMAL("NORMAL", "声部班"),
+	MIX("MIX", "合奏班"),
+	HIGH("HIGH", "基础技能班"),
+	VIP("VIP", "vip课"),
+	DEMO("DEMO", "试听课"),
+	PRACTICE("PRACTICE", "网管课"),
+	SNAP("SNAP", "临时班"),
+	COMM("COMM", "对外课程"),
+	HIGH_ONLINE("HIGH_ONLINE", "线上基础技能班"),
+	MUSIC_NETWORK("MUSIC_NETWORK","乐团网管课"),
+	LIVE("LIVE","直播课"),
+	;
 
 	private String code;
 

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

@@ -20,7 +20,9 @@ public enum GroupType implements BaseEnum<String, GroupType> {
 	MEMBER("购买会员"),
 	LIVE_BUY("直播购物"),
 
-	MALL_SELL("商城购物"),;
+	MALL_SELL("商城购物"),
+	LIVE("直播课"),
+	;
 
 	private String desc;
 

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupQueryInfo.java

@@ -1,8 +1,11 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.Optional;
+
 /**
  * @Author Joburgess
  * @Date 2019/10/9
@@ -28,6 +31,9 @@ public class VipGroupQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "上课时间,年月日",required = false)
     private String classDate;
 
+    @ApiModelProperty(value = "课程类型分组")
+    private String groupType;
+
     public String getClassDate() {
         return classDate;
     }
@@ -99,4 +105,12 @@ public class VipGroupQueryInfo extends QueryInfo {
     public void setOrganId(String organId) {
         this.organId = organId;
     }
+
+    public String getGroupType() {
+        return Optional.ofNullable(groupType).orElse(GroupType.VIP.getCode());
+    }
+
+    public void setGroupType(String groupType) {
+        this.groupType = groupType;
+    }
 }

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupSalaryQueryInfo.java

@@ -1,9 +1,11 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.Date;
+import java.util.Optional;
 
 /**
  * @Author Joburgess
@@ -23,6 +25,9 @@ public class VipGroupSalaryQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "结束时间")
     private Date endTime;
 
+    @ApiModelProperty(value = "课类型")
+    private String groupType;
+
     public Long getVipGroupId() {
         return vipGroupId;
     }
@@ -54,4 +59,12 @@ public class VipGroupSalaryQueryInfo extends QueryInfo {
     public void setEndTime(Date endTime) {
         this.endTime = endTime;
     }
+
+    public String getGroupType() {
+        return Optional.ofNullable(groupType).orElse(GroupType.VIP.getCode());
+    }
+
+    public void setGroupType(String groupType) {
+        this.groupType = groupType;
+    }
 }

+ 15 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupTeachingRecordQueryInfo.java

@@ -1,9 +1,11 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.Date;
+import java.util.Optional;
 
 /**
  * @Author Joburgess
@@ -20,12 +22,15 @@ public class VipGroupTeachingRecordQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "结束时间")
     private Date endTime;
 
-    @ApiModelProperty(value = "vip课编号")
+    @ApiModelProperty(value = "vip课教学模式")
     private String teachMode;
 
-    @ApiModelProperty(value = "vip课编号")
+    @ApiModelProperty(value = "vip课状态")
     private String status;
 
+    @ApiModelProperty(value = "课类型")
+    private String groupType;
+
     public Long getVipGroupId() {
         return vipGroupId;
     }
@@ -65,4 +70,12 @@ public class VipGroupTeachingRecordQueryInfo extends QueryInfo {
     public void setStatus(String status) {
         this.status = status;
     }
+
+    public String getGroupType() {
+        return Optional.ofNullable(groupType).orElse(GroupType.VIP.getCode());
+    }
+
+    public void setGroupType(String groupType) {
+        this.groupType = groupType;
+    }
 }

+ 25 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeWrapper.java

@@ -235,21 +235,27 @@ public class DegreeWrapper {
         @ApiModelProperty("考级简章ID")
         private Long examinationBriefId;
 
+        @ApiModelProperty("链接地址")
+        private String examinationBriefLinkUrl;
+
+        @ApiModelProperty("跳转类型_bank,_slef")
+        private String examinationBriefHrefTarget;
+
         @ApiModelProperty("考级通知ID")
         private Long gradingNoticeId;
 
+        @ApiModelProperty("链接地址")
+        private String gradingNoticeLinkUrl;
+
+        @ApiModelProperty("跳转类型_bank,_slef")
+        private String gradingNoticeHrefTarget;
+
         @ApiModelProperty("考级城市分部")
         private List<DegreeCity> degreeCities;
 
         @ApiModelProperty("倒计时开始天数")
         private Integer startDays;
 
-        @ApiModelProperty("链接地址")
-        private String linkUrl;
-
-        @ApiModelProperty("跳转类型_bank,_slef")
-        private String hrefTarget;
-
         public String jsonString() {
             return JSON.toJSONString(this);
         }
@@ -268,14 +274,23 @@ public class DegreeWrapper {
             return Optional.ofNullable(startDays).orElse(0);
         }
 
+        public StudentDegreeInfo examinationBriefLinkUrl(String examinationBriefLinkUrl) {
+            this.examinationBriefLinkUrl = examinationBriefLinkUrl;
+            return this;
+        }
+
+        public StudentDegreeInfo examinationBriefHrefTarget(String examinationBriefHrefTarget) {
+            this.examinationBriefHrefTarget = examinationBriefHrefTarget;
+            return this;
+        }
 
-        public StudentDegreeInfo linkUrl(String linkUrl) {
-            this.linkUrl = linkUrl;
+        public StudentDegreeInfo gradingNoticeLinkUrl(String gradingNoticeLinkUrl) {
+            this.gradingNoticeLinkUrl = gradingNoticeLinkUrl;
             return this;
         }
 
-        public StudentDegreeInfo hrefTarget(String hrefTarget) {
-            this.hrefTarget = hrefTarget;
+        public StudentDegreeInfo gradingNoticeHrefTarget(String gradingNoticeHrefTarget) {
+            this.gradingNoticeHrefTarget = gradingNoticeHrefTarget;
             return this;
         }
     }

+ 41 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
@@ -789,7 +791,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<CourseListDto> courseListDtos = null;
         //获取分页前的所有的乐团编号和vip编号
         params.put("offset", pageInfo.getOffset());
-        List<String> musicGroupIds = null;
+        List<String> musicGroupIds = Lists.newArrayList();
         List<Group> groups;
         if (queryInfo.isHideOverGroup()) {
             groups = courseScheduleDao.queryMusicGroupIdsWithoutOverGroup(params);
@@ -803,14 +805,32 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             typeGroupMap = groups.stream().collect(Collectors.groupingBy(Group::getGroupType));
         }
         courseListDtos = new ArrayList<>();
+
+        // VIP课
         if (!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.VIP))) {
-            musicGroupIds = typeGroupMap.get(GroupType.VIP).stream().map(Group::getId).collect(Collectors.toList());
+            musicGroupIds.addAll(typeGroupMap.get(GroupType.VIP).stream().map(Group::getId).collect(Collectors.toList()));
+        }
+        // 直播课
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(typeGroupMap.get(GroupType.LIVE))) {
+            musicGroupIds.addAll(typeGroupMap.get(GroupType.LIVE).stream().map(Group::getId).collect(Collectors.toList()));
         }
         //获取学员所购买的vip课列表详情
         List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds, ","), userId);
         //获取vip课的学生列表
         Set<String> vipIds = vipCourses.stream().map(CourseListDto::getVipId).collect(Collectors.toSet());
-        Map<String, String> vipStuNames = MapUtil.convertIntegerMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "VIP"));
+
+        Map<String, String> vipStuNamesMap = Maps.newHashMap();
+        // VIP课
+        List<Map<String, String>> vipStuNames = classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "VIP");
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(vipStuNames)) {
+            vipStuNamesMap.putAll(MapUtil.convertIntegerMap(vipStuNames));
+        }
+        // 直播课
+        List<Map<String, String>> liveStuNames = classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "LIVE");
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(liveStuNames)) {
+            vipStuNamesMap.putAll(MapUtil.convertIntegerMap(liveStuNames));
+        }
+        //Map<String, String> vipStuNamesMap = MapUtil.convertIntegerMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "VIP"));
 
         if (!CollectionUtils.isEmpty(typeGroupMap.get(MUSIC))) {
             musicGroupIds = typeGroupMap.get(MUSIC).stream().map(Group::getId).collect(Collectors.toList());
@@ -867,6 +887,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Map<String, Long> vipCourseNumMap = new HashMap<>();
         if (vipIds != null && vipIds.size() > 0) {
             vipCourseNumMap = MapUtil.convertIntegerMap(courseScheduleStudentPaymentDao.findStudentCourseNum(vipIds, userId, "VIP"));
+
+            // 直播课
+            List<Map<String, Integer>> studentCourseNum = courseScheduleStudentPaymentDao.findStudentCourseNum(vipIds, userId, "LIVE");
+            if (org.apache.commons.collections.CollectionUtils.isNotEmpty(studentCourseNum)) {
+                vipCourseNumMap.putAll(MapUtil.convertIntegerMap(studentCourseNum));
+            }
         }
         Map<String, Long> practiceCourseNumMap = new HashMap<>();
         if (practiceGroupId != null && practiceGroupId.size() > 0) {
@@ -890,7 +916,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Map<String, Integer> isApplyMap = MapUtil.convertIntegerMap(isApplyMaps);
         //获取所有教学点名称列表
         Set<Integer> schoolIds = courseListDtos.stream().map(CourseListDto::getTeacherSchoolId).collect(Collectors.toSet());
-        Map<Integer, String> schoolNames = MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds, ",")));
+
+        Map<Integer, String> schoolNames = Maps.newHashMap();
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(schoolIds)) {
+            schoolNames.putAll(MapUtil.convertMybatisMap(schoolDao.queryNameByIds(StringUtils.join(schoolIds, ","))));
+        }
 
         SysConfig practiceRenewUrlConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_RENEW_URL);
 
@@ -927,8 +957,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     else if (PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroupTypeMap.get(Long.valueOf(e.getPracticeId()))))
                         e.setPracticeType(3);
                 }
-            } else if (ClassGroupTypeEnum.VIP == e.getType()) {
-                e.setStudentNames(vipStuNames.get(e.getVipId()));
+            } else if (ClassGroupTypeEnum.VIP == e.getType() || ClassGroupTypeEnum.LIVE == e.getType()) {
+                e.setStudentNames(vipStuNamesMap.get(e.getVipId()));
                 //1:线上;2:线下;3:线上+线下
                 if (e.getOnlineClassesNum() > 0 && e.getOffLineClassesNum() <= 0) {
                     e.setClassMode(1);
@@ -1522,8 +1552,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         List<TeacherClassGroupDto> teacherMusicClassGroup;
         switch (type) {
-            case "VIP":
-                teacherMusicClassGroup = classGroupDao.findTeacherVipClassGroup(user.getId().longValue(), status, groupName);
+            case "VIP": // VIP课
+            case "LIVE": // 直播课
+                teacherMusicClassGroup = classGroupDao.findTeacherVipClassGroup(user.getId().longValue(), status, groupName, type);
                 break;
             case "MUSIC_GROUP":
                 teacherMusicClassGroup = classGroupDao.findTeacherMusicClassGroup(user.getId().longValue(), groupName);
@@ -1731,10 +1762,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 //            teacherClassHeadInfo.setTeachingTeacher(teachingTeacher.getUserName());
 //        }
 
-        if (classGroup.getType() == ClassGroupTypeEnum.VIP) {
+        if (classGroup.getType() == ClassGroupTypeEnum.VIP || classGroup.getType() == ClassGroupTypeEnum.LIVE) {
             String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(classGroupId);
             teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));
         }
+
         if (classGroup.getType() == ClassGroupTypeEnum.PRACTICE) {
             String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(classGroupId);
             teacherClassHeadInfo.setStudentNames(StringUtils.join(studentNums, ","));

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

@@ -1071,7 +1071,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 //		List<Integer> quitClassGroupIds=classGroupStudentMapperDao.findClassGroupIdByUserAndCourseDateAndStatus(user.getId(),classDate, ClassGroupStudentStatusEnum.QUIT.getCode());
         List<CourseScheduleDto> studentCourseSchedulesWithDate = courseScheduleDao.getStudentCourseSchedulesWithDate(classDate, user.getId().longValue(), null);
         List<Long> courseScheduleIds = studentCourseSchedulesWithDate.stream()
-                .filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP) || cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO) || cs.getType().equals(CourseScheduleType.PRACTICE) || cs.getType().equals(CourseScheduleType.COMM))
+                .filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP)
+						|| cs.getType().equals(CourseSchedule.CourseScheduleType.LIVE)
+						|| cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO)
+						|| cs.getType().equals(CourseScheduleType.PRACTICE)
+						|| cs.getType().equals(CourseScheduleType.COMM))
                 .map(CourseScheduleDto::getId).collect(Collectors.toList());
 
 		Map<Integer, String> subjectNameCourseMap = new HashMap<>();
@@ -1200,6 +1204,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         List<Long> allCourseScheduleIds = teacherCourseSchedulesWithDate.stream().map(CourseScheduleDto::getId).collect(Collectors.toList());
         List<Long> courseScheduleIds = teacherCourseSchedulesWithDate.stream()
                 .filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP) ||
+						cs.getType().equals(CourseSchedule.CourseScheduleType.LIVE) ||
                         cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO) ||
                         cs.getType().equals(CourseSchedule.CourseScheduleType.PRACTICE) ||
 						cs.getType().equals(CourseScheduleType.COMM))
@@ -3842,7 +3847,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if (vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)) {
             dataList = JSON.parseArray(vipGroup.getCourseSchedulesJson(), CourseSchedule.class);
         } else {
-            dataList = courseScheduleDao.findGroupCourseSchedules(vipGroup.getId().toString(),GroupType.VIP.getCode());
+            dataList = courseScheduleDao.findGroupCourseSchedules(vipGroup.getId().toString(), queryInfo.getGroupType());
         }
 		if(!CollectionUtils.isEmpty(dataList)){
 			if(StringUtils.isNotEmpty(queryInfo.getSearch())){

+ 7 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeServiceImpl.java

@@ -296,7 +296,11 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
                 .build();
         List<DegreeNewsVo> records = degreeNewsService.selectPage(QueryInfo.getPage(newsQuery), newsQuery).getRecords();
         if (org.apache.commons.collections.CollectionUtils.isNotEmpty(records)) {
-            wrapper.setExaminationBriefId(records.get(0).getId());
+
+            DegreeNewsVo newsVo = records.get(0);
+            wrapper.examinationBriefLinkUrl(newsVo.getLinkUrl())
+                    .examinationBriefHrefTarget(newsVo.getHrefTarget())
+                    .setExaminationBriefId(newsVo.getId());
         }
 
         // 考级须知ID
@@ -307,8 +311,8 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
             if (org.apache.commons.collections.CollectionUtils.isNotEmpty(records)) {
 
                 DegreeNewsVo newsVo = records.get(0);
-                wrapper.linkUrl(newsVo.getLinkUrl())
-                        .hrefTarget(newsVo.getHrefTarget())
+                wrapper.gradingNoticeLinkUrl(newsVo.getLinkUrl())
+                        .gradingNoticeHrefTarget(newsVo.getHrefTarget())
                         .setGradingNoticeId(newsVo.getId());
             }
         }

+ 130 - 90
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -21,6 +21,7 @@ import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+import com.google.common.collect.Lists;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -303,8 +304,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     @Autowired
     private SysUserCashAccountLogService sysUserCashAccountLogService;
 
-    private static final Logger LOGGER = LoggerFactory
-            .getLogger(VipGroup.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(VipGroup.class);
 
     @Override
     public BaseDAO<Long, VipGroup> getDAO() {
@@ -315,6 +315,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     @Override
     public HttpResponseResult createVipGroup(VipGroupApplyDto vipGroup) {
 
+        // VIP, LIVE课程公共参数校验
         if (Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getUserId())) {
             throw new BizException("请选择指导老师");
         }
@@ -323,30 +324,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             throw new BizException("建课失败,当前课程存在未排课课程,请调整相关设置");
         }
 
-        Map<TeachModeEnum, List<CourseSchedule>> courseScheduleGroup;
-        try {
-            courseScheduleGroup = vipGroup.getCourseSchedules().stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode));
-        } catch (Exception e) {
-            throw new BizException("教学模式错误");
-        }
-
-        if ((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE)) && vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum() != 0)
-                || (!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE)) && (courseScheduleGroup.get(TeachModeEnum.OFFLINE).size() < vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum()))) {
-            throw new BizException("线下课课时数量安排有误");
-        }
-
-        if ((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE)) && vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum() != 0)
-                || (!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE)) && (courseScheduleGroup.get(TeachModeEnum.ONLINE).size() < vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum()))) {
-            throw new BizException("线上课课时数量安排有误");
-        }
-
-        if (vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum() > 0
-                && Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getTeacherSchoolId())) {
-            throw new BizException("请设置教学点");
-        }
-
-        Date now = new Date();
-
+        // 学生购买价格,老师课薪设置校验
         VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto = vipGroup.getVipGroupApplyBaseInfo();
 
         if (Objects.isNull(vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice())
@@ -354,24 +332,18 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             throw new BizException("请设置课程单价");
         }
 
-        if (StringUtils.isBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
-            throw new BizException("请选择学员");
-        }
-        //校验机构可排线上课人数上线
-        if (vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum() > 0) {
-            courseScheduleService.checkOnlineCategory(vipGroupApplyBaseInfoDto.getStudentNum());
-        }
-
         if (Objects.isNull(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())) {
             throw new BizException("请设置教师课酬");
         }
 
+        // 课程时间校验
         Integer totalClassTimes = vipGroupApplyBaseInfoDto.getOnlineClassesNum() + vipGroupApplyBaseInfoDto.getOfflineClassesNum();
         //获取第一节课
         CourseSchedule firstCourseSchedule = vipGroup.getCourseSchedules().stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
         //获取最后一节课
         CourseSchedule latestCourseSchedule = vipGroup.getCourseSchedules().stream().max(Comparator.comparing(CourseSchedule::getEndClassTime)).get();
 
+        Date now = new Date();
         if (firstCourseSchedule.getStartClassTime().before(now)) {
             throw new BizException("开课时间不能小于当前时间");
         }
@@ -385,54 +357,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             throw new BizException("创建失败,报名截止时间必须在开课时间前一天");
         }
 
-        List<Integer> canBuyStudentIds = Arrays.stream(vipGroupApplyBaseInfoDto.getStudentIdList().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
-        List<VipGroupStudentCoursePrice> vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
-
-        //获取活动信息
-        VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId());
-        if (!vipGroup.getAllowOverstepActivityStudentNum() && Objects.nonNull(vipGroupActivity)
-                && Objects.nonNull(vipGroupActivity.getStudentMaxUsedTimes()) && vipGroupActivity.getStudentMaxUsedTimes() != -1 &&
-
-                StringUtils.isNotBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
-            List<String> tempStudentIds = Arrays.asList(vipGroupApplyBaseInfoDto.getStudentIdList().split(","));
-            List<Integer> errStudentIds = new ArrayList<>();
-            for (String studentIdStr : tempStudentIds) {
-                int useNum = activityUserMapperService.countActivityBuyNum(vipGroupActivity.getId(), Integer.valueOf(studentIdStr));
-                if (useNum >= vipGroupActivity.getStudentMaxUsedTimes()) {
-                    errStudentIds.add(Integer.valueOf(studentIdStr));
-                }
-            }
-            if (errStudentIds.size() > 0) {
-                List<SimpleUserDto> students = teacherDao.getUsersSimpleInfo(errStudentIds);
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                String studentNames = StringUtils.join(students.stream().map(SimpleUserDto::getNickName).collect(Collectors.toList()), "、");
-                throw new BizException("该活动{}学员已超过该活动购买次数限制", studentNames);
-            }
-        }
-        //判断课程安排是否超出范围
-        if (Objects.nonNull(vipGroupActivity) && (Objects.nonNull(vipGroupActivity.getCoursesEndTime()) || Objects.nonNull(vipGroupActivity.getCoursesStartTime()))) {
-            if (latestCourseSchedule.getEndClassTime().after(vipGroupActivity.getCoursesEndTime())
-                    || firstCourseSchedule.getStartClassTime().before(vipGroupActivity.getCoursesStartTime())) {
-                throw new BizException("课时安排时间超出范围!");
-            }
-        } else {
-            VipGroupDefaultClassesCycle vipGroupDefaultClassesCycle = vipGroupDefaultClassesCycleDao.findByOrganAndClassTimes(totalClassTimes, TenantContextHolder.getTenantId());
-
-            if (vipGroupDefaultClassesCycle != null) {
-                int month = DateUtil.monthsBetween(firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
-                if (month > vipGroupDefaultClassesCycle.getMonth()) {
-                    throw new BizException("课时安排时间超出范围!");
-                }
-            }
-        }
-
-        if (Objects.nonNull(vipGroupActivity) && Objects.nonNull(vipGroupActivity.getMinCourseNum()) && vipGroupActivity.getMinCourseNum() != -1 && Objects.nonNull(vipGroupActivity.getMaxCourseNum()) && vipGroupActivity.getMaxCourseNum() != -1) {
-            Integer requestCourseNum = vipGroupApplyBaseInfoDto.getOnlineClassesNum() + vipGroupApplyBaseInfoDto.getOfflineClassesNum();
-            if (requestCourseNum.compareTo(vipGroupActivity.getMinCourseNum()) < 0 || requestCourseNum.compareTo(vipGroupActivity.getMaxCourseNum()) > 0) {
-                throw new BizException("该活动课时数为{}节~{}节", vipGroupActivity.getMinCourseNum(), vipGroupActivity.getMaxCourseNum());
-            }
-        }
-
         int repeatVipGroups = vipGroupDao.countUserRepeatVipGroupInCourseStartEndTime(vipGroupApplyBaseInfoDto.getUserId(), firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
         if (repeatVipGroups > 0) {
             throw new BizException("请勿重复提交");
@@ -442,6 +366,28 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         if (Objects.isNull(vipGroupCategory)) {
             throw new BizException("课程形式不存在");
         }
+
+        // VIP课,LIVE课参数校验
+        String groupType = vipGroup.getVipGroupApplyBaseInfo().getGroupType();
+
+        // 购买学生列表
+        List<Integer> canBuyStudentIds = Lists.newArrayList();
+        if (StringUtils.isNotBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
+            canBuyStudentIds = Arrays.stream(vipGroupApplyBaseInfoDto.getStudentIdList().split(",")).map(Integer::valueOf).collect(Collectors.toList());
+        }
+        List<VipGroupStudentCoursePrice> vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
+
+
+        // VIP课参数校验
+        if (CourseSchedule.CourseScheduleType.VIP.getCode().equals(groupType)) {
+            vipGroupRequestParamValid(vipGroup, vipGroupApplyBaseInfoDto, totalClassTimes, firstCourseSchedule, latestCourseSchedule);
+        }
+
+        // LIVE课参数校验
+        if (CourseSchedule.CourseScheduleType.LIVE.getCode().equals(groupType)) {
+            // TODO: 2020/3/18 LIVE课参数校验
+        }
+
         List<String> studentNames = studentDao.getStudentNames(canBuyStudentIds);
 
         //生成vip课信息
@@ -486,8 +432,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
         }
 
-        vscps.forEach(e -> e.setVipGroupId(vipGroupApplyBaseInfoDto.getId()));
-        vipGroupStudentCoursePriceDao.batchInsert(vscps);
+        // 指定学员购买
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(vscps)) {
+            vscps.forEach(e -> e.setVipGroupId(vipGroupApplyBaseInfoDto.getId()));
+            vipGroupStudentCoursePriceDao.batchInsert(vscps);
+        }
 
         vipGroup.getVipGroupApplyBaseInfo().setId(vipGroupApplyBaseInfoDto.getId());
 
@@ -503,9 +452,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         classGroup.setStudentNum(0);
         classGroup.setName(vipGroupApplyBaseInfoDto.getName());
         classGroup.setTotalClassTimes(totalClassTimes);
-        classGroup.setType(ClassGroupTypeEnum.VIP);
+        classGroup.setType(ClassGroupTypeEnum.valueOf(groupType));
         classGroup.setDelFlag(1);
-        classGroup.setGroupType(GroupType.VIP);
+        classGroup.setGroupType(GroupType.valueOf(groupType));
         classGroup.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString());
         classGroup.setCreateTime(now);
         classGroup.setUpdateTime(now);
@@ -517,7 +466,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         classGroupTeacherMapper.setClassGroupId(classGroup.getId());
         classGroupTeacherMapper.setTeacherRole(TeachTypeEnum.BISHOP);
         classGroupTeacherMapper.setUserId(vipGroupApplyBaseInfoDto.getUserId());
-        classGroupTeacherMapper.setGroupType(GroupType.VIP);
+        classGroupTeacherMapper.setGroupType(GroupType.valueOf(groupType));
         classGroupTeacherMapper.setCreateTime(now);
         classGroupTeacherMapper.setUpdateTime(now);
         classGroupTeacherMapperDao.insert(classGroupTeacherMapper);
@@ -530,7 +479,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         classGroupTeacherSalary.setUserId(vipGroupApplyBaseInfoDto.getUserId());
         classGroupTeacherSalary.setSalary(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary());
         classGroupTeacherSalary.setOnlineClassesSalary(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary());
-        classGroupTeacherSalary.setGroupType(GroupType.VIP);
+        classGroupTeacherSalary.setGroupType(GroupType.valueOf(groupType));
         classGroupTeacherSalary.setCreateTime(now);
         classGroupTeacherSalary.setUpdateTime(now);
         classGroupTeacherSalaryDao.insert(classGroupTeacherSalary);
@@ -538,7 +487,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         //课程信息调整
         List<CourseSchedule> courseSchedules = vipGroup.getCourseSchedules();
         courseSchedules.forEach(courseSchedule -> {
-            courseSchedule.setGroupType(GroupType.VIP);
+            courseSchedule.setGroupType(GroupType.valueOf(groupType));
             courseSchedule.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString());
             if (courseSchedule.getTeachMode().equals(TeachModeEnum.OFFLINE)) {
                 courseSchedule.setSchoolId(vipGroup.getVipGroupApplyBaseInfo().getTeacherSchoolId());
@@ -546,17 +495,108 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             courseSchedule.setTeacherId(vipGroupApplyBaseInfoDto.getUserId());
             courseSchedule.setActualTeacherId(vipGroupApplyBaseInfoDto.getUserId());
             courseSchedule.setStatus(CourseStatusEnum.NOT_START);
-            courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
+            courseSchedule.setType(CourseSchedule.CourseScheduleType.valueOf(groupType));
             courseSchedule.setClassGroupId(classGroup.getId());
             courseSchedule.setName(vipGroupApplyBaseInfoDto.getName());
             courseSchedule.setOrganId(vipGroupApplyBaseInfoDto.getOrganId());
         });
+
         courseScheduleService.checkNewCourseSchedules(courseSchedules, false, false);
         vipGroupApplyBaseInfoDto.setCourseSchedulesJson(JSON.toJSONString(courseSchedules));
         vipGroupDao.update(vipGroupApplyBaseInfoDto);
         return BaseController.succeed(vipGroupApplyBaseInfoDto.getAuditStatus().getCode());
     }
 
+    /**
+     * VIP课参数校验
+     * @param vipGroup VipGroupApplyDto
+     * @param vipGroupApplyBaseInfoDto VipGroupApplyBaseInfoDto
+     * @param totalClassTimes Integer
+     * @param firstCourseSchedule CourseSchedule
+     * @param latestCourseSchedule CourseSchedule
+     */
+    private void vipGroupRequestParamValid(VipGroupApplyDto vipGroup,
+                                           VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto,
+                                           Integer totalClassTimes,
+                                           CourseSchedule firstCourseSchedule,
+                                           CourseSchedule latestCourseSchedule) {
+
+        Map<TeachModeEnum, List<CourseSchedule>> courseScheduleGroup;
+        try {
+            courseScheduleGroup = vipGroup.getCourseSchedules().stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode));
+        } catch (Exception e) {
+            throw new BizException("教学模式错误");
+        }
+
+        if ((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE)) && vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum() != 0)
+                || (!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE)) && (courseScheduleGroup.get(TeachModeEnum.OFFLINE).size() < vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum()))) {
+            throw new BizException("线下课课时数量安排有误");
+        }
+
+        if ((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE)) && vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum() != 0)
+                || (!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE)) && (courseScheduleGroup.get(TeachModeEnum.ONLINE).size() < vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum()))) {
+            throw new BizException("线上课课时数量安排有误");
+        }
+
+        if (vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum() > 0
+                && Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getTeacherSchoolId())) {
+            throw new BizException("请设置教学点");
+        }
+
+        if (StringUtils.isBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
+            throw new BizException("请选择学员");
+        }
+        //校验机构可排线上课人数上线
+        if (vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum() > 0) {
+            courseScheduleService.checkOnlineCategory(vipGroupApplyBaseInfoDto.getStudentNum());
+        }
+
+        //获取活动信息
+        VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId());
+        if (!vipGroup.getAllowOverstepActivityStudentNum() && Objects.nonNull(vipGroupActivity)
+                && Objects.nonNull(vipGroupActivity.getStudentMaxUsedTimes()) && vipGroupActivity.getStudentMaxUsedTimes() != -1 &&
+
+                StringUtils.isNotBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
+            List<String> tempStudentIds = Arrays.asList(vipGroupApplyBaseInfoDto.getStudentIdList().split(","));
+            List<Integer> errStudentIds = new ArrayList<>();
+            for (String studentIdStr : tempStudentIds) {
+                int useNum = activityUserMapperService.countActivityBuyNum(vipGroupActivity.getId(), Integer.valueOf(studentIdStr));
+                if (useNum >= vipGroupActivity.getStudentMaxUsedTimes()) {
+                    errStudentIds.add(Integer.valueOf(studentIdStr));
+                }
+            }
+            if (errStudentIds.size() > 0) {
+                List<SimpleUserDto> students = teacherDao.getUsersSimpleInfo(errStudentIds);
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                String studentNames = StringUtils.join(students.stream().map(SimpleUserDto::getNickName).collect(Collectors.toList()), "、");
+                throw new BizException("该活动{}学员已超过该活动购买次数限制", studentNames);
+            }
+        }
+        //判断课程安排是否超出范围
+        if (Objects.nonNull(vipGroupActivity) && (Objects.nonNull(vipGroupActivity.getCoursesEndTime()) || Objects.nonNull(vipGroupActivity.getCoursesStartTime()))) {
+            if (latestCourseSchedule.getEndClassTime().after(vipGroupActivity.getCoursesEndTime())
+                    || firstCourseSchedule.getStartClassTime().before(vipGroupActivity.getCoursesStartTime())) {
+                throw new BizException("课时安排时间超出范围!");
+            }
+        } else {
+            VipGroupDefaultClassesCycle vipGroupDefaultClassesCycle = vipGroupDefaultClassesCycleDao.findByOrganAndClassTimes(totalClassTimes, TenantContextHolder.getTenantId());
+
+            if (vipGroupDefaultClassesCycle != null) {
+                int month = DateUtil.monthsBetween(firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
+                if (month > vipGroupDefaultClassesCycle.getMonth()) {
+                    throw new BizException("课时安排时间超出范围!");
+                }
+            }
+        }
+
+        if (Objects.nonNull(vipGroupActivity) && Objects.nonNull(vipGroupActivity.getMinCourseNum()) && vipGroupActivity.getMinCourseNum() != -1 && Objects.nonNull(vipGroupActivity.getMaxCourseNum()) && vipGroupActivity.getMaxCourseNum() != -1) {
+            Integer requestCourseNum = vipGroupApplyBaseInfoDto.getOnlineClassesNum() + vipGroupApplyBaseInfoDto.getOfflineClassesNum();
+            if (requestCourseNum.compareTo(vipGroupActivity.getMinCourseNum()) < 0 || requestCourseNum.compareTo(vipGroupActivity.getMaxCourseNum()) > 0) {
+                throw new BizException("该活动课时数为{}节~{}节", vipGroupActivity.getMinCourseNum(), vipGroupActivity.getMaxCourseNum());
+            }
+        }
+    }
+
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     @Override
     public HttpResponseResult createVipGroup1(VipGroupApplyDto vipGroup) {

+ 5 - 2
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -764,7 +764,7 @@
             s.name_ school_name_
         FROM
             vip_group vg
-            LEFT JOIN class_group cg ON vg.id_=cg.music_group_id_ AND cg.group_type_='VIP'
+            LEFT JOIN class_group cg ON vg.id_=cg.music_group_id_ AND cg.group_type_= #{groupType}
             LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
             LEFT JOIN school s ON vg.teacher_school_id_ = s.id_
         WHERE
@@ -781,6 +781,9 @@
             <if test="groupName!=null and groupName!=''">
                 AND vg.name_ LIKE CONCAT('%', #{groupName}, '%')
             </if>
+            <if test="groupType != null">
+                AND vg.group_type_ = #{groupType}
+            </if>
         GROUP BY
         vg.id_,cg.id_
     </select>
@@ -1071,7 +1074,7 @@
         FROM vip_group vg
         LEFT JOIN class_group cg ON cg.music_group_id_ = vg.id_
         LEFT JOIN sys_user su ON vg.user_id_ = su.id_
-        WHERE cg.group_type_ = 'VIP' AND FIND_IN_SET(vg.id_,#{musicGroupIds})
+        WHERE cg.group_type_ IN ('VIP', 'LIVE') AND FIND_IN_SET(vg.id_,#{musicGroupIds})
     </select>
     <select id="queryStudentMusicGroupCourses" resultMap="CourseListDto">
         SELECT mg.id_ music_id_,mg.name_ music_group_name_,

+ 4 - 4
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1752,7 +1752,7 @@
     <select id="queryMusicGroupIds" resultMap="com.ym.mec.biz.dal.dao.GroupDao.Group">
         SELECT DISTINCT cgsm.music_group_id_ group_id_,cgsm.group_type_ FROM class_group_student_mapper cgsm
         LEFT JOIN music_group mg ON mg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'MUSIC'
-        LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'VIP' AND vg.group_status_!=7
+        LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ IN ('VIP', 'LIVE') AND vg.group_status_!=7
         LEFT JOIN practice_group pg ON pg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'PRACTICE'
         WHERE cgsm.user_id_ = #{userId} AND cgsm.status_ != 'QUIT'
         AND (mg.status_ = 'PROGRESS' OR vg.group_status_ = 2 OR vg.group_status_ = 4 OR (pg.id_ IS NOT NULL AND
@@ -1764,7 +1764,7 @@
         SELECT COUNT(DISTINCT cgsm.music_group_id_)
         FROM class_group_student_mapper cgsm
                  LEFT JOIN music_group mg ON mg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'MUSIC'
-                 LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'VIP' AND vg.group_status_!=7
+                 LEFT JOIN vip_group vg ON vg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ IN ('VIP', 'LIVE') AND vg.group_status_!=7
                  LEFT JOIN practice_group pg ON pg.id_ = cgsm.music_group_id_ AND cgsm.group_type_ = 'PRACTICE'
         WHERE cgsm.user_id_ = #{userId}
           AND cgsm.status_ != 'QUIT'
@@ -1773,7 +1773,7 @@
     <select id="queryMusicGroupIdsWithoutOverGroup" resultMap="com.ym.mec.biz.dal.dao.GroupDao.Group">
         SELECT DISTINCT spo.music_group_id_ group_id_,cgsm.group_type_ FROM student_payment_order spo
         LEFT JOIN class_group_student_mapper cgsm ON spo.music_group_id_ = cgsm.music_group_id_
-        LEFT JOIN vip_group vg ON vg.id_=spo.music_group_id_ AND spo.group_type_='VIP' AND vg.group_status_!=7
+        LEFT JOIN vip_group vg ON vg.id_=spo.music_group_id_ AND spo.group_type_ IN ('VIP', 'LIVE') AND vg.group_status_!=7
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         WHERE spo.type_ != 'OTHER' AND spo.music_group_id_ IS NOT NULL
         AND spo.user_id_ = #{userId} AND spo.status_='SUCCESS' AND cgsm.status_ != 'QUIT'
@@ -1785,7 +1785,7 @@
         SELECT COUNT(DISTINCT spo.music_group_id_)
         FROM student_payment_order spo
                  LEFT JOIN class_group_student_mapper cgsm ON spo.music_group_id_ = cgsm.music_group_id_
-                 LEFT JOIN vip_group vg ON vg.id_ = spo.music_group_id_ AND spo.group_type_ = 'VIP' AND vg.group_status_!=7
+                 LEFT JOIN vip_group vg ON vg.id_ = spo.music_group_id_ AND spo.group_type_ IN ('VIP', 'LIVE') AND vg.group_status_!=7
                  LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         WHERE spo.type_ != 'OTHER'
           AND spo.music_group_id_ IS NOT NULL

+ 3 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -263,7 +263,9 @@
 	<sql id="vipGroupSalaryQueryCondition">
 		<where>
 			vg.id_=#{vipGroupId}
-			AND cs.group_type_='VIP'
+			<if test="groupType != null">
+				AND cs.group_type_= #{groupType}
+			</if>
 			<if test="startTime!=null and endTime!=null">
 				AND (cs.class_date_ BETWEEN #{startTime} AND #{endTime})
 			</if>

+ 7 - 2
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -563,7 +563,9 @@
         LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
         LEFT JOIN sys_user_cash_account suaa ON cgsm.user_id_=suaa.user_id_
         WHERE cg.music_group_id_=#{vipGroupId}
-        AND cg.group_type_='VIP'
+        <if test="groupType != null">
+            AND cg.group_type_= #{groupType}
+        </if>
         AND cgsm.user_id_ IS NOT NULL
         ORDER BY su.id_
         <include refid="global.limit"/>
@@ -644,7 +646,10 @@
 
     <sql id="teachingRecordQueryCondition">
         <where>
-            cs.music_group_id_=#{vipGroupId} AND cs.group_type_='VIP'
+            cs.music_group_id_=#{vipGroupId}
+            <if test="groupType != null">
+                AND cs.group_type_= #{groupType}
+            </if>
             <if test="startTime!=null and endTime!=null">
                 AND (cs.class_date_ BETWEEN #{startTime} AND #{endTime})
             </if>

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

@@ -143,14 +143,25 @@ public class VipGroupManageController extends BaseController {
         if(Objects.isNull(teacher)){
             return failed("请指定指导老师!");
         }
-        if(Objects.isNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId())){
-            Integer firstStudentId = vipGroupApplyDto.getVipGroupApplyBaseInfo().getFirstStudentId();
-            SysUser student = teacherDao.getUser(firstStudentId);
-            if(Objects.isNull(student)||Objects.isNull(student.getOrganId())){
-                return failed("学员信息异常");
+
+        // 设置默认参数VIP
+        if (StringUtils.isBlank(vipGroupApplyDto.getVipGroupApplyBaseInfo().getGroupType())) {
+            vipGroupApplyDto.getVipGroupApplyBaseInfo().setGroupType(CourseSchedule.CourseScheduleType.VIP.getCode());
+        }
+
+        // VIP课参数校验
+        if (CourseSchedule.CourseScheduleType.VIP.getCode().equals(vipGroupApplyDto.getVipGroupApplyBaseInfo().getGroupType())) {
+
+            if(Objects.isNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId())){
+                Integer firstStudentId = vipGroupApplyDto.getVipGroupApplyBaseInfo().getFirstStudentId();
+                SysUser student = teacherDao.getUser(firstStudentId);
+                if(Objects.isNull(student)||Objects.isNull(student.getOrganId())){
+                    return failed("学员信息异常");
+                }
+                vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(student.getOrganId());
             }
-            vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(student.getOrganId());
         }
+
         return vipGroupService.createVipGroup(vipGroupApplyDto);
     }