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,6 +40,21 @@ public class CouponCodeVerificationDto extends CouponCodeBaseDto { ...@@ -40,6 +40,21 @@ public class CouponCodeVerificationDto extends CouponCodeBaseDto {
private String memberId; private String memberId;
/** /**
* 订单金额:订单总金额(未使用优惠时)
*/
private Long orderTotalAmount;
/**
* 实付金额:支付时的合计金额
*/
private Long orderPaymentAmount;
/**
* 优惠金额:餐饮订单中的【商家优惠】金额
*/
private Long orderDiscountAmount;
/**
* 核销交易信息 * 核销交易信息
*/ */
private List<CouponCodeVerificationTransDto> transactions; private List<CouponCodeVerificationTransDto> transactions;
......
...@@ -74,6 +74,12 @@ public class QueryOrdersResponseDto { ...@@ -74,6 +74,12 @@ public class QueryOrdersResponseDto {
* 总金额 * 总金额
*/ */
private Long amount; private Long amount;
/**
* 订单原始金额,单位分
*/
private BigDecimal originalAmount;
/** /**
* 吧台桌号 * 吧台桌号
*/ */
...@@ -519,6 +525,9 @@ public class QueryOrdersResponseDto { ...@@ -519,6 +525,9 @@ public class QueryOrdersResponseDto {
* 自定义对象 * 自定义对象
*/ */
private String addInfo; private String addInfo;
//商家优惠
private Long shopDiscountAmount;
} }
} }
} }
......
...@@ -38,7 +38,6 @@ import com.alibaba.fastjson.JSONObject; ...@@ -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.couponcenter.offline.service.OfflineCouponSdkService;
import com.freemud.application.sdk.api.log.ErrorLog; import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.ThirdPartyLog; 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.service.EmailAlertService;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
...@@ -104,6 +103,9 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService ...@@ -104,6 +103,9 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService
|| OrderAccountType.PRODUCT_COUPON.getCode().equals(accountBean.getType()) || OrderAccountType.PRODUCT_COUPON.getCode().equals(accountBean.getType())
|| OrderAccountType.DISCOUNT_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 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 // 核销券新增参数:组织机构ID
couponCodeVerificationDto.setChannel_codes(storeService.getOrgIdsArr(orderBean.getCompanyId(), orderBean.getShopId())); couponCodeVerificationDto.setChannel_codes(storeService.getOrgIdsArr(orderBean.getCompanyId(), orderBean.getShopId()));
try { try {
......
...@@ -61,6 +61,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -61,6 +61,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -204,14 +205,16 @@ public class ShoppingCartDemoController { ...@@ -204,14 +205,16 @@ public class ShoppingCartDemoController {
premiumRequest.setShopId(listCartGoodsBO.getShopId()); premiumRequest.setShopId(listCartGoodsBO.getShopId());
premiumRequest.setVersion(listCartGoodsBO.getVersion()); premiumRequest.setVersion(listCartGoodsBO.getVersion());
BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(premiumRequest); BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(premiumRequest);
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = null;
if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode()) 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<PremiumExchangeResponseVo.PremiumExchangeProduct> products = premiumExchangeResponseVoBaseResponse.getResult().getProducts();
List<String> sendGoodsIdList = listCartGoodsBO.getSendGoods().stream().map(p -> p.getGoodsId()).collect(toList()); 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(); long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum();
baseListCartGoodsVO.setSendGoodsAmount(sendGoodsAmount); baseListCartGoodsVO.setSendGoodsAmount(sendGoodsAmount);
} }
updateForPopupWindow(baseListCartGoodsVO,premiumExchangeResponseVoBaseResponse.getResult().getShowType(),chooseSendGoodList,baseRequestDTO.getSendGoods());
} }
// 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除 // 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除
...@@ -219,6 +222,44 @@ public class ShoppingCartDemoController { ...@@ -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 { ...@@ -132,6 +132,15 @@ public class ListCartGoodsBO extends BaseBo {
@NotNull @NotNull
private Integer qty; private Integer qty;
private String activityCode; 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 { ...@@ -147,6 +147,16 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
@NotNull @NotNull
private Integer qty; private Integer qty;
private String activityCode; private String activityCode;
private List<Attribute> attributes;
}
@Data
public final static class Attribute{
private String attributeId;
private String attributeValue;
} }
@Data @Data
......
...@@ -760,14 +760,16 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -760,14 +760,16 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
request.setShopId(shoppingCartInfoRequestVo.getShopId()); request.setShopId(shoppingCartInfoRequestVo.getShopId());
request.setVersion(shoppingCartInfoRequestVo.getVersion()); request.setVersion(shoppingCartInfoRequestVo.getVersion());
BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = premiumExchange(request); BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = premiumExchange(request);
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = null;
if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode()) 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<PremiumExchangeResponseVo.PremiumExchangeProduct> products = premiumExchangeResponseVoBaseResponse.getResult().getProducts();
List<String> sendGoodsIdList = shoppingCartInfoRequestVo.getSendGoods().stream().map(p -> p.getGoodsId()).collect(toList()); 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(); long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum();
shoppingCartGoodsResponseVo.setSendGoodsAmount(sendGoodsAmount); shoppingCartGoodsResponseVo.setSendGoodsAmount(sendGoodsAmount);
} }
updateForPopupWindow(shoppingCartGoodsResponseVo,premiumExchangeResponseVoBaseResponse.getResult().getShowType(),chooseSendGoodList,shoppingCartInfoRequestVo.getSendGoods());
} }
// 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除 // 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除
...@@ -780,6 +782,45 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -780,6 +782,45 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return ResponseUtil.success(shoppingCartGoodsResponseVo); 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) { private void convert2CartGoods(CartGoods cartGoods, GetProductsVo productInfo) {
cartGoods.setCartGoodsUid(UUID.randomUUID().toString()); cartGoods.setCartGoodsUid(UUID.randomUUID().toString());
Integer goodsType = GoodsTypeEnum.SPU_GOODS.getGoodsType(); Integer goodsType = GoodsTypeEnum.SPU_GOODS.getGoodsType();
......
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