Commit 321c859c by 徐康

购物车拆行

parent c9abd336
......@@ -33,6 +33,7 @@ import cn.freemud.entities.dto.product.AttributeValue;
import cn.freemud.entities.dto.product.GroupDetail;
import cn.freemud.entities.dto.product.ProductAttributeGroup;
import cn.freemud.entities.dto.product.ProductGroup;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.user.SendCouponForqujiaDtoResponseDto;
......@@ -111,6 +112,8 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import ma.glasnost.orika.MapperFacade;
import ma.glasnost.orika.impl.DefaultMapperFactory;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
......@@ -234,6 +237,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private CacheOpenApiEncryptManager cacheOpenApiEncryptManager;
private static MapperFacade mapper = new DefaultMapperFactory.Builder().build().getMapperFacade();
@Override
public BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo) {
String trackingNo = LogThreadLocal.getTrackingNo();
......@@ -587,6 +592,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
*/
public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
OrderExtendedReq orderExtendedReq, OrderClientType orderClient,String appId) {
processRepeatGoodsWithSeedCoupon(shoppingCartGoodsDto);
log.info("购物车拆行:"+JSON.toJSONString(shoppingCartGoodsDto));
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
//查询第三方商品编号
baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest);
......@@ -605,6 +612,30 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return mcCafeOrderCenterSdkService.createMCCafeOrderFlow(createOrderRequest);
}
private void processRepeatGoodsWithSeedCoupon(ShoppingCartGoodsDto shoppingCartGoodsDto) {
List<String> cardCodeList = shoppingCartGoodsDto.getProducts().stream().filter(o -> ProductTypeEnum.VIRTUAL_PRODUCT.getCode().equals(o.getProductType()))
.map(o -> o.getMonthCardInfo().getCardCode()).collect(Collectors.toList());
shoppingCartGoodsDto.getProducts().stream().forEach(o -> {
if(o.getQty() > 1 && CollectionUtils.isNotEmpty(o.getActivityDiscountsDtos())) {
for(ActivityDiscountsDto activityDiscountsDto : o.getActivityDiscountsDtos()) {
if(cardCodeList.contains(activityDiscountsDto.getActivityCode())) {
int qty = o.getQty();
o.setQty(1);
for(int i=qty;i>1;i++) {
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = mapper.map(o, ShoppingCartGoodsDto.CartGoodsDetailDto.class);
ActivityDiscountsDto activityDiscountsDtoOrder = mapper.map(activityDiscountsDto, ActivityDiscountsDto.class);
shoppingCartGoodsDto.getProducts().add(cartGoodsDetailDto);
shoppingCartGoodsDto.getActivityDiscountsDtos().add(activityDiscountsDtoOrder);
}
break;
}
}
}
});
}
private OrderPayResponse getOrderPayResponse(PaymentRequest paymentRequest, QueryOrdersResponse.DataBean.OrderBean orderBean) {
OrderPayResponse orderPayResponse;
String fmId = "SPAY" + ValidationCode.getRandomUuid();
......
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