Commit 166984b1 by huiyang.chen

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

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