Selaa lähdekoodia

Merge remote-tracking branch 'origin/feature/0529-live' into feature/0529-live

shangke 2 vuotta sitten
vanhempi
commit
923c376401
100 muutettua tiedostoa jossa 3776 lisäystä ja 1032 poistoa
  1. 2 1
      .gitignore
  2. 845 0
      .idea/httpRequests/http-requests-log.http
  3. 17 6
      cms/src/main/java/com/ym/mec/cms/controller/NewsController.java
  4. 7 1
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/enums/SysUserType.java
  5. 2 0
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/enums/YesOrNoEnum.java
  6. 2 2
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/PhoneLoginAuthenticationFilter.java
  7. 34 4
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/UsernameAuthenticationFilter.java
  8. 29 20
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/handler/BaseAuthenticationSuccessEventHandler.java
  9. 46 15
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/provider/PhoneAuthenticationProvider.java
  10. 6 3
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/TokenController.java
  11. 10 0
      mec-biz/pom.xml
  12. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/annotation/PushSchoolCourseChange.java
  13. 32 0
      mec-biz/src/main/java/com/ym/mec/biz/aspect/PushSchoolCourseChangeAspect.java
  14. 9 11
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  15. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java
  16. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CooperationOrganDao.java
  17. 16 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  18. 48 18
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupDao.java
  19. 25 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupMemberDao.java
  20. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImUserFriendDao.java
  21. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java
  22. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LessonExaminationDao.java
  23. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  24. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupQuitDao.java
  25. 41 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java
  26. 15 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java
  27. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  28. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  29. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectDao.java
  30. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysNewsInformationDao.java
  31. 28 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java
  32. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HumanTypeDto.java
  33. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImGroupMemberDto.java
  34. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentImportDto.java
  35. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/OASummaryExpensesDto.java
  36. 29 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SchoolIndexStatDto.java
  37. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SubFeeSettingDto.java
  38. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SysMessageDto.java
  39. 14 104
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupStudentDto.java
  40. 12 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ClassGroup.java
  41. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CooperationOrgan.java
  42. 72 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CoursePatrolEvaluation.java
  43. 28 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  44. 15 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroup.java
  45. 26 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupMember.java
  46. 15 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImSendGroupMessage.java
  47. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImUserFriend.java
  48. 13 590
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java
  49. 15 189
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupQuit.java
  50. 59 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SchoolActivity.java
  51. 75 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SchoolActivityDetail.java
  52. 39 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SchoolActivityDetailUser.java
  53. 74 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SchoolStaff.java
  54. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMessage.java
  55. 139 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysNewsInformation.java
  56. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/CourseStatusEnum.java
  57. 30 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EEvaluateProblemType.java
  58. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EEvaluateStatus.java
  59. 66 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EFriendRoleType.java
  60. 42 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EGroupGradeType.java
  61. 27 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EInGroupStatus.java
  62. 6 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ELessonTrainingType.java
  63. 27 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ESchoolActivityProgramType.java
  64. 25 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ESchoolActivityStatus.java
  65. 30 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ESchoolActivityType.java
  66. 40 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/FivePlusGradeEnum.java
  67. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/HumanCostTypeEnum.java
  68. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java
  69. 40 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  70. 77 39
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SixPlusGradeEnum.java
  71. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/StudentAttendanceStatusEnum.java
  72. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/YesOrNoEnum.java
  73. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/school/EQuitGroupAuditStatusEnum.java
  74. 66 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/school/ESchoolStaffType.java
  75. 28 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/CoursePatrolEvaluationMapper.java
  76. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/CourseSchedulePlusMapper.java
  77. 27 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolActivityDetailMapper.java
  78. 27 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolActivityDetailUserMapper.java
  79. 31 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolActivityMapper.java
  80. 47 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolStaffMapper.java
  81. 18 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/StudentPlusMapper.java
  82. 60 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/ClassesForDayDto.java
  83. 30 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/CourseStudentDto.java
  84. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/MusicGroupQuitDetailDto.java
  85. 35 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/MusicGroupQuitPageDto.java
  86. 37 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/NewsInformationDto.java
  87. 46 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/TeacherAttendanceDto.java
  88. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/TeacherAttendanceListDto.java
  89. 33 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/TeacherAttendanceSumDto.java
  90. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/MusicGroupQuitQueryInfo.java
  91. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryDto.java
  92. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryDto1.java
  93. 70 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryInfo.java
  94. 285 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/CoursePatrolEvaluationWrapper.java
  95. 46 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DailySummaryOfClassesForTheCurrentSemesterWrapper.java
  96. 35 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeWrapper.java
  97. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/ImGroupWrapper.java
  98. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/LiveGroupWrapper.java
  99. 63 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/SchoolActivityDetailUserWrapper.java
  100. 125 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/SchoolActivityDetailWrapper.java

+ 2 - 1
.gitignore

@@ -40,4 +40,5 @@ mvnw.cmd
 **/logback-test.xml
 
 /bin/
-**/logback-spring.xml
+**/logback-spring.xml
+**/*.log

+ 845 - 0
.idea/httpRequests/http-requests-log.http

@@ -0,0 +1,845 @@
+POST http://127.0.0.1:8005/studentManage/userPage
+Authorization: bearer b897da27-5a37-47df-8e76-54d80a61a55d
+Content-Type: application/json
+coopId: 25
+Content-Length: 137
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "一",
+//    "musicGroupId": 23050516201200001,
+  //  "subjectId": 2,
+  //  "vipFlag": true,
+//  "studentId": 2248340
+
+}
+
+<> 2023-06-02T201036.200.json
+
+###
+
+POST http://127.0.0.1:8005/studentManage/userDetail
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+coopId: 25
+Content-Length: 63
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "studentId": 2248340,
+  "musicGroupId": 23042419330600001
+}
+
+<> 2023-06-02T201028.200.json
+
+###
+
+POST http://127.0.0.1:8005/studentManage/userPage
+Authorization: bearer b897da27-5a37-47df-8e76-54d80a61a55d
+Content-Type: application/json
+coopId: 25
+Content-Length: 137
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "一",
+//    "musicGroupId": 23050516201200001,
+  //  "subjectId": 2,
+  //  "vipFlag": true,
+//  "studentId": 2248340
+
+}
+
+<> 2023-06-02T195056.200.json
+
+###
+
+POST http://127.0.0.1:8005/studentManage/userPage
+Authorization: bearer b897da27-5a37-47df-8e76-54d80a61a55d
+Content-Type: application/json
+coopId: 14
+Content-Length: 137
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "一",
+//    "musicGroupId": 23050516201200001,
+  //  "subjectId": 2,
+  //  "vipFlag": true,
+//  "studentId": 2248340
+
+}
+
+<> 2023-06-02T194927.200.json
+
+###
+
+POST http://127.0.0.1:8005/studentManage/userPage
+Authorization: bearer b897da27-5a37-47df-8e76-54d80a61a55d
+Content-Type: application/json
+coopId: 14
+Content-Length: 137
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "一",
+//    "musicGroupId": 23050516201200001,
+  //  "subjectId": 2,
+  //  "vipFlag": true,
+//  "studentId": 2248340
+
+}
+
+<> 2023-06-02T194743.200.json
+
+###
+
+POST http://127.0.0.1:8005/studentManage/userPage
+Authorization: bearer b897da27-5a37-47df-8e76-54d80a61a55d
+Content-Type: application/json
+coopId: 14
+Content-Length: 137
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "一",
+//    "musicGroupId": 23050516201200001,
+  //  "subjectId": 2,
+  //  "vipFlag": true,
+//  "studentId": 2248340
+
+}
+
+<> 2023-06-02T194634.200.json
+
+###
+
+POST http://127.0.0.1:8005/studentManage/userPage
+Authorization: bearer 3f804d4e-b7f0-41ad-8dbf-119a0c54becc
+Content-Type: application/json
+coopId: 14
+Content-Length: 137
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "一",
+//    "musicGroupId": 23050516201200001,
+  //  "subjectId": 2,
+  //  "vipFlag": true,
+//  "studentId": 2248340
+
+}
+
+<> 2023-06-02T194506.200.json
+
+###
+
+GET http://127.0.0.1:8005/schoolActivity/detail/16
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-02T182950.200.json
+
+###
+
+GET http://127.0.0.1:8005/schoolActivity/detail/16
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-02T182849.200.json
+
+###
+
+GET http://127.0.0.1:8005/schoolActivity/detail/16
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-02T182844.200.json
+
+###
+
+GET http://127.0.0.1:8005/vipGroupManage/liveGroupDetail/96
+Authorization: bearer b897da27-5a37-47df-8e76-54d80a61a55d
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-02T163244.200.json
+
+###
+
+GET http://127.0.0.1:8005/open/sysConfig/queryByParamName?paramName=open_coop_id
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-02T093159.200.json
+
+###
+
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+coopId: 19
+tenantId: 1
+Content-Length: 127
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 23,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "小石",
+  "mobile": "15599993302",
+  "smsCode" : 666666
+}
+
+<> 2023-06-01T212120.200.json
+
+###
+
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+coopId: 19
+tenantId: 1
+Content-Length: 130
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 23,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "测试113",
+  "mobile": "19900990155",
+  "smsCode" : 666666
+}
+
+<> 2023-06-01T205245.200.json
+
+###
+
+POST http://127.0.0.1:8005/schoolStaff/remove?id=1856
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+tenantId: 1
+Content-Length: 0
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-01T204922.200.json
+
+###
+
+POST http://127.0.0.1:8005/schoolStaff/remove?id=1040
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+tenantId: 1
+Content-Length: 0
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-01T204556.200.json
+
+###
+
+POST http://127.0.0.1:8005/schoolStaff/remove?id=1040
+Authorization: bearer 3f804d4e-b7f0-41ad-8dbf-119a0c54becc
+tenantId: 1
+Content-Length: 0
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-01T204521.200.json
+
+###
+
+GET http://127.0.0.1:9001/studentOrder/setSuccessStatus
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-01T203947.200.json
+
+###
+
+GET http://127.0.0.1:9001/studentOrder/setSuccessStatus
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-01T203823.200.json
+
+###
+
+GET http://127.0.0.1:9001/studentOrder/setSuccessStatus
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-01T202754.200.json
+
+###
+
+GET http://127.0.0.1:9001/studentOrder/setSuccessStatus
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-01T202246.200.json
+
+###
+
+GET http://127.0.0.1:9001/studentOrder/setSuccessStatus
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-06-01T202120.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer cc492cd7-4ba9-413c-a7e9-d9d9b44f6d07
+Content-Type: application/json
+Content-Length: 144
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+  "roleType": "STUDENT",
+  "musicGroupId": "23050514590600001",
+//  "lockFlag": false
+}
+
+<> 2023-06-01T195106.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer cc492cd7-4ba9-413c-a7e9-d9d9b44f6d07
+Content-Type: application/json
+Content-Length: 154
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+  "roleType": "ORCHESTRA_TEACHER",
+  "musicGroupId": "23050514590600001",
+//  "lockFlag": false
+}
+
+<> 2023-06-01T195052.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer cc492cd7-4ba9-413c-a7e9-d9d9b44f6d07
+Content-Type: application/json
+Content-Length: 154
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+  "roleType": "ORCHESTRA_MANAGER",
+  "musicGroupId": "23050514590600001",
+//  "lockFlag": false
+}
+
+<> 2023-06-01T195028.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 0fde0d90-4ffd-4d34-990c-eca290471d6b
+Content-Type: application/json
+Content-Length: 130
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+//    "groupType": "NORMAL",
+    "musicGroupId": "23050515070500001",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162816.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 0fde0d90-4ffd-4d34-990c-eca290471d6b
+Content-Type: application/json
+Content-Length: 118
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+//    "groupType": "NORMAL",
+//    "musicGroupId": "142",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162734.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 9bdd96e1-8895-4200-aba5-241e1cb12e3c
+Content-Type: application/json
+Content-Length: 118
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+//    "groupType": "NORMAL",
+//    "musicGroupId": "142",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162700.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+Content-Length: 118
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+//    "groupType": "NORMAL",
+//    "musicGroupId": "142",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162613.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+Content-Length: 116
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+    "groupType": "NORMAL",
+//    "musicGroupId": "142",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162603.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+Content-Length: 114
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+    "groupType": "NORMAL",
+    "musicGroupId": "142",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162557.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 114
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+    "groupType": "NORMAL",
+    "musicGroupId": "142",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162533.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 114
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+    "groupType": "NORMAL",
+    "musicGroupId": "142",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162517.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 118
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+//    "groupType": "NORMAL",
+//    "musicGroupId": "142",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162055.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 114
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+    "groupType": "NORMAL",
+    "musicGroupId": "142",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162047.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryGroupList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 132
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//    "keyword": "乐团预报名",
+//    "groupType": "NORMAL",
+//    "musicGroupId": "23050515070500001",
+  //  "roleType": ""
+}
+
+<> 2023-06-01T162031.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 154
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+  "roleType": "ORCHESTRA_MANAGER",
+  "musicGroupId": "23042416211000001",
+//  "lockFlag": false
+}
+
+<> 2023-06-01T161949.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 154
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+  "roleType": "ORCHESTRA_MANAGER",
+  "musicGroupId": "23042416211000001",
+//  "lockFlag": false
+}
+
+<> 2023-06-01T161053.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 156
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+//  "roleType": "ORCHESTRA_MANAGER",
+  "musicGroupId": "23042416211000001",
+//  "lockFlag": false
+}
+
+<> 2023-06-01T161046.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 156
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+//  "roleType": "ORCHESTRA_MANAGER",
+  "musicGroupId": "23042416211000001",
+//  "lockFlag": false
+}
+
+<> 2023-06-01T160758.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 158
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+//  "roleType": "ORCHESTRA_MANAGER",
+//  "musicGroupId": "23053118101300001",
+//  "lockFlag": false
+}
+
+<> 2023-06-01T160642.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 154
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+  "roleType": "ORCHESTRA_MANAGER",
+  "musicGroupId": "23053118101300001",
+//  "lockFlag": false
+}
+
+<> 2023-06-01T160633.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
+Authorization: bearer 241259a3-5563-410e-bed2-cd887f294b8b
+Content-Type: application/json
+Content-Length: 152
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+//  "keyword": "宁老师",
+//  "groupType": "SCHOOL",
+  "roleType": "ORCHESTRA_MANAGER",
+  "musicGroupId": "23053118101300001",
+  "lockFlag": false
+}
+
+<> 2023-06-01T160625.200.json
+
+###
+
+POST http://127.0.0.1:8005/studentManage/userDetail
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+coopId: 1
+Content-Length: 63
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "studentId": 2248340,
+  "musicGroupId": 23042419330600001
+}
+
+<> 2023-06-01T160136.200.json
+
+###
+
+POST http://127.0.0.1:8005/classGroup/teachingPointCourse
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+coopId: 7
+Content-Length: 68
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{"startTime":"2023-05-22","endTime":"2023-05-28","page":1,"rows":20}
+
+<> 2023-06-01T155146.200.json
+
+###
+
+POST http://127.0.0.1:8005/classGroup/teachingPointCourse
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+coopId: 7
+Content-Length: 68
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{"startTime":"2023-05-22","endTime":"2023-05-28","page":1,"rows":20}
+
+<> 2023-06-01T155031.200.json
+
+###
+
+POST http://127.0.0.1:8005/classGroup/teachingPointCourse
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+coopId: 7
+Content-Length: 68
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{"startTime":"2023-05-22","endTime":"2023-05-28","page":1,"rows":20}
+
+<> 2023-06-01T154820.200.json
+
+###
+
+POST http://127.0.0.1:8005/classGroup/teachingPointCourse
+Authorization: bearer 387ba749-39ac-4a02-a183-00cf8ac29f10
+Content-Type: application/json
+coopId: 7
+Content-Length: 68
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{"startTime":"2023-05-22","endTime":"2023-05-28","page":1,"rows":20}
+
+<> 2023-06-01T154745.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/updateImGroup
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+tenantId: 1
+Content-Length: 54
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+	"name": "考虑图",
+	"id": "1660958104046542850"
+}
+
+<> 2023-06-01T145140.200.json
+
+###
+
+POST http://127.0.0.1:8005/imGroup/updateImGroup
+Authorization: bearer 81d0c352-fcc8-4812-87f5-0f7a68d10451
+Content-Type: application/json
+Content-Length: 54
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+	"name": "考虑图",
+	"id": "1660958104046542850"
+}
+
+<> 2023-06-01T145016.200.json
+
+###
+

+ 17 - 6
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.cms.controller;
 
+import com.google.common.collect.Lists;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.cms.controller.queryinfo.NewsInformationQueryInfo;
@@ -34,6 +35,9 @@ import java.util.stream.Collectors;
 @Api(tags = "资讯服务")
 public class NewsController extends BaseController {
 
+    // 全局资讯类型
+    private static final List<Integer> globalNewsTypes = Lists.newArrayList(4, 6, 26, 29);
+
     @Autowired
     private SysNewsInformationService sysNewsInformationService;
     @Autowired
@@ -68,7 +72,7 @@ public class NewsController extends BaseController {
     @ApiOperation("资讯列表分页查询")
     @GetMapping(value = "/list")
     public Object getList(NewsInformationQueryInfo queryInfo) {
-        if (queryInfo.getType() == 6 || queryInfo.getType() == 4 || queryInfo.getType() == 26) {
+        if (Objects.nonNull(queryInfo.getType()) && globalNewsTypes.contains(queryInfo.getType())) {
             queryInfo.setTenantId(-1);
         }
         String clientId = queryInfo.getClientId();
@@ -85,7 +89,15 @@ public class NewsController extends BaseController {
             }
         }
 
-        Map<String, Object> params = new HashMap<String, Object>();
+        // 学校端排除部分条件
+        if (queryInfo.getType() == 29) {
+            // 重置分部编号列表
+            queryInfo.setOrganIdList(null);
+            // 重置分部编号
+            queryInfo.setOrganId(null);
+        }
+
+        Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
         int count = sysNewsInformationDao.queryCount(params);
         if (count == 0) {
@@ -98,8 +110,7 @@ public class NewsController extends BaseController {
     @GetMapping(value = "/queryPage")
     public Object queryPage(NewsInformationQueryInfo queryInfo) {
 
-        if (queryInfo.getType() != null
-                && (queryInfo.getType() == 6 || queryInfo.getType() == 4 || queryInfo.getType() == 26)) {
+        if (Objects.nonNull(queryInfo.getType()) && globalNewsTypes.contains(queryInfo.getType())) {
             queryInfo.setTenantId(-1);
         }
 
@@ -152,7 +163,7 @@ public class NewsController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('news/add')")
     public Object add(SysNewsInformation newsInfo) {
 
-        if (newsInfo.getType() == 6 || newsInfo.getType() == 4 || newsInfo.getType() == 26) {
+        if (Objects.nonNull(newsInfo.getType()) && globalNewsTypes.contains(newsInfo.getType())) {
             newsInfo.setTenantId(-1);
         }
         /*if (newsInfo.getContent().length() > 7999) {
@@ -175,7 +186,7 @@ public class NewsController extends BaseController {
         if (newsInfo.getType() == null) {
             newsInfo.setType(originNewsInfo.getType());
         }
-        if (newsInfo.getType() == 6 || newsInfo.getType() == 4 || newsInfo.getType() == 26) {
+        if (Objects.nonNull(newsInfo.getType()) && globalNewsTypes.contains(newsInfo.getType())) {
             newsInfo.setTenantId(-1);
         }
         return succeed(sysNewsInformationService.update(newsInfo));

+ 7 - 1
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/enums/SysUserType.java

@@ -7,7 +7,13 @@ import com.ym.mec.common.enums.BaseEnum;
 
 public enum SysUserType implements BaseEnum<String, SysUserType> {
 
-	STUDENT("学生"), EDUCATION("教务老师"), TEACHER("指导老师"), SYSTEM("系统內置"), ADMIN("管理员");
+	STUDENT("学生"),
+	EDUCATION("教务老师"),
+	TEACHER("指导老师"),
+	SYSTEM("系统內置"),
+	ADMIN("管理员"),
+	SCHOOL("学校员工"),
+	;
 
 	private String desc;
 

+ 2 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/enums/YesOrNoEnum.java

@@ -1,11 +1,13 @@
 package com.ym.mec.auth.api.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.ym.mec.common.enums.BaseEnum;
 
 public enum YesOrNoEnum implements BaseEnum<Integer, YesOrNoEnum> {
     NO(0,"否"),
     YES(1,"是");
 
+    @EnumValue
     private Integer code;
     private String msg;
 

+ 2 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/PhoneLoginAuthenticationFilter.java

@@ -59,9 +59,9 @@ public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProces
 		boolean isRegister = StringUtils.equals("1", isLessee) || StringUtils.equals("true", isLessee);
 
 		String clientId = request.getParameter("clientId").toUpperCase();
-		if ("EDUCATION".equals(clientId)) {
+		/*if ("EDUCATION".equals(clientId)) {
 			clientId = "SYSTEM";
-		}
+		}*/
 		String deviceNum = request.getParameter("deviceNum");
 
 		principal = principal.trim();

