浏览代码

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

yonge 2 年之前
父节点
当前提交
2fa80266cb
共有 100 个文件被更改,包括 3975 次插入423 次删除
  1. 4 0
      cms/src/main/java/com/ym/mec/cms/dal/dao/SysNewsInformationDao.java
  2. 22 0
      cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsTypeServiceImpl.java
  3. 31 0
      cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml
  4. 1 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/AuthServerApplication.java
  5. 5 0
      mec-biz/pom.xml
  6. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  7. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseHomeworkDao.java
  8. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  9. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStatisticsDao.java
  10. 16 7
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DegreeRegistrationDao.java
  11. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ExtracurricularExercisesDao.java
  12. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ExtracurricularExercisesReplyDao.java
  13. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupDao.java
  14. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImUserFriendDao.java
  15. 44 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LessonExaminationDao.java
  16. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentCourseHomeworkDao.java
  17. 42 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentLessonExaminationDao.java
  18. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentLessonExaminationDetailDao.java
  19. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentLessonTrainingDetailMapper.java
  20. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDetailDao.java
  21. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  22. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkListDto.java
  23. 338 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkWrapper.java
  24. 43 38
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeRegistrationActivityDto.java
  25. 5 48
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeRegistrationDto.java
  26. 56 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExtraExerciseStudentsDto.java
  27. 32 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/GoodsOrderItemVO.java
  28. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HomeworkStat.java
  29. 28 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationDetailDto.java
  30. 61 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationResultDto.java
  31. 58 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationResultDto1.java
  32. 53 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationResultDto2.java
  33. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationSaveDto.java
  34. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationSubmitDto.java
  35. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupExtracurricularSummaryDto.java
  36. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicScoreSubjectDto.java
  37. 138 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentHomeworkRecordDto.java
  38. 52 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto.java
  39. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto1.java
  40. 44 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDto.java
  41. 38 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDto1.java
  42. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationSaveDto.java
  43. 152 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonTrainingDetailWrapper.java
  44. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendanceDetailDto.java
  45. 32 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/WebCourseHomeworkListDto.java
  46. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ChildrenDayDegreeDetail.java
  47. 45 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseHomework.java
  48. 79 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Degree.java
  49. 66 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeLevelFeeNew.java
  50. 107 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeNews.java
  51. 21 308
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeRegistration.java
  52. 103 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercises.java
  53. 75 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LessonExamination.java
  54. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SellOrder.java
  55. 82 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomework.java
  56. 58 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExamination.java
  57. 82 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExaminationDetail.java
  58. 81 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonTrainingDetail.java
  59. 13 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherAttendance.java
  60. 38 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DegreeNewsTypeEnum.java
  61. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DegreeTypeEnum.java
  62. 52 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EDegreeStatus.java
  63. 44 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EHomeWorkStatus.java
  64. 45 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ELessonTrainingType.java
  65. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/GroupStatusEnum.java
  66. 35 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/HardLevelEnum.java
  67. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  68. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderDetailTypeEnum.java
  69. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SellTypeEnum.java
  70. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/StandardEnum.java
  71. 32 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/degree/EDegreeFeeType.java
  72. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/DegreeLevelFeeMapper.java
  73. 28 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/DegreeMapper.java
  74. 28 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/DegreeNewsMapper.java
  75. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseHomeworkQueryInfo.java
  76. 35 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/DegreeQueryInfo.java
  77. 68 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseQueryInfo.java
  78. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseReplyQueryInfo.java
  79. 29 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/LessonExaminationQueryInfo.java
  80. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/LessonExaminationQueryInfo1.java
  81. 27 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/LessonExaminationQueryInfo2.java
  82. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentLessonExaminationQueryDto.java
  83. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentLessonExaminationQueryInfo.java
  84. 57 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/DegreeLevelFeeNewVo.java
  85. 85 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/DegreeNewsVo.java
  86. 127 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeLevelFeeWrapper.java
  87. 83 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeNewsWrapper.java
  88. 279 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeWrapper.java
  89. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  90. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseHomeworkService.java
  91. 50 0
      mec-biz/src/main/java/com/ym/mec/biz/service/DegreeLevelFeeService.java
  92. 44 0
      mec-biz/src/main/java/com/ym/mec/biz/service/DegreeNewsService.java
  93. 2 3
      mec-biz/src/main/java/com/ym/mec/biz/service/DegreeRegistrationService.java
  94. 60 0
      mec-biz/src/main/java/com/ym/mec/biz/service/DegreeService.java
  95. 13 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesReplyService.java
  96. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesService.java
  97. 5 2
      mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupService.java
  98. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ImUserFriendService.java
  99. 38 0
      mec-biz/src/main/java/com/ym/mec/biz/service/LessonExaminationService.java
  100. 45 2
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentCourseHomeworkService.java

+ 4 - 0
cms/src/main/java/com/ym/mec/cms/dal/dao/SysNewsInformationDao.java

@@ -34,4 +34,8 @@ public interface SysNewsInformationDao extends BaseDAO<Long, SysNewsInformation>
 	List<SysNewsInformation> queryBySubType(@Param("subType") Integer subType,@Param("memo") String memo);
 
     Boolean countStudentAttendanceError(@Param("startTime") String startTime, @Param("userId") Integer userId);
+
+    Integer queryHomework(Integer teacherId);
+
+    int queryPractice(@Param("userId") Integer userId, @Param("date") String date);
 }

+ 22 - 0
cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsTypeServiceImpl.java

@@ -17,6 +17,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
@@ -80,6 +82,9 @@ public class SysNewsTypeServiceImpl extends BaseServiceImpl<Integer, SysNewsType
                 }else if(sni.getTitle().equals("学员考勤异常")){
                     //当前老师是否有学员考勤异常
                     sni.setRedDot(informationDao.countStudentAttendanceError(startTime,userId));
+                } else if (sni.getTitle().equals("训练列表")) {
+                    //训练列表
+                    sni.setRedDot(queryHomework(userId));
                 }
     		}
             e.setInformationList(list);
@@ -92,6 +97,23 @@ public class SysNewsTypeServiceImpl extends BaseServiceImpl<Integer, SysNewsType
         return treeMenus;
     }
 
+    private Boolean queryHomework(Integer userId) {
+        int courseIdCount = informationDao.queryHomework(userId);
+        if (courseIdCount > 0) {
+            return true;
+        }
+
+        LocalDate now = LocalDate.now();
+        // 获取周一
+        LocalDate monday = now.minusDays(now.getDayOfWeek().getValue() - 1);
+        int practiceIdCount = informationDao.queryPractice(userId,monday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+
+        if (practiceIdCount > 0) {
+            return true;
+        }
+        return false;
+    }
+
     private List<SysNewsType> getChildren(SysNewsType rootMenu, List<SysNewsType> allMenus) {
         List<SysNewsType> childrenList = allMenus.stream().filter(e -> e.getParentId().equals(rootMenu.getId()))
                 .map(menu -> menu.setChildren(getChildren(menu, allMenus)))

+ 31 - 0
cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml

@@ -327,4 +327,35 @@
 		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cssp.id_ IS NOT NULL
 		AND (ta.sign_out_status_ IS NOT NULL OR ta.sign_in_status_ IS NOT NULL)
 	</select>
+
+	<select id="queryHomework" resultType="java.lang.Integer">
+        SELECT count( csts.course_schedule_id_)
+        FROM course_schedule_teacher_salary csts
+        LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
+        LEFT JOIN student_extracurricular_exercises_situation_ se ON se.teacher_id_ = csts.user_id_
+        left join lesson_examination le on le.course_schedule_id_ = csts.course_schedule_id_
+        left join teacher_attendance ta on ta.course_schedule_id_ = csts.course_schedule_id_
+        WHERE csts.user_id_ = #{teacherId}
+            AND cs.class_date_ = date_format(now(),'%Y-%m-%d')
+        AND FIND_IN_SET(cs.id_, se.course_ids_) and le.id_ is null
+        AND se.serve_type_ = 'HOMEWORK'
+        and ta.sign_out_status_ is null and ta.sign_in_status_ is not null
+    </select>
+
+	<select id="queryPractice" resultType="int">
+        SELECT
+            count(distinct sees.music_group_id_)
+        from
+            student_extracurricular_exercises_situation_ sees
+                LEFT JOIN
+            music_group mg
+            on mg.id_ = sees.music_group_id_
+        WHERE
+            sees.teacher_id_ = #{userId}
+          and sees.serve_type_ = 'EXERCISE'
+          and sees.actual_exercises_num_ = 0
+          and sees.monday_ = #{date}
+
+
+    </select>
 </mapper>

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/AuthServerApplication.java

@@ -17,7 +17,7 @@ import com.spring4all.swagger.EnableSwagger2Doc;
 @SpringBootApplication
 @EnableDiscoveryClient
 @EnableFeignClients({"com.ym.mec"})
-@MapperScan("com.ym.mec.auth.dal.dao")
+@MapperScan(basePackages = {"com.ym.mec.auth.dal.dao", "com.ym.mec.biz.dal.mapper"})
 @ComponentScan(basePackages={"com.ym.mec", "com.yonge.log"})
 @Configuration
 @EnableSwagger2Doc

+ 5 - 0
mec-biz/pom.xml

@@ -57,6 +57,11 @@
 			<artifactId>microsvc-middleware-live</artifactId>
 			<version>1.0.0</version>
 		</dependency>
+		<dependency>
+			<groupId>com.microsvc.toolkit.common</groupId>
+			<artifactId>microsvc-common-response</artifactId>
+			<version>1.0.0</version>
+		</dependency>
 
 		<!--修复依赖冲突-->
 		<dependency>

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

@@ -868,4 +868,6 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     Boolean hasConvertCourse(@Param("classIdList") List<Integer> classIdList);
 
     void addClassTimes(@Param("classGroupId") Integer classGroupId, @Param("num") Integer num);
+
+    List<ClassGroup> queryByIds(@Param("classIds") List<Integer> classIds);
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.CourseHomeworkListDto;
 import com.ym.mec.biz.dal.dto.Mapper;
 import com.ym.mec.biz.dal.dto.TeacherHomeworkListDto;
 import com.ym.mec.biz.dal.dto.WebCourseHomeworkListDto;
@@ -74,4 +75,12 @@ public interface CourseHomeworkDao extends BaseDAO<Long, CourseHomework> {
 	 * @return
 	 */
 	List<TeacherHomeworkListDto> findByIdList(@Param("homeworkIdList") List<Integer> homeworkIdList);
+
+    void updateFinishNum(@Param("courseHomeworkId") Long courseHomeworkId);
+
+    CourseHomework getByCourseScheduleId(@Param("courseScheduleId") Integer courseScheduleId);
+
+    List<CourseHomeworkListDto> findEndHomework();
+
+    void updatePushFlag(@Param("ids") List<Long> ids);
 }

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

@@ -1981,4 +1981,16 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return boolean
      */
     int checkCourseIsSettlementReport(@Param("courseScheduleId") Long courseScheduleId);
+
+    /**
+     * 老师端练习列表
+     *
+     * @param queryInfo
+     * @param courseIds
+     * @return
+     */
+    List<CourseHomeworkWrapper.CourseHomeworkList> queryTeacherServeHomeworkDetailV2(@Param(
+        "param") Map<String, Object> param, @Param("courseIds") List<Long> courseIds);
+
+    int countTeacherServeHomeworkDetailV2(@Param("param") Map<String, Object> params, @Param("courseIds") List<Long> courseIds);
 }

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

@@ -23,4 +23,12 @@ public interface CourseScheduleStatisticsDao extends BaseDAO<Long, CourseSchedul
 
     //更新服务指标
     void updateCourseService(@Param("courseIds") String courseIds, @Param("serviceFlag") int serviceFlag);
+
+    void updateNum(@Param("courseScheduleId") Long courseScheduleId,
+                   @Param("teacherId") Integer teacherId,
+                   @Param("studentIds") List<Integer> studentIds);
+
+    void updateLastSubmitTime(@Param("courseScheduleId") Long courseScheduleId,
+                              @Param("teacherId") Integer teacherId,
+                              @Param("userId") Integer userId);
 }

+ 16 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DegreeRegistrationDao.java

@@ -1,9 +1,11 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.DegreeRegistration;
+import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -21,17 +23,24 @@ public interface DegreeRegistrationDao extends BaseDAO<Integer, DegreeRegistrati
 
     DegreeRegistration getWithUserIdAndActivityTag(@Param("degree") DegreeRegistration degree);
 
-    List<DegreeRegistration> getUserLevelDegrees(@Param("userId") Integer userId,
-                                                 @Param("activityTag") String activityTag,
-                                                 @Param("degreeType") Integer degreeType,
-                                                 @Param("sporadicId") String sporadicId,
-                                                 @Param("level") String level,
-                                                 @Param("status") Integer status,
-                                                 @Param("subject") String subject);
+    DegreeRegistration getUserLevelDegrees(@Param("userId") Integer userId,
+                                                 @Param("degreeId") Long degreeId,
+                                                 @Param("type") DegreeTypeEnum type,
+                                                 @Param("levels") String levels,
+                                                 @Param("subjectId") Integer subjectId);
 
     void batchInsert(@Param("degreeRegistrationList") List<DegreeRegistration> degreeRegistrationList);
 
     List<DegreeRegistration> getLockByOrderId(@Param("orderNo") String orderNo);
 
     List<DegreeRegistration> findByByOrderId(@Param("orderNo") String orderNo);
+
+    /**
+     * 根据考级ID查询考级报名信息
+     *
+     * @param degreeId 考级ID
+     */
+    List<DegreeRegistration> selectByDegreeId(@Param("degreeIds") List<Long> degreeId);
+
+    BigDecimal getDegreeIncomeDecimal(@Param("degreeId") Long degreeId);
 }

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
 import com.ym.mec.biz.dal.dto.ExtracurricularExercisesHomeworkListDto;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.dto.TeacherHomeworkListDto;
@@ -65,4 +66,14 @@ public interface ExtracurricularExercisesDao extends BaseDAO<Long, Extracurricul
      * @return
      */
     List<TeacherHomeworkListDto> findByIdList(@Param("exercisesIdList") List<Integer> exercisesIdList);
+
+    int countTeacherExtraHomeworkDetailV2(Map<String, Object> params);
+
+    List<CourseHomeworkWrapper.CourseHomeworkList> queryTeacherExtraHomeworkDetailV2(Map<String, Object> params);
+
+    void updateFinishNum(@Param("courseHomeworkId") Long courseHomeworkId);
+
+    List<ExtracurricularExercises> findEndHomework();
+
+    void updatePushFlag(@Param("ids") List<Long> ids);
 }

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

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.EduHomeworkCardDto;
 import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
 import com.ym.mec.biz.dal.dto.StudentServiceDetailDto;
+import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.dto.StudentServiceHomeworkDto;
 import com.ym.mec.common.dal.BaseDAO;
@@ -133,4 +134,11 @@ public interface ExtracurricularExercisesReplyDao extends BaseDAO<Long, Extracur
     List<EduHomeworkCardDto> countEduHomeworkSubjectStudentNumWithMusicGroup(@Param("groupId") String groupId,
                                                                              @Param("startTime") Date startTime,
                                                                              @Param("endTime") Date endTime);
+
+    ExtracurricularExercisesReply getByExtraIdAndUserId(@Param("extraId") Long extraId, @Param("userId") Long userId);
+
+    /**
+     * 未完成的课外作业
+     */
+    List<ExtracurricularExercisesReply> queryNotDoneHomeworkList();
 }

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

@@ -38,4 +38,8 @@ public interface ImGroupDao extends BaseDAO<String, ImGroup> {
     void updateMemberNum();
 
     List<NameDto> queryNameByIds(@Param("ids") String ids);
+
+    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);
 }

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

@@ -41,4 +41,6 @@ public interface ImUserFriendDao extends BaseDAO<Long, ImUserFriend> {
 	void updateNullNickName();
 
     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);
 }

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

@@ -0,0 +1,44 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ym.mec.biz.dal.dto.LessonExaminationResultDto;
+import com.ym.mec.biz.dal.dto.LessonExaminationResultDto1;
+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 org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 进度评测表(LessonExamination)表数据库访问层
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:27
+ */
+public interface LessonExaminationDao extends BaseMapper<LessonExamination> {
+
+    int insertBatch(@Param("entities") List<LessonExaminationSaveDto> entities);
+
+    List<LessonExaminationResultDto> queryPage(Map<String, Object> params);
+
+    int findCount(Map<String, Object> params);
+
+    List<LessonExaminationResultDto1> queryPageByStudent(Map<String, Object> params);
+
+    int findCountByStudent(Map<String, Object> params);
+
+    LessonExaminationResultDto1 getOneByStudent(@Param("userId") Integer userId, @Param("lessonExaminationId") Long lessonExaminationId);
+
+    void updateTrainingNum(@Param("lessonExaminationId") Long lessonExaminationId);
+
+    void updateStandardNum(@Param("lessonExaminationId") Long lessonExaminationId);
+
+    List<LessonExamination> queryEndList();
+
+    List<Subject> querySubject(@Param("lessonExaminationId") Long lessonExaminationId);
+}
+

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentCourseHomeworkDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
+import com.ym.mec.biz.dal.enums.ELessonTrainingType;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -194,4 +195,27 @@ public interface StudentCourseHomeworkDao extends BaseDAO<Long, StudentCourseHom
     List<EduHomeworkCardDto> countHomeworkSubjectStudentInfoWithMusicGroup(@Param("groupId") String groupId,
                                                                            @Param("startTime") Date startTime,
                                                                            @Param("endTime") Date endTime);
