Commit 288e8362 by 缪晖

Merge branch 'feature/20201208_collageOrder_miaohui' into 'develop'

Feature/20201208 collage order miaohui

See merge request !71
parents d23de111 28ba4084
...@@ -80,7 +80,7 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -80,7 +80,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
collageOrderDto.setShopId(createOrderVo.getShopId()); collageOrderDto.setShopId(createOrderVo.getShopId());
collageOrderDto.setCreateCollageUserId(createOrderVo.getUserId()); collageOrderDto.setCreateCollageUserId(createOrderVo.getUserId());
BaseResponse<Integer> collageOrderResponse = shoppingCartClient.getCollageOrderStatus(collageOrderDto); BaseResponse<Integer> collageOrderResponse = shoppingCartClient.getCollageOrderStatus(collageOrderDto);
if (null == collageOrderResponse || null == collageOrderResponse.getResult()) { if (null == collageOrderResponse || null == collageOrderResponse.getResult() || -1 == collageOrderResponse.getResult()) {
return ResponseUtil.error(ResponseResult.COLLAGE_ORDER_CREATE_ERROR_NOT_EXIST); return ResponseUtil.error(ResponseResult.COLLAGE_ORDER_CREATE_ERROR_NOT_EXIST);
} else if (1 == collageOrderResponse.getResult()) { } else if (1 == collageOrderResponse.getResult()) {
return ResponseUtil.error(ResponseResult.COLLAGE_ORDER_CREATE_ERROR_PAYED); return ResponseUtil.error(ResponseResult.COLLAGE_ORDER_CREATE_ERROR_PAYED);
...@@ -95,27 +95,27 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -95,27 +95,27 @@ public class CollageOrderServiceImpl implements CollageOrderService {
BaseResponse orderCreateResponse = this.orderService.createOrderNew(createOrderVo); BaseResponse orderCreateResponse = this.orderService.createOrderNew(createOrderVo);
if (null != orderCreateResponse && null != orderCreateResponse.getResult()) { // if (null != orderCreateResponse && null != orderCreateResponse.getResult()) {
Object result = orderCreateResponse.getResult(); // Object result = orderCreateResponse.getResult();
//
String oid = null; // String oid = null;
//
if (result instanceof CreateOrderOperateDto) { // if (result instanceof CreateOrderOperateDto) {
oid = ((CreateOrderOperateDto) result).getFatherOrderBean().getOid(); // oid = ((CreateOrderOperateDto) result).getFatherOrderBean().getOid();
} else if (result instanceof CreateOrderResponseVo) { // } else if (result instanceof CreateOrderResponseVo) {
oid = ((CreateOrderResponseVo) result).getOid(); // oid = ((CreateOrderResponseVo) result).getOid();
} // }
//
// 清空拼单购物车 // // 清空拼单购物车
collageOrderDto = new CollageOrderDto(); // collageOrderDto = new CollageOrderDto();
collageOrderDto.setSessionId(StringUtils.isBlank(createOrderVo.getSessionId()) ? oid : createOrderVo.getSessionId()); // collageOrderDto.setSessionId(StringUtils.isBlank(createOrderVo.getSessionId()) ? oid : createOrderVo.getSessionId());
collageOrderDto.setPartnerId(createOrderVo.getPartnerId()); // collageOrderDto.setPartnerId(createOrderVo.getPartnerId());
collageOrderDto.setShopId(createOrderVo.getShopId()); // collageOrderDto.setShopId(createOrderVo.getShopId());
collageOrderDto.setCreateCollageUserId(createOrderVo.getUserId()); // collageOrderDto.setCreateCollageUserId(createOrderVo.getUserId());
collageOrderDto.setOrderCode(oid); // collageOrderDto.setOrderCode(oid);
collageOrderDto.setStatus(3);//支付中 // collageOrderDto.setStatus(3);//支付中
shoppingCartClient.updateCollageOrder(collageOrderDto); // shoppingCartClient.updateCollageOrder(collageOrderDto);
} // }
return orderCreateResponse; return orderCreateResponse;
} }
......
...@@ -103,6 +103,7 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -103,6 +103,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
@Override @Override
public BaseResponse queryCollageOrderStatus(CollageOrderRequestVo request) { public BaseResponse queryCollageOrderStatus(CollageOrderRequestVo request) {
CollageOrderDto collageOrderDto = this.collageOrderAdapter.convert2CollageOrderDto(request); CollageOrderDto collageOrderDto = this.collageOrderAdapter.convert2CollageOrderDto(request);
collageOrderDto.setCreateCollageUserId(this.getUserIdBySessionId(request.getSessionId()));
BaseResponse<CollageOrder> queryCollageOrderResponse = this.collageOrderBaseService.queryCollageOrder(collageOrderDto); BaseResponse<CollageOrder> queryCollageOrderResponse = this.collageOrderBaseService.queryCollageOrder(collageOrderDto);
CollageOrder collageOrder = queryCollageOrderResponse.getResult(); CollageOrder collageOrder = queryCollageOrderResponse.getResult();
return ResponseUtil.success(null == collageOrder ? -1 : collageOrder.getStatus()); return ResponseUtil.success(null == collageOrder ? -1 : collageOrder.getStatus());
......
...@@ -7,6 +7,7 @@ import cn.freemud.base.entity.BaseResponse; ...@@ -7,6 +7,7 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ShoppingCartConstant; import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto; import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
...@@ -706,6 +707,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -706,6 +707,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
// 购物车购买人包装费计算 // 购物车购买人包装费计算
updatePackPrice(shoppingCartGoodsResponseVo, shoppingCartGoodsDto); updatePackPrice(shoppingCartGoodsResponseVo, shoppingCartGoodsDto);
// 重新计算购物车行折扣总金额
//updateTotalDiscountAmount(shoppingCartGoodsDto);
return ResponseUtil.success(shoppingCartGoodsDto); return ResponseUtil.success(shoppingCartGoodsDto);
} }
...@@ -726,6 +730,20 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -726,6 +730,20 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
} }
} }
/**
* 重新计算拼单购物车行总折扣金额
*/
private void updateTotalDiscountAmount(ShoppingCartGoodsDto shoppingCartGoodsDto) {
if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getProducts()) {
shoppingCartGoodsDto.getProducts().stream().forEach(product -> {
List<ActivityDiscountsDto> activityDiscountsDtos = product.getActivityDiscountsDtos();
if (null != activityDiscountsDtos && !activityDiscountsDtos.isEmpty()) {
product.setTotalDiscountAmount(activityDiscountsDtos.stream().mapToInt(ActivityDiscountsDto::getDiscountAmount).sum());
}
});
}
}
@Override @Override
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String menuType, Long distributionFee) { public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String menuType, Long distributionFee) {
ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType); ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType);
...@@ -783,6 +801,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -783,6 +801,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
return (int) (o1.getAddCartTime() - o2.getAddCartTime()); return (int) (o1.getAddCartTime() - o2.getAddCartTime());
} }
}); });
List<String> cartGoodsUidList = calculationDiscountGoodsList.stream().map(ActivityCalculationDiscountRequestDto.CalculationDiscountGoods::getCartGoodsUid).collect(toList());
activityCalculationDiscountRequestDto.setGoods(calculationDiscountGoodsList); activityCalculationDiscountRequestDto.setGoods(calculationDiscountGoodsList);
activityCalculationDiscountRequestDto.setCoupons(coupons); activityCalculationDiscountRequestDto.setCoupons(coupons);
activityCalculationDiscountRequestDto.setOrgIds(commonService.getOrgIds(partnerId, storeId)); activityCalculationDiscountRequestDto.setOrgIds(commonService.getOrgIds(partnerId, storeId));
...@@ -802,6 +821,17 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -802,6 +821,17 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
result.setValidCouponMap(validCouponMap); result.setValidCouponMap(validCouponMap);
result.setDeliveryAmount(distributionFee); result.setDeliveryAmount(distributionFee);
result.setDistributionFee(result.getDistributionFee()); result.setDistributionFee(result.getDistributionFee());
// 返回之前根据购物车行进行排序
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods> apportionGoodsList = new ArrayList<>();
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodList = new ArrayList<>();
cartGoodsUidList.stream().forEach(cartGoodsUid -> {
apportionGoodsList.add(result.getApportionGoods().stream().filter(apportionGoods -> cartGoodsUid.equals(apportionGoods.getCartGoodsUid())).findFirst().get());
goodList.add(result.getGoods().stream().filter(goods -> cartGoodsUid.equals(goods.getCartGoodsUid())).findFirst().get());
});
result.setApportionGoods(apportionGoodsList);
result.setGoods(goodList);
return result; return result;
} }
// 支付宝华莱士紧急修改代码,当促销返回103错误码时,需要报券不适用于该门店,且清空购物车 // 支付宝华莱士紧急修改代码,当促销返回103错误码时,需要报券不适用于该门店,且清空购物车
...@@ -1265,36 +1295,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -1265,36 +1295,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
if (response.getData() == null || response.getData().getData() == null || response.getData().getData().getCardSimpleInfos().size() > 1) { if (response.getData() == null || response.getData().getData() == null || response.getData().getData().getCardSimpleInfos().size() > 1) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR); throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
} }
boolean check = this.checkSvcComPay(partnerId, storeId);
if (check) {
//混合支付无需校验svc卡余额,但是配送和包装费不计算在svc卡支付
Integer amount1 = response.getData().getData().getCardSimpleInfos().get(0).getAmount();
Integer vamount = response.getData().getData().getCardSimpleInfos().get(0).getVamount();
Integer svcTotalAmount = amount1+vamount;
//获取实际配送费
Integer deliveryAmount = 0;
Integer svcPayAmount = 0;
if (StringUtils.isNotBlank(receiveId) && shoppingCartGoodsResponseVo.getDiscountDeliveryAmount() != null) {
//Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId);
deliveryAmount = shoppingCartGoodsResponseVo.getDiscountDeliveryAmount().intValue();
orderAmount += deliveryAmount;
}
if (svcTotalAmount>0 && svcTotalAmount>orderAmount) {
svcPayAmount = orderAmount;
shoppingCartGoodsResponseVo.setTotalAmount(0L);
}
else if (svcTotalAmount>0 && svcTotalAmount<=orderAmount) {
svcPayAmount = svcTotalAmount;
shoppingCartGoodsResponseVo.setTotalAmount((orderAmount.longValue()-svcPayAmount.longValue()));
}
BigDecimal bigDecimal = new BigDecimal(svcPayAmount);
String amountStr = bigDecimal.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).toString();
shoppingCartGoodsResponseVo.setSvcPayAmount(amountStr);
shoppingCartGoodsResponseVo.setSvcDiscountDesc("储值卡支付¥" + amountStr);
}
else {
//获取实际配送费 //获取实际配送费
if (StringUtils.isNotBlank(receiveId) && shoppingCartGoodsResponseVo.getDiscountDeliveryAmount() != null) { if (StringUtils.isNotBlank(receiveId) && shoppingCartGoodsResponseVo.getDiscountDeliveryAmount() != null) {
// Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId);
Integer deliveryAmount = shoppingCartGoodsResponseVo.getDiscountDeliveryAmount().intValue(); Integer deliveryAmount = shoppingCartGoodsResponseVo.getDiscountDeliveryAmount().intValue();
orderAmount += deliveryAmount; orderAmount += deliveryAmount;
} }
...@@ -1308,7 +1311,6 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -1308,7 +1311,6 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
shoppingCartGoodsResponseVo.setTotalAmount(0L); shoppingCartGoodsResponseVo.setTotalAmount(0L);
shoppingCartGoodsResponseVo.setSvcDiscountDesc("储值卡支付¥" + amountStr); shoppingCartGoodsResponseVo.setSvcDiscountDesc("储值卡支付¥" + amountStr);
} }
}
/** /**
* 获取混合支付是否开启 * 获取混合支付是否开启
......
...@@ -116,7 +116,7 @@ public class TimeSalePromotionService implements IPromotionService { ...@@ -116,7 +116,7 @@ public class TimeSalePromotionService implements IPromotionService {
} }
Integer actualGoodsNumber = numberMap.get(cartGoods.getSkuId()); Integer actualGoodsNumber = numberMap.get(cartGoods.getSkuId());
if (actualGoodsNumber > 0) { if (actualGoodsNumber > 0) {
Long totalDiscountAmount = cartGoods.getQty() > actualGoodsNumber ? goods.getDiscountAmount() * actualGoodsNumber / goods.getActualGoodsNumber() : goods.getDiscountAmount() * cartGoods.getQty() / goods.getActualGoodsNumber(); Long totalDiscountAmount = cartGoods.getQty() > actualGoodsNumber ? goodsDiscount.getDiscount() * actualGoodsNumber / goodsDiscount.getActualGoodsNumber() : goodsDiscount.getDiscount() * cartGoods.getQty() / goodsDiscount.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