Browse Source

Merge remote-tracking branch 'origin/saas' into saas

hgw 3 years ago
parent
commit
406771b4bf

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentCloudCoachPaymentDetailsDao.java

@@ -13,4 +13,6 @@ public interface StudentCloudCoachPaymentDetailsDao extends BaseDAO<Long, Studen
                      @Param("paymentStatus") Integer paymentStatus,
                      @Param("userIds") List<Integer> userIds,
                      @Param("tenantId") Integer tenantId);
+
+    StudentCloudCoachPaymentDetails findByUserId(@Param("paymentId") Long paymentId, @Param("userId") Integer userId);
 }

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

@@ -5,4 +5,5 @@ import com.ym.mec.common.service.BaseService;
 
 public interface StudentCloudCoachPaymentDetailsService extends BaseService<Long, StudentCloudCoachPaymentDetails> {
 
+    StudentCloudCoachPaymentDetails findByUserId(Long paymentId, Integer userId);
 }

+ 7 - 26
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -106,37 +106,20 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 		return memberRankSettingDao.queryListByIsDefault(isDefault);
 	}
 
-	//是否有购买资格
-	public void buyCloudTeacherActive(Integer userId,Integer activeRemark,String remark){
-		if(activeRemark == null || StringUtils.isEmpty(remark)){
-			return;
-		}
-		if(activeRemark.equals(202109)){
-			if(remark.equals("单月")){
-				return;
-			}
-			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findByUserAndActive(userId,activeRemark,remark,null);
-			if(studentPaymentOrder != null){
-				DealStatusEnum status = studentPaymentOrder.getStatus();
-				if(status == DealStatusEnum.SUCCESS){
-					throw new BizException("您已参与此云教练活动,快去练习吧!");
-				}
-				if(status == DealStatusEnum.ING){
-					throw new BizException("您有待处理的订单,请稍后重试");
-				}
-			}
-		}
-	}
-
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public HttpResponseResult buy(MemberPayParamDto memberPayParamDto) throws Exception {
 		logger.info("云教练购买:memberPayParamDto:{} ",memberPayParamDto);
 		Long paymentId = memberPayParamDto.getPaymentId();
-		StudentCloudCoachPaymentDetails cloudCoachPaymentDetails = studentCloudCoachPaymentDetailsService.get(paymentId);
-		if(cloudCoachPaymentDetails == null){
+		CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(paymentId);
+		if(cloudCoachPaymentProgram == null){
 			throw new BizException("云教练订单不存在,请联系指导老师");
 		}
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		StudentCloudCoachPaymentDetails cloudCoachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(paymentId,sysUser.getId());
+		if(cloudCoachPaymentDetails == null){
+			throw new BizException("云教练订单不存在该学员,请联系指导老师");
+		}
 		if(cloudCoachPaymentDetails.getPaymentStatus() == 1){
 			throw new BizException("当前云教练订单已支付,感谢您的支持");
 		}
@@ -160,8 +143,6 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 		if (organId == null) {
 			throw new BizException("学生没有分部编号");
 		}
-		CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(cloudCoachPaymentDetails.getCloudCoachPaymentProgramId());
-
 		BigDecimal actualAmount = cloudCoachPaymentProgram.getActualAmount();
 
 		Date date = new Date();

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

@@ -2114,9 +2114,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (returnFeeDto.getIsReturnMaintenanceFee()) {
             returnTotalFee = returnTotalFee.add(returnFeeDto.getMaintenanceFee());
         }
-        if (returnFeeDto.getIsReturnMemberFee()) {
+//        if (returnFeeDto.getIsReturnMemberFee()) {
 //            returnTotalFee = returnTotalFee.add(returnFeeDto.getMemberFee());
-        }
+//        }
         if (returnFeeDto.getIsReturnMusicalFee()) {
             returnTotalFee = returnTotalFee.add(returnFeeDto.getMusicalFee());
         }
@@ -2198,7 +2198,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             List<StudentPaymentOrder> studentPaymentOrderList = new ArrayList<StudentPaymentOrder>();
 
             if (studentRegistration.getMusicGroupPaymentCalenderId() == null) {
-                if (currentStudentMusicGroupStatus == StudentMusicGroupStatusEnum.NORMAL || (currentStudentMusicGroupStatus == StudentMusicGroupStatusEnum.APPLY && studentRegistration.getPaymentStatus() == PaymentStatusEnum.YES)) {
+                if (currentStudentMusicGroupStatus == StudentMusicGroupStatusEnum.NORMAL || (currentStudentMusicGroupStatus == StudentMusicGroupStatusEnum.APPLY
+                        && studentRegistration.getPaymentStatus() == PaymentStatusEnum.YES)) {
                     studentPaymentOrderList = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, SUCCESS);
                 }
 
@@ -2244,27 +2245,29 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             if (studentPaymentOrderList.size() > 0) {
 
                 List<Long> paymentOrderIdList = studentPaymentOrderList.stream().map(t -> t.getId()).collect(Collectors.toList());
-
+                //获取最近的一笔报名订单编号
                 Long minPaymentOrderId = Collections.min(paymentOrderIdList);
-
                 List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.getWithIds(paymentOrderIdList);
 
                 SubjectChange studentLastChange = null;
+                //如果退乐器和辅件,那么查找最近的一笔声部更换订单
                 if (returnFeeDto.getIsReturnMusicalFee() || returnFeeDto.getIsReturnAccessoriesFee()) {
                     studentLastChange = subjectChangeDao.getStudentLastChange(userId, musicGroupId);
                 }
 
+                //如果声部更换过
                 if (studentLastChange != null && (studentLastChange.getOriginalOrderId() == null || minPaymentOrderId <= studentLastChange.getOriginalOrderId())) {
+                    //退乐器的同时,退乐保
                     if (returnFeeDto.getIsReturnMusicalFee()) {
+                        //乐器金额是否正确
                         amount = amount.add(studentLastChange.getChangeMusicalPrice());
-
                         StudentInstrument studentMaintenance = studentInstrumentDao.getByOrderId(studentLastChange.getOrderId().longValue());
                         if (studentMaintenance != null) {
                             studentMaintenance.setDelFlag(1);
                             studentInstrumentDao.update(studentMaintenance);
                         }
                     }
-
+                    //退辅件
                     if (returnFeeDto.getIsReturnAccessoriesFee()) {
                         amount = amount.add(studentLastChange.getChangeAccessoriesPrice());
                     }
@@ -2292,14 +2295,21 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
                 //退乐保费用
                 if (returnFeeDto.getIsReturnMaintenanceFee()) {
-                    //是否有乐保
-                    //乐保是否退过
-                    //金额是否正确
+                    //是否有乐保、乐保是否退过、金额是否正确
                     StudentInstrument studentMaintenance = studentInstrumentDao.getStudentMaintenance(userId, musicGroupId);
                     if (returnFeeDto.getMaintenanceFee().compareTo(BigDecimal.ZERO) > 0) {
                         if (studentMaintenance == null) {
                             throw new BizException("学生没有有效期内的乐保,不能退乐保费用");
                         }
+                        //金额是否正确
+                        List<StudentPaymentOrderDetail> orderDetails = orderDetailList.stream().filter(e -> e.getType() == MAINTENANCE).collect(Collectors.toList());
+                        BigDecimal maintenanceFee = BigDecimal.ZERO;
+                        if(orderDetails != null && orderDetails.size() > 0){
+                            maintenanceFee = orderDetails.stream().map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+                        }
+                        if(returnFeeDto.getMaintenanceFee().compareTo(maintenanceFee) > 0){
+                            throw new BizException("乐保退费金额异常");
+                        }
                     }
                     amount = amount.add(returnFeeDto.getMaintenanceFee());
                     if (returnFeeDto.getMaintenanceFee().compareTo(BigDecimal.ZERO) > 0 && studentMaintenance != null) {

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

@@ -18,5 +18,9 @@ public class StudentCloudCoachPaymentDetailsServiceImpl extends BaseServiceImpl<
 	public BaseDAO<Long, StudentCloudCoachPaymentDetails> getDAO() {
 		return studentCloudCoachPaymentDetailsDao;
 	}
-	
+
+    @Override
+    public StudentCloudCoachPaymentDetails findByUserId(Long paymentId, Integer userId) {
+        return studentCloudCoachPaymentDetailsDao.findByUserId(paymentId,userId);
+    }
 }

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/StudentCloudCoachPaymentDetailsMapper.xml

@@ -92,4 +92,7 @@
 		SELECT COUNT(DISTINCT sccpd.id_) FROM student_cloud_coach_payment_details sccpd
 		<include refid="queryPageSql"/>
 	</select>
+	<select id="findByUserId" resultMap="StudentCloudCoachPaymentDetails">
+		SELECT * FROM student_cloud_coach_payment_details WHERE cloud_coach_payment_program_id_ = #{paymentId} AND user_id_ = #{userId} LIMIT 1
+	</select>
 </mapper>