ソースを参照

Merge branch 'musicGroup_reg_feature_5_8'

周箭河 4 年 前
コミット
4c9d3e0c34

+ 25 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/CloudTeacherOrderService.java

@@ -5,14 +5,16 @@ import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.common.service.BaseService;
 
+import java.math.BigDecimal;
 import java.util.List;
-import java.util.Map;
+
 
 public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacherOrder> {
 
 
     /**
      * 将订单详情云教练加入云教练购买列表
+     *
      * @param order
      * @return
      */
@@ -21,12 +23,14 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
 
     /**
      * 检测云教练是否开始生效,乐团上课后开始生效
+     *
      * @return
      */
     Boolean checkCloudOrderStart();
 
     /**
      * 将生效的云教练订单加入
+     *
      * @param cloudTeacherOrder
      * @return
      */
@@ -34,9 +38,28 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
 
     /**
      * 获取乐团云教练订单
+     *
      * @param studentIds
      * @param musicGroupId
      * @return
      */
-    List<CloudTeacherOrder> getStudentCloudTeacherOrders(List<Integer> studentIds,String musicGroupId);
+    List<CloudTeacherOrder> getStudentCloudTeacherOrders(List<Integer> studentIds, String musicGroupId);
+
+    /**
+     * 获取乐团报名的云教练订单
+     *
+     * @param studentId
+     * @param musicGroupId
+     * @return
+     */
+    CloudTeacherOrder getStudentCloudTeacherOrder(Integer studentId, String musicGroupId);
+
+    /**
+     * 退云教练
+     * @param order
+     * @param refundAmount
+     * @return
+     */
+    Boolean quitCloudTeacherOrder(CloudTeacherOrder order, BigDecimal refundAmount);
+
 }

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java

@@ -5,12 +5,14 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.service.CloudTeacherOrderService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -121,4 +123,25 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
     public List<CloudTeacherOrder> getStudentCloudTeacherOrders(List<Integer> studentIds, String musicGroupId) {
         return cloudTeacherOrderDao.getStudentCloudTeacherOrders(studentIds, musicGroupId);
     }
+
+    @Override
+    public CloudTeacherOrder getStudentCloudTeacherOrder(Integer studentId, String musicGroupId) {
+        return cloudTeacherOrderDao.getStudentCloudTeacherOrder(studentId, musicGroupId);
+    }
+
+    @Override
+    public Boolean quitCloudTeacherOrder(CloudTeacherOrder cloudOrder, BigDecimal refundAmount) {
+        Date nowDate = new Date();
+        if (cloudOrder.getStatus().equals(3)) {
+            throw new BizException("云教练已退,请勿重复退");
+        }
+        if (cloudOrder.getStatus().equals(2) && cloudOrder.getEndTime().compareTo(nowDate) <= 0) {
+            throw new BizException("云教练已过服务期,不可退费");
+        }
+        cloudOrder.setStatus(3);
+        cloudOrder.setRefundAmount(refundAmount);
+        //cloudOrder.setUpdateTime();
+
+        return true;
+    }
 }

+ 8 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -22,6 +22,7 @@ import java.util.stream.Collectors;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.service.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -49,27 +50,6 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.biz.event.source.GroupEventSource;
-import com.ym.mec.biz.service.ClassGroupService;
-import com.ym.mec.biz.service.ClassGroupStudentMapperService;
-import com.ym.mec.biz.service.ContractService;
-import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
-import com.ym.mec.biz.service.GoodsService;
-import com.ym.mec.biz.service.ImGroupMemberService;
-import com.ym.mec.biz.service.ImGroupService;
-import com.ym.mec.biz.service.ImUserFriendService;
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.MusicGroupSubjectGoodsGroupService;
-import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
-import com.ym.mec.biz.service.PayService;
-import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
-import com.ym.mec.biz.service.StudentPaymentOrderService;
-import com.ym.mec.biz.service.StudentPaymentRouteOrderService;
-import com.ym.mec.biz.service.StudentRegistrationService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMessageService;
-import com.ym.mec.biz.service.SysUserCashAccountDetailService;
-import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImGroupMember;
@@ -237,7 +217,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     private StudentInstrumentDao studentInstrumentDao;
 
     @Autowired
-    private CloudTeacherOrderDao cloudTeacherOrderDao;
+    private CloudTeacherOrderService cloudTeacherOrderService;
 
     private SimpleDateFormat sdf_ymd = new SimpleDateFormat("yyyy-MM-dd");
 
@@ -861,6 +841,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             orderAmount = orderAmount.add(maintenancePrice);
         }
 
+        MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
+        studentRegistration.setOrganId(musicGroup.getOrganId());
         //云教练
         if (registerPayDto.getBuyCloudTeacher()) {
             OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
@@ -885,7 +867,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Date date = new Date();
 
         BigDecimal balance = BigDecimal.ZERO;
-        MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
         if (registerPayDto.getIsUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
             SysUserCashAccount userCashAccount = sysUserCashAccountService.get(userId);
             if (userCashAccount == null) {
@@ -2071,19 +2052,18 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //退云教练费用
         if (cloudTeacherAmount != null) {
             Date nowDate = new Date();
-            CloudTeacherOrder studentCloudTeacherOrder = cloudTeacherOrderDao.getStudentCloudTeacherOrder(userId, musicGroupId);
+            CloudTeacherOrder studentCloudTeacherOrder = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
             if (cloudTeacherAmount.compareTo(BigDecimal.ZERO) > 0) {
-                if (studentCloudTeacherOrder == null || studentCloudTeacherOrder.getEndTime().compareTo(nowDate) <= 0) {
+                if (studentCloudTeacherOrder == null || (studentCloudTeacherOrder.getEndTime() != null && studentCloudTeacherOrder.getEndTime().compareTo(nowDate) <= 0)) {
                     throw new BizException("学生云教练已过有效期,不能退费");
                 }
                 if (cloudTeacherAmount.compareTo(studentCloudTeacherOrder.getAmount()) > 0) {
-                    throw new BizException("退费金额不能大于原始订单金额");
+                    throw new BizException("云教练退费金额不能大于原始订单金额");
                 }
             }
             amount = amount.add(cloudTeacherAmount);
             if (studentCloudTeacherOrder != null) {
-//                studentMaintenance.setDelFlag(1);
-//                studentInstrumentDao.update(studentMaintenance);
+                cloudTeacherOrderService.quitCloudTeacherOrder(studentCloudTeacherOrder, cloudTeacherAmount);
             }
         }