+ 34 - 4
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/UsernameAuthenticationFilter.java

@@ -23,6 +23,9 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 
 public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
 
@@ -75,11 +78,38 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 		} else {
 
 			if("EDUCATION".equals(clientId)){
-				clientId = "SYSTEM";
-			}
-			if (!userInfo.getSysUser().getUserType().contains(clientId)) {
-				throw new LockedException("用户不存在");
+				//clientId = "SYSTEM";
+				List<String> collect = Arrays.stream(userInfo.getSysUser().getUserType().split(","))
+						.map(String::toUpperCase)
+						.collect(Collectors.toList());
+
+				// 用户身份匹配标识
+				boolean matchFlag = false;
+				// 管理端登录身份
+				if (collect.contains(SysUserType.SYSTEM.getCode())) {
+
+					clientId = SysUserType.SYSTEM.getCode();
+					// 重置匹配状态
+					matchFlag = true;
+				}
+				// 学校员工身份
+				if (collect.contains(SysUserType.SCHOOL.getCode())) {
+					clientId = SysUserType.SCHOOL.getCode();
+					// 重置匹配状态
+					matchFlag = true;
+				}
+				// 管理端登录或学校员工登录身份匹配
+				if (!matchFlag) {
+					throw new LockedException("用户不存在");
+				}
+
+			} else {
+				// 非管理端登录
+				if (!userInfo.getSysUser().getUserType().contains(clientId)) {
+					throw new LockedException("用户不存在");
+				}
 			}
+
 		}
 		
 		// 检查设备

+ 29 - 20
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/handler/BaseAuthenticationSuccessEventHandler.java

@@ -1,20 +1,19 @@
 package com.ym.mec.auth.core.handler;
 
-import java.io.IOException;
-import java.util.Base64;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.api.entity.SysUserLogin;
+import com.ym.mec.auth.api.entity.SysUserLoginLog;
+import com.ym.mec.auth.api.enums.SysUserType;
+import com.ym.mec.auth.service.SysUserLoginLogService;
+import com.ym.mec.auth.service.SysUserLoginService;
+import com.ym.mec.auth.service.SysUserService;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
+import com.ym.mec.common.security.SecurityConstants;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.web.WebFeignService;
-
-import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -36,15 +35,15 @@ import org.springframework.security.oauth2.provider.token.AuthorizationServerTok
 import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
 import org.springframework.stereotype.Component;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.auth.api.entity.SysUserLogin;
-import com.ym.mec.auth.api.entity.SysUserLoginLog;
-import com.ym.mec.auth.service.SysUserLoginLogService;
-import com.ym.mec.auth.service.SysUserLoginService;
-import com.ym.mec.auth.service.SysUserService;
-import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.security.SecurityConstants;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Base64;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Component
 public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuthenticationSuccessHandler {
@@ -156,6 +155,16 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
 			map.put("tenantId", tenantId);
 			map.put("companyId", sysUser.getTenantId());
 
+			// 设置登录管户端类型
+			if (clientId.toUpperCase().equals(SysUserType.EDUCATION.getCode())) {
+
+				String collect = Arrays.stream(sysUser.getUserType().split(","))
+						.filter(x -> x.equals(SysUserType.SYSTEM.getCode()) || x.equals(SysUserType.SCHOOL.getCode()))
+						.collect(Collectors.joining(","));
+				// 登录客户端类型
+				map.put("clientType", collect);
+			}
+
 			response.setContentType("application/json; charset=utf-8");
 			HttpResponseResult result = new HttpResponseResult(true, HttpStatus.OK.value(), map, "");
 			response.getWriter().write(objectMapper.writeValueAsString(result));

+ 46 - 15
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/provider/PhoneAuthenticationProvider.java

@@ -1,11 +1,14 @@
 package com.ym.mec.auth.core.provider;
 
+import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
+import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.web.controller.queryInfo.QRLoginDto;
 import com.ym.mec.common.redis.service.RedisCache;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.authentication.InternalAuthenticationServiceException;
 import org.springframework.security.authentication.LockedException;
@@ -86,22 +89,47 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
             userInfo = sysUserService.queryUserInfoByPhone(phone);
         }
 
