Commit e4833c79 by chongfu.liang

Merge branch 'feature/2.0.12-富友线下对接开放平台-lcf' into develop

# Conflicts:
#	assortment-ordercenter-sdk/pom.xml
#	assortment-ordercenter-sdk/readme.md
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/payment/OrderPayResponse.java
#	assortment-shoppingcart-sdk/pom.xml
#	assortment-shoppingcart-sdk/readme.md
#	order-application-service/pom.xml
#	order-application-service/src/main/java/cn/freemud/entities/dto/ecology/SubscribeMessageRequest.java
#	order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
#	order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderResponseVo.java
#	order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
#	order-application-service/src/main/java/cn/freemud/service/Orderservice.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
#	ordercenter-sdk/readme.md
#	ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExtInfoDto.java
#	ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/create/CreateOrderRequest.java
#	ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/response/orderInfo/OrderInfoReqs.java
#	shopping-cart-application-service/pom.xml
#	shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartGoodsResponseVo.java
#	shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
parents 82530220 9eb74ba9
......@@ -2910,6 +2910,15 @@ public class OrderAdapter {
payBean.setTimestamp(payOrderBean.getTimestamp());
payBean.setAliPayOrder(payOrderBean.getAliPayOrder());
responseDto.setPayOrder(payBean);
// coco 机场支付
try {
JSONObject jsonObject = JSONObject.parseObject(payOrderBean.getAliPayOrder());
responseDto.setSellerId(jsonObject.getString("sellerId"));
responseDto.setPayNotifyUrl(jsonObject.getString("payNotifyUrl"));
responseDto.setEbCode(jsonObject.getString("ebCode"));
}catch (Exception e){
}
}
responseDto.setStatusCode(unifiedOrderResponse.getStatusCode());
responseDto.setPayTransId(unifiedOrderResponse.getPayTransId());
......
......@@ -23,6 +23,11 @@ import java.util.List;
@Data
public class PayGiftCheckAndJoinResponseDto {
/**
* 活动号
*/
private String activityNo;
private String activityName;
/**
* 发送方式
......
......@@ -26,4 +26,7 @@ public class PayGitCheckAndJoinRequestDto {
private Integer orderWay;
private List<String> skuIds;
// 版本号
private Integer ver;
}
......@@ -1239,7 +1239,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
public String mcCafeRefundNotifyCallback(RefundNotifyCallbackRequestVo requestVo) {
if (StringUtils.isEmpty(requestVo.getTransId())) {
//订单号不能为空
return refundFaileMessage("transId is can not empty");
return refundFailedMessage("transId is can not empty");
}
//混合支付需要从缓存中获取订单号码,正常支付TransId = orderId
String orderId = redisCache.getValue(RedisUtil.getPaymentTransIdOrderKey(requestVo.getTransId()));
......@@ -1247,19 +1247,18 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
requestVo.setTransId(orderId);
}
String trackingNo = LogTreadLocal.getTrackingNo();
Integer refundStatus = requestVo.getRefundStatus();
if (!Objects.equals(refundStatus, ResponseCodeConstant.RESPONSE_SUCCESS)) {
if (!Objects.equals(requestVo.getRefundStatus(), RefundStatus.COMPLETE_REFUND.getCode())) {
//只有退款成功更新状态.其他情况不处理
return refundFaileMessage("pay refundStatus is not 100,refundStatus=" + refundStatus);
return refundFailedMessage("pay refundStatus is not 4,refundStatus=" + requestVo.getRefundStatus());
}
// 如果transId为空,返回失败
if (StringUtils.isBlank(requestVo.getTransId())) {
return refundFaileMessage("transId is empty " + requestVo);
return refundFailedMessage("transId is empty " + requestVo);
}
//查询订单详情
QueryRelationOrderByIdResponseDto queryOrderByIdResponseDto = getQueryRelationOrderByIdResponseDto(requestVo.getTransId());
if (queryOrderByIdResponseDto.getData() == null || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, queryOrderByIdResponseDto.getErrcode())) {
return refundFaileMessage("order query fail " + queryOrderByIdResponseDto);
return refundFailedMessage("order query fail " + queryOrderByIdResponseDto);
}
OrderBean orderBean = new OrderBean();
......@@ -1293,7 +1292,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) {
LogUtil.error("mcCafeRefundNotifyCallback", orderRefundRequest, baseOrderResponse);
return refundFaileMessage("create after sale order failed");
return refundFailedMessage("create after sale order failed");
}
......@@ -1367,7 +1366,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
/**
* 退款中回调失败返回信息
*/
public String refundFaileMessage(String errorMes) {
public String refundFailedMessage(String errorMes) {
Map<String, Object> map = Maps.newTreeMap();
map.put("code", 500);
map.put("message", "failed:" + errorMes);
......
......@@ -27,7 +27,7 @@ public interface OrderRelationService {
/**
* 创建订单的时间检查
* 订单详情编辑
* @param
*/
void queryOrdrBuild(QueryOrderResponseVo queryOrderResponseVo,QueryOrderByIdResponse response);
......
......@@ -17,17 +17,23 @@ import cn.freemud.entities.dto.order.BusinessDate;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.ProductVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.impl.CheckOrder;
import cn.freemud.service.order.OrderRelationService;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSendCouponResp;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import io.swagger.models.auth.In;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -101,6 +107,19 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
queryOrderResponseVo.setChooseGoods(chooseGoods);
}
Map<String,QueryOrdersResponse.DataBean.OrderBean.ProductBean> productMap = new HashMap<>();
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productList = response.getData().getProductList();
if(productList != null && !productList.isEmpty()){
for(QueryOrdersResponse.DataBean.OrderBean.ProductBean productBean : productList){
if(StringUtils.isEmpty(productBean.getExtInfo())){
continue;
}
OrderProductAddInfoDto orderProductAddInfoDto = JSONObject.parseObject(productBean.getExtInfo(),OrderProductAddInfoDto.class);
productMap.put(orderProductAddInfoDto.getCartGoodsUid(),productBean);
}
}
// 赠品合并到主商品
List<ProductVo> products = queryOrderResponseVo.getProducts();
......@@ -118,13 +137,58 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
});
}
List<ProductVo> productVos = new ArrayList<>();
if(null != masterProducts && !masterProducts.isEmpty()){
masterProducts.forEach(product -> {
for(ProductVo product : masterProducts){
Integer giftQty = giftMap.get(product.getCid()) == null ? 0 : giftMap.get(product.getCid());
product.setQty(product.getQty() + giftQty);
});
// 商品原单价=商品原单价+小料原单价
List<ProductVo> smallMaterial = product.getSetMaterialProducts();
Long smallMaterialOriTotal = 0L;
if(smallMaterial != null && !smallMaterial.isEmpty()){
for(ProductVo sm : smallMaterial){
smallMaterialOriTotal = smallMaterialOriTotal + sm.getOriginalPrice();
}
}
// 商品现单价 = 商品现单价+小料现单价
smallMaterialOriTotal = smallMaterialOriTotal == null ? 0 : smallMaterialOriTotal;
product.setOriginalPrice(smallMaterialOriTotal + (product.getOriginalPrice() == null ? 0L : product.getOriginalPrice()));
// 如果商品参加了第二件半价活动,要把该行拆成数量为1的多行
QueryOrdersResponse.DataBean.OrderBean.ProductBean productBean = productMap.get(product.getCid());
if(productBean == null || productBean.getDiscountList() == null || productBean.getDiscountList().isEmpty()){
continue;
}
boolean halfFlag = false;
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductDiscount> discountList = productBean.getDiscountList();
for(QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductDiscount productDiscount : discountList){
if(ObjectUtils.equals(productDiscount.getDiscountType(), OldOrderAccountType.SECOND_DISCOUNT.getCode())){
halfFlag = true;
break;
}
}
if(halfFlag){
Integer num = product.getQty();
for(int i = 0 ; i < num-1 ; i++){
ProductVo newProduct = JSONObject.parseObject(JSONObject.toJSONString(product),ProductVo.class);
newProduct.setQty(1);
productVos.add(newProduct);
}
product.setQty(1);
}
}
}
masterProducts.addAll(productVos);
queryOrderResponseVo.setProducts(masterProducts);
}
......
package cn.freemud.utils;
import cn.freemud.base.util.DateUtil;
import org.apache.commons.lang.time.DateUtils;
import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtilsTest {
@Test
public void testDateCompare() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = sdf.parse("2020-12-30 00:00:00");
Date date2 = sdf.parse("2020-12-14 11:50:00");
System.out.println("date1 : " + sdf.format(date1));
System.out.println("date2 : " + sdf.format(date2));
System.out.println(date1.compareTo(date2));
if (date1.compareTo(date2) > 0) {
System.out.println("Date1 时间在 Date2 之后");
} else if (date1.compareTo(date2) < 0) {
System.out.println("Date1 时间在 Date2 之前");
} else if (date1.compareTo(date2) == 0) {
System.out.println("Date1 时间与 Date2 相等");
} else {
System.out.println("程序怎么会运行到这里?正常应该不会");
}
boolean x =(DateUtils.addMinutes(new Date(), 45).compareTo(date2) <= 0);
System.out.println(x);
}
@Test
public void testBefore() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = sdf.parse("2020-12-30 00:00:00");
Date date = DateUtil.setEndDay(new Date());
String s = DateUtil.convert2String(date, "yyyy-MM-dd HH:mm:ss");
System.out.println(date.before(date1));
}
}
package cn.freemud.amp.service;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Setter
@Getter
public class AuditScoreAccount {
/**
* 账本主键ID
*/
private String accountId;
private String partnerId;
private String memberId;
/**
* 账本状态{1可使用 2已使用}
*/
private Integer accountStatus;
/**
* 源积分值
*/
private Integer originScore;
/**
* 剩余积分值
*/
private Integer leftScore;
/**
* 到日日期{格式:yyyy-MM-dd}
*/
private String expireDate;
/*
所属机构类型{1总公司2分公司3门店}
*/
private Integer orgType;
/**
* 所属机构编码
*/
private String orgCode;
/**
* 所属机构类型{1总公司2分公司3门店}
*/
private Integer belongOrgType;
/**
* 所属机构编码
*/
private String belongOrgCode;
private Date createTime;
private Date updateTime;
/**
* 是否删除{0表示否 1表示是}
*/
private Integer isDel;
@Override
public String toString() {
return this.accountId;
}
}
\ No newline at end of file
package cn.freemud.amp.service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortTest {
public static void main(String[] args) {
List<AuditScoreAccount> list = new ArrayList<AuditScoreAccount>();
//创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中
AuditScoreAccount s1 = new AuditScoreAccount();
s1.setExpireDate("2020-01-02");
s1.setAccountId("1");
AuditScoreAccount s2 = new AuditScoreAccount();
s2.setExpireDate("2020-04-03");
s2.setAccountId("2");
AuditScoreAccount s3 = new AuditScoreAccount();
s3.setExpireDate("2020-03-01");
s3.setAccountId("3");
AuditScoreAccount s5 = new AuditScoreAccount();
list.add(s5);
list.add(s1);
list.add(s2);
list.add(s3);
System.out.println("排序前:"+list);
List<String> stringList = new ArrayList<>();
stringList.add("3");
stringList.add("2");
Collections.sort(list, new Comparator<AuditScoreAccount>(){
/*
* int compare(Student o1, Student o2) 返回一个基本类型的整型,
* 返回负数表示:o1 小于o2,
* 返回0 表示:o1和o2相等,
* 返回正数表示:o1大于o2。
*/
public int compare(AuditScoreAccount o1, AuditScoreAccount o2) {
if(stringList.contains(o2.getAccountId())){
return 1;
}
if(stringList.contains(o1.getAccountId())){
return -1;
}
if(o2.getExpireDate() ==null){
return -1;
}
if(o1.getExpireDate() ==null){
return 1;
}
return o1.getExpireDate().compareTo(o2.getExpireDate());
}
});
System.out.println("排序后:"+list);
}
}
......@@ -187,5 +187,10 @@ public class OrderExtInfoDto {
*/
private String stationId;
/**
* 线下订单储值卡支付金额
*/
private Integer svcAmount;
}
......@@ -26,7 +26,7 @@ public class PaySuccessResp {
//总排队人数
private Integer queueNumber;
//取餐码
private Integer pickUpGoodsNo;
private String pickUpGoodsNo;
//门店订单序号
private Integer daySeq;
......
......@@ -13,12 +13,11 @@
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.GetMemberInfoRequestDto;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.ShoppingCartNewService;
import cn.freemud.service.ShoppingCartToolsService;
import cn.freemud.service.impl.ShoppingCartMallServiceImpl;
import cn.freemud.service.impl.ShoppingCartMealServiceImpl;
import cn.freemud.service.impl.ShoppingCartNewServiceImpl;
......@@ -28,7 +27,6 @@ import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import io.swagger.annotations.Api;
......@@ -177,4 +175,14 @@ public class ShoppingCartController {
return SDKCommonBaseContextWare.getBean(ShoppingCartToolsServiceImpl.class).clear(request);
}
/**
* 线下订单查询接口
*/
@ApiAnnotation(logMessage = "/getMemberInfo")
@PostMapping(value = "/getMemberInfo")
public BaseResponse getMemberInfo(@LogParams @RequestBody GetMemberInfoRequestDto request) {
return SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).getMemberInfo(request);
}
}
package cn.freemud.entities.dto;
import lombok.Data;
import java.util.List;
@Data
public class GetMemberInfoRequestDto {
private String partnerId;
private String mobile;
/**
* 实际支付金额(分)
*/
private Integer actualPayAmount;
/**
* 下单门店号
*/
private String storeId;
/**
* 门店名称
*/
private String storeName;
/**
* 订单原金额(分)
*/
private Integer originalAmount;
/**
* 下单渠道
*/
private Integer orderClient;
/**
* 订单类型
*/
private Integer orderType;
/**
* 支付渠道
*/
private String payChannel;
/**
* 支付渠道名称
*/
private String payChannelName;
/**
* pos编号
*/
private String posCode;
/**
* 操作人
*/
private String operator;
/**
* 是否赠送积分 0是1否
*/
private Integer needBonus;
/**
* 订单商品信息
*/
private List<OrderItemRequest> orderItemList;
@Data
public static class OrderItemRequest {
/**
* 商品序号
*/
private Integer productSeq;
/**
* 平台商品编号
*/
private String productId;
/**
* 商家商品编号
*/
private String thirdProductId;
/**
* 商品名称
*/
private String productName;
/**
* 商品单价(分)
*/
private Integer productPrice;
/**
* 数量
*/
private Integer productQuantity;
/**
* 优惠分摊金额(分)
*/
private Integer productSharePrice;
/**
* 商品单位
*/
private String productWeightUnit;
/**
* 商品重量(克)
*/
private Integer weight;
/**
* 商品规格名称(大杯)
*/
private String productSpecName;
/**
* 商品属性名称(三分糖)
*/
private String productProperty;
/**
* 商家商品分类编号
*/
private String thirdCateCode;
/**
* 是否算积分
*/
private String needBonus;
}
}
package cn.freemud.entities.dto;
import lombok.Data;
import java.util.List;
@Data
public class GetMemberInfoResponseVo {
private String userId;
private Score score;
private List<Coupon> coupons;
private List<Card> cards;
@Data
public static class Score {
/**
* 当前可用积分
*/
private Integer currentScore;
/**
* 历史累计积分
*/
private Integer totalScore;
/**
* 已使用积分
*/
private Integer usedScore;
/**
* 积分抵扣金额,单位分
*/
private Integer reduceAmount;
/**
* 抵扣积分
*/
private Integer reduceScore;
}
@Data
public static class Coupon {
/**
* 券名称
*/
private String couponName;
/**
* 券CODE
*/
private String couponCode;
/**
* 券类型 0:商品 券 1:代金券 3 折扣券
*/
private Integer cuoponType;
/**
* 如:2019-10-1 至 2019-10-10 当天有效
*/
private String couponLimit;
/**
* 优惠金额,单位分
*/
private Integer discountAmount;
/**
* 状态:-1:未激活 0:可用(剔除过期) 1:已使用 2:部分使用 3:取消 6:已过期(根据生失效日期) 99:未知(目前暂不支持)
*/
private Integer status;
private List<Product> products;
}
@Data
public static class Product {
/**
* 商户商品编号
*/
private String pid;
/**
* 商品名称
*/
private String name;
/**
* 最大可取商品个数
*/
private Integer number;
/**
* 商品折扣价,以分为单位
*/
private Integer priceAct;
/**
* 原价,以分为单位
*/
private Integer priceOriginal;
/**
* 支付信息
*/
Payment payment;
}
@Data
public static class Payment {
/**
* 线上已付金额,以分为单位
*/
private Integer paid;
/**
* 线下需要收取的金额,以分为单位
*/
private Integer remaining;
}
@Data
public static class Card {
/**
* 实充余额,单位分
*/
private Integer amount;
/**
* 赠送余额,单位分
*/
private Integer vamount;
/**
* 卡规格ID
*/
private String applyId;
/**
* 卡号
*/
private String cardCode;
/**
* 卡名称
*/
private String cardName;
}
}
......@@ -266,6 +266,11 @@ public class CalculationSharingDiscountResponseDto {
* 当前活动实际优惠的商品数量
*/
private Integer actualGoodsNumber;
/**
* 优惠现单价
*/
private Long signleDiscount;
}
/**
......
......@@ -36,4 +36,11 @@ public class ShoppingCartClearRequestVo extends BaseRequestVo {
* 拼单发起人userId(拼单)
*/
private String createCollageUserId;
/**
* 收货地址ID、svc卡支付外卖订单必传
*/
private String receiveId;
}
......@@ -25,6 +25,7 @@ public enum ActivityTypeEnum {
*/
TYPE_2(2, "单品特价"),
TYPE_21(21, "单品折扣"),
TYPE_22(22, "单品立减"),
TYPE_23(23, "超值加购"),
/**
* 优惠券
......
......@@ -18,9 +18,7 @@ import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -101,6 +99,8 @@ public interface ShoppingCartNewService {
List<CartGoods> updateCartGoodsLegal(CartGoods cartGoods, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, List<CartGoods> oldAllCartGoodsList);
BaseResponse<GetMemberInfoResponseVo> getMemberInfo(GetMemberInfoRequestDto request);
/**
* 商品券校验券是否有效
*
......
......@@ -147,6 +147,7 @@ public class CocoActiveServiceImpl implements ActiveService {
newCartGoods.setClassificationName(cgs.getClassificationName());
newCartGoods.setActivityType(discount.getType());
newCartGoods.setQty(discountForGift.get(cgs.getCartGoodsUid()).getGoodsQuantity());
newCartGoods.setProductMaterialList(cgs.getProductMaterialList());
addcartGoodsList.add(newCartGoods);
}
}
......
......@@ -10,6 +10,7 @@ import cn.freemud.entities.dto.shoppingCart.SendPoint;
import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
import cn.freemud.enums.*;
import cn.freemud.interceptor.BizServiceException;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.CommonService;
import cn.freemud.service.CouponService;
......@@ -200,7 +201,7 @@ public class CalculationSharingDiscountService {
// 这个是专门给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());
throw new BizServiceException(ResponseResult.COCO_COUPON_VALIDATOR_FAIL,sharingDiscountResponseDto.getMsg());
}
// 支付宝华莱士紧急修改代码,当促销返回103错误码时,需要报券不适用于该门店,且清空购物车
......
......@@ -256,14 +256,33 @@ public class ShoppingCartMCoffeeServiceImpl {
//使用券的是,如果购物车已经存在这个券,先清除,再添加
cartGoods.setQty(0);
}
if (StringUtils.isNotEmpty(goodsId) && StringUtils.isNotEmpty(couponCode) && goodsId.equals(cartGoods.getSkuId()) && StringUtils.isBlank(cartGoods.getCouponCode()) && isContinue) {
if (StringUtils.isNotEmpty(goodsId) && StringUtils.isNotEmpty(couponCode) && isContinue
&& goodsId.equals(cartGoods.getSkuId()) && StringUtils.isBlank(cartGoods.getCouponCode())) {
// 如果购物车商品存在商品规格,替换时复制规格信息
if (CollectionUtils.isNotEmpty(cartGoods.getSpecialExtra())) {
addShoppingCartGoodsRequestVo.setSpecialExtra(cartGoods.getSpecialExtra());
}
if (cartGoods.getQty() > 1 ){
cartGoods.setQty(cartGoods.getQty() - 1);
}else {
} else {
//如果购物车存在相同的商品,则先删除购物车商品,在新增商品券购物车行
cartGoods.setQty(0);
}
isContinue= false;
}
if(StringUtils.isNotEmpty(goodsId) && StringUtils.isNotEmpty(couponCode) && isContinue
&& cartGoods.getName().equals("啡常搭") && cartGoods.getGoodsType().equals(GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType())
&& CollectionUtils.isNotEmpty(cartGoods.getProductComboList()) && cartGoods.getProductComboList().size() == 1
&& cartGoods.getProductComboList().get(0).getSkuId().equals(goodsId)
&& CollectionUtils.isNotEmpty(cartGoods.getProductGroupList()) && cartGoods.getProductGroupList().size() == 1
&& cartGoods.getProductGroupList().get(0).getSkuId().equals("0") && cartGoods.getProductGroupList().get(0).getSkuName().equals("无")) {
// 如果购物车商品存在商品规格,替换时复制规格信息
if (CollectionUtils.isNotEmpty(cartGoods.getProductComboList().get(0).getSpecialExtra())) {
addShoppingCartGoodsRequestVo.setSpecialExtra(cartGoods.getProductComboList().get(0).getSpecialExtra());
}
if (cartGoods.getQty() > 1 ){
cartGoods.setQty(cartGoods.getQty() - 1);
} else {
//如果购物车存在相同的商品,则先删除购物车商品,在新增商品券购物车行
cartGoods.setQty(0);
}
......@@ -842,7 +861,7 @@ public class ShoppingCartMCoffeeServiceImpl {
}else {
//清除当前用户的代金券缓存,防止切换门店券数据带到不适用门店
com.freemud.sdk.api.assortment.shoppingcart.domain.CartParamDto cartParamDto = assortmentSdkService.getCartParamDto(partnerId, fromStoreId, userId);
shoppingCartBaseService.clearMCCafe(cartParamDto, LogThreadLocal.getTrackingNo());
shoppingCartBaseService.clearMCCafeCouponByType(cartParamDto, SaveCouponType.COUPON.getCode(),LogThreadLocal.getTrackingNo());
// 新门店check购物车中所有商品
List<CartGoods> temList = new ArrayList<>();
......
......@@ -20,4 +20,11 @@ public interface ShoppingCartRelationFactory {
*/
ShoppingCartRelationService getBuildShoppingCartGoodsResponseService(String partnerId);
/**
* 获取购物车清空后的操作实现
* @param partnerId
* @return
*/
ShoppingCartRelationService cleanAfter(String partnerId);
}
......@@ -13,6 +13,7 @@
package cn.freemud.service.shoppingCart;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.vo.ShoppingCartClearRequestVo;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
public interface ShoppingCartRelationService {
......@@ -24,5 +25,10 @@ public interface ShoppingCartRelationService {
CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult,
Integer flag);
/**
* 购物车清空后的扩展操作
*/
void cleanAfter(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartClearRequestVo shoppingCartClearRequestVo);
}
......@@ -13,6 +13,7 @@
package cn.freemud.service.shoppingCart.impl;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.vo.ShoppingCartClearRequestVo;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.service.shoppingCart.ShoppingCartRelationService;
import org.springframework.stereotype.Service;
......@@ -26,4 +27,9 @@ public class PlatformShoppingCartRelationServiceImpl implements ShoppingCartRela
Integer flag) {
}
@Override
public void cleanAfter(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartClearRequestVo shoppingCartClearRequestVo) {
}
}
......@@ -54,4 +54,13 @@ public class ShoppingCartRelationFactoryImpl implements ShoppingCartRelationFact
}
}
@Override
public ShoppingCartRelationService cleanAfter(String partnerId) {
if(cocoPartnerId.contains(partnerId)){
return cocoShoppingCartRelationService;
}else{
return platformShoppingCartRelationService;
}
}
}
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