Browse Source

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

zouxuan 2 years ago
parent
commit
afdd67fccc

+ 10 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentStudentCourseDetailDao.java

@@ -1,18 +1,16 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.dto.StudentSubTotalCourseTimesDto;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
+import org.apache.ibatis.annotations.Param;
+
+import com.ym.mec.biz.dal.dto.StudentSubTotalCourseTimesDto;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
 import com.ym.mec.common.dal.BaseDAO;
 
-import org.apache.ibatis.annotations.Param;
-
 public interface MusicGroupPaymentStudentCourseDetailDao extends BaseDAO<Long, MusicGroupPaymentStudentCourseDetail> {
 
     /**
@@ -132,4 +130,10 @@ public interface MusicGroupPaymentStudentCourseDetailDao extends BaseDAO<Long, M
                              @Param("courseTypes") List<CourseSchedule.CourseScheduleType> courseTypes,
                              @Param("studentIds") List<Integer> studentIds);
 
+    /**
+     * 清除指定乐团学生的剩余未排课时长
+     * @param musicGroupId
+     * @return
+     */
+    int clearRemainCourseMinutesByMusicGroupId(String musicGroupId);
 }

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

@@ -730,11 +730,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 								}
 							} else if (StringUtils.equals(settlementType, "GRADIENT_SALARY")) {
 								unitMinutes = 90;
-								if (type == CourseScheduleType.CLASSROOM) {
-									unitMinutes = 40;
-								} else if (type == CourseScheduleType.HIGH) {
-									unitMinutes = 45;
-								}
 								if (courseScheduleTeacherSalary.getTeacherRole() == TeachTypeEnum.BISHOP) {
 									courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(tdms.getMainTeacher90MinSalary().doubleValue() * newMinutes
 											/ unitMinutes));
@@ -750,19 +745,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 								courseScheduleTeacherSalary.setExpectSalary(salary);
 							}
 							//基础技能提高课
-							/*if (type == CourseScheduleType.HIGH) {
-								BigDecimal salary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? tdms.getMainTeacher30MinSalary() : tdms.getAssistantTeacher30MinSalary();
-								if (StringUtils.equals(settlementType, "GRADIENT_SALARY")) {
-									salary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? tdms.getMainTeacher90MinSalary() : tdms.getAssistantTeacher90MinSalary();
-								}
-								int studentNum = courseScheduleStudentPaymentDao.countCourseOnlyStudentNum(courseSchedule.getId());
-								if(studentNum<=0){
-									studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(courseSchedule.getClassGroupId());
-								}
-								courseScheduleTeacherSalary.setExpectSalary(salary.multiply(new BigDecimal(studentNum)));
-							}*/
-							//线上小班课
 							if(type == CourseScheduleType.HIGH_ONLINE || type == CourseScheduleType.HIGH){
+								
+								if(StringUtils.isBlank(tdms.getSalaryRuleJson())){
+				            		throw new BizException("线上基础技能课课酬设置异常");
+				                }
 								int studentNum = courseScheduleStudentPaymentDao.countCourseOnlyStudentNum(courseSchedule.getId());
 								if(studentNum<=0){
 									studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(courseSchedule.getClassGroupId());

+ 17 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.SalarySettlementDto;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.CourseSalaryQueryInfo4Web;
 import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
@@ -1314,10 +1315,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }
 
             //课堂课课酬改为按分钟数计算,并且时长占比向下取整
-            if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.CLASSROOM)){
+            /*if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.CLASSROOM)){
                 baseSalary = TeachTypeEnum.BISHOP.equals(courseScheduleTeacherSalary.getTeacherRole()) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
                 classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(40), BigDecimal.ZERO.intValue(), BigDecimal.ROUND_DOWN);
-            }
+            }*/
             
             if(Objects.isNull(baseSalary)){
                 throw new BizException("课酬设置异常");
@@ -1325,7 +1326,12 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
 
-            //基础技能提高课
+			//课堂课课酬
+			if (courseSchedule.getType() == CourseScheduleType.CLASSROOM) {
+				salary = TeachTypeEnum.BISHOP.equals(courseScheduleTeacherSalary.getTeacherRole()) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
+			}
+
+            /*//基础技能提高课
             if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
                 salary = TeachTypeEnum.BISHOP.equals(courseScheduleTeacherSalary.getTeacherRole()) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                 if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
@@ -1342,9 +1348,14 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     studentNum=5;
                 }
                 salary = salary.multiply(new BigDecimal(studentNum));
-            }
-            //线上小班课
-            if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)) {
+            }*/
+            //基础技能提高课
+            if (courseSchedule.getType() == CourseSchedule.CourseScheduleType.HIGH_ONLINE || courseSchedule.getType() == CourseSchedule.CourseScheduleType.HIGH) {
+            	
+            	if(StringUtils.isBlank(teacherDefaultMusicGroupSalary.getSalaryRuleJson())){
+            		throw new BizException("线上基础技能课课酬设置异常");
+            	}
+            	
                 int studentNum = courseScheduleStudentPaymentDao.countCourseOnlyStudentNum(courseSchedule.getId());
                 if(studentNum<=0){
                     studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(courseSchedule.getClassGroupId());

+ 29 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -27,8 +27,6 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.thirdparty.yqpay.DateUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -85,6 +83,21 @@ import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
 import com.ym.mec.biz.dal.dao.SysUserCashAccountLogDao;
 import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.CloseMusicGroupDto;
+import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
+import com.ym.mec.biz.dal.dto.HighClassGroupDto;
+import com.ym.mec.biz.dal.dto.MusicCardDto;
+import com.ym.mec.biz.dal.dto.MusicGroupApplyGoodsDto;
+import com.ym.mec.biz.dal.dto.MusicGroupBasicDto;
+import com.ym.mec.biz.dal.dto.MusicGroupQuitDto;
+import com.ym.mec.biz.dal.dto.RegisterPayDto;
+import com.ym.mec.biz.dal.dto.SporadicPayDto;
+import com.ym.mec.biz.dal.dto.StudentApplyInstrumentDto;
+import com.ym.mec.biz.dal.dto.StudentImportDto;
+import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.dto.SubjectRegisterDto;
+import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
 import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.ChargeType;
 import com.ym.mec.biz.dal.entity.ClassGroup;
@@ -104,13 +117,13 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderStudentDetail;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupPurchaseList;
 import com.ym.mec.biz.dal.entity.MusicGroupQuit;
 import com.ym.mec.biz.dal.entity.MusicGroupReturnFeeDto;
 import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermCourseDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
 import com.ym.mec.biz.dal.entity.MusicMemberDto;
@@ -183,7 +196,6 @@ import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.IdGeneratorService;
@@ -1885,7 +1897,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("乐团找不到");
         }
 
-        if (musicGroup.getStatus() != MusicGroupStatusEnum.PAUSE) {
+        if (musicGroup.getStatus() != MusicGroupStatusEnum.PAUSE && musicGroup.getStatus() != MusicGroupStatusEnum.CLOSE) {
             throw new BizException("乐团当前状态是{},不能恢复", musicGroup.getStatus().getMsg());
         }
 
@@ -1905,7 +1917,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "恢复乐团", sysUser.getId(), ""));
 
         //恢复课表
-        courseScheduleDao.resumeCourseScheduleByMusicGroupId(musicGroup.getId());
+        if (musicGroup.getStatus() == MusicGroupStatusEnum.PAUSE) {
+        	courseScheduleDao.resumeCourseScheduleByMusicGroupId(musicGroup.getId());
+        }
 
         //统计变更学员数
         groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.NORMAL, null);
@@ -3708,7 +3722,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
         }
-        MusicGroup musicGroup = musicGroupDao.get(closeMusicGroupDto.getMusicGroupId());
+        String musicGroupId = closeMusicGroupDto.getMusicGroupId();
+        
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
         }
@@ -3759,13 +3775,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 
         //删除未上课表
-        courseScheduleDao.logicDeleteCourseSchedulesByMusicGroupID(musicGroup.getId());
+        courseScheduleDao.deleteCourseSchedulesByMusicGroupID(musicGroup.getId(), null);
 
         //将学生退团
-        List<StudentRegistration> registrations = studentRegistrationDao.findClassGroupStu(musicGroup.getId(), null);
+        /*List<StudentRegistration> registrations = studentRegistrationDao.findClassGroupStu(musicGroup.getId(), null);
         if (registrations.size() > 0 && studentRegistrationService.quitAllStudent(musicGroup.getId(), "退团(乐团关闭)") <= 0) {
             throw new BizException("处理学生退团失败,请重试");
-        }
+        }*/
+        
+        //清除剩余未排课时长
+        musicGroupPaymentStudentCourseDetailDao.clearRemainCourseMinutesByMusicGroupId(musicGroupId);
 
         //统计变更学员数
         groupEventSource.musicGroupStudentChangeEvent(closeMusicGroupDto.getMusicGroupId(), StudentMusicGroupStatusEnum.QUIT, null);

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

