فهرست منبع

乐团缴费修改

zouxuan 3 سال پیش
والد
کامیت
372a37be86

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

@@ -33,6 +33,8 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	 * @return
 	 */
 	Map<String, Object> getDetail(Long id);
+
+	Map<String, Object> getCalenderDetail(Map<String, Object> result,Long calenderId);
 	
 	/**
 	 * 更新缴费信息
@@ -205,4 +207,13 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 
     //获取活动总金额
 	BigDecimal getActivityAmount(List<Long> buyCalenderActivityIdList);
+
+	/**
+	* @description: 获取报名缴费订单
+	 * @param musicGroupId
+	* @return com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender
+	* @author zx
+	* @date 2021/12/30 10:41
+	*/
+	MusicGroupPaymentCalender getApplyCalenderByMusicId(String musicGroupId);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -204,7 +204,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 *  续费
 	 * @return
 	 */
-	Map renew(RenewParamDto renewParamDto) throws Exception;
+	HttpResponseResult renew(RenewParamDto renewParamDto) throws Exception;
 
 	/**
 	 * 学生支付订单

+ 0 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -100,9 +100,6 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
     PageInfo<SporadicChargeInfoDto> sporadicQueryPage(SporadicOrderQueryInfo queryInfo);
 
 
-    StudentPaymentOrder getOrderMoneyAmount(StudentPaymentOrderQueryInfo queryInfo);
-
-
     PageInfoOrder<StudentPaymentOrderDto> OrderQueryPage(StudentPaymentOrderQueryInfo queryInfo);
 
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderActivityServiceImpl.java

@@ -67,7 +67,7 @@ public class MusicGroupPaymentCalenderActivityServiceImpl extends BaseServiceImp
         if(calenderActivityList != null && calenderActivityList.size() > 0){
             List<Integer> collect = calenderActivityList.stream().map(e -> e.getActivityId()).collect(Collectors.toList());
             List<VipGroupActivity> vipGroupActivities = vipGroupActivityDao.queryByIds(StringUtils.join(collect, ","));
-            return vipGroupActivities.stream().map(e->e.getMarketPrice()).reduce(BigDecimal.ZERO,BigDecimal::add);
+            return vipGroupActivities.stream().map(e->e.getOriginalPrice()).reduce(BigDecimal.ZERO,BigDecimal::add);
         }
         return BigDecimal.ZERO;
     }

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

@@ -108,15 +108,15 @@ public class MusicGroupPaymentCalenderMemberServiceImpl extends BaseServiceImpl<
     private BigDecimal getGroupPurchaseFee(PeriodEnum periodEnum,MemberFeeSetting memberFee){
         switch (periodEnum){
             case DAY :
-                return memberFee.getGroupPurchaseDayFee();
+                return memberFee.getOriginalDayFee();
             case MONTH :
-                return memberFee.getGroupPurchaseMonthFee();
+                return memberFee.getOriginalMonthFee();
             case QUARTERLY :
-                return memberFee.getGroupPurchaseQuarterlyFee();
+                return memberFee.getOriginalQuarterlyFee();
             case YEAR_HALF :
-                return memberFee.getGroupPurchaseHalfYearFee();
+                return memberFee.getOriginalHalfYearFee();
             case YEAR :
-                return memberFee.getGroupPurchaseYearFee();
+                return memberFee.getOriginalYearFee();
             default:
                 throw new BizException("请选择正确的会员有效期");
         }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderRepairServiceImpl.java

@@ -75,9 +75,9 @@ public class MusicGroupPaymentCalenderRepairServiceImpl extends BaseServiceImpl<
         MusicGroupPaymentCalenderRepair musicRepair = baseCalender.getMusicRepair();
         if(musicRepair != null){
             Integer tenantId = TenantContextHolder.getTenantId();
-            String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ONE_YEAR_MUSICAL_REPAIR_AMOUNT, tenantId);
+            String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ONE_YEAR_MUSICAL_REPAIR_ORIGINAL_AMOUNT, tenantId);
             if(StringUtils.isEmpty(configValue)){
-                throw new BizException("操作失败:请配置乐保零售价");
+                throw new BizException("操作失败:请配置乐保价");
             }
             //获取会员总价
             return new BigDecimal(configValue).multiply(musicRepair.getNum()).setScale(0, BigDecimal.ROUND_HALF_UP);

+ 19 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -678,6 +678,18 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		return batchNo;
 	}
 
+	public Map<String, Object> getCalenderDetail(Map<String, Object> result,Long calenderId){
+		//课程
+		result.put("course", musicGroupPaymentCalenderCourseSettingsService.queryCalenderCourseSettings(calenderId));
+		//乐保
+		result.put("repair",musicGroupPaymentCalenderRepairService.findByCalenderId(calenderId));
+		//会员信息
+		result.put("member",musicGroupPaymentCalenderMemberService.findByCalenderId(calenderId));
+		//活动相关信息
+		result.put("activity",musicGroupPaymentCalenderActivityService.findByCalenderId(calenderId));
+		return result;
+	}
+
 	@Override
 	public Map<String, Object> getDetail(Long id) {
 		Map<String, Object> result = new HashMap<>(9);
@@ -715,17 +727,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				e.printStackTrace();
 			}
 		}
-		//课程
-		result.put("course", musicGroupPaymentCalenderCourseSettingsService.queryCalenderCourseSettings(id));
 		//获取跨团合班学员缴费详情
 		result.put("musicMerger",musicGroupPaymentCalenderStudentDetailDao.findByBatchNo(calender.getBatchNo()));
-		//乐保
-		result.put("repair",musicGroupPaymentCalenderRepairService.findByCalenderId(id));
-		//会员信息
-		result.put("member",musicGroupPaymentCalenderMemberService.findByCalenderId(id));
-		//活动相关信息
-		result.put("activity",musicGroupPaymentCalenderActivityService.findByCalenderId(id));
-		return result;
+		return getCalenderDetail(result,id);
 	}
 
 	@Override
@@ -1704,7 +1708,12 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		return activityList.stream().map(e->e.getActualAmount()).reduce(BigDecimal.ZERO,BigDecimal::add);
 	}
 
-	@Override
+    @Override
+    public MusicGroupPaymentCalender getApplyCalenderByMusicId(String musicGroupId) {
+		return musicGroupPaymentCalenderDao.findByMusicGroupRegCalender(musicGroupId);
+    }
+
+    @Override
 	@Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
 	public boolean autoUpdateMusicGroupPaymentCalenderStatus() {
 		Date date = new Date();

+ 10 - 48
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -692,9 +692,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Long calenderId = musicGroupRegCalender.getId();
         Integer userId = studentRegistration.getUserId();
 
-        BigDecimal amount = registerPayDto.getAmount(); //前端获取的价格
         BigDecimal orderAmount = BigDecimal.ZERO;
-
         //获取课程价格
 //        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
 //        BigDecimal courseFee = musicOneSubjectClassPlan.getFee() == null ? BigDecimal.ZERO : musicOneSubjectClassPlan.getFee();
@@ -765,25 +763,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             orderAmount = orderAmount.add(musicGroupPaymentCalenderService.getRepairAmount(calenderId));
         }
         //云教练价格和订单
-//        CloudTeacherOrder cloudTeacherOrder = null;
         if (registerPayDto.getBuyCloudTeacher()){
             orderAmount = orderAmount.add(musicGroupPaymentCalenderService.getMemberAmount(calenderId));
-//            studentRegistration.setHasCloudTeacher(0);
-//            //创建订单
-//            cloudTeacherOrder = new CloudTeacherOrder();
-//            cloudTeacherOrder.setType(PeriodEnum.MONTH);//月
-//            cloudTeacherOrder.setTime(musicGroupRegCalender.getMemberValidDate() == null ? 6 : musicGroupRegCalender.getMemberValidDate());
-//            cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
-//            cloudTeacherOrder.setStudentId(studentRegistration.getUserId());
-//            cloudTeacherOrder.setLevel(musicGroupRegCalender.getMemberRankSettingId() == null ? 1 : musicGroupRegCalender.getMemberRankSettingId());
-//            cloudTeacherOrder.setAmount(cloudTeacherPrice);
-//            cloudTeacherOrder.setStatus(0);
-//            cloudTeacherOrder.setMusicGroupId(musicGroup.getId());
         }
         
         studentRegistration.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
         studentRegistration.setOrganId(musicGroup.getOrganId());
-        
         studentRegistration.setPayingStatus(1);
 
         Date date = new Date();
@@ -791,6 +776,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         String orderNo = idGeneratorService.generatorId("payment") + "";
 
         String channelType = "";
+        //生成订单、订单详情
         StudentPaymentOrder studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration,
                 orderAmount,
                 orderNo,
@@ -801,6 +787,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 newCourses,
                 registerPayDto,calenderId);
         orderAmount = studentPaymentOrder.getActualAmount();
+
+        BigDecimal amount = registerPayDto.getAmount(); //前端获取的价格
         if (amount.compareTo(orderAmount) != 0) {
             throw new BizException("商品价格不符");
         }
@@ -810,13 +798,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder = studentPaymentOrderService.get(studentPaymentOrder.getId());
         boolean canPay = studentPaymentOrder.getClassGroupId() != null && studentPaymentOrder.getClassGroupId().equals(206);
         
-//        if(cloudTeacherOrder != null){
-//    		cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
-//    		cloudTeacherOrder.setCreateTime(date);
-//    		cloudTeacherOrder.setUpdateTime(date);
-//    		cloudTeacherOrderService.insert(cloudTeacherOrder);
-//        }
-
         BigDecimal balance = BigDecimal.ZERO;
         if (registerPayDto.getUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
             SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
@@ -2948,7 +2929,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public Map renew(RenewParamDto renewParamDto) throws Exception {
+    public HttpResponseResult renew(RenewParamDto renewParamDto) throws Exception {
         Long calenderId = renewParamDto.getCalenderId();
         Integer userId = renewParamDto.getUserId();
         MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(calenderId);
@@ -2964,23 +2945,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //关闭之前的订单
         if (calenderDetail.getPaymentOrderId() != null) {
             StudentPaymentOrder oldStudentPaymentOrder = studentPaymentOrderDao.get(calenderDetail.getPaymentOrderId());
-            if (oldStudentPaymentOrder != null && oldStudentPaymentOrder.getStatus() == ING) {
-                
-                // 查询订单状态
-                PayStatus payStatus = studentPaymentOrderService.queryPayStatus(oldStudentPaymentOrder.getPaymentChannel(), oldStudentPaymentOrder.getOrderNo(), oldStudentPaymentOrder.getTransNo());
-                if(payStatus != PayStatus.FAILED){
-                	if(payStatus == PayStatus.SUCCESSED){
-                		throw new BizException("订单已支付成功,请勿重复支付");
-                	}/*else if(payStatus == PayStatus.PAYING){
-                		throw new BizException("订单还在交易中,请稍后重试");
-                	}*/
-                }
-                oldStudentPaymentOrder.setStatus(CLOSE);
-                studentPaymentOrderService.update(oldStudentPaymentOrder);
-                if (oldStudentPaymentOrder.getBalancePaymentAmount() != null && oldStudentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
-                    sysUserCashAccountService.updateBalance(oldStudentPaymentOrder.getUserId(), oldStudentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭订单");
-                }
-                sysCouponCodeService.quit(oldStudentPaymentOrder.getCouponCodeId());
+            HttpResponseResult result = studentPaymentOrderService.checkRepeatPay(oldStudentPaymentOrder, renewParamDto.getRepeatPay());
+            if(result.getCode() != 200){
+                return result;
             }
         }
         String orderNo = idGeneratorService.generatorId("payment") + "";
