Commit 27fc644d by huluobin

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

parent 6e6d878d
......@@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Consumer;
import java.util.stream.Collectors;
@Service
......@@ -464,6 +465,8 @@ public class MarketServiceImpl implements MarketService {
});
}
//4、内部券
if (ListUtil.isNotEmpty(innerCouponCustomerRelevanceServiceList)) {
//删除之前的内部券抵扣情况记录
......@@ -471,8 +474,11 @@ public class MarketServiceImpl implements MarketService {
.eq(CouponOrderRelevance::getOrderId, orderId)
.in(CouponOrderRelevance::getCouponCustomerRelevanceId, innerCouponCustomerRelevanceServiceList.stream().map(CouponCustomerRelevance::getId).collect(Collectors.toList())));
innerCouponCustomerRelevanceServiceList
.forEach(couponCustomerRelevance -> {
//免单券Id
List<Integer> discountConfigListCouponId = discountConfigMapper.selectList(new QueryWrapper<>()).stream().map(DiscountConfig::getCouponId).filter(Objects::nonNull).collect(Collectors.toList());
//内部券计算函数
Consumer<CouponCustomerRelevance> couponCustomerRelevanceConsumer = couponCustomerRelevance -> {
//内部券能用的服务id
List<Integer> serveIds = couponCustomerRelevanceMapper.queryCouponCustomerServeRelevance(couponCustomerRelevance.getCouponId());
......@@ -530,8 +536,7 @@ public class MarketServiceImpl implements MarketService {
}
//保存卡券在订单服务上的使用情况
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())) {
orderServe.setAchievement(orderServe.getAchievement().subtract(actualDiscountAmount));
......@@ -549,7 +554,21 @@ public class MarketServiceImpl implements MarketService {
else {
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);
......
......@@ -89,7 +89,7 @@ public class CouponCustomerRelevanceController {
List<Integer> innerCouponIds = StringUtils.isNotEmpty(couponRelevanceIds)
? Lists.newArrayList(couponRelevanceIds.split(",")).stream().map(Integer::valueOf).collect(Collectors.toList())
: Lists.newArrayList();
//1、使用内部券
marketService.setUpInnerCoupon(SetUpInnerCouponCommand.builder()
.innerCouponCustomerRelevanceIds(innerCouponIds)
.orderId(orderId)
......@@ -99,11 +99,13 @@ public class CouponCustomerRelevanceController {
? Lists.newArrayList(timesCardIds.split(",")).stream().map(Integer::valueOf).collect(Collectors.toList())
: Lists.newArrayList();
//2、使用外部券
marketService.setTimesCard(SetTimesCardCommand.builder()
.orderId(orderId)
.timesCardIds(timesCardCustomerIds)
.build());
//3、订单结算
marketService.setterOrder(orderId);
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