瀏覽代碼

小小训练营活动
1、学生端支持会员购买

zouxuan 3 年之前
父節點
當前提交
2d03eea2c2

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

@@ -454,4 +454,6 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
 
     //获取学员之前的乐团缴费订单数量
     int getStudentMusicOrderNum(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId, @Param("orderId") Long orderId);
+
+    StudentPaymentOrder getMemberIngOrder(@Param("type") OrderTypeEnum type, @Param("status") DealStatusEnum status);
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MemberPayParamDto.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.enums.PeriodEnum;
+
 import java.io.Serializable;
 import java.math.BigDecimal;
 
@@ -16,6 +18,16 @@ public class MemberPayParamDto extends PayParamBasicDto implements Serializable
     //如果isRepeatPay = true 则需要传入订单号
     private String orderNo;
 
+    private PeriodEnum periodEnum;
+
+    public PeriodEnum getPeriodEnum() {
+        return periodEnum;
+    }
+
+    public void setPeriodEnum(PeriodEnum periodEnum) {
+        this.periodEnum = periodEnum;
+    }
+
     public BigDecimal getAmount() {
         return amount;
     }

+ 2 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankSettingService.java

@@ -18,13 +18,10 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
 
     List<MemberRankSetting> queryListByIsDefault(Boolean isDefault);
 
-    /**
-     * 会员购买
-     *
-     * @return
-     */
     HttpResponseResult buy(MemberPayParamDto memberPayParamDto) throws Exception;
 
+    HttpResponseResult buy1(MemberPayParamDto memberPayParamDto) throws Exception;
+
     HttpResponseResult buy2Qqhe(MemberPayParamDto memberPayParamDto) throws Exception;
 
     HttpResponseResult queryBuy2Qqhe();

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

@@ -224,4 +224,7 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
     * @date 2022/1/20 16:23
     */
     void returnBalanceAndCoupon(StudentPaymentOrder studentPaymentOrder,String memo);
+
+    //获取云教练订单
+    StudentPaymentOrder getMemberIngOrder(OrderTypeEnum member, DealStatusEnum status);
 }

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -79,6 +79,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
     private TenantConfigService tenantConfigService;
     @Autowired
     private ActivityUserMapperDao activityUserMapperDao;
+    @Autowired
+    private MemberFeeSettingService memberFeeSettingService;
 
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
@@ -177,6 +179,32 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         return BaseController.succeed(result);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResponseResult buy1(MemberPayParamDto memberPayParamDto) throws Exception {
+        logger.info("团练宝购买:memberPayParamDto:{} ", memberPayParamDto);
+        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(() -> new BizException("用户信息不存在"));
+        //判断用户是否已存在订单
+        StudentPaymentOrder memberIngOrder = studentPaymentOrderService.getMemberIngOrder(OrderTypeEnum.MEMBER, DealStatusEnum.ING);
+        if (Objects.nonNull(memberIngOrder)) {
+            HttpResponseResult result = studentPaymentOrderService.checkRepeatPay(memberIngOrder, memberPayParamDto.getRepeatPay());
+            if (result.getCode() != 200) {
+                return result;
+            }
+        }
+        //获取团练宝价格
+        BigDecimal actualAmount = memberFeeSettingService.getAmount(sysUser.getOrganId(),1,
+                memberPayParamDto.getPeriodEnum(),new BigDecimal(1),
+                MemberFeeSettingServiceImpl::getOriginalFee);
+        //优惠券使用范围
+        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);
+        return BaseController.succeed(result);
+    }
+
     public static final String BUY_2_QQHE_LOCK = "BUY_2_QQHE_LOCK:";
 
     @Override

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

@@ -901,5 +901,10 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
     }
 
+    @Override
+    public StudentPaymentOrder getMemberIngOrder(OrderTypeEnum member, DealStatusEnum status) {
+        return studentPaymentOrderDao.getMemberIngOrder(member, status);
+    }
+
 
 }

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

@@ -1060,6 +1060,14 @@
         SELECT COUNT(0) FROM student_payment_order spo
         WHERE spo.music_group_id_ = #{musicGroupId} AND spo.user_id_ = #{userId} AND group_type_ = 'MUSIC' AND status_ = 'SUCCESS' AND spo.id_ &lt; #{orderId}
     </select>
+    <select id="getMemberIngOrder" resultType="com.ym.mec.biz.dal.entity.StudentPaymentOrder">
+        SELECT *
+        FROM student_payment_order
+        WHERE music_group_id_ IS NULL
+          AND type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+          AND status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        LIMIT 1
+    </select>
 
 
 </mapper>

+ 6 - 0
mec-student/src/main/java/com/ym/mec/student/controller/MemberRankController.java

@@ -63,6 +63,12 @@ public class MemberRankController extends BaseController {
         return memberRankSettingService.buy(memberPayParamDto);
     }
 
+    @ApiOperation(value = "购买会员")
+    @PostMapping("/buy1")
+    public Object buy1(@RequestBody MemberPayParamDto memberPayParamDto) throws Exception {
+        return memberRankSettingService.buy1(memberPayParamDto);
+    }
+
     /**
      * 齐齐哈尔购买团练宝-默认激活
      * <p> 购买规则