Browse Source

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

yonge 4 years ago
parent
commit
4c389263cc

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java

@@ -248,5 +248,5 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
      * @param musicGroupId:
      * @return java.util.Map<java.lang.String,java.lang.String>
      */
-    Map<String, String> queryUserPaymentStatus(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId);
+    List<Map<String, String>> queryUserPaymentStatus(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId);
 }

+ 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", "小班课"),

+ 6 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType.SCHOOL;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_RENEW;
 
@@ -165,7 +166,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		if (musicGroupPaymentCalenderCourseSettingsList == null) {
 			musicGroupPaymentCalenderCourseSettingsList = new ArrayList<>();
 		}
-		if (musicGroupPaymentCalender.getPayUserType() == PayUserType.SCHOOL) {
+		if (musicGroupPaymentCalender.getPayUserType() == SCHOOL) {
 			musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.AUDITING);
 		} else {
 			if (musicGroupPaymentCalender.getPaymentType() == MUSIC_APPLY || musicGroupPaymentCalender.getPaymentType() == MUSIC_RENEW) {
@@ -375,7 +376,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		if (musicGroupPaymentCalenderCourseSettingsList == null) {
 			musicGroupPaymentCalenderCourseSettingsList = new ArrayList<>();
 		}
-		if (musicGroupPaymentCalender.getPayUserType() == PayUserType.SCHOOL) {
+		if (musicGroupPaymentCalender.getPayUserType() == SCHOOL) {
 			musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.AUDITING);
 		} else {
 			if (musicGroupPaymentCalender.getPaymentType() == MUSIC_APPLY || musicGroupPaymentCalender.getPaymentType() == MUSIC_RENEW) {
@@ -611,7 +612,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderDao.get(calenderId);
 		Date date = new Date();
 		//如果是报名项目,将乐团改为审核中,缴费项目修改状态,审核状态改为审核通过
-		if (date.after(musicGroupPaymentCalender.getDeadlinePaymentDate())) {
+		if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
+			musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.OPEN);
+		}else if (date.after(musicGroupPaymentCalender.getDeadlinePaymentDate())) {
 			musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.OVER);
 		} else if (date.after(musicGroupPaymentCalender.getStartPaymentDate())) {
 			musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.OPEN);

+ 5 - 24
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -294,7 +294,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (chargeInfo.getOpenFlag().equals(1)) {
             throw new BizException("项目已关闭");
         }
-        if(sporadicPayDto.getNum()==null){
+        if (sporadicPayDto.getNum() == null) {
             sporadicPayDto.setNum(1);
         }
         BigDecimal amount = chargeInfo.getAmount().multiply(new BigDecimal(sporadicPayDto.getNum()));
@@ -305,30 +305,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("订单金额异常");
         }
         if (chargeInfo.getMaxAmount() != null) {
-            if(sporadicPayDto.getIsRepeatPay()){
-                List<StudentPaymentOrder> orders = studentPaymentOrderService.getUserOrderByType(sporadicPayDto.getUserId(), OrderTypeEnum.DOUBLE_ELEVEN2020, DealStatusEnum.ING);
-                for (StudentPaymentOrder order : orders) {
-                    Map<String, String> notifyMap = new HashMap<>();
-                    notifyMap.put("tradeState", "0");
-                    notifyMap.put("merOrderNo", order.getOrderNo());
-                    notifyMap.put("channelType", order.getPaymentBusinessChannel());
-                    notifyMap.put("orderNo", "");
-                    notifyMap.put("remarks", "用户主动关闭");
-                    studentPaymentOrderService.updateOrder(notifyMap);
-                }
-            }
-
-            if (chargeInfo.getOpenMaxTerm().equals(YesOrNoEnum.YES) && chargeInfo.getMaxAmount().compareTo(chargeInfo.getPaidAmount().add(amount)) < 0) {
+            if (chargeInfo.getOpenMaxTerm().equals(YesOrNoEnum.YES) && chargeInfo.getMaxAmount().compareTo(chargeInfo.getPaidAmount()) <= 0) {
                 throw new Exception("活动人数暂时已满,请稍后再试");
             }
-            List<SporadicChargeInfo> activeInfos = sporadicChargeInfoDao.getOrganActiveInfo(chargeInfo.getOrganId(), 12);
-            for (SporadicChargeInfo activeInfo : activeInfos) {
-                activeInfo.setPaidAmount(activeInfo.getPaidAmount().add(amount));
-                activeInfo.setUpdateTime(new Date());
-                int update = sporadicChargeInfoDao.update(activeInfo);
-                if (update <= 0) {
-                    throw new BizException("活动火爆,请稍后再试");
-                }
+            if (chargeInfo.getOpenMaxTerm().equals(YesOrNoEnum.YES) && chargeInfo.getMaxAmount().compareTo(chargeInfo.getPaidAmount().add(amount)) < 0) {
+                throw new Exception("活动数量暂时已满,请调整数量或稍后再试");
             }
         }
 
@@ -1143,7 +1124,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         List<MusicCardDto> musicCardDtos = musicGroupDao.queryUserMusicGroups(userId);
         Set<String> musicGroupIds = musicCardDtos.stream().map(MusicCardDto::getMusicGroupId).collect(Collectors.toSet());
 //        Map<String, String> paymentStatus = MapUtil.convertMybatisMap(musicGroupStudentFeeDao.queryUserPaymentStatus(userId, StringUtils.join(musicGroupIds, ",")));
-        Map<String, String> paymentStatus = musicGroupPaymentCalenderDao.queryUserPaymentStatus(userId, StringUtils.join(musicGroupIds, ","));
+        Map<String, String> paymentStatus = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDao.queryUserPaymentStatus(userId, StringUtils.join(musicGroupIds, ",")));
         // 获取学员在该乐团续费状态
         musicCardDtos.forEach(e -> {
             e.setPaymentStatus(paymentStatus.get(e.getMusicGroupId()));

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

@@ -84,6 +84,17 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
 
             //福袋活动,增加课程余额
             if (info.getChargeType().getCode() == 6 || info.getChargeType().getCode() == 12) {
+                if (info.getMaxAmount() != null) {
+                    List<SporadicChargeInfo> activeInfos = sporadicChargeInfoDao.getOrganActiveInfo(info.getOrganId(), 12);
+                    for (SporadicChargeInfo activeInfo : activeInfos) {
+                        activeInfo.setPaidAmount(activeInfo.getPaidAmount().add(studentPaymentOrder.getActualAmount()));
+                        activeInfo.setUpdateTime(new Date());
+                        int update = sporadicChargeInfoDao.update(activeInfo);
+                        if (update <= 0) {
+                            throw new BizException("已收金额更新失败,请重试");
+                        }
+                    }
+                }
                 //第二单起每买一单增加一次抽奖机会
                 int times = studentPaymentOrderDao.getUserOrderNumByType(userId, OrderTypeEnum.DOUBLE_ELEVEN2020);
                 int num = studentPaymentOrder.getClassGroupId() == null ? 1 : studentPaymentOrder.getClassGroupId();
@@ -152,17 +163,6 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
             return true;
         }
         if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
-            if (info.getMaxAmount() != null && info.getPaidAmount().compareTo(BigDecimal.ZERO) > 0) {
-                List<SporadicChargeInfo> activeInfos = sporadicChargeInfoDao.getOrganActiveInfo(info.getOrganId(), 12);
-                for (SporadicChargeInfo activeInfo : activeInfos) {
-                    activeInfo.setPaidAmount(activeInfo.getPaidAmount().subtract(studentPaymentOrder.getActualAmount()));
-                    activeInfo.setUpdateTime(new Date());
-                    int update = sporadicChargeInfoDao.update(activeInfo);
-                    if (update <= 0) {
-                        throw new BizException("已收金额更新失败,请重试");
-                    }
-                }
-            }
             if (info.getOrganId().equals(42) && info.getChargeType().equals(SporadicChargeTypeEnum.LEVEL)) {
                 degreeRegistrationService.updateStatus(studentPaymentOrder.getUserId(), 0, studentPaymentOrder.getOrderNo());
                 return true;

+ 78 - 43
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,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
     @Autowired
     private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
+    @Autowired
+    private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
+    @Autowired
+    private MusicGroupPaymentCalenderCourseSettingsDao musicGroupPaymentCalenderCourseSettingsDao;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {
@@ -838,13 +843,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         return classGroupStuList;
     }
 
-    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
-    public void updateCalender(Long calenderDetailId,Integer userId){
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+    public void updateCalender(Long calenderDetailId, Integer userId) {
         Date date = new Date();
         MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.get(calenderDetailId);
         MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.get(calenderDetail.getMusicGroupPaymentCalenderId());
         MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, calender.getMusicGroupId());
-        if(calender.getIsGiveMusicNetwork()){
+        if (calender.getIsGiveMusicNetwork()) {
             //赠送网管课
             musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
         }
@@ -903,18 +908,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 +952,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 +1014,75 @@ 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.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);
+
+        List<String> orderDetailTypes = studentPaymentOrderDetailDao.getOrderDetailType(studentPaymentOrder.getId());
+        List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.getMusicGroupRegCalenderCourseSettings(studentRegistration.getMusicGroupId());
+        BigDecimal courseTotalPrice = courseSettings.stream().filter(e -> orderDetailTypes.contains(e.getCourseType().getCode())).map(MusicGroupPaymentCalenderCourseSettings::getCourseCurrentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
+        musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
+        musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId());
+        musicGroupPaymentCalenderDetail.setExpectAmount(courseTotalPrice);
+        musicGroupPaymentCalenderDetail.setActualAmount(courseTotalPrice);
+        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<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetails = new ArrayList<>();
+
+        for (MusicGroupPaymentCalenderCourseSettings courseSetting : courseSettings) {
+            if (!orderDetailTypes.contains(courseSetting.getCourseType().getCode())) continue;
+            MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
+            musicGroupPaymentStudentCourseDetail.setCourseType(courseSetting.getCourseType());
+            musicGroupPaymentStudentCourseDetail.setCreateTime(nowDate);
+            musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
+            musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSetting.getCourseTotalMinuties());
+            musicGroupPaymentStudentCourseDetail.setUpdateTime(nowDate);
+            musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
+            musicGroupPaymentStudentCourseDetail.setUserId(studentPaymentOrder.getUserId());
+            musicGroupPaymentStudentCourseDetails.add(musicGroupPaymentStudentCourseDetail);
+        }
+
+        if (musicGroupPaymentStudentCourseDetails.size() > 0) {
+            musicGroupPaymentStudentCourseDetailDao.batchInsert(musicGroupPaymentStudentCourseDetails);
+        }
+        return true;
+    }
+
     @Override
     public List<StudentRegistration> findMusicGroupNoClassGroupStudent(String musicGroupId, Integer actualSubjectId) {
         //获取所有声部

+ 6 - 4
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml

@@ -477,10 +477,12 @@
         AND status_='OPEN'
     </select>
     <select id="queryUserPaymentStatus" resultType="java.util.Map">
-        SELECT mgpc.music_group_id_ 'key',CASE WHEN COUNT(DISTINCT mgpcd.id_) > 0 THEN 'NON_PAYMENT' ELSE 'PAID_COMPLETED' END 'value'
-        FROM music_group_payment_calender mgpc
+        SELECT mg.id_ 'key',CASE WHEN COUNT(mgpc.id_) = 0 OR COUNT(DISTINCT mgpcd.id_) > 0 THEN 'NON_PAYMENT' ELSE 'PAID_COMPLETED' END 'value'
+        FROM music_group mg
+		LEFT JOIN music_group_payment_calender mgpc ON mgpc.music_group_id_ = mg.id_
         LEFT JOIN music_group_payment_calender_detail mgpcd ON mgpc.id_ = mgpcd.music_group_payment_calender_id_
-        WHERE FIND_IN_SET(mgpc.music_group_id_,#{musicGroupId}) AND mgpcd.user_id_ = #{userId} AND payment_status_ = 'NON_PAYMENT'
-        GROUP BY mgpc.music_group_id_
+        AND mgpcd.user_id_ = #{userId} AND mgpcd.payment_status_ = 'NON_PAYMENT'
+        WHERE FIND_IN_SET(mg.id_,#{musicGroupId})
+        GROUP BY mg.id_
     </select>
 </mapper>

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

+ 0 - 12
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSubjectPlanController.java

@@ -86,16 +86,4 @@ public class MusicGroupSubjectPlanController extends BaseController {
         return succeed(result);
     }
 
-    @ApiOperation(value = "获取乐团声部费用信息及乐器和辅件")
-    @GetMapping("/getSubjectGoodsAndInfo")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupSubjectPlan/getSubjectGoodsAndInfo')")
-    @ApiImplicitParams({@ApiImplicitParam(name = "subjectId", value = "声部信息", required = true, dataType = "Integer"),
-            @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
-    public HttpResponseResult<MusicGroupSubjectGoodsAndInfoDto> getSubjectGoodsAndInfo(Integer subjectId, String musicGroupId) {
-        if (subjectId == null || StringUtils.isEmpty(musicGroupId)) {
-            return failed("参数校验异常");
-        }
-        return succeed(musicGroupSubjectPlanService.getSubjectGoodsAndInfo(musicGroupId, subjectId));
-    }
-
 }