Browse Source

获取乐团计划和乐器

周箭河 4 years ago
parent
commit
e954ae2da1

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDetailDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.MusicalListDetailDto;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
@@ -113,10 +114,14 @@ public interface StudentPaymentOrderDetailDao extends BaseDAO<Long, StudentPayme
 
     /**
      * 获取订单的商品
+     *
      * @param orderIds
      * @return
      */
     List<StudentPaymentOrderDetail> getOrderGoodies(@Param("orderIds") List<Long> orderIds);
 
     List<StudentPaymentOrderDetail> getWithIds(@Param("paymentOrderIds") List<Long> paymentOrderIds);
+
+
+    List<StudentPaymentOrderDetail> getOrderDetailByType(@Param("orderId") Long orderId, @Param("orderDetailTypes") List<OrderDetailTypeEnum> orderDetailTypes);
 }

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderDetailTypeEnum.java

@@ -12,7 +12,6 @@ public enum OrderDetailTypeEnum implements BaseEnum<String, OrderDetailTypeEnum>
     OTHER("OTHER", "其他"),
     COURSE("COURSE", "课程"),
     HIGH_ONLINE_COURSE("HIGH_ONLINE_COURSE", "网络基础训练"),
-
     SINGLE("SINGLE", "单技课"),
     MIX("MIX", "合奏课"),
     HIGH("HIGH", "小班课"),

+ 79 - 40
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.lang.reflect.Array;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -107,6 +108,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
     @Autowired
     private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
+    @Autowired
+    private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {
@@ -903,18 +906,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
                 musicGroupStudentFee.setTemporaryCourseFee(BigDecimal.ZERO);
                 musicGroupStudentFee.setUpdateTime(nowDate);
-            }else {
-                musicGroupStudentFee = new MusicGroupStudentFee();
-                musicGroupStudentFee.setRemainNetworkClassTimes(0);
-                musicGroupStudentFee.setLatestPaidTime(nowDate);
-                musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
-                musicGroupStudentFee.setUpdateTime(nowDate);
-                musicGroupStudentFee.setContinuousAbsenteeismTimes(0);
-                musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
-                musicGroupStudentFee.setIsLock(0);
-                musicGroupStudentFee.setMusicGroupId(musicGroup.getId());
-                musicGroupStudentFee.setUserId(studentRegistration.getUserId());
-                musicGroupStudentFeeDao.insert(musicGroupStudentFee);
             }
             //插入交易明细
             BigDecimal amount = studentPaymentOrder.getActualAmount();
@@ -959,34 +950,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 sellOrderService.addOrderDetail2SellOrder(orderDetails, studentPaymentOrder, musicGroup);
             }
 
-            //缴费详情 calender detail
-            MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderService.findByMusicGroupRegCalender(musicGroup.getId());
-//            if(musicGroupRegCalender.getIsGiveMusicNetwork()){
-//                //赠送网管课
-//                musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
-//            }
-//            musicGroupStudentFeeDao.update(musicGroupStudentFee);
-//            //更新实际缴费人数
-//            Integer actualNum = musicGroupRegCalender.getActualNum() == null ? 0 : musicGroupRegCalender.getActualNum();
-//            musicGroupRegCalender.setActualNum(actualNum + 1);
-//            musicGroupRegCalender.setUpdateTime(nowDate);
-//            musicGroupPaymentCalenderDao.update(musicGroupRegCalender);
-            MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
-            musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
-            musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId());
-            musicGroupPaymentCalenderDetail.setExpectAmount(studentPaymentOrder.getExpectAmount());
-            musicGroupPaymentCalenderDetail.setActualAmount(studentPaymentOrder.getActualAmount());
-            musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
-            musicGroupPaymentCalenderDetail.setUserStatus(null);
-            musicGroupPaymentCalenderDetail.setPayTime(nowDate);
-            musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupRegCalender.getDeadlinePaymentDate());
-            musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupRegCalender.getStartPaymentDate());
-            musicGroupPaymentCalenderDetail.setOpen(1);
-            musicGroupPaymentCalenderDetail.setCreateTime(nowDate);
-            musicGroupPaymentCalenderDetail.setUpdateTime(nowDate);
-            musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
-            musicGroupPaymentCalenderDetail.setUseInCourse(0);
-            musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
+            addCalenderDetail(studentPaymentOrder,studentRegistration);
 
             //三方乐团不发送缴费通知
             if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
@@ -1048,6 +1012,81 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         return studentPaymentOrder;
     }
 
