Commit 27fc644d by huluobin

修改内部券免单券使用顺序

parent 6e6d878d
...@@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.function.Consumer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -464,6 +465,8 @@ public class MarketServiceImpl implements MarketService { ...@@ -464,6 +465,8 @@ public class MarketServiceImpl implements MarketService {
}); });
} }
//4、内部券 //4、内部券
if (ListUtil.isNotEmpty(innerCouponCustomerRelevanceServiceList)) { if (ListUtil.isNotEmpty(innerCouponCustomerRelevanceServiceList)) {
//删除之前的内部券抵扣情况记录 //删除之前的内部券抵扣情况记录
...@@ -471,8 +474,11 @@ public class MarketServiceImpl implements MarketService { ...@@ -471,8 +474,11 @@ public class MarketServiceImpl implements MarketService {
.eq(CouponOrderRelevance::getOrderId, orderId) .eq(CouponOrderRelevance::getOrderId, orderId)
.in(CouponOrderRelevance::getCouponCustomerRelevanceId, innerCouponCustomerRelevanceServiceList.stream().map(CouponCustomerRelevance::getId).collect(Collectors.toList()))); .in(CouponOrderRelevance::getCouponCustomerRelevanceId, innerCouponCustomerRelevanceServiceList.stream().map(CouponCustomerRelevance::getId).collect(Collectors.toList())));
innerCouponCustomerRelevanceServiceList //免单券Id
.forEach(couponCustomerRelevance -> { List<Integer> discountConfigListCouponId = discountConfigMapper.selectList(new QueryWrapper<>()).stream().map(DiscountConfig::getCouponId).filter(Objects::nonNull).collect(Collectors.toList());
//内部券计算函数
Consumer<CouponCustomerRelevance> couponCustomerRelevanceConsumer = couponCustomerRelevance -> {
//内部券能用的服务id //内部券能用的服务id
List<Integer> serveIds = couponCustomerRelevanceMapper.queryCouponCustomerServeRelevance(couponCustomerRelevance.getCouponId()); List<Integer> serveIds = couponCustomerRelevanceMapper.queryCouponCustomerServeRelevance(couponCustomerRelevance.getCouponId());
...@@ -530,8 +536,7 @@ public class MarketServiceImpl implements MarketService { ...@@ -530,8 +536,7 @@ public class MarketServiceImpl implements MarketService {
} }
//保存卡券在订单服务上的使用情况 //保存卡券在订单服务上的使用情况
couponOrderRelevanceService.save(couponOrderRelevance); couponOrderRelevanceService.save(couponOrderRelevance);
//免单券Id
List<Integer> discountConfigListCouponId = discountConfigMapper.selectList(new QueryWrapper<>()).stream().map(DiscountConfig::getCouponId).filter(Objects::nonNull).collect(Collectors.toList());
//如果不是免单券 业绩就要扣除实际折扣金额 //如果不是免单券 业绩就要扣除实际折扣金额
if (!discountConfigListCouponId.contains(couponCustomerRelevance.getCouponId())) { if (!discountConfigListCouponId.contains(couponCustomerRelevance.getCouponId())) {
orderServe.setAchievement(orderServe.getAchievement().subtract(actualDiscountAmount)); orderServe.setAchievement(orderServe.getAchievement().subtract(actualDiscountAmount));
...@@ -549,7 +554,21 @@ public class MarketServiceImpl implements MarketService { ...@@ -549,7 +554,21 @@ public class MarketServiceImpl implements MarketService {
else { else {
throw new RRException("内部券冲突"); throw new RRException("内部券冲突");
} }
}); };
//5、免单券
List<CouponCustomerRelevance> freeInnerCouponCustomerRelevanceServiceList = innerCouponCustomerRelevanceServiceList
.stream()
.filter(couponCustomerRelevance -> discountConfigListCouponId.contains(couponCustomerRelevance.getCouponId()))
.collect(Collectors.toList());
freeInnerCouponCustomerRelevanceServiceList.forEach(couponCustomerRelevanceConsumer);
//6、普通内部券
List<CouponCustomerRelevance> normalInnerCouponCustomerRelevanceServiceList = innerCouponCustomerRelevanceServiceList
.stream()
.filter(couponCustomerRelevance -> !discountConfigListCouponId.contains(couponCustomerRelevance.getCouponId()))
.collect(Collectors.toList());
normalInnerCouponCustomerRelevanceServiceList.forEach(couponCustomerRelevanceConsumer);
} }
orderManageMapper.updateById(orderManage); orderManageMapper.updateById(orderManage);
......
...@@ -89,7 +89,7 @@ public class CouponCustomerRelevanceController { ...@@ -89,7 +89,7 @@ public class CouponCustomerRelevanceController {
List<Integer> innerCouponIds = StringUtils.isNotEmpty(couponRelevanceIds) List<Integer> innerCouponIds = StringUtils.isNotEmpty(couponRelevanceIds)
? Lists.newArrayList(couponRelevanceIds.split(",")).stream().map(Integer::valueOf).collect(Collectors.toList()) ? Lists.newArrayList(couponRelevanceIds.split(",")).stream().map(Integer::valueOf).collect(Collectors.toList())
: Lists.newArrayList(); : Lists.newArrayList();
//1、使用内部券
marketService.setUpInnerCoupon(SetUpInnerCouponCommand.builder() marketService.setUpInnerCoupon(SetUpInnerCouponCommand.builder()
.innerCouponCustomerRelevanceIds(innerCouponIds) .innerCouponCustomerRelevanceIds(innerCouponIds)
.orderId(orderId) .orderId(orderId)
...@@ -99,11 +99,13 @@ public class CouponCustomerRelevanceController { ...@@ -99,11 +99,13 @@ public class CouponCustomerRelevanceController {
? Lists.newArrayList(timesCardIds.split(",")).stream().map(Integer::valueOf).collect(Collectors.toList()) ? Lists.newArrayList(timesCardIds.split(",")).stream().map(Integer::valueOf).collect(Collectors.toList())
: Lists.newArrayList(); : Lists.newArrayList();
//2、使用外部券
marketService.setTimesCard(SetTimesCardCommand.builder() marketService.setTimesCard(SetTimesCardCommand.builder()
.orderId(orderId) .orderId(orderId)
.timesCardIds(timesCardCustomerIds) .timesCardIds(timesCardCustomerIds)
.build()); .build());
//3、订单结算
marketService.setterOrder(orderId); marketService.setterOrder(orderId);
return JsonResult.success(); return JsonResult.success();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment