Commit 687d8672 by 周晓航

Merge branch 'KA-起送价是否按照原价计算-20210918-zxh' into qa

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
#	order-application-service/src/main/java/cn/freemud/service/thirdparty/PaymentNewClient.java
parents ff9be7a9 deeef4d2
......@@ -331,12 +331,12 @@
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>paymentcenter-sdk</artifactId>
<version>2.9.17-SNAPSHOT</version>
<version>2.9.17.RELEASE</version>
</dependency>
<dependency>
<groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-payment-sdk</artifactId>
<version>2.6.10.SNAPSHOT</version>
<version>2.6.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
......
package cn.freemud.entities.dto.store;
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;
/**
* 扩展字段信息
*/
private DeliveryInfoExpFields expandFields;
}
package cn.freemud.entities.dto.store;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/9/22 下午3:24
* @description :
*/
@Data
public class DeliveryInfoExpFields {
/**
* 外卖起送价规则:1-按原价计算、2-按优惠价计算
*/
private String deliveryAmountType;
}
......@@ -31,4 +31,8 @@ public class ExpandFields {
*/
private Integer preOrderSwitch;
/**
* 派单模式(0-系统自动派单;1-手动派单)
*/
private String dispatchType;
}
......@@ -10,7 +10,7 @@ public class SoreMixResponseDto {
private BusinessInfoDto businessInfo;
private Object deliveryInfo;
private DeliveryInfoDTO deliveryInfo;
private Object parentUntilTop;
......
......@@ -57,4 +57,6 @@ public class McCafeQueryOrderVo {
*/
private String channelType;
private String userId;
}
......@@ -52,11 +52,8 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome
import com.freemud.application.sdk.api.base.BaseResponse;
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.StatisticalPropertyRequest;
import com.freemud.application.sdk.api.membercenter.response.GetSvcInfoByMemberIdResponse;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.membercenter.service.MemberPropertyService;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
......@@ -222,6 +219,22 @@ public class CheckOrder {
}
/**
* 查询门店信息新接口
*/
public SoreMixResponseDto getStoreInfoNew(String partnerId, String shopId, StoreInfoRequestDto.QueryInfo query) {
// 获取门店信息
StoreInfoRequestDto request = new StoreInfoRequestDto();
request.setPartnerId(partnerId);
request.setStoreCode(shopId);
request.setQuery(query);
StoreBaseResponseDto<SoreMixResponseDto> storeInfoNew = storeClient.getStoreInfoNew(request);
if (storeInfoNew == null || storeInfoNew.getBizVO() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
return storeInfoNew.getBizVO();
}
/**
* 下单门店相关校验
*/
public StoreResponse.BizVO checkOrderByStore(CreateOrderVo createOrderVo, String trackingNo) {
......@@ -263,6 +276,19 @@ public class CheckOrder {
}
/**
* 调用该方法 需要自己判断 业务对象是否为null
* @param partnerId
* @param shopId
* @param query
* @return
*/
public SoreMixResponseDto getStoremixDto(String partnerId, String shopId, StoreInfoRequestDto.QueryInfo query) {
// 获取门店信息
SoreMixResponseDto storeInfoNew = getStoreInfoNew(partnerId, shopId, query);
return storeInfoNew;
}
/**
* 下单订单类型校验
*/
public Integer checkOrderByOrderType(CreateOrderVo createOrderVo, AssortmentCustomerInfoVo userLoginInfoDto,
......@@ -408,10 +434,26 @@ public class CheckOrder {
}
}
//订单金额小于起送费提示
else if ((2 == storeDeliveryInfoDto.getDeliveryCondition()
&& storeDeliveryInfoDto.getDeliveryLimitAmount() > shoppingCartGoodsDto.getTotalAmount())
else if (2 == storeDeliveryInfoDto.getDeliveryCondition()
&& !cocoPartnerId.contains(createOrderVo.getPartnerId())) {
throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_FEE);
// fisherman 【ID1037103】【野翠山】【B】外卖起送价规则取订单总金额 这特么用sdk就很吊, 得重新调用接口
// 先暂时这么写, 到时候需要优化这一块 对于门店的请求操作
StoreInfoRequestDto.QueryInfo query = new StoreInfoRequestDto.QueryInfo();
query.setQueryDeliveryInfo(Boolean.TRUE);
SoreMixResponseDto storemixDto = this.getStoremixDto(createOrderVo.getPartnerId(), createOrderVo.getShopId(), query);
DeliveryInfoDTO deliveryInfo = storemixDto.getDeliveryInfo();
Long deliveryLimitAmount = storeDeliveryInfoDto.getDeliveryLimitAmount();
Long totalAmount = shoppingCartGoodsDto.getTotalAmount();
if (Objects.nonNull(deliveryInfo) && Objects.nonNull(deliveryInfo.getExpandFields())) {
DeliveryInfoExpFields expandFields = deliveryInfo.getExpandFields();
if (Objects.equals(expandFields.getDeliveryAmountType(),"1")) {
//原价起送
totalAmount = shoppingCartGoodsDto.getOriginalTotalAmount();
}
}
if (deliveryLimitAmount.compareTo(totalAmount) > 0) {
throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_FEE);
}
}
storeDeliveryInfoDto.setEnableTakeaway(true);
......
......@@ -91,6 +91,8 @@ import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddress
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.*;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
......@@ -2561,6 +2563,9 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
orderConditionsReq.setPageNum(i);
orderConditionsReq.setPageSize(500);
orderConditionsReq.setSortRule(1);
if(StringUtils.isNotBlank(queryOrderVo.getUserId())) {
orderConditionsReq.setUserId(queryOrderVo.getUserId());
}
BaseDownLoadResponse<List<OrderInfoReqs>> response = orderDownLoadSdkService.queryOrderByConditions(orderConditionsReq, LogThreadLocal.getTrackingNo());
AppLogUtil.infoLog("queryOrderByConditions:"+ JSON.toJSONString(response),null,null);
if(CollectionUtils.isEmpty(response.getResult())) {
......@@ -2584,7 +2589,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
headers.set("Timestamp", timestamp);
headers.set("Sign", sign);
headers.add("Accept", MediaType.APPLICATION_JSON_VALUE);
Gson gson = new Gson();
AppLogUtil.infoLog("订单推送header: "+JSON.toJSONString(headers),null,null);
String json = JSON.toJSONString(mcCafePushOrderDto);
HttpEntity<String> requestEntity = new HttpEntity<>(json, headers);
ResponseEntity<String> responseEntity = client.exchange(mccafePushOrderGatewayUrl+"/mp/order", HttpMethod.POST, requestEntity, String.class);
......@@ -2598,7 +2603,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
pushMccafeOrder.setStoreId(orderInfoReqs.getStoreId());
if(!"SUCCESS".equals(responseDto.getCode())) {
pushMccafeOrder.setStatus(0);
pushMccafeOrder.setFailReason(JSON.toJSONString(responseDto));
pushMccafeOrder.setFailReason(subLongString(JSON.toJSONString(responseDto)));
} else {
pushMccafeOrder.setStatus(1);
}
......@@ -2624,7 +2629,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
pushMccafeOrder.setPartnerId(orderInfoReqs.getPartnerId());
pushMccafeOrder.setStoreId(orderInfoReqs.getStoreId());
pushMccafeOrder.setStatus(0);
pushMccafeOrder.setFailReason(ExceptionUtils.getExceptionInfo(e));
pushMccafeOrder.setFailReason(subLongString(ExceptionUtils.getExceptionInfo(e)));
pushMccafeOrderManager.insertOrder(pushMccafeOrder);
}
......@@ -2638,6 +2643,18 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return baseResponse;
}
public String subLongString(String s) {
if(StringUtils.isNotBlank(s)) {
if(s.length() > 15000) {
return s.substring(0,15000);
} else {
return s;
}
} else {
return "";
}
}
public BaseResponse mcCafePushOrderMakeUp(McCafeQueryOrderVo queryOrderVo) {
executor.submit(() -> {
......
......@@ -65,13 +65,13 @@
<dependency>
<groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-payment-sdk</artifactId>
<version>2.6.10.SNAPSHOT</version>
<version>2.6.10.RELEASE</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>paymentcenter-sdk</artifactId>
<version>2.9.17-SNAPSHOT</version>
<version>2.9.17.RELEASE</version>
</dependency>
<dependency>
<artifactId>structure-center-sdk</artifactId>
......
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