+
+    private boolean addCalenderDetail(StudentPaymentOrder studentPaymentOrder,StudentRegistration studentRegistration){
+        Date nowDate = new Date();
+        MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee();
+        musicGroupStudentFee.setRemainNetworkClassTimes(0);
+        musicGroupStudentFee.setLatestPaidTime(nowDate);
+        musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
+        musicGroupStudentFee.setUpdateTime(nowDate);
+        musicGroupStudentFee.setContinuousAbsenteeismTimes(0);
+        musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
+        musicGroupStudentFee.setIsLock(0);
+        musicGroupStudentFee.setMusicGroupId(studentRegistration.getMusicGroupId());
+        musicGroupStudentFee.setUserId(studentRegistration.getUserId());
+
+        //缴费详情 calender detail
+        MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderService.findByMusicGroupRegCalender(studentRegistration.getMusicGroupId());
+        if(musicGroupRegCalender.getIsGiveMusicNetwork()){
+            //赠送网管课
+            musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
+        }
+        musicGroupStudentFeeDao.insert(musicGroupStudentFee);
+        //更新实际缴费人数
+        int actualNum = musicGroupRegCalender.getActualNum() == null ? 0 : musicGroupRegCalender.getActualNum();
+        musicGroupRegCalender.setExpectNum(actualNum + 1);
+        musicGroupRegCalender.setActualNum(actualNum + 1);
+        musicGroupRegCalender.setUpdateTime(nowDate);
+        musicGroupPaymentCalenderDao.update(musicGroupRegCalender);
+
+        MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
+        musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
+        musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId());
+        musicGroupPaymentCalenderDetail.setExpectAmount(studentPaymentOrder.getExpectAmount());
+        musicGroupPaymentCalenderDetail.setActualAmount(studentPaymentOrder.getActualAmount());
+        musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
+        musicGroupPaymentCalenderDetail.setUserStatus(null);
+        musicGroupPaymentCalenderDetail.setPayTime(nowDate);
+        musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupRegCalender.getDeadlinePaymentDate());
+        musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupRegCalender.getStartPaymentDate());
+        musicGroupPaymentCalenderDetail.setOpen(1);
+        musicGroupPaymentCalenderDetail.setCreateTime(nowDate);
+        musicGroupPaymentCalenderDetail.setUpdateTime(nowDate);
+        musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+        musicGroupPaymentCalenderDetail.setUseInCourse(0);
+        musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
+
+        List<OrderDetailTypeEnum> orderDetailTypes = Arrays.asList(OrderDetailTypeEnum.values());
+        orderDetailTypes.remove(OrderDetailTypeEnum.MUSICAL);
+        orderDetailTypes.remove(OrderDetailTypeEnum.ACCESSORIES);
+        orderDetailTypes.remove(OrderDetailTypeEnum.TEACHING);
+        orderDetailTypes.remove(OrderDetailTypeEnum.OTHER);
+        orderDetailTypes.remove(OrderDetailTypeEnum.COURSE);
+        List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailDao.getOrderDetailByType(studentPaymentOrder.getId(), orderDetailTypes);
+
+        List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetails = new ArrayList<>();
+
+//        for (StudentPaymentOrderDetail orderDetail : orderDetails) {
+//            MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
+//            musicGroupPaymentStudentCourseDetail.setCourseType(CourseSchedule.CourseScheduleType.valueOf(orderDetail.getType().getCode()));
+//            musicGroupPaymentStudentCourseDetail.setCreateTime(nowDate);
+//            musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
+//            musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
+//            musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
+//            musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
+//            musicGroupPaymentStudentCourseDetail.setUserId(userId);
+//
+//            musicGroupPaymentStudentCourseDetails.add(musicGroupPaymentStudentCourseDetail);
+//        }
+
+        if (musicGroupPaymentStudentCourseDetails.size() > 0) {
+            musicGroupPaymentStudentCourseDetailDao.batchInsert(musicGroupPaymentStudentCourseDetails);
+        }
+
+        return true;
+    }
+
     @Override
     public List<StudentRegistration> findMusicGroupNoClassGroupStudent(String musicGroupId, Integer actualSubjectId) {
         //获取所有声部

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -264,4 +264,11 @@
             #{paymentOrderId}
         </foreach>
     </select>
+
+    <select id="getOrderDetailByType" resultMap="StudentPaymentOrderDetail">
+        SELECT * FROM student_payment_order_detail WHERE payment_order_id_ = #{orderId} AND type_ IN
+        <foreach collection="orderDetailTypes" item="orderDetailType" open="(" close=")" separator=",">
+            #{orderDetailType}
+        </foreach>
+    </select>
 </mapper>