+
+    List<StudentCourseHomework> findByCourseScheduleIds(@Param("courseScheduleIds") List<Integer> courseScheduleIds);
+
+    /**
+     * 根据学员id和课程作业id查询学员课程作业
+     *
+     * @param studentIds       学员id
+     * @param courseHomeworkId 课程作业id
+     * @param type             课程作业类型
+     */
+    List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> findByStudentIdsAndCourseScheduleId(
+        @Param("studentIds") List<Integer> studentIds,
+        @Param("courseHomeworkId") Long courseHomeworkId,
+        @Param("type") ELessonTrainingType type);
+
+    List<StudentCourseHomework> findStudentCourseHomeworkByCourse(@Param("query") StudentLessonTrainingDetailWrapper.StudentLessonTrainingQuery query);
+
+    int queryNotSuccessHomeworkList(Integer userId);
+
+    StudentCourseHomework getHomeworkByUserIdAndCourseHomeworkId(@Param("userId") Long userId, @Param(
+        "courseHomeworkId") Long courseHomeworkId);
+
+    int queryNotSuccessExtraHomeworkList2(@Param("userId") Integer userId);
 }

+ 42 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentLessonExaminationDao.java

@@ -0,0 +1,42 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDto1;
+import com.ym.mec.biz.dal.entity.StudentLessonExamination;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 学生进度评测表(StudentLessonExamination)表数据库访问层
+ *
+ * @author zx
+ * @since 2023-04-03 18:21:30
+ */
+public interface StudentLessonExaminationDao extends BaseMapper<StudentLessonExamination> {
+
+    int insertBatch(@Param("entities") List<StudentLessonExamination> entities);
+
+    List<StudentLessonExaminationDto> queryPage(Map<String, Object> params);
+
+    int findCount(Map<String, Object> params);
+
+    List<StudentLessonExaminationDto1> queryStudentPage(@Param("lessonExaminationId") Long lessonExaminationId,
+                                                        @Param("subjectId") Integer subjectId);
+
+    /**
+     * 查询未完成的考试
+     *
+     * @param userId 用户id
+     */
+    int queryNotSuccessExaminationList(Integer userId);
+
+    void updateTrainingScore(@Param("lessonExaminationId") Long lessonExaminationId, @Param("userId") Integer userId);
+
+    List<Map<Long, String>> getStudentName(@Param("examinationIds") List<Long> examinationIds);
+
+    List<StudentLessonExamination> queryEndList(@Param("date") String date);
+}
+

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentLessonExaminationDetailDao.java

@@ -0,0 +1,23 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto;
+import com.ym.mec.biz.dal.entity.StudentLessonExaminationDetail;
+import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryDto;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 进度评测详情表(StudentLessonExaminationDetail)表数据库访问层
+ *
+ * @author zx
+ * @since 2023-04-03 18:22:00
+ */
+public interface StudentLessonExaminationDetailDao extends BaseMapper<StudentLessonExaminationDetail> {
+
+    int insertBatch(@Param("entities") List<StudentLessonExaminationDetail> entities);
+
+    List<StudentLessonExaminationDetailDto> queryAll(@Param("query") StudentLessonExaminationQueryDto query);
+}
+

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentLessonTrainingDetailMapper.java

@@ -0,0 +1,14 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ym.mec.biz.dal.entity.StudentLessonTrainingDetail;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 练习内容
+ * 2023-03-31 14:18:47
+ */
+@Repository
+public interface StudentLessonTrainingDetailMapper extends BaseMapper<StudentLessonTrainingDetail> {
+	
+}

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

@@ -177,4 +177,13 @@ public interface StudentPaymentOrderDetailDao extends BaseDAO<Long, StudentPayme
     List<StudentPaymentOrderDetail> findByCalenderId(Long calenderId);
     
     List<StudentPaymentOrderDetail> querySubjectChangeByMusicGroupId(@Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 根据订单id和类型获取订单详情
+     *
+     * @param orderIds            订单id
+     * @param orderDetailTypeEnum 订单类型
+     */
+    List<StudentPaymentOrderDetail> getByOrderIdAndType(@Param("orderIds") List<Long> orderIds,
+                                                        @Param("type") OrderDetailTypeEnum orderDetailTypeEnum);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -512,6 +512,9 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
     List<String> queryTeacherMusicIds(Map<String, Object> params);
     int countTeacherMusics(Map<String, Object> params);
 
+    List<String> queryTeacherMusicIdsV2(Map<String, Object> params);
+    int countTeacherMusicsV2(Map<String, Object> params);
+
     int countTeacherBasicInfo(Map<String, Object> params);
 
     List<SysUserDto> queryTeacherBasicInfo(Map<String, Object> params);

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkListDto.java

@@ -64,12 +64,22 @@ public class CourseHomeworkListDto {
     @ApiModelProperty(value = "是否已经回复",required = false)
     private YesOrNoEnum isReplied;
 
+    @ApiModelProperty("老师ID")
+    private Integer teacherId;
     @ApiModelProperty(value = "实际上课老师",required = false)
     private String teacherName;
 
     @ApiModelProperty(value = "实际上课老师头像",required = false)
     private String headUrl;
 
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
     public String getTitle() {
         return title;
     }

+ 338 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseHomeworkWrapper.java

@@ -0,0 +1,338 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.enums.EHomeWorkStatus;
+import com.ym.mec.biz.dal.enums.ELessonTrainingType;
+import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-04-03
+ */
+@Data
+@ApiModel(value = "课程作业包装类")
+public class CourseHomeworkWrapper {
+
+    @Data
+    @ApiModel(value = "课程作业查询条件")
+    public static class CourseHomeworkQuery extends QueryInfo {
+
+
+        @ApiModelProperty(value = "课程id")
+        private Integer courseScheduleId;
+
+        @ApiModelProperty("当月")
+        private Date month;
+
+        @ApiModelProperty(value = "开始时间",required = true)
+        private Date startTime;
+
+        @ApiModelProperty(value = "结束时间",required = true)
+        private Date endTime;
+
+        @ApiModelProperty(value = "老师id")
+        private Integer teacherId;
+
+        @ApiModelProperty(value = "课程类型 课后练习 :MUSIC  小课练习: 包含VIP,PRACTICE")
+        private String courseType;
+
+        @ApiModelProperty(value = "乐团id")
+        private String musicGroupId;
+
+        @ApiModelProperty(value = "班级类型  SINGLE:声部班,MIX:合奏班")
+        private String classType;
+
+        @ApiModelProperty(value = "作业练习状态 UNASSIGNED:未布置,ASSIGNED:已布置,DEADLINE:已截止")
+        private EHomeWorkStatus homeWorkStatus;
+
+
+        @ApiModelProperty(value = "作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)",required = true)
+        private ELessonTrainingType type;
+    }
+
+
+
+    @Data
+    @ApiModel(value = "课程作业列表")
+    public static class CourseHomeworkList {
+
+        @ApiModelProperty(value = "课程id")
+        private Integer courseScheduleId;
+
+        @ApiModelProperty(value = "作业id")
+        private Long courseHomeworkId;
+
+        @ApiModelProperty(value = "课程日期")
+        private Date classDate;
+
+        @ApiModelProperty(value = "开始时间")
+        private Date startTime;
+
+        @ApiModelProperty(value = "结束时间")
+        private Date endTime;
+
+        @ApiModelProperty(value = "作业练习状态 UNASSIGNED:未布置,ASSIGNED:已布置,DEADLINE:已截止")
+        private EHomeWorkStatus homeWorkStatus;
+
+        @ApiModelProperty(value = "老师id")
+        private Integer teacherId;
+
+        @ApiModelProperty("老师名")
+        private String teacherName;
+
+        @ApiModelProperty("课程名称")
+        private String courseScheduleName;
+
+        @ApiModelProperty("老师头像")
+        private String teacherImg;
+
+        @ApiModelProperty(value = "乐团id")
+        private String musicGroupId;
+
+        @ApiModelProperty(value = "乐团名称")
+        private String musicGroupName;
+
+        @ApiModelProperty(value = "乐团图片")
+        private String musicGroupImg;
+
+        @ApiModelProperty(value = "班级类型  NORMAL:声部班,MIX:合奏班")
+        private String classType;
+
+        @ApiModelProperty(value = "声部名称")
+        private String subjectName;
+
+        @ApiModelProperty("班级id")
+        private Integer classGroupId;
+
+        @ApiModelProperty("班级名称")
+        private String classGroupName;
+
+        @ApiModelProperty("教学形式(线上、线下)")
+        private String teachMode;
+
+        @ApiModelProperty("学生人数")
+        private Integer studentNum;
+
+        @ApiModelProperty("已完成人数")
+        private Integer finishNum;
+
+        @ApiModelProperty("布置时间")
+        private Date assignTime;
+
+        @ApiModelProperty("截止时间")
+        private Date expiryDate;
+
+        @ApiModelProperty("完成状态 false 未完成 true 已完成")
+        private Boolean finishStatus;
+
+        @ApiModelProperty("提交时间")
+        private Date submitTime;
+
+        @ApiModelProperty(value = "作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)",required = true)
+        private ELessonTrainingType type;
+
+        @ApiModelProperty("是否可布置")
+        private Boolean assignFlag;
+
+        private String studentIdList;
+
+        @ApiModelProperty("练习内容")
+        private List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> trainingDetailList;
+    }
+
+
+    @Data
+    @ApiModel(value = "StudentCourseHomeworkQuery-学生课程作业详情")
+    public static class StudentCourseHomeworkQuery {
+
+        @ApiModelProperty(value = "用户ID")
+        private Long userId;
+
+        @ApiModelProperty(value = "课程编号",required = true)
+        @NotNull(message = "课程编号不能为空")
+        private Integer courseScheduleId;
+
+        @ApiModelProperty(value = "作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)",required = true)
+        @NotNull(message = "作业类型不能为空")
+        private ELessonTrainingType type;
+
+    }
+
+
+    @Data
+    @ApiModel(value = "AddStudentHomeworkRecord-添加学生作业记录")
+    public static class AddStudentHomeworkRecord {
+
+        @ApiModelProperty(value = "用户ID")
+        private Long userId;
+
+        @ApiModelProperty(value = "作业详情id",required = true)
+        @NotNull(message = "作业详情id不能为空")
+        private Long id;
+
+    }
+
+
+    @Data
+    @ApiModel(value = "StudentCourseHomeworkDetail-学生课程作业详情")
+    public static class StudentCourseHomeworkDetail {
+
+        @ApiModelProperty(value = "学生作业ID")
+        private Integer studentCourseHomeworkId;
+
+        @ApiModelProperty(value = "课程ID")
+        private Long courseScheduleId;
+
+        @ApiModelProperty(value = "课程名称")
+        private String courseName;
+
+        @ApiModelProperty(value = "上课开始时间")
+        private Date startClassTime;
+
+        @ApiModelProperty(value = "作业过期时间")
+        private String expiryDate;
+
+        @ApiModelProperty(value = "结束时间")
+        private Date endClassTime;
+
+        @ApiModelProperty(value = "乐团id")
+        private String musicGroupId;
+
+        @ApiModelProperty(value = "乐团名称")
+        private String musicGroupName;
+
+        @ApiModelProperty(value = "乐团图片")
+        private String musicGroupImg;
+
+        @ApiModelProperty("班级id")
+        private Integer classGroupId;
+
+        @ApiModelProperty("班级名称")
+        private String classGroupName;
+
+        @ApiModelProperty("教学形式(线上、线下)")
+        private String teachMode;
+
+        @ApiModelProperty("完成状态 false 未完成 true 已完成")
+        private Boolean finishStatus;
+
+
+        @ApiModelProperty(value = "作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)")
+        private ELessonTrainingType type;
+
+        @ApiModelProperty(value = "练习内容")
+        private List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> studentLessonTrainingDetail;
+    }
+
+
+    @Data
+    @ApiModel(value = "WebExtraCourseHomework-课外作业列表")
+    public static class WebExtraCourseHomework {
+
+        /**  */
+        private Long id;
+
+        private String musicGroupId;
+
+        /** 老师编号 */
+        @ApiModelProperty(value="等级")
+        private Integer teacherId;
+
+        private SysUser teacher = new SysUser();
+
+        /** 学生列表 */
+        @ApiModelProperty(value="学生列表")
+        private String studentIdList;
+
+        @ApiModelProperty("班级id")
+        private Integer classGroupId;
+
+        @ApiModelProperty("作业来源分类")
+        private String groupType;
+
+
+        private String type;
+
+        /** 批次号 */
+        @ApiModelProperty(value="批次号")
+        private String batchNo;
+
+        /** 标题 */
+        @ApiModelProperty(value="标题")
+        private String title;
+
+        /** 附件地址(多个用逗号分隔) */
+        @ApiModelProperty(value="附件地址(多个用逗号分隔)")
+        private String attachments;
+
+        /** 作业内容 */
+        @ApiModelProperty(value="作业内容")
+        private String content;
+
+        /** 截止日期 */
+        @ApiModelProperty(value="截止日期")
+        private java.util.Date expireDate;
+
+        /** 完成人数 */
+        @ApiModelProperty(value="完成人数")
+        private Integer completedNum;
+
+        /** 预计人数 */
+        @ApiModelProperty(value="预计人数")
+        private Integer expectNum;
+
+        /**  */
+        private java.util.Date createTime;
+
+        /**  */
+        private java.util.Date updateTime;
+
+        @ApiModelProperty(value="是否及时回复")
+        private int isReplied;
+
+        @ApiModelProperty(value="是否提交")
+        private int isSubmit;
+
+        private int status;
+
+        private String organName;
+
+        private ImSendTypeEnum msgType = ImSendTypeEnum.TXT;
+
+        /** 伴奏列表(多个用逗号分隔) */
+        @ApiModelProperty(value="伴奏列表(多个用逗号分隔)")
+        private String musicScoreId;
+
+        private String musicScoreName;
+
+        private List<MusicScoreSubjectDto> musicScoreSubjectDtos;
+
+
+        @ApiModelProperty("乐团名")
+        private String musicGroupName;
+
+        @ApiModelProperty("班级名")
+        private String classGroupName;
+
+        private String versionTag;
+
+
+        @ApiModelProperty("布置时间")
+        private Date assignTime;
+
+        @ApiModelProperty("练习内容")
+        private List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> trainingDetailList;
+    }
+
+
+}

+ 43 - 38
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeRegistrationActivityDto.java

@@ -1,57 +1,62 @@
 package com.ym.mec.biz.dal.dto;
 
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.DegreeRegistration;
+import com.ym.mec.auth.api.enums.CertificateTypeEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.List;
-import java.util.Map;
 
-/**
- * @Author qnc99
- * @Date 2020/12/3 0003
- */
-public class DegreeRegistrationActivityDto extends DegreeRegistration {
+@Data
+public class DegreeRegistrationActivityDto {
+    @ApiModelProperty(value = "考级编号",required = true)
+    private Long degreeId;
 
-    @ApiModelProperty(value = "用户所选考级项目列表",required = true)
-    private List<DegreeRegistrationDto> degreeRegistrationDtos;
+    @ApiModelProperty(value = "学员编号",required = true)
+    private Integer userId;
 
-    private Map<CourseSchedule.CourseScheduleType, Integer> additionCourseInfo;
+    @ApiModelProperty(value = "名字",required = true)
+    private String name;
 
-    private BigDecimal price;
-    
-    private boolean isUseBalance;
+    @ApiModelProperty(value = "性别",required = true)
+    private String gender;
+
+    @ApiModelProperty(value = "证件类型",required = true)
+    private CertificateTypeEnum certificateType;
+
+    @ApiModelProperty(value = "身份证号",required = true)
+    private String idcard;
+
+    @ApiModelProperty(value = "城市",required = true)
+    private String city;
 
-    public List<DegreeRegistrationDto> getDegreeRegistrationDtos() {
-        return degreeRegistrationDtos;
-    }
+    @ApiModelProperty(value = "学校",required = true)
+    private String school;
 
-    public void setDegreeRegistrationDtos(List<DegreeRegistrationDto> degreeRegistrationDtos) {
-        this.degreeRegistrationDtos = degreeRegistrationDtos;
-    }
+    @ApiModelProperty(value = "声部",required = true)
+    private Integer subjectId;
 
-    public Map<CourseSchedule.CourseScheduleType, Integer> getAdditionCourseInfo() {
-        return additionCourseInfo;
-    }
+    @ApiModelProperty(value = "证书",required = true)
+    private String theoryCert;
 
-    public void setAdditionCourseInfo(Map<CourseSchedule.CourseScheduleType, Integer> additionCourseInfo) {
-        this.additionCourseInfo = additionCourseInfo;
-    }
+    @ApiModelProperty(value = "家长联系电话",required = true)
+    private String mobile;
 
-    public BigDecimal getPrice() {
-        return price;
-    }
+    @ApiModelProperty(value = "学员分部",required = true)
+    private Integer organId;
 
-    public void setPrice(BigDecimal price) {
-        this.price = price;
-    }
+    @ApiModelProperty(value = "用户考级报名基本信息",required = true)
+    private List<DegreeRegistrationDto> degreeRegistrationDtos;
+
+    @ApiModelProperty(value = "总金额",required = true)
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "是否余额支付",required = true)
+    private boolean isUseBalance;
 
-	public boolean isUseBalance() {
-		return isUseBalance;
-	}
+    @ApiModelProperty(value = "是否重新支付",required = false)
+    private Boolean isRepay = false;
 
-	public void setIsUseBalance(boolean isUseBalance) {
-		this.isUseBalance = isUseBalance;
-	}
+    private Integer tenantId = TenantContextHolder.getTenantId();
 }

+ 5 - 48
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeRegistrationDto.java

@@ -1,63 +1,20 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
 
+@Data
 public class DegreeRegistrationDto{
-    @ApiModelProperty(value = "零星支付id",required = false)
-    private Integer sporadicId;
-
     @ApiModelProperty(value = "考试级别",required = false)
     private String level;
 
     @ApiModelProperty(value = "乐理级别证书",required = false)
     private String theoryCert;
 
-    @ApiModelProperty(value = "考级费用",required = false)
-    private BigDecimal money;
-
-    @ApiModelProperty(value = "1乐器考级、2乐理考级",required = false)
-    private Integer type;
-
-    public Integer getType() {
-        return type;
-    }
-
-    public void setType(Integer type) {
-        this.type = type;
-    }
-
-    public Integer getSporadicId() {
-        return sporadicId;
-    }
-
-    public void setSporadicId(Integer sporadicId) {
-        this.sporadicId = sporadicId;
-    }
-
-    public String getLevel() {
-        return level;
-    }
-
-    public void setLevel(String level) {
-        this.level = level;
-    }
-
-    public String getTheoryCert() {
-        return theoryCert;
-    }
-
-    public void setTheoryCert(String theoryCert) {
-        this.theoryCert = theoryCert;
-    }
-
-    public BigDecimal getMoney() {
-        return money;
-    }
-
-    public void setMoney(BigDecimal money) {
-        this.money = money;
-    }
+    @ApiModelProperty(value = "专业考级、2乐理考级",required = false)
+    private DegreeTypeEnum type;
 }

+ 56 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExtraExerciseStudentsDto.java

@@ -44,6 +44,62 @@ public class ExtraExerciseStudentsDto extends ExtracurricularExercisesReply {
     @ApiModelProperty(value = "作业创建时间")
     private Date homeworkCreateTime;
 
+    @ApiModelProperty(value = "作业id")
+    private Long extracurricularExercisesId;
+
+    @ApiModelProperty(value = "乐团id")
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "班级id")
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "作业类型")
+    private String type;
+
+    private String subjectId;
+
+    public String getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    @Override
+    public Long getExtracurricularExercisesId() {
+        return extracurricularExercisesId;
+    }
+
+    @Override
+    public void setExtracurricularExercisesId(Long extracurricularExercisesId) {
+        this.extracurricularExercisesId = extracurricularExercisesId;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Integer getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
     public Date getHomeworkCreateTime() {
         return homeworkCreateTime;
     }

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/GoodsOrderItemVO.java

@@ -0,0 +1,32 @@
+package com.ym.mec.biz.dal.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class GoodsOrderItemVO {
+    private double couponAmount; // 优惠券金额
+    private int giftGrowth; // 赠送成长值
+    private int giftIntegration; // 赠送积分
+    private long id; // 唯一标识符
+    private double integrationAmount; // 积分抵扣金额
+    private long orderId; // 所属订单的唯一标识符
+    private String orderSn; // 订单编号
+    private double precisionAmount; // 精确金额
+    private String productAttr; // 商品属性,JSON 格式
+    private String productBrand; // 商品品牌
+    private long productCategoryId; // 商品分类的唯一标识符
+    private long productId; // 商品的唯一标识符
+    private String productSn; // 商品货号
+    private String productName; // 商品名称
+    private String productPic; // 商品图片
+    private double productPrice; // 商品价格
+    private int productQuantity; // 商品数量
+    private String productSkuCode; // 商品 SKU 编码
+    private long productSkuId; // 商品 SKU 的唯一标识符
+    private double promotionAmount; // 促销金额
+    private String promotionName; // 促销名称
+    private BigDecimal realAmount; // 实际支付金额
+    private int returnStatus; // 退货状态
+}

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HomeworkStat.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-04-06
+ */
+@Data
+public class HomeworkStat {
+
+    @ApiModelProperty("类型  HOMEWORK:作业,EXAMINATION:评测")
+    private String type;
+
+    @ApiModelProperty("是否展示  true:展示,false:不展示")
+    private boolean show;
+}

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationDetailDto.java

@@ -0,0 +1,28 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import com.ym.mec.biz.dal.enums.HardLevelEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class LessonExaminationDetailDto{
+
+    @ApiModelProperty(value = "曲目id")
+    private Long musicScoreId;
+
+    @ApiModelProperty(value = "评测难度")
+    private HardLevelEnum heardLevel;
+
+    @ApiModelProperty(value = "分谱")
+    private Integer partIndex;
+
+    @ApiModelProperty(value = "合格分数")
+    private Integer score;
+}
+

+ 61 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationResultDto.java

@@ -0,0 +1,61 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class LessonExaminationResultDto{
+    @ApiModelProperty(value = "测验编号")
+    private Long id;
+
+    @ApiModelProperty(value = "分部")
+    private Integer organId;
+
+    @ApiModelProperty(value = "分部")
+    private String organName;
+
+    @ApiModelProperty(value = "班级名称")
+    private String classGroupName;
+
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "乐团名称")
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "老师姓名")
+    private String teacherName;
+
+    @ApiModelProperty(value = "老师编号")
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "班级编号")
+    private Long classGroupId;
+
+    @ApiModelProperty(value = "布置时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "截止日期")
+    private String expireDate;
+
+    @ApiModelProperty(value = "达标人数")
+    private Integer standardNum;
+
+    @ApiModelProperty(value = "训练人数")
+    private Integer trainingNum;
+
+    @ApiModelProperty(value = "预计人数")
+    private Integer expectNum;
+
+    @ApiModelProperty(value = "学员姓名")
+    private String studentNames;
+}
+