-        if (userInfo == null) {
-            if (isRegister == false || StringUtils.equals("SYSTEM", clientId)) {
-                throw new LockedException("用户不存在");
-            }
+		if (userInfo == null) {
 
-            userInfo = sysUserService.initUser(loginEntity.getTenantId(), loginEntity.getOrganId(), loginEntity.getPhone(), clientId);
+			// 强制默认管理登录类型
+			if ("EDUCATION".equals(clientId)) {
+				clientId = "SYSTEM";
+			}
 
-            if (StringUtils.isNotBlank(deviceNum)) {
-                sysUserDeviceService.bindDevice(clientId, userInfo.getSysUser().getId(), deviceNum, userInfo.getSysUser().getTenantId());
-            }
-        } else {
-            SysUser user = userInfo.getSysUser();
-            if (user == null) {
-                throw new LockedException("用户不存在");
-            }
-            //如果机构不一致,不允许跨机构注册
+			if (isRegister == false || StringUtils.equals("SYSTEM", clientId)) {
+				throw new LockedException("用户不存在");
+			}
+
+			userInfo = sysUserService.initUser(loginEntity.getTenantId(), loginEntity.getOrganId(), loginEntity.getPhone(), clientId);
+
+			if (StringUtils.isNotBlank(deviceNum)) {
+				sysUserDeviceService.bindDevice(clientId, userInfo.getSysUser().getId(), deviceNum, userInfo.getSysUser().getTenantId());
+			}
+		} else {
+			SysUser user = userInfo.getSysUser();
+			if (user == null) {
+				throw new LockedException("用户不存在");
+			}
+
+			// 管理端登录或学校端登录
+			if(SysUserType.EDUCATION.getCode().equals(clientId.toUpperCase())){
+
+				List<String> collect = Arrays.stream(userInfo.getSysUser().getUserType().split(","))
+						.map(String::toUpperCase)
+						.collect(Collectors.toList());
+
+				// 管理端登录身份
+				if (collect.contains(SysUserType.SYSTEM.getCode())) {
+					clientId = SysUserType.SYSTEM.getCode();
+				}
+
+				// 学校员工身份
+				if (collect.contains(SysUserType.SCHOOL.getCode())) {
+					clientId = SysUserType.SCHOOL.getCode();
+				}
+			}
+
+			//如果机构不一致,不允许跨机构注册
 //			if(loginEntity.getTenantId() != null && loginEntity.getTenantId() != 0 &&
 //					!loginEntity.getTenantId().equals(user.getTenantId())){
 //				throw new LockedException("用户已注册");
@@ -118,6 +146,9 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
                     user.setUserType(user.getUserType() + "," + clientId);
                     user.setUpdateTime(new Date());
 
+                    if (userInfo.getSysUser().getUserType().contains("SCHOOL")) {
+                        throw new LockedException("用户已存在学校账户");
+                    }
                     // 添加userType以及附加信息
                     if (StringUtils.equals("STUDENT", clientId)) {
                         if (StringUtils.isBlank(loginEntity.getOrganId())) {

+ 6 - 3
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/TokenController.java

@@ -177,10 +177,13 @@ public class TokenController extends BaseController {
 
 		Collection<OAuth2AccessToken> list = tokenStore.findTokensByClientIdAndUserName(clientId, SecurityConstants.PHONE_PRINCIPAL_PREFIX + phone);
 
-		if (list == null || list.size() == 0) {
-			list = tokenStore.findTokensByClientIdAndUserName(clientId, SecurityConstants.USERNAME_PRINCIPAL_PREFIX + phone);
+        Collection<OAuth2AccessToken> tokensByClientIdAndUserName = tokenStore.findTokensByClientIdAndUserName(clientId, SecurityConstants.USERNAME_PRINCIPAL_PREFIX + phone);
+        if (list == null || list.size() == 0) {
+			list = tokensByClientIdAndUserName;
 		} else {
-			list.addAll(tokenStore.findTokensByClientIdAndUserName(clientId, SecurityConstants.USERNAME_PRINCIPAL_PREFIX + phone));
+            if (tokensByClientIdAndUserName != null && tokensByClientIdAndUserName.size() > 0) {
+                list.addAll(tokensByClientIdAndUserName);
+            }
 		}
 		if (list != null) {
 			for (OAuth2AccessToken accessToken : list) {

+ 10 - 0
mec-biz/pom.xml

@@ -73,6 +73,16 @@
 			<groupId>org.jetbrains.kotlin</groupId>
 			<artifactId>kotlin-stdlib</artifactId>
 		</dependency>
+        <dependency>
+            <groupId>com.microsvc.toolkit.config</groupId>
+            <artifactId>microsvc-config-validator</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.microsvc.toolkit.middleware</groupId>
+            <artifactId>microsvc-middleware-im</artifactId>
+            <version>1.0.0</version>
+        </dependency>
 
     </dependencies>
 </project>

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/annotation/PushSchoolCourseChange.java

@@ -0,0 +1,17 @@
+package com.ym.mec.biz.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface PushSchoolCourseChange {
+
+    //课程编号
+    long courseId();
+
+    //事件、1创建,2修改
+    int event();
+}

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/aspect/PushSchoolCourseChangeAspect.java

@@ -0,0 +1,32 @@
+package com.ym.mec.biz.aspect;
+
+import com.ym.mec.biz.annotation.PushSchoolCourseChange;
+import com.ym.mec.biz.service.CourseScheduleModifyLogService;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+
+@Aspect
+public class PushSchoolCourseChangeAspect {
+
+    @Pointcut("@annotation(pushSchoolCourseChange)")
+    public void courseChange(PushSchoolCourseChange pushSchoolCourseChange){}
+
+    @Autowired
+    private CourseScheduleModifyLogService courseScheduleModifyLogService;
+
+    @AfterReturning(pointcut = "courseChange(pushSchoolCourseChange)")
+    public void afterPush(JoinPoint joinPoint, PushSchoolCourseChange pushSchoolCourseChange){
+        long courseId = pushSchoolCourseChange.courseId();
+        int event = pushSchoolCourseChange.event();
+        //事件、1创建,2修改
+        if(event == 1){
+            courseScheduleModifyLogService.pushSchoolCourseCreate(courseId);
+        }else {
+            courseScheduleModifyLogService.pushSchoolCourseChange(courseId);
+        }
+
+    }
+}

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

@@ -4,20 +4,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.CourseScheduleStatistics;
 import org.apache.ibatis.annotations.Param;
 
-import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
-import com.ym.mec.biz.dal.dto.ConditionDto;
-import com.ym.mec.biz.dal.dto.CourseListDto;
-import com.ym.mec.biz.dal.dto.HighClassGroupDto;
-import com.ym.mec.biz.dal.dto.Mapper;
-import com.ym.mec.biz.dal.dto.MusicGroupClassGroupDto;
-import com.ym.mec.biz.dal.dto.MusicGroupCourseScheduleDto;
-import com.ym.mec.biz.dal.dto.StudentPayInfoDto;
-import com.ym.mec.biz.dal.dto.SuperClassGroupDto;
-import com.ym.mec.biz.dal.dto.TeacherClassGroupDto;
-import com.ym.mec.biz.dal.dto.TeacherMusicClassInfoDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
@@ -871,4 +861,12 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     void addClassTimes(@Param("classGroupId") Integer classGroupId, @Param("num") Integer num);
 
     List<ClassGroup> queryByIds(@Param("classIds") List<Integer> classIds);
+
+    int teachingPointRemind(@Param("cooperationOrganId") Integer cooperationOrganId);
+
+    void updateTeachingPointById(@Param("param") ClassGroup classGroup);
+
+    List<BaseMapDto> queryClassGroup(@Param("coopId") Integer coopId);
+
+    List<ClassGroup> getClassGroupByMusicIds(@Param("musicGroupIds") List<String> musicGroupIds);
 }

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

@@ -161,4 +161,15 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
                                                @Param("groupType") GroupType groupType);
 
     List<Integer> queryClassIdByTeacher(@Param("groupType") GroupType groupType, @Param("mainTeacherUserId") Integer mainTeacherUserId);
+
+    /**
+     * 根据班乐团ID查询班级老师关联关系
+     *
+     * @param musicGroupIds 乐团编号
+     */
+    List<ClassGroupTeacherMapper> findAllByMusicGroupIds(@Param("musicGroupIds") List<String> musicGroupIds);
+
+    List<ClassGroupTeacherMapper> getByMusicGroupId(@Param("musicGroupId") String musicGroupId);
+
+    int count(@Param("ids") List<String> ids, @Param("teacherId") long teacherId);
 }

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

@@ -88,4 +88,6 @@ public interface CooperationOrganDao extends BaseDAO<Integer, CooperationOrgan>
     * @date 2022/3/17 11:36
     */
     List<Map<Integer, String>> findFirstMusic();
+
+    List<CooperationOrgan> queryByOrganIdAndEnable(@Param("organId") String organId, @Param("enable") Boolean enable);
 }

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

@@ -6,6 +6,8 @@ import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.page.CourseDetailQueryInfo;
+import com.ym.mec.biz.dal.school.dto.ClassesForDayDto;
+import com.ym.mec.biz.dal.wrapper.DailySummaryOfClassesForTheCurrentSemesterWrapper;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -2008,6 +2010,20 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     void updateGroupMuteAllStatus(@Param("courseScheduleId") Long courseScheduleId, @Param("muteAll") Boolean muteAll);
 
+    void updateTeachingPointByClassGroupId(@Param("classGroupId") Integer classGroupId, @Param("teachingPoint") String teachingPoint);
+
+    List<DailySummaryOfClassesForTheCurrentSemesterWrapper.DailySummaryOfClassesForTheCurrentSemesterDetailDto> getSummaryOfCurrentSemesterCourses(@Param("musicGroupIds") List<String> musicGroupIds,
+                                                                                                                                  @Param("startTerm") String startTerm,
+                                                                                                                                  @Param("endTerm") String endTerm);
+
+    List<DailySummaryOfClassesForTheCurrentSemesterWrapper.DailySummaryOfClassesForTheCurrentSemesterDto> getDailySummaryOfClassesForTheCurrentSemester(@Param("musicGroupIds") List<String> musicGroupIds,
+                                                                                                                                                        @Param("startTerm") String startTerm,
+                                                                                                                                                        @Param("endTerm") String endTerm);
+
+    List<ClassesForDayDto> getListClassesForDay(@Param("musicGroupIds") List<String> musicGroupIds, @Param("classDate") String classDate, @Param("courseId") Long courseId);
+
+    List<CourseSchedule> getByTeacherAndTime(@Param("teacherId") Integer teacherId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
     /**
      * 直播课需要通知的课程
      */

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

@@ -3,6 +3,9 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.NameDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.enums.EFriendRoleType;
+import com.ym.mec.biz.dal.enums.school.ESchoolStaffType;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
@@ -10,30 +13,33 @@ import java.util.List;
 
 public interface ImGroupDao extends BaseDAO<String, ImGroup> {
 
-	ImGroup getLocked(String imGroupId);
+    ImGroup getLocked(String imGroupId);
 
-	/**
-	 * 查询用户所在的群列表
-	 * @param userId
-	 * @param search
-	 * @return
-	 */
-	List<ImGroup> queryByUserId(@Param("userId") Integer userId,
-								@Param("search") String search,
-								@Param("groupType") String groupType);
+    /**
+     * 查询用户所在的群列表
+     *
+     * @param userId
+     * @param search
+     * @return
+     */
+    List<ImGroup> queryByUserId(@Param("userId") Integer userId,
+                                @Param("search") String search,
+                                @Param("groupType") String groupType);
 
-	/**
-	 * 查询群成员列表
-	 * @param imGroupId
-	 * @return
-	 */
-	List<ImGroupMemberDto> queryMemberById(String imGroupId);
+    /**
+     * 查询群成员列表
+     *
+     * @param imGroupId
+     * @param search
+     * @return
+     */
+    List<ImGroupMemberDto> queryMemberById(@Param("imGroupId") String imGroupId, @Param("search") String search);
 
-	ImGroupMemberDto queryMember(@Param("imGroupId") String imGroupId, @Param("userId") Integer userId);
+    ImGroupMemberDto queryMember(@Param("imGroupId") String imGroupId, @Param("userId") Integer userId);
 
     int updateNickname(@Param("userId") Integer userId, @Param("nickName") String nickName);
 
-	int updateUserFriendNickname(@Param("userId") Integer userId, @Param("nickName") String nickName);
+    int updateUserFriendNickname(@Param("userId") Integer userId, @Param("nickName") String nickName);
 
     void updateMemberNum();
 
@@ -42,4 +48,28 @@ public interface ImGroupDao extends BaseDAO<String, ImGroup> {
     List<ImGroup> queryByUserIdV2(@Param("userId") Integer userId, @Param("search") String search, @Param("groupType") String groupType, @Param("musicGroupId") String musicGroupId, @Param("classType") String classType);
 
     List<ImGroupMemberDto> queryMemberByIdV2(@Param("imGroupId") String imGroupId, @Param("search") String search, @Param("subjectId") Integer subjectId, @Param("vipFlag") Boolean vipFlag);
+
+    ImGroup queryBySchoolId(@Param("schoolId") Long schoolId);
+
+    List<ImGroup> getByIds(@Param("musicGroupIds") List<String> musicGroupIds);
+
+    /**
+     * 批量添加群成员数量
+     *
+     * @param imGroupIds
+     * @param i
+     */
+    void addMemberNum(@Param("imGroupIds") List<String> imGroupIds, @Param("num") int i);
+
+    List<ImGroup> getByUserId(@Param("param") ImGroupWrapper.ImQuery query);
+
+    int updateMember(@Param("imGroupId") String imGroupId, @Param("num") int num);
+
+    /**
+     * 修改学校信息
+     *
+     * @param userId
+     * @param userType
+     */
+    void updateSchoolRoleType(@Param("userId") Long userId, @Param("userType") EFriendRoleType userType);
 }

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupMemberDao.java

@@ -35,4 +35,29 @@ public interface ImGroupMemberDao extends BaseDAO<Long, ImGroupMember> {
     int countGroupMember(Map<String, Object> params);
 
 	List<ImGroupMemberDto> queryGroupMemberPage(Map<String, Object> params);
+
+    List<ImGroupMember> queryMembersByUserId(@Param("userId") Long userId);
+
+    void deleteByUserId(Long userId);
+
+    /**
+     *  查询群组
+     *
+     * @param imGroupId 群组id
+     */
+    ImGroupMember getAdmin(@Param("imGroupId") String imGroupId);
+
+    void updateAdmin(@Param("imGroupId") String imGroupId, @Param("userId") Integer userId);
+
+    /**
+     * 查询一个群组成员
+     *
+     * @param imGroupId 群组id
+     * @param userId    用户id
+     */
+    ImGroupMember queryOneByGroupIdAndNotUser(@Param("imGroupId") String imGroupId, @Param("userId") Long userId);
+
+    List<ImGroupMember> getByGroupId(@Param("musicGroupIds") List<String> musicGroupId);
+
+    void delByImGroupAndUserId(@Param("imGroupId") String imGroupId, @Param("userIds") List<Integer> userIds);
 }

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

@@ -4,6 +4,7 @@ import java.util.Collection;
 import java.util.List;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.NameDto;
+import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import org.apache.ibatis.annotations.Param;
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
 import com.ym.mec.biz.dal.entity.ImUserFriend;
@@ -43,4 +44,13 @@ public interface ImUserFriendDao extends BaseDAO<Long, ImUserFriend> {
     List<NameDto> queryNameByIds(@Param("ids") String ids, @Param("userId") Integer userId);
 
     List<ImUserFriendDto> queryFriendListByUserIdV2(@Param("userId") Integer userId, @Param("search") String search, @Param("musicGroupId") String musicGroupId, @Param("subjectId") Integer subjectId, @Param("vipFlag") Boolean vipFlag);
+
+    /**
+     *  删除好友关系
+     *
+     * @param userId 用户id
+     */
+    void deleteByUserIdAndFriendId(Long userId);
+
+    List<ImUserFriendDto> getFriendListByUserId(@Param("param") ImGroupWrapper.ImQuery query);
 }

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

@@ -449,4 +449,6 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
     List<DecimalMapDto> indexCoop(@Param("organIds") List<Integer> organIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     List<DecimalMapDto> indexImportCoop(@Param("organIds") List<Integer> organIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    IndexErrInfoDto getSchoolPatrolError(@Param("organIdList") Set<Integer> organIdList, @Param("tenantId") Integer tenantId);
 }

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

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dto.LessonExaminationResultDto2;
 import com.ym.mec.biz.dal.dto.LessonExaminationSaveDto;
 import com.ym.mec.biz.dal.entity.LessonExamination;
 import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.wrapper.SchoolIndexStatWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
@@ -40,5 +41,8 @@ public interface LessonExaminationDao extends BaseMapper<LessonExamination> {
     List<LessonExamination> queryEndList();
 
     List<Subject> querySubject(@Param("lessonExaminationId") Long lessonExaminationId);
+
+    SchoolIndexStatWrapper.StudentLesson schoolLessonStat(@Param("musicGroupIds") List<String> musicGroupIds,
+                                                          @Param("queryDto") SchoolIndexStatWrapper.QueryDto queryDto);
 }
 

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

@@ -527,4 +527,15 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
     List<Map<Integer, String>> queryUserEduMap(@Param("userIdList") List<Integer> userIdList);
 
     List<Map<Integer, String>> queryUserCoopMap(@Param("userIdList") List<Integer> userIdList);
+
+    /**
+    * @description: 根据合作单位获取进行中的乐团列表
+     * @param coopId
+    * @return java.util.List<java.lang.String>
+    * @author zx
+    * @date 2023/5/5 17:08
+    */
+    List<String> findNormalByCooperationId(@Param("coopId") Integer coopId);
+
+    List<MusicGroup> userMusicGroup(@Param("studentId") Integer studentId, @Param("coopId") Integer coopId, @Param("statusList") List<StudentMusicGroupStatusEnum> statusList);
 }

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupQuitDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
@@ -51,5 +52,25 @@ public interface MusicGroupQuitDao extends BaseDAO<Long, MusicGroupQuit> {
      */
     List<Map<Integer, Long>> queryQuitMapByStudentId(@Param("studentIds") Set<Long> studentIds, @Param("musicGroupId") String musicGroupId);
 
+    /**
+    * @description: 获取学校端退团审批列表
+     * @param params
+    * @return int
+    * @author zx
+    * @date 2023/5/11 09:38
+    */
+    int countBySchool(Map<String, Object> params);
+
+    /**
+    * @description: 获取学校端退团审批列表
+     * @param params
+    * @return java.util.List<com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto>
+    * @author zx
+    * @date 2023/5/11 09:39
+    */
+    List<MusicGroupQuitPageDto> queryPageBySchool(Map<String, Object> params);
+
+    Boolean countRedPointBySchool(@Param("musicGroupIds") List<String> musicGroupIds);
+
     void finish(@Param("musicGroupId") String musicGroupId);
 }

+ 41 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java

@@ -4,6 +4,10 @@ import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.StudentAttendance;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import com.ym.mec.biz.dal.school.dto.ClassesForDayDto;
+import com.ym.mec.biz.dal.school.dto.CourseStudentDto;
+import com.ym.mec.biz.dal.wrapper.SchoolIndexStatWrapper;
+import com.ym.mec.biz.dal.wrapper.StudentWrapper;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Param;
@@ -352,4 +356,41 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
     void updateQualified(@Param("courseScheduleId") Long courseScheduleId,
                          @Param("studentIds") List<Integer> studentIds,
                          @Param("qualifiedFlag") Integer qualifiedFlag);
+
+    /**
+    * @description: 统计课程学员考勤信息
+     * @param courseIds
+    * @return java.util.List<com.ym.mec.biz.dal.school.dto.ClassesForDayDto>
+    * @author zx
+    * @date 2023/5/6 10:39
+    */
+    List<ClassesForDayDto> statisticalAttendanceInformation(@Param("courseIds") List<Long> courseIds);
+
+    /**
+    * @description: 获取学校端课程关联的学员信息
+     * @param courseId
+    * @return java.util.List<com.ym.mec.biz.dal.school.dto.CourseStudentDto>
+    * @author zx
+    * @date 2023/5/6 11:43
+    */
+    List<CourseStudentDto> queryCourseStudentList(@Param("courseId") Long courseId);
+
+    /**
+     * 学生考勤
+     *
+     * @param studentAttendanceQuery
+     * @return
+     */
+    List<StudentAttendance> getStudentAttendance(@Param("param") StudentWrapper.StudentAttendanceQuery studentAttendanceQuery);
+
+    /**
+    * @description: 统计学校端学员考勤信息
+     * @param musicGroupIds
+     * @param queryDto
+    * @return java.util.List<com.ym.mec.biz.dal.wrapper.SchoolIndexStatWrapper.StudentAttendance>
+    * @author zx
+    * @date 2023/5/12 16:25
+    */
+    SchoolIndexStatWrapper.StudentAttendance statCoopAttendance(@Param("musicGroupIds") List<String> musicGroupIds,
+                                                                      @Param("queryDto") SchoolIndexStatWrapper.QueryDto queryDto);
 }

+ 15 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -7,12 +7,10 @@ import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.page.StudentCourseConsumerQueryInfo;
 import com.ym.mec.biz.dal.vo.TempCampUserTrainingSequenceVo;
+import com.ym.mec.biz.dal.wrapper.StudentWrapper;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Student> {
 
@@ -366,7 +364,20 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
 
     List<TempCampUserTrainingSequenceVo> getStudentCloudStudySequenceDaysV2(@Param("studentIds") List<Integer> studentIds,@Param("campId") String campId);
 
+    /**
+     * 学生作业 完成信息
+     *
+     */
+    List<StudentWrapper.StudentHomework> getStudentHomework(@Param("param") StudentWrapper.StudentAttendanceQuery studentAttendanceQuery);
+
     List<String> queryExistStuByPhone(@Param("phones") List<String> phones);
 
+    /**
+     * 统计学校在读学生数
+     * @param paramMap 查询条件
+     * @return 在读学生数
+     */
+    int countMusicGroupStudents(Map<String, Object> paramMap);
+
     List<Student> listByIds(@Param("studentIds") List<Long> studentIds);
 }

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

@@ -463,5 +463,7 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
 
     int queryCount1(Map<String, Object> params);
 
+    List<BaseMapDto<Long, BigDecimal>> groupSellOrder(Map<String, Object> params);
+
     List<StudentPaymentOrder> queryVipQuitOrder(@Param("vipGroupId") Long vipGroupId, @Param("orderTypeEnum") OrderTypeEnum orderTypeEnum, @Param("success") DealStatusEnum success);
 }

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

@@ -540,6 +540,16 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
                                                   @Param("musicGroupStatus") StudentMusicGroupStatusEnum musicGroupStatus);
 
     /**
+     * @param groupIds:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.StudentRegistration>
+     * @describe 获取指定乐团中的注册学员
+     * @author Joburgess
+     * @date 2021/5/24 0024
+     */
+    List<StudentRegistration> findByMusicGroupIds1(@Param("groupIds") List<String> groupIds,
+                                                  @Param("musicGroupStatus") StudentMusicGroupStatusEnum musicGroupStatus);
+
+    /**
      * 获取支付中的缴费和审核的人数
      *
      * @param musicGroupId

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

@@ -169,6 +169,8 @@ public interface SubjectDao extends BaseDAO<Integer, Subject> {
 
     List<Subject> list();
 
-    List<StudentSubjectDto> getSubjectByStudentId(@Param("studentIds") Set<Long> studentIds);
+    List<Subject> getSubjectListByIdAndCoopId(@Param("musicGroupId") String musicGroupId, @Param("coopId") Integer coopId);
+
+    List<StudentSubjectDto> getSubjectByStudentId(@Param("studentIds") Set studentIds);
 
 }

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

@@ -0,0 +1,15 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ym.mec.biz.dal.entity.SysNewsInformation;
+
+/**
+ * 新闻资讯表(SysNewsInformation)表数据库访问层
+ *
+ * @author zx
+ * @since 2023-05-11 16:08:25
+ */
+public interface SysNewsInformationDao extends BaseMapper<SysNewsInformation> {
+
+}
+

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java

@@ -3,6 +3,10 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.school.dto.TeacherAttendanceListDto;
+import com.ym.mec.biz.dal.school.dto.TeacherAttendanceSumDto;
+import com.ym.mec.biz.dal.school.page.TeacherAttendanceQueryInfo;
+import com.ym.mec.biz.dal.wrapper.TeacherAttendanceWrapper;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
@@ -265,4 +269,28 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 						 @Param("userId") String userId,
 						 @Param("signInDeviceNum") String signInDeviceNum,
 						 @Param("signOutDeviceNum") String signOutDeviceNum);
+
+    List<TeacherAttendanceSumDto> queryTeacherAttendance(@Param("queryInfo") TeacherAttendanceQueryInfo queryInfo);
+
+	List<TeacherAttendanceWrapper.CourseTeacherAttendance> queryTeacherAttendanceForWeek(@Param("queryInfo") TeacherAttendanceQueryInfo queryInfo);
+
+	/**
+	* @description: 获取班级老师考勤列表
+	 * @param classGroupId
+	 * @param teacherId
+	* @return java.util.List<com.ym.mec.biz.dal.school.dto.TeacherAttendanceListDto>
+	* @author zx
+	* @date 2023/5/10 11:55
+	*/
+    List<TeacherAttendanceListDto> getClassTeacherAttendance(@Param("query") TeacherAttendanceWrapper.ClassTeacherAttendanceQuery query);
+
+	/**
+	* @description: 获取课程关联的老师考勤
+	 * @param courseId
+	 * @param teacherId
+	* @return com.ym.mec.biz.dal.dto.TeacherAttendanceDto
+	* @author zx
+	* @date 2023/5/10 14:28
+	*/
+	com.ym.mec.biz.dal.school.dto.TeacherAttendanceDto getCourseTeacherAttendance(@Param("courseId") Long courseId, @Param("teacherId") Integer teacherId);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HumanTypeDto.java

@@ -13,4 +13,6 @@ public class HumanTypeDto {
     private BigDecimal cloudCoachingCost = BigDecimal.ZERO; // 云教练成本
     private BigDecimal internalSettlement = BigDecimal.ZERO; // 内部结算
     private BigDecimal studentManagementFeeAdjustment = BigDecimal.ZERO; // 学员管理费调整
+    private BigDecimal commission = BigDecimal.ZERO; // 手续费
+    private BigDecimal tax = BigDecimal.ZERO; // 税费
 }

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImGroupMemberDto.java

@@ -7,7 +7,17 @@ public class ImGroupMemberDto extends ImGroupMember {
 
 	private SysUser user = new SysUser();
 
-	public SysUser getUser() {
+    private String type;
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public SysUser getUser() {
 		return user;
 	}
 

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentImportDto.java

@@ -38,5 +38,8 @@ public class MusicGroupPaymentImportDto {
 
     @ApiModelProperty(value = "年级")
     private String grade;
+
+    @ApiModelProperty(value = "班级")
+    private String currentClass;
 }
 

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/OASummaryExpensesDto.java

@@ -69,6 +69,12 @@ public class OASummaryExpensesDto {
     // 内部结算
     private BigDecimal internalSettlement;
 
-    // 学员管理费调整
+    // 学员管理费
     private BigDecimal studentManagementFeeAdjustment;
+
+    // 手续费
+    private BigDecimal commission;
+
+    // 税费
+    private BigDecimal tax;
 }

+ 29 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SchoolIndexStatDto.java

@@ -0,0 +1,29 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.wrapper.SchoolIndexStatWrapper;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SchoolIndexStatDto {
+
+    @ApiModelProperty("年级分布")
+    private List<SchoolIndexStatWrapper.GradeDistribution> gradeDistributions;
+
+    @ApiModelProperty("声部分布")
+    private List<SchoolIndexStatWrapper.SubjectDistribution> subjectDistributions;
+
+    @ApiModelProperty("乐团年级分布")
+    private List<SchoolIndexStatWrapper.MusicGradeDistribution> musicGradeDistributions;
+
+    @ApiModelProperty("年级声部分布")
+    private List<SchoolIndexStatWrapper.SubjectGradeDistribution> subjectGradeDistributions;
+
+    @ApiModelProperty("学员出勤")
+    private SchoolIndexStatWrapper.StudentAttendance studentAttendance;
+
+    @ApiModelProperty("学员练习")
+    private SchoolIndexStatWrapper.StudentLesson studentLessons;
+}

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

@@ -37,6 +37,17 @@ public class SubFeeSettingDto {
     @ApiModelProperty(value = "分部乐器分润上限",required = false)
     private BigDecimal maxMusicalInstrumentsProfits;
 
+    @ApiModelProperty(value = "年级分布",required = false)
+    private String gradeType;
+
+    public String getGradeType() {
+        return gradeType;
+    }
+
+    public void setGradeType(String gradeType) {
+        this.gradeType = gradeType;
+    }
+
     public MusicGroupStatusEnum getMusicGroupStatus() {
         return musicGroupStatus;
     }

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SysMessageDto.java

@@ -7,7 +7,17 @@ public class SysMessageDto extends SysMessage {
 
 	private SysUser user = new SysUser();
 
-	public SysUser getUser() {
+    private String icon;
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public SysUser getUser() {
 		return user;
 	}
 

+ 14 - 104
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupStudentDto.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -9,6 +10,7 @@ import java.util.Date;
  * @Author Joburgess
  * @Date 2019/10/9
  */
+@Data
 public class VipGroupStudentDto {
 
     @ApiModelProperty(value = "用户编号")
@@ -17,6 +19,18 @@ public class VipGroupStudentDto {
     @ApiModelProperty(value = "用户名称")
     private String userName;
 
+    @ApiModelProperty(value = "分部")
+    private Integer organId;
+
+    @ApiModelProperty(value = "声部")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "声部")
+    private String subjectName;
+
+    @ApiModelProperty(value = "分部")
+    private String organName;
+
     @ApiModelProperty(value = "手机号")
     private String phone;
 
@@ -43,108 +57,4 @@ public class VipGroupStudentDto {
 
     /** 线下课单价 */
     private java.math.BigDecimal offlineClassesUnitPrice;
-
-    public BigDecimal getOnlineClassesUnitPrice() {
-        return onlineClassesUnitPrice;
-    }
-
-    public void setOnlineClassesUnitPrice(BigDecimal onlineClassesUnitPrice) {
-        this.onlineClassesUnitPrice = onlineClassesUnitPrice;
-    }
-
-    public BigDecimal getOfflineClassesUnitPrice() {
-        return offlineClassesUnitPrice;
-    }
-
-    public void setOfflineClassesUnitPrice(BigDecimal offlineClassesUnitPrice) {
-        this.offlineClassesUnitPrice = offlineClassesUnitPrice;
-    }
-
-    public BigDecimal getBalance() {
-        return balance;
-    }
-
-    public void setBalance(BigDecimal balance) {
-        this.balance = balance;
-    }
-
-    public BigDecimal getAllBalance() {
-        return allBalance;
-    }
-
-    public void setAllBalance(BigDecimal allBalance) {
-        this.allBalance = allBalance;
-    }
-
-    public Date getApplyDate() {
-        return applyDate;
-    }
-
-    public void setApplyDate(Date applyDate) {
-        this.applyDate = applyDate;
-    }
-
-    public Date getRefundDate() {
-        return refundDate;
-    }
-
-    public void setRefundDate(Date refundDate) {
-        this.refundDate = refundDate;
-    }
-
-    public Integer getStudentStatus() {
-        return studentStatus;
-    }
-
-    public void setStudentStatus(Integer studentStatus) {
-        this.studentStatus = studentStatus;
-    }
-
-    public BigDecimal getCourseSalary() {
-        return courseSalary;
-    }
-
-    public void setCourseSalary(BigDecimal courseSalary) {
-        this.courseSalary = courseSalary;
-    }
-
-    public String getPhone() {
-        return phone;
-    }
-
-    public void setPhone(String phone) {
-        this.phone = phone;
-    }
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public Integer getTotalClassTimes() {
-        return totalClassTimes;
-    }
-
-    public void setTotalClassTimes(Integer totalClassTimes) {
-        this.totalClassTimes = totalClassTimes;
-    }
-
-    public Integer getCurrentClassTimes() {
-        return currentClassTimes;
-    }
-
-    public void setCurrentClassTimes(Integer currentClassTimes) {
-        this.currentClassTimes = currentClassTimes;
-    }
 }

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

@@ -68,6 +68,9 @@ public class ClassGroup extends BaseEntity {
 	@ApiModelProperty(value = "学生数量", required = false)
 	private Integer studentNum;
 
+    @ApiModelProperty("教学点")
+    private String teachingPoint;
+
 	/**  */
 	private java.util.Date createTime;
 
@@ -104,7 +107,15 @@ public class ClassGroup extends BaseEntity {
 	
 	private List<CourseSchedule> courseScheduleList = new ArrayList<CourseSchedule>();
 
-	public String getDesc() {
+    public String getTeachingPoint() {
+        return teachingPoint;
+    }
+
+    public void setTeachingPoint(String teachingPoint) {
+        this.teachingPoint = teachingPoint;
+    }
+
+    public String getDesc() {
 		return desc;
 	}
 

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

@@ -84,6 +84,9 @@ public class CooperationOrgan extends BaseEntity {
 
 	@ApiModelProperty(value = "是否全职资源",required = false)
 	private Integer fullJobResource = 1;
+
+	@ApiModelProperty("合作单位logo")
+	private String logo;
 	
 	private List<CooperationOrganLinkman> cooperationOrganLinkmanList = new ArrayList<CooperationOrganLinkman>();
 
@@ -215,6 +218,14 @@ public class CooperationOrgan extends BaseEntity {
 		this.cooperationOrganLinkmanList = cooperationOrganLinkmanList;
 	}
 
+	public String getLogo() {
+		return logo;
+	}
+
+	public void setLogo(String logo) {
+		this.logo = logo;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 72 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CoursePatrolEvaluation.java

@@ -0,0 +1,72 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.ym.mec.biz.dal.enums.EEvaluateStatus;
+import lombok.Data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 巡堂详情
+ * 2023-05-04 11:32:00
+ */
+@Data
+@ApiModel(" CoursePatrolEvaluation-巡堂详情")
+@TableName("course_patrol_evaluation")
+public class CoursePatrolEvaluation implements Serializable {
+
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("合作单位ID")
+	@TableField(value = "cooperation_organ_id_")
+    private Integer cooperationOrganId;
+
+    @ApiModelProperty("课程ID") 
+	@TableField(value = "course_schedule_id_")
+    private Integer courseScheduleId;
+
+    @ApiModelProperty("操作用户ID")
+	@TableField(value = "user_id_")
+    private Integer userId;
+
+    @ApiModelProperty("优秀EXCELLENT、良好GOOD、合格QUALIFIED、不合格UNQUALIFIED")
+    @TableField(value = "evaluate_status_")
+    private EEvaluateStatus evaluateStatus;
+
+    @ApiModelProperty("问题类型 课堂纪律 CLASSROOM_DISCIPLINE, 放学组织 AFTER_SCHOOL_ORGANIZATION, 环境卫生 ENVIRONMENTAL_SANITATION, 教态仪表 TEACHING_DEMEANOR, 沟通表达 COMMUNICATION_EXPRESSION, 专业能力 PROFESSIONAL_ABILITY, 其他 OTHER")
+    @TableField(value = "problem_type_")
+    private String problemType;
+
+    @ApiModelProperty("问题描述") 
+	@TableField(value = "problem_desc_")
+    private String problemDesc;
+
+
+    @ApiModelProperty("处理状态")
+    @TableField(value = "handle_status_")
+    private Boolean handleStatus;
+
+    @ApiModelProperty("建议") 
+	@TableField(value = "suggestion_")
+    private String suggestion;
+
+    @ApiModelProperty("附件") 
+	@TableField(value = "attachment_url_")
+    private String attachmentUrl;
+
+	@TableField(value = "create_time_")
+    private Date createTime;
+
+	@TableField(value = "update_time_")
+    private Date updateTime;
+
+}

+ 28 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.enums.*;
@@ -47,6 +48,7 @@ public class CourseSchedule  extends BaseEntity{
 		LIVE("LIVE", "直播课"),
 		;
 
+        @EnumValue
 		private String code;
 
 		private String msg;
@@ -216,19 +218,39 @@ public class CourseSchedule  extends BaseEntity{
 	@ApiModelProperty("全员静音")
 	private Boolean muteAll;
 
+    @ApiModelProperty("教学点")
+    private String teachingPoint;
+
 	@ApiModelProperty("授课直播间编号")
 	private String liveRoomId;
 
 
-    @ApiModelProperty(value = "直播课通知标记")
-    private Boolean liveRemind;
+	@ApiModelProperty(value = "直播课通知标记")
+	private Boolean liveRemind;
+
+	public Boolean getLiveRemind() {
+		return liveRemind;
+	}
+
+	public void setLiveRemind(Boolean liveRemind) {
+		this.liveRemind = liveRemind;
+	}
+
+
+    public String getTeachingPoint() {
+        return teachingPoint;
+    }
+
+    public void setTeachingPoint(String teachingPoint) {
+        this.teachingPoint = teachingPoint;
+    }
 
-    public Boolean getLiveRemind() {
-        return liveRemind;
+    public SimpleDateFormat getSimpleDateFormat() {
+        return simpleDateFormat;
     }
 
-    public void setLiveRemind(Boolean liveRemind) {
-        this.liveRemind = liveRemind;
+    public void setSimpleDateFormat(SimpleDateFormat simpleDateFormat) {
+        this.simpleDateFormat = simpleDateFormat;
     }
 
     public Boolean getSettlementReportFlag() {

+ 15 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroup.java

@@ -11,7 +11,9 @@ public class ImGroup extends BaseEntity {
 
 	/**  */
 	private String id;
-	
+
+    private Long schoolId;
+
 	/** 群名称 */
 	private String name;
 	
@@ -29,7 +31,7 @@ public class ImGroup extends BaseEntity {
 	
 	private String img;
 
-	/** 乐团群 MUSIC,班级群 CLASS,训练营 TRAINING */
+	/** 乐团群 MUSIC,班级群 CLASS,训练营 TRAINING 学校SCHOOL*/
 	private String type;
 
 	public enum GroupTypeEnum implements BaseEnum<String,GroupTypeEnum> {
@@ -37,8 +39,7 @@ public class ImGroup extends BaseEntity {
 		VIP("VIP", "vip课"), DEMO("DEMO", "试听课"), PRACTICE("PRACTICE", "网管课"),
 		SNAP("SNAP","临时班级"), COMM("COMM", "对外课程"), HIGH_ONLINE("HIGH_ONLINE", "线上基础技能课"),
 		MUSIC_NETWORK("MUSIC_NETWORK","乐团网管课"),PARENT_MEETING("PARENT_MEETING","家长会"),
-		TRAINING("TRAINING","训练营"),REPERTOIRE_PLAY("REPERTOIRE_PLAY","曲目演奏课"),
-		LIVE("LIVE","直播课");
+		TRAINING("TRAINING","训练营"),REPERTOIRE_PLAY("REPERTOIRE_PLAY","曲目演奏课"), SCHOOL("SCHOOL","学校衔接群"),LIVE("LIVE","直播课");
 
 		private String code;
 
@@ -83,8 +84,16 @@ public class ImGroup extends BaseEntity {
 	
 	/**  */
 	private java.util.Date updateTime;
-	
-	public void setId(String id){
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public void setId(String id){
 		this.id = id;
 	}
 	

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

@@ -19,6 +19,9 @@ public class ImGroupMember extends BaseEntity {
 	private Integer userId;
 	
 	private String nickname;
+
+	/** 群昵称 */
+	private String groupNickname;
 	
 	/** 是否是管理员 */
 	private boolean isAdmin;
@@ -26,6 +29,10 @@ public class ImGroupMember extends BaseEntity {
 	/** 群角色 */
 	private String roleType;
 
+
+    /** 群角色 */
+    private String type;
+
 	private Integer memberRankSettingId;
 
 	private String subjectName;
@@ -38,6 +45,16 @@ public class ImGroupMember extends BaseEntity {
 	/**  */
 	private java.util.Date updateTime;
 
+
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
 	public String getSubjectId() {
 		return subjectId;
 	}
@@ -125,7 +142,15 @@ public class ImGroupMember extends BaseEntity {
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
-			
+
+	public String getGroupNickname() {
+		return groupNickname;
+	}
+
+	public void setGroupNickname(String groupNickname) {
+		this.groupNickname = groupNickname;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 15 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImSendGroupMessage.java

@@ -22,9 +22,14 @@ public class ImSendGroupMessage {
     private String extra;
 
     @ApiModelProperty(value = "目标用户(群组)")
-    @NotNull(message = "目标用户(群组)不能为空")
+//    @NotNull(message = "目标用户(群组)不能为空")
     private String targetIds;
 
+
+    @ApiModelProperty(value = "目标用户(个人)")
+//    @NotNull(message = "目标用户(群组)不能为空")
+    private String userTargetIds;
+
     @ApiModelProperty(value = "文件地址")
     private String fileUrl;
 
@@ -58,6 +63,15 @@ public class ImSendGroupMessage {
 
     private Date updateTime;
 
+
+    public String getUserTargetIds() {
+        return userTargetIds;
+    }
+
+    public void setUserTargetIds(String userTargetIds) {
+        this.userTargetIds = userTargetIds;
+    }
+
     public Integer getIsIncludeSender() {
         return isIncludeSender;
     }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImUserFriend.java

@@ -31,6 +31,16 @@ public class ImUserFriend extends BaseEntity {
 
 	private String subjectId;
 
+    public String getRoleType() {
+        return roleType;
+    }
+
+    public void setRoleType(String roleType) {
+        this.roleType = roleType;
+    }
+
+    private String roleType;
+
 	/**  */
 	private java.util.Date createTime;
 

+ 13 - 590
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java

@@ -1,23 +1,19 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.entity.CooperationOrgan.OwnershipType;
+import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
 import java.util.Date;
 
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
-import com.ym.mec.biz.dal.entity.CooperationOrgan.OwnershipType;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-import com.ym.mec.common.entity.BaseEntity;
-
 /**
  * 对应数据库表(music_group):
  */
+@Data
 public class MusicGroup extends BaseEntity {
 
 	/**  */
@@ -55,11 +51,12 @@ public class MusicGroup extends BaseEntity {
 	private java.util.Date preApplyExpireDate;
 	
 	/** 团长 */
-	@ApiModelProperty(value = "运营主管",required = false)
-	private Integer teamTeacherId;
+//	@ApiModelProperty(value = "运营主管",required = false)
+//	private Integer teamTeacherId;
+
 	/** 团长 */
-	@ApiModelProperty(value = "运营主管名称",required = false)
-	private String teamTeacherName;
+//	@ApiModelProperty(value = "运营主管名称",required = false)
+//	private String teamTeacherName;
 	
 	/** 教务老师 */
 	@ApiModelProperty(value = "教务老师名字",required = false)
@@ -235,590 +232,16 @@ public class MusicGroup extends BaseEntity {
 	
 	@ApiModelProperty(value = "计费方式(缴费方为第三方或学校时,选择学员计费、老师计费)",required = false)
 	private String chargeMode;
-	
-	public String getMusicalInstrumentsProvideTime() {
-		return musicalInstrumentsProvideTime;
-	}
-
-	public void setMusicalInstrumentsProvideTime(String musicalInstrumentsProvideTime) {
-		this.musicalInstrumentsProvideTime = musicalInstrumentsProvideTime;
-	}
-
-	public Integer getHasInstrumentNum() {
-		return hasInstrumentNum;
-	}
-
-	public void setHasInstrumentNum(Integer hasInstrumentNum) {
-		this.hasInstrumentNum = hasInstrumentNum;
-	}
-
-	public Integer getHomeworkPushFlag() {
-		return homeworkPushFlag;
-	}
 
-	public void setHomeworkPushFlag(Integer homeworkPushFlag) {
-		this.homeworkPushFlag = homeworkPushFlag;
-	}
-
-	public Integer getCloudTeacherType() {
-		return cloudTeacherType;
-	}
-
-	public void setCloudTeacherType(Integer cloudTeacherType) {
-		this.cloudTeacherType = cloudTeacherType;
-	}
+    @ApiModelProperty(value = "学生分布",required = false)
+    private String gradeType;
 
 	@ApiModelProperty(value = "进行中,缴费按钮控制",required = true)
 	private Boolean isRemedy = false;
 
-	public String getTransactionTeacherName() {
-		return transactionTeacherName;
-	}
-
-	public void setTransactionTeacherName(String transactionTeacherName) {
-		this.transactionTeacherName = transactionTeacherName;
-	}
-
-	public Integer getTransactionTeacherId() {
-		return transactionTeacherId;
-	}
-
-	public void setTransactionTeacherId(Integer transactionTeacherId) {
-		this.transactionTeacherId = transactionTeacherId;
-	}
-
-	public String getRepairUserName() {
-		return repairUserName;
-	}
-
-	public void setRepairUserName(String repairUserName) {
-		this.repairUserName = repairUserName;
-	}
-
-	public Integer getPaymentPattern() {
-		return paymentPattern;
-	}
-
-	public void setPaymentPattern(Integer paymentPattern) {
-		this.paymentPattern = paymentPattern;
-	}
-
-	public Date getPaymentValidStartDate() {
-		return paymentValidStartDate;
-	}
-
-	public void setPaymentValidStartDate(Date paymentValidStartDate) {
-		this.paymentValidStartDate = paymentValidStartDate;
-	}
-
-	public Date getPaymentValidEndDate() {
-		return paymentValidEndDate;
-	}
-
-	public void setPaymentValidEndDate(Date paymentValidEndDate) {
-		this.paymentValidEndDate = paymentValidEndDate;
-	}
-
-	public String getSubjectName() {
-		return subjectName;
-	}
-
-	public void setSubjectName(String subjectName) {
-		this.subjectName = subjectName;
-	}
-
-	public Integer getRepairUserId() {
-		return repairUserId;
-	}
-
-	public void setRepairUserId(Integer repairUserId) {
-		this.repairUserId = repairUserId;
-	}
-
-	public String getDirectorUserName() {
-		return directorUserName;
-	}
-
-	public void setDirectorUserName(String directorUserName) {
-		this.directorUserName = directorUserName;
-	}
-
-	public Date getExpectStartGroupDate() {
-		return expectStartGroupDate;
-	}
-
-	public void setExpectStartGroupDate(Date expectStartGroupDate) {
-		this.expectStartGroupDate = expectStartGroupDate;
-	}
-
-	public Integer getGroupMemberNum() {
-		return groupMemberNum;
-	}
-
-	public void setGroupMemberNum(Integer groupMemberNum) {
-		this.groupMemberNum = groupMemberNum;
-	}
-
-	public String getCooperationOrganName() {
-		return cooperationOrganName;
-	}
-
-	public void setCooperationOrganName(String cooperationOrganName) {
-		this.cooperationOrganName = cooperationOrganName;
-	}
-
-	public String getAddress() {
-		return address;
-	}
-
-	public void setAddress(String address) {
-		this.address = address;
-	}
-
-	public String getOrganName() {
-		return organName;
-	}
-
-	public void setOrganName(String organName) {
-		this.organName = organName;
-	}
-
-	public String getSchoolName() {
-		return schoolName;
-	}
-
-	public void setSchoolName(String schoolName) {
-		this.schoolName = schoolName;
-	}
-
-	public String getTeamTeacherName() {
-		return teamTeacherName;
-	}
-
-	public void setTeamTeacherName(String teamTeacherName) {
-		this.teamTeacherName = teamTeacherName;
-	}
-
-	public String getEducationalTeacherName() {
-		return educationalTeacherName;
-	}
-
-	public void setEducationalTeacherName(String educationalTeacherName) {
-		this.educationalTeacherName = educationalTeacherName;
-	}
-
-	public Integer getPayNum() {
-		return payNum;
-	}
-
-	public void setPayNum(Integer payNum) {
-		this.payNum = payNum;
-	}
-
-	public String getImg() {
-		return img;
-	}
-
-	public void setImg(String img) {
-		this.img = img;
-	}
-
-	public String getPaymentMonths() {
-		return paymentMonths;
-	}
-
-	public void setPaymentMonths(String paymentMonth) {
-		this.paymentMonths = paymentMonth;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public void setName(String name){
-		this.name = name;
-	}
-	
-	public String getName(){
-		return this.name;
-	}
-			
-	public void setOrganId(Integer organId){
-		this.organId = organId;
-	}
-	
-	public Integer getOrganId(){
-		return this.organId;
-	}
-			
-	public void setSchoolId(Integer schoolId){
-		this.schoolId = schoolId;
-	}
-	
-	public Integer getSchoolId(){
-		return this.schoolId;
-	}
-			
-	public void setApplyExpireDate(java.util.Date applyExpireDate){
-		this.applyExpireDate = applyExpireDate;
-	}
-	
-	public java.util.Date getApplyExpireDate(){
-		return this.applyExpireDate;
-	}
-			
-	public java.util.Date getPreApplyExpireDate() {
-		return preApplyExpireDate;
-	}
-
-	public void setPreApplyExpireDate(java.util.Date preApplyExpireDate) {
-		this.preApplyExpireDate = preApplyExpireDate;
-	}
-
-	public void setTeamTeacherId(Integer teamTeacherId){
-		this.teamTeacherId = teamTeacherId;
-	}
-	
-	public Integer getTeamTeacherId(){
-		return this.teamTeacherId;
-	}
-			
-	public void setEducationalTeacherId(Integer educationalTeacherId){
-		this.educationalTeacherId = educationalTeacherId;
-	}
-	
-	public Integer getEducationalTeacherId(){
-		return this.educationalTeacherId;
-	}
-			
-	public String getCourseForm() {
-		return courseForm;
-	}
-
-	public void setCourseForm(String courseForm) {
-		this.courseForm = courseForm;
-	}
-
-	public Integer getCooperationOrganId() {
-		return cooperationOrganId;
-	}
-
-	public void setCooperationOrganId(Integer cooperationOrganId) {
-		this.cooperationOrganId = cooperationOrganId;
-	}
-
-	public String getEnlightenmentCourseTime() {
-		return enlightenmentCourseTime;
-	}
-
-	public void setEnlightenmentCourseTime(String enlightenmentCourseTime) {
-		this.enlightenmentCourseTime = enlightenmentCourseTime;
-	}
-
-	public String getParentMeetingTime() {
-		return parentMeetingTime;
-	}
-
-	public void setParentMeetingTime(String parentMeetingTime) {
-		this.parentMeetingTime = parentMeetingTime;
-	}
-
-	public void setCreateTime(java.util.Date createTime){
-		this.createTime = createTime;
-	}
-	
-	public java.util.Date getCreateTime(){
-		return this.createTime;
-	}
-			
-	public void setUpdateTime(java.util.Date updateTime){
-		this.updateTime = updateTime;
-	}
-	
-	public java.util.Date getUpdateTime(){
-		return this.updateTime;
-	}
-
-	public MusicGroupStatusEnum getStatus() {
-		return status;
-	}
-
-	public void setStatus(MusicGroupStatusEnum status) {
-		this.status = status;
-	}
-
-	public void setPaymentExpireDate(java.util.Date paymentExpireDate){
-		this.paymentExpireDate = paymentExpireDate;
-	}
-	
-	public java.util.Date getPaymentExpireDate(){
-		return this.paymentExpireDate;
-	}
-			
-	public void setBillStartDate(java.util.Date billStartDate){
-		this.billStartDate = billStartDate;
-	}
-	
-	public java.util.Date getBillStartDate(){
-		return this.billStartDate;
-	}
-			
-	public Integer getImproventClassesNum() {
-		return improventClassesNum;
-	}
-
-	public void setImproventClassesNum(Integer improventClassesNum) {
-		this.improventClassesNum = improventClassesNum;
-	}
-
-	public String getEnrollClasses() {
-		return enrollClasses;
-	}
-
-	public void setEnrollClasses(String enrollClasses) {
-		this.enrollClasses = enrollClasses;
-	}
-
-	public YesOrNoEnum getIsExtraClass() {
-		return isExtraClass;
-	}
-
-	public void setIsExtraClass(YesOrNoEnum isExtraClass) {
-		this.isExtraClass = isExtraClass;
-	}
-
-	public Integer getDirectorUserId() {
-		return directorUserId;
-	}
-
-	public void setDirectorUserId(Integer directorUserId) {
-		this.directorUserId = directorUserId;
-	}
-
-	public Integer getOperatorUserId() {
-		return operatorUserId;
-	}
-
-	public void setOperatorUserId(Integer operatorUserId) {
-		this.operatorUserId = operatorUserId;
-	}
-
-	public SalarySettlementTypeEnum getSettlementType() {
-		return settlementType;
-	}
-
-	public void setSettlementType(SalarySettlementTypeEnum settlementType) {
-		this.settlementType = settlementType;
-	}
-
-	public boolean isClassroomLessons() {
-		return isClassroomLessons;
-	}
-
-	public void setClassroomLessons(boolean isClassroomLessons) {
-		this.isClassroomLessons = isClassroomLessons;
-	}
-
-	public boolean getIsClassroomLessons() {
-		return isClassroomLessons;
-	}
-
-	public void setIsClassroomLessons(boolean isClassroomLessons) {
-		this.isClassroomLessons = isClassroomLessons;
-	}
-
-
-
-	public String getMemo() {
-		return memo;
-	}
-
-	public void setMemo(String memo) {
-		this.memo = memo;
-	}
-
-	public OwnershipType getOwnershipType() {
-		return ownershipType;
-	}
-
-	public void setOwnershipType(OwnershipType ownershipType) {
-		this.ownershipType = ownershipType;
-	}
-
-	public Boolean getDelFlag() {
-		return delFlag;
-	}
-
-	public void setDelFlag(Boolean delFlag) {
-		this.delFlag = delFlag;
-	}
-
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
-	public Boolean getHasVerifyMusicalList() {
-		return hasVerifyMusicalList;
-	}
-
-	public void setHasVerifyMusicalList(Boolean hasVerifyMusicalList) {
-		this.hasVerifyMusicalList = hasVerifyMusicalList;
-	}
-
-	public CourseViewTypeEnum getCourseViewType() {
-		return courseViewType;
-	}
-
-	public void setCourseViewType(CourseViewTypeEnum courseViewType) {
-		this.courseViewType = courseViewType;
-	}
-
-	public Boolean getIsRemedy() {
-		return isRemedy;
-	}
-
-	public void setIsRemedy(Boolean remedy) {
-		isRemedy = remedy;
-	}
-
-	public Boolean getIsShowRecordOfStudent() {
-		return isShowRecordOfStudent;
-	}
-
-	public void setIsShowRecordOfStudent(Boolean isShowRecordOfStudent) {
-		this.isShowRecordOfStudent = isShowRecordOfStudent;
-	}
-
-	public Integer getMusicalInstrumentsProvideStatus() {
-		return musicalInstrumentsProvideStatus;
-	}
-
-	public void setMusicalInstrumentsProvideStatus(Integer musicalInstrumentsProvideStatus) {
-		this.musicalInstrumentsProvideStatus = musicalInstrumentsProvideStatus;
-	}
-
-	public Boolean getMemberCourseShowFlag() {
-		return memberCourseShowFlag;
-	}
-
-	public void setMemberCourseShowFlag(Boolean memberCourseShowFlag) {
-		this.memberCourseShowFlag = memberCourseShowFlag;
-	}
-
-	public BigDecimal getChargeStandard() {
-		return chargeStandard;
-	}
-
-	public void setChargeStandard(BigDecimal chargeStandard) {
-		this.chargeStandard = chargeStandard;
-	}
-
-	public Boolean getIsGiveAccessories() {
-		return isGiveAccessories;
-	}
-
-	public void setIsGiveAccessories(Boolean isGiveAccessories) {
-		this.isGiveAccessories = isGiveAccessories;
-	}
-
-	public ClassGroupTypeEnum getExtracurricularTeacher() {
-		return extracurricularTeacher;
-	}
-
-	public void setExtracurricularTeacher(ClassGroupTypeEnum extracurricularTeacher) {
-		this.extracurricularTeacher = extracurricularTeacher;
-	}
-
-	public Date getFirstCourseStartTime() {
-		return firstCourseStartTime;
-	}
-
-	public void setFirstCourseStartTime(Date firstCourseStartTime) {
-		this.firstCourseStartTime = firstCourseStartTime;
-	}
-
-	public Integer getMusicGroupPlanMakingId() {
-		return musicGroupPlanMakingId;
-	}
-
-	public void setMusicGroupPlanMakingId(Integer musicGroupPlanMakingId) {
-		this.musicGroupPlanMakingId = musicGroupPlanMakingId;
-	}
-
-	public String getFirstRecruitGrade() {
-		return firstRecruitGrade;
-	}
-
-	public void setFirstRecruitGrade(String firstRecruitGrade) {
-		this.firstRecruitGrade = firstRecruitGrade;
-	}
-
-	public BigDecimal getDefaultChargeStandard() {
-		return defaultChargeStandard;
-	}
-
-	public void setDefaultChargeStandard(BigDecimal defaultChargeStandard) {
-		this.defaultChargeStandard = defaultChargeStandard;
-	}
-
-	public String getSingleTrainMinutes() {
-		return singleTrainMinutes;
-	}
-
-	public void setSingleTrainMinutes(String singleTrainMinutes) {
-		this.singleTrainMinutes = singleTrainMinutes;
-	}
-
-	public String getCoursePlan() {
-		return coursePlan;
-	}
-
-	public void setCoursePlan(String coursePlan) {
-		this.coursePlan = coursePlan;
-	}
-
-	public String getSaleActivityDesc() {
-		return saleActivityDesc;
-	}
-
-	public void setSaleActivityDesc(String saleActivityDesc) {
-		this.saleActivityDesc = saleActivityDesc;
-	}
-
-	public Integer getGraduateGrade() {
-		return graduateGrade;
-	}
-
-	public void setGraduateGrade(Integer graduateGrade) {
-		this.graduateGrade = graduateGrade;
-	}
-
-	public Integer getBasicStudentNum() {
-		return basicStudentNum;
-	}
-
-	public void setBasicStudentNum(Integer basicStudentNum) {
-		this.basicStudentNum = basicStudentNum;
-	}
-
-	public String getPaymentUserType() {
-		return paymentUserType;
-	}
-
-	public void setPaymentUserType(String paymentUserType) {
-		this.paymentUserType = paymentUserType;
-	}
-
-	public String getChargeMode() {
-		return chargeMode;
-	}
-
-	public void setChargeMode(String chargeMode) {
-		this.chargeMode = chargeMode;
-	}
 }

+ 15 - 189
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupQuit.java

@@ -1,9 +1,12 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.enums.school.EQuitGroupAuditStatusEnum;
 import com.ym.mec.common.entity.BaseEntity;
 import com.ym.mec.common.enums.BaseEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
@@ -12,7 +15,8 @@ import java.util.Date;
 /**
  * 对应数据库表(music_group_quit):
  */
-public class MusicGroupQuit extends BaseEntity {
+@Data
+public class MusicGroupQuit {
 
 	/**  */
 	private Long id;
@@ -69,6 +73,15 @@ public class MusicGroupQuit extends BaseEntity {
 	@ApiModelProperty(value = "云教练金额",required = false)
 	private BigDecimal cloudTeacherAmount = BigDecimal.ZERO;
 
+	@ApiModelProperty(value = "学校审核人",required = false)
+	private Integer auditSchoolStaff;
+
+	@ApiModelProperty(value = "学校审核状态",required = false)
+	private EQuitGroupAuditStatusEnum schoolStaffAuditStatus;
+
+	@ApiModelProperty(value = "学校审核原因",required = true)
+	private String schoolStaffAuditReason;
+
 	//毕业、不感兴趣、时间冲突、身体不适、其他(必选)
 	public enum ReasonEnum implements BaseEnum<String, MusicGroupQuit.ReasonEnum> {
 		GRADUATE("GRADUATE", "毕业"),
@@ -96,192 +109,5 @@ public class MusicGroupQuit extends BaseEntity {
 		}
 	}
 
-	public Integer getOperatorId() {
-		return operatorId;
-	}
-
-	public void setOperatorId(Integer operatorId) {
-		this.operatorId = operatorId;
-	}
-
-	public ReasonEnum getReasonEnum() {
-		return reasonEnum;
-	}
-
-	public void setReasonEnum(ReasonEnum reasonEnum) {
-		this.reasonEnum = reasonEnum;
-	}
-
-	public String getApplyUserName() {
-		return applyUserName;
-	}
-
-	public void setApplyUserName(String applyUserName) {
-		this.applyUserName = applyUserName;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public Long getId() {
-		return this.id;
-	}
-
-	public void setUserId(Integer userId) {
-		this.userId = userId;
-	}
-
-	public Integer getUserId() {
-		return this.userId;
-	}
-
-	public void setMusicGroupId(String musicGroupId) {
-		this.musicGroupId = musicGroupId;
-	}
-
-	public String getMusicGroupId() {
-		return this.musicGroupId;
-	}
-
-	public void setJoinDate(java.util.Date joinDate) {
-		this.joinDate = joinDate;
-	}
-
-	public java.util.Date getJoinDate() {
-		return this.joinDate;
-	}
-
-	public void setQuitDate(java.util.Date quitDate) {
-		this.quitDate = quitDate;
-	}
-
-	public java.util.Date getQuitDate() {
-		return this.quitDate;
-	}
-
-	public void setCreateTime(java.util.Date createTime) {
-		this.createTime = createTime;
-	}
-
-	public java.util.Date getCreateTime() {
-		return this.createTime;
-	}
-
-	public void setReason(String reason) {
-		this.reason = reason;
-	}
-
-	public String getReason() {
-		return this.reason;
-	}
-
-	public String getUserComment() {
-		return userComment;
-	}
-
-	public void setUserComment(String userComment) {
-		this.userComment = userComment;
-	}
-
-	public ApprovalStatus getStatus() {
-		return status;
-	}
-
-	public void setStatus(ApprovalStatus status) {
-		this.status = status;
-	}
-
-	public SysUser getUser() {
-		return user;
-	}
-
-	public void setUser(SysUser user) {
-		this.user = user;
-	}
-
-	public MusicGroup getMusicGroup() {
-		return musicGroup;
-	}
-
-	public void setMusicGroup(MusicGroup musicGroup) {
-		this.musicGroup = musicGroup;
-	}
-
-	public Integer getApplyUserId() {
-		return applyUserId;
-	}
-
-	public void setApplyUserId(Integer applyUserId) {
-		this.applyUserId = applyUserId;
-	}
-
-	public Boolean getIsVisit() {
-		return isVisit;
-	}
-
-	public void setIsVisit(Boolean isVisit) {
-		this.isVisit = isVisit;
-	}
-
-	public Date getVisitTime() {
-		return visitTime;
-	}
-
-	public void setVisitTime(Date visitTime) {
-		this.visitTime = visitTime;
-	}
-
-	public String getFeeJson() {
-		return feeJson;
-	}
-
-	public void setFeeJson(String feeJson) {
-		this.feeJson = feeJson;
-	}
-
-	public String getCurrentApproveRole() {
-		return currentApproveRole;
-	}
-
-	public void setCurrentApproveRole(String currentApproveRole) {
-		this.currentApproveRole = currentApproveRole;
-	}
-
-	@Override
-	public String toString() {
-		return ToStringBuilder.reflectionToString(this);
-	}
-
-	public Boolean getHasMaintenance() {
-		return hasMaintenance;
-	}
-
-	public void setHasMaintenance(Boolean hasMaintenance) {
-		this.hasMaintenance = hasMaintenance;
-	}
-
-	public BigDecimal getCloudTeacherAmount() {
-		return cloudTeacherAmount;
-	}
-
-	public void setCloudTeacherAmount(BigDecimal cloudTeacherAmount) {
-		this.cloudTeacherAmount = cloudTeacherAmount;
-	}
-
-	public MusicGroupReturnFeeDto getReturnFeeDto() {
-		return returnFeeDto;
-	}
-
-	public void setReturnFeeDto(MusicGroupReturnFeeDto returnFeeDto) {
-		this.returnFeeDto = returnFeeDto;
-	}
-
-	public BigDecimal getReturnTotalFee() {
-		return returnTotalFee;
-	}
-
-	public void setReturnTotalFee(BigDecimal returnTotalFee) {
-		this.returnTotalFee = returnTotalFee;
-	}
+	private Integer tenantId = TenantContextHolder.getTenantId();
 }

+ 59 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SchoolActivity.java

@@ -0,0 +1,59 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.ym.mec.biz.dal.enums.ESchoolActivityType;
+import lombok.Data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 学校活动
+ * 2023-05-04 11:32:00
+ */
+@Data
+@ApiModel(" SchoolActivity-学校活动")
+@TableName("school_activity")
+public class SchoolActivity implements Serializable {
+
+	    @TableId(value = "id_", type = IdType.AUTO)
+        private Integer id;
+
+    @ApiModelProperty("合作单位ID")
+    @TableField(value = "cooperation_organ_id_")
+    private Integer cooperationOrganId;
+
+    @ApiModelProperty("活动开始日期") 
+	@TableField(value = "start_time_")
+    private Date startTime;
+
+    @ApiModelProperty("活动结束日期") 
+	@TableField(value = "end_time_")
+    private Date endTime;
+
+    @ApiModelProperty("活动名称") 
+	@TableField(value = "name_")
+    private String name;
+
+    @ApiModelProperty("活动类型 开放日 OPEN_DAY 汇演 PERFORMANCE 音乐会 CONCERT 比赛 COMPETITION 讲座 LECTURE 校庆 SCHOOL_DAY 迎宾 WELCOME 其他 OTHER")
+	@TableField(value = "type_")
+    private ESchoolActivityType type;
+
+    @ApiModelProperty("创建人ID") 
+	@TableField(value = "create_by_")
+    private Integer createBy;
+
+	@TableField(value = "create_time_")
+    private Date createTime;
+
+	@TableField(value = "update_time_")
+    private Date updateTime;
+
+}

+ 75 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SchoolActivityDetail.java

@@ -0,0 +1,75 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.ym.mec.biz.dal.enums.ESchoolActivityProgramType;
+import lombok.Data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 活动详情
+ * 2023-05-04 11:32:00
+ */
+@Data
+@ApiModel(" SchoolActivityDetail-活动详情")
+@TableName("school_activity_detail")
+public class SchoolActivityDetail implements Serializable {
+
+	    @TableId(value = "id_", type = IdType.AUTO)
+        private Integer id;
+
+    @ApiModelProperty("合作单位ID")
+    @TableField(value = "cooperation_organ_id_")
+    private Integer cooperationOrganId;
+
+    @ApiModelProperty("活动id") 
+	@TableField(value = "school_activity_id_")
+    private Integer schoolActivityId;
+
+    @ApiModelProperty("节目名称") 
+	@TableField(value = "name_")
+    private String name;
+
+    @ApiModelProperty("节目类型") 
+	@TableField(value = "type_")
+    private ESchoolActivityProgramType type;
+
+    @ApiModelProperty("乐团ID") 
+	@TableField(value = "music_group_id_")
+    private String musicGroupId;
+
+    @ApiModelProperty("声部ID集合") 
+	@TableField(value = "subject_id_list_")
+    private String subjectIdList;
+
+    @ApiModelProperty("学生人数") 
+	@TableField(value = "student_num_")
+    private Integer studentNum;
+
+    @ApiModelProperty("节目时长-秒") 
+	@TableField(value = "time_")
+    private Integer time;
+
+    @ApiModelProperty("节目排序")
+    @TableField(value = "sort_")
+    private Integer sort;
+
+    @ApiModelProperty("附件") 
+	@TableField(value = "attachment_url_")
+    private String attachmentUrl;
+
+	@TableField(value = "create_time_")
+    private Date createTime;
+
+	@TableField(value = "update_time_")
+    private Date updateTime;
+
+}

+ 39 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SchoolActivityDetailUser.java

@@ -0,0 +1,39 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import lombok.Data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+
+/**
+ * 活动详情人员
+ * 2023-05-04 11:32:00
+ */
+@Data
+@ApiModel(" SchoolActivityDetailUser-活动详情人员")
+@TableName("school_activity_detail_user")
+public class SchoolActivityDetailUser implements Serializable {
+
+	    @TableId(value = "id_", type = IdType.AUTO)
+        private Integer id;
+
+    @ApiModelProperty("活动详情ID") 
+	@TableField(value = "school_activity_detail_id_")
+    private Integer schoolActivityDetailId;
+
+    @ApiModelProperty("学生ID") 
+	@TableField(value = "student_id_")
+    private Integer studentId;
+
+    @ApiModelProperty("声部ID")
+    @TableField(value = "subject_id_")
+    private Integer subjectId;
+
+}

+ 74 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SchoolStaff.java

@@ -0,0 +1,74 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.ym.mec.biz.dal.enums.school.ESchoolStaffType;
+import lombok.Data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 学校员工
+ * 2023-05-06 10:49:23
+ */
+@Data
+@ApiModel(" SchoolStaff-学校员工")
+@TableName("school_staff")
+public class SchoolStaff implements Serializable {
+
+    @ApiModelProperty("主键") 
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("学校ID") 
+	@TableField(value = "school_id_")
+    private Long schoolId;
+
+    @ApiModelProperty("用户帐号ID") 
+	@TableField(value = "user_id_")
+    private Long userId;
+
+    @ApiModelProperty("头像") 
+	@TableField(value = "avatar_")
+    private String avatar;
+
+    @ApiModelProperty("昵称") 
+	@TableField(value = "nickname_")
+    private String nickname;
+
+    @ApiModelProperty("用户身份(校长,乐团领队,分管领导,负责老师)") 
+	@TableField(value = "user_type_")
+    private ESchoolStaffType userType;
+
+    @ApiModelProperty("帐号状态(注销 -1,冻结 9,激活 1)")
+	@TableField(value = "status_")
+    private String status;
+
+    @ApiModelProperty("恢复状态") 
+	@TableField(value = "recovery_status_")
+    private Boolean recoveryStatus;
+
+    @ApiModelProperty("所在分部编号") 
+	@TableField(value = "organ_id_list_")
+    private String organIdList;
+
+    @ApiModelProperty("机构编号") 
+	@TableField(value = "tenant_id_")
+    private Integer tenantId;
+
+    @ApiModelProperty("更新时间") 
+	@TableField(value = "update_time_")
+    private Date updateTime;
+
+    @ApiModelProperty("创建时间") 
+	@TableField(value = "create_time_")
+    private Date createTime;
+
+}

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMessage.java

@@ -15,6 +15,8 @@ public class SysMessage extends BaseEntity {
 
 	/** 主键 */
 	private Long id;
+
+    private Integer messageConfigId;
 	
 	/** 标题 */
 	@ApiModelProperty(value = "标题",required = false)
@@ -72,7 +74,15 @@ public class SysMessage extends BaseEntity {
 		return jpushType;
 	}
 
-	public void setJpushType(String jpushType) {
+    public Integer getMessageConfigId() {
+        return messageConfigId;
+    }
+
+    public void setMessageConfigId(Integer messageConfigId) {
+        this.messageConfigId = messageConfigId;
+    }
+
+    public void setJpushType(String jpushType) {
 		this.jpushType = jpushType;
 	}
 

+ 139 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysNewsInformation.java

@@ -0,0 +1,139 @@
+package com.ym.mec.biz.dal.entity;
+
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ym.mec.common.enums.BaseEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 新闻资讯表(SysNewsInformation)表实体类
+ *
+ * @author zx
+ * @since 2023-05-11 16:08:27
+ */
+@Data
+@ApiModel(value = "sys_news_information-新闻资讯表")
+public class SysNewsInformation implements Serializable {
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("title_")
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @TableField("content_")
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @TableField("cover_image_")
+    @ApiModelProperty(value = "封面图片")
+    private String coverImage;
+
+    @TableField("type_")
+    @ApiModelProperty(value = "类型")
+    private Integer type;
+
+    @TableField("sub_type_")
+    @ApiModelProperty(value = "子类型")
+    private Integer subType;
+
+    @TableField("status_")
+    @ApiModelProperty(value = "状态(1-可见 0-不可见)")
+    private String status;
+
+    @TableField("online_time_")
+    @ApiModelProperty(value = "上线时间")
+    private Date onlineTime;
+
+    @TableField("offline_time_")
+    @ApiModelProperty(value = "下线时间")
+    private Date offlineTime;
+
+    @TableField("memo_")
+    @ApiModelProperty(value = "备注")
+    private String memo;
+
+    @TableField("create_time_")
+    private Date createTime;
+
+    @TableField("update_time_")
+    private Date updateTime;
+
+    @TableField("link_url_")
+    @ApiModelProperty(value = "链接地址")
+    private String linkUrl;
+
+    @TableField("href_target_")
+    @ApiModelProperty(value = "跳转类型_bank,_slef")
+    private String hrefTarget;
+
+    @TableField("order_")
+    @ApiModelProperty(value = "顺序号")
+    private Integer order;
+
+    @TableField("del_flag_")
+    @ApiModelProperty(value = "${column.comment}")
+    private Integer delFlag;
+
+    @TableField("tenant_id_")
+    @ApiModelProperty(value = "1-对内;2-对外")
+    private Integer tenantId;
+
+    @TableField("video_cover_image_")
+    @ApiModelProperty(value = "视频封面")
+    private String videoCoverImage;
+
+    @TableField("attribute1_")
+    @ApiModelProperty(value = "${column.comment}")
+    private String attribute1;
+
+    @TableField("attribute2_")
+    @ApiModelProperty(value = "${column.comment}")
+    private String attribute2;
+
+    @TableField("subject_id_list_")
+    @ApiModelProperty(value = "声部列表")
+    private String subjectIdList;
+
+    @TableField("organ_id_list_")
+    @ApiModelProperty(value = "所属分部")
+    private String organIdList;
+
+    @TableField("red_point_")
+    @ApiModelProperty(value = "红点类型")
+    private ERedPointEnum redPoint;
+
+    @Getter
+    public enum ERedPointEnum implements BaseEnum<String, ERedPointEnum> {
+
+        BACKLOG("待办事项"),
+        SITE_MANAGE("场地管理"),
+        ;
+
+        private final String describe;
+
+        @EnumValue
+        private final String code;
+
+        ERedPointEnum(String describe) {
+            this.describe = describe;
+            this.code = this.name();
+        }
+
+        @Override
+        public String getCode() {
+            return this.name();
+        }
+    }
+}
+

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.ym.mec.common.enums.BaseEnum;
 
 public enum CourseStatusEnum implements BaseEnum<String,CourseStatusEnum> {
@@ -7,6 +8,7 @@ public enum CourseStatusEnum implements BaseEnum<String,CourseStatusEnum> {
     UNDERWAY("UNDERWAY","进行中"),
     OVER("OVER","已结束");
 
+    @EnumValue
     private String code;
 
     private String msg;

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EEvaluateProblemType.java

@@ -0,0 +1,30 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+@Getter
+public enum EEvaluateProblemType implements BaseEnum<String, EEvaluateProblemType> {
+
+    // 问题类型(课堂纪律、放学组织、环境卫生、教态仪表、沟通表达、专业能力、其他)
+    // 课堂纪律 CLASSROOM_DISCIPLINE, 放学组织 AFTER_SCHOOL_ORGANIZATION, 环境卫生 ENVIRONMENTAL_SANITATION, 教态仪表 TEACHING_DEMEANOR, 沟通表达 COMMUNICATION_EXPRESSION, 专业能力 PROFESSIONAL_ABILITY, 其他 OTHER
+    CLASSROOM_DISCIPLINE("CLASSROOM_DISCIPLINE","课堂纪律"),
+    AFTER_SCHOOL_ORGANIZATION("AFTER_SCHOOL_ORGANIZATION","放学组织"),
+    ENVIRONMENTAL_SANITATION("ENVIRONMENTAL_SANITATION","环境卫生"),
+    TEACHING_DEMEANOR("TEACHING_DEMEANOR","教态仪表"),
+    COMMUNICATION_EXPRESSION("COMMUNICATION_EXPRESSION","沟通表达"),
+    PROFESSIONAL_ABILITY("PROFESSIONAL_ABILITY","专业能力"),
+    OTHER("OTHER","其他");
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    EEvaluateProblemType(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+}

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EEvaluateStatus.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+@Getter
+public enum EEvaluateStatus implements BaseEnum<String, EEvaluateStatus> {
+
+    // 评价(优秀EXCELLENT、良好GOOD、合格QUALIFIED、不合格UNQUALIFIED
+    EXCELLENT("EXCELLENT","优秀"),
+    GOOD("GOOD","良好"),
+    QUALIFIED("QUALIFIED","合格"),
+    UNQUALIFIED("UNQUALIFIED","不合格");
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    EEvaluateStatus(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+}

+ 66 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EFriendRoleType.java

@@ -0,0 +1,66 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+
+public enum EFriendRoleType implements BaseEnum<Integer, EFriendRoleType> {
+
+    SCHOOLMASTER(1,"校长"),
+    ORCHESTRA_LEADER(2,"乐团领队"),
+    SCHOOL_LEADER(3,"分管领导"),
+    SCHOOL_TEACHER(4,"负责老师"),
+    ORCHESTRA_MANAGER(5,"乐团主管"),
+    MAINTENANCE_TECHNICIAN(6,"维护技师"),
+    ORCHESTRA_TEACHER(7,"指导老师"),
+    STUDENT(8,"学生"),
+
+
+    ;
+    private Integer code;
+    private String msg;
+
+    EFriendRoleType(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public static EFriendRoleType getByName(String name) {
+        if (name == null) return STUDENT;
+        switch (name) {
+            case "SCHOOLMASTER":
+                return SCHOOLMASTER;
+            case "ORCHESTRA_LEADER":
+                return ORCHESTRA_LEADER;
+            case "SCHOOL_LEADER":
+                return SCHOOL_LEADER;
+            case "TEACHER":
+                return SCHOOL_TEACHER;
+            case "乐团主管":
+                return ORCHESTRA_MANAGER;
+            case "指导老师":
+                return ORCHESTRA_TEACHER;
+
+            case "校长":
+                return SCHOOLMASTER;
+            case "乐团领队":
+                return ORCHESTRA_LEADER;
+            case "分管领导":
+                return SCHOOL_LEADER;
+            case "负责老师":
+                return SCHOOL_TEACHER;
+            case "维护技师":
+                return SCHOOL_TEACHER;
+            default:
+                return STUDENT;
+        }
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    @Override
+    public Integer getCode() {
+        return code;
+    }
+}

+ 42 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EGroupGradeType.java

@@ -0,0 +1,42 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+@Getter
+public enum EGroupGradeType implements BaseEnum<String, EGroupGradeType> {
+
+    // 团年级分布 小学团 PRIMARY 初中团 MIDDLE 高中团 HIGH 混合团 MIXED
+    //小学团:学生报名时【年级】只可选择1 ~ 5/6年级
+    //
+    //初中团:学生报名时【年级】只可选择初一 ~ 初三/初四
+    //
+    //混合团:学生报名时【年级】可选择1~初三/初四
+    //
+    //高中团:学生报名时【年级】可选择高一~高三
+
+    PRIMARY("PRIMARY", "小学团"),
+    MIDDLE("MIDDLE", "初中团"),
+    HIGH("HIGH", "高中团"),
+    MIXED("MIXED", "混合团");
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    EGroupGradeType(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public static EGroupGradeType get(String code) {
+        for (EGroupGradeType vpg : EGroupGradeType.values()) {
+            if (vpg.getCode().equals(code)) {
+                return vpg;
+            }
+        }
+        return null;
+    }
+}

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EInGroupStatus.java

@@ -0,0 +1,27 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+@Getter
+public enum EInGroupStatus implements BaseEnum<String, EInGroupStatus> {
+
+    // 在团状态 在团 IN 退团 OUT 申请退团 APPLY_OUT
+    IN("IN", "在团"),
+    OUT("OUT", "退团"),
+    QUIT_SCHOOL("QUIT_SCHOOL","休学"),
+    APPLY("APPLY","报名"),
+    APPLY_OUT("APPLY_OUT", "申请退团");
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    EInGroupStatus(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+}

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

@@ -27,7 +27,12 @@ public enum ELessonTrainingType implements BaseEnum<String, ELessonTrainingType>
     /**
      * 额外练习
      */
-    EXTRA( "额外练习")
+    EXTRA( "额外练习"),
+
+    /**
+     * 评测
+     */
+    EVALUATION( "评测"),
     ;
 
     private String desc;

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ESchoolActivityProgramType.java

@@ -0,0 +1,27 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+@Getter
+public enum ESchoolActivityProgramType implements BaseEnum<String, ESchoolActivityProgramType> {
+
+    // 节目类型 合奏 ENSEMBLE 独奏 SOLO 重奏 REPRISE 齐奏 UNISON
+    ENSEMBLE("ENSEMBLE","合奏"),
+    SOLO("SOLO","独奏"),
+    REPRISE("REPRISE","重奏"),
+    UNISON("UNISON","齐奏");
+
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    ESchoolActivityProgramType(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+}

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ESchoolActivityStatus.java

@@ -0,0 +1,25 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+@Getter
+public enum ESchoolActivityStatus implements BaseEnum<String, ESchoolActivityStatus> {
+
+    // 活动状态 未开始 NOT_START 进行中 PROCESSING 已结束 END,
+    NOT_START("NOT_START","未开始"),
+    PROCESSING("PROCESSING","进行中"),
+    END("END","已结束");
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    ESchoolActivityStatus(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+}

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ESchoolActivityType.java

@@ -0,0 +1,30 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+@Getter
+public enum ESchoolActivityType implements BaseEnum<String, ESchoolActivityType> {
+
+    // 活动类型 开放日 OPEN_DAY 汇演 PERFORMANCE 音乐会 CONCERT 比赛 COMPETITION 讲座 LECTURE 校庆 SCHOOL_DAY 迎宾 WELCOME 其他 OTHER
+    OPEN_DAY("OPEN_DAY","开放日"),
+    PERFORMANCE("PERFORMANCE","汇演"),
+    CONCERT("CONCERT","音乐会"),
+    COMPETITION("COMPETITION","比赛"),
+    LECTURE("LECTURE","讲座"),
+    SCHOOL_DAY("SCHOOL_DAY","校庆"),
+    WELCOME("WELCOME","迎宾"),
+    OTHER("OTHER","其他");
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    ESchoolActivityType(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+}

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

@@ -1,6 +1,12 @@
 package com.ym.mec.biz.dal.enums;
 
 import com.ym.mec.common.enums.BaseEnum;
+import com.ym.mec.common.exception.BizException;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
 
 public enum FivePlusGradeEnum implements BaseEnum<Integer, FivePlusGradeEnum> {
 	GRADE1(1, "一年级"),
@@ -43,4 +49,37 @@ public enum FivePlusGradeEnum implements BaseEnum<Integer, FivePlusGradeEnum> {
 		return null;
 	}
 
-}
+
+    public static FivePlusGradeEnum[] getArray(String gradeType) {
+        if (StringUtils.isBlank(gradeType)) {
+            return FivePlusGradeEnum.values();
+        }
+        Set<FivePlusGradeEnum> list = new HashSet<>();
+        for (String s : gradeType.split(",")) {
+            EGroupGradeType o = EGroupGradeType.get(s);
+            if (o == null) {
+                throw new BizException("gradeType参数错误");
+            }
+            switch (o) {
+                case PRIMARY:
+                    list.addAll(Arrays.asList(GRADE1, GRADE2, GRADE3, GRADE4, GRADE5));
+                    break;
+                case MIDDLE:
+                    list.addAll(Arrays.asList(GRADE6,GRADE7, GRADE8, GRADE9));
+                    break;
+                case HIGH:
+                    list.addAll(Arrays.asList(GRADE10, GRADE11, GRADE12));
+                    break;
+                case MIXED:
+                    list.addAll(Arrays.asList(GRADE1, GRADE2, GRADE3, GRADE4, GRADE5, GRADE6, GRADE7, GRADE8, GRADE9));
+
+                    break;
+                default:
+                    list.addAll(Arrays.asList(FivePlusGradeEnum.values()));
+            }
+
+        }
+        return list.toArray(new FivePlusGradeEnum[0]);
+    }
+
+    }

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

@@ -9,7 +9,10 @@ public enum HumanCostTypeEnum implements BaseEnum<String, HumanCostTypeEnum> {
 	NETWORK_CLASSROOM("NETWORK_CLASSROOM","网络教室成本"),
 	CLOUD_COACHING_COST("CLOUD_COACHING_COST","云教练成本"),
 	INTERNAL_SETTLEMENT("INTERNAL_SETTLEMENT","内部结算"),
-	STUDENT_MANAGEMENT_FEE_ADJUSTMENT("STUDENT_MANAGEMENT_FEE_ADJUSTMENT","学员管理费调整");
+	STUDENT_MANAGEMENT_FEE_ADJUSTMENT("STUDENT_MANAGEMENT_FEE_ADJUSTMENT","学员管理费调整"),
+	COMMISSION("COMMISSION","手续费"),
+	TAX("TAX","税费"),
+	;
 
 	@EnumValue
 	private String code;

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java

@@ -47,6 +47,10 @@ public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
     TEACHER_NOT_A_CLASS("TEACHER_NOT_A_CLASS", "课程异常"),
     TEACHER_SERVE_ERROR("TEACHER_SERVE_ERROR", "服务指标异常"),
     HAS_FREE_COURSE_TIMES("HAS_FREE_COURSE_TIMES", "学员已排课时长未消耗完"),
+
+    // 学校巡堂异常
+    SCHOOL_PATROL("SCHOOL_PATROL", "学校巡堂异常"),
+
     ;
 
     private String code;

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -253,6 +253,46 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     //小小训练营-训练营开始训练推送
     JIGUANG_TEMP_LITTLE_ARTIST_START_TRAIN("JIGUANG_TEMP_LITTLE_ARTIST_START_TRAIN","训练营开始训练推送-极光推送"),
 
+
+    //  老师异常签到
+    JIGUANG_TEACHER_SIGN_IN_EXCEPTION("JIGUANG_TEACHER_SIGN_IN_EXCEPTION","老师异常签到-极光推送"),
+
+    // 老师异常签退
+    JIGUANG_TEACHER_SIGN_OUT_EXCEPTION("JIGUANG_TEACHER_SIGN_OUT_EXCEPTION","老师异常签退-极光推送"),
+
+    // 老师请假
+    JIGUANG_TEACHER_LEAVE("JIGUANG_TEACHER_LEAVE","老师请假-极光推送"),
+
+    // 学员退团申请消息
+    JIGUANG_STUDENT_QUIT_GROUP_APPLY("JIGUANG_STUDENT_QUIT_GROUP_APPLY","学员退团申请消息-极光推送"),
+    // 学员退团消息
+    JIGUANG_STUDENT_QUIT_GROUP("JIGUANG_STUDENT_QUIT_GROUP","学员退团消息-极光推送"),
+    // 学员退团消息
+    JIGUANG_STUDENT_QUIT_GROUP_DENIED("JIGUANG_STUDENT_QUIT_GROUP_DENIED","学员退团消息-极光推送"),
+
+    // 学员请假消息
+    JIGUANG_STUDENT_LEAVE("JIGUANG_STUDENT_LEAVE","学员请假消息-极光推送"),
+
+    // 课程变更消息
+    JIGUANG_COURSE_CHANGE("JIGUANG_COURSE_CHANGE","课程变更消息-极光推送"),
+
+    // 课程安排
+    JIGUANG_COURSE_ARRANGE("JIGUANG_COURSE_ARRANGE","课程安排-极光推送"),
+
+    // 学校端账户注册
+    JIGUANG_SCHOOL_ACCOUNT_REGISTER("JIGUANG_SCHOOL_ACCOUNT_REGISTER","学校端账户注册-极光推送"),
+
+    // 学校端账户注册通知
+    JIGUANG_SCHOOL_ACCOUNT_REGISTER_NOTICE("JIGUANG_SCHOOL_ACCOUNT_REGISTER_NOTICE","学校端账户注册通知-极光推送"),
+
+    // 学校端注册短信通知
+    SMS_SCHOOL_ACCOUNT_REGISTER("SMS_SCHOOL_ACCOUNT_REGISTER","学校端注册短信通知-极光推送"),
+
+    // 学校端注册短信通知
+    JIGUANG_SCHOOL_COURSE_CHANGE("JIGUANG_SCHOOL_COURSE_CHANGE","课程信息变更"),
+
+    // 学校端注册短信通知
+    JIGUANG_SCHOOL_COURSE_CREATE("JIGUANG_SCHOOL_COURSE_CREATE","课程创建"),
     // 老师直播课上课通知
     JIGUANG_LIVE_COURSE_START("JIGUANG_LIVE_COURSE_START","老师直播课上课通知-极光推送"),
 

+ 77 - 39
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SixPlusGradeEnum.java

@@ -1,46 +1,84 @@
 package com.ym.mec.biz.dal.enums;
 
 import com.ym.mec.common.enums.BaseEnum;
+import com.ym.mec.common.exception.BizException;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.*;
 
 public enum SixPlusGradeEnum implements BaseEnum<Integer, SixPlusGradeEnum> {
-	GRADE1(1, "一年级"),
-	GRADE2(2, "二年级"),
-	GRADE3(3, "三年级"),
-	GRADE4(4, "四年级"),
-	GRADE5(5, "五年级"),
-	GRADE6(6, "六年级"),
-	GRADE7(7, "七年级/初一"),
-	GRADE8(8, "八年级/初二"),
-	GRADE9(9, "九年级/初三"),
-	GRADE10(10, "高一"),
-	GRADE11(11, "高二"),
-	GRADE12(12, "高三");
-
-	private Integer code;
-
-	private String desc;
-
-	private SixPlusGradeEnum(Integer code, String desc) {
-		this.code = code;
-		this.desc = desc;
-	}
-
-	@Override
-	public Integer getCode() {
-		return code;
-	}
-
-	public String getDesc() {
-		return desc;
-	}
-	
-	public static SixPlusGradeEnum get(String desc) {
-		for (SixPlusGradeEnum vpg : SixPlusGradeEnum.values()) {
-			if (vpg.getDesc().equals(desc)) {
-				return vpg;
-			}
-		}
-		return null;
-	}
+    GRADE1(1, "一年级"),
+    GRADE2(2, "二年级"),
+    GRADE3(3, "三年级"),
+    GRADE4(4, "四年级"),
+    GRADE5(5, "五年级"),
+    GRADE6(6, "六年级"),
+    GRADE7(7, "七年级/初一"),
+    GRADE8(8, "八年级/初二"),
+    GRADE9(9, "九年级/初三"),
+    GRADE10(10, "高一"),
+    GRADE11(11, "高二"),
+    GRADE12(12, "高三");
+
+    private Integer code;
+
+    private String desc;
+
+    private SixPlusGradeEnum(Integer code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    @Override
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public static SixPlusGradeEnum get(String desc) {
+        for (SixPlusGradeEnum vpg : SixPlusGradeEnum.values()) {
+            if (vpg.getDesc().equals(desc)) {
+                return vpg;
+            }
+        }
+        return null;
+    }
+
+    public static SixPlusGradeEnum[] getArray(String gradeType) {
+        if (StringUtils.isBlank(gradeType)) {
+            return SixPlusGradeEnum.values();
+        }
+        Set<SixPlusGradeEnum> list = new HashSet<>();
+        for (String s : gradeType.split(",")) {
+            EGroupGradeType o = EGroupGradeType.get(s);
+            if (o == null) {
+                throw new BizException("gradeType参数错误");
+            }
+            switch (o) {
+                case PRIMARY:
+                    list.addAll(Arrays.asList(GRADE1, GRADE2, GRADE3, GRADE4, GRADE5, GRADE6));
+                    break;
+                case MIDDLE:
+                    list.addAll(Arrays.asList(GRADE7, GRADE8, GRADE9));
+                    break;
+                case HIGH:
+                    list.addAll(Arrays.asList(GRADE10, GRADE11, GRADE12));
+                    break;
+                case MIXED:
+                    list.addAll(Arrays.asList(GRADE1, GRADE2, GRADE3, GRADE4, GRADE5, GRADE6, GRADE7, GRADE8, GRADE9));
+
+                    break;
+                default:
+                    list.addAll(Arrays.asList(SixPlusGradeEnum.values()));
+            }
+
+        }
+        return list.toArray(new SixPlusGradeEnum[0]);
+
+
+    }
 
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.ym.mec.common.enums.BaseEnum;
 
 /**
@@ -12,6 +13,7 @@ public enum StudentAttendanceStatusEnum implements BaseEnum<String,StudentAttend
     DROP_OUT("DROP_OUT","退学"),
     LATE("LATE","迟到");
 
+    @EnumValue
     private String code;
 
     private String msg;

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

@@ -1,11 +1,13 @@
 package com.ym.mec.biz.dal.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.ym.mec.common.enums.BaseEnum;
 
 public enum YesOrNoEnum implements BaseEnum<Integer, YesOrNoEnum> {
     NO(0,"否"),
     YES(1,"是");
 
+    @EnumValue
     private Integer code;
     private String msg;
 

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/school/EQuitGroupAuditStatusEnum.java

@@ -0,0 +1,34 @@
+package com.ym.mec.biz.dal.enums.school;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.google.common.collect.Lists;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.List;
+
+@Getter
+public enum EQuitGroupAuditStatusEnum implements BaseEnum<String, EQuitGroupAuditStatusEnum> {
+
+	ING("待审核"),
+	PASS("审核通过"),
+	REJECT("拒绝"),
+	;
+
+	private final String describe;
+
+	@EnumValue
+	private final String code;
+
+	EQuitGroupAuditStatusEnum(String describe) {
+		this.describe = describe;
+
+		this.code = this.name();
+	}
+
+	@Override
+	public String getCode() {
+		return this.name();
+	}
+}

+ 66 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/school/ESchoolStaffType.java

@@ -0,0 +1,66 @@
+package com.ym.mec.biz.dal.enums.school;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.google.common.collect.Lists;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+import org.apache.catalina.LifecycleState;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.List;
+
+/***
+ * 学校员工类型
+ * 1人:校长、乐团领队
+ * 多人:分管领导、负责老师
+ */
+@Getter
+public enum ESchoolStaffType implements BaseEnum<String, ESchoolStaffType> {
+
+	SCHOOLMASTER("校长"),
+	ORCHESTRA_LEADER("乐团领队"),
+	SCHOOL_LEADER("分管领导"),
+	TEACHER("负责老师"),
+	;
+
+	private final String describe;
+
+	@EnumValue
+	private final String code;
+
+	ESchoolStaffType(String describe) {
+		this.describe = describe;
+
+		this.code = this.name();
+	}
+
+	@Override
+	public String getCode() {
+		return this.name();
+	}
+
+	/**
+	 * 参数合法性校验
+	 * @param code 枚举code
+	 * @return boolean
+	 */
+	public static boolean invalid(String code) {
+
+		if (StringUtils.isNotEmpty(code)) {
+			for (ESchoolStaffType e : ESchoolStaffType.values()) {
+				if (e.getCode().equals(code)) {
+					return false;
+				}
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * 排序返回员工身份
+	 * @return List<ESchoolStaffType>
+	 */
+	public static List<ESchoolStaffType> sorted() {
+		return Lists.newArrayList(SCHOOLMASTER, ORCHESTRA_LEADER, SCHOOL_LEADER, TEACHER);
+	}
+}

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/CoursePatrolEvaluationMapper.java

@@ -0,0 +1,28 @@
+package com.ym.mec.biz.dal.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import com.ym.mec.biz.dal.entity.CoursePatrolEvaluation;
+import com.ym.mec.biz.dal.wrapper.CoursePatrolEvaluationWrapper;
+
+/**
+ * 巡堂详情
+ * 2023-05-04 11:32:00
+ */
+@Repository
+public interface CoursePatrolEvaluationMapper extends BaseMapper<CoursePatrolEvaluation> {
+
+	/**
+	 * 分页查询
+	 * @param page IPage<CoursePatrolEvaluationWrapper.CoursePatrolEvaluation>
+	 * @param param CoursePatrolEvaluationWrapper.CoursePatrolEvaluationQuery
+	 * @return List<CoursePatrolEvaluationWrapper.CoursePatrolEvaluation>
+	 */
+	List<CoursePatrolEvaluationWrapper.CoursePatrolEvaluationInfo> selectPage(@Param("page") IPage<CoursePatrolEvaluationWrapper.CoursePatrolEvaluationInfo> page, @Param("param") CoursePatrolEvaluationWrapper.CoursePatrolEvaluationQuery param);
+
+    IPage<CoursePatrolEvaluationWrapper.CoursePatrolEvaluationStat> pageStat(@Param("page") IPage<Object> page, @Param("param") CoursePatrolEvaluationWrapper.CoursePatrolEvaluationQuery query);
+}

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/CourseSchedulePlusMapper.java

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.dal.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.wrapper.TeachingPointWrapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+@Repository
+public interface CourseSchedulePlusMapper extends BaseMapper<Object> {
+
+    List<TeachingPointWrapper.CourseTeachingPoint> teachingPointCourse(@Param("page") IPage<TeachingPointWrapper.CourseTeachingPoint> page,
+                                                                       @Param("param") TeachingPointWrapper.TeachingPointQuery queryInfo);
+
+    List<TeachingPointWrapper.ClassTeachingPoint> teachingPointClass(@Param("page") IPage<TeachingPointWrapper.ClassTeachingPoint> page,
+                                                                     @Param("param") TeachingPointWrapper.TeachingPointQuery queryInfo);
+}

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolActivityDetailMapper.java

@@ -0,0 +1,27 @@
+package com.ym.mec.biz.dal.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import com.ym.mec.biz.dal.entity.SchoolActivityDetail;
+import com.ym.mec.biz.dal.wrapper.SchoolActivityDetailWrapper;
+
+/**
+ * 活动详情
+ * 2023-05-04 11:32:00
+ */
+@Repository
+public interface SchoolActivityDetailMapper extends BaseMapper<SchoolActivityDetail> {
+
+	/**
+	 * 分页查询
+	 * @param page IPage<SchoolActivityDetailWrapper.SchoolActivityDetail>
+	 * @param param SchoolActivityDetailWrapper.SchoolActivityDetailQuery
+	 * @return List<SchoolActivityDetailWrapper.SchoolActivityDetail>
+	 */
+	List<SchoolActivityDetail> selectPage(@Param("page") IPage<SchoolActivityDetail> page, @Param("param") SchoolActivityDetailWrapper.SchoolActivityDetailQuery param);
+	
+}

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolActivityDetailUserMapper.java

@@ -0,0 +1,27 @@
+package com.ym.mec.biz.dal.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import com.ym.mec.biz.dal.entity.SchoolActivityDetailUser;
+import com.ym.mec.biz.dal.wrapper.SchoolActivityDetailUserWrapper;
+
+/**
+ * 活动详情人员
+ * 2023-05-04 11:32:00
+ */
+@Repository
+public interface SchoolActivityDetailUserMapper extends BaseMapper<SchoolActivityDetailUser> {
+
+	/**
+	 * 分页查询
+	 * @param page IPage<SchoolActivityDetailUserWrapper.SchoolActivityDetailUser>
+	 * @param param SchoolActivityDetailUserWrapper.SchoolActivityDetailUserQuery
+	 * @return List<SchoolActivityDetailUserWrapper.SchoolActivityDetailUser>
+	 */
+	List<SchoolActivityDetailUser> selectPage(@Param("page") IPage<SchoolActivityDetailUser> page, @Param("param") SchoolActivityDetailUserWrapper.SchoolActivityDetailUserQuery param);
+	
+}

+ 31 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolActivityMapper.java

@@ -0,0 +1,31 @@
+package com.ym.mec.biz.dal.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import com.ym.mec.biz.dal.entity.SchoolActivity;
+import com.ym.mec.biz.dal.wrapper.SchoolActivityWrapper;
+
+/**
+ * 学校活动
+ * 2023-05-04 11:32:00
+ */
+@Repository
+public interface SchoolActivityMapper extends BaseMapper<SchoolActivity> {
+
+	/**
+	 * 分页查询
+	 * @param page IPage<SchoolActivityWrapper.SchoolActivity>
+	 * @param param SchoolActivityWrapper.SchoolActivityQuery
+	 * @return List<SchoolActivityWrapper.SchoolActivity>
+	 */
+	List<SchoolActivityWrapper.SchoolActivity> selectPage(@Param("page") IPage<SchoolActivityWrapper.SchoolActivity> page, @Param("param") SchoolActivityWrapper.SchoolActivityQuery param);
+
+    /**
+     * 获取学生列表
+     */
+    List<SchoolActivityWrapper.SchoolActivityStudent> getUserList(@Param("param") SchoolActivityWrapper.SchoolActivityStudentQuery query);
+}

+ 47 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolStaffMapper.java

@@ -0,0 +1,47 @@
+package com.ym.mec.biz.dal.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ym.mec.biz.dal.enums.school.ESchoolStaffType;
+import com.ym.mec.biz.dal.wrapper.StatGroupWrapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import com.ym.mec.biz.dal.entity.SchoolStaff;
+import com.ym.mec.biz.dal.wrapper.SchoolStaffWrapper;
+
+/**
+ * 学校员工
+ * 2023-05-06 10:49:23
+ */
+@Repository
+public interface SchoolStaffMapper extends BaseMapper<SchoolStaff> {
+
+	/**
+	 * 分页查询
+	 * @param page IPage<SchoolStaffWrapper.SchoolStaff>
+	 * @param param SchoolStaffWrapper.SchoolStaffQuery
+	 * @return List<SchoolStaffWrapper.SchoolStaff>
+	 */
+	List<SchoolStaffWrapper.SchoolStaff> selectPage(@Param("page") IPage<SchoolStaffWrapper.SchoolStaff> page, @Param("param") SchoolStaffWrapper.SchoolStaffQuery param);
+
+	/**
+	 * 学校员工身份数统计
+	 * @param schoolId 学校Id
+	 * @return List<StatGroupWrapper>
+	 */
+    List<StatGroupWrapper> selectUserTypeNumsStat(@Param("schoolId") Integer schoolId);
+
+    /**
+     * 修改学校用户状态
+     *
+     * @param status 状态
+     * @param cooperationOrganId 合作单位ID
+     */
+    void updateStatusAndRecoveryStatus(@Param("status") Boolean status, @Param("cooperationOrganId") Integer cooperationOrganId);
+
+    void delUser(@Param("userId") Long userId);
+
+    List<SchoolStaff> getByCoopIdAndType(@Param("cooperationOrganId") Integer cooperationOrganId, @Param("staffType") ESchoolStaffType staffType);
+}

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/StudentPlusMapper.java

@@ -0,0 +1,18 @@
+package com.ym.mec.biz.dal.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ym.mec.biz.dal.wrapper.StudentWrapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Objects;
+
+@Repository
+public interface StudentPlusMapper extends BaseMapper<Object> {
+
+
+    List<StudentWrapper.StudentList> userPage(@Param("page") IPage<StudentWrapper.StudentList> page, @Param("param") StudentWrapper.StudentQuery queryInfo);
+
+}

+ 60 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/ClassesForDayDto.java

@@ -0,0 +1,60 @@
+package com.ym.mec.biz.dal.school.dto;
+
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ClassesForDayDto {
+    @ApiModelProperty(value = "课程编号",required = false)
+    private Long courseId;
+
+    @ApiModelProperty(value = "课程名称",required = false)
+    private String courseName;
+
+    @ApiModelProperty(value = "课程状态",required = false)
+    private CourseStatusEnum courseStatus;
+
+    @ApiModelProperty(value = "上课时间",required = false)
+    private String classDate;
+
+    @ApiModelProperty(value = "老师编号",required = false)
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "老师头像",required = false)
+    private String teacherAvatar;
+
+    @ApiModelProperty(value = "老师名称",required = false)
+    private String teacherName;
+
+    @ApiModelProperty(value = "乐团编号",required = false)
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "乐团名称",required = false)
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "学员数量",required = false)
+    private Integer studentNum;
+
+    @ApiModelProperty(value = "正常出勤",required = false)
+    private Integer attendanceNormalNum;
+
+    @ApiModelProperty(value = "迟到人数",required = false)
+    private Integer attendanceLateNum;
+
+    @ApiModelProperty(value = "请假人数",required = false)
+    private Integer attendanceLeaveNum;
+
+    @ApiModelProperty(value = "旷课人数",required = false)
+    private Integer attendanceTruantNum;
+
+    @ApiModelProperty(value = "教学模式",required = false)
+    private TeachModeEnum teachMode;
+
+    @ApiModelProperty(value = "作业类型,HOMEWORK,LESSON",required = false)
+    private String homeworkType;
+
+    @ApiModelProperty(value = "作业编号",required = false)
+    private Long homeworkId;
+}

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/CourseStudentDto.java

@@ -0,0 +1,30 @@
+package com.ym.mec.biz.dal.school.dto;
+
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CourseStudentDto {
+    @ApiModelProperty(value = "学员编号",required = false)
+    private Integer studentId;
+
+    @ApiModelProperty(value = "学员头像",required = false)
+    private String studentAvatar;
+
+    @ApiModelProperty(value = "是否会员",required = false)
+    private Boolean memberFlag;
+
+    @ApiModelProperty(value = "学员姓名",required = false)
+    private String studentName;
+
+    @ApiModelProperty(value = "考勤状态",required = false)
+    private StudentAttendanceStatusEnum attendanceStatus;
+
+    @ApiModelProperty(value = "课后评价是否达标",required = false)
+    private Boolean qualifiedFlag;
+
+    @ApiModelProperty(value = "课程状态",required = false)
+    private CourseStatusEnum courseStatus;
+}

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/MusicGroupQuitDetailDto.java

@@ -0,0 +1,23 @@
+package com.ym.mec.biz.dal.school.dto;
+
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.dal.enums.school.EQuitGroupAuditStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class MusicGroupQuitDetailDto extends MusicGroupQuitPageDto{
+
+    @ApiModelProperty(value = "审核原因",required = true)
+    private String schoolStaffAuditReason;
+
+    @ApiModelProperty(value = "学员退团原因",required = true)
+    private String userComment;
+
+    @ApiModelProperty(value = "学员编号",required = true)
+    private MusicGroupQuit.ReasonEnum reasonEnum;
+
+    private String musicGroupName;
+}

+ 35 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/MusicGroupQuitPageDto.java

@@ -0,0 +1,35 @@
+package com.ym.mec.biz.dal.school.dto;
+
+import com.ym.mec.biz.dal.enums.school.EQuitGroupAuditStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class MusicGroupQuitPageDto {
+
+    @ApiModelProperty(value = "审核状态",required = true)
+    private EQuitGroupAuditStatusEnum status;
+
+    @ApiModelProperty(value = "提交时间",required = true)
+    private Date createTime;
+
+    @ApiModelProperty(value = "学员编号",required = true)
+    private Integer studentId;
+
+    @ApiModelProperty(value = "学员名称",required = true)
+    private String studentName;
+
+    @ApiModelProperty(value = "学员头像",required = true)
+    private String studentAvatar;
+
+    @ApiModelProperty(value = "声部",required = true)
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "声部",required = true)
+    private String subjectName;
+
+    @ApiModelProperty(value = "退团id",required = true)
+    private Long musicGroupQuitId;
+}

+ 37 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/NewsInformationDto.java

@@ -0,0 +1,37 @@
+package com.ym.mec.biz.dal.school.dto;
+
+import com.ym.mec.biz.dal.entity.SysNewsInformation;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class NewsInformationDto {
+    private Long id;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "封面图片")
+    private String coverImage;
+
+    @ApiModelProperty(value = "类型")
+    private Integer type;
+
+    @ApiModelProperty(value = "子类型")
+    private Integer subType;
+
+    @ApiModelProperty(value = "链接地址")
+    private String linkUrl;
+
+    @ApiModelProperty(value = "跳转类型_bank,_slef")
+    private String hrefTarget;
+
+    @ApiModelProperty(value = "红点类型")
+    private SysNewsInformation.ERedPointEnum redPoint;
+
+    @ApiModelProperty(value = "是否有红点")
+    private Boolean redPointFlag = false;
+}

+ 46 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/TeacherAttendanceDto.java

@@ -0,0 +1,46 @@
+package com.ym.mec.biz.dal.school.dto;
+
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class TeacherAttendanceDto {
+    @ApiModelProperty(value = "签到状态:0异常,1正常")
+    private Boolean signInStatus = false;
+
+    @ApiModelProperty(value = "签到时间")
+    private Date signInTime;
+
+    @ApiModelProperty(value = "签退状态:0异常,1正常")
+    private Boolean signOutStatus = false;
+
+    @ApiModelProperty(value = "签退时间")
+    private Date signOutTime;
+
+    @ApiModelProperty(value = "教学点签到状态")
+    private Boolean signInAddressStatus = true;
+
+    @ApiModelProperty(value = "教学点签退状态")
+    private Boolean signOutAddressStatus = true;
+
+    @ApiModelProperty(value = "签到经纬度")
+    private String signInLongitudeLatitude;
+
+    @ApiModelProperty(value = "签退经纬度")
+    private String signOutLongitudeLatitude;
+
+    @ApiModelProperty(value = "教学模式")
+    private TeachModeEnum teachMode;
+
+    @ApiModelProperty(value = "教学点签到经纬度")
+    private String schoolLongitudeLatitude;
+
+    @ApiModelProperty(value = "课程状态")
+    private CourseStatusEnum courseStatus;
+
+}

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/TeacherAttendanceListDto.java

@@ -0,0 +1,15 @@
+package com.ym.mec.biz.dal.school.dto;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class TeacherAttendanceListDto extends TeacherAttendanceDto{
+
+    @ApiModelProperty(value = "课程类型")
+    private CourseSchedule.CourseScheduleType courseScheduleType;
+
+    @ApiModelProperty(value = "上课时间")
+    private String classDate;
+}

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/TeacherAttendanceSumDto.java

@@ -0,0 +1,33 @@
+package com.ym.mec.biz.dal.school.dto;
+
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.school.page.TeacherAttendanceQueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class TeacherAttendanceSumDto {
+    @ApiModelProperty(value = "老师姓名")
+    private String teacherName;
+
+    @ApiModelProperty(value = "老师头像")
+    private String teacherAvatar;
+
+    @ApiModelProperty(value = "班级类型")
+    private ClassGroupTypeEnum classGroupType;
+
+    @ApiModelProperty(value = "班级名称")
+    private String classGroupName;
+
+    @ApiModelProperty(value = "班级编号")
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "老师编号")
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "本周课程考勤状态")
+    private TeacherAttendanceQueryInfo.TeacherAttendanceEnum teacherAttendanceStatus = TeacherAttendanceQueryInfo.TeacherAttendanceEnum.NO_COURSE;
+
+    @ApiModelProperty(value = "本学期异常考勤课程数")
+    private Integer errCourseNum = 0;
+}

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/MusicGroupQuitQueryInfo.java

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.dal.school.page;
+
+import com.ym.mec.biz.dal.enums.school.EQuitGroupAuditStatusEnum;
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MusicGroupQuitQueryInfo  extends QueryInfo {
+
+    @ApiModelProperty(value = "审核状态",required = true)
+    private EQuitGroupAuditStatusEnum status;
+
+    @ApiModelProperty(value = "合作单位编号",required = true)
+    private Integer coopId;
+
+    @ApiModelProperty(value = "乐团编号",required = false)
+    private List<String> musicGroupIds;
+}

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryDto.java

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.dal.school.page;
+
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class TeacherAttendanceQueryDto {
+
+    @ApiModelProperty(value = "合作单位编号",required = true)
+    private Integer coopId;
+
+    @ApiModelProperty(value = "班级编号",required = true)
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "老师编号",required = true)
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "课程状态",required = true)
+    private CourseStatusEnum courseStatus;
+}

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryDto1.java

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.dal.school.page;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class TeacherAttendanceQueryDto1 {
+
+    @ApiModelProperty(value = "班级编号",required = true)
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "老师编号",required = true)
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "课程考勤状态(正常异常)",required = true)
+    private Boolean courseType;
+
+    @ApiModelProperty(value = "课程类型",required = true)
+    private CourseSchedule.CourseScheduleType courseScheduleType;
+}

+ 70 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryInfo.java

@@ -0,0 +1,70 @@
+package com.ym.mec.biz.dal.school.page;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.common.enums.BaseEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TeacherAttendanceQueryInfo{
+    public enum TeacherAttendanceEnum implements BaseEnum<String,TeacherAttendanceEnum> {
+        NORMAL("NORMAL", "正常"),
+        ERR("ERR", "异常"),
+        NO_COURSE("NO_COURSE", "无课"),
+        ;
+
+        @EnumValue
+        private String code;
+        private String msg;
+
+        TeacherAttendanceEnum(String code, String msg) {
+            this.code = code;
+            this.msg = msg;
+        }
+
+        public String getMsg() {
+            return msg;
+        }
+
+        @Override
+        public String getCode() {
+            return code;
+        }
+    }
+
+    @ApiModelProperty(value = "班级类型",required = false)
+    private String classType;
+
+    @ApiModelProperty(value = "模糊查询",required = false)
+    private String search;
+
+    @ApiModelProperty(value = "合作单位编号",required = true)
+    private Integer coopId;
+
+    @ApiModelProperty(value = "班级编号",required = false)
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "老师编号(不用传)",required = false)
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "考勤状态",required = false)
+    private TeacherAttendanceEnum teacherAttendanceStatus;
+
+    @ApiModelProperty(value = "学期(不用传)",required = false)
+    private String startTerm;
+
+    @ApiModelProperty(value = "学期(不用传)",required = false)
+    private String endTerm;
+
+    @ApiModelProperty(value = "(不用传)",required = false)
+    private List<String> musicGroupIds;
+
+    @ApiModelProperty(value = "课程状态",required = true)
+    private CourseStatusEnum courseStatus;
+
+    private Integer tenantId = TenantContextHolder.getTenantId();
+}

+ 285 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/CoursePatrolEvaluationWrapper.java

@@ -0,0 +1,285 @@
+package com.ym.mec.biz.dal.wrapper;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.core.conditions.update.Update;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.microsvc.toolkit.config.validator.group.ValidGroups;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.EEvaluateProblemType;
+import com.ym.mec.biz.dal.enums.EEvaluateStatus;
+import com.ym.mec.biz.dal.enums.ESchoolActivityProgramType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+import java.util.Optional;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 巡堂详情
+ * 2023-05-04 11:32:00
+ */
+@ApiModel(value = "CoursePatrolEvaluationWrapper对象", description = "巡堂详情查询对象")
+public class CoursePatrolEvaluationWrapper {
+
+    @Data
+	@Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" CoursePatrolEvaluationQuery-巡堂详情")
+    public static class CoursePatrolEvaluationQuery implements QueryInfo {
+    
+    	@ApiModelProperty("当前页")
+        private Integer page;
+        
+        @ApiModelProperty("分页行数")
+        private Integer rows;
+        
+        @ApiModelProperty("老师姓名/编号/手机号")
+		private String keyword;
+
+        @ApiModelProperty("开始时间")
+        private Date startTime;
+
+        @ApiModelProperty("结束时间")
+        private Date endTime;
+
+        @ApiModelProperty("分部ID")
+        private String organId;
+
+
+        @ApiModelProperty("合作单位ID ")
+        private Integer cooperationOrganId;
+
+        @ApiModelProperty("课程类型")
+        private CourseSchedule.CourseScheduleType courseType;
+
+
+        @ApiModelProperty("优秀EXCELLENT、良好GOOD、合格QUALIFIED、不合格UNQUALIFIED")
+        private EEvaluateStatus evaluateStatus;
+
+
+        @ApiModelProperty("问题类型 课堂纪律 CLASSROOM_DISCIPLINE, 放学组织 AFTER_SCHOOL_ORGANIZATION, 环境卫生 ENVIRONMENTAL_SANITATION, 教态仪表 TEACHING_DEMEANOR, 沟通表达 COMMUNICATION_EXPRESSION, 专业能力 PROFESSIONAL_ABILITY, 其他 OTHER")
+        private EEvaluateProblemType problemType;
+
+        @ApiModelProperty("处理状态")
+        private Boolean handleStatus;
+
+        @ApiModelProperty("评价状态")
+        private Boolean evaluateFlag;
+
+        @ApiModelProperty("巡堂ID")
+        private Integer id;
+
+        @JsonIgnore
+        // 必须存在巡堂
+        private Boolean patrolFlag;
+
+        @ApiModelProperty(value = "课程状态", required = false)
+        private CourseStatusEnum status;
+
+        public String getKeyword() {
+            return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
+        }
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static CoursePatrolEvaluationQuery from(String json) {
+            return JSON.parseObject(json, CoursePatrolEvaluationQuery.class);
+        }
+    }
+
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" CoursePatrolEvaluationStatQuery-巡堂查询")
+    public static class CoursePatrolEvaluationStatQuery implements QueryInfo {
+
+        @ApiModelProperty("当前页")
+        private Integer page;
+
+        @ApiModelProperty("分页行数")
+        private Integer rows;
+
+        @ApiModelProperty("开始时间")
+        private Date startTime;
+
+        @ApiModelProperty("结束时间")
+        private Date endTime;
+
+        @ApiModelProperty("合作单位ID")
+        private Integer cooperationOrganId;
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static CoursePatrolEvaluationQuery from(String json) {
+            return JSON.parseObject(json, CoursePatrolEvaluationQuery.class);
+        }
+    }
+
+    @Data
+    @ApiModel("CoursePatrolEvaluationStat-巡堂详情统计")
+    public static class CoursePatrolEvaluationStat {
+
+        @ApiModelProperty("日期")
+        private String date;
+
+        @ApiModelProperty("声部课 数量")
+        private Integer singleCourseCount;
+
+        @ApiModelProperty("合奏课数量")
+        private Integer minCourseCount;
+
+
+        @ApiModelProperty("巡堂数量")
+        private Integer patrolCount;
+
+        @ApiModelProperty("总数量")
+        private Integer totalCount;
+
+
+    }
+
+
+    @Data
+	@ApiModel(" CoursePatrolEvaluation-巡堂详情")
+    public static class CoursePatrolEvaluationInfo {
+
+        @ApiModelProperty("巡堂编号")
+        private Integer id;
+
+        @ApiModelProperty("分部ID")
+        private Integer organId;
+
+        @ApiModelProperty("分部名称")
+        private String organName;
+
+        @ApiModelProperty("合作单位ID")
+        private Integer cooperationOrganId;
+
+        @ApiModelProperty("合作单位名称")
+        private String cooperationOrganName;
+
+        @ApiModelProperty("老师ID")
+        private Integer teacherId;
+
+        @ApiModelProperty("老师姓名")
+        private String teacherName;
+
+        @ApiModelProperty("老师头像")
+        private String teacherAvatar;
+
+        @ApiModelProperty("课程ID")
+        private Integer courseScheduleId;
+
+        @ApiModelProperty("课程类型")
+        private CourseSchedule.CourseScheduleType courseType;
+
+        @ApiModelProperty("课程名称")
+        private String courseName;
+
+        @ApiModelProperty("课程日期")
+        private Date courseDate;
+
+        /** 上课时间 */
+        @ApiModelProperty(value = "上课时间")
+        private Date startClassTime;
+
+        /** 结束时间 */
+        @ApiModelProperty(value = "结束时间")
+        private Date endClassTime;
+
+        @ApiModelProperty(value = "课程状态")
+        private CourseStatusEnum courseStatus;
+
+        @ApiModelProperty("操作用户ID")
+        private Integer userId;
+
+        @ApiModelProperty("优秀EXCELLENT、良好GOOD、合格QUALIFIED、不合格UNQUALIFIED")
+        private EEvaluateStatus evaluateStatus;
+
+        @ApiModelProperty("问题类型 课堂纪律 CLASSROOM_DISCIPLINE, 放学组织 AFTER_SCHOOL_ORGANIZATION, 环境卫生 ENVIRONMENTAL_SANITATION, 教态仪表 TEACHING_DEMEANOR, 沟通表达 COMMUNICATION_EXPRESSION, 专业能力 PROFESSIONAL_ABILITY, 其他 OTHER")
+        private String problemType;
+
+        @ApiModelProperty("问题描述")
+        private String problemDesc;
+
+
+        @ApiModelProperty("处理状态")
+        private Boolean handleStatus;
+
+        @ApiModelProperty("建议")
+        private String suggestion;
+
+        @ApiModelProperty("附件")
+        private String attachmentUrl;
+
+        @ApiModelProperty("评价状态")
+        private Boolean evaluateFlag;
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static CoursePatrolEvaluationInfo from(String json) {
+            return JSON.parseObject(json, CoursePatrolEvaluationInfo.class);
+        }
+	}
+
+    @Data
+    @ApiModel(" CoursePatrolEvaluation-保存巡堂信息")
+    public static class CoursePatrolEvaluation {
+
+        @ApiModelProperty("巡堂编号")
+        @NotNull(message = "巡堂编号不能为空",groups = {ValidGroups.Update.class})
+        private Integer id;
+
+        @ApiModelProperty(value = "课程ID")
+        @NotNull(message = "课程ID不能为空",groups = {ValidGroups.Add.class})
+        private Integer courseScheduleId;
+
+        @ApiModelProperty(value = "优秀EXCELLENT、良好GOOD、合格QUALIFIED、不合格UNQUALIFIED")
+        private EEvaluateStatus evaluateStatus;
+
+        @ApiModelProperty("问题类型 课堂纪律 CLASSROOM_DISCIPLINE, 放学组织 AFTER_SCHOOL_ORGANIZATION, 环境卫生 ENVIRONMENTAL_SANITATION, 教态仪表 TEACHING_DEMEANOR, 沟通表达 COMMUNICATION_EXPRESSION, 专业能力 PROFESSIONAL_ABILITY, 其他 OTHER")
+        private String problemType;
+
+        @ApiModelProperty("问题描述")
+        private String problemDesc;
+
+        @ApiModelProperty("建议")
+        private String suggestion;
+
+        @ApiModelProperty("附件")
+        private String attachmentUrl;
+
+        @ApiModelProperty("合作单位ID")
+        private Integer cooperationOrganId;
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static CoursePatrolEvaluation from(String json) {
+            return JSON.parseObject(json, CoursePatrolEvaluation.class);
+        }
+    }
+}

+ 46 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DailySummaryOfClassesForTheCurrentSemesterWrapper.java

@@ -0,0 +1,46 @@
+package com.ym.mec.biz.dal.wrapper;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.List;
+
+public class DailySummaryOfClassesForTheCurrentSemesterWrapper {
+
+
+    @Data
+    public static class DailySummaryOfClassesForTheCurrentSemesterDto{
+        @ApiModelProperty(value = "课程类型列表",required = false)
+        private List<DailySummaryOfClassesForTheCurrentSemesterDetailDto> dailySummaryOfClassesForTheCurrentSemesterDetailDtos;
+
+        @ApiModelProperty(value = "上课时间",required = false)
+        private LocalDate courseDate;
+    }
+
+    @Data
+    public static class DailySummaryOfClassesForTheCurrentSemesterDetailDto{
+        @ApiModelProperty(value = "剩余课时数",required = false)
+        private Integer subCourseNum = 0;
+
+        @ApiModelProperty(value = "总课时数",required = false)
+        private Integer totalCourseNum = 0;
+
+        @ApiModelProperty(value = "课程类型",required = false)
+        private CourseSchedule.CourseScheduleType scheduleType;
+    }
+
+    @Data
+    public static class DailySummaryOfClassesForTheCurrentSemesterMapDto{
+
+        private List<DailySummaryOfClassesForTheCurrentSemesterDto> dailySummaryOfClassesForTheCurrentSemesterDtos;
+
+        private String week;
+
+        private String weekTime;
+
+        @ApiModelProperty(value = "课程状态NOT_START,ING,END",required = false)
+        private String courseStatus;
+    }
+}

+ 35 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeWrapper.java

@@ -235,13 +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;
 
-
         public String jsonString() {
             return JSON.toJSONString(this);
         }
@@ -259,6 +273,26 @@ 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 gradingNoticeLinkUrl(String gradingNoticeLinkUrl) {
+            this.gradingNoticeLinkUrl = gradingNoticeLinkUrl;
+            return this;
+        }
+
+        public StudentDegreeInfo gradingNoticeHrefTarget(String gradingNoticeHrefTarget) {
+            this.gradingNoticeHrefTarget = gradingNoticeHrefTarget;
+            return this;
+        }
     }
 
     @Data

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/ImGroupWrapper.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.wrapper;
+
+import com.ym.mec.biz.dal.entity.ImGroup;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+public class ImGroupWrapper {
+
+    @Data
+    public static class ImQuery {
+
+        @ApiModelProperty("群名称/用户名")
+        private String keyword;
+
+        @ApiModelProperty("群类型  ")
+        private ImGroup.GroupTypeEnum groupType;
+
+        @ApiModelProperty("乐团ID")
+        private String musicGroupId;
+
+        @ApiModelProperty("角色 ")
+        private String roleType;
+
+        @ApiModelProperty("当前用户ID")
+        private Integer userId;
+
+        @ApiModelProperty("用户状态 false :查询未锁定")
+        private Boolean lockFlag;
+
+        private List<Integer> userIds;
+    }
+
+
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/LiveGroupWrapper.java

@@ -48,7 +48,7 @@ public class LiveGroupWrapper {
         private String orderNo;
 
         @ApiModelProperty("学生编号")
-        private Long studentId;
+        private Integer studentId;
 
         @ApiModelProperty("分部名称")
         private String organName;

+ 63 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/SchoolActivityDetailUserWrapper.java

@@ -0,0 +1,63 @@
+package com.ym.mec.biz.dal.wrapper;
+
+import com.alibaba.fastjson.JSON;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Optional;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * 活动详情人员
+ * 2023-05-04 11:32:00
+ */
+@ApiModel(value = "SchoolActivityDetailUserWrapper对象", description = "活动详情人员查询对象")
+public class SchoolActivityDetailUserWrapper {
+
+    @Data
+	@Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" SchoolActivityDetailUserQuery-活动详情人员")
+    public static class SchoolActivityDetailUserQuery implements QueryInfo {
+    
+    	@ApiModelProperty("当前页")
+        private Integer page;
+        
+        @ApiModelProperty("分页行数")
+        private Integer rows;
+        
+        @ApiModelProperty("关键字匹配")
+		private String keyword;
+        
+        public String getKeyword() {
+            return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
+        }
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static SchoolActivityDetailUserQuery from(String json) {
+            return JSON.parseObject(json, SchoolActivityDetailUserQuery.class);
+        }
+    }  
+
+	@ApiModel(" SchoolActivityDetailUser-活动详情人员")
+    public static class SchoolActivityDetailUser {
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static SchoolActivityDetailUser from(String json) {
+            return JSON.parseObject(json, SchoolActivityDetailUser.class);
+        }
+	}
+
+}

+ 125 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/SchoolActivityDetailWrapper.java

@@ -0,0 +1,125 @@
+package com.ym.mec.biz.dal.wrapper;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.core.conditions.update.Update;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.microsvc.toolkit.config.validator.group.ValidGroups;
+import com.ym.mec.biz.dal.enums.ESchoolActivityProgramType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 活动详情
+ * 2023-05-04 11:32:00
+ */
+@ApiModel(value = "SchoolActivityDetailWrapper对象", description = "活动详情查询对象")
+public class SchoolActivityDetailWrapper {
+
+    @Data
+	@Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" SchoolActivityDetailQuery-活动详情")
+    public static class SchoolActivityDetailQuery implements QueryInfo {
+    
+    	@ApiModelProperty("当前页")
+        private Integer page;
+        
+        @ApiModelProperty("分页行数")
+        private Integer rows;
+        
+        @ApiModelProperty("关键字匹配")
+		private String keyword;
+        
+        public String getKeyword() {
+            return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
+        }
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static SchoolActivityDetailQuery from(String json) {
+            return JSON.parseObject(json, SchoolActivityDetailQuery.class);
+        }
+    }  
+
+    @Data
+	@ApiModel(" SchoolActivityDetail-活动详情列表")
+    public static class SchoolActivityDetail {
+
+        @ApiModelProperty("活动详情编号")
+        private Integer id;
+
+        @ApiModelProperty("合作单位ID")
+        private Integer cooperationOrganId;
+
+        @ApiModelProperty("活动id")
+        private Integer schoolActivityId;
+
+        @ApiModelProperty(value = "节目名称",required = true)
+        @NotNull(message = "节目名称不能为空")
+        private String name;
+
+        @ApiModelProperty(value = "节目类型 合奏 ENSEMBLE 独奏 SOLO 重奏 REPRISE 齐奏 UNISON",required = true)
+        @NotNull(message = "节目类型不能为空")
+        private ESchoolActivityProgramType type;
+
+        @ApiModelProperty(value = "乐团ID",required = true)
+        @NotNull(message = "乐团ID不能为空")
+        private String musicGroupId;
+
+        @ApiModelProperty("乐团名称")
+        private String musicGroupName;
+
+        @ApiModelProperty("声部ID集合 逗号隔开")
+        private String subjectIdList;
+
+        @ApiModelProperty("声部名称集合 逗号隔开")
+        private String subjectNameList;
+
+        @ApiModelProperty(value = "学生人数",required = true)
+        @NotNull(message = "学生人数不能为空")
+        private Integer studentNum;
+
+        @ApiModelProperty(value = "节目时长-秒",required = true)
+        @NotNull(message = "节目时长不能为空")
+        private Integer time;
+
+        @ApiModelProperty(value = "节目排序",required = true)
+        @NotNull(message = "节目排序不能为空")
+        private Integer sort;
+
+        @ApiModelProperty("附件")
+        private String attachmentUrl;
+
+        @ApiModelProperty("学生数据集合")
+        @NotEmpty(message = "学生数据集合不能为空")
+        private List<SchoolActivityWrapper.SchoolActivitySubject> studentList;
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static SchoolActivityDetail from(String json) {
+            return JSON.parseObject(json, SchoolActivityDetail.class);
+        }
+	}
+
+}

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä