Browse Source

1、陪练课调整
2、付费陪练课可预约时间调整

Joburgess 5 years ago
parent
commit
9262b52a20

+ 2 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleTeacherSalaryService.java

@@ -5,7 +5,6 @@ import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.biz.dal.entity.VipGroup;
-import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
 import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
 import com.ym.mec.biz.dal.page.ExportTeacherSalaryQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -13,7 +12,6 @@ import com.ym.mec.common.service.BaseService;
 
 import java.math.BigDecimal;
 import java.util.List;
-import java.util.Set;
 
 public interface CourseScheduleTeacherSalaryService extends BaseService<Long, CourseScheduleTeacherSalary> {
 
@@ -70,10 +68,10 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
      * @author Joburgess
      * @date 2019/12/14
      * @param vipGroupId: vip课程编号
-     * @param studentChangeNum: 学员变化数量,增加为正,减少为负
+     * @param oldTeacherId: 原课程组教师
      * @return void
      */
-    void updateVipGroupCourseTeacherSalary(Integer vipGroupId, Integer studentChangeNum, VipGroupStatusEnum vipGroupStatusEnum);
+    void updateVipGroupCourseTeacherSalary(Integer vipGroupId, Integer oldTeacherId);
 
     /**
      * 老师课程课酬列表

+ 26 - 41
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -20,8 +20,10 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
@@ -610,52 +612,39 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void updateVipGroupCourseTeacherSalary(Integer vipGroupId, Integer studentChangeNum, VipGroupStatusEnum vipGroupStatusEnum) {
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+    public void updateVipGroupCourseTeacherSalary(Integer vipGroupId, Integer oldTeacherId) {
         VipGroup vipGroup = vipGroupService.get(vipGroupId.longValue());
-        if(Objects.isNull(vipGroupStatusEnum)){
-            vipGroupStatusEnum=vipGroup.getStatus();
-        }
+
         Integer studentNum = classGroupStudentMapperDao.countGroupStudentNum(vipGroupId.toString(), GroupType.VIP.getCode());
-        Integer oldStudentNum = studentNum-studentChangeNum;
-        if(oldStudentNum<0){
-            oldStudentNum=0;
-        }
-        ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId, vipGroup.getUserId());
-        BigDecimal onlineTeacherSalary,
-                offlineTeacherSalary;
-        if((oldStudentNum==0&&!vipGroupStatusEnum.equals(VipGroupStatusEnum.APPLYING))
-                ||Objects.isNull(classGroupTeacherSalary)){
-            TeacherDefaultVipGroupSalary teacherDefaultVipGroupSalary = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(),
-                    vipGroup.getVipGroupCategoryId());
-            if(Objects.isNull(teacherDefaultVipGroupSalary)){
-                throw new BizException("请设置课酬");
-            }
-            onlineTeacherSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
-            offlineTeacherSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary();
-        }else{
-            onlineTeacherSalary=classGroupTeacherSalary.getOnlineClassesSalary();
-            offlineTeacherSalary=classGroupTeacherSalary.getSalary();
-        }
 
-        if(oldStudentNum==0){
-            VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId().intValue());
-            oldStudentNum = vipGroupCategory.getStudentNum();
+        if(Objects.isNull(oldTeacherId)){
+            oldTeacherId=vipGroup.getUserId();
         }
 
+        ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId, oldTeacherId);
+
         if(Objects.isNull(classGroupTeacherSalary)){
-            ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(vipGroupId.toString(), GroupType.VIP.getCode());
-            classGroupTeacherSalary=new ClassGroupTeacherSalary();
-            classGroupTeacherSalary.setGroupType(GroupType.VIP);
-            classGroupTeacherSalary.setMusicGroupId(vipGroupId.toString());
-            classGroupTeacherSalary.setClassGroupId(classGroup.getId());
-            classGroupTeacherSalary.setTeacherRole(TeachTypeEnum.BISHOP);
-            classGroupTeacherSalary.setUserId(vipGroup.getUserId());
-            classGroupTeacherSalaryDao.insert(classGroupTeacherSalary);
+            throw new BizException("教师课酬异常");
+        }
+        ClassGroupTeacherSalary newClassGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId, vipGroup.getUserId());
+        if(!oldTeacherId.equals(vipGroup.getUserId())&&Objects.isNull(newClassGroupTeacherSalary)){
+            newClassGroupTeacherSalary=new ClassGroupTeacherSalary();
+            BeanUtils.copyProperties(classGroupTeacherSalary,newClassGroupTeacherSalary);
+            newClassGroupTeacherSalary.setUserId(vipGroup.getUserId());
+            classGroupTeacherSalaryDao.insert(newClassGroupTeacherSalary);
         }
 
+        BigDecimal onlineTeacherSalary,
+                offlineTeacherSalary;
+
+        onlineTeacherSalary=classGroupTeacherSalary.getOnlineClassesSalary();
+        offlineTeacherSalary=classGroupTeacherSalary.getSalary();
+
+        VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroup.getVipGroupCategoryId().intValue());
+
         BigDecimal studentNumDecimal = new BigDecimal(studentNum);
-        BigDecimal oldStudentNumDecimal = new BigDecimal(oldStudentNum);
+        BigDecimal oldStudentNumDecimal = new BigDecimal(vipGroupCategory.getStudentNum());
 
         if(Objects.nonNull(onlineTeacherSalary)){
             onlineTeacherSalary = onlineTeacherSalary
@@ -668,9 +657,6 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     .multiply(studentNumDecimal).setScale(0,BigDecimal.ROUND_HALF_UP);
         }
 
-        classGroupTeacherSalary.setOnlineClassesSalary(onlineTeacherSalary);
-        classGroupTeacherSalary.setSalary(offlineTeacherSalary);
-
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByGroupWithNotStart(vipGroupId.toString(), GroupType.VIP.getCode());
         if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaries)){
             List<Long> courseIds = courseScheduleTeacherSalaries.stream().map(CourseScheduleTeacherSalary::getCourseScheduleId).collect(Collectors.toList());
@@ -686,7 +672,6 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }
             courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalarys(courseScheduleTeacherSalaries);
         }
-        classGroupTeacherSalaryDao.update(classGroupTeacherSalary);
     }
 
     @Override

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

@@ -1488,7 +1488,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         }
 
         if(!vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
-			courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),-1, vipGroup.getStatus());
+			courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(), vipGroup.getUserId());
 		}
 
 		//学员退出班级群
@@ -1588,7 +1588,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			vipGroupDao.update(vipGroup);
 		}
 
-		courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),-1,vipGroup.getStatus());
+		courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(), vipGroup.getUserId());
 	}
 
     @Override
@@ -1613,6 +1613,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("此学生存在退课申请,请到系统日志中查看");
 		}
 
+		Integer oldTeacherId=vipGroup.getUserId();
 		if(Objects.nonNull(studentRecoverInfo.getTeacherId())&&!studentRecoverInfo.getTeacherId().equals(vipGroup.getUserId())){
 			vipGroup.setUserId(studentRecoverInfo.getUserId());
 		}
@@ -1717,7 +1718,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         vipGroupDao.update(vipGroup);
         classGroup.setTotalClassTimes(courseScheduleDao.countClassGroupCourses(classGroup.getId()));
         classGroupDao.update(classGroup);
-		courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroup.getId().intValue(),1,vipGroup.getStatus());
+		courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroup.getId().intValue(),oldTeacherId);
 	}
 
     @Override
@@ -1886,7 +1887,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				courseScheduleService.batchDeleteMusicGroupCourseWithStudent(studentPaymentOrder.getMusicGroupId(),studentApplyRefunds.getUserId(),GroupType.VIP);
 
 
-				courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(Integer.parseInt(studentPaymentOrder.getMusicGroupId()),-1, null);
+				courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(Integer.parseInt(studentPaymentOrder.getMusicGroupId()), null);
 
 				//学员退出班级群
 				ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentApplyRefunds.getUserId().toString())};
@@ -2586,7 +2587,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroupDao.update(classGroup);
 		classGroupService.updateClassGroupInfo(classGroup.getId());
 
-		courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),studentIds.size(), vipGroupStatus);
+		courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),null);
 
 		try {
 			ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);

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

@@ -229,7 +229,7 @@
 		<if test="days!=null">
 			AND cs.class_date_ &lt;= DATE_FORMAT(DATE_ADD( NOW( ), INTERVAL - #{days} DAY ),'%Y-%m-%d')
 		</if>
-		AND cs.type_ IN ('VIP','PRACTICE')
+		AND cs.type_ IN ('VIP')
 		AND csts.settlement_time_ IS NULL
 		AND (cs.del_flag_ IS NULL OR cs.del_flag_=0)
     </select>