Selaa lähdekoodia

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

zouxuan 1 vuosi sitten
vanhempi
commit
e4e35ea2d8

+ 25 - 2
mec-application/src/main/resources/logback-dev.xml

@@ -1,7 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-    <property name="LOG_HOME" value="/mdata/mec-dev/logs/app-%d{yyyy-MM-dd_HH}-%i.log" />
+    <!--Spring读取配置参数-->
+    <!--<springProperty scope="context" name="LOG_PATH" source="logging.file.path"/>
+    <springProperty scope="context" name="LOG_HOME" source="spring.application.name"/>-->
+    <property name="FILE_NAME" value="app" />
+
+    <property name="FILE_LOG_HOME" value="/mdata/mec-dev/logs/app-%d{yyyy-MM-dd_HH}-%i.log" />
     <property name="CONSOLE_LOG_PATTERN"
               value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 
@@ -14,7 +19,7 @@
     <appender name="file"
               class="ch.qos.logback.core.rolling.RollingFileAppender">
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <FileNamePattern>${LOG_HOME}</FileNamePattern>
+            <FileNamePattern>${FILE_LOG_HOME}</FileNamePattern>
             <MaxHistory>90</MaxHistory>
             <TimeBasedFileNamingAndTriggeringPolicy
                     class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
@@ -27,6 +32,19 @@
         </encoder>
     </appender>
 
+    <appender name="FeignAccessFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_HOME}/${FILE_NAME}-feign.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/%d{yyyyMM,aux}/feign-%d{yyyyMMdd}-%i.log.gz</fileNamePattern>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>1GB</totalSizeCap>
+            <maxFileSize>20 MB</maxFileSize>
+        </rollingPolicy>
+        <encoder charset="UTF-8">
+            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] %p %c{0} %m%n</pattern>
+        </encoder>
+    </appender>
+
     <logger name="com.ym.app" level="INFO" />
 <!--    <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="trace" />-->
 
@@ -35,4 +53,9 @@
         <appender-ref ref="stdout" />
         <appender-ref ref="file" />
     </root>
+
+    <!--总控平台Feign接口日志-->
+    <logger name="com.dayaedu.cbs.openfeign.client" level="DEBUG" additivity="false">
+        <appender-ref ref="FeignAccessFile" />
+    </logger>
 </configuration>

+ 23 - 0
mec-application/src/main/resources/logback-spring.xml

@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
+    <property name="FILE_NAME" value="app" />
+
 <!--    <property name="LOG_HOME" value="${LOG_HOME}"/>-->
     <property name="CONSOLE_LOG_PATTERN"
               value="[%X{username} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n"/>
@@ -27,6 +29,19 @@
         </encoder>
     </appender>
 
+    <appender name="FeignAccessFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_HOME}/${FILE_NAME}-feign.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/%d{yyyyMM,aux}/feign-%d{yyyyMMdd}-%i.log.gz</fileNamePattern>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>1GB</totalSizeCap>
+            <maxFileSize>20 MB</maxFileSize>
+        </rollingPolicy>
+        <encoder charset="UTF-8">
+            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] %p %c{0} %m%n</pattern>
+        </encoder>
+    </appender>
+
     <appender name="messagefile"
               class="ch.qos.logback.core.rolling.RollingFileAppender">
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
@@ -120,6 +135,10 @@
         <Logger name="org.redisson" level="INFO" additivity="false">
             <appender-ref ref="file" level="INFO" />
         </Logger>
+        <!--总控平台Feign接口日志-->
+        <logger name="com.dayaedu.cbs.openfeign.client" level="DEBUG" additivity="false">
+            <appender-ref ref="FeignAccessFile" />
+        </logger>
     </springProfile>
     <!--生产环境:输出到文件 -->
     <springProfile name="pre">
@@ -127,6 +146,10 @@
             <appender-ref ref="file"/>
             <appender-ref ref="plumelog"/>
         </root>
+        <!--总控平台Feign接口日志-->
+        <logger name="com.dayaedu.cbs.openfeign.client" level="DEBUG" additivity="false">
+            <appender-ref ref="FeignAccessFile" />
+        </logger>
     </springProfile>
 
 </configuration>

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

@@ -45,6 +45,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     int batchAddCourseSchedules(List<CourseSchedule> courseSchedules);
 