@@ -2994,7 +2961,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setGroupType(GroupType.MUSIC);
         studentPaymentOrder.setUserId(userId);
         studentPaymentOrder.setOrderNo(orderNo);
-        
 		if (calender.getPaymentType() == PaymentType.ADD_STUDENT) {
 			studentPaymentOrder.setType(OrderTypeEnum.ADD_STUDENT);
 		} else {
@@ -3010,16 +2976,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         calenderDetail.setPaymentStatus(PaymentStatus.PROCESSING);
         calenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
         musicGroupPaymentCalenderDetailDao.update(calenderDetail);
-        
-        
-        CloudTeacherOrder cloudTeacherOrder = null;
 
+        CloudTeacherOrder cloudTeacherOrder = null;
         //云教练/云教练+
         if (calender.getMemberRankSettingId() != null) {
-
             //创建订单
             cloudTeacherOrder = new CloudTeacherOrder();
-
     		cloudTeacherOrder.setType(PeriodEnum.MONTH);//月
 			cloudTeacherOrder.setTime(calender.getMemberValidDate());
     		cloudTeacherOrder.setOrganId(organId);
@@ -3075,7 +3037,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             notifyMap.put("channelType", "");
             notifyMap.put("orderNo", "");
             studentPaymentOrderService.updateOrder(notifyMap);
-            return notifyMap;
+            return BaseController.failed(HttpStatus.CREATED, notifyMap, "恭喜您,缴费成功!");
         }
 
         Map<String, Object> payMap = payService.getPayMap(
@@ -3096,7 +3058,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
         studentPaymentOrder.setUpdateTime(date);
         studentPaymentOrderService.update(studentPaymentOrder);
-        return payMap;
+        return BaseController.succeed(payMap);
     }
 
     @Override

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

@@ -1,42 +1,26 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.service.*;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.alibaba.fastjson.JSON;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.MusicGroupGoodsAndDiscountDto;
 import com.ym.mec.biz.dal.dto.MusicGroupRegRespDto;
 import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
-import com.ym.mec.biz.dal.entity.ChargeTypeSubjectMapper;
-import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
-import com.ym.mec.biz.dal.entity.OrganizationCloudTeacherFee;
-import com.ym.mec.biz.dal.entity.OrganizationCourseUnitPriceSettings;
-import com.ym.mec.biz.dal.entity.Subject;
-import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 
 @Service
 public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, MusicGroupSubjectPlan> implements MusicGroupSubjectPlanService {

+ 0 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -538,13 +538,6 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     @Override
-    public StudentPaymentOrder getOrderMoneyAmount(StudentPaymentOrderQueryInfo queryInfo) {
-        Map<String, Object> params = new HashMap<String, Object>();
-        MapUtil.populateMap(params, queryInfo);
-        return studentPaymentOrderDao.getOrderMoneyAmount(params);
-    }
-
-    @Override
     public PageInfoOrder<StudentPaymentOrderDto> OrderQueryPage(StudentPaymentOrderQueryInfo queryInfo) {
         PageInfoOrder<StudentPaymentOrderDto> pageInfo = new PageInfoOrder<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<String, Object>();

+ 0 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1837,12 +1837,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 viewMap.remove(musicGroupId);
             }
         });