+ 58 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationResultDto1.java

@@ -0,0 +1,58 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class LessonExaminationResultDto1 {
+    @ApiModelProperty(value = "测验编号")
+    private Long LessonExaminationId;
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer userId;
+
+    @ApiModelProperty(value = "班级名称")
+    private String classGroupName;
+
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "乐团名称")
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "班级编号")
+    private Long classGroupId;
+
+    @ApiModelProperty(value = "老师姓名")
+    private String teacherName;
+
+    @ApiModelProperty(value = "老师头像")
+    private String avatar;
+
+    @ApiModelProperty(value = "截止日期")
+    private Date expireDate;
+
+    @ApiModelProperty(value = "训练提交时间")
+    private Date trainingTime;
+
+    @ApiModelProperty(value = "是否达标")
+    private Boolean standardFlag;
+
+    @ApiModelProperty(value = "是否截止")
+    private Boolean expireFlag;
+
+    @ApiModelProperty(value = "测评分数")
+    private Integer trainingScore;
+
+    @ApiModelProperty(value = "是否测评")
+    private Boolean trainingFlag;
+}
+

+ 53 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationResultDto2.java

@@ -0,0 +1,53 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class LessonExaminationResultDto2 {
+
+    @ApiModelProperty(value = "测验编号")
+    private Long id;
+
+    @ApiModelProperty(value = "分部")
+    private String organName;
+
+    @ApiModelProperty(value = "班级名称")
+    private String classGroupName;
+
+    @ApiModelProperty(value = "班级编号")
+    private Long classGroupId;
+
+    @ApiModelProperty(value = "乐团名称")
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "老师姓名")
+    private String teacherName;
+
+    @ApiModelProperty(value = "老师编号")
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "布置时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "截止日期")
+    private String expireDate;
+
+    @ApiModelProperty(value = "达标人数")
+    private Integer standardNum;
+
+    @ApiModelProperty(value = "训练人数")
+    private Integer trainingNum;
+
+    @ApiModelProperty(value = "预计人数")
+    private Integer expectNum;
+}
+

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationSaveDto.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 进度评测表(LessonExamination)表实体类
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class LessonExaminationSaveDto {
+
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "班级编号")
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "课程编号")
+    private Long courseScheduleId;
+
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "学员总数")
+    private Integer expectNum;
+
+    @ApiModelProperty(value = "声部学员列表")
+    private List<StudentLessonExaminationSaveDto> studentLessonExaminationSaveDtos;
+}
+

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LessonExaminationSubmitDto.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class LessonExaminationSubmitDto {
+    @ApiModelProperty(value = "测验编号")
+    private Long studentLessonExaminationDetailId;
+
+    @ApiModelProperty(value = "测评分数")
+    private Integer score;
+}
+

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