@@ -311,7 +311,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             }
             
             Map<String, Object> payment = Payment.queryPayment(payingOrder.getTransNo(), hfMerchantConfig.getMerKey());
-            LOGGER.info("订单[{}]交易主动查询接口返回:{}", payingOrder.getTransNo(), payment);
+            LOGGER.warn("订单[{}]交易主动查询接口返回:{}", payingOrder.getTransNo(), payment);
 
             Map<String, String> rpMap = new HashMap<>();
             rpMap.put("merOrderNo", payingOrder.getOrderNo());

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

@@ -9,8 +9,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -19,6 +17,11 @@ import org.springframework.transaction.annotation.Transactional;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.TeacherDefaultMusicGroupSalaryDao;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.biz.dal.entity.MusicGroup;
@@ -170,11 +173,6 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
 										int studentNum = courseScheduleStudentPaymentDao.countCourseOnlyStudentNum(ts.getCourseScheduleId());
 										ts.setExpectSalary(ts.getExpectSalary().multiply(new BigDecimal(studentNum)));
 									}*/
-									//课堂课课酬改为按分钟数计算,并且时长占比向下取整
-									if (CourseSchedule.CourseScheduleType.CLASSROOM.equals(tdms.getCourseScheduleType())){
-										ts.setExpectSalary(TeachTypeEnum.BISHOP.equals(ts.getTeacherRole()) ? tdms.getMainTeacher90MinSalary() : tdms.getAssistantTeacher90MinSalary());
-										ts.setExpectSalary(duration.divide(new BigDecimal(40), BigDecimal.ZERO.intValue(), BigDecimal.ROUND_DOWN).multiply(ts.getExpectSalary()).setScale(2, BigDecimal.ROUND_HALF_UP));
-									}
 									list.add(ts);
 								} else if (musicGroup.getSettlementType() == SalarySettlementTypeEnum.TEACHER_DEFAULT) {// 默认课酬
 									mins = 30;
@@ -197,11 +195,6 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
 										int studentNum = courseScheduleStudentPaymentDao.countCourseOnlyStudentNum(ts.getCourseScheduleId());
 										ts.setExpectSalary(ts.getExpectSalary().multiply(new BigDecimal(studentNum)));
 									}*/
-									//课堂课课酬改为按分钟数计算,并且时长占比向下取整
-									if (CourseSchedule.CourseScheduleType.CLASSROOM.equals(tdms.getCourseScheduleType())){
-										ts.setExpectSalary(TeachTypeEnum.BISHOP.equals(ts.getTeacherRole()) ? tdms.getMainTeacher90MinSalary() : tdms.getAssistantTeacher90MinSalary());
-										ts.setExpectSalary(duration.divide(new BigDecimal(40), BigDecimal.ZERO.intValue(), BigDecimal.ROUND_DOWN).multiply(ts.getExpectSalary()).setScale(2, BigDecimal.ROUND_HALF_UP));
-									}
 									list.add(ts);
 								}
 								if(ts.getExpectSalary() == null){

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

@@ -314,7 +314,9 @@
         DELETE
         FROM course_schedule
         WHERE music_group_id_ = #{musicGroupId}
+        <if test="groupType != null">
           AND group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
           and status_ = 'NOT_START'
     </delete>
 

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentStudentCourseDetailMapper.xml

@@ -364,4 +364,10 @@
             #{studentId}
         </foreach>)c
     </select>
+    
+    <update id="clearRemainCourseMinutesByMusicGroupId">
+    	update `music_group_payment_student_course_detail` cd LEFT JOIN `music_group_payment_calender` pc on cd.`music_group_payment_calender_id_` = pc.`id_` 
+		set cd.`used_course_minutes_` = 1
+		WHERE cd.`used_course_minutes_` = 0 and pc.`music_group_id_` = #{musicGroupId}  
+    </update>
 </mapper>

+ 5 - 0
mec-student/src/main/resources/logback-spring.xml

@@ -50,6 +50,11 @@
 		<appender-ref ref="messagefile" />
 	</logger>
 
+	<logger name="com.ym.mec.student.controller.StudentOrderController" level="INFO"
+			additivity="false">
+		<appender-ref ref="messagefile" />
+	</logger>
+
 	<!--本地环境:打印控制台 -->
 	<springProfile name="local">
 		<root level="INFO">