Browse Source

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

zouxuan 4 năm trước cách đây
mục cha
commit
9605ac04b1

+ 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);

+ 9 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SellOrderServiceImpl.java

@@ -148,10 +148,6 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
             detailRouteBalance = detailRouteBalance.add(detailBalance);
             i++;
 
-            if (orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL) && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                continue;
-            }
-
             BigDecimal goodsTotalPrice = orderDetail.getGoodsList().stream().map(Goods::getGroupPurchasePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
             BigDecimal routePrice = BigDecimal.ZERO;
             BigDecimal routeBalance = BigDecimal.ZERO;
@@ -205,6 +201,15 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
                 } else {
                     sellOrder.setType(SellTypeEnum.OTHER);
                 }
+                //租赁、免费的没有销售收入,有销售成本
+                if (orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL) &&
+                        (orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE) ||
+                                orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.FREE)
+                        )) {
+                    sellOrder.setActualAmount(BigDecimal.ZERO);
+                    sellOrder.setBalanceAmount(BigDecimal.ZERO);
+                    sellOrder.setExpectAmount(BigDecimal.ZERO);
+                }
                 sellOrders.add(sellOrder);
             }
         }

+ 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>