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 @@ ...@@ -331,12 +331,12 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>paymentcenter-sdk</artifactId> <artifactId>paymentcenter-sdk</artifactId>
<version>2.9.17-SNAPSHOT</version> <version>2.9.17.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-payment-sdk</artifactId> <artifactId>assortment-payment-sdk</artifactId>
<version>2.6.10.SNAPSHOT</version> <version>2.6.10.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.rocketmq</groupId> <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 { ...@@ -31,4 +31,8 @@ public class ExpandFields {
*/ */
private Integer preOrderSwitch; private Integer preOrderSwitch;
/**
* 派单模式(0-系统自动派单;1-手动派单)
*/
private String dispatchType;
} }
...@@ -10,7 +10,7 @@ public class SoreMixResponseDto { ...@@ -10,7 +10,7 @@ public class SoreMixResponseDto {
private BusinessInfoDto businessInfo; private BusinessInfoDto businessInfo;
private Object deliveryInfo; private DeliveryInfoDTO deliveryInfo;
private Object parentUntilTop; private Object parentUntilTop;
......
...@@ -57,4 +57,6 @@ public class McCafeQueryOrderVo { ...@@ -57,4 +57,6 @@ public class McCafeQueryOrderVo {
*/ */
private String channelType; private String channelType;
private String userId;
} }
...@@ -52,11 +52,8 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome ...@@ -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.base.BaseResponse;
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;
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.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService; 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.ordercenter.enums.BizTypeEnum;
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService; import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest; import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
...@@ -222,6 +219,22 @@ public class CheckOrder { ...@@ -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) { public StoreResponse.BizVO checkOrderByStore(CreateOrderVo createOrderVo, String trackingNo) {
...@@ -263,6 +276,19 @@ public class CheckOrder { ...@@ -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, public Integer checkOrderByOrderType(CreateOrderVo createOrderVo, AssortmentCustomerInfoVo userLoginInfoDto,
...@@ -408,10 +434,26 @@ public class CheckOrder { ...@@ -408,10 +434,26 @@ public class CheckOrder {
} }
} }
//订单金额小于起送费提示 //订单金额小于起送费提示
else if ((2 == storeDeliveryInfoDto.getDeliveryCondition() else if (2 == storeDeliveryInfoDto.getDeliveryCondition()
&& storeDeliveryInfoDto.getDeliveryLimitAmount() > shoppingCartGoodsDto.getTotalAmount())
&& !cocoPartnerId.contains(createOrderVo.getPartnerId())) { && !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); storeDeliveryInfoDto.setEnableTakeaway(true);
......
...@@ -91,6 +91,8 @@ import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddress ...@@ -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.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.ordercenter.enums.*; import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.*; 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.BaseDownLoadResponse;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.*; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.*;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
...@@ -2561,6 +2563,9 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -2561,6 +2563,9 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
orderConditionsReq.setPageNum(i); orderConditionsReq.setPageNum(i);
orderConditionsReq.setPageSize(500); orderConditionsReq.setPageSize(500);
orderConditionsReq.setSortRule(1); orderConditionsReq.setSortRule(1);
if(StringUtils.isNotBlank(queryOrderVo.getUserId())) {
orderConditionsReq.setUserId(queryOrderVo.getUserId());
}
BaseDownLoadResponse<List<OrderInfoReqs>> response = orderDownLoadSdkService.queryOrderByConditions(orderConditionsReq, LogThreadLocal.getTrackingNo()); BaseDownLoadResponse<List<OrderInfoReqs>> response = orderDownLoadSdkService.queryOrderByConditions(orderConditionsReq, LogThreadLocal.getTrackingNo());
AppLogUtil.infoLog("queryOrderByConditions:"+ JSON.toJSONString(response),null,null); AppLogUtil.infoLog("queryOrderByConditions:"+ JSON.toJSONString(response),null,null);
if(CollectionUtils.isEmpty(response.getResult())) { if(CollectionUtils.isEmpty(response.getResult())) {
...@@ -2584,7 +2589,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -2584,7 +2589,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
headers.set("Timestamp", timestamp); headers.set("Timestamp", timestamp);
headers.set("Sign", sign); headers.set("Sign", sign);
headers.add("Accept", MediaType.APPLICATION_JSON_VALUE); headers.add("Accept", MediaType.APPLICATION_JSON_VALUE);
Gson gson = new Gson(); AppLogUtil.infoLog("订单推送header: "+JSON.toJSONString(headers),null,null);
String json = JSON.toJSONString(mcCafePushOrderDto); String json = JSON.toJSONString(mcCafePushOrderDto);
HttpEntity<String> requestEntity = new HttpEntity<>(json, headers); HttpEntity<String> requestEntity = new HttpEntity<>(json, headers);
ResponseEntity<String> responseEntity = client.exchange(mccafePushOrderGatewayUrl+"/mp/order", HttpMethod.POST, requestEntity, String.class); ResponseEntity<String> responseEntity = client.exchange(mccafePushOrderGatewayUrl+"/mp/order", HttpMethod.POST, requestEntity, String.class);
...@@ -2598,7 +2603,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -2598,7 +2603,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
pushMccafeOrder.setStoreId(orderInfoReqs.getStoreId()); pushMccafeOrder.setStoreId(orderInfoReqs.getStoreId());
if(!"SUCCESS".equals(responseDto.getCode())) { if(!"SUCCESS".equals(responseDto.getCode())) {
pushMccafeOrder.setStatus(0); pushMccafeOrder.setStatus(0);
pushMccafeOrder.setFailReason(JSON.toJSONString(responseDto)); pushMccafeOrder.setFailReason(subLongString(JSON.toJSONString(responseDto)));
} else { } else {
pushMccafeOrder.setStatus(1); pushMccafeOrder.setStatus(1);
} }
...@@ -2624,7 +2629,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -2624,7 +2629,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
pushMccafeOrder.setPartnerId(orderInfoReqs.getPartnerId()); pushMccafeOrder.setPartnerId(orderInfoReqs.getPartnerId());
pushMccafeOrder.setStoreId(orderInfoReqs.getStoreId()); pushMccafeOrder.setStoreId(orderInfoReqs.getStoreId());
pushMccafeOrder.setStatus(0); pushMccafeOrder.setStatus(0);
pushMccafeOrder.setFailReason(ExceptionUtils.getExceptionInfo(e)); pushMccafeOrder.setFailReason(subLongString(ExceptionUtils.getExceptionInfo(e)));
pushMccafeOrderManager.insertOrder(pushMccafeOrder); pushMccafeOrderManager.insertOrder(pushMccafeOrder);
} }
...@@ -2638,6 +2643,18 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -2638,6 +2643,18 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return baseResponse; 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) { public BaseResponse mcCafePushOrderMakeUp(McCafeQueryOrderVo queryOrderVo) {
executor.submit(() -> { executor.submit(() -> {
......
...@@ -65,13 +65,13 @@ ...@@ -65,13 +65,13 @@
<dependency> <dependency>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-payment-sdk</artifactId> <artifactId>assortment-payment-sdk</artifactId>
<version>2.6.10.SNAPSHOT</version> <version>2.6.10.RELEASE</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>paymentcenter-sdk</artifactId> <artifactId>paymentcenter-sdk</artifactId>
<version>2.9.17-SNAPSHOT</version> <version>2.9.17.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>structure-center-sdk</artifactId> <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