Commit 65a73f45 by 张跃

Merge branch 'featur/20210519-加价购优化'

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/coupon/impl/PlatformCouponRelationServiceImpl.java
parents 34deae0f 462d04f1
......@@ -40,8 +40,23 @@ public class CouponCodeVerificationDto extends CouponCodeBaseDto {
private String memberId;
/**
* 订单金额:订单总金额(未使用优惠时)
*/
private Long orderTotalAmount;
/**
* 实付金额:支付时的合计金额
*/
private Long orderPaymentAmount;
/**
* 优惠金额:餐饮订单中的【商家优惠】金额
*/
private Long orderDiscountAmount;
/**
* 核销交易信息
*/
private List<CouponCodeVerificationTransDto> transactions;
}
}
\ No newline at end of file
......@@ -74,6 +74,12 @@ public class QueryOrdersResponseDto {
* 总金额
*/
private Long amount;
/**
* 订单原始金额,单位分
*/
private BigDecimal originalAmount;
/**
* 吧台桌号
*/
......@@ -519,6 +525,9 @@ public class QueryOrdersResponseDto {
* 自定义对象
*/
private String addInfo;
//商家优惠
private Long shopDiscountAmount;
}
}
}
......
......@@ -38,7 +38,6 @@ import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCouponSdkService;
import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.ThirdPartyLog;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.service.EmailAlertService;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
......@@ -104,6 +103,9 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService
|| OrderAccountType.PRODUCT_COUPON.getCode().equals(accountBean.getType())
|| OrderAccountType.DISCOUNT_COUPON.getCode().equals(accountBean.getType())) {
CouponCodeVerificationDto couponCodeVerificationDto = couponAdapter.convert2CouponCodeVerificationDto(activityChannelEnum, accountBean.getAccountId(), orderBean.getOid(), orderBean.getCompanyId(), orderBean.getShopId(), orderBean.getUserId(), products, accountBean.getPrice().intValue(),couponReqType);
couponCodeVerificationDto.setOrderTotalAmount(orderBean.getOriginalAmount()==null ? 0L: orderBean.getOriginalAmount().longValue());
couponCodeVerificationDto.setOrderPaymentAmount(orderBean.getAmount());
couponCodeVerificationDto.setOrderDiscountAmount(Math.abs(orderBean.getAccountList().stream().mapToLong(account->account.getShopDiscountAmount()==null?0L:account.getShopDiscountAmount()).sum()));
// 核销券新增参数:组织机构ID
couponCodeVerificationDto.setChannel_codes(storeService.getOrgIdsArr(orderBean.getCompanyId(), orderBean.getShopId()));
try {
......
......@@ -61,6 +61,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -204,14 +205,16 @@ public class ShoppingCartDemoController {
premiumRequest.setShopId(listCartGoodsBO.getShopId());
premiumRequest.setVersion(listCartGoodsBO.getVersion());
BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(premiumRequest);
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = null;
if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode())
&& premiumExchangeResponseVoBaseResponse.getResult() != null && CollectionUtils.isNotEmpty(premiumExchangeResponseVoBaseResponse.getResult().getProducts())){
List<PremiumExchangeResponseVo.PremiumExchangeProduct> products = premiumExchangeResponseVoBaseResponse.getResult().getProducts();
List<String> sendGoodsIdList = listCartGoodsBO.getSendGoods().stream().map(p -> p.getGoodsId()).collect(toList());
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList());
chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList());
long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum();
baseListCartGoodsVO.setSendGoodsAmount(sendGoodsAmount);
}
updateForPopupWindow(baseListCartGoodsVO,premiumExchangeResponseVoBaseResponse.getResult().getShowType(),chooseSendGoodList,baseRequestDTO.getSendGoods());
}
// 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除
......@@ -219,6 +222,44 @@ public class ShoppingCartDemoController {
}
public void updateForPopupWindow(BaseListCartGoodsVO baseListCartGoodsVO, Integer showType, List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList,
List<ListCartGoodsBO.SendGoods> sendGoods) {
if(Integer.valueOf("5").equals(showType) && !org.springframework.util.CollectionUtils.isEmpty(chooseSendGoodList)){
chooseSendGoodList.forEach(good->{
ListCartGoodsBO.SendGoods first =null;
if(sendGoods !=null) {
first = sendGoods.stream().filter(a -> a.getGoodsId().equals(good.getPid())).findFirst().orElseGet(null);
}
CartGoods cartGoods = new CartGoods();
cartGoods.setSpuId(good.getSpuId());
cartGoods.setSkuId(good.getSkuId());
cartGoods.setSkuName(good.getSkuName());
cartGoods.setOriginalAmount(good.getOriginalPrice());
cartGoods.setFinalPrice(good.getNowPrice());
cartGoods.setOriginalAmount(good.getOriginalPrice());
cartGoods.setAmount(good.getNowPrice());
cartGoods.setPhotoUrl(good.getPicture());
cartGoods.setGoodsId(good.getPid());
cartGoods.setName(good.getName());
cartGoods.setSpuName(good.getSpuName());
cartGoods.setQty(first==null ? 1:first.getQty());
if(first != null) {
cartGoods.setActivityCode(first.getActivityCode());
if(!CollectionUtils.isEmpty(first.getAttributes())){
List<CartGoods.CartGoodsExtra> extra = new ArrayList();
first.getAttributes().forEach(attribute -> {
CartGoods.CartGoodsExtra goodsExtra = new CartGoods.CartGoodsExtra();
goodsExtra.setAttributeId(attribute.getAttributeId());
goodsExtra.setAttributeName(attribute.getAttributeValue());
extra.add(goodsExtra);
});
cartGoods.setExtra(extra);
}
}
baseListCartGoodsVO.getProducts().add(cartGoods);
});
}
}
/**
* 获取购物车均摊详情,点 "去支付" 时调用
......
......@@ -132,6 +132,15 @@ public class ListCartGoodsBO extends BaseBo {
@NotNull
private Integer qty;
private String activityCode;
private List<Attribute> attributes;
}
@Data
public final static class Attribute{
private String attributeId;
private String attributeValue;
}
}
......@@ -147,6 +147,16 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
@NotNull
private Integer qty;
private String activityCode;
private List<Attribute> attributes;
}
@Data
public final static class Attribute{
private String attributeId;
private String attributeValue;
}
@Data
......
......@@ -760,14 +760,16 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
request.setShopId(shoppingCartInfoRequestVo.getShopId());
request.setVersion(shoppingCartInfoRequestVo.getVersion());
BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = premiumExchange(request);
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = null;
if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode())
&& premiumExchangeResponseVoBaseResponse.getResult() != null && CollectionUtils.isNotEmpty(premiumExchangeResponseVoBaseResponse.getResult().getProducts())){
&& premiumExchangeResponseVoBaseResponse.getResult() != null && CollectionUtils.isNotEmpty(premiumExchangeResponseVoBaseResponse.getResult().getProducts())){
List<PremiumExchangeResponseVo.PremiumExchangeProduct> products = premiumExchangeResponseVoBaseResponse.getResult().getProducts();
List<String> sendGoodsIdList = shoppingCartInfoRequestVo.getSendGoods().stream().map(p -> p.getGoodsId()).collect(toList());
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList());
chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList());
long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum();
shoppingCartGoodsResponseVo.setSendGoodsAmount(sendGoodsAmount);
}
updateForPopupWindow(shoppingCartGoodsResponseVo,premiumExchangeResponseVoBaseResponse.getResult().getShowType(),chooseSendGoodList,shoppingCartInfoRequestVo.getSendGoods());
}
// 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除
......@@ -780,6 +782,45 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return ResponseUtil.success(shoppingCartGoodsResponseVo);
}
public void updateForPopupWindow(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, Integer showType, List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList,
List<ShoppingCartInfoRequestVo.SendGoods> sendGoods) {
if(Integer.valueOf("5").equals(showType) && !org.springframework.util.CollectionUtils.isEmpty(chooseSendGoodList)){
chooseSendGoodList.forEach(good->{
ShoppingCartInfoRequestVo.SendGoods first =null;
if (sendGoods != null) {
first = sendGoods.stream().filter(a -> a.getGoodsId().equals(good.getPid())).findFirst().orElseGet(null);
}
CartGoods cartGoods = new CartGoods();
cartGoods.setSpuId(good.getSpuId());
cartGoods.setSkuId(good.getSkuId());
cartGoods.setSkuName(good.getSkuName());
cartGoods.setOriginalAmount(good.getOriginalPrice());
cartGoods.setFinalPrice(good.getNowPrice());
cartGoods.setOriginalAmount(good.getOriginalPrice());
cartGoods.setAmount(good.getNowPrice());
cartGoods.setPhotoUrl(good.getPicture());
cartGoods.setGoodsId(good.getPid());
cartGoods.setName(good.getName());
cartGoods.setSpuName(good.getSpuName());
cartGoods.setQty(first==null ? 1:first.getQty());
if(first != null) {
cartGoods.setActivityCode(first.getActivityCode());
if(!CollectionUtils.isEmpty(first.getAttributes())){
List<CartGoods.CartGoodsExtra> extra = new ArrayList();
first.getAttributes().forEach(attribute -> {
CartGoods.CartGoodsExtra goodsExtra = new CartGoods.CartGoodsExtra();
goodsExtra.setAttributeId(attribute.getAttributeId());
goodsExtra.setAttributeName(attribute.getAttributeValue());
extra.add(goodsExtra);
});
cartGoods.setExtra(extra);
}
}
shoppingCartGoodsResponseVo.getProducts().add(cartGoods);
});
}
}
private void convert2CartGoods(CartGoods cartGoods, GetProductsVo productInfo) {
cartGoods.setCartGoodsUid(UUID.randomUUID().toString());
Integer goodsType = GoodsTypeEnum.SPU_GOODS.getGoodsType();
......@@ -2778,7 +2819,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, 0L
, null);
premiumExchangeResponseVo = activityAdapter.convert2PremiumExchangeSharing(discountResult);
premiumExchangeResponseVo = activityAdapter.convert2PremiumExchangeSharing(discountResult);
}else {
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>();
// 当couponCode不为空时,需参与价格计算
......
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