Prechádzať zdrojové kódy

小小训练营活动
1、学员端支持购买云教练

zouxuan 3 rokov pred
rodič
commit
93277b2d5c

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

@@ -123,4 +123,6 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
     * @date 2022/3/21 11:59
     */
     void save(CloudTeacherOrder cloudTeacherOrder,Boolean autoActivationFlag);
+
+    CloudTeacherOrder queryByOrderId(Long orderId);
 }

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

@@ -258,6 +258,11 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         }
     }
 
+    @Override
+    public CloudTeacherOrder queryByOrderId(Long orderId) {
+        return cloudTeacherOrderDao.queryByOrderId(orderId);
+    }
+
     public Boolean payCheck(String orderNo) {
         TenantOrderRecord record = tenantOrderRecordService.getOne(new QueryWrapper<TenantOrderRecord>().eq("order_no_", orderNo));
         return record.getOrderState() == 1;

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberFeeSettingServiceImpl.java

@@ -95,4 +95,31 @@ public class MemberFeeSettingServiceImpl extends BaseServiceImpl<Integer, Member
         return amount;
     }
 
+    public static BigDecimal getCurrentFee (PeriodEnum periodEnum, MemberFeeSetting memberFee) {
+        BigDecimal amount;
+        switch (periodEnum) {
+            case DAY:
+                amount = memberFee.getCurrentDayFee();
+                break;
+            case MONTH:
+                amount = memberFee.getCurrentMonthFee();
+                break;
+            case QUARTERLY:
+                amount = memberFee.getCurrentQuarterlyFee();
+                break;
+            case YEAR_HALF:
+                amount = memberFee.getCurrentHalfYearFee();
+                break;
+            case YEAR:
+                amount = memberFee.getCurrentYearFee();
+                break;
+            default:
+                throw new BizException("请选择正确的会员有效期");
+        }
+        if (Objects.isNull(amount)) {
+            throw new BizException("未设置会员有效期的价格");
+        }
+        return amount;
+    }
+
 }

+ 48 - 22
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
 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.CloudTeacherOrderDto;
 import com.ym.mec.biz.dal.dto.MemberPayParamDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
@@ -195,13 +196,24 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         //获取团练宝价格
         BigDecimal actualAmount = memberFeeSettingService.getAmount(sysUser.getOrganId(),1,
                 memberPayParamDto.getPeriodEnum(),new BigDecimal(1),
-                MemberFeeSettingServiceImpl::getOriginalFee);
+                MemberFeeSettingServiceImpl::getCurrentFee);
         //优惠券使用范围
         String[] checkCoupon = CouponDetailTypeEnum.getAllowType(MEMBER);
         //校验优惠券
         StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(memberPayParamDto.getCouponIdList(), actualAmount, true, checkCoupon);
         studentPaymentOrder.setMemo("学员团练宝购买");
         Map<String, Object> result = getMap(memberPayParamDto.getAmount(), memberPayParamDto.getUseBalancePayment(), sysUser.getId(), sysUser.getOrganId(), studentPaymentOrder);
+        //生产团练宝订单
+        CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
+        cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
+        cloudTeacherOrder.setLevel(1);
+        cloudTeacherOrder.setStatus(0);
+        cloudTeacherOrder.setType(memberPayParamDto.getPeriodEnum());
+        cloudTeacherOrder.setTime(1);
+        cloudTeacherOrder.setStudentId(sysUser.getId());
+        cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
+        cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
+        cloudTeacherOrderService.insert(cloudTeacherOrder);
         return BaseController.succeed(result);
     }
 
@@ -511,27 +523,41 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                     //删除标记
                     cache.delete();
                 } else {
-                    CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(Long.parseLong(studentPaymentOrder.getMusicGroupId()));
-                    StudentCloudCoachPaymentDetails coachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(cloudCoachPaymentProgram.getId(), studentPaymentOrder.getUserId());
-                    //保存团练宝数据
-                    CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
-                    cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
-                    cloudTeacherOrder.setLevel(cloudCoachPaymentProgram.getMemberRankSettingId());
-                    cloudTeacherOrder.setStatus(1);
-                    cloudTeacherOrder.setType(cloudCoachPaymentProgram.getPeriod());
-                    cloudTeacherOrder.setTime(cloudCoachPaymentProgram.getMemberNum().intValue());
-                    cloudTeacherOrder.setStudentId(coachPaymentDetails.getUserId());
-                    cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
-                    cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
-                    cloudTeacherOrderService.save(cloudTeacherOrder,cloudCoachPaymentProgram.getAutoActivationFlag());
-
-                    //修改缴费状态
-                    coachPaymentDetails.setPaymentStatus(1);
-                    coachPaymentDetails.setPaymentOrderId(studentPaymentOrder.getId());
-                    studentCloudCoachPaymentDetailsService.update(coachPaymentDetails);
-                    //修改实际缴费人数
-                    cloudCoachPaymentProgram.setPaymentUserNum(cloudCoachPaymentProgram.getPaymentUserNum() + 1);
-                    cloudCoachPaymentProgramService.update(cloudCoachPaymentProgram);
+                    if(StringUtils.isNotEmpty(studentPaymentOrder.getMusicGroupId())){
+                        CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(Long.parseLong(studentPaymentOrder.getMusicGroupId()));
+                        StudentCloudCoachPaymentDetails coachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(cloudCoachPaymentProgram.getId(), studentPaymentOrder.getUserId());
+                        //保存团练宝数据
+                        CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
+                        cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
+                        cloudTeacherOrder.setLevel(cloudCoachPaymentProgram.getMemberRankSettingId());
+                        cloudTeacherOrder.setStatus(1);
+                        cloudTeacherOrder.setType(cloudCoachPaymentProgram.getPeriod());
+                        cloudTeacherOrder.setTime(cloudCoachPaymentProgram.getMemberNum().intValue());
+                        cloudTeacherOrder.setStudentId(coachPaymentDetails.getUserId());
+                        cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
+                        cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
+                        cloudTeacherOrderService.save(cloudTeacherOrder,cloudCoachPaymentProgram.getAutoActivationFlag());
+
+                        //修改缴费状态
+                        coachPaymentDetails.setPaymentStatus(1);
+                        coachPaymentDetails.setPaymentOrderId(studentPaymentOrder.getId());
+                        studentCloudCoachPaymentDetailsService.update(coachPaymentDetails);
+                        //修改实际缴费人数
+                        cloudCoachPaymentProgram.setPaymentUserNum(cloudCoachPaymentProgram.getPaymentUserNum() + 1);
+                        cloudCoachPaymentProgramService.update(cloudCoachPaymentProgram);
+                    }else {
+                        CloudTeacherOrder cloudTeacherOrder = cloudTeacherOrderService.queryByOrderId(studentPaymentOrder.getId());
+                        if (cloudTeacherOrder == null) {
+                            throw new BizException("该云教练订单不存在");
+                        }
+                        if(cloudTeacherOrder.getStatus() == 2){
+                            throw new BizException("该云教练订单已经生效");
+                        }
+                        if(cloudTeacherOrder.getStatus() == 1){
+                            throw new BizException("该云教练订单已经支付");
+                        }
+                        cloudTeacherOrderService.save(cloudTeacherOrder,true);
+                    }
                 }
             }
             // 插入交易明细