|
|
@@ -36,6 +36,7 @@ import com.cyksj.enums.GatewayApiCode;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
import com.cyksj.mapper.*;
|
|
|
import com.cyksj.mapper.channel.ShopConfigMapper;
|
|
|
+import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
|
|
|
import com.cyksj.mapper.manage.coupon.CouponMapper;
|
|
|
import com.cyksj.mapper.manage.coupon.CouponSkuMapper;
|
|
|
import com.cyksj.mapper.manage.coupon.CouponUserMapper;
|
|
|
@@ -175,6 +176,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
private final EquipmentDistributeService equipmentDistributeService;
|
|
|
|
|
|
+ private final CouponDistributePopularizeMapper couponDistributePopularizeMapper;
|
|
|
+
|
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
|
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
@@ -298,6 +301,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
orderDon.setType(OrderDon.Type.getType(payRequest.getType()));
|
|
|
orderDon.setIsWebPay(payRequest.getIsWebPay());
|
|
|
orderDon.setSource(payRequest.getSource());
|
|
|
+ orderDon.setCouponExCode(payRequest.getCouponExCode());
|
|
|
if (isNoLogin == null || !isNoLogin) {
|
|
|
//虚拟商品订单,是否是分销订单
|
|
|
if (goodsDon.getType() == 1) {
|
|
|
@@ -500,6 +504,10 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
if (goodsDon.getType() == 2) {
|
|
|
equipmentDistributeService.addDistributeBenefitsChance(order.getUserId(), order.getId());
|
|
|
}
|
|
|
+ //若该订单使用了规定推广者的兑换码 增加上下级关系
|
|
|
+ if (StrUtil.isNotBlank(order.getCouponExCode())) {
|
|
|
+ addDistributeCouponCode(order.getUserId(), order.getCouponExCode());
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
|
log.error("wx增加抽奖机会错误,orderId:{},error:{}", order.getId(), e);
|
|
|
}
|
|
|
@@ -774,6 +782,10 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
if (goodsDon.getType() == 2) {
|
|
|
equipmentDistributeService.addDistributeBenefitsChance(orderDon.getUserId(), orderDon.getId());
|
|
|
}
|
|
|
+ //若该订单使用了规定推广者的兑换码 增加上下级关系
|
|
|
+ if (StrUtil.isNotBlank(orderDon.getCouponExCode())) {
|
|
|
+ addDistributeCouponCode(orderDon.getUserId(), orderDon.getCouponExCode());
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
|
log.error("zfb增加抽奖机会错误,orderId:{},error:{}", orderDon.getId(), e);
|
|
|
}
|
|
|
@@ -1571,4 +1583,30 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 使用推广者的优惠码增加上下级
|
|
|
+ */
|
|
|
+ private void addDistributeCouponCode(Long userId, String couponExCode) {
|
|
|
+ UserDistributeShared userDistributeShared = userDistributeSharedMapper.selectOne(Wrappers.lambdaQuery(UserDistributeShared.class)
|
|
|
+ .eq(UserDistributeShared::getUserId, userId).last("limit 1"));
|
|
|
+ if (userDistributeShared == null) {
|
|
|
+ CouponDistributePopularize couponDistributePopularize = couponDistributePopularizeMapper.selectOne(Wrappers.lambdaQuery(CouponDistributePopularize.class).eq(CouponDistributePopularize::getExCode, couponExCode).last("limit 1"));
|
|
|
+ Optional.ofNullable(couponDistributePopularize).ifPresent(popularize -> {
|
|
|
+ try {
|
|
|
+ UserDistribute userDistribute = userDistributeMapper.selectById(popularize.getId());
|
|
|
+ if (userDistribute == null || !userDistribute.getDeleted()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ UserDistributeShared ud = new UserDistributeShared();
|
|
|
+ ud.setUserId(userId);
|
|
|
+ ud.setSharedId(userDistribute.getUserId());
|
|
|
+ ud.setRemark("优惠码");
|
|
|
+ userDistributeSharedMapper.insert(ud);
|
|
|
+ } catch (DuplicateKeyException e) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|