Commit 11208477 by ping.wu

Merge remote-tracking branch 'origin/master'

parents d7cc97ec 767e22ae
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.1.48-RELEASE</version>
<version>2.1.49-RELEASE</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.3.44.RELEASE</version>
<version>1.3.45.RELEASE</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -122,4 +122,5 @@
| 2.1.45-RELEASE | ordercentersdk 升级 | 王航航 | 2021-04-07 |
| 2.1.46-RELEASE | 单品立减平台化 | 梁崇福 | 2021-04-08 |
| 2.1.47-RELEASE | 赠品落库 | 梁崇福 | 2021-04-08 |
| 2.1.48-RELEASE | 小程序外卖单,接单,配送自动扭转时间为空设置默认值 | 伍平 | 2021-04-12 |
\ No newline at end of file
| 2.1.48-RELEASE | 小程序外卖单,接单,配送自动扭转时间为空设置默认值 | 伍平 | 2021-04-12 |
| 2.1.49-RELEASE | 月享卡2.0 | 徐康 | 2021-04-15 |
\ No newline at end of file
......@@ -968,6 +968,7 @@ public class OrderSdkAdapter {
productDiscount.setCustomerCode("");
productDiscount.setAddInfo(orderSettlementResp.getExtInfo());
productDiscount.setProductId(orderSettlementResp.getProductId());
productDiscount.setExtInfo(orderSettlementResp.getExtInfo());
discountList.add(productDiscount);
}
}
......@@ -1416,6 +1417,9 @@ public class OrderSdkAdapter {
case "FULL_BUYM_SENDN":
type=230;
break;
case "MONTH_CARD_TOTAL_DISCOUNT":
type=231;
break;
case "SINGLE_PRODUCT_REDUCTION":
type=22;
break;
......@@ -2035,6 +2039,9 @@ public class OrderSdkAdapter {
case 230:
newOrderAccountType=OldOrderAccountType.FULL_BUYM_SENDN.getCode();
break;
case 231:
newOrderAccountType=OldOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT.getCode();
break;
case 22:
newOrderAccountType=OldOrderAccountType.SINGLE_PRODUCT_REDUCTION.getCode();
break;
......
......@@ -43,6 +43,7 @@ public enum OldOrderAccountType {
NEW_USER_DISCOUNT(101, "新用户立减", "NEW_USER_DISCOUNT"),
PRICE_DEDUCTION_COUPON(103, "抵价券", "PRICE_DEDUCTION_COUPON"),
TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT"),
MONTH_CARD_TOTAL_DISCOUNT(231, "月享卡优惠总金额", "MONTH_CARD_TOTAL_DISCOUNT"),
GATHER_SPOT(221, "集点活动","GATHER_SPOT"),
MEMBER_PRICE_DISCOUNT(220, "会员价优惠", "MEMBER_PRICE_DISCOUNT"),
COCO_PRODUCT_CASH_COUPON(36, "coco商品代金券","COCO_PRODUCT_CASH_COUPON"),
......
......@@ -37,6 +37,7 @@ public enum QueryOrderAccountType {
CARD_DISCOUNT_AMOUNT("CARD_DISCOUNT_AMOUNT", "会员卡优惠金额"),
XY_DISCOUNT("XY_DISCOUNT", "x件y折"),
TOTAL_DISCOUNT("TOTAL_DISCOUNT", "优惠总金额"),
MONTH_CARD_TOTAL_DISCOUNT("MONTH_CARD_TOTAL_DISCOUNT", "月享卡优惠总金额"),
ONLINE_PAY("ONLINE_PAY", "线上支付"),
FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"),
OFFLINE_PAY("OFFLINE_PAY", "线下支付"),
......
......@@ -716,6 +716,8 @@ public class QueryOrdersResponse {
private String addInfo;
private String productId;
private String extInfo;
}
@NoArgsConstructor
......
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-shoppingcart-sdk</artifactId>
<version>1.2.6.RELEASE</version>
<version>1.2.7.RELEASE</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......
......@@ -15,4 +15,5 @@
| 1.2.3.RELEASE| 麦咖啡商品券门槛金额字段| 孙昱 | 2021-02-04 |
| 1.2.4.RELEASE| 多小料| 刘鹏飞 | 2021-03-03 |
| 1.2.5.RELEASE| 频次券| 梁崇福 | 2021-03-09 |
| 1.2.6.RELEASE| 多规格加料校验| 梁崇福 | 2021-03-25 |
\ No newline at end of file
| 1.2.6.RELEASE| 多规格加料校验| 梁崇福 | 2021-03-25 |
| 1.2.7.RELEASE| 麦咖啡月享卡2.0| 孙昱 | 2021-04-15 |
......@@ -80,7 +80,13 @@ public class CartGoods {
/**
* 是否为种子券商品 1:是;0:否
*/
private int isSeedCouponGoods;
private int isMonthCardGoods;
/**
* 是否使用月享卡2.0
* 1 是
* 0 否
*/
private int isUseMonthCard;
/**
* 是否是太阳蛋商品
*/
......@@ -314,6 +320,12 @@ public class CartGoods {
* 月享卡类型:1.月享卡(单商品购买);2.月享卡(多商品购买);3.普通月卡
*/
private Integer type;
/**
* 是否使用月享卡2.0
* 1 是
* 0 否
*/
private int isUseMonthCard;
}
@Data
......
......@@ -46,7 +46,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.1.48-RELEASE</version>
<version>2.1.49-RELEASE</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -243,7 +243,8 @@ public class OrderAdapter {
if(ActivityTypeEnum.TYPE_11.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_12.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_32.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_37.getCode().equals(activityDiscountsDto.getActivityType())) {
|| ActivityTypeEnum.TYPE_37.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_38.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("tenderId", activityDiscountsDto.getTenderId());
} else if(ActivityTypeEnum.TYPE_34.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("customerCode", activityDiscountsDto.getTenderId());
......@@ -317,6 +318,16 @@ public class OrderAdapter {
.build();
orderAccountDtos.add(createOrderAccountDto);
}
if(shoppingCartGoodsDto.getMonthCardDiscount() != null && shoppingCartGoodsDto.getMonthCardDiscount().getDiscountAmount() != 0) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId("")
.name(shoppingCartGoodsDto.getMonthCardDiscount().getDiscountDesc())
.price(shoppingCartGoodsDto.getMonthCardDiscount().getDiscountAmount())
.accountType(QueryOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT)
.sequence(orderAccountIndex++)
.build();
orderAccountDtos.add(createOrderAccountDto);
}
createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList());
// update by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
......@@ -442,7 +453,8 @@ public class OrderAdapter {
.build();
JSONObject jsonObject = new JSONObject();
if(ActivityTypeEnum.TYPE_32.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_37.getCode().equals(activityDiscountsDto.getActivityType())) {
|| ActivityTypeEnum.TYPE_37.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_38.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("tenderId", activityDiscountsDto.getTenderId());
}
if(null != activityDiscountsDto.getExtendType()) {
......@@ -1356,7 +1368,7 @@ public class OrderAdapter {
String customerScorePrompt = null;
if (CollectionUtils.isNotEmpty(ordersBean.getAccountList())) {
for (QueryOrdersResponse.DataBean.OrderBean.AccountBean accountBean : ordersBean.getAccountList()) {
if (accountBean.getPrice() < 0) {
if (accountBean.getPrice() < 0 && !OldOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT.getCode().equals(accountBean.getType())) {
discountTotalAmount = discountTotalAmount + (0 - accountBean.getPrice());
}
if (OrderAccountType.BUY_DISCOUNT.getCode().equals(accountBean.getType())) {
......@@ -1394,7 +1406,11 @@ public class OrderAdapter {
customerScorePrompt = decimalFormat.format(customerScoreAmount / 100.0);
// customerScorePrompt = "积分抵扣-¥" + customerScoreAmountStr;
}
if (Integer.valueOf(99).equals(accountBean.getType())) {
if (OldOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT.getCode().equals(accountBean.getType())) {
responseVo.setMonthCardTotalDiscount(accountBean.getPrice());
responseVo.setMonthCardTotalDiscountName(accountBean.getName());
}
if (OldOrderAccountType.FREIGHT_COUPON.getCode().equals(accountBean.getType())) {
responseVo.setFreightCouponName(accountBean.getName());
}
}
......@@ -2175,16 +2191,15 @@ public class OrderAdapter {
discountTotalAmount = discountTotalAmount + productDiscount.getDiscountAmount()*productDiscount.getDiscountQty();
if (OrderAccountType.PRODUCT_COUPON.getCode().equals(productDiscount.getDiscountType())) {
hasProductCoupon = true;
productVo.setCouponName(productDiscount.getDiscountDesc());
// Integer extendType = StringUtils.isBlank(productDiscount.getAddInfo())?null:JSON.parseObject(productDiscount.getAddInfo()).getInteger("extendType");
// if(null != extendType && (3 == extendType || 4 == extendType || 5 == extendType)) {
// productVo.setCouponName(productDiscount.getDiscountDesc());
// } else {
// productVo.setName(productDiscount.getDiscountDesc());
// productVo.setSpuName(productDiscount.getDiscountDesc());
// productVo.setExtras("");
// productVo.setSpecification("");
// }
if(StringUtils.isNotBlank(productDiscount.getExtInfo())) {
JSONObject productDiscountExtInfo = JSON.parseObject(productDiscount.getExtInfo());
Integer extendType = productDiscountExtInfo.getInteger("extendType");
if(null == extendType || extendType != 12) {
productVo.setCouponName(productDiscount.getDiscountDesc());
} else {
productVo.setFinalPrice(productVo.getOriginalPrice());
}
}
}
if (OrderAccountType.BUYM_SENDN.getCode().equals(productDiscount.getDiscountType())) {
activityType = ActivityTypeEnum.TYPE_61.getCode();
......@@ -2634,6 +2649,9 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_32.getCode().equals(activityType)) {
return OldOrderAccountType.PRODUCT_COUPON;
}
if (ActivityTypeEnum.TYPE_38.getCode().equals(activityType)) {
return OldOrderAccountType.PRODUCT_COUPON;
}
if (ActivityTypeEnum.TYPE_37.getCode().equals(activityType)) {
return OldOrderAccountType.SEED_PRODUCT_COUPON;
}
......@@ -2687,6 +2705,9 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_230.getCode().equals(activityType)){
return OldOrderAccountType.FULL_BUYM_SENDN;
}
if (ActivityTypeEnum.TYPE_231.getCode().equals(activityType)){
return OldOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT;
}
return OldOrderAccountType.BUYM_SENDN;
}
......
......@@ -107,6 +107,11 @@ public class ShoppingCartGoodsDto {
*/
private Long payCardFee;
/**
* 月享卡总优惠金额
*/
private MonthCardDiscount monthCardDiscount;
@Data
public static class CartGoodsDetailDto {
/**
......@@ -356,4 +361,28 @@ public class ShoppingCartGoodsDto {
private Integer type;
}
@Data
public static class MonthCardDiscount {
/**
* 月享卡2.0优惠总额
*/
private Long discountAmount;
/**
* 月享卡券号
*/
private String couponCode;
/**
* 券标识
*/
private String couponLogo;
/**
* 优惠标识
*/
private String discountLogo;
/**
* 优惠描述
*/
private String discountDesc;
}
}
......@@ -114,6 +114,14 @@ public class QueryOrderResponseVo {
*/
private String freightCouponName;
/**
* 月享卡优惠总金额
*/
private Long monthCardTotalDiscount;
/**
* 月享卡优惠总金额
*/
private String monthCardTotalDiscountName;
/**
* 限时折扣优惠金额
*/
private Long discountLimitAmount;
......
......@@ -34,6 +34,7 @@ public enum ActivityTypeEnum {
TYPE_34(34, "运费券"),
TYPE_35(35, "买1赠3券"),
TYPE_37(37, "种子券"),
TYPE_38(38, "月享卡2.0"),
TYPE_5(5, "整单满金额折"),
TYPE_51(51, "每满金额折"),
TYPE_52(52, "阶梯满金额折"),
......@@ -42,6 +43,7 @@ public enum ActivityTypeEnum {
TYPE_61(61, "单品买M赠N"),
TYPE_7(7, "满额赠券"),
TYPE_8(8, "满N件换购"),
TYPE_231(231, "月享卡总优惠"),
/**
* 加价购
*/
......
......@@ -80,15 +80,8 @@ import java.util.stream.Collectors;
public class CheckMCCafeOrder {
@Autowired
private StoreTableNumberManager storeTableNumberManager;
@Autowired
private AssortmentOpenPlatformIappWxappConfigManager openPlatformIappWxappConfigManager;
@Autowired
private AssortmentOpenPlatformPartnerStoreDeliveryConfigManager deliveryConfigManager;
// 缓存取用户数据用
// @Autowired
// private UserServiceImpl userService;
@Autowired
private AssortmentCustomerInfoManager customerInfoManager;
//门店SDK
@Autowired
......@@ -101,23 +94,15 @@ public class CheckMCCafeOrder {
private MemberPropertyService memberPropertyService;
@Autowired
private ShoppingCartClient shoppingCartClient;
// @Autowired
// private OrderAdapter orderAdapter;
@Autowired
private StoreServiceImpl storeService;
@Autowired
private StockClient stockClient;
@Autowired
private ItemServiceImpl itemService;
@Autowired
private CouponService couponService;
@Autowired
private CouponClientService couponClientService;
@Autowired
private DeliveryFeiginMCCafeClient deliveryFeiginMCCafeClient;
@Autowired
private DeliveryServiceFeiginMCCafeClient deliveryServiceFeiginMCCafeClient;
@Value("${mcCafe.withOrderBuy.cardId}")
private String withOrderBuyCardId;
@Value("${mccafe.universal.coupon.code}")
private String withOrderBuyCouponCode;
......@@ -563,8 +548,17 @@ public class CheckMCCafeOrder {
}
List<MCCafeCouponVo> mcCafeCouponVos = new ArrayList<>();
Map<String, String> mcCafeUsedCoupon = new HashMap<>();
List<String> seedCardList = shoppingCartGoodsDto.getProducts().stream().filter(o -> ProductTypeEnum.getVirtualProductType().contains(o.getProductType()))
.map(o -> o.getMonthCardInfo().getCardCode()).collect(Collectors.toList());
List<String> seedCardList = new ArrayList<>();
shoppingCartGoodsDto.getProducts().stream().filter(o -> ProductTypeEnum.getVirtualProductType().contains(o.getProductType()))
.forEach(o -> {
if(o.getMonthCardInfo() == null) {
ShoppingCartGoodsDto.MonthCardVo monthCardVo = new ShoppingCartGoodsDto.MonthCardVo();
monthCardVo.setCardCode(withOrderBuyCouponCode);
monthCardVo.setCardNo(withOrderBuyCardId);
o.setMonthCardInfo(monthCardVo);
}
seedCardList.add(o.getMonthCardInfo().getCardCode());
});
seedCardList.add(withOrderBuyCouponCode);
if(CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getActivityDiscountsDtos())) {
shoppingCartGoodsDto.getActivityDiscountsDtos().forEach(o-> {
......
......@@ -593,8 +593,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));
// processRepeatGoodsWithSeedCoupon(shoppingCartGoodsDto);
// log.info("购物车拆行:"+JSON.toJSONString(shoppingCartGoodsDto));
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
//查询第三方商品编号
baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest);
......@@ -903,7 +903,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// }
//麦咖啡随单购咖啡月卡
if(withOrderBuyCoupon(orderBean, orderExtInfoDto.getThirdPartyMemberId())) {
if(withOrderBuyCoupon2(orderBean, orderExtInfoDto.getThirdPartyMemberId())) {
orderBean = getOrderBean(confirmOrderDto);
}
......@@ -1739,4 +1739,115 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return true;
}
/**
* 月享卡2.0发券
* @param orderBean
*/
public boolean withOrderBuyCoupon2(QueryOrdersResponseDto.DataBean.OrderBean orderBean, String thirdPartyMemberId){
LogUtil.info("发券入参:", thirdPartyMemberId, JSON.toJSONString(orderBean));
try{
List<String> cardIds = new ArrayList<>();
List<String> defaultCardCodes = new ArrayList<>();
for (OrderBean.ProductBean productBean : orderBean.getProductList()){
if(ProductTypeEnum.getVirtualProductType().contains(productBean.getProductType())) {
OrderProductAddInfoDto extInfo = JSON.parseObject(productBean.getExtInfo(), OrderProductAddInfoDto.class);
for(int i=0;i<productBean.getNumber();i++) {
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();
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())) {
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<>();
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();
couponReceiveInfo.setGoodsId(productBean.getSpecification());
couponReceiveInfo.setProductSeq(productBean.getSequence());
OrderProductAddInfoDto extInfo = JSON.parseObject(productBean.getExtInfo(), OrderProductAddInfoDto.class);
String cardCodeStr = "";
numberFor:
for(int j=0;j<productBean.getNumber();j++) {
cardFor:
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getCard_id().equals(extInfo.getCardId())) {
String couponCode = cardList.get(i).getCard_code();
cardCodeStr += couponCode+"/";
if(ResponseCodeConstant.RESPONSE_SUCCESS.equals(cardStatusMap.get(couponCode))) {
if(cardMap.get(extInfo.getCardCode()) == null) {
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);
break cardFor;
}
}
}
couponReceiveInfo.setCouponCode(cardCodeStr.substring(0, cardCodeStr.length()-1));
req.getCouponReceiveInfoList().add(couponReceiveInfo);
}
}
LogUtil.info("生成参数完成:", req, null);
orderSdkService.updateCostCouponCodeNew(req, LogTreadLocal.getTrackingNo());
return true;
} catch (Exception e){
LogUtil.error("发券异常", null, null, e);
}
return true;
}
}
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.3.44.RELEASE</version>
<version>1.3.45.RELEASE</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
......@@ -75,4 +75,5 @@
| 1.3.41.RELEASE | 美业 | 刘鹏飞 | 2021-03-12 |
| 1.3.42.RELEASE | 三方展示活动信息 | 张志恒 | 2021-03-22 |
| 1.3.43.RELEASE | 小助手刷卡支付 | 王航航 | 2021-03-31 |
| 1.3.44.RELEASE | 新增支付号升级SDK | 王航航 | 2021-04-06 |
\ No newline at end of file
| 1.3.44.RELEASE | 新增支付号升级SDK | 王航航 | 2021-04-06 |
| 1.3.45.RELEASE | 月享卡2.0 | 徐康 | 2021-04-15 |
\ No newline at end of file
......@@ -229,6 +229,7 @@ public class InterfaceAddressConstant {
* 修改费用表购买的优惠券和优惠表使用的优惠券
*/
public static final String UPDATE_COST_COUPONCODE = "/order/v2/mcCafe/updateCostCouponCode";
public static final String UPDATE_COST_COUPONCODE_NEW = "/order/v2/mcCafe/updateCostCouponCodeNew";
/**
* 查询使用了优惠券的订单数量
......
......@@ -902,6 +902,19 @@ public class OrderSdkService {
}
/**
* 修改费用表购买的优惠券和优惠表使用的优惠券
* @param request
* @param trackingNo
* @return
*/
public BaseResponse updateCostCouponCodeNew(UpdateCouponCodeReq request, String trackingNo) {
OrderBaseResp responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, UPDATE_COST_COUPONCODE_NEW,
createBaseRequest(request, trackingNo), new ParameterizedTypeReference<OrderBaseResp>() {
});
return responseHandle(responseDTO);
}
/**
* 查询使用了特定优惠券的订单数量
* @param request
* @param trackingNo
......
......@@ -45,7 +45,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-shoppingcart-sdk</artifactId>
<version>1.2.6.RELEASE</version>
<version>1.2.7.RELEASE</version>
</dependency>
<!-- 再来一单查询订单信息 -->
<dependency>
......
......@@ -331,8 +331,11 @@ public class ShoppingCartMccafeAdapter {
* 1. 商品券:cartGoodsDetailDto.couponCode非空,保留ApportionGoods#ApportionDetails#apportionType中32的
* 2. 普通商品:cartGoodsDetailDto.couponCode空,去掉32的
*/
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails> apportionDetails = apportionGoods.getApportionDetails().stream().filter(detail -> !detail.getActivityType().equals(ActivityTypeEnum.TYPE_32.getCode())
&& !detail.getActivityType().equals(ActivityTypeEnum.TYPE_104.getCode()) && !detail.getActivityType().equals(ActivityTypeEnum.TYPE_2.getCode()) && !detail.getActivityType().equals(ActivityTypeEnum.TYPE_21.getCode())).collect(Collectors.toList());
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails> apportionDetails = apportionGoods.getApportionDetails().stream()
.filter(detail -> !detail.getActivityType().equals(ActivityTypeEnum.TYPE_32.getCode())
&& !detail.getActivityType().equals(ActivityTypeEnum.TYPE_37.getCode())
&& !detail.getActivityType().equals(ActivityTypeEnum.TYPE_38.getCode()) && !detail.getActivityType().equals(ActivityTypeEnum.TYPE_104.getCode())
&& !detail.getActivityType().equals(ActivityTypeEnum.TYPE_2.getCode()) && !detail.getActivityType().equals(ActivityTypeEnum.TYPE_21.getCode())).collect(Collectors.toList());
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails detail : apportionDetails) {
List<ActivityDiscountsDto> currentDiscount = activityDiscountsDtoList.stream().filter(discount -> ObjectUtils.equals(discount.getActivityCode(), detail.getActivityCode())).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(currentDiscount)) {
......
......@@ -88,10 +88,6 @@ public class ActivityCalculationDiscountRequestDto {
*/
private String activityCode;
/**
* 是否为种子券商品
*/
private Integer isSeedCouponGoods;
/**
* 购物车商品行uid(种子券商品才传)
*/
private String cartGoodsUid;
......
......@@ -57,6 +57,12 @@ public class ActivityCalculationDiscountResponseDto {
* 总的优惠信息集合
*/
private List<Discount> discounts;
/**
* 月享卡2.0优惠
*/
private MonthCardDiscount monthlyEnjoyCardDiscount;
/**
* 商品优惠信息
*/
......@@ -115,6 +121,30 @@ public class ActivityCalculationDiscountResponseDto {
private SendPoint sendPointVo;
@Data
public static class MonthCardDiscount{
/**
* 月享卡2.0优惠总额
*/
private Long discountAmount;
/**
* 月享卡券号
*/
private String couponCode;
/**
* 券标识
*/
private String couponLogo;
/**
* 优惠标识
*/
private String discountLogo;
/**
* 优惠描述
*/
private String discountDesc;
}
@Data
public static class ActivityPrompt {
......
package cn.freemud.entities.dto.shoppingCart;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.OrderProductAddInfo;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
......@@ -92,6 +93,12 @@ public class ShoppingCartGoodsDto {
* 订单享受的促销活动
*/
private List<ActivityDiscountsDto> activityDiscountsDtos;
/**
* 月享卡2.0优惠集合
*/
private ActivityCalculationDiscountResponseDto.CalculationDiscountResult.MonthCardDiscount monthCardDiscount;
/**
* 扣减库存
*/
......
......@@ -41,4 +41,17 @@ public class BatchOperateCartGoodsRequestVo extends BaseRequestVo{
*/
private List<BatchGoodsInfoVo> goodsInfos;
/**
* 根据券号清除当前购物车中月卡及商品信息
*/
private String redundancyCouponCode;
/**
* 是否使用月享卡2.0
* 1 是
* 0 否
*/
private int isUseMonthCard;
}
\ No newline at end of file
......@@ -238,15 +238,15 @@ public class CartGoods {
/**
* 是否是月享卡商品
*/
private int isMonthCard;
private int isMonthCard = 0;
/**
* 是否是太阳蛋商品
*/
private int isSunnyCoupon=0;
/**
* 是否为种子券商品 1:是;0:否
* 是否为月享卡商品 1:是;0:否
*/
private int isSeedCouponGoods;
private int isMonthCardGoods = 0;
/**
* 月享卡信息
*/
......
package cn.freemud.entities.vo;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@Data
public class ClearCouponCodeRequestVo extends BaseRequestVo {
@NotEmpty(message = "券号不可为空")
private String redundancyCouponCode;
/**
* 是否使用月享卡2.0
* 1 是
* 0 否
*/
private int isUseMonthCard;
}
......@@ -29,4 +29,10 @@ public class MonthCardVo {
* 月享卡类型:1.月享卡(单商品购买);2.月享卡(多商品购买);3.普通月卡
*/
private Integer type;
/**
* 是否使用月享卡2.0
* 1 是
* 0 否
*/
private int isUseMonthCard = 1;
}
......@@ -69,6 +69,13 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
* 优惠券code列表
*/
private List<couponCode> couponCodes;
/**
* 是否使用月享卡2.0
* 1 是
* 0 否
*/
private Integer isUseMonthCard = 1;
/**
* 优惠券对应的活动号
*/
......
......@@ -36,6 +36,7 @@ public enum ActivityTypeEnum {
TYPE_32(32, "商品券"),
TYPE_33(33, "换购券"),
TYPE_37(37, "月享卡种子券"),
TYPE_38(38,"月享卡2.0"),
TYPE_5(5, "整单满金额折"),
TYPE_51(51, "每满金额折"),
TYPE_52(52, "阶梯满金额折"),
......
......@@ -102,7 +102,6 @@ public enum ResponseResult {
SHOPPING_CART_BUY_ONE_SEND_GOODS_ERR("44033", "寄件活动商品错误"),
SHOPPING_CART_COUPON_MIX_NOT_EXIST("44034", "券商品不存在"),
SHOPPING_CART_QTY_LIMIT_ERR("44035", "该商品单次购买数量限制为10,请知晓"),
SHOPPING_CART_SEED_COUPON_VALID("44037","券商品数量不可大于券数量"),
SHOPPING_CART_MATERIA_QTY_LIMIT_ERR("44038", "商品加料超过最大限制"),
/**
......
......@@ -20,6 +20,7 @@ import cn.freemud.service.CommonService;
import cn.freemud.service.impl.ItemServiceImpl;
import cn.freemud.service.thirdparty.ActivityClient;
import cn.freemud.utils.PropertyConvertUtil;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
......@@ -197,7 +198,7 @@ public class CalculationServiceImpl {
calculationDiscountResult == null ? new ArrayList<>() : calculationDiscountResult.getApportionGoods();
Map<String, String> duplicateGoodsMap = new HashMap<>();
cartGoodsList.stream().collect(Collectors.groupingBy(CartGoods::getGoodsId, Collectors.counting())).forEach((goodsId, count) -> {
cartGoodsList.stream().filter(cartGoods -> !StringUtils.equals(cartGoods.getSkuId(),"9999")).collect(Collectors.groupingBy(CartGoods::getGoodsId, Collectors.counting())).forEach((goodsId, count) -> {
duplicateGoodsMap.put(goodsId,String.format("%s,0", count));
});
for (int i = 0, len = cartGoodsList.size(); i < len; i++) {
......@@ -251,7 +252,7 @@ public class CalculationServiceImpl {
}
}
List<ShoppingCartGoodsDto.CartGoodsDetailDto> products = shoppingCartGoodsDto.getProducts();
List<ShoppingCartGoodsDto.CartGoodsDetailDto> products = shoppingCartGoodsDto.getProducts().stream().filter(p-> !StringUtils.equals("9999",p.getSkuId())).collect(Collectors.toList());
List<String> productIds = products.stream().map(t -> t.getSkuId()).collect(Collectors.toList());
//调用商品的接口获取商品键位
......@@ -405,9 +406,11 @@ public class CalculationServiceImpl {
calculationDiscountGoods.setGoodsQuantity(goodsQuantity);
calculationDiscountGoods.setOriginalPrice(originalPrice);
calculationDiscountGoods.setMemberDiscount(memberDiscount);
//新增咖啡月卡券券号
calculationDiscountGoods.setCouponCode(cartGoods.getCouponCode());
calculationDiscountGoods.setCartGoodsUid(cartGoods.getCartGoodsUid());
//新增咖啡月卡券券号,同一行商品才替换券号,防止不同商品券相同sku之间的覆盖
if (cartGoods.getCartGoodsUid().equals(calculationDiscountGoods.getCartGoodsUid())) {
calculationDiscountGoods.setCouponCode(StringUtils.isEmpty(cartGoods.getCouponCode()) ? null : cartGoods.getCouponCode());
}
ArrayList<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods.Material> materials = new ArrayList<>();
//可选搭配
......
......@@ -105,9 +105,9 @@ public class BatchGoodsInfoVo {
*/
private int isMonthCard;
/**
* 是否为种子券商品 1:是;0:否
* 是否为月享卡商品
*/
private int isSeedCouponGoods;
private int isMonthCardGoods;
/**
* 月享卡加购信息
*/
......
......@@ -144,9 +144,9 @@ public class MCoffeeAddGoodsRequestVo {
*/
private int isMonthCard;
/**
* 是否为种子券商品 1:是;0:否
* 是否为月享卡商品
*/
private int isSeedCouponGoods;
private int isMonthCardGoods;
/**
* 月享卡加购信息
*/
......
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