-//        List<CourseSchedule> musicGroupsHasStartCourseNums = courseScheduleDao.getMusicGroupsHasStartCourseNum(ids);
-//        for (CourseSchedule musicGroupsHasStartCourseNum : musicGroupsHasStartCourseNums) {
-//            if(viewMap.containsKey(musicGroupsHasStartCourseNum.getMusicGroupId())){
-//                viewMap.remove(musicGroupsHasStartCourseNum.getMusicGroupId());
-//            }
-//        }
         return viewMap;
     }
 

+ 49 - 64
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -2,15 +2,14 @@ package com.ym.mec.student.controller;
 
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.ADD_STUDENT;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY;
+
+import com.ym.mec.biz.service.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
@@ -52,12 +51,6 @@ import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.enums.PayStatus;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
-import com.ym.mec.biz.service.OrganizationService;
-import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
-import com.ym.mec.biz.service.StudentPaymentOrderService;
-import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
@@ -82,7 +75,7 @@ public class MusicGroupController extends BaseController {
     @Autowired
     private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
     @Autowired
-    private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
+    private MusicGroupPaymentCalenderService musicGroupPaymentCalenderService;
     @Autowired
     private StudentPreRegistrationDao studentPreRegistrationDao;
     @Autowired
@@ -169,41 +162,57 @@ public class MusicGroupController extends BaseController {
         if (sysUser != null && Objects.nonNull(sysUser.getId())) {
             userId = sysUser.getId();
         }
-
         StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
         if (studentRegistration == null) {
             return failed(HttpStatus.CONTINUE, "乐团报名信息不存在");
         }
-        
+
         // 判断是否可以继续购买
         List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = studentPaymentOrderDetailService.findUserApplyOrder(userId, musicGroupId, DealStatusEnum.SUCCESS);
+
         if(studentPaymentOrderDetailList != null && studentPaymentOrderDetailList.size() > 0){
-        	List<OrderDetailTypeEnum> typeList = studentPaymentOrderDetailList.stream().map(t -> t.getType()).collect(Collectors.toList());
-        	//判断是否所有类型都购买完
-			if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
-				if (typeList.contains(OrderDetailTypeEnum.MUSICAL) && typeList.contains(OrderDetailTypeEnum.ACCESSORIES)
-						&& (typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER) || typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER_PLUS))) {
-					return failed(HttpStatus.PROCESSING, "您已缴费,请等待乐团开启");
-				}
-			} else {
-				if (typeList.contains(OrderDetailTypeEnum.MUSICAL)
-						&& typeList.contains(OrderDetailTypeEnum.ACCESSORIES)
-						&& (typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER) || typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER_PLUS) || typeList.contains(OrderDetailTypeEnum.COURSE)
-								|| typeList.contains(OrderDetailTypeEnum.HIGH_ONLINE_COURSE) || typeList.contains(OrderDetailTypeEnum.SINGLE)
-								|| typeList.contains(OrderDetailTypeEnum.MIX) || typeList.contains(OrderDetailTypeEnum.HIGH)
-								|| typeList.contains(OrderDetailTypeEnum.VIP) || typeList.contains(OrderDetailTypeEnum.DEMO)
-								|| typeList.contains(OrderDetailTypeEnum.COMPREHENSIVE) || typeList.contains(OrderDetailTypeEnum.ENLIGHTENMENT)
-								|| typeList.contains(OrderDetailTypeEnum.TRAINING_SINGLE) || typeList.contains(OrderDetailTypeEnum.TRAINING_MIX)
-								|| typeList.contains(OrderDetailTypeEnum.HIGH_ONLINE) || typeList.contains(OrderDetailTypeEnum.MUSIC_NETWORK) || typeList
-									.contains(OrderDetailTypeEnum.CLASSROOM))) {
-					return failed(HttpStatus.PROCESSING, "您已缴费,请等待乐团开启");
-				}
-			}
+            List<OrderDetailTypeEnum> typeList = studentPaymentOrderDetailList.stream().map(t -> t.getType()).collect(Collectors.toList());
+            //如果乐器和辅件都买过/那么看是否购买过其他的缴费项
+            if (typeList.contains(OrderDetailTypeEnum.MUSICAL) && typeList.contains(OrderDetailTypeEnum.ACCESSORIES)) {
+                MusicGroupPaymentCalender paymentCalender = musicGroupPaymentCalenderService.getApplyCalenderByMusicId(musicGroupId);
+                HashMap<String, Object> calenderDetail = new HashMap<>(4);
+                musicGroupPaymentCalenderService.getCalenderDetail(calenderDetail,paymentCalender.getId());
+                boolean flag = false;
+                //是否购买乐团课
+                if(Objects.nonNull(calenderDetail.get("course"))){
+                    if(typeList.contains(OrderDetailTypeEnum.COURSE)
+                            || typeList.contains(OrderDetailTypeEnum.HIGH_ONLINE_COURSE) || typeList.contains(OrderDetailTypeEnum.SINGLE)
+                            || typeList.contains(OrderDetailTypeEnum.MIX) || typeList.contains(OrderDetailTypeEnum.HIGH)
+                            || typeList.contains(OrderDetailTypeEnum.DEMO) || typeList.contains(OrderDetailTypeEnum.CLASSROOM)
+                            || typeList.contains(OrderDetailTypeEnum.COMPREHENSIVE) || typeList.contains(OrderDetailTypeEnum.ENLIGHTENMENT)
+                            || typeList.contains(OrderDetailTypeEnum.TRAINING_SINGLE) || typeList.contains(OrderDetailTypeEnum.TRAINING_MIX)
+                            || typeList.contains(OrderDetailTypeEnum.HIGH_ONLINE) || typeList.contains(OrderDetailTypeEnum.MUSIC_NETWORK)){
+                        flag = true;
+                    }else {
+                        flag = false;
+                    }
+                }
+                //是否购买会员
+                if(Objects.nonNull(calenderDetail.get("member"))){
+                    if(typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER) || typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER_PLUS)){
+                        flag = true;
+                    }else {
+                        flag = false;
+                    }
+                }
+                //是否购买活动包
+                if(Objects.nonNull(calenderDetail.get("activity"))){
+                    if(typeList.contains(OrderDetailTypeEnum.VIP) || typeList.contains(OrderDetailTypeEnum.PRACTICE)){
+                        flag = true;
+                    }else {
+                        flag = false;
+                    }
+                }
+                if(flag){
+                    return failed(HttpStatus.PROCESSING, "您已缴费,请等待乐团开启");
+                }
+            }
         }