+    int batchAddCourseSchedulesHasId(List<CourseSchedule> courseSchedules);
+
     int batchInsert(List<CourseSchedule> courseSchedules);
 
     /**

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

@@ -137,6 +137,8 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 */
 	void batchAddCourseSchedule(List<CourseSchedule> courseSchedules);
 
+	void batchAddCourse(List<CourseSchedule> courseSchedules);
+
 	/**
 	 * @describe 创建乐团课课程计划
 	 * @author Joburgess

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

@@ -2489,7 +2489,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             //冲突校验
             courseScheduleList = autoAdjust(classGroup4MixDto, courseScheduleList, classAdjust);
 
-            courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
+            courseScheduleService.batchAddCourse(courseScheduleList);
 
             //计算每节课的课酬
             List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();

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

@@ -1014,7 +1014,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         }
 //        checkNewCourseSchedules(courseSchedules, false,false);
         createCourseScheduleName(courseSchedules);
-        courseScheduleDao.batchAddCourseSchedules(courseSchedules);
+		this.batchAddCourse(courseSchedules);
 		courseScheduleModifyLogService.pushSchoolCourseCreate(courseSchedules.get(0));
     }
 
@@ -1026,11 +1026,21 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         }
         checkNewCourseSchedules(courseSchedules, false,false);
         createCourseScheduleName(courseSchedules);
-		courseScheduleDao.batchAddCourseSchedules(courseSchedules);
+		this.batchAddCourse(courseSchedules);
 		courseScheduleModifyLogService.pushSchoolCourseCreate(courseSchedules.get(0));
     }
 
-    @Override
+	@Override
+	public void batchAddCourse(List<CourseSchedule> courseSchedules) {
+		CourseSchedule courseSchedule = courseSchedules.get(0);
+		if(courseSchedule.getId() == null){
+			courseScheduleDao.batchAddCourseSchedules(courseSchedules);
+		}else {
+			courseScheduleDao.batchAddCourseSchedulesHasId(courseSchedules);
+		}
+	}
+
+	@Override
     @Transactional(rollbackFor = Exception.class)
     public void batchUpdateCourseSchedule(List<CourseSchedule> courseSchedules, String musicGroupID) {
         if (Objects.isNull(courseSchedules) && courseSchedules.size() <= 0) {

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

@@ -230,7 +230,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             errMessage += courseTime;
             return BaseController.failed(HttpStatus.FOUND, errMessage);
         }
-        courseScheduleDao.batchAddCourseSchedules(newCourses);
+        courseScheduleService.batchAddCourse(newCourses);
 
         for (CourseSchedule courseSchedule : newCourses) {
             //课程与老师薪水表

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

@@ -383,7 +383,7 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
             courseSchedule.setIsLock(1);
             courseSchedule.setOrganId(practiceGroupBuyParams.getOrganId());
         }
-        courseScheduleDao.batchAddCourseSchedules(practiceCourses);
+        courseScheduleService.batchAddCourse(practiceCourses);
         TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroupBuyParams.getUserId(),practiceCourseMinutes);
         BigDecimal teacherDefaultSalary=null;
         if(Objects.nonNull(teacherDefaultPracticeGroupSalary)){
@@ -715,7 +715,7 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
             courseSchedule.setIsLock(1);
             courseSchedule.setOrganId(practiceGroupBuyParams.getOrganId());
         }
-        courseScheduleDao.batchAddCourseSchedules(practiceCourses);
+        courseScheduleService.batchAddCourse(practiceCourses);
         TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroupBuyParams.getUserId(),practiceCourseMinutes);
         BigDecimal teacherDefaultSalary=null;
         if(PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroupBuyParams.getType())){
@@ -1446,7 +1446,7 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
             practiceCourses.add(courseSchedule);
         }
         practiceCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
-        courseScheduleDao.batchAddCourseSchedules(practiceCourses);
+        courseScheduleService.batchAddCourse(practiceCourses);
 
         BigDecimal teacherDefaultSalary=new BigDecimal(16.67);
         for (CourseSchedule courseSchedule : practiceCourses) {

+ 7 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1989,14 +1989,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //删除续费记录
         musicGroupStudentFeeDao.deleteByMusicGroupId(musicGroupId, null);
 
-        // 删除课表
-        courseScheduleDao.deleteCourseSchedulesByMusicGroupID(musicGroupId, GroupType.MUSIC.getCode());
-        // 删除每节课的课酬
-        courseScheduleStudentPaymentService.deleteByMusicGroupId(musicGroupId, GroupType.MUSIC);
-        courseScheduleTeacherSalaryDao.deleteByMusicGroupId(musicGroupId, GroupType.MUSIC.getCode());
-
-        //删除考勤
-        teacherAttendanceDao.deleteByMusicGroupId(musicGroupId, GroupType.MUSIC.getCode());
+		// 删除每节课的课酬
+		courseScheduleStudentPaymentService.deleteByMusicGroupId(musicGroupId, GroupType.MUSIC);
+		courseScheduleTeacherSalaryDao.deleteByMusicGroupId(musicGroupId, GroupType.MUSIC.getCode());
+		//删除考勤
+		teacherAttendanceDao.deleteByMusicGroupId(musicGroupId, GroupType.MUSIC.getCode());
+		// 删除课表
+		courseScheduleDao.deleteCourseSchedulesByMusicGroupID(musicGroupId, GroupType.MUSIC.getCode());
 
         /*// 查询已缴费信息
         studentPaymentOrders = studentPaymentOrderDao.queryByDealStatus(musicGroupId, OrderTypeEnum.APPLY, SUCCESS);

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

