Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 4 years ago
parent
commit
63a4451cd0

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

@@ -115,6 +115,17 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
                                                                               @Param("userId") Integer userId);
 
     /**
+     * @describe 统计团体下为开始课程学生数量
+     * @author Joburgess
+     * @date 2020.09.27
+     * @param groupId:
+     * @param groupType:
+     * @return int
+     */
+    int countNotStartCourseStudentNumWithGroup(@Param("groupId") String groupId,
+                                      @Param("groupType") GroupType groupType);
+
+    /**
      * @param vipGroupId: 小课编号
      * @param teachMode:  教学形式
      * @return java.math.BigDecimal

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

@@ -29,6 +29,8 @@ public class PracticeBuyResultDto {
 
     private String type;
 
+    private Object detail;
+
     public String getOrderNo() {
         return orderNo;
     }
@@ -100,4 +102,12 @@ public class PracticeBuyResultDto {
     public void setType(String type) {
         this.type = type;
     }
+
+    public Object getDetail() {
+        return detail;
+    }
+
+    public void setDetail(Object detail) {
+        this.detail = detail;
+    }
 }

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

@@ -132,6 +132,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     private TeacherCourseRewardService teacherCourseRewardService;
     @Autowired
     private StudentPaymentRouteOrderService studentPaymentRouteOrderService;
+    @Autowired
+    private StudentGoodsSellDao studentGoodsSellDao;
 
     private static Map<Integer, Map<Integer, List<Integer>>> schoolSubjectTeachersMap;
 
@@ -3369,7 +3371,12 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         practiceBuyResult.setCreateTime(order.getCreateTime());
         practiceBuyResult.setPrice(order.getExpectAmount());
         practiceBuyResult.setType(order.getType().getCode());
-        if (order.getStatus().equals(DealStatusEnum.FAILED) || order.getGroupType().equals(GroupType.REPAIR)) {
+
+        if(order.getGroupType().equals(GroupType.GOODS_SELL)){
+            practiceBuyResult.setDetail(studentGoodsSellDao.getStudentGoodsSellDto(orderNo));
+        }
+
+        if (order.getStatus().equals(DealStatusEnum.FAILED) || order.getGroupType().equals(GroupType.REPAIR)||Objects.isNull(order.getMusicGroupId())) {
             return practiceBuyResult;
         }
         SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);

+ 15 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -257,19 +257,21 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         StudentPaymentOrder studentPaymentOrder = null;
         if(StringUtils.isNotEmpty(orderNo1)){
             studentPaymentOrder = studentPaymentOrderService.findOrderByOrderNo(orderNo1);
-            if(studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS){
-                throw new BizException("该订单已支付");
-            }
-            //关闭老订单
-            if(studentPaymentOrder.getBalancePaymentAmount() != null){
-                studentGoodsSell.setIsUseBalancePayment(true);
-            }else {
-                studentGoodsSell.setIsUseBalancePayment(false);
-            }
-            studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
-            studentPaymentOrderService.update(studentPaymentOrder);
-            if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
-                sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭订单");
+            if(studentPaymentOrder != null){
+                if(studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS){
+                    throw new BizException("该订单已支付");
+                }
+                //关闭老订单
+                if(studentPaymentOrder.getBalancePaymentAmount() != null){
+                    studentGoodsSell.setIsUseBalancePayment(true);
+                }else {
+                    studentGoodsSell.setIsUseBalancePayment(false);
+                }
+                studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
+                studentPaymentOrderService.update(studentPaymentOrder);
+                if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
+                    sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭订单");
+                }
             }
         }
         studentGoodsSellDao.update(studentGoodsSell);

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

@@ -1805,10 +1805,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		int studentCourseNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroup.getId());
 		if(studentCourseNum<=0&&classGroup.getStudentNum().equals(classGroup.getExpectStudentNum())){
 			vipGroup.setStatus(VipGroupStatusEnum.PAUSE);
-			if(!CollectionUtils.isEmpty(courseScheduleIds)){
-				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
-				courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
-				teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
+			int notStartCourseStudentNum = courseScheduleStudentPaymentDao.countNotStartCourseStudentNumWithGroup(vipGroupId.toString(), GroupType.VIP);
+			if(notStartCourseStudentNum<=0){
+				List<CourseSchedule> groupNotFinishCourses = courseScheduleDao.findGroupNotFinishCourses(vipGroupId.toString(), GroupType.VIP);
+				List<Long> csIds = groupNotFinishCourses.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(csIds);
+				courseScheduleDao.batchDeleteCourseSchedules(csIds);
+				teacherAttendanceDao.batchDeleteByCourseSchedules(csIds);
 			}
 			vipGroupDao.update(vipGroup);
 		}

+ 12 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -495,4 +495,16 @@
 		WHERE cssp.course_schedule_id_ = #{courseScheduleId}
 		AND NOT EXISTS (SELECT * FROM rongyun_room_member rrm WHERE rrm.rid = #{roomId} AND rrm.uid = cssp.user_id_)
 	</select>
+
+	<select id="countNotStartCourseStudentNumWithGroup" resultType="int">
+		SELECT
+			COUNT( cssp.user_id_ )
+		FROM
+			course_schedule_student_payment cssp
+			LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
+		WHERE
+			cssp.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+			AND cssp.music_group_id_ = #{groupId}
+			AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > NOW( )
+	</select>
 </mapper>