Browse Source

Merge remote-tracking branch 'origin/feature/1113-vipCourse' into feature/1113-vipCourse

zouxuan 7 months ago
parent
commit
64be2c48ca

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MemberPriceSettingsService.java

@@ -18,6 +18,7 @@ import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  *  服务类
@@ -119,4 +120,6 @@ public interface MemberPriceSettingsService extends IService<MemberPriceSettings
     MemberPriceSettingsWrapper.UserDiscount getDiscount(Long userId);
 
     MemberPriceSettingsWrapper.UserDiscount getDiscountByOrder(Long userId, Long orderDetilId);
+
+    Map<Long,MemberPriceSettings> getMapByIds(List<Long> memberPriceSettingsIds);
 }

+ 11 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MemberPriceSettingsServiceImpl.java

@@ -29,6 +29,7 @@ import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.utils.date.DateUtil;
+import org.apache.commons.collections.CollectionUtils;
 import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -393,7 +394,7 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 
             Student student = studentService.getById(userId);
 
-            Date startTime = student.getDiscountStartTime();
+            Date startTime = student.getDiscountEndTime();
 
 
             boolean flag = false;
@@ -431,6 +432,15 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
         return result;
     }
 
+    @Override
+    public Map<Long, MemberPriceSettings> getMapByIds(List<Long> memberPriceSettingsIds) {
+        if (CollectionUtils.isEmpty(memberPriceSettingsIds)) {
+            return new HashMap<>();
+        }
+        Collection<MemberPriceSettings> memberPriceSettings = listByIds(memberPriceSettingsIds);
+        return memberPriceSettings.stream().collect(Collectors.toMap(MemberPriceSettings::getId, a -> a));
+    }
+
 
     @Override
     @Transactional

+ 19 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -290,6 +290,25 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             });
             userOrderVo.setOrderDetailList(orderDetilList);
 
+            // 会员,畅学卡 返回周期类
+            List<Long> memberPriceSettingsIds = orderDetilList.stream()
+                    .filter(o -> Lists.newArrayList(GoodTypeEnum.DISCOUNT, GoodTypeEnum.VIP, GoodTypeEnum.SVIP).contains(o.getGoodType()))
+                    .map(UserOrderDetail::getBizId)
+                    .filter(Objects::nonNull)
+                    .collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(memberPriceSettingsIds)) {
+                Map<Long, MemberPriceSettings> memberPriceSettingsMap = memberPriceSettingsService.getMapByIds(memberPriceSettingsIds);
+                orderDetilList.forEach(o -> {
+                    if (Lists.newArrayList(GoodTypeEnum.DISCOUNT, GoodTypeEnum.VIP, GoodTypeEnum.SVIP).contains(o.getGoodType())) {
+                        MemberPriceSettings memberPriceSettings = memberPriceSettingsMap.get(o.getBizId());
+                        if (memberPriceSettings != null) {
+                            o.setPeriod(memberPriceSettings.getPeriod());
+                        }
+                    }
+                });
+            }
+
+
             // 计算优惠券金额
             CouponOrderWrapper couponOrderWrapper  = couponInfoService.queryUserOrderCouponInfo(userOrderVo.getUserId(),
                     CouponInfoQuery.CouponOrderQuery.builder()

+ 14 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java

@@ -480,6 +480,13 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
                 // 更新订单关闭状态
                 userPaymentOrderService.updateById(order);
 
+
+                // 重置优惠券状态
+                couponInfoService.updateUserOrderCouponInfo(CouponOrderWrapper.builder()
+                        .orderNo(paymentOrder.getOrderNo())
+                        .reset(true)
+                        .build());
+
                 // 订单关闭后的数据处理流程
                 userOrderService.payCancel(userOrderService.detail(order.getId()));
 
@@ -1261,8 +1268,15 @@ DISCOUNT("畅学卡")
             .build();
         userPaymentOrderService.updateById(order);
 
+
+        // 重置优惠券状态
+        couponInfoService.updateUserOrderCouponInfo(CouponOrderWrapper.builder()
+                .orderNo(paymentOrder.getOrderNo())
+                .reset(true)
+                .build());
         // 订单关闭后的数据处理流程
         userOrderService.payCancel(userOrderService.detail(order.getId()));
+
     }
 
 

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderDetailVo.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.yonge.cooleshow.biz.dal.entity.UserOrderDetail;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.PeriodEnum;
 import com.yonge.cooleshow.common.enums.EPaymentVersion;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -68,6 +69,8 @@ public class UserOrderDetailVo extends UserOrderDetail {
     @ApiModelProperty("支付版本 ")
     private EPaymentVersion paymentVersion;
 
+    @ApiModelProperty("周期 ")
+    private PeriodEnum period;
 
     @ApiModelProperty(value = "vip剩余天数")
     private Integer vipEndDays =0;

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml

@@ -246,7 +246,7 @@
             select 1 from user_order_detail d where t.order_no_ = d.order_no_
             and find_in_set(d.good_type_ ,#{param.goodType})
             <choose>
-                <when test="param.goodType != null and param.goodType != 'PRACTICE'">
+                <when test="param.goodType != null and param.goodType != 'PRACTICE' and param.goodType != 'VIP_COURSE'">
                     <if test="param.bizId != null">
                         and d.biz_id_ = #{param.bizId}
                     </if>