Переглянути джерело

Merge remote-tracking branch 'origin/master'

周箭河 5 роки тому
батько
коміт
bfac04483b

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -168,6 +168,10 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      */
     Integer findOrderByGroupType(@Param("userId") Integer userId, @Param("sporadicId") Integer sporadicId, @Param("groupType") String groupType, @Param("status") DealStatusEnum status);
 
+    List<StudentPaymentOrder> findOrderByGroup(@Param("groupId") String groupId,
+                                               @Param("groupType") GroupType groupType,
+                                               @Param("status") DealStatusEnum status);
+
     /**
      * 获取订单金额map
      *

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GroupClassServiceImpl.java

@@ -3,6 +3,8 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
@@ -52,6 +54,8 @@ public class GroupClassServiceImpl implements GroupClassService {
     private PracticeGroupDao practiceGroupDao;
     @Autowired
     private SysUserCashAccountService sysUserCashAccountService;
+    @Autowired
+    private StudentPaymentOrderDao studentPaymentOrderDao;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -116,6 +120,13 @@ public class GroupClassServiceImpl implements GroupClassService {
             if(Objects.isNull(practiceGroup)){
                 throw new BizException("指定的课程组不存在");
             }
+            List<StudentPaymentOrder> orders = studentPaymentOrderDao.findOrderByGroup(practiceGroup.getId().toString(), GroupType.PRACTICE, DealStatusEnum.SUCCESS);
+            if(CollectionUtils.isEmpty(orders)){
+                throw new BizException("未获取到订单");
+            }
+            if(refundAmount.compareTo(orders.get(0).getExpectAmount())>0){
+                throw new BizException("退款不可大于购买金额");
+            }
             Date now=new Date();
             if(!practiceGroup.getGroupStatus().equals(GroupStatusEnum.NORMAL)||practiceGroup.getCoursesExpireDate().before(now)){
                 throw new BizException("当前课程组不可关闭");

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -534,4 +534,12 @@
         ORDER BY spo.id_ DESC
         <include refid="global.limit"/>
     </select>
+    <select id="findOrderByGroup" resultMap="StudentPaymentOrder">
+        SELECT * FROM student_payment_order
+        WHERE music_group_id_=#{groupId}
+            and group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            <if test="status!=null">
+                and status_=#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+    </select>
 </mapper>