Commit fcce0295 by 徐康

下单和发券

parent cc92303f
...@@ -106,6 +106,14 @@ public class OrderProductAddInfoDto extends BaseConfig { ...@@ -106,6 +106,14 @@ public class OrderProductAddInfoDto extends BaseConfig {
* 虚拟商品种子券号 * 虚拟商品种子券号
*/ */
private String cardCode; private String cardCode;
/**
* 是否是月享卡商品
*/
private Integer isMonthCard = 0;
/**
* 是否是买3赠1券商品
*/
private Integer isB3S1Coupon = 0;
/** /**
* 是否赠品 * 是否赠品
......
...@@ -784,8 +784,13 @@ public class CreateOrderAdapter { ...@@ -784,8 +784,13 @@ public class CreateOrderAdapter {
}); });
createOrderProductDemoDto.setComboProduct(comboProducts); createOrderProductDemoDto.setComboProduct(comboProducts);
} else if (ProductTypeEnum.VIRTUAL_PRODUCT.getCode().equals(cartGoodsDetailDto.getProductType())) { } else if (ProductTypeEnum.VIRTUAL_PRODUCT.getCode().equals(cartGoodsDetailDto.getProductType())) {
createOrderProductDemoDto.setCardId(cartGoodsDetailDto.getMonthCardInfo().getCardNo()); if(cartGoodsDetailDto.getIsMonthCard() == 1) {
createOrderProductDemoDto.setCardCode(cartGoodsDetailDto.getMonthCardInfo().getCardCode()); createOrderProductDemoDto.setCardId(cartGoodsDetailDto.getMonthCardInfo().getCardNo());
createOrderProductDemoDto.setCardCode(cartGoodsDetailDto.getMonthCardInfo().getCardCode());
} else if(cartGoodsDetailDto.getIsB3S1Coupon() == 1) {
createOrderProductDemoDto.setCardId(cartGoodsDetailDto.getB3S1CouponGoodsInfo().getCardNo());
createOrderProductDemoDto.setCardCode(cartGoodsDetailDto.getB3S1CouponGoodsInfo().getCardCode());
}
} }
} }
if (CollectionUtils.isNotEmpty(cartGoodsDetailDto.getMaterialList())) { if (CollectionUtils.isNotEmpty(cartGoodsDetailDto.getMaterialList())) {
......
...@@ -2391,6 +2391,9 @@ public class OrderAdapter { ...@@ -2391,6 +2391,9 @@ public class OrderAdapter {
if (OrderAccountType.BUY_DISCOUNT.getCode().equals(productDiscount.getDiscountType())) { if (OrderAccountType.BUY_DISCOUNT.getCode().equals(productDiscount.getDiscountType())) {
fullReduction = productDiscount.getDiscountAmount(); fullReduction = productDiscount.getDiscountAmount();
} }
if (OldOrderAccountType.B3S1_COUPON.getCode().equals(productDiscount.getDiscountType())) {
productVo.setIsB3S1CouponGoods(1);
}
} }
} }
//优惠券满减总优惠 //优惠券满减总优惠
...@@ -2650,8 +2653,13 @@ public class OrderAdapter { ...@@ -2650,8 +2653,13 @@ public class OrderAdapter {
}); });
createOrderProductDemoDto.setComboProduct(comboProducts); createOrderProductDemoDto.setComboProduct(comboProducts);
} else if(ProductTypeEnum.VIRTUAL_PRODUCT.getCode().equals(cartGoodsDetailDto.getProductType())) { } else if(ProductTypeEnum.VIRTUAL_PRODUCT.getCode().equals(cartGoodsDetailDto.getProductType())) {
createOrderProductDemoDto.setCardId(cartGoodsDetailDto.getMonthCardInfo().getCardNo()); if(cartGoodsDetailDto.getIsMonthCard() == 1) {
createOrderProductDemoDto.setCardCode(cartGoodsDetailDto.getMonthCardInfo().getCardCode()); createOrderProductDemoDto.setCardId(cartGoodsDetailDto.getMonthCardInfo().getCardNo());
createOrderProductDemoDto.setCardCode(cartGoodsDetailDto.getMonthCardInfo().getCardCode());
} else if(cartGoodsDetailDto.getIsB3S1Coupon() == 1) {
createOrderProductDemoDto.setCardId(cartGoodsDetailDto.getB3S1CouponGoodsInfo().getCardNo());
createOrderProductDemoDto.setCardCode(cartGoodsDetailDto.getB3S1CouponGoodsInfo().getCardCode());
}
} }
} }
if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getMaterialList())) { if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getMaterialList())) {
......
...@@ -5,11 +5,13 @@ import cn.freemud.entities.vo.SubtractStockVO; ...@@ -5,11 +5,13 @@ import cn.freemud.entities.vo.SubtractStockVO;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -264,12 +266,28 @@ public class ShoppingCartGoodsDto { ...@@ -264,12 +266,28 @@ public class ShoppingCartGoodsDto {
* 购物车行id * 购物车行id
*/ */
private String cartGoodsUid; private String cartGoodsUid;
/**
* 是否是月享卡商品
*/
private int isMonthCard = 0;
/** /**
* 月享卡加购信息 * 月享卡加购信息
*/ */
private MonthCardVo monthCardInfo; private MonthCardVo monthCardInfo;
/** /**
* 是否是买3赠1券商品
*/
private int isB3S1Coupon = 0;
/**
* 是否使用了买3赠1券
*/
private int isB3S1CouponGoods = 0;
/**
* 买3赠1券信息
*/
private B3S1CouponGoodsInfoVo b3S1CouponGoodsInfo;
/**
* 是否赠品 * 是否赠品
*/ */
private Boolean isSendGoods; private Boolean isSendGoods;
...@@ -385,4 +403,25 @@ public class ShoppingCartGoodsDto { ...@@ -385,4 +403,25 @@ public class ShoppingCartGoodsDto {
private String discountDesc; private String discountDesc;
} }
@Data
@NoArgsConstructor
public static class B3S1CouponGoodsInfoVo {
/**
* 卡号
*/
private String cardNo;
/**
* 券号
*/
private String cardCode;
/**
* 券号
*/
private Set<String> cardCodeSet;
private Integer useTimes;
private int isUseB3S1Coupon = 1;
}
} }
...@@ -186,6 +186,10 @@ public class ProductVo { ...@@ -186,6 +186,10 @@ public class ProductVo {
* 优惠券名称 * 优惠券名称
*/ */
private String couponName; private String couponName;
/**
* 是否使用了买3赠1券
*/
private int isB3S1CouponGoods = 0;
/** /**
* 1.5.5版本添加 * 1.5.5版本添加
......
...@@ -559,13 +559,17 @@ public class CheckMCCafeOrder { ...@@ -559,13 +559,17 @@ public class CheckMCCafeOrder {
List<String> seedCardList = new ArrayList<>(); List<String> seedCardList = new ArrayList<>();
shoppingCartGoodsDto.getProducts().stream().filter(o -> ProductTypeEnum.getVirtualProductType().contains(o.getProductType())) shoppingCartGoodsDto.getProducts().stream().filter(o -> ProductTypeEnum.getVirtualProductType().contains(o.getProductType()))
.forEach(o -> { .forEach(o -> {
if(o.getMonthCardInfo() == null) { if(o.getIsMonthCard() == 0 && o.getMonthCardInfo() == null) {
ShoppingCartGoodsDto.MonthCardVo monthCardVo = new ShoppingCartGoodsDto.MonthCardVo(); ShoppingCartGoodsDto.MonthCardVo monthCardVo = new ShoppingCartGoodsDto.MonthCardVo();
monthCardVo.setCardCode(withOrderBuyCouponCode); monthCardVo.setCardCode(withOrderBuyCouponCode);
monthCardVo.setCardNo(withOrderBuyCardId); monthCardVo.setCardNo(withOrderBuyCardId);
o.setMonthCardInfo(monthCardVo); o.setMonthCardInfo(monthCardVo);
} }
seedCardList.add(o.getMonthCardInfo().getCardCode()); if(o.getIsMonthCard() == 1) {
seedCardList.add(o.getMonthCardInfo().getCardCode());
} else if(o.getIsB3S1Coupon() == 1) {
seedCardList.add(o.getB3S1CouponGoodsInfo().getCardCode());
}
}); });
seedCardList.add(withOrderBuyCouponCode); seedCardList.add(withOrderBuyCouponCode);
if(CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getActivityDiscountsDtos())) { if(CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getActivityDiscountsDtos())) {
......
...@@ -131,6 +131,7 @@ import java.util.function.Function; ...@@ -131,6 +131,7 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@Slf4j
public class MCCafeOrderServiceImpl implements MCCafeOrderService { public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private final Integer RESPONSE_SUCCESS_CODE = 100; private final Integer RESPONSE_SUCCESS_CODE = 100;
...@@ -905,7 +906,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -905,7 +906,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// } // }
//麦咖啡随单购咖啡月卡 //麦咖啡随单购咖啡月卡
if(withOrderBuyCoupon2(orderBean, orderExtInfoDto.getThirdPartyMemberId())) { if(withOrderBuyCoupon3(orderBean, orderExtInfoDto.getThirdPartyMemberId())) {
orderBean = getOrderBean(confirmOrderDto); orderBean = getOrderBean(confirmOrderDto);
} }
...@@ -1597,40 +1598,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1597,40 +1598,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
} }
/** /**
* 开通会员卡 * 月享卡2.0发券
*
* @param partnerId 商户号
* @param ruleId 会员规则ID
* @param oid 订单号
* @param userId 用户ID
*/
private void activateMemberCard(String partnerId, String ruleId, String oid, String userId) {
PurchasePaidRequestDto purchasePaidRequestDto = new PurchasePaidRequestDto();
purchasePaidRequestDto.setPartnerId(partnerId);
purchasePaidRequestDto.setOperatorType(0);
purchasePaidRequestDto.setRuleId(ruleId);
purchasePaidRequestDto.setOrderId(oid);
purchasePaidRequestDto.setMemberId(userId);
// 尝试三次开通会员卡,中途成功则跳出
int count = 3;
for (int i = 1; i <= count; i++) {
BaseResponse baseResponse = customerApplicationClient.purchasePaid(purchasePaidRequestDto);
// 不以响应码为判断是否开通会员卡成功的标准
if (baseResponse != null && "SUCCESS".equals(baseResponse.getResult())) {
break;
}
// 尝试开通会员卡失败三次
if (i >= count) {
LogUtil.error("尝试开通会员卡失败" + count + "次", JSON.toJSONString(purchasePaidRequestDto), JSON.toJSONString(baseResponse));
}
}
}
/**
* 随单购月卡调会员发券与更新订单使用的优惠券与买的优惠券
* @param orderBean * @param orderBean
*/ */
public boolean withOrderBuyCoupon(QueryOrdersResponseDto.DataBean.OrderBean orderBean, String thirdPartyMemberId){ public boolean withOrderBuyCoupon2(QueryOrdersResponseDto.DataBean.OrderBean orderBean, String thirdPartyMemberId){
LogUtil.info("发券入参:", thirdPartyMemberId, JSON.toJSONString(orderBean)); LogUtil.info("发券入参:", thirdPartyMemberId, JSON.toJSONString(orderBean));
try{ try{
List<String> cardIds = new ArrayList<>(); List<String> cardIds = new ArrayList<>();
...@@ -1685,7 +1656,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1685,7 +1656,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
Map<String, Integer> cardStatusMap = mcdNetBatchQueryResponse.getCouponlist().stream() Map<String, Integer> cardStatusMap = mcdNetBatchQueryResponse.getCouponlist().stream()
.collect(Collectors.toMap(McdNetBatchQueryResponse.Coupon::getCode, McdNetBatchQueryResponse.Coupon::getStatusCode, (k1, k2) -> k1)); .collect(Collectors.toMap(McdNetBatchQueryResponse.Coupon::getCode, McdNetBatchQueryResponse.Coupon::getStatusCode, (k1, k2) -> k1));
Map<String, List<SendCouponForqujiaDtoResponseDto.Card>> cardMap = new HashMap<>(); Map<String, String> cardMap = new HashMap<>();
UpdateCouponCodeReq req = new UpdateCouponCodeReq(); UpdateCouponCodeReq req = new UpdateCouponCodeReq();
req.setOrderCode(orderBean.getOid()); req.setOrderCode(orderBean.getOid());
...@@ -1705,11 +1676,16 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1705,11 +1676,16 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
cardFor: cardFor:
for(int i=0;i<cardList.size();i++) { for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getCard_id().equals(extInfo.getCardId())) { if(cardList.get(i).getCard_id().equals(extInfo.getCardId())) {
cardCodeStr += cardList.get(i).getCard_code()+"/"; String couponCode = cardList.get(i).getCard_code();
if(CollectionUtils.isEmpty(cardMap.get(extInfo.getCardCode()))) { cardCodeStr += couponCode+"/";
cardMap.put(extInfo.getCardCode(), new ArrayList<>(Arrays.asList(cardList.get(i)))); if(ResponseCodeConstant.RESPONSE_SUCCESS.equals(cardStatusMap.get(couponCode))) {
} else { if(cardMap.get(extInfo.getCardCode()) == null) {
cardMap.get(extInfo.getCardCode()).add(cardList.get(i)); UpdateCouponCodeReq.CouponUpdateInfo couponUpdateInfo = new UpdateCouponCodeReq.CouponUpdateInfo();
couponUpdateInfo.setOldCouponCode(extInfo.getCardCode());
couponUpdateInfo.setCouponCode(couponCode);
req.getCouponUpdateInfoList().add(couponUpdateInfo);
cardMap.put(extInfo.getCardCode(), couponCode);
}
} }
cardList.remove(i); cardList.remove(i);
break cardFor; break cardFor;
...@@ -1721,39 +1697,9 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1721,39 +1697,9 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
} }
} }
for(QueryOrdersResponseDto.DataBean.OrderBean.ProductBean productBean : orderBean.getProductList()) {
if(!ProductTypeEnum.getVirtualProductType().contains(productBean.getProductType()) && CollectionUtils.isNotEmpty(productBean.getDiscountList())) {
for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean.ProductDiscount discount : productBean.getDiscountList()) {
if(null != discount.getDiscountType() && OldOrderAccountType.SEED_PRODUCT_COUPON.getCode().equals(discount.getDiscountType())
&& defaultCardCodes.contains(discount.getDiscountId())) {
UpdateCouponCodeReq.CouponUpdateInfo couponUpdateInfo = new UpdateCouponCodeReq.CouponUpdateInfo();
couponUpdateInfo.setProductSeq(productBean.getSequence());
couponUpdateInfo.setOldCouponCode(discount.getDiscountId());
List<SendCouponForqujiaDtoResponseDto.Card> list = new ArrayList<>(cardMap.get(discount.getDiscountId()));
if(CollectionUtils.isEmpty(list)) {
continue;
}
cardFor:
for(int i=0;i<list.size();i++) {
if(ResponseCodeConstant.RESPONSE_SUCCESS.equals(cardStatusMap.get(list.get(i).getCard_code()))) {
couponUpdateInfo.setCouponCode(list.get(i).getCard_code());
list.remove(i);
cardMap.put(discount.getDiscountId(), list);
break cardFor;
}
}
if(StringUtils.isBlank(couponUpdateInfo.getCouponCode())) {
continue;
}
req.getCouponUpdateInfoList().add(couponUpdateInfo);
}
}
}
}
LogUtil.info("生成参数完成:", req, null); LogUtil.info("生成参数完成:", req, null);
orderSdkService.updateCostCouponCode(req, LogTreadLocal.getTrackingNo()); orderSdkService.updateCostCouponCodeNew(req, LogTreadLocal.getTrackingNo());
return true; return true;
} catch (Exception e){ } catch (Exception e){
...@@ -1766,103 +1712,99 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1766,103 +1712,99 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
* 月享卡2.0发券 * 月享卡2.0发券
* @param orderBean * @param orderBean
*/ */
public boolean withOrderBuyCoupon2(QueryOrdersResponseDto.DataBean.OrderBean orderBean, String thirdPartyMemberId){ public boolean withOrderBuyCoupon3(QueryOrdersResponseDto.DataBean.OrderBean orderBean, String thirdPartyMemberId){
LogUtil.info("发券入参:", thirdPartyMemberId, JSON.toJSONString(orderBean)); LogUtil.info("发券入参:", thirdPartyMemberId, JSON.toJSONString(orderBean));
try{ try{
List<String> cardIds = new ArrayList<>();
List<String> defaultCardCodes = new ArrayList<>(); UpdateCouponCodeReq req = new UpdateCouponCodeReq();
for (OrderBean.ProductBean productBean : orderBean.getProductList()){ req.setOrderCode(orderBean.getOid());
req.setPartnerId(orderBean.getCompanyId());
req.setCouponReceiveInfoList(new ArrayList<>());
req.setCouponUpdateInfoList(new ArrayList<>());
for (OrderBean.ProductBean productBean : orderBean.getProductList()) {
if(ProductTypeEnum.getVirtualProductType().contains(productBean.getProductType())) { if(ProductTypeEnum.getVirtualProductType().contains(productBean.getProductType())) {
List<String> cardIds = new ArrayList<>();
OrderProductAddInfoDto extInfo = JSON.parseObject(productBean.getExtInfo(), OrderProductAddInfoDto.class); OrderProductAddInfoDto extInfo = JSON.parseObject(productBean.getExtInfo(), OrderProductAddInfoDto.class);
for(int i=0;i<productBean.getNumber();i++) { for(int i=0;i<productBean.getNumber();i++) {
cardIds.add(extInfo.getCardId()); cardIds.add(extInfo.getCardId());
} }
defaultCardCodes.add(extInfo.getCardCode());
}
}
if(CollectionUtils.isEmpty(cardIds)){
return false;
}
SendCouponForqujiaRequestDto request = new SendCouponForqujiaRequestDto();
request.setReceivedId(orderBean.getOid());
request.setCardIds(cardIds);
request.setThirdPartyMemberId(thirdPartyMemberId);
SendCouponForqujiaDtoResponseDto responseDto = customerExtendClient.sendCouponForqujia(request);
if(!Objects.equals(responseDto.getCode(), ResponseResult.SUCCESS.getCode())){
LogUtil.error("sendCouponForqujia", JSON.toJSONString(request), JSON.toJSONString(responseDto));
return false;
}
if(responseDto.getData() == null || CollectionUtils.isEmpty(responseDto.getData().getCard_list())){
return false;
}
List<SendCouponForqujiaDtoResponseDto.Card> cardList = responseDto.getData().getCard_list(); if(CollectionUtils.isEmpty(cardIds)){
continue;
}
MCCafeCouponRequest mcCafeCouponRequest = MCCafeCouponRequest.builder() SendCouponForqujiaRequestDto request = new SendCouponForqujiaRequestDto();
.ver(88) request.setReceivedId(orderBean.getOid());
.reqtype(CouponReqTypeEnum.BATCH_QUERY.getCode()) request.setCardIds(cardIds);
.partnerId(Integer.parseInt(orderBean.getCompanyId())) request.setThirdPartyMemberId(thirdPartyMemberId);
.store_id(orderBean.getShopId()) SendCouponForqujiaDtoResponseDto responseDto = customerExtendClient.sendCouponForqujia(request);
.station_id("1") if(!Objects.equals(responseDto.getCode(), ResponseResult.SUCCESS.getCode())
.operator_id(orderBean.getUserId()) || responseDto.getData() == null || CollectionUtils.isEmpty(responseDto.getData().getCard_list())){
.channel(OrderSource.ALIPAY.getSource().equals(orderBean.getSource())?MCCafeChannelEnum.MOCOFFEE_ZFB.getName():MCCafeChannelEnum.MOCOFFEE_WX.getName()) log.error("发券异常 :" + JSON.toJSONString(request) + JSON.toJSONString(responseDto));
.couponlist(cardList.stream().map(o -> new MCCafeCouponVo(o.getCard_code())).collect(Collectors.toList())) continue;
.sign("skip") }
.build();
McdNetBatchQueryResponse mcdNetBatchQueryResponse = couponClientService.batchQuery(mcCafeCouponRequest);
if (mcdNetBatchQueryResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS.equals(mcdNetBatchQueryResponse.getStatusCode())
|| CollectionUtils.isEmpty(mcdNetBatchQueryResponse.getCouponlist())) {
LogUtil.error("获取优惠券详情失败,发券失败", mcCafeCouponRequest, mcdNetBatchQueryResponse);
return false;
}
Map<String, Integer> cardStatusMap = mcdNetBatchQueryResponse.getCouponlist().stream()
.collect(Collectors.toMap(McdNetBatchQueryResponse.Coupon::getCode, McdNetBatchQueryResponse.Coupon::getStatusCode, (k1, k2) -> k1));
Map<String, String> cardMap = new HashMap<>(); List<SendCouponForqujiaDtoResponseDto.Card> cardList = responseDto.getData().getCard_list();
MCCafeCouponRequest mcCafeCouponRequest = MCCafeCouponRequest.builder()
.ver(88)
.reqtype(CouponReqTypeEnum.BATCH_QUERY.getCode())
.partnerId(Integer.parseInt(orderBean.getCompanyId()))
.store_id(orderBean.getShopId())
.station_id("1")
.operator_id(orderBean.getUserId())
.channel(OrderSource.ALIPAY.getSource().equals(orderBean.getSource())?MCCafeChannelEnum.MOCOFFEE_ZFB.getName():MCCafeChannelEnum.MOCOFFEE_WX.getName())
.couponlist(cardList.stream().map(o -> new MCCafeCouponVo(o.getCard_code())).collect(Collectors.toList()))
.sign("skip")
.build();
McdNetBatchQueryResponse mcdNetBatchQueryResponse = couponClientService.batchQuery(mcCafeCouponRequest);
if (mcdNetBatchQueryResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS.equals(mcdNetBatchQueryResponse.getStatusCode())
|| CollectionUtils.isEmpty(mcdNetBatchQueryResponse.getCouponlist())) {
log.error("获取优惠券详情失败,发券失败" + JSON.toJSONString(mcCafeCouponRequest) + JSON.toJSONString(mcdNetBatchQueryResponse));
return false;
}
UpdateCouponCodeReq req = new UpdateCouponCodeReq();
req.setOrderCode(orderBean.getOid());
req.setPartnerId(orderBean.getCompanyId());
req.setCouponReceiveInfoList(new ArrayList<>());
req.setCouponUpdateInfoList(new ArrayList<>());
LogUtil.info("准备开始生成参数:", orderBean, null);
for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean productBean : orderBean.getProductList()) {
if(ProductTypeEnum.getVirtualProductType().contains(productBean.getProductType())) {
UpdateCouponCodeReq.CouponReceiveInfo couponReceiveInfo = new UpdateCouponCodeReq.CouponReceiveInfo(); UpdateCouponCodeReq.CouponReceiveInfo couponReceiveInfo = new UpdateCouponCodeReq.CouponReceiveInfo();
couponReceiveInfo.setGoodsId(productBean.getSpecification()); couponReceiveInfo.setGoodsId(productBean.getSpecification());
couponReceiveInfo.setProductSeq(productBean.getSequence()); couponReceiveInfo.setProductSeq(productBean.getSequence());
OrderProductAddInfoDto extInfo = JSON.parseObject(productBean.getExtInfo(), OrderProductAddInfoDto.class); couponReceiveInfo.setCouponCode(mcdNetBatchQueryResponse.getCouponlist().stream()
String cardCodeStr = ""; .map(o -> o.getCode()).collect(Collectors.joining("/")));
numberFor: req.getCouponReceiveInfoList().add(couponReceiveInfo);
for(int j=0;j<productBean.getNumber();j++) {
cardFor: String couponCode = "";
for(int i=0;i<cardList.size();i++) { if(extInfo.getIsMonthCard() != null && extInfo.getIsMonthCard() == 1) {
if(cardList.get(i).getCard_id().equals(extInfo.getCardId())) { Optional<McdNetBatchQueryResponse.Coupon> couponOptional = mcdNetBatchQueryResponse.getCouponlist().stream()
String couponCode = cardList.get(i).getCard_code(); .filter(o -> ResponseCodeConstant.RESPONSE_SUCCESS.equals(o.getStatusCode())).findFirst();
cardCodeStr += couponCode+"/"; if(!couponOptional.isPresent()) {
if(ResponseCodeConstant.RESPONSE_SUCCESS.equals(cardStatusMap.get(couponCode))) { log.error("没有有效的优惠券,更新失败 " + JSON.toJSONString(mcCafeCouponRequest) + JSON.toJSONString(mcdNetBatchQueryResponse));
if(cardMap.get(extInfo.getCardCode()) == null) { continue;
UpdateCouponCodeReq.CouponUpdateInfo couponUpdateInfo = new UpdateCouponCodeReq.CouponUpdateInfo(); } else {
couponUpdateInfo.setOldCouponCode(extInfo.getCardCode()); couponCode = couponOptional.get().getCode();
couponUpdateInfo.setCouponCode(couponCode); }
req.getCouponUpdateInfoList().add(couponUpdateInfo); } else if(extInfo.getIsB3S1Coupon() != null && extInfo.getIsB3S1Coupon() == 1) {
cardMap.put(extInfo.getCardCode(), couponCode);
} Optional<McdNetBatchQueryResponse.Coupon> couponOptional = mcdNetBatchQueryResponse.getCouponlist().stream()
} .filter(o -> ResponseCodeConstant.RESPONSE_SUCCESS.equals(o.getStatusCode())).findFirst();
cardList.remove(i); if(!couponOptional.isPresent()) {
break cardFor; log.error("没有有效的优惠券,更新失败 " + JSON.toJSONString(mcCafeCouponRequest) + JSON.toJSONString(mcdNetBatchQueryResponse));
} continue;
} else {
couponCode = couponOptional.get().getCode();
} }
} }
couponReceiveInfo.setCouponCode(cardCodeStr.substring(0, cardCodeStr.length()-1)); if(StringUtils.isBlank(couponCode)) {
req.getCouponReceiveInfoList().add(couponReceiveInfo); log.error("没有匹配的优惠券,更新失败 " + JSON.toJSONString(mcCafeCouponRequest) + JSON.toJSONString(mcdNetBatchQueryResponse));
continue;
}
UpdateCouponCodeReq.CouponUpdateInfo couponUpdateInfo = new UpdateCouponCodeReq.CouponUpdateInfo();
couponUpdateInfo.setOldCouponCode(extInfo.getCardCode());
couponUpdateInfo.setCouponCode(couponCode);
req.getCouponUpdateInfoList().add(couponUpdateInfo);
} }
}
LogUtil.info("生成参数完成:", req, null); }
orderSdkService.updateCostCouponCodeNew(req, LogTreadLocal.getTrackingNo()); orderSdkService.updateCostCouponCodeNew(req, LogTreadLocal.getTrackingNo());
......
...@@ -172,6 +172,9 @@ public class ShoppingCartMccafeAdapter { ...@@ -172,6 +172,9 @@ public class ShoppingCartMccafeAdapter {
//菜单购月享卡信息 //菜单购月享卡信息
cartGoodsDetailDto.setIsMonthCard(cartGoods.getIsMonthCard()); cartGoodsDetailDto.setIsMonthCard(cartGoods.getIsMonthCard());
cartGoodsDetailDto.setMonthCardInfo(cartGoods.getMonthCardInfo()); cartGoodsDetailDto.setMonthCardInfo(cartGoods.getMonthCardInfo());
cartGoodsDetailDto.setIsB3S1Coupon(cartGoods.getIsB3S1Coupon());
cartGoodsDetailDto.setB3S1CouponGoodsInfo(cartGoods.getB3S1CouponGoodsInfo());
cartGoodsDetailDto.setIsB3S1CouponGoods(cartGoods.getIsB3S1CouponGoods());
if (GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) { if (GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
cartGoodsDetailDto.setProductType(ProductType.SETMEAL.getCode()); cartGoodsDetailDto.setProductType(ProductType.SETMEAL.getCode());
} else if(GoodsTypeEnum.VIRTUAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())){ } else if(GoodsTypeEnum.VIRTUAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())){
......
...@@ -274,10 +274,6 @@ public class ShoppingCartGoodsDto { ...@@ -274,10 +274,6 @@ public class ShoppingCartGoodsDto {
*/ */
private int isMonthCard; private int isMonthCard;
/** /**
* 是否是买3赠1券商品
*/
private int isB3S1Coupon = 0;
/**
* 是否为种子券商品 1:是;0:否 * 是否为种子券商品 1:是;0:否
*/ */
private int isSeedCouponGoods; private int isSeedCouponGoods;
...@@ -286,6 +282,14 @@ public class ShoppingCartGoodsDto { ...@@ -286,6 +282,14 @@ public class ShoppingCartGoodsDto {
*/ */
private MonthCardVo monthCardInfo; private MonthCardVo monthCardInfo;
/** /**
* 是否是买3赠1券商品
*/
private int isB3S1Coupon = 0;
/**
* 是否使用了买3赠1券
*/
private int isB3S1CouponGoods = 0;
/**
* 买3赠1券信息 * 买3赠1券信息
*/ */
private B3S1CouponGoodsInfoVo b3S1CouponGoodsInfo; private B3S1CouponGoodsInfoVo b3S1CouponGoodsInfo;
......
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