@@ -191,7 +191,7 @@ public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
             courseSchedule.setIsLock(0);
             courseSchedule.setOrganId(student.getOrganId());
         }
-        courseScheduleDao.batchAddCourseSchedules(courses);
+        courseScheduleService.batchAddCourse(courses);
         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = teacherDefaultMusicGroupSalaryDao.findByTeacherAndCourseType(onlineMusicGroupCourseInfo.getTeacherId(), CourseSchedule.CourseScheduleType.MUSIC_NETWORK.getCode());
         if(Objects.isNull(teacherDefaultMusicGroupSalary)){
             throw new BizException("请设置教师课酬");

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

@@ -2493,7 +2493,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             courseSchedule.setIsLock(1);
             courseSchedule.setOrganId(practiceGroupBuyParams.getOrganId());
         }
-        courseScheduleDao.batchAddCourseSchedules(practiceCourses);
+        courseScheduleService.batchAddCourse(practiceCourses);
         TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroupBuyParams.getUserId(), practiceCourseMinutes);
         BigDecimal teacherDefaultSalary = null;
         if (Objects.nonNull(teacherDefaultPracticeGroupSalary)) {
@@ -2929,7 +2929,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             courseSchedule.setIsLock(1);
             courseSchedule.setOrganId(practiceGroupBuyParams.getOrganId());
         }
-        courseScheduleDao.batchAddCourseSchedules(practiceCourses);
+        courseScheduleService.batchAddCourse(practiceCourses);
         TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroupBuyParams.getUserId(), practiceCourseMinutes);
         BigDecimal teacherDefaultSalary = null;
         if (Objects.nonNull(teacherDefaultPracticeGroupSalary)) {
@@ -4811,7 +4811,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             courseSchedule.setIsLock(0);
             courseSchedule.setOrganId(practiceGroupBuyParams.getOrganId());
         }
-        courseScheduleDao.batchAddCourseSchedules(practiceCourses);
+        courseScheduleService.batchAddCourse(practiceCourses);
         TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroupBuyParams.getUserId(), practiceCourseMinutes);
         BigDecimal teacherDefaultSalary = null;
         if (Objects.nonNull(teacherDefaultPracticeGroupSalary)) {

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

@@ -468,9 +468,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             }
             vipGroupApplyBaseInfoDto.setCourseSchedulesJson(JSON.toJSONString(courseSchedules));
             vipGroupDao.update(vipGroupApplyBaseInfoDto);
-            courseScheduleDao.deleteCourseSchedulesByMusicGroupID(vipGroup1.getId().toString(), vipGroup1.getGroupType());
             courseScheduleTeacherSalaryDao.deleteByMusicGroupId(vipGroup1.getId().toString(), vipGroup1.getGroupType());
             teacherAttendanceDao.deleteByMusicGroupId(vipGroup1.getId().toString(), vipGroup1.getGroupType());
