Commit 3e801014 by 徐康

Merge remote-tracking branch 'origin/qa' into qa

parents b8b7b658 270320ef
......@@ -68,6 +68,7 @@ import com.freemud.sdk.api.assortment.order.request.order.CreateOrderRequest;
import com.freemud.sdk.api.assortment.order.request.order.OrderDownloadRequest;
import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.util.AssortOrderLogUtil;
import com.freemud.sdk.api.assortment.order.vo.AssortmentOrderProductVo;
......
......@@ -46,6 +46,7 @@ import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest;
import com.freemud.sdk.api.assortment.order.request.payment.PayPlatformVO;
import com.freemud.sdk.api.assortment.order.request.payment.ProductVO;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import com.freemud.sdk.api.assortment.order.util.ClassUtils;
import com.freemud.sdk.api.assortment.order.util.WeightUtils;
import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo;
......
......@@ -183,7 +183,6 @@ public class OrderAdapter {
ArrayList<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>();
long deliveryAmount = 0;
long discountDeliveryAmount = 0;
AppLogUtil.infoLog("fisherman 计算discountDeliveryAmount 的操作 begin", shoppingCartGoodsDto, createOrderVo);
if (createOrderVo.getMenuType().equals(BusinessTypeEnum.SAAS_DELIVERY.getCode())) {
deliveryAmount = shoppingCartGoodsDto.getDeliveryAmount() == null ? 9l : shoppingCartGoodsDto.getDeliveryAmount();
discountDeliveryAmount = shoppingCartGoodsDto.getDeliveryAmount() == null ? 9l : shoppingCartGoodsDto.getDeliveryAmount();
......@@ -210,7 +209,6 @@ public class OrderAdapter {
Long totalScore = shoppingCartGoodsDto.getTotalScore() == null ? 0L : shoppingCartGoodsDto.getTotalScore();
createOrderDto.setTotalScore(totalScore);
AppLogUtil.infoLog("fisherman 计算discountDeliveryAmount 的操作 end", deliveryAmount, discountDeliveryAmount);
//商城实付无需加上配送费用和包装费
if (createOrderVo.getMenuType().equals(BusinessTypeEnum.SAAS_MALL.getCode())) {
createOrderDto.setAmount(shoppingCartGoodsDto.getTotalAmount());
......@@ -1569,7 +1567,6 @@ public class OrderAdapter {
// });
}
AppLogUtil.infoLog("fisherman orderBean:", JSON.toJSONString(ordersBeans), JSON.toJSONString(list));
return list;
}
......
......@@ -12,7 +12,6 @@
*/
package cn.freemud.entities.dto.pay;
import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp;
import lombok.Data;
......
......@@ -1057,7 +1057,6 @@ public class CheckOrder {
request.setPartnerId(partnerId);
request.setStoreCode(storeCode);
StoreCBaseResponse<StoreCBaseResponseDto> responseDto = storeBaseApiClient.queryDeliverDetail(request);
AppLogUtil.infoLog("fisherman 获取门店预计送达时间", request, responseDto);
if (responseDto == null) {
throw new ServiceException(ResponseResult.SYSTEM_BUSINESS_ERROR);
}
......
......@@ -121,6 +121,7 @@ import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.enums.OldOrderType;
import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import cn.freemud.service.mccafe.CouponClientService;
import cn.freemud.service.mccafe.MCCafeOrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
......
......@@ -46,6 +46,7 @@ import com.freemud.sdk.api.assortment.order.request.order.OrderEditRequest;
import com.freemud.sdk.api.assortment.order.request.order.PaymentRequest;
import com.freemud.sdk.api.assortment.order.response.order.AssortmentAffirmGroupOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest;
import com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse;
......
......@@ -491,39 +491,6 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
/**
* 获取券的有效结束时间
*/
private Date getCouponValidEnd(Active activeInfo){
Date returnDate = null;
if (activeInfo.getEffective() != null && activeInfo.getEffective() > 0) { // 根据固定时长来计算 天来计算
int delayTimes = activeInfo.getFromDayEffective() != null ? activeInfo.getFromDayEffective() : 0;
int validityPeriod = activeInfo.getEffective() != null ? activeInfo.getEffective() : 1;
if (activeInfo.getEffectiveStart() != null && activeInfo.getEffectiveEnd() != null) {
// 有效期为0 默认传1天,做兼容处理
Date effectiveStart = activeInfo.getEffectiveStart();
Date effectiveEnd = activeInfo.getEffectiveEnd();
Date date = new Date();
Date startDate = cn.freemud.base.util.DateUtil.addDays(date, delayTimes);
Date endDate = cn.freemud.base.util.DateUtil.addDays(date, (delayTimes + validityPeriod));
if (startDate.before(effectiveStart)) {
startDate = effectiveStart;
}
if (endDate.after(effectiveEnd)) {
endDate = effectiveEnd;
}
returnDate = endDate;
} else {
// 有效期为0 默认传1天,做兼容处理
returnDate = DateUtil.addDays(new Date(), (delayTimes + validityPeriod - 1));
}
} else {
returnDate = activeInfo.getEffectiveEndTime();
}
return returnDate;
}
/**
* 获取商户支付超时时间
*
* @param partnerId 商户Id
......@@ -640,4 +607,37 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
return gson.toJson(map);
}
/**
* 获取券的有效结束时间
*/
private Date getCouponValidEnd(Active activeInfo){
Date returnDate = null;
if (activeInfo.getEffective() != null && activeInfo.getEffective() > 0) { // 根据固定时长来计算 天来计算
int delayTimes = activeInfo.getFromDayEffective() != null ? activeInfo.getFromDayEffective() : 0;
int validityPeriod = activeInfo.getEffective() != null ? activeInfo.getEffective() : 1;
if (activeInfo.getEffectiveStart() != null && activeInfo.getEffectiveEnd() != null) {
// 有效期为0 默认传1天,做兼容处理
Date effectiveStart = activeInfo.getEffectiveStart();
Date effectiveEnd = activeInfo.getEffectiveEnd();
Date date = new Date();
Date startDate = cn.freemud.base.util.DateUtil.addDays(date, delayTimes);
Date endDate = cn.freemud.base.util.DateUtil.addDays(date, (delayTimes + validityPeriod));
if (startDate.before(effectiveStart)) {
startDate = effectiveStart;
}
if (endDate.after(effectiveEnd)) {
endDate = effectiveEnd;
}
returnDate = endDate;
} else {
// 有效期为0 默认传1天,做兼容处理
returnDate = DateUtil.addDays(new Date(), (delayTimes + validityPeriod - 1));
}
} else {
returnDate = activeInfo.getEffectiveEndTime();
}
return returnDate;
}
}
......@@ -51,6 +51,9 @@ import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderReq
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
......
......@@ -85,6 +85,7 @@ import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest;
import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest;
import com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse;
......
package cn.freemud.management.adapter;
import cn.freemud.management.entities.dto.request.console.BizDTO;
import cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO;
import cn.freemud.management.entities.dto.request.console.StoreInfoDTO;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.enums.DeliveryStatus;
import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto;
......@@ -24,13 +27,13 @@ public class DeliverySdkAdapter {
* 创建配送单请求对象
*
* @param order
* @param storeInfo
* @param bizDTO
* @param deliveryCallBackUrl
* @return
*/
public CreateDeliveryOrderRequestDto buildDeliveryOrderRequestDto(OrderBeanV1 order
, StoreResponse storeInfo, String deliveryCallBackUrl) {
, ConsoleResponseDTO<BizDTO> bizDTO, String deliveryCallBackUrl) {
StoreInfoDTO storeInfo = bizDTO.getBizVO().getStoreInfo();
CreateDeliveryOrderRequestDto deliveryOrderRequestDto = new CreateDeliveryOrderRequestDto();
deliveryOrderRequestDto.setDepatchWeight(new BigDecimal(1));
deliveryOrderRequestDto.setSerialNumber(order.getOtherCode());
......@@ -40,23 +43,23 @@ public class DeliverySdkAdapter {
deliveryOrderRequestDto.setOrderActualAmount(order.getAmount().intValue());
deliveryOrderRequestDto.setPartnerId(order.getCompanyId());
deliveryOrderRequestDto.setOrderChannel(order.getSource());
deliveryOrderRequestDto.setStoreId(storeInfo.getBizVO().getStoreId());
deliveryOrderRequestDto.setStoreCode(storeInfo.getBizVO().getStoreCode());
StringBuffer address = new StringBuffer(storeInfo.getBizVO().getCity())
.append(storeInfo.getBizVO().getProvince())
.append(storeInfo.getBizVO().getRegion())
.append(storeInfo.getBizVO().getAddress());
deliveryOrderRequestDto.setStoreId(storeInfo.getStoreId());
deliveryOrderRequestDto.setStoreCode(storeInfo.getStoreCode());
StringBuffer address = new StringBuffer(storeInfo.getCity())
.append(storeInfo.getProvince())
.append(storeInfo.getRegion())
.append(storeInfo.getAddress());
deliveryOrderRequestDto.setStoreAddress(address.toString());
deliveryOrderRequestDto.setStoreLng(new BigDecimal(storeInfo.getBizVO().getLongitude()));
deliveryOrderRequestDto.setStoreLat(new BigDecimal(storeInfo.getBizVO().getLatitude()));
deliveryOrderRequestDto.setStorePhone(storeInfo.getBizVO().getPhone());
deliveryOrderRequestDto.setStoreLng(new BigDecimal(storeInfo.getLongitude()));
deliveryOrderRequestDto.setStoreLat(new BigDecimal(storeInfo.getLatitude()));
deliveryOrderRequestDto.setStorePhone(storeInfo.getPhone());
deliveryOrderRequestDto.setStoreName(order.getShopName());
deliveryOrderRequestDto.setCityName(storeInfo.getBizVO().getCity());
deliveryOrderRequestDto.setCityName(storeInfo.getCity());
deliveryOrderRequestDto.setReceiverName(order.getUserName());
deliveryOrderRequestDto.setReceiverPrimaryPhone(order.getPhone());
deliveryOrderRequestDto.setReceiverAddress(order.getAddress());
deliveryOrderRequestDto.setReceiverLng(new BigDecimal(order.getLongitude()));
deliveryOrderRequestDto.setReceiverLat(new BigDecimal(order.getLatitude()));
deliveryOrderRequestDto.setReceiverLng(BigDecimal.valueOf(order.getLongitude()));
deliveryOrderRequestDto.setReceiverLat(BigDecimal.valueOf(order.getLatitude()));
deliveryOrderRequestDto.setOrderTime(new Date(order.getGmtCreate()));
deliveryOrderRequestDto.setCallbackUrl(deliveryCallBackUrl);
deliveryOrderRequestDto.setOrderClient(NumberUtils.toInt(order.getOrderClient()));
......
package cn.freemud.management.entities.dto.request.console;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午3:38
* @description :
*/
@Data
public class BizDTO {
/**
* 业务配置信息
*/
private BusinessInfoDTO businessInfo;
/**
* 配送信息
*/
private DeliveryInfoDTO deliveryInfo;
/**
*
*/
private StoreInfoDTO storeInfo;
}
package cn.freemud.management.entities.dto.request.console;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午3:01
* @description : 业务配置信息
*/
@Data
public class BusinessInfoDTO {
/**
* 预约自建外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private Integer appointAutoDeliveryTakeOrderWorkflowFinishTime;
/**
* 预约自提单制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private Integer appointAutoSelfmentionMakerWorkflowFinishTime;
/**
* 预约自提单接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private Integer appointAutoSelfmentionTakeOrderWorkflowFinishTime;
/**
* 预约自建外卖接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private Integer appointAutoTakeOutTakeOrderWorkflowFinishTime;
/**
* 三方外卖预订单自动拣货完成时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟;
*/
private Integer appointThirdDeliveryPickCompleteWorkflowFinishTime;
/**
* 预约三方外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟
*/
private Integer appointThirdDeliveryTakeOrderWorkflowFinishTime;
/**
* 自动退单时间
*/
private Integer autoChargebackOrderTime;
/**
* 退单模式 1手动退单 2自动退单
*/
private Integer autoChargebackOrderType;
/**
* 自建外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private Integer autoDeliveryTakeOrderWorkflowFinishTime;
/**
* 自提单制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private Integer autoSelfmentionMakerWorkflowFinishTime;
/**
* 自提单接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private Integer autoSelfmentionTakeOrderWorkflowFinishTime;
/**
* 自建外卖接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private Integer autoTakeOutTakeOrderWorkflowFinishTime;
/**
* 三方外卖订单自动拣货完成时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟
*/
private Integer autoThirdDeliveryPickCompleteWorkflowFinishTime;
/**
* 实时三方外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟
*/
private Integer autoThirdDeliveryTakeOrderWorkflowFinishTime;
/**
* 是否自动同意退款(同意:1,不同意:0)
*/
private Integer automaticRefund;
/**
* 外卖预约单开关(0:关闭,1:开启)
*/
private Integer deliveryAppoint;
/**
* 外卖预约单时间(分钟) 65分钟、90分钟、120分钟
*/
private Integer deliveryAppointTime;
/**
* 自建外卖订单,商家自配送xx分钟后,订单状态更改为【已完成】
*/
private Integer deliveryFinishedAfterMinute;
/**
* 外卖时间:00:00-23:59
*/
private String deliveryHours;
/**
* 外卖预订单提醒时间{1:15分钟;2:30分钟;3:45分钟;4:60分钟;5:5分钟;6:10分钟}
*/
private String deliveryOrderWarnTime;
/**
* 自建外卖订单-实时单,商家自配送,门店接单xx分钟后,订单状态变更为配送中
*/
private Integer deliveryProcessingAfterMinute;
/**
* 自建外卖订单-预约单,商家自配送,预约商家前xx分钟,订单更改为配送中
*/
private Integer deliveryProcessingBeforeMinute;
/**
* 预计送达时间(分钟)
*/
private Integer expectedTime;
/**
* 商品平均制作时常(分钟)
*/
private Integer goodsAvgTimeOfMaking;
/**
* 是否支持发票 1是 0否
*/
private Integer invoice;
/**
* 发票特殊说明
*/
private String invoiceExplain;
/**
* 是否支持自动接单(1是2否)
*/
private Integer isAutoTakeOrder;
/**
* 最大接单量,单位笔
*/
private Integer maxOrderQuantity;
/**
* 可开票的最小价格
*/
private Integer minPriceForInvoice;
/**
* 预订单打印时间{1:提醒时打印;2:接单时打印}
*/
private String orderPrintConfig;
/**
* 订单进度条,1 开启,2 关闭
*/
private Integer orderProgressBarStatus;
/**
* 点餐方式(,隔开):pickup,delivery
*/
private String orderType;
/**
* 预订单提醒时间{1:15分钟;2:30分钟;3:45分钟;4:60分钟;5:5分钟;6:10分钟}
*/
private String orderWarnTime;
/**
* 超时关单 1开启 2关闭
*/
private Integer overTimeCloseOrder;
/**
* 接单超时关单时间,默认30分钟
*/
private Integer overTimeCloseOrderTime;
/**
* 自提-服务端自动接单时间 1:立即;2:1分钟;3:5分钟(顾客下单XX后,订单状态自动更改为已接单)
*/
private Integer pickupAutomaticOrderTime;
/**
* 自提预约单开关(0:关闭,1:开启)
*/
private Integer selfMentionSwitch;
/**
* 是否需要餐具 1 需要 0 不需要
*/
private Integer tableware;
/**
* 参与结算(1:是、2:否)
*/
private Integer takePartInSettleAccounts;
/**
* 外卖-服务端自动接单时间 1:立即;2:1分钟;3:5分钟(顾客下单XX后,订单状态自动更改为已接单)
*/
private Integer takeoutAutomaticOrderTime;
/**
* 所属商户号
*/
private String partnerId;
/**
* 退款时间,time_type_of_refund 为1时格式为HH:mm:ss,为2时默认48小时
*/
private String timeOfRefund;
/**
* 退款时间类型:1指定时间,2默认48小时后
*/
private Integer timeTypeOfRefund;
/**
* 开启制作时间 1 :是 , 2 :否
*/
private Integer turnOnTimeOfMaking;
/**
* 拓展业务字段
*/
private ExpandFieldsDTO expandFields;
}
package cn.freemud.management.entities.dto.request.console;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午2:57
* @description : 门店服务 响应基类
*/
@Data
public class ConsoleResponseDTO<T> {
/**
* 状态码
*/
private String statusCode;
/**
*状态码描述
*/
private String msg;
private T bizVO;
}
package cn.freemud.management.entities.dto.request.console;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午3:12
* @description :
*/
@Data
public class DeliveryInfoDTO {
/**
* 每增加公里(单位米)
*/
private String addRange;
/**
* 每增加公里增加配送费(单位分)
*/
private Integer addRangeAmount;
/**
* 基础配送费(分)
*/
private Integer deliveryAmount;
/**
* 配送方式:1-三方物流配送、2-商家自配送
*/
private Integer deliveryMethod;
/**
* 配送半径
*/
private Integer deliveryRadius;
/**
* 基础配送距离(单位米)
*/
private String deliveryRange;
/**
* 手绘经纬度集合
*/
private String deliveryScope;
/**
* 外卖起送条件(1:杯数,2:金额)
*/
private Integer deliveryType;
/**
* 起送杯数
*/
private Integer freeDeliveryCup;
/**
* 起送价格(单位分)
*/
private Integer freeDeliveryPrice;
/**
* 所属商户号
*/
private String partnerId;
/**
* 配送范围类型 1 自定义 2 半径
*/
private Integer scopeConfig;
}
package cn.freemud.management.entities.dto.request.console;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午4:30
* @description :
*/
@Data
public class ExpandFieldsDTO {
/**
* 是 or 开启
*/
public static String STR_TRUE = "1";
/**
* 否 or 关闭
*/
public static String STR_FALSE = "0";
/**
* 月销量配置值
*/
private String monthlySalesConfigValue;
/**
* 月销量是否展示(1-是;0-否)
*/
private String monthlySalesShow;
/**
* 点赞数是否展示(1-是;0-否)
*/
private String likesShow;
/**
* 点赞数配置值
*/
private String likesConfigValue;
/**
* 扫桌码下单(1-开启;0-关闭) 开启该配置的门店在下单的时候,需要判断有没有桌号,如果没有桌号需要扫码获取桌号后再下单
*/
private String scanOrderSwitch;
// TODO 省略了 高峰时间配送时间 List<Map> 字段对接 peakTimeDelivery
/**
* 每增加一公里增加的时长(分钟)
*/
private String appendMinutePerKilometer;
/**
* 自提打包是否收取餐具费(1-开启;0-关闭)
*/
private String pickupPackageFeeSwitch;
/**
* 外卖打包是否收取餐具费(1-开启;0-关闭)
*/
private String deliveryPackageFeeSwitch;
/**
* 派单模式(0-系统自动派单;1-手动派单)
*/
private String dispatchType;
}
package cn.freemud.management.entities.dto.request.console;
import lombok.Builder;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午2:49
* @description : http://yapi.sandload.cn:3000/project/257/interface/api/60053 接口调用使用
*/
@Data
@Builder
public class GetStoreMixRequest {
/**
* 商户ID
*/
private String partnerId;
/**
* 门店号
*/
private String storeCode;
/**
* 查询数据标志位
*/
private QueryFlag query;
}
package cn.freemud.management.entities.dto.request.console;
import lombok.Builder;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午2:53
* @description :
*/
@Data
@Builder
public class QueryFlag {
/**
* 查询门店基本信息
*/
private boolean queryStoreInfo;
/**
* 查询门店的渠道上级列表
*/
private boolean queryParentUntilTop;
/**
* 查询配送设置信息
*/
private boolean queryDeliveryInfo;
/**
* 查询业务设置信息
*/
private boolean queryBusinessInfo;
/**
* 查询门店图片
*/
private boolean queryStoreImage;
/**
* 查询门店繁忙时间
*/
private boolean queryStoreBusyTime;
}
package cn.freemud.management.entities.dto.request.console;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午3:28
* @description :
*/
@Data
public class StoreInfoDTO {
/**
* 是否繁忙置休,1-是,0-否
*/
private Integer activeFlag;
/**
* 门店地址
*/
private String address;
/**
* 英文门店地址
*/
private String addressEn;
/**
* 门店简称
*/
private String briefName;
/**
* 营业时间
*/
private String businessHours;
/**
* 当日营业时间
*/
private String businessHoursDay;
/**
* 营业时间类型:1-按天,2-按周
*/
private String businessType;
/**
* 市
*/
private String city;
/**
* 是否开通Delivery{1.是;2.否}
*/
private String delivery;
/**
* 配送时间
*/
private String deliveryHours;
/**
* 当日外卖营业时间
*/
private String deliveryHoursDay;
/**
* 到店自取(1是 2否)
*/
private Integer isSelfMention;
/**
* 纬度
*/
private String latitude;
/**
* 门店logo
*/
private String logoUrl;
/**
* 经度
*/
private String longitude;
/**
* 父级商户编码
*/
private String parentCode;
/**
* 父级商户编号
*/
private String parentId;
/**
* 父级商户名称
*/
private String parentName;
/**
* 商户号
*/
private String partnerId;
/**
* 电话
*/
private String phone;
/**
* 省
*/
private String province;
/**
* 区
*/
private String region;
/**
* 备注
*/
private String remark;
/**
* 是否展示优惠(0-不展示; 1-展示)
*/
private Integer showDiscount;
/**
* 营业状态
*/
private String state;
/**
* 门店营运状态(营运1,停运-2,删除-3)
*/
private String status;
/**
* 门店编号
*/
private String storeCode;
/**
* 门店id
*/
private String storeId;
/**
* 门店名称
*/
private String storeName;
/**
* 英文门店名称
*/
private String storeNameEn;
/**
* 门店公告
*/
private String storeNotice;
/**
* 第三方门店编号
*/
private String thirdPartCode;
}
......@@ -2,6 +2,10 @@ package cn.freemud.management.service.handle;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.adapter.DeliverySdkAdapter;
import cn.freemud.management.entities.dto.request.console.BizDTO;
import cn.freemud.management.entities.dto.request.console.BusinessInfoDTO;
import cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO;
import cn.freemud.management.entities.dto.request.console.ExpandFieldsDTO;
import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderHaltedRequest;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.enums.DeliveryStatus;
......@@ -9,22 +13,25 @@ import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.thirdparty.DeliveryMCCafeClient;
import cn.freemud.management.util.ResponseUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.deliverycenter.dto.CancelDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto;
import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto;
import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.service.EmailAlertService;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Objects;
/**
* All rights Reserved, Designed By www.freemud.cn
......@@ -64,15 +71,26 @@ public class DeliveryHandle {
/**
* 创建配送单
*
* 【ID1036616】 【野萃山】【万象&小助手】支持门店手动创建运单,通知骑手到店取餐
* @param orderBean
* @param request
* @return
*/
public BaseResponse createDelivery(OrderBeanV1 orderBean, OrderManagerRequest request, StoreResponse storeInfo) {
if (storeInfo == null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), storeInfo.getStatusCode().toString()) || storeInfo.getBizVO() == null) {
public BaseResponse createDelivery(OrderBeanV1 orderBean, OrderManagerRequest request, ConsoleResponseDTO<BizDTO> storeInfo,boolean idAutoCreate) {
if (storeInfo == null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), storeInfo.getStatusCode()) || storeInfo.getBizVO() == null || storeInfo.getBizVO().getStoreInfo() == null) {
return ResponseUtil.error(ResponseResult.STORE_INFO_NOT_FOUND);
}
// 【ID1036616】 【野萃山】【万象&小助手】支持门店手动创建运单,通知骑手到店取餐
BusinessInfoDTO businessInfo = storeInfo.getBizVO().getBusinessInfo();
if (idAutoCreate && Objects.nonNull(businessInfo) && Objects.nonNull(businessInfo.getExpandFields())) {
ExpandFieldsDTO expandFields = businessInfo.getExpandFields();
String dispatchType = expandFields.getDispatchType();
// 1. 手动派单
if (Objects.equals(dispatchType, "1")) {
ApiLog.printLog("oms 门店自动创建运单->", JSON.toJSONString(orderBean.getOid()),null,null);
return ResponseUtil.success();
}
}
if (!checkOrderOfDelivery(orderBean)) {
return ResponseUtil.success();
}
......
package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.console.BizDTO;
import cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO;
import cn.freemud.management.entities.dto.request.console.GetStoreMixRequest;
import cn.freemud.management.entities.dto.request.console.QueryFlag;
import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderRequest;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.handle.DeliveryHandle;
import cn.freemud.management.thirdparty.ConsoleApiClient;
import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -23,6 +26,8 @@ public class OrderDeliveryService {
private OrderBaseService orderBaseService;
@Autowired
private DeliveryHandle deliveryHandle;
@Autowired
private ConsoleApiClient consoleApiClient;
private static final int SUCCESS = 100;
......@@ -37,11 +42,14 @@ public class OrderDeliveryService {
if (null == orderBean) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), LogThreadLocal.getTrackingNo());
if (SUCCESS != storeInfo.getStatusCode() || storeInfo.getBizVO() == null) {
GetStoreMixRequest getStoreMixRequest = GetStoreMixRequest.builder().partnerId(orderBean.getCompanyId()).storeCode(orderBean.getShopId()).build();
QueryFlag query = QueryFlag.builder().queryBusinessInfo(true).queryStoreInfo(true).build();
getStoreMixRequest.setQuery(query);
ConsoleResponseDTO<BizDTO> storeMix = consoleApiClient.getStoreMix(getStoreMixRequest);
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), storeMix.getStatusCode()) || storeMix.getBizVO() == null || storeMix.getBizVO().getStoreInfo()== null) {
return ResponseUtil.error(ResponseResult.STORE_INFO_NOT_FOUND);
}
return deliveryHandle.createDelivery(orderBean, null, storeInfo);
return deliveryHandle.createDelivery(orderBean, null, storeMix,false);
}
......
package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.base.util.JsonUtil;
import cn.freemud.management.adapter.DeliverySdkAdapter;
import cn.freemud.management.entities.dto.request.console.BizDTO;
import cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO;
import cn.freemud.management.entities.dto.request.console.GetStoreMixRequest;
import cn.freemud.management.entities.dto.request.console.QueryFlag;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import cn.freemud.management.enums.DeliveryStatus;
import cn.freemud.management.enums.CreateEventEnum;
import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.RefundStatus;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.enums.*;
import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*;
import cn.freemud.management.thirdparty.ConsoleApiClient;
import cn.freemud.management.thirdparty.OrderCallbackClient;
import cn.freemud.management.util.ResponseUtil;
import com.alibaba.fastjson.JSONObject;
......@@ -31,14 +30,11 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.service.EmailAlertService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
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.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.enums.PayRefundStatus;
import com.freemud.sdk.api.assortment.order.enums.PayType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
......@@ -98,6 +94,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
@Autowired
private OrderCallbackClient orderCallbackClient;
@Autowired
private ConsoleApiClient consoleApiClient;
/**
* 接单
*
......@@ -109,10 +107,13 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, OrderBeanV1 orderBean) {
// 订单接单
BaseResponse baseResponse = saasOrderHandle.orderConfirm(request, orderBean);
//获取门店信息
StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), "");
// 使用feign调用 获取门店信息
GetStoreMixRequest getStoreMixRequest = GetStoreMixRequest.builder().partnerId(orderBean.getCompanyId()).storeCode(orderBean.getShopId()).build();
QueryFlag query = QueryFlag.builder().queryBusinessInfo(true).queryStoreInfo(true).build();
getStoreMixRequest.setQuery(query);
ConsoleResponseDTO<BizDTO> storeMix = consoleApiClient.getStoreMix(getStoreMixRequest);
// 创建配送单
deliveryHandle.createDelivery(orderBean, request, storeInfo);
deliveryHandle.createDelivery(orderBean, request, storeMix, true);
// 推送pos、微信消息中心 重复接单不重复推消息(针对蜜雪做的修改)
if(baseResponse != null && baseResponse.getResult() == null){
orderBaseService.sendMessage(orderBean, OperateType.ORDER_CONFIRM, request.getReason());
......@@ -123,7 +124,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
ApiLog.infoMessage("紧急方案 接单成功直接调用callback,orderCode:{},requestId:{}",requestVo.getOrderCode(),requestVo.getRequestId());
orderCallbackClient.callbackOrder(requestVo);
}
return ResponseUtil.success(new OrderManagerResponse(storeInfo.getBizVO().getOrderPrintConfig(), orderBean.getGmtExpect(),
return ResponseUtil.success(new OrderManagerResponse(storeMix.getBizVO().getBusinessInfo().getOrderPrintConfig(), orderBean.getGmtExpect(),
CollectionUtils.isEmpty(orderBean.getRefundList()) ? null : RefundStatus.getByCode(orderBean.getRefundList().get(0).getStatus())));
}
......@@ -382,9 +383,15 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
@Override
public BaseResponse<OrderManagerResponse> orderRecreateDelivery(OrderManagerRequest request, OrderBeanV1 orderBean) {
// 查询门店信息
StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), LogTreadLocal.getTrackingNo());
return deliveryHandle.createDelivery(orderBean,request,storeInfo);
// StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), LogTreadLocal.getTrackingNo());
GetStoreMixRequest getStoreMixRequest = GetStoreMixRequest.builder().partnerId(orderBean.getCompanyId()).storeCode(orderBean.getShopId()).build();
QueryFlag query = QueryFlag.builder().queryBusinessInfo(true).queryStoreInfo(true).build();
getStoreMixRequest.setQuery(query);
ConsoleResponseDTO<BizDTO> storeMix = consoleApiClient.getStoreMix(getStoreMixRequest);
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), storeMix.getStatusCode()) || storeMix.getBizVO() == null || storeMix.getBizVO().getStoreInfo()== null) {
return ResponseUtil.error(ResponseResult.STORE_INFO_NOT_FOUND);
}
return deliveryHandle.createDelivery(orderBean,request,storeMix,false);
}
private void commonSendEmailAlert(OrderBeanV1 order, OrderBaseResp baseResponse,String desc){
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: StoreItemClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: liming.guo
* @date: 2018/5/16 9:39
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.management.thirdparty;
import cn.freemud.management.entities.dto.request.console.BizDTO;
import cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO;
import cn.freemud.management.entities.dto.request.console.GetStoreMixRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient("CONSOLE-API")
@RequestMapping(produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public interface ConsoleApiClient {
/**
* v2获取门店信息
* http://yapi.sandload.cn:3000/project/257/interface/api/60053 接口调用使用
*
* @param request
* @return
*/
@PostMapping(value = "/api/v2/organization/getStoreMix")
ConsoleResponseDTO<BizDTO> getStoreMix(GetStoreMixRequest request);
}
......@@ -13,12 +13,13 @@
package cn.freemud.adapter;
import cn.freemud.base.constant.Version;
import cn.freemud.entities.dto.ActivityCancelStockRequestDto;
import cn.freemud.entities.dto.CouponCodeVerificationProductDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.calculate.ActivityTypeSharedExclusive;
import cn.freemud.entities.dto.order.CreateOrderDto;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.PremiumExchangeResponseVo;
import cn.freemud.entities.vo.coupon.CartProduct;
import cn.freemud.entities.vo.coupon.CouponAvailableCartInfo;
......@@ -41,6 +42,76 @@ import java.util.stream.Collectors;
@Component
public class ActivityAdapter {
/**
* 扣减库存数量
*/
private static final int STACK_SUB = 1;
public ActivityQueryRequestDto convert2ActivityQueryRequestDto(CreateOrderVo createOrderVo) {
if (createOrderVo == null || createOrderVo.getPremiumExchangeActivity() == null
|| CollectionUtils.isEmpty(createOrderVo.getPremiumExchangeActivity().getProducts())) {
return null;
}
ActivityQueryRequestDto activityQueryRequestDto = new ActivityQueryRequestDto();
activityQueryRequestDto.setVer(Version.VERSION_1);
activityQueryRequestDto.setPartnerCode(createOrderVo.getPartnerId());
activityQueryRequestDto.setStoreId(createOrderVo.getShopId());
activityQueryRequestDto.setActivityType(ActivityTypeEnum.TYPE_81.getCode());
List<ActivityQueryRequestDto.QueryGoodsBeanDto> goodsBeanDtoList = new ArrayList<>();
for (CreateOrderVo.PremiumExchangeActivity.Product skuProduct : createOrderVo.getPremiumExchangeActivity().getProducts()) {
ActivityQueryRequestDto.QueryGoodsBeanDto queryGoodsBeanDto = new ActivityQueryRequestDto.QueryGoodsBeanDto(skuProduct.getSkuId(),
skuProduct.getQty(),
skuProduct.getOriginalPrice());
goodsBeanDtoList.add(queryGoodsBeanDto);
}
activityQueryRequestDto.setGoods(goodsBeanDtoList);
return activityQueryRequestDto;
}
public ActivityCalculationDiscountRequestDto convert2ActivityCalculationDiscountRequestDto(ShoppingCartInfoDto shoppingCartInfoDto
, String partnerCode, String storeId, String appid, Integer orderType, CouponListResponseDto.CouponBean couponBean, Long promotionAmount) {
if (shoppingCartInfoDto == null || CollectionUtils.isEmpty(shoppingCartInfoDto.getData())) {
return null;
}
ActivityCalculationDiscountRequestDto result = new ActivityCalculationDiscountRequestDto();
result.setVer(Integer.valueOf(Version.VERSION_1));
result.setPartnerCode(partnerCode);
result.setStoreId(storeId);
ActivityChannelEnum activityChannelEnum = PropertyConvertUtil.orderTypeConvert2ActivityChannel(orderType);
if(!Objects.isNull(activityChannelEnum)) {
result.setChannel(activityChannelEnum.getCode());
}
result.setAppId(appid);
result.setIsShowActivities(1);
result.setIsShowGoodsActivity(1);
List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> goods = new ArrayList<>();
// TODO 暂时指定成一个商品,后期优化
ActivityCalculationDiscountRequestDto.CalculationDiscountGoods calculationDiscountGoods = new ActivityCalculationDiscountRequestDto.CalculationDiscountGoods();
calculationDiscountGoods.setGoodsId("1");
calculationDiscountGoods.setCategory("1");
calculationDiscountGoods.setGoodsQuantity(1);
Long amount = 0L;
if (shoppingCartInfoDto.getAmount() != null) {
amount = shoppingCartInfoDto.getAmount();
}
Long packAmount = 0L;
// 外卖才有打包费
if (shoppingCartInfoDto.getPackAmount() != null && Objects.equals(CreateOrderType.TAKE_OUT.getCode(), orderType)) {
packAmount = shoppingCartInfoDto.getPackAmount();
}
Long couponAmount = 0L;
if (couponBean != null && couponBean.getDiscountAmount() != null) {
couponAmount = Long.valueOf(couponBean.getDiscountAmount());
}
if (promotionAmount == null) {
promotionAmount = 0L;
}
calculationDiscountGoods.setOriginalPrice(amount + packAmount - couponAmount - promotionAmount);
goods.add(calculationDiscountGoods);
result.setGoods(goods);
return result;
}
public PremiumExchangeResponseVo convert2PremiumExchange(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult) {
// 返回构造对象
PremiumExchangeResponseVo premiumExchangeResponseVo = new PremiumExchangeResponseVo();
......
......@@ -18,7 +18,10 @@ import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.BuriedPointShoppingCartRequestDto;
import cn.freemud.entities.dto.GetProductStockRequestDto;
import cn.freemud.entities.dto.GetProductStockResponseDto;
import cn.freemud.entities.dto.UserLoginInfoDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.activity.DiscountSharingDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto;
......@@ -191,7 +194,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType());
ActivityCalculationDiscountResponseDto.CalculationDiscountResult discountResult = null;
discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType, partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList, new ArrayList<>(), null, deliveryAmount, null,null,new DiscountSharingDto(), accountType);
discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType, partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList, new ArrayList<>(), null, deliveryAmount, null,null, accountType,new DiscountSharingDto());
sharingCartService.distribute(discountResult, allCartGoodsList, shoppingCartGoodsResponseVo, null, null, null, activityQueryDto, menuType, deliveryAmount, ShoppingCartConstant.ADD_AND_UPDATE, partnerId, null, userId, storeId);
buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,null,partnerId);
......@@ -286,7 +289,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
, new ArrayList() //券
, null //加价购商品
, deliveryAmount
, null,null,new DiscountSharingDto(), accountFlag);
, null,null, accountFlag,new DiscountSharingDto());
sharingCartService.distribute(discountResult
, cartGoodsList
......@@ -445,7 +448,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
, coupons
, sendGoods
, deliveryAmount
, null,null,new DiscountSharingDto(), accountFlag);
, null,null, accountFlag,new DiscountSharingDto());
sharingCartService.distribute(calculationSharingDiscountResult
, cartGoodsList
, shoppingCartGoodsResponseVo
......@@ -603,7 +606,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
, coupons
, shoppingCartInfoRequestVo.getSendGoods()
, deliveryAmount
, shoppingCartInfoRequestVo,null,new DiscountSharingDto(), accountFlag);
, shoppingCartInfoRequestVo,null, accountFlag,new DiscountSharingDto());
// 活动校验
calculationSharingValidatorService.validator(discountResult
......
......@@ -384,8 +384,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, new ArrayList<>() //券
, null //加价购商品
, deliveryAmount
, null,bizType,new DiscountSharingDto(), accountFlag);
, null,bizType, accountFlag,new DiscountSharingDto());
//更新购物车券状态
newCalculationUpdateCouponStatus(userId, partnerId, storeId, bizType, cartGoods, allCartGoodsList, discountResult);
sharingCartService.distribute(discountResult
, allCartGoodsList
, shoppingCartGoodsResponseVo
......@@ -542,11 +543,13 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, new ArrayList() //券
, null //加价购商品
, deliveryAmount
, null,bizType,new DiscountSharingDto(), accountFlag);
, null,bizType, accountFlag,new DiscountSharingDto());
//校验加购数量
if (discountResult != null) {
sendGoodsQtyCheckForUpdate(cartGoodsList, oldQty, appId, partnerId, userId, storeId, cartGoodsUid, "", shoppingCartBaseService, discountResult.getSendGoods(),bizType);
}
newCalculationUpdateCouponStatus(userId, partnerId, storeId, bizType, cartGoods, cartGoodsList, discountResult);
sharingCartService.distribute(discountResult
, cartGoodsList
, shoppingCartGoodsResponseVo
......@@ -781,7 +784,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, sendGoods
, deliveryAmount
, null
,bizType,new DiscountSharingDto(), accountFlag);
,bizType, accountFlag,new DiscountSharingDto());
sharingCartService.distribute(calculationSharingDiscountResult
, cartGoodsList
, shoppingCartGoodsResponseVo
......@@ -1160,7 +1163,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, coupons
, shoppingCartInfoRequestVo.getSendGoods()
, deliveryAmount
, shoppingCartInfoRequestVo,bizType,new DiscountSharingDto(), accountFlag);
, shoppingCartInfoRequestVo,bizType, accountFlag,new DiscountSharingDto());
// 活动校验
calculationSharingValidatorService.validator(discountResult
......@@ -3072,7 +3075,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, coupons //券
, null //加价购商品
, 0L
, null,bizType,new DiscountSharingDto(), accountFlag);
, null,bizType, accountFlag,new DiscountSharingDto());
premiumExchangeResponseVo = activityAdapter.convert2PremiumExchangeSharing(discountResult);
} else {
......@@ -3241,7 +3244,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, new ArrayList<>() //券
, null //加价购商品
, deliveryAmount
, null,bizType,sharingDto, accountFlag);
, null,bizType, accountFlag,sharingDto);
couponAvailableCartInfo = activityAdapter.convert2CouponAvailableCartInfoSharing(partnerId, storeId, discountResult, orgCodes);
} else {
......
......@@ -3,7 +3,6 @@ package cn.freemud.service.impl.calculate;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.CheckSpqInfoRequestDto;
import cn.freemud.entities.dto.CheckSpqInfoResponseDto;
import cn.freemud.entities.dto.activity.DiscountSharingDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.shoppingCart.SendPoint;
......@@ -22,6 +21,7 @@ import cn.freemud.service.active.ActiveService;
import cn.freemud.service.impl.AssortmentSdkService;
import cn.freemud.service.thirdparty.ActivityClient;
import cn.freemud.utils.PropertyConvertUtil;
import cn.freemud.entities.dto.activity.DiscountSharingDto;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
......@@ -82,7 +82,7 @@ public class CalculationSharingDiscountService {
, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons
, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList
, Long deliveryAmount
, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo,Integer bizType,DiscountSharingDto sharingDto,Integer accountFlag ) {
, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo,Integer bizType, Integer accountFlag, DiscountSharingDto sharingDto) {
ActivityCalculationDiscountRequestDto calculationSharingDiscountRequestDto = this.commonSharingDto(partnerId, storeId, userId, appId, orderType);
......
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