Commit 166984b1 by huiyang.chen

Merge branch 'feature-2020/6/29-1.9.29-围餐-会阳' into develop

parents 19112998 c4a43b9e
...@@ -2517,6 +2517,7 @@ public class OrderAdapter { ...@@ -2517,6 +2517,7 @@ public class OrderAdapter {
} }
if (shoppingCartGoodsResponse != null) {
Long scoreReduceAmount = shoppingCartGoodsResponse.getScoreReduceAmount() != null ? shoppingCartGoodsResponse.getScoreReduceAmount() : 0; Long scoreReduceAmount = shoppingCartGoodsResponse.getScoreReduceAmount() != null ? shoppingCartGoodsResponse.getScoreReduceAmount() : 0;
if (scoreReduceAmount > 0 && CustomerScoreConstant.SUBSTRACT.getValue().equals(createReserveOrderVo.getUseCustomerScore())) { if (scoreReduceAmount > 0 && CustomerScoreConstant.SUBSTRACT.getValue().equals(createReserveOrderVo.getUseCustomerScore())) {
Integer reduceScore = shoppingCartGoodsResponse.getReduceScore() != null ? shoppingCartGoodsResponse.getReduceScore().intValue() : 0; Integer reduceScore = shoppingCartGoodsResponse.getReduceScore() != null ? shoppingCartGoodsResponse.getReduceScore().intValue() : 0;
...@@ -2529,6 +2530,7 @@ public class OrderAdapter { ...@@ -2529,6 +2530,7 @@ public class OrderAdapter {
.build(); .build();
sdkUpdateOrderProductInfoRequest.getAccounts().add(createOrderAccountDto); sdkUpdateOrderProductInfoRequest.getAccounts().add(createOrderAccountDto);
} }
}
// Long cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() != null ? shoppingCartGoodsDto.getCardOriginalAmount() : 0L; // Long cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() != null ? shoppingCartGoodsDto.getCardOriginalAmount() : 0L;
// if (cardOriginalAmount > 0) { // if (cardOriginalAmount > 0) {
// CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder() // CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
......
...@@ -21,6 +21,8 @@ import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; ...@@ -21,6 +21,8 @@ import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -44,6 +46,8 @@ import java.util.Objects; ...@@ -44,6 +46,8 @@ import java.util.Objects;
@Service @Service
public class ActivityCalculationDiscountService { public class ActivityCalculationDiscountService {
private static Logger logger = LoggerFactory.getLogger(ActivityCalculationDiscountService.class);
private final static String RESPONSE_SUCCESS_STR = "100"; private final static String RESPONSE_SUCCESS_STR = "100";
@Autowired @Autowired
...@@ -86,6 +90,7 @@ public class ActivityCalculationDiscountService { ...@@ -86,6 +90,7 @@ public class ActivityCalculationDiscountService {
.build(); .build();
CalculationDiscountResultDto calculationDiscountResultDto = getCalculationResult(request, coupons); CalculationDiscountResultDto calculationDiscountResultDto = getCalculationResult(request, coupons);
logger.info("促销分摊:{}",calculationDiscountResultDto);
// 默认计算 // 默认计算
defaultPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion); defaultPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion);
// 套餐计算 // 套餐计算
...@@ -96,6 +101,7 @@ public class ActivityCalculationDiscountService { ...@@ -96,6 +101,7 @@ public class ActivityCalculationDiscountService {
fullPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion); fullPromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion);
// 限时特价 // 限时特价
timeSalePromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion); timeSalePromotionService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion);
logger.info("限时特价shoppingCartGoodsResponse:{}",shoppingCartGoodsResponse);
// 积分抵扣 // 积分抵扣
customerScoreService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion); customerScoreService.updateDiscountApportion(shoppingCartGoodsResponse, request, calculationDiscountResultDto, couponPromotionDto, activityQueryDto, isApportion);
return shoppingCartGoodsResponse; return shoppingCartGoodsResponse;
......
...@@ -18,6 +18,7 @@ import cn.freemud.enums.RedisCacheEnum; ...@@ -18,6 +18,7 @@ import cn.freemud.enums.RedisCacheEnum;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.CouponActivityService;
import cn.freemud.service.thirdparty.ShoppingCartClient; import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.utils.DateTimeUtil; import cn.freemud.utils.DateTimeUtil;
import cn.freemud.utils.LogUtil; import cn.freemud.utils.LogUtil;
...@@ -100,6 +101,8 @@ public class OrderCommonService { ...@@ -100,6 +101,8 @@ public class OrderCommonService {
private MessageCenterClient messageNoticeClient; private MessageCenterClient messageNoticeClient;
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
@Autowired
private CouponActivityService couponActivityService;
private final Integer RESPONSE_SUCCESS_CODE = 100; private final Integer RESPONSE_SUCCESS_CODE = 100;
/** /**
...@@ -272,6 +275,10 @@ public class OrderCommonService { ...@@ -272,6 +275,10 @@ public class OrderCommonService {
LogUtil.error("paySuccessCallback_payAccess_faild", JSON.toJSONString(message), JSON.toJSONString(groupOrderResponse)); LogUtil.error("paySuccessCallback_payAccess_faild", JSON.toJSONString(message), JSON.toJSONString(groupOrderResponse));
return this.newSendPayFaileMessage(); return this.newSendPayFaileMessage();
} }
//若该订单使用了优惠券,则移除卡包,移除失败也不退款
couponActivityService.callbackNotify(orderBean);
// 删除订单自增缓存 // 删除订单自增缓存
redisCache.delete(RedisUtil.getPaymentTransIdSequenceKey(orderBean.getOid())); redisCache.delete(RedisUtil.getPaymentTransIdSequenceKey(orderBean.getOid()));
// 删除支付交易号订单关系缓存 // 删除支付交易号订单关系缓存
......
...@@ -9,6 +9,7 @@ import cn.freemud.entities.vo.CartGoods; ...@@ -9,6 +9,7 @@ import cn.freemud.entities.vo.CartGoods;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.service.IPromotionService; import cn.freemud.service.IPromotionService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -70,7 +71,15 @@ public class TimeSalePromotionService implements IPromotionService { ...@@ -70,7 +71,15 @@ public class TimeSalePromotionService implements IPromotionService {
} }
Integer actualGoodsNumber = numberMap.get(product.getProductId()); Integer actualGoodsNumber = numberMap.get(product.getProductId());
if (actualGoodsNumber > 0) { if (actualGoodsNumber > 0) {
Integer totalDiscountAmount = product.getQty() > actualGoodsNumber ? goods.getDiscountAmount() * actualGoodsNumber / goods.getActualGoodsNumber() : goods.getDiscountAmount() * product.getQty() / goods.getActualGoodsNumber(); // 重新计算单品特价折扣
List<CalculationGoodsActivityDto> discounts = goods.getDiscounts();
Integer actual = 0;
for (CalculationGoodsActivityDto dto: discounts) {
if (ObjectUtils.equals(dto.getType(),ActivityTypeEnum.TYPE_2.getCode())){
actual += dto.getDiscount();
}
}
Integer totalDiscountAmount = product.getQty() > actualGoodsNumber ? actual * actualGoodsNumber / goods.getActualGoodsNumber() : actual * product.getQty() / goods.getActualGoodsNumber();
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(goodsDiscount.getActivityCode()); activityDiscountsDto.setActivityCode(goodsDiscount.getActivityCode());
activityDiscountsDto.setActivityName(goodsDiscount.getActivityName()); activityDiscountsDto.setActivityName(goodsDiscount.getActivityName());
......
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