+            courseScheduleDao.deleteCourseSchedulesByMusicGroupID(vipGroup1.getId().toString(), vipGroup1.getGroupType());
             this.liveProgress(vipGroupApplyBaseInfoDto,classGroup);
         }
         if (vipGroup1.getStatus().equals(VipGroupStatusEnum.PROGRESS)) {
@@ -4576,11 +4576,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                     if(CollectionUtils.isEmpty(classGroupStudents)){
                         vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
                         vipGroup.setStopReason("没有学员");
-                        // 删除课表
-                        courseScheduleDao.deleteCourseSchedulesByMusicGroupID(vipGroup.getId().toString(), vipGroup.getGroupType());
                         courseScheduleTeacherSalaryDao.deleteByMusicGroupId(vipGroup.getId().toString(), vipGroup.getGroupType());
                         //删除考勤
                         teacherAttendanceDao.deleteByMusicGroupId(vipGroup.getId().toString(), vipGroup.getGroupType());
+                        // 删除课表
+                        courseScheduleDao.deleteCourseSchedulesByMusicGroupID(vipGroup.getId().toString(), vipGroup.getGroupType());
                         imGroupService.cancel(classGroup.getId().toString());
                         //推送
                         sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.JIGUANG_TEACHER_LIVE_CANCEL,
@@ -4814,11 +4814,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                 vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
                 vipGroup.setUpdateTime(now);
                 vipGroup.setStopReason("没有学员");
-                // 删除课表
-                courseScheduleDao.deleteCourseSchedulesByMusicGroupID(vipGroup.getId().toString(), vipGroup.getGroupType());
                 courseScheduleTeacherSalaryDao.deleteByMusicGroupId(vipGroup.getId().toString(), vipGroup.getGroupType());
                 //删除考勤
                 teacherAttendanceDao.deleteByMusicGroupId(vipGroup.getId().toString(), vipGroup.getGroupType());
+                // 删除课表
+                courseScheduleDao.deleteCourseSchedulesByMusicGroupID(vipGroup.getId().toString(), vipGroup.getGroupType());
             }
             vipGroupDao.batchUpdate(vipGroupList);
             for(VipGroupClassGroupMapper vgcgm : vipGroupClassGroupMapperList){

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

@@ -255,6 +255,22 @@
             #{course.organId},#{course.memberFlag},#{course.preCourseFlag},#{course.validEndTime},#{course.validStartTime},#{course.tenantId},#{course.teachingPoint})
         </foreach>
     </insert>
+    <insert id="batchAddCourseSchedulesHasId" parameterType="java.util.List">
+        INSERT INTO course_schedule
+        (id_,group_type_,music_group_id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,
+        teacher_id_,actual_teacher_id_,type_,name_,teach_mode_,student_num_,leave_student_num_,
+        schoole_id_,is_lock_,note_,teaching_content_,organ_id_,member_flag_,pre_course_flag_,valid_end_time_,valid_start_time_,tenant_id_,teaching_point_)
+        VALUE
+        <foreach collection="list" item="course" separator=",">
+            (#{course.id},#{course.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.musicGroupId},
+            #{course.classGroupId},#{course.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{course.subsidy},#{course.classDate},#{course.startClassTime},#{course.endClassTime},#{course.teacherId},
+            #{course.teacherId},#{course.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{course.name},#{course.teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.studentNum},
+            #{course.leaveStudentNum},#{course.schoolId},#{course.isLock},#{course.note},#{course.teachingContent},
+            #{course.organId},#{course.memberFlag},#{course.preCourseFlag},#{course.validEndTime},#{course.validStartTime},#{course.tenantId},#{course.teachingPoint})
+        </foreach>
+    </insert>
 
     <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">

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

@@ -612,7 +612,7 @@
 			AND CONCAT(cs.class_date_, ' ', cs.start_class_time_)>NOW() AND cs.pre_course_flag_ != 1
 	</select>
 
-    <delete id="deleteByMusicGroupId" parameterType="map" >
+    <delete id="deleteByMusicGroupId">
 		DELETE cssp FROM course_schedule_teacher_salary cssp
 		LEFT JOIN course_schedule cs on cssp.course_schedule_id_ = cs.id_
 		WHERE cssp.music_group_id_=#{musicGroupId} AND cssp.group_type_=#{groupType} and cs.status_ = 'NOT_START'

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

@@ -768,7 +768,7 @@
         WHERE course_schedule_id_ = #{courseId} AND teacher_id_ = #{userId}
     </update>
 
-    <delete id="deleteByMusicGroupId" parameterType="map" >
+    <delete id="deleteByMusicGroupId">
 		DELETE ta FROM teacher_attendance ta LEFT JOIN course_schedule cs ON ta.course_schedule_id_ = cs.id_
 		WHERE ta.music_group_id_=#{musicGroupId} AND ta.group_type_=#{groupType} and cs.status_ = 'NOT_START'
 	</delete>