Commit f9bc24fa by 刘鹏飞

Merge remote-tracking branch 'remotes/origin/feature/coco-payGift-刘鹏飞' into develop

# Conflicts:
#	assortment-ordercenter-sdk/pom.xml
#	order-application-service/pom.xml
#	order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
#	order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
#	ordercenter-sdk/pom.xml
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
parents 2a55595b a5dadfc0
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.18-SNAPSHOT</version> <version>2.2.19-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<version>1.7.3-SNAPSHOT</version> <version>1.7.4-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -107,3 +107,4 @@ ...@@ -107,3 +107,4 @@
| 2.2.15-SNAPSHOT| 拼单 | 缪晖 | 2020-12-2 | | 2.2.15-SNAPSHOT| 拼单 | 缪晖 | 2020-12-2 |
| 2.2.17-SNAPSHOT| 带券订单下单直接锁券 | 李小二 | 2020-12-2 | | 2.2.17-SNAPSHOT| 带券订单下单直接锁券 | 李小二 | 2020-12-2 |
| 2.2.18-SNAPSHOT| 抖音支付新增抖音单号和openId | 张志恒 | 2020-12-4 | | 2.2.18-SNAPSHOT| 抖音支付新增抖音单号和openId | 张志恒 | 2020-12-4 |
| 2.2.19-SNAPSHOT| 买一赠一寄件 | 刘鹏飞 | 2020-12-11 |
\ No newline at end of file
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.18-SNAPSHOT</version> <version>2.2.19-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -9,6 +9,8 @@ public class ResponseCodeConstant { ...@@ -9,6 +9,8 @@ public class ResponseCodeConstant {
public final static String RESPONSE_SUCCESS_STR = "100"; public final static String RESPONSE_SUCCESS_STR = "100";
public final static String COCO_RESPONSE_COUPON_ERR_STR = "49000";
public final static String RESPONSE_SUCCESS_OK = "ok"; public final static String RESPONSE_SUCCESS_OK = "ok";
public final static Integer RESPONSE_SUCCESS_1 = 1; public final static Integer RESPONSE_SUCCESS_1 = 1;
public final static String RESPONSE_SUCCESS_0_STR = "0"; public final static String RESPONSE_SUCCESS_0_STR = "0";
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
package cn.freemud.entities.dto.activity; package cn.freemud.entities.dto.activity;
import cn.freemud.entities.vo.PayGiftCouponVo; import cn.freemud.entities.vo.PayGiftCouponVo;
import cn.freemud.entities.vo.PayGiftGoodsConfigVo;
import cn.freemud.entities.vo.PayGiftMicroProgramConfigVo;
import cn.freemud.entities.vo.PayGiftWechatCouponInfoVo; import cn.freemud.entities.vo.PayGiftWechatCouponInfoVo;
import lombok.Data; import lombok.Data;
...@@ -35,4 +37,34 @@ public class PayGiftCheckAndJoinResponseDto { ...@@ -35,4 +37,34 @@ public class PayGiftCheckAndJoinResponseDto {
private String type; private String type;
private List<PayGiftCouponVo> coupons; private List<PayGiftCouponVo> coupons;
private PayGiftWechatCouponInfoVo wechatCouponInfo; private PayGiftWechatCouponInfoVo wechatCouponInfo;
/**
* 奖励类型:1-非码券,2-微信商家券,3-弹窗奖励
*/
private String syncWechat;
/**
* 活动配图
*/
private String activityPicture;
/**
* 跳转设置(跳转类型) 0:无 5:跳转页面 10:外部小程序 15:跳转商品 20:跳转H5
*/
private String redirectType;
/**
* 跳转商品
*/
private PayGiftGoodsConfigVo goodsConfig;
/**
* 跳转小程序
*/
private PayGiftMicroProgramConfigVo microProgramConfig;
/**
* 跳转页面5和20跳转外部H5对应的路径或者URL
*/
private String redirectPage;
} }
...@@ -167,7 +167,7 @@ public class CreateOrderVo { ...@@ -167,7 +167,7 @@ public class CreateOrderVo {
/** /**
* 券码列表 * 券码列表
*/ */
private List<String> couponCodes; private List<couponCode> couponCodes;
/** /**
* 运费券code * 运费券code
...@@ -440,4 +440,21 @@ public class CreateOrderVo { ...@@ -440,4 +440,21 @@ public class CreateOrderVo {
*/ */
private Boolean sendCoupon; private Boolean sendCoupon;
} }
@Data
public final static class couponCode {
/**
* 优惠券
*/
private String couponCode;
/**
* 活动号
*/
private String activityCode;
/**
* 顺序
*/
private Integer index;
}
} }
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class PayGiftGoodsConfigVo {
/**
* 跳转商品ID
*/
private String goodsId;
/**
* 跳转商品名称
*/
private String goodsName;
/**
* 跳转商品价格,单位分
*/
private Integer price;
}
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class PayGiftMicroProgramConfigVo {
/**
* 跳转小程序ID
*/
private String appId;
/**
* 跳转小程序跳转路径
*/
private String redirectUrl;
}
...@@ -371,6 +371,37 @@ public class QueryOrderResponseVo { ...@@ -371,6 +371,37 @@ public class QueryOrderResponseVo {
private List<PayGiftCouponVo> coupons; private List<PayGiftCouponVo> coupons;
private PayGiftWechatCouponInfoVo wechatCouponInfo; private PayGiftWechatCouponInfoVo wechatCouponInfo;
/**
* 支付有礼奖励类型:1-非码券,2-微信商家券,3-弹窗奖励
*/
private String syncWechat;
/**
* 支付有礼活动配图
*/
private String activityPicture;
/**
* 支付有礼跳转设置(跳转类型) 0:无 5:跳转页面 10:外部小程序 15:跳转商品 20:跳转H5
*/
private String redirectType;
/**
* 支付有礼跳转商品
*/
private PayGiftGoodsConfigVo goodsConfig;
/**
* 支付有礼跳转小程序
*/
private PayGiftMicroProgramConfigVo microProgramConfig;
/**
* 支付有礼跳转页面5和20跳转外部H5对应的路径或者URL
*/
private String redirectPage;
/** /**
* 收件人省份 * 收件人省份
*/ */
......
...@@ -207,6 +207,11 @@ public class ShoppingCartInfoRequestVo { ...@@ -207,6 +207,11 @@ public class ShoppingCartInfoRequestVo {
* 活动号 * 活动号
*/ */
private String activityCode; private String activityCode;
/**
* 顺序
*/
private Integer index;
} }
} }
...@@ -227,6 +227,12 @@ public enum ResponseResult { ...@@ -227,6 +227,12 @@ public enum ResponseResult {
DELIVERY_INFO_NOT_DELIVERY("60001", "当前地址不可配送"), DELIVERY_INFO_NOT_DELIVERY("60001", "当前地址不可配送"),
DELIVERY_INFO_ERROR("60002","配送地址不正确"), DELIVERY_INFO_ERROR("60002","配送地址不正确"),
DELIVERY_CREATE_ERROR("60003","运单不足,配送失败"), DELIVERY_CREATE_ERROR("60003","运单不足,配送失败"),
/**
* coco券验证失败
*/
COCO_COUPON_VALIDATOR_FAIL("70000", "优惠券验证错误"),
; ;
......
...@@ -579,7 +579,7 @@ public class CheckOrder { ...@@ -579,7 +579,7 @@ public class CheckOrder {
// 校验couponCode // 校验couponCode
GetCouponDetailResponseDto getCouponDetailResponseDto = couponService.getMemberCoupon(GetMemberCouponRequestVo.builder() GetCouponDetailResponseDto getCouponDetailResponseDto = couponService.getMemberCoupon(GetMemberCouponRequestVo.builder()
.partnerId(createOrderVo.getPartnerId()) .partnerId(createOrderVo.getPartnerId())
.couponCode(couponCode).build()); .couponCode(couponCode.getCouponCode()).build());
if (Objects.equals(getCouponDetailResponseDto, null) || CollectionUtils.isEmpty(getCouponDetailResponseDto.getDetails()) if (Objects.equals(getCouponDetailResponseDto, null) || CollectionUtils.isEmpty(getCouponDetailResponseDto.getDetails())
|| getCouponDetailResponseDto.getDetails().get(0).getActive() == null || getCouponDetailResponseDto.getDetails().get(0).getActive() == null
|| getCouponDetailResponseDto.getDetails().get(0).getActive().getActiveCode() == null) { || getCouponDetailResponseDto.getDetails().get(0).getActive().getActiveCode() == null) {
...@@ -594,8 +594,9 @@ public class CheckOrder { ...@@ -594,8 +594,9 @@ public class CheckOrder {
} }
String activeCode = getCouponDetailResponseDto.getDetails().get(0).getActive().getActiveCode(); String activeCode = getCouponDetailResponseDto.getDetails().get(0).getActive().getActiveCode();
ShoppingCartInfoRequestVo.couponCode coupon = new ShoppingCartInfoRequestVo.couponCode(); ShoppingCartInfoRequestVo.couponCode coupon = new ShoppingCartInfoRequestVo.couponCode();
coupon.setCouponCode(couponCode); coupon.setCouponCode(couponCode.getCouponCode());
coupon.setActivityCode(activeCode); coupon.setActivityCode(activeCode);
coupon.setIndex(couponCode.getIndex());
couponCodes.add(coupon); couponCodes.add(coupon);
}); });
...@@ -620,6 +621,12 @@ public class CheckOrder { ...@@ -620,6 +621,12 @@ public class CheckOrder {
} else { } else {
apportionResponse = shoppingCartClient.getShoppingCartGoodsApportionNew(requestDto); apportionResponse = shoppingCartClient.getShoppingCartGoodsApportionNew(requestDto);
} }
// 这个是专门的给coco使用的验证券的逻辑
if (ObjectUtils.equals(ResponseCodeConstant.COCO_RESPONSE_COUPON_ERR_STR, apportionResponse.getCode())) {
throw new ServiceException(ResponseResult.COCO_COUPON_VALIDATOR_FAIL,apportionResponse.getMessage());
}
if (!ObjectUtils.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, apportionResponse.getCode())) { if (!ObjectUtils.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, apportionResponse.getCode())) {
ResponseResult responseResult = ResponseResult.getResponseResult(apportionResponse.getCode()); ResponseResult responseResult = ResponseResult.getResponseResult(apportionResponse.getCode());
throw new ServiceException(responseResult != null ? responseResult : ResponseResult.SHOPPING_CART_GETINFO_ERROR); throw new ServiceException(responseResult != null ? responseResult : ResponseResult.SHOPPING_CART_GETINFO_ERROR);
......
...@@ -1281,6 +1281,14 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1281,6 +1281,14 @@ public class OrderServiceImpl implements Orderservice {
queryOrderResponseVo.setActivityName(payGiftResponse.getActivityName()); queryOrderResponseVo.setActivityName(payGiftResponse.getActivityName());
queryOrderResponseVo.setCoupons(payGiftResponse.getCoupons()); queryOrderResponseVo.setCoupons(payGiftResponse.getCoupons());
queryOrderResponseVo.setWechatCouponInfo(payGiftResponse.getWechatCouponInfo()); queryOrderResponseVo.setWechatCouponInfo(payGiftResponse.getWechatCouponInfo());
queryOrderResponseVo.setActivitySendType(payGiftResponse.getSendType());
queryOrderResponseVo.setSyncWechat(payGiftResponse.getSyncWechat());
queryOrderResponseVo.setActivityPicture(payGiftResponse.getActivityPicture());
queryOrderResponseVo.setRedirectType(payGiftResponse.getRedirectType());
queryOrderResponseVo.setGoodsConfig(payGiftResponse.getGoodsConfig());
queryOrderResponseVo.setMicroProgramConfig(payGiftResponse.getMicroProgramConfig());
queryOrderResponseVo.setRedirectPage(payGiftResponse.getRedirectPage());
queryOrderResponseVo.setActivitySendType(payGiftResponse.getSendType());
} }
} }
......
...@@ -120,10 +120,7 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService { ...@@ -120,10 +120,7 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
if(null != masterProducts && !masterProducts.isEmpty()){ if(null != masterProducts && !masterProducts.isEmpty()){
masterProducts.forEach(product -> { masterProducts.forEach(product -> {
Integer giftQty = product.getQty(); Integer giftQty = giftMap.get(product.getCid()) == null ? 0 : giftMap.get(product.getCid());
if(giftQty == 0){
return;
}
product.setQty(product.getQty() + giftQty); product.setQty(product.getQty() + giftQty);
}); });
} }
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<version>1.0.0</version> <version>1.0.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>1.7.3-SNAPSHOT</version> <version>1.7.4-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -44,4 +44,5 @@ ...@@ -44,4 +44,5 @@
| 1.7.0-SNAPSHOT | 买一赠一寄件 | 刘鹏飞 | 2020-12-1 | | 1.7.0-SNAPSHOT | 买一赠一寄件 | 刘鹏飞 | 2020-12-1 |
| 1.7.1-SNAPSHOT | 拼单 | 缪晖 | 2020-12-02 | | 1.7.1-SNAPSHOT | 拼单 | 缪晖 | 2020-12-02 |
| 1.7.2-SNAPSHOT | coco订单详情赠品合并 | 刘鹏飞 | 2020-12-3 | | 1.7.2-SNAPSHOT | coco订单详情赠品合并 | 刘鹏飞 | 2020-12-3 |
| 1.7.3-SNAPSHOT| 抖音支付新增抖音单号和openId | 张志恒 | 2020-12-4 | | 1.7.3-SNAPSHOT| 抖音支付新增抖音单号和openId | 张志恒 | 2020-12-4 |
\ No newline at end of file | 1.7.4-SNAPSHOT| 买一赠一寄件 | 刘鹏飞 | 2020-12-11 |
\ No newline at end of file
...@@ -31,5 +31,5 @@ public class OrderSendCouponReq { ...@@ -31,5 +31,5 @@ public class OrderSendCouponReq {
/** /**
* 买一赠一寄件信息 * 买一赠一寄件信息
*/ */
private List<OrderSendCouponUpdateReq> chooseGoods; private List<OrderSendCouponUpdateReq> orderSendCouponRespList;
} }
...@@ -9,6 +9,9 @@ public class ResponseCodeConstant { ...@@ -9,6 +9,9 @@ public class ResponseCodeConstant {
public final static String RESPONSE_SUCCESS_STR = "100"; public final static String RESPONSE_SUCCESS_STR = "100";
// coco券校验异常的错误
public final static String COCO_RESPONSE_COUPON_ERR_STR = "700";
public final static String RESPONSE_SUCCESS_OK = "ok"; public final static String RESPONSE_SUCCESS_OK = "ok";
public final static Integer RESPONSE_SUCCESS_1 = 1; public final static Integer RESPONSE_SUCCESS_1 = 1;
public final static String RESPONSE_SUCCESS_0_STR = "0"; public final static String RESPONSE_SUCCESS_0_STR = "0";
......
...@@ -89,6 +89,11 @@ public class CalculationSharingDiscountRequestDto { ...@@ -89,6 +89,11 @@ public class CalculationSharingDiscountRequestDto {
* 活动号 * 活动号
*/ */
private String activityCode; private String activityCode;
/**
* 下标
*/
private Integer useIndex;
} }
@Data @Data
......
...@@ -217,6 +217,11 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo { ...@@ -217,6 +217,11 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
* 活动号 * 活动号
*/ */
private String activityCode; private String activityCode;
/**
* 顺序
*/
private Integer index;
} }
} }
...@@ -146,6 +146,7 @@ public enum ResponseResult { ...@@ -146,6 +146,7 @@ public enum ResponseResult {
COUPON_SHOP_NOTSUPPORT("46010", "优惠券在当前门店不可用"), COUPON_SHOP_NOTSUPPORT("46010", "优惠券在当前门店不可用"),
COUPON_ORDER_WAY_ERROR("46011", "您选择得优惠券不适用该点餐方式"), COUPON_ORDER_WAY_ERROR("46011", "您选择得优惠券不适用该点餐方式"),
COUPON_VERIFICATION_FAIL("46012", "优惠券核销失败"), COUPON_VERIFICATION_FAIL("46012", "优惠券核销失败"),
/** /**
* 加价购商品 * 加价购商品
*/ */
...@@ -176,7 +177,13 @@ public enum ResponseResult { ...@@ -176,7 +177,13 @@ public enum ResponseResult {
*/ */
WEICHAT_SHOP_NOTSUPPORT("48001", "当前门店不可用"), WEICHAT_SHOP_NOTSUPPORT("48001", "当前门店不可用"),
WEICHAT_NOT_PRODUCTCARD("48002", "不是商品券不用加入购物车"), WEICHAT_NOT_PRODUCTCARD("48002", "不是商品券不用加入购物车"),
WEICHAT_PRODUCT_NOEXIST("48003", "商品不存在"); WEICHAT_PRODUCT_NOEXIST("48003", "商品不存在"),
/**
* coco验证券错误
*/
COCO_COUPON_VALIDATOR_FAIL("49000", "优惠券验证错误")
;
private String code; private String code;
......
...@@ -51,6 +51,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -51,6 +51,7 @@ import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerStoreDeliveryConfig; import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerStoreDeliveryConfig;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager; import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.ErrorLog; import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest; import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
...@@ -345,7 +346,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -345,7 +346,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, partnerId , partnerId
, null); , null);
buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,partnerId); buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,null,partnerId);
} }
else { else {
// 获取优惠信息 // 获取优惠信息
...@@ -469,7 +470,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -469,7 +470,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, partnerId , partnerId
, null); , null);
buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,partnerId); buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,null,partnerId);
} }
else { else {
// 获取优惠信息 // 获取优惠信息
...@@ -587,6 +588,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -587,6 +588,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
coupon.setActivityCode(activityCode); coupon.setActivityCode(activityCode);
coupons.add(coupon); coupons.add(coupon);
} }
buildCoupons(coupons,shoppingCartInfoRequestVo.getCouponCodes());
List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList = shoppingCartInfoRequestVo.getSendGoods(); List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList = shoppingCartInfoRequestVo.getSendGoods();
List<ShoppingCartInfoRequestVo.SendGoods> sendGoods = new ArrayList<>(); List<ShoppingCartInfoRequestVo.SendGoods> sendGoods = new ArrayList<>();
if (CollectionUtils.isNotEmpty(sendGoodsList)) { if (CollectionUtils.isNotEmpty(sendGoodsList)) {
...@@ -624,7 +628,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -624,7 +628,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, partnerId , partnerId
,shoppingCartInfoRequestVo.getFlag()); ,shoppingCartInfoRequestVo.getFlag());
buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,calculationSharingDiscountResult,partnerId); buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,calculationSharingDiscountResult,shoppingCartInfoRequestVo.getFlag(),partnerId);
} }
else { else {
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>();
...@@ -817,6 +821,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -817,6 +821,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
coupon.setActivityCode(activityCode); coupon.setActivityCode(activityCode);
coupons.add(coupon); coupons.add(coupon);
} }
// 当couponCodes不为空时,需参与价格计算,同时排除单券入参
buildCoupons(coupons,shoppingCartInfoRequestVo.getCouponCodes());
CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType
, partnerId , partnerId
, storeId , storeId
...@@ -2131,10 +2138,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2131,10 +2138,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
*/ */
private void buildShoppingCartGoodsResponse(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, private void buildShoppingCartGoodsResponse(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,
CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult, CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult,
Integer flag,
String partnerId) { String partnerId) {
ShoppingCartRelationService shoppingCartRelationService = shoppingCartRelationFactory.getBuildShoppingCartGoodsResponseService(partnerId); ShoppingCartRelationService shoppingCartRelationService = shoppingCartRelationFactory.getBuildShoppingCartGoodsResponseService(partnerId);
shoppingCartRelationService.buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult); shoppingCartRelationService.buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,flag);
} }
...@@ -2178,4 +2186,37 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2178,4 +2186,37 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return false; return false;
} }
} }
private List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> buildCoupons(List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> oldCoupons, List<ShoppingCartInfoRequestVo.couponCode> coupons){
ApiLog.info("批量使用优惠券前,oldCoupons,coupons",oldCoupons,coupons);
for(int i = 0 ; i < oldCoupons.size() ; i++){
CalculationSharingDiscountRequestDto.CalculationDiscountCoupon oldCoupon = oldCoupons.get(i);
oldCoupon.setUseIndex(i);
}
List<String> codes = oldCoupons.stream().map(CalculationSharingDiscountRequestDto.CalculationDiscountCoupon::getCode).collect(toList());
if (coupons != null) {
for(int x = 0 ; x < coupons.size() ; x++){
ShoppingCartInfoRequestVo.couponCode cp = coupons.get(x);
if(codes.contains(cp.getCouponCode())){
continue;
}
CalculationSharingDiscountRequestDto.CalculationDiscountCoupon coupon = new CalculationSharingDiscountRequestDto.CalculationDiscountCoupon();
coupon.setCode(cp.getCouponCode());
coupon.setActivityCode(cp.getActivityCode());
coupon.setUseIndex(cp.getIndex() == null ? x + oldCoupons.size(): cp.getIndex() + oldCoupons.size());
oldCoupons.add(coupon);
}
}
ApiLog.info("批量使用优惠券后,oldCoupons,coupons",oldCoupons,coupons);
return oldCoupons;
}
} }
...@@ -198,6 +198,11 @@ public class CalculationSharingDiscountService { ...@@ -198,6 +198,11 @@ public class CalculationSharingDiscountService {
return result; return result;
} }
// 这个是专门给coco使用的券验证错误的异常,message要抛出去
if(sharingDiscountResponseDto != null && StringUtils.equals(sharingDiscountResponseDto.getStatusCode(), ResponseCodeConstant.COCO_RESPONSE_COUPON_ERR_STR)){
throw new ServiceException(ResponseResult.COCO_COUPON_VALIDATOR_FAIL,sharingDiscountResponseDto.getMsg());
}
// 支付宝华莱士紧急修改代码,当促销返回103错误码时,需要报券不适用于该门店,且清空购物车 // 支付宝华莱士紧急修改代码,当促销返回103错误码时,需要报券不适用于该门店,且清空购物车
//throw new ServiceException(ResponseResult.OPERATE_TOO_OFTEN); //throw new ServiceException(ResponseResult.OPERATE_TOO_OFTEN);
return null; return null;
......
...@@ -13,6 +13,9 @@ import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo; ...@@ -13,6 +13,9 @@ import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.service.ActivityService; import cn.freemud.service.ActivityService;
import cn.freemud.utils.WebUtil; import cn.freemud.utils.WebUtil;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.card.sdk.log.ApiLog;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -45,7 +48,48 @@ public class FullSharingService { ...@@ -45,7 +48,48 @@ public class FullSharingService {
, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo , ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo
, ActivityQueryDto activityQueryDto) { , ActivityQueryDto activityQueryDto) {
List<ActivityTypeEnum> activityTypeEnums = new LinkedList<>();
/**
* 每满减 TYPE_11\ 阶梯满减 TYPE_12
*/
activityTypeEnums.add(ActivityTypeEnum.TYPE_11);
activityTypeEnums.add(ActivityTypeEnum.TYPE_12);
activityTypeEnums.add(ActivityTypeEnum.TYPE_3);
activityTypeEnums.add(ActivityTypeEnum.TYPE_31);
if (discountResult == null || CollectionUtils.isEmpty(discountResult.getGoods())) { if (discountResult == null || CollectionUtils.isEmpty(discountResult.getGoods())) {
/**
* 调用促销统一活动查询,过滤出参与的满减(目前只有每满减和阶梯满减)
*/
ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, activityTypeEnums, null);
if (null==activityQueryResponseDto || CollectionUtils.isEmpty(activityQueryResponseDto.getResult())) {
return;
}
Optional<ActivityResponseDto> first = activityQueryResponseDto.getResult().stream().findFirst();
PromotionMessageDto promotionMessageDto = new PromotionMessageDto();
ActivityResponseDto activityResponseDto = first.get();
promotionMessageDto.setActivityId(activityResponseDto.getActivityCode());
promotionMessageDto.setActivityName(activityResponseDto.getActivityName());
promotionMessageDto.setActivityType(activityResponseDto.getActivityType());
promotionMessageDto.setPromotionAmount(0L);
StringBuilder messageBuilder = new StringBuilder();
ArrayList<ActivityList> activityList = new ArrayList<>();
List<BenefitBeanDto> benefitBeanDtos = activityResponseDto.getBenefits();
BenefitBeanDto benefitBeanDto = benefitBeanDtos.get(0);
//调用没有加入购物车的提示语的方法
setMessageNotInShoppingCart(messageBuilder, activityResponseDto, benefitBeanDtos, benefitBeanDto, activityList);
promotionMessageDto.setPromotionMessage(messageBuilder.toString());
ActivityTip activityTip = new ActivityTip();
activityTip.setActivityCode(promotionMessageDto.getActivityId());
activityTip.setActivityType(promotionMessageDto.getActivityType());
activityTip.setActivityName(promotionMessageDto.getPromotionMessage());
activityTip.setActivityList(activityList);
shoppingCartGoodsResponseVo.setActivityTip(activityTip);
return; return;
} }
...@@ -65,14 +109,7 @@ public class FullSharingService { ...@@ -65,14 +109,7 @@ public class FullSharingService {
} }
shoppingCartGoodsResponseVo.setActivityTip(new ActivityTip()); shoppingCartGoodsResponseVo.setActivityTip(new ActivityTip());
List<ActivityTypeEnum> activityTypeEnums = new LinkedList<>();
/**
* 每满减 TYPE_11\ 阶梯满减 TYPE_12
*/
activityTypeEnums.add(ActivityTypeEnum.TYPE_11);
activityTypeEnums.add(ActivityTypeEnum.TYPE_12);
activityTypeEnums.add(ActivityTypeEnum.TYPE_3);
activityTypeEnums.add(ActivityTypeEnum.TYPE_31);
List<Integer> typeEnums = activityTypeEnums.stream().map(ActivityTypeEnum::getCode).collect(Collectors.toList()); List<Integer> typeEnums = activityTypeEnums.stream().map(ActivityTypeEnum::getCode).collect(Collectors.toList());
/** /**
* 还原满减折扣到行记录上 * 还原满减折扣到行记录上
......
...@@ -147,7 +147,7 @@ public class GiftSharingService { ...@@ -147,7 +147,7 @@ public class GiftSharingService {
, List<ShoppingCartGoodsDto.CartGoodsDetailDto> cartGoodsDetailDtoList , List<ShoppingCartGoodsDto.CartGoodsDetailDto> cartGoodsDetailDtoList
, ActivityQueryDto activityQueryDto , ActivityQueryDto activityQueryDto
, String menuType) { , String menuType) {
if (CollectionUtils.isEmpty(discountResult.getGoods())) { if (discountResult == null || CollectionUtils.isEmpty(discountResult.getGoods())) {
return; return;
} }
List<ProductBeanDTO> beanDTOList = this.drawGiftInfo(discountResult, activityQueryDto, menuType); List<ProductBeanDTO> beanDTOList = this.drawGiftInfo(discountResult, activityQueryDto, menuType);
......
...@@ -21,7 +21,8 @@ public interface ShoppingCartRelationService { ...@@ -21,7 +21,8 @@ public interface ShoppingCartRelationService {
* 获取购物车查询出参构建实现 * 获取购物车查询出参构建实现
*/ */
void buildShoppingCartGoodsResponse(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, void buildShoppingCartGoodsResponse(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,
CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult); CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult,
Integer flag);
} }
...@@ -22,7 +22,8 @@ public class PlatformShoppingCartRelationServiceImpl implements ShoppingCartRela ...@@ -22,7 +22,8 @@ public class PlatformShoppingCartRelationServiceImpl implements ShoppingCartRela
@Override @Override
public void buildShoppingCartGoodsResponse(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, public void buildShoppingCartGoodsResponse(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,
CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult) { CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult,
Integer flag) {
} }
} }
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