-        
-        /*if (studentRegistration.getPaymentStatus() != null && studentRegistration.getPaymentStatus() == PaymentStatusEnum.YES) {
-            
-        }*/
 
         if (studentRegistration.getPaymentStatus() == PaymentStatusEnum.NO) {
             return failed("乐团还未开启缴费,请等待通知");
@@ -285,26 +294,7 @@ public class MusicGroupController extends BaseController {
         if(calenderId == null){
             throw new BizException("参数校验失败");
         }
-        MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(calenderId);
-        if (renewParamDto.getRepeatPay() == false) {
-            MusicGroupPaymentCalender.PaymentType paymentType = calender.getPaymentType();
-            OrderTypeEnum type = paymentType== ADD_STUDENT?OrderTypeEnum.ADD_STUDENT:paymentType == MUSIC_APPLY?OrderTypeEnum.APPLY:OrderTypeEnum.RENEW;
-            // 判断是否存在支付中的记录
-            List<StudentPaymentOrder> list = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, calender.getMusicGroupId(), userId, DealStatusEnum.ING,
-                    type);
-            if (list != null && list.size() > 0) {
-                for (StudentPaymentOrder order : list) {
-                    // 查询订单状态
-                    PayStatus payStatus = studentPaymentOrderService.queryPayStatus(order.getPaymentChannel(), order.getOrderNo(), order.getTransNo());
-                    if(payStatus == PayStatus.SUCCESSED){
-                        throw new BizException("订单已支付成功,请勿重复支付");
-                    }/*else if(payStatus == PayStatus.PAYING){
-                        throw new BizException("订单还在交易中,请稍后重试");
-                    }*/
-                    return failed(HttpStatus.CONTINUE, "您有待支付的订单");
-                }
-            }
-        }
+        MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.get(calenderId);
         MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.findByCalenderIdAndUserId(calenderId, userId);
         if (calenderDetail == null) {
             throw new BizException("缴费项不存在该学员,请联系教务老师");
@@ -313,19 +303,14 @@ public class MusicGroupController extends BaseController {
             throw new BizException("您已缴费,请勿重复提交");
         }
         //缴费项目已开启或者单独开启
-        Map renew;
         if (calender.getStatus() == PaymentCalenderStatusEnum.OPEN || calenderDetail.getOpen() == 1) {
             renewParamDto.setUserId(userId);
-            renew = musicGroupService.renew(renewParamDto);
+            return musicGroupService.renew(renewParamDto);
         } else if (calender.getStatus() == PaymentCalenderStatusEnum.OVER) {
             throw new BizException("缴费已截止,如有问题请联系指导老师");
         } else {
             throw new BizException("缴费暂未开始,如有问题请联系指导老师");
         }
-        if (renew.containsKey("tradeState")) {
-            return failed(HttpStatus.CREATED, renew, "恭喜您,缴费成功!");
-        }
-        return succeed(renew);
     }
 
     @ApiOperation(value = "乐团报名支付")