@@ -8,7 +8,17 @@ public class MusicGroupExtracurricularSummaryDto {
 	
 	private int studentNum;
 
-	public String getMusicGroupName() {
+    private String studentIds;
+
+    public String getStudentIds() {
+        return studentIds;
+    }
+
+    public void setStudentIds(String studentIds) {
+        this.studentIds = studentIds;
+    }
+
+    public String getMusicGroupName() {
 		return musicGroupName;
 	}
 

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicScoreSubjectDto.java

@@ -18,6 +18,18 @@ public class MusicScoreSubjectDto {
     @ApiModelProperty(value = "曲目编号、分谱(新版布置作业需要)",required = false)
     private List<MusicScoreHomeworkDto> musicScoreHomeworkDtoList;
 
+
+    @ApiModelProperty("新版作业 time:2023-03-31")
+    private List<StudentLessonTrainingDetailWrapper.AddStudentLessonTrainingDetail> studentLessonTrainingDetails;
+
+    public List<StudentLessonTrainingDetailWrapper.AddStudentLessonTrainingDetail> getStudentLessonTrainingDetails() {
+        return studentLessonTrainingDetails;
+    }
+
+    public void setStudentLessonTrainingDetails(List<StudentLessonTrainingDetailWrapper.AddStudentLessonTrainingDetail> studentLessonTrainingDetails) {
+        this.studentLessonTrainingDetails = studentLessonTrainingDetails;
+    }
+
     public List<MusicScoreHomeworkDto> getMusicScoreHomeworkDtoList() {
         return musicScoreHomeworkDtoList;
     }

+ 138 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentHomeworkRecordDto.java

@@ -1,5 +1,9 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.enums.ELessonTrainingType;
+import com.ym.mec.biz.dal.enums.StandardEnum;
+import io.swagger.annotations.ApiModelProperty;
+
 import java.util.Date;
 
 /**
@@ -8,23 +12,154 @@ import java.util.Date;
  */
 public class StudentHomeworkRecordDto {
 
+    @ApiModelProperty(value = "学生作业ID")
     private Integer studentCourseHomeworkId;
 
+    @ApiModelProperty(value = "课程ID")
     private Long courseScheduleId;
 
+    @ApiModelProperty(value = "课程名称")
     private String courseName;
 
+    @ApiModelProperty(value = "上课开始时间")
     private Date startClassTime;
 
+    @ApiModelProperty(value = "老师ID")
     private Integer teacherId;
 
+    @ApiModelProperty(value = "老师名称")
     private String teacherName;
 
+    @ApiModelProperty(value = "老师头像")
     private String headUrl;
 
+    @ApiModelProperty(value = "作业状态")
     private int status;
 
-    private String expiryDate;
+    @ApiModelProperty(value = "作业过期时间")
+    private Date expiryDate;
+
+
+    @ApiModelProperty(value = "结束时间")
+    private Date endClassTime;
+
+
+    @ApiModelProperty(value = "乐团id")
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "乐团名称")
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "乐团图片")
+    private String musicGroupImg;
+
+    private StandardEnum standardFlag;
+
+    @ApiModelProperty("班级id")
+    private Integer classGroupId;
+
+    @ApiModelProperty("班级名称")
+    private String classGroupName;
+
+    @ApiModelProperty("教学形式(线上、线下)")
+    private String teachMode;
+
+    @ApiModelProperty(value = "作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)",required = true)
+    private ELessonTrainingType type;
+
+    @ApiModelProperty("完成状态 false 未完成 true 已完成")
+    private Boolean finishStatus;
+
+    @ApiModelProperty("提交时间")
+    private Date submitTime;
+
+    public Date getSubmitTime() {
+        return submitTime;
+    }
+
+    public void setSubmitTime(Date submitTime) {
+        this.submitTime = submitTime;
+    }
+
+    public StandardEnum getStandardFlag() {
+        return standardFlag;
+    }
+
+    public void setStandardFlag(StandardEnum standardFlag) {
+        this.standardFlag = standardFlag;
+    }
+
+    public ELessonTrainingType getType() {
+        return type;
+    }
+
+    public void setType(ELessonTrainingType type) {
+        this.type = type;
+    }
+
+    public Boolean getFinishStatus() {
+        return finishStatus;
+    }
+
+    public void setFinishStatus(Boolean finishStatus) {
+        this.finishStatus = finishStatus;
+    }
+
+    public Date getEndClassTime() {
+        return endClassTime;
+    }
+
+    public void setEndClassTime(Date endClassTime) {
+        this.endClassTime = endClassTime;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public String getMusicGroupImg() {
+        return musicGroupImg;
+    }
+
+    public void setMusicGroupImg(String musicGroupImg) {
+        this.musicGroupImg = musicGroupImg;
+    }
+
+    public Integer getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public String getClassGroupName() {
+        return classGroupName;
+    }
+
+    public void setClassGroupName(String classGroupName) {
+        this.classGroupName = classGroupName;
+    }
+
+    public String getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(String teachMode) {
+        this.teachMode = teachMode;
+    }
 
     public String getHeadUrl() {
         return headUrl;
@@ -34,11 +169,11 @@ public class StudentHomeworkRecordDto {
         this.headUrl = headUrl;
     }
 
-    public String getExpiryDate() {
+    public Date getExpiryDate() {
         return expiryDate;
     }
 
-    public void setExpiryDate(String expiryDate) {
+    public void setExpiryDate(Date expiryDate) {
         this.expiryDate = expiryDate;
     }
 

+ 52 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto.java

@@ -0,0 +1,52 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import com.ym.mec.biz.dal.enums.HardLevelEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class StudentLessonExaminationDetailDto {
+    @ApiModelProperty(value = "主键")
+    private Long studentLessonExaminationDetailId;
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer userId;
+
+    @ApiModelProperty(value = "评测编号")
+    private Long lessonExaminationId;
+
+    @ApiModelProperty(value = "曲谱名称")
+    private String musicScoreName;
+
+    @ApiModelProperty(value = "曲谱")
+    private Integer musicScoreId;
+
+    @ApiModelProperty(value = "评测难度")
+    private HardLevelEnum heardLevel;
+
+    @ApiModelProperty(value = "练习最高分数")
+    private Integer trainingScore;
+
+    @ApiModelProperty(value = "是否评测")
+    private Boolean trainingFlag;
+
+    @ApiModelProperty(value = "总平均分")
+    private Integer avgScore;
+
+    @ApiModelProperty(value = "实际得分")
+    private Integer actualAvgScore;
+
+    @ApiModelProperty(value = "达标总分")
+    private Integer standardScore;
+
+    @ApiModelProperty(value = "分谱")
+    private Integer partIndex;
+
+}
+

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto1.java

@@ -0,0 +1,34 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import com.ym.mec.biz.dal.enums.HardLevelEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class StudentLessonExaminationDetailDto1 {
+
+    @ApiModelProperty(value = "曲谱名称")
+    private String musicScoreName;
+
+    @ApiModelProperty(value = "练习最高分数")
+    private Integer trainingScore;
+
+    @ApiModelProperty(value = "达标分数")
+    private Integer standardScore;
+
+    @ApiModelProperty(value = "实际均摊得分")
+    private Integer actualAvgScore;
+
+    @ApiModelProperty(value = "均摊总分")
+    private Integer avgScore;
+
+    @ApiModelProperty(value = "评测难度")
+    private HardLevelEnum heardLevel;
+}
+

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

@@ -0,0 +1,44 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class StudentLessonExaminationDto {
+
+    @ApiModelProperty(value = "学员头像")
+    private String avatar;
+
+    @ApiModelProperty(value = "学员姓名")
+    private String username;
+
+    @ApiModelProperty(value = "最后评测时间")
+    private Date trainingTime;
+
+    @ApiModelProperty(value = "是否评测")
+    private Boolean trainingFlag;
+
+    @ApiModelProperty(value = "测评分数")
+    private Integer trainingScore;
+
+    @ApiModelProperty(value = "是否会员")
+    private Boolean memberFlag;
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer userId;
+
+    @ApiModelProperty(value = "评测编号")
+    private Long lessonExaminationId;
+
+    @ApiModelProperty(value = "声部")
+    private String subjectName;
+}
+

+ 38 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDto1.java

@@ -0,0 +1,38 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class StudentLessonExaminationDto1 {
+
+    @ApiModelProperty(value = "学员姓名")
+    private String username;
+
+    @ApiModelProperty(value = "学员手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "测评分数")
+    private Integer trainingScore;
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer userId;
+
+    @ApiModelProperty(value = "声部")
+    private String subjectName;
+
+    @ApiModelProperty(value = "训练时间")
+    private Date trainingTime;
+
+    private List<StudentLessonExaminationDetailDto1> detailDtos;
+}
+

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationSaveDto.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.dal.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@Data
+public class StudentLessonExaminationSaveDto {
+
+    @ApiModelProperty(value = "学员编号,逗号分割")
+    private String studentIds;
+
+    @ApiModelProperty(value = "声部")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "作业内容")
+    private List<LessonExaminationDetailDto> examinationDetailDtos;
+}
+

+ 152 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonTrainingDetailWrapper.java

@@ -0,0 +1,152 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ym.mec.biz.dal.enums.ELessonTrainingType;
+import com.ym.mec.biz.dal.enums.StandardEnum;
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * 练习内容
+ * 2023-03-31 14:18:47
+ */
+@ApiModel(value = "StudentLessonTrainingDetailWrapper对象", description = "练习内容查询对象")
+public class StudentLessonTrainingDetailWrapper {
+
+
+    @Data
+    @ApiModel(" AddStudentLessonTrainingDetail-练习内容")
+    public static class AddStudentLessonTrainingDetail {
+
+        @ApiModelProperty("曲目id")
+        private Long musicScoreId;
+
+        @ApiModelProperty("练习速度")
+        private Integer trainingSpeed;
+
+        @ApiModelProperty("标准练习次数")
+        private Integer times;
+
+        @ApiModelProperty("分谱")
+        private Integer partIndex;
+
+        @ApiModelProperty("声部")
+        private Integer subjectId;
+    }
+
+    @Data
+	@ApiModel(" StudentLessonTrainingDetail-练习内容")
+    public static class StudentLessonTrainingDetail {
+
+
+        @ApiModelProperty("主键ID")
+        private Long id;
+
+        @ApiModelProperty("用户ID")
+        private Long userId;
+
+        @ApiModelProperty("练习编号")
+        private Long courseHomeworkId;
+
+        @ApiModelProperty("曲目id")
+        private Long musicScoreId;
+
+        @ApiModelProperty("曲目名称")
+        private String  musicScoreName;
+
+        @ApiModelProperty("分谱")
+        private Integer partIndex;
+
+        @ApiModelProperty("练习速度")
+        private Integer trainingSpeed;
+
+        @ApiModelProperty("已练习次数")
+        private Integer trainingTimes;
+
+        @ApiModelProperty("练习状态")
+        private StandardEnum trainingStatus;
+
+        @ApiModelProperty("标准练习次数")
+        private Integer times;
+
+
+        @ApiModelProperty("声部id")
+        private Long subjectId;
+
+        @ApiModelProperty("声部名称")
+        private String subjectName;
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+	}
+
+
+
+    @Data
+    @ApiModel(" StudentLessonTrainingQuery-学生列表")
+    public static class StudentLessonTrainingQuery {
+
+
+        @ApiModelProperty(value = "用户ID")
+        private Long userId;
+
+        @ApiModelProperty(value = "课程编号",required = true)
+        @NotNull(message = "课程编号不能为空")
+        private Integer courseScheduleId;
+
+        @ApiModelProperty(value = "作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)",required = true)
+        @NotNull(message = "作业类型不能为空")
+        private ELessonTrainingType type;
+
+        @ApiModelProperty(value = "声部id")
+        private Integer subjectId;
+
+        @ApiModelProperty(value = "true:完成 false未完成",hidden = true)
+        private Boolean standardFlag;
+
+	}
+
+
+
+    @Data
+    @ApiModel(" StudentLessonTraining-学生练习内容查询对象")
+    public static class StudentLessonTraining {
+
+
+        @ApiModelProperty(value = "用户ID")
+        private Long userId;
+
+        @ApiModelProperty(value = "用户名")
+        private String userName;
+
+        @ApiModelProperty(value = "头像")
+        private String avatar;
+
+        @ApiModelProperty("是否是vip")
+        private Boolean vipFlag;
+
+        @ApiModelProperty("声部id")
+        private Integer subjectId;
+
+        @ApiModelProperty("声部名称")
+        private String subjectName;
+
+        @ApiModelProperty(value = "0未达标、1达标、2优秀",required = true)
+        private StandardEnum standardFlag;
+
+        @ApiModelProperty(value = "是否完成")
+        private Boolean finishFlag;
+
+        @ApiModelProperty(value = "练习内容")
+        private List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> studentLessonTrainingDetail;
+    }
+
+}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendanceDetailDto.java

@@ -37,6 +37,16 @@ public class TeacherAttendanceDetailDto {
     
     private School school;
 
+    private String versionTag;
+
+    public String getVersionTag() {
+        return versionTag;
+    }
+
+    public void setVersionTag(String versionTag) {
+        this.versionTag = versionTag;
+    }
+
     public Integer getErrorAttendanceNum() {
         return errorAttendanceNum;
     }

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/WebCourseHomeworkListDto.java

@@ -65,6 +65,38 @@ public class WebCourseHomeworkListDto {
     @ApiModelProperty(value = "伴奏编号",required = false)
     private String musicScoreId;
 
+    @ApiModelProperty(value = "乐团名")
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "截止时间")
+    private Date expiryDate;
+
+    private String versionTag;
+
+    public String getVersionTag() {
+        return versionTag;
+    }
+
+    public void setVersionTag(String versionTag) {
+        this.versionTag = versionTag;
+    }
+
+    public Date getExpiryDate() {
+        return expiryDate;
+    }
+
+    public void setExpiryDate(Date expiryDate) {
+        this.expiryDate = expiryDate;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
     public String getMusicScoreId() {
         return musicScoreId;
     }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ChildrenDayDegreeDetail.java

@@ -26,9 +26,9 @@ public class ChildrenDayDegreeDetail extends BaseEntity {
     private Integer userId;
 
     /**
-    * 类型 1-乐器考级 2-乐理考级 3-vip 4-乐理
+    * 类型 1-专业考级 2-乐理考级 3-vip 4-乐理
     */
-    @ApiModelProperty(value="类型 1-乐器考级 2-乐理考级 3-vip 4-乐理")
+    @ApiModelProperty(value="类型 1-专业考级 2-乐理考级 3-vip 4-乐理")
     private Integer type;
 
     /**

+ 45 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseHomework.java

@@ -1,7 +1,9 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.dto.LessonExaminationSaveDto;
 import com.ym.mec.biz.dal.dto.MusicScoreSubjectDto;
 
+import com.ym.mec.biz.dal.dto.StudentLessonTrainingDetailWrapper;
 import io.swagger.annotations.ApiModelProperty;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -31,6 +33,8 @@ public class CourseHomework extends BaseEntity {
 	/** 作业内容 */
 	private String content;
 
+    private Boolean pushFlag;
+
 	/** 作业内容 */
 	private String title;
 	
@@ -45,6 +49,8 @@ public class CourseHomework extends BaseEntity {
 	
 	/**  */
 	private String musicGroupId;
+
+    private String versionTag;
 	
 	private MusicGroup musicGroup = new MusicGroup();
 	
@@ -64,7 +70,45 @@ public class CourseHomework extends BaseEntity {
 
 	private List<MusicScoreSubjectDto> musicScoreSubjectDto;
 
-	public String getTitle() {
+    @ApiModelProperty("新版作业 time:2023-03-31")
+    private List<StudentLessonTrainingDetailWrapper.AddStudentLessonTrainingDetail> studentLessonTrainingDetails;
+
+	@ApiModelProperty(value = "课后评测信息")
+	private LessonExaminationSaveDto lessonExaminationSaveDto;
+
+	public LessonExaminationSaveDto getLessonExaminationSaveDto() {
+		return lessonExaminationSaveDto;
+	}
+
+    public Boolean getPushFlag() {
+        return pushFlag;
+    }
+
+    public void setPushFlag(Boolean pushFlag) {
+        this.pushFlag = pushFlag;
+    }
+
+    public void setLessonExaminationSaveDto(LessonExaminationSaveDto lessonExaminationSaveDto) {
+		this.lessonExaminationSaveDto = lessonExaminationSaveDto;
+	}
+
+	public List<StudentLessonTrainingDetailWrapper.AddStudentLessonTrainingDetail> getStudentLessonTrainingDetails() {
+        return studentLessonTrainingDetails;
+    }
+
+    public void setStudentLessonTrainingDetails(List<StudentLessonTrainingDetailWrapper.AddStudentLessonTrainingDetail> studentLessonTrainingDetails) {
+        this.studentLessonTrainingDetails = studentLessonTrainingDetails;
+    }
+
+    public String getVersionTag() {
+        return versionTag;
+    }
+
+    public void setVersionTag(String versionTag) {
+        this.versionTag = versionTag;
+    }
+
+    public String getTitle() {
 		return title;
 	}
 

+ 79 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Degree.java

@@ -0,0 +1,79 @@
+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.EDegreeStatus;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import lombok.Data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Optional;
+
+
+/**
+ * 考级信息
+ * 2023-04-10 10:24:25
+ */
+@Data
+@ApiModel(" Degree-考级信息")
+@TableName("degree")
+public class Degree implements Serializable {
+
+    @ApiModelProperty("主键ID") 
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("机构ID")
+    @TableField(value = "tenant_id_")
+    private Integer tenantId;
+
+    @ApiModelProperty("分部ID")
+    @TableField(value = "organ_ids_")
+    private String organIds;
+
+    @ApiModelProperty("考级名称")
+    @TableField(value = "name_")
+    private String name;
+
+    @ApiModelProperty("报名开始时间")
+    @TableField(value = "start_time_")
+    private Date startTime;
+
+    @ApiModelProperty("报名结束时间")
+    @TableField(value = "end_time_")
+    private Date endTime;
+
+    @ApiModelProperty("登记时间")
+    @TableField(value = "registration_time_")
+    private Date registrationTime;
+
+    @ApiModelProperty("报名人次")
+    @TableField(value = "register_total_")
+    private Integer registerTotal;
+
+    @ApiModelProperty("报名人数")
+    @TableField(value = "register_num_")
+    private Integer registerNum;
+
+    @ApiModelProperty("购买课程")
+    @TableField(value = "purchase_course_")
+    private Integer purchaseCourse;
+
+    @ApiModelProperty("报名状态 NOT_START:未开始,START:报名中,END:报名结束")
+    @TableField(value = "status_")
+    private EDegreeStatus status;
+
+    @ApiModelProperty("创建时间")
+    @TableField(value = "create_time_")
+    private Date createTime;
+
+    public Integer getTenantId() {
+        return Optional.ofNullable(tenantId).orElse(TenantContextHolder.getTenantId());
+    }
+}

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

@@ -0,0 +1,66 @@
+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.DegreeTypeEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import lombok.Data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import java.math.BigDecimal;
+import java.util.Optional;
+
+/**
+ * 考级等级费用配置
+ * 2023-04-10 10:24:25
+ */
+@Data
+@ApiModel(" DegreeLevelFee-考级等级费用配置")
+@TableName("degree_level_fee")
+public class DegreeLevelFeeNew implements Serializable {
+
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("声部ID")
+    @TableField(value = "subject_id_")
+    private Integer subjectId;
+
+    @ApiModelProperty("等级")
+    @TableField(value = "level_")
+    private Integer level;
+
+    @ApiModelProperty("费用")
+    @TableField(value = "fee_")
+    private BigDecimal fee;
+
+    @ApiModelProperty("考级分类, GRADE,THEORY")
+    @TableField(value = "degree_type_")
+    private DegreeTypeEnum degreeType;
+
+    @ApiModelProperty("是否上传证书")
+    @TableField(value = "credentials_")
+    private Boolean credentials;
+
+    @ApiModelProperty("创建时间")
+    @TableField(value = "create_time_")
+    private Date createTime;
+
+    @ApiModelProperty("修改时间")
+    @TableField(value = "update_time_")
+    private Date updateTime;
+
+    @TableField(value = "tenant_id_")
+    private Integer tenantId;
+
+    public Integer getTenantId() {
+        return Optional.ofNullable(tenantId).orElse(TenantContextHolder.getTenantId());
+    }
+}

+ 107 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeNews.java

@@ -0,0 +1,107 @@
+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.DegreeNewsTypeEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import lombok.Data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Optional;
+
+
+/**
+ * 考级资讯表
+ * 2023-04-10 10:24:25
+ */
+@Data
+@ApiModel(" DegreeNews-考级资讯表")
+@TableName("degree_news")
+public class DegreeNews implements Serializable {
+
+    @ApiModelProperty("主键ID") 
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("标题")
+    @TableField(value = "title_")
+    private String title;
+
+    @ApiModelProperty("内容")
+    @TableField(value = "content_")
+    private String content;
+
+    @ApiModelProperty("封面图片")
+    @TableField(value = "cover_image_")
+    private String coverImage;
+
+    @ApiModelProperty("咨询类型")
+    @TableField(value = "type_")
+    private DegreeNewsTypeEnum type;
+
+    @ApiModelProperty("状态(1-可见 0-不可见)")
+    @TableField(value = "status_")
+    private Boolean status;
+
+    @ApiModelProperty("上线时间")
+    @TableField(value = "online_time_")
+    private Date onlineTime;
+
+    @ApiModelProperty("下线时间")
+    @TableField(value = "offline_time_")
+    private Date offlineTime;
+
+    @ApiModelProperty("备注")
+    @TableField(value = "memo_")
+    private String memo;
+
+    @ApiModelProperty("链接地址")
+    @TableField(value = "link_url_")
+    private String linkUrl;
+
+    @ApiModelProperty("跳转类型_bank,_slef")
+    @TableField(value = "href_target_")
+    private String hrefTarget;
+
+    @ApiModelProperty("顺序号")
+    @TableField(value = "order_")
+    private Integer order;
+
+    @ApiModelProperty("删除标识")
+    @TableField(value = "del_flag_")
+    private Boolean delFlag;
+
+    @ApiModelProperty("机构ID")
+    @TableField(value = "tenant_id_")
+    private Integer tenantId;
+
+    @ApiModelProperty("所属分部")
+    @TableField(value = "organ_ids_")
+    private String organIds;
+
+    @ApiModelProperty("视频封面")
+    @TableField(value = "video_cover_image_")
+    private String videoCoverImage;
+
+    @ApiModelProperty("修改人")
+    @TableField(value = "operator_id_")
+    private Integer operatorId;
+
+    @ApiModelProperty("更新时间")
+    @TableField(value = "update_time_")
+    private Date updateTime;
+
+    @ApiModelProperty("创建时间")
+    @TableField(value = "create_time_")
+    private Date createTime;
+
+    public Integer getTenantId() {
+        return Optional.ofNullable(tenantId).orElse(TenantContextHolder.getTenantId());
+    }
+}

+ 21 - 308
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeRegistration.java

@@ -1,380 +1,93 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.auth.api.enums.CertificateTypeEnum;
+import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
 import java.util.Date;
 
 import com.ym.mec.common.entity.BaseEntity;
+import lombok.Data;
 
-public class DegreeRegistration extends BaseEntity {
+@Data
+public class DegreeRegistration {
     private Integer id;
 
-    /**
-     * 零星支付id
-     */
-    @ApiModelProperty(value = "零星支付id",required = true)
-    private Integer sporadicId;
+    @ApiModelProperty(value = "考级编号",required = true)
+    private Long degreeId;
 
+    @ApiModelProperty(value = "学员编号",required = true)
     private Integer userId;
 
-    /**
-     * 订单编号
-     */
     @ApiModelProperty(value = "订单编号",required = false)
     private String orderNo;
 
-
-    /**
-     * 订单流水号
-     */
     @ApiModelProperty(value = "订单流水号",required = false)
     private String transNo;
 
-
-    /**
-     * 姓名
-     */
     @ApiModelProperty(value = "名字",required = true)
     private String name;
 
-    /**
-     * 性别
-     */
     @ApiModelProperty(value = "性别",required = true)
     private String gender;
 
     @ApiModelProperty(value = "证件类型",required = true)
-	private String certificateType;
+	private CertificateTypeEnum certificateType;
 
-    /**
-     * 身份证号
-     */
     @ApiModelProperty(value = "身份证号",required = true)
     private String idcard;
 
-    /**
-     * 城市
-     */
     @ApiModelProperty(value = "城市",required = true)
     private String city;
 
-    /**
-     * 学校
-     */
     @ApiModelProperty(value = "学校",required = true)
     private String school;
 
-    /**
-     * 乐器
-     */
-    @ApiModelProperty(value = "乐器",required = true)
-    private String subject;
+    @ApiModelProperty(value = "声部",required = true)
+    private Integer subjectId;
+
+    private String subjectName;
 
-    /**
-     * 考试级别
-     */
     @ApiModelProperty(value = "考试级别",required = true)
     private String level;
 
-    /**
-     * 考试类型
-     */
-    @ApiModelProperty(value = "考试类型",required = true)
-    private Integer degreeType;
-
-    @ApiModelProperty(value = "1乐器考级、2乐理考级",required = true)
-    private Integer type;
+    @ApiModelProperty(value = "考级类型",required = true)
+    private DegreeTypeEnum type;
 
-
-    /**
-     * 乐理级别证书
-     */
-    @ApiModelProperty(value = "乐理级别证书",required = true)
+    @ApiModelProperty(value = "证书",required = true)
     private String theoryCert;
 
-    /**
-     * 家长联系电话
-     */
     @ApiModelProperty(value = "家长联系电话",required = true)
     private String mobile;
 
-    /**
-     * 考级费用
-     */
     @ApiModelProperty(value = "考级费用",required = false)
     private BigDecimal money;
 
-    /**
-     * 备注
-     */
     @ApiModelProperty(value = "备注",required = false)
     private String memo;
 
-    /**
-     * 报名时间
-     */
     private Date createTime;
 
-    /**
-     * 更新时间
-     */
     private Date updateTime;
 
-    /**
-     * 0-未支付 1-支付中 2-已支付 2-已退费
-     */
+    @ApiModelProperty(value = "支付状态 0-未支付 1-支付中 2-已支付 2-已退费",required = false)
     private Integer status;
 
-
-    /**
-     * 0-未支付 1-支付中 2-支付中
-     */
+    @ApiModelProperty(value = "支付状态 0-未支付 1-支付中 2-已支付 2-已退费",required = false)
     private String statusStr;
 
-    /**
-     *  是否重新支付
-     */
     @ApiModelProperty(value = "是否重新支付",required = false)
     private Boolean isRepay = false;
 
     private Integer organId;
 
-    private String activityTag;
+    private String organName;
 
     private String vipTeacherName;
 
     private String normalTeacherName;
 
-    public String getVipTeacherName() {
-        return vipTeacherName;
-    }
-
-    public void setVipTeacherName(String vipTeacherName) {
-        this.vipTeacherName = vipTeacherName;
-    }
-
-    public String getNormalTeacherName() {
-        return normalTeacherName;
-    }
-
-    public void setNormalTeacherName(String normalTeacherName) {
-        this.normalTeacherName = normalTeacherName;
-    }
-
-    public Integer getType() {
-        return type;
-    }
-
-    public void setType(Integer type) {
-        this.type = type;
-    }
-
-    public Integer getDegreeType() {
-        return degreeType;
-    }
-
-    public void setDegreeType(Integer degreeType) {
-        this.degreeType = degreeType;
-    }
-
-    public Boolean getRepay() {
-        return isRepay;
-    }
-
-    public void setRepay(Boolean repay) {
-        isRepay = repay;
-    }
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public Integer getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Integer userId) {
-        this.userId = userId;
-    }
-
-    public String getActivityTag() {
-        return activityTag;
-    }
-
-    public void setActivityTag(String activityTag) {
-        this.activityTag = activityTag;
-    }
-
-    public Integer getSporadicId() {
-        return sporadicId;
-    }
-
-    public void setSporadicId(Integer sporadicId) {
-        this.sporadicId = sporadicId;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getGender() {
-        return gender;
-    }
-
-    public void setGender(String gender) {
-        this.gender = gender;
-    }
-
-    public String getIdcard() {
-        return idcard;
-    }
-
-    public void setIdcard(String idcard) {
-        this.idcard = idcard;
-    }
-
-    public String getCity() {
-        return city;
-    }
-
-    public void setCity(String city) {
-        this.city = city;
-    }
-
-    public String getSchool() {
-        return school;
-    }
-
-    public void setSchool(String school) {
-        this.school = school;
-    }
-
-    public String getSubject() {
-        return subject;
-    }
-
-    public void setSubject(String subject) {
-        this.subject = subject;
-    }
-
-    public String getMobile() {
-        return mobile;
-    }
-
-    public void setMobile(String mobile) {
-        this.mobile = mobile;
-    }
-
-    public BigDecimal getMoney() {
-        return money;
-    }
-
-    public void setMoney(BigDecimal money) {
-        this.money = money;
-    }
-
-    public String getMemo() {
-        return memo;
-    }
-
-    public void setMemo(String memo) {
-        this.memo = memo;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public Integer getStatus() {
-        return status;
-    }
-
-    public void setStatus(Integer status) {
-        this.status = status;
-    }
-
-    public Boolean getIsRepay() {
-        return isRepay;
-    }
-
-    public void setIsRepay(Boolean repay) {
-        isRepay = repay;
-    }
-
-    public String getLevel() {
-        return level;
-    }
-
-    public void setLevel(String level) {
-        this.level = level;
-    }
-
-    public String getTheoryCert() {
-        return theoryCert;
-    }
-
-    public void setTheoryCert(String theoryCert) {
-        this.theoryCert = theoryCert;
-    }
-
-    public String getStatusStr() {
-        return statusStr;
-    }
-
-    public void setStatusStr(String statusStr) {
-        this.statusStr = statusStr;
-    }
-
-    public String getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
-
-    public String getTransNo() {
-        return transNo;
-    }
-
-    public void setTransNo(String transNo) {
-        this.transNo = transNo;
-    }
-
-    public Integer getOrganId() {
-        return organId;
-    }
-
-    public void setOrganId(Integer organId) {
-        this.organId = organId;
-    }
-
-	public String getCertificateType() {
-		return certificateType;
-	}
-
-	public void setCertificateType(String certificateType) {
-		this.certificateType = certificateType;
-	}
+    private Integer tenantId = TenantContextHolder.getTenantId();
 }

+ 103 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercises.java

@@ -2,11 +2,16 @@ package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.MusicScoreSubjectDto;
+import com.ym.mec.biz.dal.dto.StudentLessonTrainingDetailWrapper;
+import com.ym.mec.biz.dal.enums.ELessonTrainingType;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
 import com.ym.mec.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import javax.validation.constraints.NotNull;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -28,10 +33,18 @@ public class ExtracurricularExercises extends BaseEntity {
 	/** 学生列表 */
 	@ApiModelProperty(value="学生列表")
 	private String studentIdList;
+
+    @ApiModelProperty("班级id")
+    private Integer classGroupId;
+
+    @ApiModelProperty("作业来源分类")
+    private String groupType;
 	
 	/** 批次号 */
 	@ApiModelProperty(value="批次号")
 	private String batchNo;
+
+    private String versionTag;
 	
 	/** 标题 */
 	@ApiModelProperty(value="标题")
@@ -69,6 +82,8 @@ public class ExtracurricularExercises extends BaseEntity {
 	@ApiModelProperty(value="是否提交")
 	private int isSubmit;
 
+    private Boolean pushFlag;
+
 	private int status;
 	
 	private String organName;
@@ -83,6 +98,94 @@ public class ExtracurricularExercises extends BaseEntity {
 
 	private List<MusicScoreSubjectDto> musicScoreSubjectDtos;
 
+    @ApiModelProperty(value = "作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)",required = true)
+    private String type;
+
+    @ApiModelProperty("乐团名")
+    private String musicGroupName;
+
+    @ApiModelProperty("班级名")
+    private String classGroupName;
+
+
+    @ApiModelProperty("布置时间")
+    private java.util.Date assignTime;
+
+    @ApiModelProperty("新版作业 time:2023-03-31")
+    private List<StudentLessonTrainingDetailWrapper.AddStudentLessonTrainingDetail> studentLessonTrainingDetails;
+
+    public Boolean getPushFlag() {
+        return pushFlag;
+    }
+
+    public void setPushFlag(Boolean pushFlag) {
+        this.pushFlag = pushFlag;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getVersionTag() {
+        return versionTag;
+    }
+
+    public void setVersionTag(String versionTag) {
+        this.versionTag = versionTag;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public String getClassGroupName() {
+        return classGroupName;
+    }
+
+    public void setClassGroupName(String classGroupName) {
+        this.classGroupName = classGroupName;
+    }
+
+    public Date getAssignTime() {
+        return assignTime;
+    }
+
+    public void setAssignTime(Date assignTime) {
+        this.assignTime = assignTime;
+    }
+
+    public Integer getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public String getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(String groupType) {
+        this.groupType = groupType;
+    }
+
+    public List<StudentLessonTrainingDetailWrapper.AddStudentLessonTrainingDetail> getStudentLessonTrainingDetails() {
+        return studentLessonTrainingDetails;
+    }
+
+    public void setStudentLessonTrainingDetails(List<StudentLessonTrainingDetailWrapper.AddStudentLessonTrainingDetail> studentLessonTrainingDetails) {
+        this.studentLessonTrainingDetails = studentLessonTrainingDetails;
+    }
+
 	public List<MusicScoreSubjectDto> getMusicScoreSubjectDtos() {
 		return musicScoreSubjectDtos;
 	}

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

@@ -0,0 +1,75 @@
+package com.ym.mec.biz.dal.entity;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 进度评测表(LessonExamination)表实体类
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:36
+ */
+@ApiModel(value = "lesson_examination-进度评测表")
+@Data
+public class LessonExamination{
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("organ_id_")
+    @ApiModelProperty(value = "分部编号")
+    private Integer organId;
+
+    @TableField("music_group_id_")
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+
+    @TableField("class_group_id_")
+    @ApiModelProperty(value = "班级编号")
+    private Integer classGroupId;
+
+    @TableField("course_schedule_id_")
+    @ApiModelProperty(value = "课程编号")
+    private Long courseScheduleId;
+
+    @TableField("teacher_id_")
+    @ApiModelProperty(value = "老师编号")
+    private Integer teacherId;
+
+    @TableField("expire_date_")
+    @ApiModelProperty(value = "截止日期")
+    private Date expireDate;
+
+    @TableField("training_num_")
+    @ApiModelProperty(value = "提交人数")
+    private Integer trainingNum;
+
+    @TableField("standard_num_")
+    @ApiModelProperty(value = "达标人数")
+    private Integer standardNum;
+
+    @TableField("expect_num_")
+    @ApiModelProperty(value = "预计人数")
+    private Integer expectNum;
+
+    @TableField("push_flag_")
+    @ApiModelProperty(value = "是否推送")
+    private Boolean pushFlag;
+
+    @TableField("create_time_")
+    private Date createTime;
+
+    @TableField("update_time_")
+    private Date updateTime;
+
+    @TableField("tenant_id_")
+    private Integer tenantId = TenantContextHolder.getTenantId();
+}
+

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SellOrder.java

@@ -55,10 +55,10 @@ public class SellOrder{
     private BigDecimal balanceAmount = BigDecimal.ZERO;
 
     @ApiModelProperty(value="总部销售成本")
-    private BigDecimal sellCost;
+    private BigDecimal sellCost = BigDecimal.ZERO;
 
     @ApiModelProperty(value="分部销售成本")
-    private BigDecimal organSellCost;
+    private BigDecimal organSellCost = BigDecimal.ZERO;
 
     @ApiModelProperty(value="销售成本2")
     private String sellCost2;

+ 82 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomework.java

@@ -1,5 +1,8 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.dto.StudentLessonTrainingDetailWrapper;
+import com.ym.mec.biz.dal.enums.ELessonTrainingType;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
 import com.ym.mec.biz.dal.enums.StandardEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
@@ -10,6 +13,7 @@ import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 对应数据库表(student_course_homework):
@@ -59,6 +63,9 @@ public class StudentCourseHomework extends BaseEntity {
 	@ApiModelProperty(value="提交时间")
 	private Date submitTime;
 
+    @ApiModelProperty(value="类型")
+    private GroupType groupType;
+
 	private ImSendTypeEnum msgType = ImSendTypeEnum.TXT;
 
 	//伴奏编号
@@ -76,7 +83,81 @@ public class StudentCourseHomework extends BaseEntity {
 	@ApiModelProperty(value = "0未达标、1达标、2优秀",required = true)
 	private StandardEnum standardFlag;
 
-	public StandardEnum getStandardFlag() {
+    @ApiModelProperty("完成状态")
+    private Boolean  finishFlag;
+
+    @ApiModelProperty("是否是vip")
+    private Boolean vipFlag;
+
+    @ApiModelProperty("声部id")
+    private Integer subjectId;
+
+    @ApiModelProperty("声部名称")
+    private String subjectName;
+
+    @ApiModelProperty(value = "作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)",required = true)
+    private ELessonTrainingType type;
+
+    @ApiModelProperty(value = "练习内容")
+    private List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> studentLessonTrainingDetail;
+
+    public List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> getStudentLessonTrainingDetail() {
+        return studentLessonTrainingDetail;
+    }
+
+    public void setStudentLessonTrainingDetail(List<StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail> studentLessonTrainingDetail) {
+        this.studentLessonTrainingDetail = studentLessonTrainingDetail;
+    }
+
+    public ELessonTrainingType getType() {
+        return type;
+    }
+
+    public void setType(ELessonTrainingType type) {
+        this.type = type;
+    }
+
+    public Boolean getFinishFlag() {
+        return finishFlag;
+    }
+
+    public void setFinishFlag(Boolean finishFlag) {
+        this.finishFlag = finishFlag;
+    }
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public Boolean getVipFlag() {
+        return vipFlag;
+    }
+
+    public void setVipFlag(Boolean vipFlag) {
+        this.vipFlag = vipFlag;
+    }
+
+    public GroupType getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(GroupType groupType) {
+        this.groupType = groupType;
+    }
+
+    public StandardEnum getStandardFlag() {
 		return standardFlag;
 	}
 

+ 58 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExamination.java

@@ -0,0 +1,58 @@
+package com.ym.mec.biz.dal.entity;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 学生进度评测表(StudentLessonExamination)表实体类
+ *
+ * @author zx
+ * @since 2023-04-03 18:21:30
+ */
+@ApiModel(value = "student_lesson_examination-学生进度评测表")
+@Data
+public class StudentLessonExamination {
+    @TableId(value = "id_", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @TableField("user_id_")
+    @ApiModelProperty(value = "用户ID")
+    private Integer userId;
+
+    @TableField("lesson_examination_id_")
+    @ApiModelProperty(value = "测验编号")
+    private Long lessonExaminationId;
+
+    @TableField("training_score_")
+    @ApiModelProperty(value = "测评总分")
+    private Integer trainingScore;
+
+    @TableField("training_time_")
+    @ApiModelProperty(value = "最后测评时间")
+    private Date trainingTime;
+
+    @TableField("training_flag_")
+    @ApiModelProperty(value = "是否测评")
+    private Boolean trainingFlag;
+
+    @TableField("subject_id_")
+    @ApiModelProperty(value = "声部")
+    private Integer subjectId;
+
+    @TableField("create_time_")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @TableField("update_time_")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+}
+

+ 82 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonExaminationDetail.java

@@ -0,0 +1,82 @@
+package com.ym.mec.biz.dal.entity;
+
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ym.mec.biz.dal.enums.HardLevelEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 进度评测详情表(StudentLessonExaminationDetail)表实体类
+ *
+ * @author zx
+ * @since 2023-04-03 18:22:01
+ */
+@ApiModel(value = "student_lesson_examination_detail-进度评测详情表")
+@Data
+public class StudentLessonExaminationDetail implements Serializable {
+    @TableId(value = "id_", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @TableField("user_id_")
+    @ApiModelProperty(value = "用户ID")
+    private Integer userId;
+
+    @TableField("lesson_examination_id_")
+    @ApiModelProperty(value = "测验编号")
+    private Long lessonExaminationId;
+
+    @TableField("music_score_id_")
+    @ApiModelProperty(value = "曲目id")
+    private Long musicScoreId;
+
+    @TableField("heard_level_")
+    @ApiModelProperty(value = "评测难度")
+    private HardLevelEnum heardLevel;
+
+    @TableField("standard_flag_")
+    @ApiModelProperty(value = "是否达标")
+    private Boolean standardFlag;
+
+    @TableField("standard_score_")
+    @ApiModelProperty(value = "达标分数")
+    private Integer standardScore;
+
+    @TableField("training_score_")
+    @ApiModelProperty(value = "练习最高分数")
+    private Integer trainingScore;
+
+    @TableField("actual_avg_score_")
+    @ApiModelProperty(value = "实际均摊得分")
+    private Integer actualAvgScore;
+
+    @TableField("avg_score_")
+    @ApiModelProperty(value = "均摊总分")
+    private Integer avgScore;
+
+    @TableField("part_index_")
+    @ApiModelProperty(value = "分谱")
+    private Integer partIndex;
+
+    @TableField("training_time_")
+    @ApiModelProperty(value = "最后提交时间")
+    private Date trainingTime;
+
+    @TableField("create_time_")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @TableField("update_time_")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+}
+

+ 81 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentLessonTrainingDetail.java

@@ -0,0 +1,81 @@
+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.ELessonTrainingType;
+import com.ym.mec.biz.dal.enums.StandardEnum;
+import lombok.Data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 练习内容
+ * 2023-03-31 14:18:47
+ */
+@Data
+@ApiModel(" StudentLessonTrainingDetail-练习内容")
+@TableName("student_lesson_training_detail")
+public class StudentLessonTrainingDetail implements Serializable {
+
+    @ApiModelProperty("主键ID") 
+	    @TableId(value = "id_",type = IdType.AUTO)
+	    private Long id;
+
+    @ApiModelProperty("用户ID") 
+	@TableField(value = "user_id_")
+    private Long userId;
+
+    @ApiModelProperty("作业类型 来源(HOMEWORK,EXTRACURRICULAR,EXTRA)")
+    @TableField(value = "type_")
+    private ELessonTrainingType type;
+
+    @ApiModelProperty("练习编号") 
+	@TableField(value = "course_homework_id_")
+    private Long courseHomeworkId;
+
+
+    @ApiModelProperty("声部id")
+    @TableField(value = "subject_id_")
+    private Long subjectId;
+
+
+    @ApiModelProperty("曲目id") 
+	@TableField(value = "music_score_id_")
+    private Long musicScoreId;
+
+    @ApiModelProperty("分谱")
+    @TableField(value = "part_index_")
+    private Integer partIndex;
+
+    @ApiModelProperty("练习速度") 
+	@TableField(value = "training_speed_")
+    private Integer trainingSpeed;
+
+    @ApiModelProperty("已练习次数") 
+	@TableField(value = "training_times_")
+    private Integer trainingTimes;
+
+    @ApiModelProperty("练习状态") 
+	@TableField(value = "training_status_")
+    private StandardEnum trainingStatus;
+
+    @ApiModelProperty("标准练习次数") 
+	@TableField(value = "times_")
+    private Integer times;
+
+    @ApiModelProperty("创建时间") 
+	@TableField(value = "create_time_")
+    private Date createTime;
+
+    @ApiModelProperty("更新时间") 
+	@TableField(value = "update_time_")
+    private Date updateTime;
+
+}

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherAttendance.java

@@ -96,6 +96,10 @@ public class TeacherAttendance extends BaseEntity {
 	//处理结果
 	private Integer operator;
 
+
+    @ApiModelProperty(value = "签到附件")
+    private String signInAttachments;
+
 	@ApiModelProperty(value = "签退附件")
 	private String signOutAttachments;
 
@@ -115,7 +119,15 @@ public class TeacherAttendance extends BaseEntity {
 
 	private TeachModeEnum teachModeEnum;
 
-	public TeachModeEnum getTeachModeEnum() {
+    public String getSignInAttachments() {
+        return signInAttachments;
+    }
+
+    public void setSignInAttachments(String signInAttachments) {
+        this.signInAttachments = signInAttachments;
+    }
+
+    public TeachModeEnum getTeachModeEnum() {
 		return teachModeEnum;
 	}
 

+ 38 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DegreeNewsTypeEnum.java

@@ -0,0 +1,38 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * 考级资讯类型
+ */
+public enum DegreeNewsTypeEnum implements BaseEnum<String, DegreeNewsTypeEnum> {
+	EXAMINEE_STYLE("EXAMINEE_STYLE", "考生风采"),
+	GRADE_EXAMINATION_BRIEF("GRADE_EXAMINATION_BRIEF", "考级简章"),
+	GRADING_NOTICE("GRADING_NOTICE", "考级须知");
+
+	private String code;
+
+	private String msg;
+
+	DegreeNewsTypeEnum(String code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	@Override
+	public String getCode() {
+		return this.code;
+	}
+}

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DegreeTypeEnum.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum DegreeTypeEnum implements BaseEnum<String, ComplaintsStatusEnum> {
+    GRADE("GRADE", "专业考级"),
+    THEORY("THEORY", "乐理考级");
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    DegreeTypeEnum(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+}

+ 52 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EDegreeStatus.java

@@ -0,0 +1,52 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-04-10
+ */
+@Getter
+public enum EDegreeStatus implements BaseEnum<String, EDegreeStatus> {
+
+    /**
+     * 未开始
+     */
+    NOT_START("NOT_START", "未开始"),
+
+    /**
+     * 进行中
+     */
+    START("START", "进行中"),
+
+    /**
+     * 已结束
+     */
+    END("END", "已结束"),
+    ;
+
+    @EnumValue
+    private String code;
+
+
+    private String msg;
+
+    EDegreeStatus(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    /**
+     * 获取枚举类的code值
+     *
+     * @return
+     */
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+}

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/EHomeWorkStatus.java

@@ -0,0 +1,44 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-04-03
+ */
+@Getter
+public enum EHomeWorkStatus implements BaseEnum<String, EHomeWorkStatus> {
+
+    /**
+     * 未布置
+     */
+    UNASSIGNED("未布置"),
+
+    /**
+     * 已布置
+     */
+    ASSIGNED("已布置"),
+
+    /**
+     * 已截止
+     */
+    DEADLINE("已截止"),
+
+    ;
+
+
+    private String msg;
+
+    @EnumValue
+    private String code;
+
+    EHomeWorkStatus(String msg) {
+        this.msg = msg;
+        this.code = this.name();
+    }
+
+}

+ 45 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ELessonTrainingType.java

@@ -0,0 +1,45 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+import lombok.Getter;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-04-04
+ */
+@Getter
+public enum ELessonTrainingType implements BaseEnum<String, ELessonTrainingType> {
+
+    /**
+     * 课后练习
+     */
+    HOMEWORK( "课后练习"),
+
+
+    /**
+     * 课外练习
+     */
+    EXTRACURRICULAR( "课外练习"),
+
+    /**
+     * 额外练习
+     */
+    EXTRA( "额外练习")
+    ;
+
+    private String desc;
+
+    @EnumValue
+    private String code;
+
+    ELessonTrainingType(String desc) {
+        this.desc = desc;
+        this.code = name();
+    }
+
+
+
+}

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

@@ -39,4 +39,5 @@ public enum GroupStatusEnum implements BaseEnum<String, GroupStatusEnum> {
 
     public void setDesc(String desc) {
         this.desc = desc;
-    }}
+    }
+}

+ 35 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/HardLevelEnum.java

@@ -0,0 +1,35 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum HardLevelEnum implements BaseEnum<String, HardLevelEnum> {
+	BEGINNER("BEGINNER","入门级"),
+	ADVANCED("ADVANCED","进阶级"),
+	PERFORMER("PERFORMER","大师级");
+
+	private String code;
+
+	private String desc;
+
+	HardLevelEnum(String code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	@Override
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+	public void setDesc(String desc) {
+		this.desc = desc;
+	}
+}

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

@@ -40,6 +40,10 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     //    SCHEDULE_CHANGE("SCHEDULE_CHANGE", "课表变动"),
 //    STUDENT_SMS_TEACHING_SCHOOL_CHANGE("STUDENT_SMS_TEACHING_SCHOOL_CHANGE", "教学点变动"),
     STUDENT_PUSH_JOB_MESSAGE("STUDENT_PUSH_JOB_MESSAGE", "训练提醒"),
+    STUDENT_PUSH_JOB_MESSAGE_V2("STUDENT_PUSH_JOB_MESSAGE_V2", "训练提醒"),
+    TEACHER_PUSH_JOB_MESSAGE_V2("TEACHER_PUSH_JOB_MESSAGE_V2", "训练提醒"),
+    TEACHER_PUSH_JOB_MESSAGE_EXTRA_V2("TEACHER_PUSH_JOB_MESSAGE_EXTRA_V2", "训练提醒"),
+    STUDENT_PUSH_JOB_MESSAGE_EXTRA_V2("STUDENT_PUSH_JOB_MESSAGE_EXTRA_V2", "训练提醒"),
     //    STUDENT_PUSH_CLASS_MESSAGE("STUDENT_PUSH_CLASS_MESSAGE", "班级消息"),
     TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN("TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN", "乐团课新增安排"),
     TEACHER_SMS_PUSH_VIP_COURSE_APPLY_RESULT("TEACHER_SMS_PUSH_VIP_COURSE_APPLY_RESULT", "VIP课申请结果"),
@@ -73,12 +77,18 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     STUDENT_SMS_PUSH_FREE_PRACTICE_APPLY_PUSH("STUDENT_SMS_PUSH_FREE_PRACTICE_APPLY_PUSH", "免费陪练课预约推送"),
     TEACHER_PUSH_NEED_POST_STUDY_REPORT("TEACHER_PUSH_NEED_POST_STUDY_REPORT", "新增待填写月报"),
     STUDENT_PUSH_HOMEWORK_REMIND("STUDENT_PUSH_HOMEWORK_REMIND", "训练提醒-网管课"),
+    STUDENT_PUSH_HOMEWORK_REMIND_V2("STUDENT_PUSH_HOMEWORK_REMIND_V2", "训练提醒-网管课"),
     TEACHER_PUSH_COMM_NO_STUDENTS_PUSH("TEACHER_PUSH_COMM_NO_STUDENTS_PUSH", "对外课程组无学生提醒"),
     TEACHER_PUSH_HOMEWORK_SUBMIT("TEACHER_PUSH_HOMEWORK_SUBMIT", "学生提交训练提醒"),
     TEACHER_PUSH_HOMEWORK_REPLY("TEACHER_PUSH_HOMEWORK_REPLY", "学生训练回复提醒"),
     STUDENT_PUSH_HOMEWORK_REPLY("STUDENT_PUSH_HOMEWORK_REPLY", "教师回复训练提醒"),
 
+    IM_PUBLISH_LESSON_EXAMINATION("IM_PUBLISH_LESSON_EXAMINATION", "测评提醒"),
+    STUDENT_PUSH_PUBLISH_LESSON_EXAMINATION("STUDENT_PUSH_PUBLISH_LESSON_EXAMINATION", "测评提醒"),
+    PUSH_NO_SUBMIT_LESSON_EXAMINATION("PUSH_NO_SUBMIT_LESSON_EXAMINATION", "测评提醒"),
+    TEACHER_PUSH_LESSON_EXAMINATION_END("TEACHER_PUSH_LESSON_EXAMINATION_END", "测评提醒"),
     IM_HOMEWORK_REMIND("IM_HOMEWORK_REMIND", "训练提醒"),
+    IM_HOMEWORK_REMIND_V2("IM_HOMEWORK_REMIND_V2", "训练提醒"),
     IM_HOMEWORK_SUBMIT_PUSH("IM_HOMEWORK_SUBMIT_PUSH", "训练提交提醒"),
     IM_HOMEWORK_SUBMIT_PUSH_GROUP("IM_HOMEWORK_SUBMIT_PUSH_GROUP", "训练提交提醒"),
     IM_HOMEWORK_STUDENT_REPLY_PUSH("IM_HOMEWORK_STUDENT_REPLY_PUSH", "训练回复提醒"),
@@ -89,8 +99,10 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
      * 课外训练消息
      */
     STUDENT_PUSH_EXTRA_REMIND("STUDENT_PUSH_EXTRA_REMIND", "训练提醒"),
+    STUDENT_PUSH_EXTRA_REMIND_V2("STUDENT_PUSH_EXTRA_REMIND_V2", "训练提醒"),
     EXTRA_REMIND_IM("EXTRA_REMIND_IM", "训练提醒"),
     EXTRA_REMIND_IM_DETAIL("EXTRA_REMIND_IM_DETAIL", "训练提醒"),
+    EXTRA_REMIND_IM_DETAIL_V2("EXTRA_REMIND_IM_DETAIL_V2", "训练提醒"),
     STUDENT_PUSH_EXTRA_REPLY("STUDENT_PUSH_EXTRA_REPLY", "训练点评提醒"),
     EXTRA_TEACHER_REPLY_IM("EXTRA_TEACHER_REPLY_IM", "训练点评提醒"),
     TEACHER_PUSH_EXTRA_SUBMIT("TEACHER_PUSH_EXTRA_SUBMIT", "训练提交提醒"),

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

@@ -9,6 +9,7 @@ public enum OrderDetailTypeEnum implements BaseEnum<String, OrderDetailTypeEnum>
     MUSICAL("MUSICAL", "乐器"),
     ACCESSORIES("ACCESSORIES", "辅件"),
     TEACHING("TEACHING", "教谱"),
+    STAFF("STAFF", "曲谱"),
     OTHER("OTHER", "其他"),
     COURSE("COURSE", "乐团课"),
     HIGH_ONLINE_COURSE("HIGH_ONLINE_COURSE", "线上基础技能课"),

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

@@ -7,6 +7,8 @@ public enum SellTypeEnum implements BaseEnum<String, SellTypeEnum> {
 	INSTRUMENT("INSTRUMENT", "乐器销售"),
 	ACCESSORIES("ACCESSORIES", "配件销售"),
 	SCHOOL_BUY("SCHOOL_BUY", "学校采购"),
+	TEACHING("TEACHING", "教材销售"),
+	STAFF("STAFF", "曲谱销售"),
 	OTHER("OTHER", "书籍(其他)");
 
 	private String code;

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

@@ -1,10 +1,12 @@
 package com.ym.mec.biz.dal.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.ym.mec.common.enums.BaseEnum;
 
 public enum StandardEnum implements BaseEnum<String, StandardEnum> {
-	NOT_STANDARD("NOT_STANDARD", "未达标"), STANDARD("STANDARD", "已达标"), EXCELLENT("EXCELLENT", "优秀");
+    NOT_START("NOT_START", "未提交"), NOT_STANDARD("NOT_STANDARD", "未达标"), STANDARD("STANDARD", "已达标"), EXCELLENT("EXCELLENT", "优秀");
 
+    @EnumValue
 	private String code;
 
 	private String msg;

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/degree/EDegreeFeeType.java

@@ -0,0 +1,32 @@
+package com.ym.mec.biz.dal.enums.degree;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * 考级费用分类
+ */
+public enum EDegreeFeeType implements BaseEnum<Integer, EDegreeFeeType> {
+
+    GRADE(0, "乐器"),
+    THEORY(1, "乐理");
+
+    @EnumValue
+    private Integer code;
+
+    private String msg;
+
+    EDegreeFeeType(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    @Override
+    public Integer getCode() {
+        return code;
+    }
+}

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/DegreeLevelFeeMapper.java

@@ -0,0 +1,34 @@
+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.entity.DegreeLevelFeeNew;
+import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
+import com.ym.mec.biz.dal.vo.DegreeLevelFeeNewVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import com.ym.mec.biz.dal.wrapper.DegreeLevelFeeWrapper;
+
+/**
+ * 考级等级费用配置
+ * 2023-04-10 10:24:25
+ */
+@Repository
+public interface DegreeLevelFeeMapper extends BaseMapper<DegreeLevelFeeNew> {
+
+	/**
+	 * 分页查询
+	 * @param page IPage<DegreeLevelFeeWrapper.DegreeLevelFee>
+	 * @param param DegreeLevelFeeWrapper.DegreeLevelFeeQuery
+	 * @return List<DegreeLevelFeeWrapper.DegreeLevelFee>
+	 */
+	List<DegreeLevelFeeNewVo> selectPage(@Param("page") IPage<DegreeLevelFeeNewVo> page, @Param("param") DegreeLevelFeeWrapper.DegreeLevelFeeQuery param);
+
+    String checkSave(@Param("subjectId") Integer subjectId,
+					 @Param("degreeType") String degreeType,
+					 @Param("levels") String levels,
+					 @Param("degreeLevelFeeId") Integer degreeLevelFeeId,
+					 @Param("tenantId") Integer tenantId);
+}

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/DegreeMapper.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.Degree;
+import com.ym.mec.biz.dal.wrapper.DegreeWrapper;
+
+/**
+ * 考级信息
+ * 2023-04-10 10:24:25
+ */
+@Repository
+public interface DegreeMapper extends BaseMapper<Degree> {
+
+	/**
+	 * 分页查询
+	 * @param page IPage<DegreeWrapper.Degree>
+	 * @param param DegreeWrapper.DegreeQuery
+	 * @return List<DegreeWrapper.Degree>
+	 */
+	List<Degree> selectPage(@Param("page") IPage<Degree> page, @Param("param") DegreeWrapper.DegreeQuery param);
+
+    void degreeStatusChange();
+}

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/DegreeNewsMapper.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 com.ym.mec.biz.dal.vo.DegreeNewsVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import com.ym.mec.biz.dal.entity.DegreeNews;
+import com.ym.mec.biz.dal.wrapper.DegreeNewsWrapper;
+
+/**
+ * 考级资讯表
+ * 2023-04-10 10:24:25
+ */
+@Repository
+public interface DegreeNewsMapper extends BaseMapper<DegreeNews> {
+
+	/**
+	 * 分页查询
+	 * @param page IPage<DegreeNewsWrapper.DegreeNews>
+	 * @param param DegreeNewsWrapper.DegreeNewsQuery
+	 * @return List<DegreeNewsWrapper.DegreeNews>
+	 */
+	List<DegreeNewsVo> selectPage(@Param("page") IPage<DegreeNewsVo> page, @Param("param") DegreeNewsWrapper.DegreeNewsQuery param);
+	
+}

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseHomeworkQueryInfo.java

@@ -34,6 +34,28 @@ public class CourseHomeworkQueryInfo extends QueryInfo {
 
     private Date classDate;
 
+    @ApiModelProperty("完成状态 false 未完成 true 已完成")
+    private Boolean finishStatus;
+
+    @ApiModelProperty
+    private String versionTag;
+
+    public String getVersionTag() {
+        return versionTag;
+    }
+
+    public void setVersionTag(String versionTag) {
+        this.versionTag = versionTag;
+    }
+
+    public Boolean getFinishStatus() {
+        return finishStatus;
+    }
+
+    public void setFinishStatus(Boolean finishStatus) {
+        this.finishStatus = finishStatus;
+    }
+
     public Date getClassDate() {
         return classDate;
     }

+ 35 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/DegreeQueryInfo.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -66,6 +67,12 @@ public class DegreeQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "乐器", required = true)
     private String subject;
 
+    @ApiModelProperty(value = "声部", required = true)
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "考级类型",required = true)
+    private DegreeTypeEnum type;
+
     /**
      * 考试级别
      */
@@ -136,6 +143,34 @@ public class DegreeQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "0-未支付 1-支付中 2-已支付 2-已退费",required = false)
     private Integer status;
 
+
+    @ApiModelProperty(value = "考级管理ID",required = false)
+    private Integer degreeId;
+
+    public Integer getDegreeId() {
+        return degreeId;
+    }
+
+    public void setDegreeId(Integer degreeId) {
+        this.degreeId = degreeId;
+    }
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public DegreeTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(DegreeTypeEnum type) {
+        this.type = type;
+    }
+
     public String getDegreeType() {
         return degreeType;
     }

+ 68 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseQueryInfo.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.ELessonTrainingType;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -34,6 +35,73 @@ public class ExtraExercilseQueryInfo extends QueryInfo {
 	@ApiModelProperty(value = "是否云教练作业")
 	private Boolean cloudHomeworkFlag;
 
+
+
+    @ApiModelProperty(value = "作业练习类型(HOMEWORK,EXTRACURRICULAR,EXTRA)")
+    private ELessonTrainingType type;
+
+    @ApiModelProperty("完成状态 false 未完成 true 已完成")
+    private Boolean finishStatus;
+
+    @ApiModelProperty("模糊查询 乐团名称/老师")
+    private String search;
+
+    @ApiModelProperty("是否是学员布置")
+    private Boolean studentAssignFlag;
+
+    private Long studentExerciseId;
+
+    private String versionTag;
+
+    public String getVersionTag() {
+        return versionTag;
+    }
+
+    public void setVersionTag(String versionTag) {
+        this.versionTag = versionTag;
+    }
+
+    public Boolean getStudentAssignFlag() {
+        return studentAssignFlag;
+    }
+
+    public void setStudentAssignFlag(Boolean studentAssignFlag) {
+        this.studentAssignFlag = studentAssignFlag;
+    }
+
+    public Long getStudentExerciseId() {
+        return studentExerciseId;
+    }
+
+    public void setStudentExerciseId(Long studentExerciseId) {
+        this.studentExerciseId = studentExerciseId;
+    }
+
+    @Override
+    public String getSearch() {
+        return search;
+    }
+
+    @Override
+    public void setSearch(String search) {
+        this.search = search;
+    }
+
+    public ELessonTrainingType getType() {
+        return type;
+    }
+
+    public void setType(ELessonTrainingType type) {
+        this.type = type;
+    }
+
+    public Boolean getFinishStatus() {
+        return finishStatus;
+    }
+
+    public void setFinishStatus(Boolean finishStatus) {
+        this.finishStatus = finishStatus;
+    }
 	public Boolean getCloudHomeworkFlag() {
 		return cloudHomeworkFlag;
 	}

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseReplyQueryInfo.java

@@ -46,7 +46,17 @@ public class ExtraExercilseReplyQueryInfo extends QueryInfo {
 	@ApiModelProperty(value = "是否云教练作业")
 	private Boolean cloudHomeworkFlag;
 
-	public Boolean getCloudHomeworkFlag() {
+    private String versionTag;
+
+    public String getVersionTag() {
+        return versionTag;
+    }
+
+    public void setVersionTag(String versionTag) {
+        this.versionTag = versionTag;
+    }
+
+    public Boolean getCloudHomeworkFlag() {
 		return cloudHomeworkFlag;
 	}
 

+ 29 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/LessonExaminationQueryInfo.java

@@ -0,0 +1,29 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class LessonExaminationQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "分部编号")
+    private String organId;
+
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "老师编号")
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "布置时间(年月)")
+    private String startTime;
+
+    @ApiModelProperty(value = "班级类型")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "测验是否截止")
+    private Boolean expireFlag;
+
+    private Long lessonExaminationId;
+}

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

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class LessonExaminationQueryInfo1 extends QueryInfo {
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer studentId;
+
+    @ApiModelProperty(value = "布置时间(年月)")
+    private String startTime;
+
+    @ApiModelProperty(value = "测验是否截止")
+    private Boolean expireFlag;
+
+    @ApiModelProperty(value = "是否达标")
+    private Boolean standardFlag;
+}

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/LessonExaminationQueryInfo2.java

@@ -0,0 +1,27 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class LessonExaminationQueryInfo2 extends QueryInfo {
+
+    @ApiModelProperty(value = "分部")
+    private String organId;
+
+    @ApiModelProperty(value = "布置时间(年月日)")
+    private String startTime;
+
+    @ApiModelProperty(value = "布置时间(年月日)")
+    private String endTime;
+
+    @ApiModelProperty(value = "测验是否截止")
+    private Boolean expireFlag;
+
+    @ApiModelProperty(value = "是否达标")
+    private Boolean standardFlag;
+
+    @ApiModelProperty(value = "乐团编号")
+    private String musicGroupId;
+}

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

@@ -0,0 +1,14 @@
+package com.ym.mec.biz.dal.page;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StudentLessonExaminationQueryDto{
+
+    @ApiModelProperty(value = "测验编号")
+    private Long lessonExaminationId;
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer userId;
+}

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

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StudentLessonExaminationQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "测验编号")
+    private Long lessonExaminationId;
+
+    @ApiModelProperty(value = "是否测验")
+    private Boolean trainingFlag;
+
+    @ApiModelProperty(value = "是否达标")
+    private Boolean standardFlag;
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer userId;
+}

+ 57 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/DegreeLevelFeeNewVo.java

@@ -0,0 +1,57 @@
+package com.ym.mec.biz.dal.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.Optional;
+
+/**
+ * 考级等级费用配置
+ * 2023-04-10 10:24:25
+ */
+@Data
+public class DegreeLevelFeeNewVo{
+
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("声部ID")
+    private Integer subjectId;
+
+    @ApiModelProperty("声部")
+    private String subjectName;
+
+    @ApiModelProperty("等级")
+    private Integer level;
+
+    @ApiModelProperty("费用")
+    private BigDecimal fee;
+
+    @ApiModelProperty("考级分类, GRADE,THEORY")
+    private DegreeTypeEnum degreeType;
+
+    @ApiModelProperty("是否上传证书")
+    private Boolean credentials;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("修改时间")
+    private Date updateTime;
+
+    private Integer tenantId;
+
+    public Integer getTenantId() {
+        return Optional.ofNullable(tenantId).orElse(TenantContextHolder.getTenantId());
+    }
+}

+ 85 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/DegreeNewsVo.java

@@ -0,0 +1,85 @@
+package com.ym.mec.biz.dal.vo;
+
+import com.ym.mec.biz.dal.enums.DegreeNewsTypeEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.Optional;
+
+
+/**
+ * 考级资讯表
+ * 2023-04-10 10:24:25
+ */
+@Data
+public class DegreeNewsVo{
+
+    @ApiModelProperty("主键ID") 
+    private Long id;
+
+    @ApiModelProperty("标题")
+    private String title;
+
+    @ApiModelProperty("内容")
+    private String content;
+
+    @ApiModelProperty("封面图片")
+    private String coverImage;
+
+    @ApiModelProperty("咨询类型")
+    private DegreeNewsTypeEnum type;
+
+    @ApiModelProperty("状态(1-可见 0-不可见)")
+    private Boolean status;
+
+    @ApiModelProperty("上线时间")
+    private Date onlineTime;
+
+    @ApiModelProperty("下线时间")
+    private Date offlineTime;
+
+    @ApiModelProperty("备注")
+    private String memo;
+
+    @ApiModelProperty("链接地址")
+    private String linkUrl;
+
+    @ApiModelProperty("跳转类型_bank,_slef")
+    private String hrefTarget;
+
+    @ApiModelProperty("顺序号")
+    private Integer order;
+
+    @ApiModelProperty("删除标识")
+    private Boolean delFlag;
+
+    @ApiModelProperty("机构ID")
+    private Integer tenantId;
+
+    @ApiModelProperty("所属分部")
+    private String organIds;
+
+    @ApiModelProperty("所属分部")
+    private String organNames;
+
+    @ApiModelProperty("视频封面")
+    private String videoCoverImage;
+
+    @ApiModelProperty("操作人")
+    private Integer operatorId;
+
+    @ApiModelProperty("操作人")
+    private String operatorName;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    public Integer getTenantId() {
+        return Optional.ofNullable(tenantId).orElse(TenantContextHolder.getTenantId());
+    }
+}

+ 127 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeLevelFeeWrapper.java

@@ -0,0 +1,127 @@
+package com.ym.mec.biz.dal.wrapper;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.biz.dal.enums.degree.EDegreeFeeType;
+import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+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;
+
+/**
+ * 考级等级费用配置
+ * 2023-04-10 10:24:25
+ */
+@ApiModel(value = "DegreeLevelFeeWrapper对象", description = "考级等级费用配置查询对象")
+public class DegreeLevelFeeWrapper {
+
+    @Data
+	@Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" DegreeLevelFeeQuery-考级等级费用配置")
+    public static class DegreeLevelFeeQuery implements QueryInfo {
+    
+    	@ApiModelProperty("当前页")
+        private Integer page;
+        
+        @ApiModelProperty("分页行数")
+        private Integer rows;
+        
+        @ApiModelProperty("关键字匹配")
+		private String keyword;
+
+        @ApiModelProperty("声部")
+        private Integer subjectId;
+
+        @ApiModelProperty("级别")
+        private Integer level;
+
+        @ApiModelProperty("考级分类, GRADE,THEORY")
+        private DegreeTypeEnum degreeType;
+
+        @ApiModelProperty("是否上传证件")
+        private Boolean credentials;
+
+        private Integer tenantId = TenantContextHolder.getTenantId();
+
+        public String getKeyword() {
+            return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
+        }
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static DegreeLevelFeeQuery from(String json) {
+            return JSON.parseObject(json, DegreeLevelFeeQuery.class);
+        }
+    }  
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+	@ApiModel(" DegreeLevelFee-考级等级费用配置")
+    public static class DegreeLevelFee {
+
+        @ApiModelProperty("考级费用配置")
+        private List<LevelFeeConfig> gradeFeeConfigs;
+
+        @ApiModelProperty("乐理费用配置")
+        private List<LevelFeeConfig> theoryFeeConfigs;
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static DegreeLevelFee from(String json) {
+            return JSON.parseObject(json, DegreeLevelFee.class);
+        }
+	}
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" LevelFeeConfig-考级等级费用配置")
+    public static class LevelFeeConfig implements Serializable {
+
+        @ApiModelProperty("主键ID")
+        private Integer id;
+
+        @ApiModelProperty("声部ID")
+        private Integer subjectId;
+
+        @ApiModelProperty("声部名称")
+        private String subjectName;
+
+        @ApiModelProperty("等级")
+        private Integer level;
+
+        @ApiModelProperty("费用")
+        private BigDecimal fee;
+
+        @ApiModelProperty("考级分类, GRADE,THEORY")
+        private EDegreeFeeType degreeType;
+
+        @ApiModelProperty("上传证书")
+        private Boolean credentials;
+
+        @ApiModelProperty("声部价格配置")
+        private List<LevelFeeConfig> subjectFeeConfigs;
+    }
+
+}

+ 83 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeNewsWrapper.java

@@ -0,0 +1,83 @@
+package com.ym.mec.biz.dal.wrapper;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.common.tenant.TenantContextHolder;
+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-04-10 10:24:25
+ */
+@ApiModel(value = "DegreeNewsWrapper对象", description = "考级资讯表查询对象")
+public class DegreeNewsWrapper {
+
+    @Data
+	@Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" DegreeNewsQuery-考级资讯表")
+    public static class DegreeNewsQuery implements QueryInfo {
+    
+    	@ApiModelProperty("当前页")
+        private Integer page;
+        
+        @ApiModelProperty("分页行数")
+        private Integer rows;
+        
+        @ApiModelProperty("关键字匹配")
+		private String keyword;
+
+        @ApiModelProperty("用户所在机构")
+        private Integer organId;
+
+        @ApiModelProperty("用户所在分部")
+        private String defaultOrganId;
+
+        @ApiModelProperty("是否启用")
+        private Boolean status;
+
+        @ApiModelProperty("咨询类型")
+        private String type;
+
+        @ApiModelProperty("用户机构ID")
+        private Integer tenantId = TenantContextHolder.getTenantId();
+
+        @ApiModelProperty(value = "排序方式", hidden = true)
+        private Boolean sortedTime;
+
+        public String getKeyword() {
+            return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
+        }
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static DegreeNewsQuery from(String json) {
+            return JSON.parseObject(json, DegreeNewsQuery.class);
+        }
+    }  
+
+	@ApiModel(" DegreeNews-考级资讯表")
+    public static class DegreeNews {
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static DegreeNews from(String json) {
+            return JSON.parseObject(json, DegreeNews.class);
+        }
+	}
+
+}

+ 279 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeWrapper.java

@@ -0,0 +1,279 @@
+package com.ym.mec.biz.dal.wrapper;
+
+import com.alibaba.fastjson.JSON;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.enums.EDegreeStatus;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+import org.joda.time.DateTime;
+import org.joda.time.Days;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * 考级信息
+ * 2023-04-10 10:24:25
+ */
+@ApiModel(value = "DegreeWrapper对象", description = "考级信息查询对象")
+public class DegreeWrapper {
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" DegreeQuery-考级信息")
+    public static class DegreeQuery implements QueryInfo {
+
+        @ApiModelProperty("当前页")
+        private Integer page;
+        
+        @ApiModelProperty("分页行数")
+        private Integer rows;
+        
+        @ApiModelProperty("考级名称/编号")
+        private String keyword;
+
+
+        @ApiModelProperty("开始时间")
+        private Date startTime;
+
+        @ApiModelProperty("结束时间")
+        private Date endTime;
+
+        @ApiModelProperty("报名状态 NOT_START:未开始,START:报名中,END:报名结束")
+        private EDegreeStatus status;
+
+        @ApiModelProperty("机构ID")
+        private Integer tenantId = TenantContextHolder.getTenantId();
+
+        @ApiModelProperty("城市分部ID")
+        private Integer organId;
+
+        @ApiModelProperty("报名状态集合 NOT_START:未开始,START:报名中,END:报名结束")
+        private List<EDegreeStatus> degreeStatuses;
+
+        public String getKeyword() {
+            return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
+        }
+        
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static DegreeQuery from(String json) {
+            return JSON.parseObject(json, DegreeQuery.class);
+        }
+
+        public DegreeQuery page(Integer page) {
+            this.page = page;
+            return this;
+        }
+
+        public DegreeQuery rows(Integer rows) {
+            this.rows = rows;
+            return this;
+        }
+
+        public DegreeQuery tenantId(Integer tenantId) {
+            this.tenantId = tenantId;
+            return this;
+        }
+
+        public DegreeQuery organId(Integer organId) {
+            this.organId = organId;
+            return this;
+        }
+
+        public DegreeQuery degreeStatuses(List<EDegreeStatus> degreeStatuses) {
+            this.degreeStatuses = degreeStatuses;
+            return this;
+        }
+    }
+
+    @Data
+    @ApiModel(" Degree-考级信息")
+    public static class Degree {
+
+
+        @ApiModelProperty("主键ID")
+        private Long id;
+
+        @ApiModelProperty("机构ID")
+        private Integer tenantId;
+
+        @ApiModelProperty(value = "分部ID",required = true)
+        @NotBlank(message = "分部ID不能为空")
+        private String organIds;
+
+        @ApiModelProperty("分部名称")
+        private List<String> organNames;
+
+        @ApiModelProperty(value = "考级名称",required = true)
+        @NotBlank(message = "考级名称不能为空")
+        private String name;
+
+        @ApiModelProperty(value = "报名开始时间",required = true)
+        @NotNull(message = "报名开始时间不能为空")
+        private Date startTime;
+
+        @ApiModelProperty(value = "报名结束时间",required = true)
+        @NotNull(message = "报名结束时间不能为空")
+        private Date endTime;
+
+        @ApiModelProperty(value = "登记时间",required = true)
+//        @NotNull(message = "登记时间不能为空")
+        private Date registrationTime;
+
+        @ApiModelProperty("报名人次")
+        private Integer registerTotal;
+
+        @ApiModelProperty("报名人数")
+        private Integer registerNum;
+
+        @ApiModelProperty("购买课程")
+        private Integer purchaseCourse;
+
+        @ApiModelProperty("报名状态 NOT_START:未开始,START:报名中,END:报名结束")
+        private EDegreeStatus status;
+
+        @ApiModelProperty("倒计时开始天数")
+        private Integer startDays;
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static Degree from(String json) {
+            return JSON.parseObject(json, Degree.class);
+        }
+
+        public Integer getStartDays() {
+            if (Objects.nonNull(getStartTime()) && EDegreeStatus.NOT_START == getStatus()) {
+
+                DateTime now = DateTime.now().withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0).withMillisOfSecond(0);
+                // 计算与当前时间相差天数
+                return Days.daysBetween(now, new DateTime(getStartTime())).getDays();
+            }
+            return Optional.ofNullable(startDays).orElse(0);
+        }
+    }
+
+    @Data
+    @ApiModel(" DegreeStatistical-考级信息统计")
+    public static class DegreeStatistical {
+
+        @ApiModelProperty("id")
+        private Long id;
+
+        @ApiModelProperty("报名人次")
+        private Integer registerTotal;
+
+        @ApiModelProperty("报名人数")
+        private Integer registerNum;
+
+        @ApiModelProperty("购课人次")
+        private Integer purchaseCourse;
+
+        @ApiModelProperty("实收金额")
+        private BigDecimal actualAmount;
+
+        @ApiModelProperty("考级收入")
+        private BigDecimal degreeIncome;
+
+
+        @ApiModelProperty("课程收入")
+        private BigDecimal courseIncome;
+
+    }
+
+    @Data
+    @ApiModel(" Degree-考级信息")
+    public static class StudentDegreeInfo {
+
+
+        @ApiModelProperty("主键ID")
+        private Long id;
+
+        @ApiModelProperty("机构ID")
+        private Integer tenantId;
+
+        @ApiModelProperty(value = "分部ID")
+        private String organIds;
+
+        @ApiModelProperty("分部名称")
+        private List<Organization> organs;
+
+        @ApiModelProperty(value = "考级名称")
+        private String name;
+
+        @ApiModelProperty(value = "报名开始时间")
+        private Date startTime;
+
+        @ApiModelProperty(value = "报名结束时间")
+        private Date endTime;
+
+        @ApiModelProperty(value = "登记时间")
+        private Date registrationTime;
+
+        @ApiModelProperty("报名状态 NOT_START:未开始,START:报名中,END:报名结束")
+        private EDegreeStatus status;
+
+        @ApiModelProperty("考级简章ID")
+        private Long examinationBriefId;
+
+        @ApiModelProperty("考级城市分部")
+        private List<DegreeCity> degreeCities;
+
+        @ApiModelProperty("倒计时开始天数")
+        private Integer startDays;
+
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static StudentDegreeInfo from(String json) {
+            return JSON.parseObject(json, StudentDegreeInfo.class);
+        }
+
+        public Integer getStartDays() {
+            if (Objects.nonNull(getStartTime()) && EDegreeStatus.NOT_START == getStatus()) {
+
+                DateTime now = DateTime.now().withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0).withMillisOfSecond(0);
+                // 计算与当前时间相差天数
+                return Days.daysBetween(now, new DateTime(getStartTime())).getDays();
+            }
+            return Optional.ofNullable(startDays).orElse(0);
+        }
+    }
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel("考级城市分部")
+    public static class DegreeCity implements Serializable {
+
+        @ApiModelProperty("主键ID")
+        private Integer id;
+
+        @ApiModelProperty(value = "机构名称")
+        private String name;
+
+        @ApiModelProperty(value = "区域编码")
+        private Integer areaId;
+    }
+}

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

@@ -596,4 +596,11 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
 
     //修改班级基本信息
     int updateClassGroup(ClassGroup classGroup);
+
+    /**
+     * 查询班级列表
+     *
+     * @param classIds 班级id列表
+     */
+    List<ClassGroup> queryByIds(List<Integer> classIds);
 }

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseHomeworkService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
 import com.ym.mec.biz.dal.dto.WebCourseHomeworkListDto;
 import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.page.CourseHomeWorkTemplateQueryInfo;
@@ -55,4 +56,18 @@ public interface CourseHomeworkService extends BaseService<Long, CourseHomework>
 	 * @return
 	 */
 	PageInfo<WebCourseHomeworkListDto> queryHomePage(CourseHomeWorkTemplateQueryInfo queryInfo);
+
+    /**
+     * 获取课后作业详情
+     *
+     * @param courseScheduleId 课程id
+     */
+    CourseHomeworkWrapper.CourseHomeworkList findCourseHomeworkDetail(Integer courseScheduleId);
+
+    /**
+     * 课外作业详情
+     *
+     * @param extraId 作业id
+     */
+    CourseHomeworkWrapper.CourseHomeworkList findCourseExtraHomeworkDetail(Integer extraId);
 }

+ 50 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/DegreeLevelFeeService.java

@@ -0,0 +1,50 @@
+package com.ym.mec.biz.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.entity.DegreeLevelFeeNew;
+import com.ym.mec.biz.dal.vo.DegreeLevelFeeNewVo;
+import com.ym.mec.biz.dal.wrapper.DegreeLevelFeeWrapper;
+import com.ym.mec.biz.dal.entity.DegreeLevelFee;
+
+import java.util.List;
+
+/**
+ * 考级等级费用配置
+ * 2023-04-10 10:24:25
+ */
+public interface DegreeLevelFeeService extends IService<DegreeLevelFeeNew>  {
+
+	/**
+     * 查询详情
+     * @param id 详情ID
+     * @return DegreeLevelFee
+     */
+    DegreeLevelFeeNew detail(Long id);
+
+    /**
+     * 分页查询
+     * @param page IPage<DegreeLevelFee>
+     * @param query DegreeLevelFeeWrapper.DegreeLevelFeeQuery
+     * @return IPage<DegreeLevelFee>
+     */
+    IPage<DegreeLevelFeeNewVo> selectPage(IPage<DegreeLevelFeeNewVo> page, DegreeLevelFeeWrapper.DegreeLevelFeeQuery query);
+
+    /**
+     * 机构考级价格配置
+     * @param tenantId 机构ID
+     * @return DegreeLevelFeeWrapper.DegreeLevelFee
+     */
+    DegreeLevelFeeWrapper.DegreeLevelFee degreeLevelFeeConfig(Integer tenantId);
+
+    /**
+    * @description: 批量新增
+     * @param degreeLevelFees
+    * @return void
+    * @author zx
+    * @date 2023/4/11 19:43
+    */
+    void batchSave(List<DegreeLevelFeeNew> degreeLevelFees);
+
+    void update(DegreeLevelFeeNew degreeLevelFee);
+}

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/DegreeNewsService.java

@@ -0,0 +1,44 @@
+package com.ym.mec.biz.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.vo.DegreeNewsVo;
+import com.ym.mec.biz.dal.wrapper.DegreeNewsWrapper;
+import com.ym.mec.biz.dal.entity.DegreeNews;
+
+/**
+ * 考级资讯表
+ * 2023-04-10 10:24:25
+ */
+public interface DegreeNewsService extends IService<DegreeNews>  {
+
+	/**
+     * 查询详情
+     * @param id 详情ID
+     * @return DegreeNews
+     */
+	DegreeNews detail(Long id);
+
+    /**
+     * 分页查询
+     * @param page IPage<DegreeNews>
+     * @param query DegreeNewsWrapper.DegreeNewsQuery
+     * @return IPage<DegreeNews>
+     */
+    IPage<DegreeNewsVo> selectPage(IPage<DegreeNewsVo> page, DegreeNewsWrapper.DegreeNewsQuery query);
+	
+    /**
+     * 添加
+     * @param degreeNews DegreeNewsWrapper.DegreeNews
+     * @return Boolean
+     */
+     Boolean add(DegreeNewsWrapper.DegreeNews degreeNews);   
+
+    /**
+     * 更新
+     * @param degreeNews DegreeNewsWrapper.DegreeNews
+     * @return Boolean
+     */
+     Boolean update(DegreeNewsWrapper.DegreeNews degreeNews);
+     
+}

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.DegreeRegistrationActivityDto;
 import com.ym.mec.biz.dal.dto.PageInfoDegree;
 import com.ym.mec.biz.dal.entity.DegreeRegistration;
@@ -16,15 +17,13 @@ import java.util.Set;
 
 public interface DegreeRegistrationService extends BaseService<Integer, DegreeRegistration> {
 
-    String ACTIVITY_TAG = "DEGREE_REGISTRATION_2020_12";
-
     HttpResponseResult pay(DegreeRegistrationActivityDto degreeRegistration) throws Exception;
 
     Boolean updateStatus(StudentPaymentOrder order);
 
     PageInfoDegree<DegreeRegistration> getPageList(DegreeQueryInfo queryInfo);
 
-    HttpResponseResult check(DegreeRegistrationActivityDto degreeRegistration);
+    HttpResponseResult check(DegreeRegistrationActivityDto degreeRegistration, SysUser sysUser);
 
     //考级退费
     int refund(Integer degreeRegistrationId);

+ 60 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/DegreeService.java

@@ -0,0 +1,60 @@
+package com.ym.mec.biz.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.wrapper.DegreeWrapper;
+import com.ym.mec.biz.dal.entity.Degree;
+
+/**
+ * 考级信息
+ * 2023-04-10 10:24:25
+ */
+public interface DegreeService extends IService<Degree>  {
+
+	/**
+     * 查询详情
+     * @param id 详情ID
+     * @return Degree
+     */
+	Degree detail(Long id);
+
+    /**
+     * 分页查询
+     * @param page IPage<Degree>
+     * @param query DegreeWrapper.DegreeQuery
+     * @return IPage<Degree>
+     */
+    IPage<DegreeWrapper.Degree> selectPage(IPage<Degree> page, DegreeWrapper.DegreeQuery query);
+	
+    /**
+     * 添加
+     * @param degree DegreeWrapper.Degree
+     * @return Boolean
+     */
+     Boolean add(DegreeWrapper.Degree degree);   
+
+    /**
+     * 更新
+     * @param degree DegreeWrapper.Degree
+     * @return Boolean
+     */
+     Boolean update(DegreeWrapper.Degree degree);
+
+    /**
+     * 统计
+     * @param id 详情ID
+     */
+    DegreeWrapper.DegreeStatistical statistic(Long id);
+
+    /**
+     * 学生考级信息查询
+     * @param id 考级ID
+     * @return DegreeWrapper.StudentDegreeInfo
+     */
+    DegreeWrapper.StudentDegreeInfo studentDegreeInfoById(Long id);
+
+    /**
+     * 考级状态变更
+     */
+    void degreeStatusChange();
+}

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesReplyService.java

@@ -1,8 +1,10 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
+import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
 import com.ym.mec.biz.dal.dto.EduHomeworkCardDto;
 import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
+import com.ym.mec.biz.dal.dto.StudentHomeworkRecordDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
@@ -63,4 +65,15 @@ public interface ExtracurricularExercisesReplyService extends BaseService<Long,
     PageInfo<ExtraExerciseStudentsDto> findExtraExercises(ExtraExercilseReplyQueryInfo queryInfo);
 
     PageInfo<EduHomeworkCardDto> getEduHomeworkList(StudentCourseHomeWorkQueryInfo queryInfo);
+
+    /**
+     * 查询学生课外训练情况
+     *
+     */
+    PageInfo<StudentHomeworkRecordDto> findStudentExtraExercisesV2(ExtraExercilseQueryInfo queryInfo);
+
+    /**
+     * 查询学生课外训练详情
+     */
+    CourseHomeworkWrapper.CourseHomeworkList findStudentExtraExerciseDetailV2(Long studentExerciseId);
 }

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.dto.TeacherHomeworkListDto;
 import com.ym.mec.biz.dal.dto.WebCourseHomeworkListDto;
@@ -61,4 +62,6 @@ public interface ExtracurricularExercisesService extends BaseService<Long, Extra
      * @return
      */
     PageInfo<TeacherHomeworkListDto> findExtraExercilsesHomeworks(ExtraExercilseQueryInfo queryInfo);
+
+    PageInfo<CourseHomeworkWrapper.WebExtraCourseHomework> findExtraExercilsesV2(ExtraExercilseQueryInfo queryInfo);
 }

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

@@ -4,10 +4,9 @@ import com.ym.mec.biz.dal.dto.ImGroupDto;
 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.page.GroupMemberQueryInfo;
-import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.Arrays;
 import java.util.List;
 
 public interface ImGroupService extends BaseService<String, ImGroup> {
@@ -93,4 +92,8 @@ public interface ImGroupService extends BaseService<String, ImGroup> {
 	* @date 2022/8/8 10:10
 	*/
 	List<NameDto> queryDetail(List<NameDto> nameDto);
+
+    List<ImGroup> queryByUserIdV2(Integer userId, String search, String groupType, String musicGroupId, String classType);
+
+    List<ImGroupMemberDto> queryMemberByIdV2(String imGroupId,String search,Integer subjectId,Boolean vipFlag);
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
 
@@ -80,4 +81,6 @@ public interface ImUserFriendService extends BaseService<Long, ImUserFriend> {
 	 * @author zouxuan
 	 */
 	void refreshGroupImUserFriend(String musicGroupId,GroupType groupType);
+
+    List<ImUserFriendDto> queryFriendListByUserIdV2(Integer userId, String search, String musicGroupId, Integer subjectId, Boolean vipFlag);
 }

+ 38 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/LessonExaminationService.java

@@ -0,0 +1,38 @@
+package com.ym.mec.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.dao.LessonExaminationDao;
+import com.ym.mec.biz.dal.dto.LessonExaminationResultDto;
+import com.ym.mec.biz.dal.dto.LessonExaminationResultDto1;
+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.page.LessonExaminationQueryInfo;
+import com.ym.mec.biz.dal.page.LessonExaminationQueryInfo1;
+import com.ym.mec.common.page.PageInfo;
+
+import java.util.List;
+
+/**
+ * 进度评测表(LessonExamination)表服务接口
+ *
+ * @author zx
+ * @since 2023-04-03 18:20:40
+ */
+public interface LessonExaminationService extends IService<LessonExamination> {
+
+    LessonExaminationDao getDao();
+
+    void publish(LessonExaminationSaveDto lessonExaminationSaveDto);
+
+    PageInfo<LessonExaminationResultDto> queryPage(LessonExaminationQueryInfo queryInfo);
+
+    PageInfo<LessonExaminationResultDto1> queryPageByStudent(LessonExaminationQueryInfo1 queryInfo);
+
+    LessonExaminationResultDto1 getOne(Integer userId, Long lessonExaminationId);
+
+    void pushEndMsg();
+
+    List<Subject> querySubject(Long lessonExaminationId);
+}
+

+ 45 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/StudentCourseHomeworkService.java

@@ -1,8 +1,8 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
+import com.ym.mec.biz.dal.enums.ELessonTrainingType;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseHomeWorkQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -71,7 +71,7 @@ public interface StudentCourseHomeworkService extends BaseService<Long, StudentC
      * @param queryInfo:
      * @return com.ym.mec.common.page.PageInfo
      */
-    PageInfo findStudentHomeworkRecord(CourseHomeworkQueryInfo queryInfo);
+    PageInfo<StudentHomeworkRecordDto> findStudentHomeworkRecord(CourseHomeworkQueryInfo queryInfo);
 
     /**
      * 提交作业
@@ -107,4 +107,47 @@ public interface StudentCourseHomeworkService extends BaseService<Long, StudentC
     PageInfo<EduHomeworkStatDto> queryEduHomeworkStatList(StudentCourseHomeWorkQueryInfo queryInfo);
 
     List<EduHomeworkStatDto> queryEduHomeworkStatDetail(StudentCourseHomeWorkQueryInfo queryInfo);
+
+    /**
+     *  根据课程计划id查询学生作业列表
+     *
+     * @param courseScheduleIds 课程计划id列表
+     */
+    List<StudentCourseHomework> queryByCourseScheduleIds(List<Integer> courseScheduleIds);
+
+    List<StudentCourseHomework> findStudentCourseHomeworkByCourseV2(StudentLessonTrainingDetailWrapper.StudentLessonTrainingQuery query);
+
+    List<StudentCourseHomework> findExtraExerciseStudentsV2(StudentLessonTrainingDetailWrapper.StudentLessonTrainingQuery query);
+
+    /**
+     * 学生端查看练习详情
+     *
+     * @return
+     */
+    CourseHomeworkWrapper.CourseHomeworkList findStudentHomeworkRecordDetail(CourseHomeworkWrapper.StudentCourseHomeworkQuery query);
+
+    /**
+     * 添加学生作业练习记录
+     */
+    Boolean addStudentHomeworkRecord(CourseHomeworkWrapper.AddStudentHomeworkRecord record);
+
+    /**
+     * 老师查看学生作业练习详情
+     *
+     * @param courseScheduleId 课程计划id
+     * @param userId 学生id
+     * @param type 作业类型
+     */
+    StudentLessonTrainingDetailWrapper.StudentLessonTraining findCourseHomeworkStudentDetailPublicV2(Long courseScheduleId, Long userId, ELessonTrainingType type);
+
+    /**
+     * 老师查看学生作业练习详情
+     *
+     * @param courseScheduleId 课程计划id
+     * @param userId 学生id
+     * @param type 作业类型
+     */
+    StudentLessonTrainingDetailWrapper.StudentLessonTraining findExtracurricularExercisesDetailPublicV2(Long courseScheduleId, Long userId, ELessonTrainingType type);
+
+    void pushEndMsg();
 }

部分文件因为文件数量过多而无法显示