Commit 9e1dd327 by 徐康

修改问题

parent c9abd336
......@@ -27,4 +27,5 @@ public class ActivityDiscountsDto {
* 1-运费券 2-运费月卡券 3-月卡券 4-万能券 5-啡常月享卡 6-通用券
*/
private Integer extendType;
private String cartGoodsUid;
}
......@@ -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;
......@@ -121,6 +124,7 @@ import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
@Service
......@@ -234,6 +238,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();
......@@ -605,6 +611,57 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return mcCafeOrderCenterSdkService.createMCCafeOrderFlow(createOrderRequest);
}
public static void main(String[] args) {
MCCafeOrderServiceImpl mcCafeOrderService = new MCCafeOrderServiceImpl();
mcCafeOrderService.processRepeatGoodsWithSeedCoupon(JSON.parseObject("{\"activityDiscountsDtos\":[{\"activityCode\":\"DPTJ2021022511040306293\",\"activityName\":\"月享卡特价1\",\"activityType\":2,\"discountAmount\":-1710},{\"activityCode\":\"216628714314049\",\"activityName\":\"啡常月享卡(商城)测试券\",\"activityType\":37,\"cartGoodsUid\":\"734d0689-111d-4ca7-a4d1-580d9dcf0105\",\"discountAmount\":-900,\"extendType\":10},{\"activityCode\":\"216628714314049\",\"activityName\":\"啡常月享卡(商城)测试券\",\"activityType\":37,\"cartGoodsUid\":\"82767a8b-0ad9-440c-9b37-d0bfc594179b\",\"discountAmount\":-1800,\"extendType\":10}],\"buyThreeGiveOneCouponFee\":0,\"deliveryAmount\":0,\"discountDeliveryAmount\":0,\"isDiscountDelivery\":false,\"originalTotalAmount\":11400,\"packageAmount\":0,\"payCardFee\":0,\"products\":[{\"activityDiscountsDtos\":[{\"activityCode\":\"216628714314049\",\"activityName\":\"啡常月享卡(商城)测试券\",\"activityType\":37,\"discountAmount\":-900,\"extendType\":10,\"tenderId\":\"508527\"}],\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"734d0689-111d-4ca7-a4d1-580d9dcf0105\",\"classificationId\":\"\",\"classificationName\":\"\",\"couponCode\":\"216628714314049\",\"customerCode\":\"508527\",\"extraList\":[],\"hasProductCoupon\":false,\"isMonthCard\":0,\"isSeedCouponGoods\":0,\"isTableware\":0,\"materialList\":[],\"originalPrice\":1900,\"picture\":\"https://picture.sandload.cn/1605356768489.png\",\"productCode\":\"2217\",\"qty\":1,\"salePrice\":0,\"skuId\":\"191220974548593707\",\"skuName\":\"中杯拿铁\",\"spuId\":\"191220974497213481\",\"spuName\":\"拿铁\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":900,\"unit\":\"\",\"weight\":0.0},{\"activityDiscountsDtos\":[{\"activityCode\":\"216628714314049\",\"activityName\":\"啡常月享卡(商城)测试券\",\"activityType\":37,\"discountAmount\":-1800,\"extendType\":10,\"tenderId\":\"508527\"}],\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"82767a8b-0ad9-440c-9b37-d0bfc594179b\",\"classificationId\":\"\",\"classificationName\":\"\",\"couponCode\":\"216628714314049\",\"customerCode\":\"508527\",\"extraList\":[],\"hasProductCoupon\":false,\"isMonthCard\":0,\"isSeedCouponGoods\":0,\"isTableware\":0,\"materialList\":[],\"originalPrice\":1900,\"picture\":\"https://picture.sandload.cn/1606184178473.png\",\"productCode\":\"2214\",\"qty\":2,\"salePrice\":0,\"skuId\":\"189264448691747619\",\"skuName\":\"中杯卡布奇诺\",\"spuId\":\"189264448647707425\",\"spuName\":\"卡布奇诺\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":1800,\"unit\":\"\",\"weight\":0.0},{\"activityDiscountsDtos\":[{\"activityCode\":\"DPTJ2021022511040306293\",\"activityName\":\"月享卡特价1\",\"activityType\":2,\"actualActivityGoodsNumber\":1,\"discountAmount\":1710}],\"activityType\":2,\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"ad4af27a-e24f-4264-a3ae-d6a3c3c38e6d\",\"classificationId\":\"\",\"classificationName\":\"\",\"customerCode\":\"509387\",\"extraList\":[],\"hasProductCoupon\":false,\"isMonthCard\":1,\"isSeedCouponGoods\":0,\"isTableware\":0,\"materialList\":[],\"monthCardInfo\":{\"cardCode\":\"216628714314049\",\"cardNo\":\"MQYK8563DBFBEA942693898E7F919C94ADDD\",\"type\":2},\"originalPrice\":1900,\"picture\":\"https://picture.sandload.cn/1609750514452.png\",\"productCode\":\"508554\",\"productType\":9,\"qty\":3,\"salePrice\":1900,\"skuId\":\"196061855703358215\",\"skuName\":\"月享卡\",\"spuId\":\"196061855703358215\",\"spuName\":\"月享卡\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":1710,\"unit\":\"\",\"weight\":0.0}],\"shareDiscountActivityDtos\":[],\"stocks\":[{\"activityCode\":\"DPTJ2021022511040306293\",\"activityType\":2,\"goodsStock\":[{\"goodsId\":\"196061855703358215\",\"stock\":1}]}],\"totalAmount\":6990,\"totalDiscountAmount\":4410}", ShoppingCartGoodsDto.class));
}
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());
List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos();
List<ShoppingCartGoodsDto.CartGoodsDetailDto> products = new ArrayList<>();
shoppingCartGoodsDto.getProducts().stream().forEach(o -> {
boolean flag = false;
if(o.getQty() > 1 && CollectionUtils.isNotEmpty(o.getActivityDiscountsDtos())) {
for(ActivityDiscountsDto activityDiscountsDto : o.getActivityDiscountsDtos()) {
if(cardCodeList.contains(activityDiscountsDto.getActivityCode())) {
flag = true;
int qty = o.getQty();
Integer totalDiscountAmount = o.getTotalDiscountAmount()/qty;
Integer discountAmount = activityDiscountsDto.getDiscountAmount()/qty;
String cartGoodsUid = o.getCartGoodsUid();
for(int i=qty;i>=1;i--) {
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = mapper.map(o, ShoppingCartGoodsDto.CartGoodsDetailDto.class);
cartGoodsDetailDto.setQty(1);
cartGoodsDetailDto.setTotalDiscountAmount(totalDiscountAmount);
cartGoodsDetailDto.getActivityDiscountsDtos().get(0).setDiscountAmount(discountAmount);
products.add(cartGoodsDetailDto);
}
for(int j=0;j<activityDiscountsDtos.size();j++) {
if(cartGoodsUid.equals(activityDiscountsDtos.get(j).getCartGoodsUid())) {
ActivityDiscountsDto orderActivityDiscountsDto = activityDiscountsDtos.get(j);
orderActivityDiscountsDto.setDiscountAmount(orderActivityDiscountsDto.getDiscountAmount()/qty);
activityDiscountsDtos.remove(j);
for(int k=0;k<qty;k++) {
activityDiscountsDtos.add(j, mapper.map(orderActivityDiscountsDto, ActivityDiscountsDto.class));
}
break;
}
}
break;
}
}
}
if(!flag) {
products.add(o);
}
});
shoppingCartGoodsDto.setProducts(products);
System.out.println(JSON.toJSONString(shoppingCartGoodsDto));
}
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