Commit bf9bce8c by ping.wu

Merge branches 'feature/20211122_查询门店配送接口合并_wuping' and 'master' of…

Merge branches 'feature/20211122_查询门店配送接口合并_wuping' and 'master' of http://gitlab.freemud.com/order-group-application/order-group
parents 971e2a1f cf985616
package cn.freemud.entities.bo;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.CreateOrderVo;
......@@ -25,6 +26,12 @@ public class CreateOrderBONew {
//订单扩展字段信息
private OrderExtInfoDto extInfo;
/**
* 内部参数
* 用户收货地址信息 ,入参不需要传,通过校验receiveId获取
*/
public UserDeliveryInfoDto userDeliveryInfoDto;
public CreateOrderBONew() {
}
......
......@@ -7,6 +7,7 @@ import java.util.Date;
import java.util.List;
@Data
@Deprecated
public class StoreDeliveryInfoDto {
private String partnerId;
......@@ -18,6 +19,7 @@ public class StoreDeliveryInfoDto {
/**
* 门店是否可配送
*/
@Deprecated
private Boolean enableTakeaway;
/**
* 起送费单位分
......@@ -78,6 +80,8 @@ public class StoreDeliveryInfoDto {
*/
private String deliveryType;
private String deliveryTypeString;
/**
* 预订单自定义推单时间
*/
......
......@@ -52,13 +52,15 @@ public class UserDeliveryInfoDto {
@Deprecated
private Long realDeliveryAmount;
/**
* 起送费单位分
* 起送费单位分 (门店配送信息字段)
*/
@Deprecated
private Long deliveryLimitAmount;
/**
* 门店配送信息
*/
@Deprecated
private StoreDeliveryInfoDto storeDeliveryInfoDto;
/**
......
......@@ -76,9 +76,44 @@ public class DeliveryInfoDTO {
*/
private DeliveryInfoExpFields expandFields;
/**
* 配送区域名称
*/
private String areaName;
/**
* 下单范围类型 1手工画范围 2半径服务
*/
private Integer positionScopeType;
/**
* 起送价格(分)
*/
private String minOrderPrice;
/**
* 配送费(分)
*/
private String deliveryFee;
// TODO: 21-11-15 参数待送门店新接口获取
// private String minOrderPrice;
// private String deliveryFee;
/**
* 配送时间(分钟)
*/
private Integer deliveryTime;
/**
* 下单范围,格式:jsonArray,或者半径(米)
*/
private String positionScope;
/**
* 实际需要支付配送费
*/
private Integer finalDeliveryAmount;
/**
* 配送费为零的原因:0:正常,1:超出配送范围
*/
private Integer deliveryFeeZeroReason = 0;
}
......@@ -25,6 +25,16 @@ public class StoreInfoRequestDto {
private QueryInfo query;
/**
* 用户收货地址经度
*/
private String userLongitude;
/**
* 用户收货地址维度
*/
private String userLatitude;
public StoreInfoRequestDto(String partnerId, String storeCode) {
this.partnerId = partnerId;
this.storeCode = storeCode;
......
......@@ -13,11 +13,9 @@
package cn.freemud.service.impl;
import cn.freemud.base.util.DateUtil;
import cn.freemud.base.util.JsonUtil;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.StoreConstant;
import cn.freemud.entities.dto.GetCouponDetailResponseDto;
import cn.freemud.entities.dto.StoreDeliveryInfoDto;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
......@@ -27,7 +25,6 @@ import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.GetMemberCouponRequestVo;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
import cn.freemud.entities.vo.delivery.DeliveryAmountVo;
import cn.freemud.enums.BusinessTypeEnum;
import cn.freemud.enums.CouponFlag;
import cn.freemud.enums.OrderChannelType;
......
......@@ -436,27 +436,27 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
}
//获取门店配送信息
StoreDeliveryInfoDto storeDeliveryInfoDto = getNewStoreDeliveryInfo(storeResponseDto);
DeliveryInfoDTO deliveryInfo = storeMixResponseDto.getDeliveryInfo();
//coco自配送提前45分钟,禁止下单 代码已删除
//外卖起送条件(1:杯数,2:金额)
if (!Arrays.asList(1, 2).contains(storeDeliveryInfoDto.getDeliveryCondition())) {
if (!Arrays.asList(1, 2).contains(deliveryInfo.getDeliveryType())) {
throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_CONDITION);
}
if (1 == storeDeliveryInfoDto.getDeliveryCondition()) {
if (1 == deliveryInfo.getDeliveryType()) {
int sum = shoppingCartGoodsDto.getProducts().stream().mapToInt(ShoppingCartGoodsDto.CartGoodsDetailDto::getQty).sum();
if (sum < storeDeliveryInfoDto.getFreeDeliveryCup()) {
if (sum < deliveryInfo.getFreeDeliveryCup()) {
throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_CUP);
}
}
//订单金额小于起送费提示
else if (2 == storeDeliveryInfoDto.getDeliveryCondition()) {
else if (2 == deliveryInfo.getDeliveryType()) {
// fisherman 【ID1037103】【野翠山】【B】外卖起送价规则取订单总金额 这特么用sdk就很吊, 得重新调用接口
// 先暂时这么写, 到时候需要优化这一块 对于门店的请求操作
// StoreInfoRequestDto.QueryInfo query = new StoreInfoRequestDto.QueryInfo();
// query.setQueryDeliveryInfo(Boolean.TRUE);
// StoreMixResponseDto storemixDto = storeService.getStoremixDto(createOrderVo.getPartnerId(), createOrderVo.getShopId(), query);
DeliveryInfoDTO deliveryInfo = storeMixResponseDto.getDeliveryInfo();
Long deliveryLimitAmount = storeDeliveryInfoDto.getDeliveryLimitAmount();
// DeliveryInfoDTO deliveryInfo = storeMixResponseDto.getDeliveryInfo();
Long deliveryLimitAmount = StringUtils.isBlank(deliveryInfo.getMinOrderPrice()) ? 0L : Long.parseLong(deliveryInfo.getMinOrderPrice());
Long totalAmount = shoppingCartGoodsDto.getTotalAmount();
if (Objects.nonNull(deliveryInfo) && Objects.nonNull(deliveryInfo.getExpandFields())) {
DeliveryInfoExpFields expandFields = deliveryInfo.getExpandFields();
......@@ -470,9 +470,9 @@ public class CheckOrder {
}
}
storeDeliveryInfoDto.setEnableTakeaway(true);
// storeDeliveryInfoDto.setEnableTakeaway(true);
// 校验收货地址是否可配送 fisherman -> 获取门店预计送达时间
checkReceiveAddress(storeDeliveryInfoDto, createOrderVo, storeResponseDto.getStoreCode());
builderUserDeliveryInfoDto(createOrderBO, deliveryInfo);
}
return pushOrderTime;
}
......@@ -967,77 +967,79 @@ public class CheckOrder {
return storeDeliveryInfoDto;
}
/**
* 获取门店配送信息
*/
public StoreDeliveryInfoDto getNewStoreDeliveryInfo(StoreResponseDto storeResponseDto) {
String trackingNo = LogThreadLocal.getTrackingNo();
StoreDeliveryInfoDto storeDeliveryInfoDto = new StoreDeliveryInfoDto();
storeDeliveryInfoDto.setPartnerId(storeResponseDto.getPartnerId());
storeDeliveryInfoDto.setStoreId(storeResponseDto.getStoreCode());
storeDeliveryInfoDto.setStoreName(storeResponseDto.getStoreName());
// 查询外卖配送信息
QueryDeliveryRequest queryDeliveryRequest = new QueryDeliveryRequest();
queryDeliveryRequest.setPartnerId(storeResponseDto.getPartnerId());
queryDeliveryRequest.setStoreCode(storeResponseDto.getStoreCode());
BaseResponse<QueryDeliverDetailResponse> queryDeliverDetailResponse = storeCenterService.queryDeliverDetail(queryDeliveryRequest, trackingNo);
if (queryDeliverDetailResponse == null || !ResponseResult.SUCCESS.getCode().equals(queryDeliverDetailResponse.getCode()) || queryDeliverDetailResponse.getData() == null) {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
}
QueryDeliverDetailResponse deliveryDetail = queryDeliverDetailResponse.getData();
// 判断门店是否启用外卖,只有当小程序开通外卖,且门店开通外卖,设置 外卖配送时间 才开启外卖功能
storeDeliveryInfoDto.setDeliveryLimitAmount(StringUtils.isBlank(deliveryDetail.getMinOrderPrice()) ? 0L : Long.parseLong(deliveryDetail.getMinOrderPrice()));
storeDeliveryInfoDto.setDeliveryAmount(StringUtils.isBlank(deliveryDetail.getDeliveryFee()) ? 0L : Long.parseLong(deliveryDetail.getDeliveryFee()));
storeDeliveryInfoDto.setDefaultDeliveryRange(StringUtils.isBlank(deliveryDetail.getDeliveryRange()) ? 0L : Long.parseLong(deliveryDetail.getDeliveryRange()));
storeDeliveryInfoDto.setAddRangeAmount(StringUtils.isBlank(deliveryDetail.getAddRangeAmount()) ? 0L : Long.parseLong(deliveryDetail.getAddRangeAmount()));
storeDeliveryInfoDto.setAddRangeCount(StringUtils.isBlank(deliveryDetail.getAddRange()) ? 0L : Long.parseLong(deliveryDetail.getAddRange()));
storeDeliveryInfoDto.setPoint2DList(getDeliveryPoint2DList(storeResponseDto.getDistributionScope()));
storeDeliveryInfoDto.setDeliveryHoursDay(storeResponseDto.getDeliveryHoursDay());
storeDeliveryInfoDto.setLongitude(storeResponseDto.getLongitude());
storeDeliveryInfoDto.setLatitude(storeResponseDto.getLatitude());
storeDeliveryInfoDto.setScopeConfig(storeResponseDto.getScopeConfig());
if (StringUtils.isNotEmpty(storeResponseDto.getDeliveryRadius())) {
storeDeliveryInfoDto.setDeliveryRadius(Integer.valueOf(storeResponseDto.getDeliveryRadius()));
} else {
storeDeliveryInfoDto.setDeliveryRadius(0);
}
// 只有小程序设置了外卖,并且开通了第三方配送账户,才是第三方配送单 不可能为空,调用地方已查
// if (openPlatformIappWxappConfig == null) {
// openPlatformIappWxappConfig = openPlatformIappWxappConfigManager.selectIappWxappConfigByWxAppId(wxAppid);
// public StoreDeliveryInfoDto getNewStoreDeliveryInfo(StoreResponseDto storeResponseDto) {
// String trackingNo = LogThreadLocal.getTrackingNo();
// StoreDeliveryInfoDto storeDeliveryInfoDto = new StoreDeliveryInfoDto();
// storeDeliveryInfoDto.setPartnerId(storeResponseDto.getPartnerId());
// storeDeliveryInfoDto.setStoreId(storeResponseDto.getStoreCode());
// storeDeliveryInfoDto.setStoreName(storeResponseDto.getStoreName());
// // 查询外卖配送信息
// QueryDeliveryRequest queryDeliveryRequest = new QueryDeliveryRequest();
// queryDeliveryRequest.setPartnerId(storeResponseDto.getPartnerId());
// queryDeliveryRequest.setStoreCode(storeResponseDto.getStoreCode());
// BaseResponse<QueryDeliverDetailResponse> queryDeliverDetailResponse = storeCenterService.queryDeliverDetail(queryDeliveryRequest, trackingNo);
// if (queryDeliverDetailResponse == null || !ResponseResult.SUCCESS.getCode().equals(queryDeliverDetailResponse.getCode()) || queryDeliverDetailResponse.getData() == null) {
// throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
// }
storeDeliveryInfoDto.setDeliveryType("self");
storeDeliveryInfoDto.setPushOrderTime(0);
// if (openPlatformIappWxappConfig == null) {
// storeDeliveryInfoDto.setDeliveryType("self");
// storeDeliveryInfoDto.setPushOrderTime(0);
// QueryDeliverDetailResponse deliveryDetail = queryDeliverDetailResponse.getData();
// // 判断门店是否启用外卖,只有当小程序开通外卖,且门店开通外卖,设置 外卖配送时间 才开启外卖功能
// storeDeliveryInfoDto.setDeliveryLimitAmount(StringUtils.isBlank(deliveryDetail.getMinOrderPrice()) ? 0L : Long.parseLong(deliveryDetail.getMinOrderPrice()));
// storeDeliveryInfoDto.setDeliveryAmount(StringUtils.isBlank(deliveryDetail.getDeliveryFee()) ? 0L : Long.parseLong(deliveryDetail.getDeliveryFee()));
// storeDeliveryInfoDto.setDefaultDeliveryRange(StringUtils.isBlank(deliveryDetail.getDeliveryRange()) ? 0L : Long.parseLong(deliveryDetail.getDeliveryRange()));
// storeDeliveryInfoDto.setAddRangeAmount(StringUtils.isBlank(deliveryDetail.getAddRangeAmount()) ? 0L : Long.parseLong(deliveryDetail.getAddRangeAmount()));
// storeDeliveryInfoDto.setAddRangeCount(StringUtils.isBlank(deliveryDetail.getAddRange()) ? 0L : Long.parseLong(deliveryDetail.getAddRange()));
// storeDeliveryInfoDto.setPoint2DList(getDeliveryPoint2DList(storeResponseDto.getDistributionScope()));
// storeDeliveryInfoDto.setDeliveryHoursDay(storeResponseDto.getDeliveryHoursDay());
// storeDeliveryInfoDto.setLongitude(storeResponseDto.getLongitude());
// storeDeliveryInfoDto.setLatitude(storeResponseDto.getLatitude());
// storeDeliveryInfoDto.setScopeConfig(storeResponseDto.getScopeConfig());
// if (StringUtils.isNotEmpty(storeResponseDto.getDeliveryRadius())) {
// storeDeliveryInfoDto.setDeliveryRadius(Integer.valueOf(storeResponseDto.getDeliveryRadius()));
// } else {
//如果是coco查询配送服务判断是平台配送还是自配送
// if (cocoPartnerId.equals(storeResponseDto.getPartnerId())) {
// GetDeliveryFlagRequest getDeliveryFlagRequest = new GetDeliveryFlagRequest();
// getDeliveryFlagRequest.setPartnerId(storeResponseDto.getPartnerId());
// getDeliveryFlagRequest.setStoreId(storeResponseDto.getStoreId());
// DeliveryBaseResponse<GetDeliveryFlagResponseDto> deliveryBaseResponse = deliveryFeiginClient.getThirdDeliveryFlag(getDeliveryFlagRequest);
// if (deliveryBaseResponse.getCode() == 100 && deliveryBaseResponse.getData() != null && deliveryBaseResponse.getData().isThirdDeliveryFlag()) {
// storeDeliveryInfoDto.setDeliveryType("third");
// storeDeliveryInfoDto.setPushOrderTime(0);
// } else {
// storeDeliveryInfoDto.setDeliveryType("self");
// storeDeliveryInfoDto.setPushOrderTime(0);
// storeDeliveryInfoDto.setDeliveryRadius(0);
// }
// } else {
// if (ObjectUtils.equals(openPlatformIappWxappConfig.getTakeType(), 1)) {
// // 只有小程序设置了外卖,并且开通了第三方配送账户,才是第三方配送单 不可能为空,调用地方已查
//// if (openPlatformIappWxappConfig == null) {
//// openPlatformIappWxappConfig = openPlatformIappWxappConfigManager.selectIappWxappConfigByWxAppId(wxAppid);
//// }
// storeDeliveryInfoDto.setDeliveryType("self");
// storeDeliveryInfoDto.setPushOrderTime(0);
// } else {
// storeDeliveryInfoDto.setDeliveryType("third");
// storeDeliveryInfoDto.setPushOrderTime(0);
//// if (openPlatformIappWxappConfig == null) {
//// storeDeliveryInfoDto.setDeliveryType("self");
//// storeDeliveryInfoDto.setPushOrderTime(0);
//// } else {
// //如果是coco查询配送服务判断是平台配送还是自配送
//// if (cocoPartnerId.equals(storeResponseDto.getPartnerId())) {
//// GetDeliveryFlagRequest getDeliveryFlagRequest = new GetDeliveryFlagRequest();
//// getDeliveryFlagRequest.setPartnerId(storeResponseDto.getPartnerId());
//// getDeliveryFlagRequest.setStoreId(storeResponseDto.getStoreId());
//// DeliveryBaseResponse<GetDeliveryFlagResponseDto> deliveryBaseResponse = deliveryFeiginClient.getThirdDeliveryFlag(getDeliveryFlagRequest);
//// if (deliveryBaseResponse.getCode() == 100 && deliveryBaseResponse.getData() != null && deliveryBaseResponse.getData().isThirdDeliveryFlag()) {
//// storeDeliveryInfoDto.setDeliveryType("third");
//// storeDeliveryInfoDto.setPushOrderTime(0);
//// } else {
//// storeDeliveryInfoDto.setDeliveryType("self");
//// storeDeliveryInfoDto.setPushOrderTime(0);
//// }
//// } else {
//// if (ObjectUtils.equals(openPlatformIappWxappConfig.getTakeType(), 1)) {
//// storeDeliveryInfoDto.setDeliveryType("self");
//// storeDeliveryInfoDto.setPushOrderTime(0);
//// } else {
//// storeDeliveryInfoDto.setDeliveryType("third");
//// storeDeliveryInfoDto.setPushOrderTime(0);
//// }
//// }
//// }
// storeDeliveryInfoDto.setDeliveryCondition(deliveryDetail.getDeliveryType());
// storeDeliveryInfoDto.setFreeDeliveryCup(deliveryDetail.getFreeDeliveryCup());
// return storeDeliveryInfoDto;
// }
// }
// }
storeDeliveryInfoDto.setDeliveryCondition(deliveryDetail.getDeliveryType());
storeDeliveryInfoDto.setFreeDeliveryCup(deliveryDetail.getFreeDeliveryCup());
return storeDeliveryInfoDto;
}
/**
* 获取配送范围内集合
......@@ -1066,27 +1068,87 @@ public class CheckOrder {
/**
* 校验收货地址是否可配送
*/
public void checkReceiveAddress(StoreDeliveryInfoDto storeDeliveryInfoDto, CreateOrderVo createOrderVo, String storeCode) {
// public void checkReceiveAddress(StoreDeliveryInfoDto storeDeliveryInfoDto, CreateOrderVo createOrderVo, String storeCode) {
// //校验收货地址是否可配送
// String receiveId = createOrderVo.getReceiveId();
// String trackingNo = LogThreadLocal.getTrackingNo();
// QueryReceiveAddressRequest request = new QueryReceiveAddressRequest(receiveId, storeDeliveryInfoDto.getPartnerId());
// BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(request, trackingNo);
// if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) {
// throw new ServiceException(ResponseResult.USER_GETRECEIVEADDRESS_ERROR);
// }
// QueryReceiveAddressResponse receiveAddressResult = queryReceiveAddressResponse.getData();
//
// //组装代码移出来了
// UserDeliveryInfoDto userDeliveryInfoDto = UserDeliveryInfoDto.builder()
// .userLongitude(receiveAddressResult.getLongitude())
// .userLatitude(receiveAddressResult.getLatitude())
// .deliveryLimitAmount(storeDeliveryInfoDto.getDeliveryLimitAmount())
// .userEnableTakeaway(true)
// .realDeliveryAmount(0L)
// .storeId(storeDeliveryInfoDto.getStoreId())
// .storeName(storeDeliveryInfoDto.getStoreName())
// .storeDeliveryInfoDto(storeDeliveryInfoDto)
// .build();
//// if (!userDeliveryInfoDto.getUserEnableTakeaway()) {
//// throw new ServiceException(ResponseResult.ORDER_TAKE_OUT_ADDRESS_NOT_DELIVERY);
//// }
// if (BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(createOrderVo.getMenuType())) {
// /**
// * @see StoreDeliveryMethod
// */
// String deliveryTypeCode = this.checkDeliveryType(createOrderVo, storeCode, trackingNo);
// userDeliveryInfoDto.getStoreDeliveryInfoDto().setDeliveryType(deliveryTypeCode);
//
// // 【ID1030916】订单查询门店获取预计送达时间 并且不是预约单
// if (StringUtils.isEmpty(createOrderVo.getExpectTime())
// && !this.getIsAdvanceOrder(createOrderVo.getBizType())) {
// userDeliveryInfoDto.setEstimateDeliveryCompleteTime(getEstimateDeliveryCompleteTime(receiveAddressResult.getLatitude(), receiveAddressResult.getLongitude(), storeDeliveryInfoDto.getPartnerId(), storeDeliveryInfoDto.getStoreId()));
// }
// }
// userDeliveryInfoDto.setReceiveUserName(receiveAddressResult.getReceiveName());
// userDeliveryInfoDto.setReceiveMobile(StringUtils.isEmpty(receiveAddressResult.getMobile()) ? receiveAddressResult.getReceiveMobile() : receiveAddressResult.getMobile());
// String receiveAddress = receiveAddressResult.getReceiveAddress();
// if (StringUtils.isNotBlank(receiveAddress)) {
// userDeliveryInfoDto.setReceiveAddress(receiveAddress);
// if (receiveAddress.contains("officeName") && receiveAddress.contains("address")) {
// JSONObject jsonObject = JSONObject.parseObject(receiveAddress);
// userDeliveryInfoDto.setReceiveOfficeName(jsonObject.getString("officeName"));
// userDeliveryInfoDto.setReceiveAddress(jsonObject.getString("address"));
// }
// }
// createOrderVo.setUserName(receiveAddressResult.getReceiveName());
// createOrderVo.setMobile(StringUtils.isEmpty(receiveAddressResult.getMobile()) ? receiveAddressResult.getReceiveMobile() : receiveAddressResult.getMobile());
// createOrderVo.setUserDeliveryInfoDto(userDeliveryInfoDto);
// }
public void builderUserDeliveryInfoDto(CreateOrderBONew createOrderBO,DeliveryInfoDTO deliveryInfo) {
CreateOrderVo createOrderVo = createOrderBO.getCreateOrderVo();
StoreMixResponseDto storeMixResponseDto = createOrderBO.getStoreMixResponseDto();
StoreResponseDto storeResponseDto = storeMixResponseDto.getStoreInfo();
//校验收货地址是否可配送
String receiveId = createOrderVo.getReceiveId();
String trackingNo = LogThreadLocal.getTrackingNo();
QueryReceiveAddressRequest request = new QueryReceiveAddressRequest(receiveId, storeDeliveryInfoDto.getPartnerId());
QueryReceiveAddressRequest request = new QueryReceiveAddressRequest(receiveId, createOrderVo.getPartnerId());
BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(request, trackingNo);
if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) {
throw new ServiceException(ResponseResult.USER_GETRECEIVEADDRESS_ERROR);
}
QueryReceiveAddressResponse receiveAddressResult = queryReceiveAddressResponse.getData();
StoreDeliveryInfoDto storeDeliveryInfoDto = builderStoreDeliveryInfoDto(createOrderBO, deliveryInfo);
//组装代码移出来了
UserDeliveryInfoDto userDeliveryInfoDto = UserDeliveryInfoDto.builder()
.userLongitude(receiveAddressResult.getLongitude())
.userLatitude(receiveAddressResult.getLatitude())
.deliveryLimitAmount(storeDeliveryInfoDto.getDeliveryLimitAmount())
// .deliveryLimitAmount(deliveryInfo.getMinOrderPrice())
.userEnableTakeaway(true)
.realDeliveryAmount(0L)
.storeId(storeDeliveryInfoDto.getStoreId())
.storeName(storeDeliveryInfoDto.getStoreName())
.storeDeliveryInfoDto(storeDeliveryInfoDto).build();
.storeId(storeResponseDto.getStoreCode())
.storeName(storeResponseDto.getStoreName())
.storeDeliveryInfoDto(storeDeliveryInfoDto)
.build();
// if (!userDeliveryInfoDto.getUserEnableTakeaway()) {
// throw new ServiceException(ResponseResult.ORDER_TAKE_OUT_ADDRESS_NOT_DELIVERY);
// }
......@@ -1094,8 +1156,8 @@ public class CheckOrder {
/**
* @see StoreDeliveryMethod
*/
String deliveryTypeCode = this.checkDeliveryType(createOrderVo, storeCode, trackingNo);
userDeliveryInfoDto.getStoreDeliveryInfoDto().setDeliveryType(deliveryTypeCode);
String deliveryTypeString = storeDeliveryInfoDto.getDeliveryTypeString();
userDeliveryInfoDto.getStoreDeliveryInfoDto().setDeliveryType(deliveryTypeString);
// 【ID1030916】订单查询门店获取预计送达时间 并且不是预约单
if (StringUtils.isEmpty(createOrderVo.getExpectTime())
......@@ -1117,7 +1179,46 @@ public class CheckOrder {
createOrderVo.setUserName(receiveAddressResult.getReceiveName());
createOrderVo.setMobile(StringUtils.isEmpty(receiveAddressResult.getMobile()) ? receiveAddressResult.getReceiveMobile() : receiveAddressResult.getMobile());
createOrderVo.setUserDeliveryInfoDto(userDeliveryInfoDto);
createOrderBO.setUserDeliveryInfoDto(userDeliveryInfoDto);
}
public StoreDeliveryInfoDto builderStoreDeliveryInfoDto(CreateOrderBONew createOrderBO,DeliveryInfoDTO deliveryDetail) {
StoreMixResponseDto storeMixResponseDto = createOrderBO.getStoreMixResponseDto();
StoreResponseDto storeResponseDto = storeMixResponseDto.getStoreInfo();
StoreDeliveryInfoDto storeDeliveryInfoDto = new StoreDeliveryInfoDto();
storeDeliveryInfoDto.setPartnerId(storeResponseDto.getPartnerId());
storeDeliveryInfoDto.setStoreId(storeResponseDto.getStoreCode());
storeDeliveryInfoDto.setStoreName(storeResponseDto.getStoreName());
storeDeliveryInfoDto.setDeliveryLimitAmount(StringUtils.isBlank(deliveryDetail.getMinOrderPrice()) ? 0L : Long.parseLong(deliveryDetail.getMinOrderPrice()));
storeDeliveryInfoDto.setDeliveryAmount(StringUtils.isBlank(deliveryDetail.getDeliveryFee()) ? 0L : Long.parseLong(deliveryDetail.getDeliveryFee()));
storeDeliveryInfoDto.setDefaultDeliveryRange(StringUtils.isBlank(deliveryDetail.getDeliveryRange()) ? 0L : Long.parseLong(deliveryDetail.getDeliveryRange()));
storeDeliveryInfoDto.setAddRangeAmount(deliveryDetail.getAddRangeAmount() == null ? 0L : deliveryDetail.getAddRangeAmount().longValue());
storeDeliveryInfoDto.setAddRangeCount(StringUtils.isBlank(deliveryDetail.getAddRange()) ? 0L : Long.parseLong(deliveryDetail.getAddRange()));
storeDeliveryInfoDto.setPoint2DList(getDeliveryPoint2DList(storeResponseDto.getDistributionScope()));
storeDeliveryInfoDto.setDeliveryHoursDay(storeResponseDto.getDeliveryHoursDay());
storeDeliveryInfoDto.setLongitude(storeResponseDto.getLongitude());
storeDeliveryInfoDto.setLatitude(storeResponseDto.getLatitude());
storeDeliveryInfoDto.setScopeConfig(storeResponseDto.getScopeConfig());
if (StringUtils.isNotEmpty(storeResponseDto.getDeliveryRadius())) {
storeDeliveryInfoDto.setDeliveryRadius(Integer.valueOf(storeResponseDto.getDeliveryRadius()));
} else {
storeDeliveryInfoDto.setDeliveryRadius(0);
}
storeDeliveryInfoDto.setDeliveryType("self");
storeDeliveryInfoDto.setPushOrderTime(0);
storeDeliveryInfoDto.setDeliveryCondition(deliveryDetail.getDeliveryType());
storeDeliveryInfoDto.setFreeDeliveryCup(deliveryDetail.getFreeDeliveryCup());
String method = StoreDeliveryMethod.SELF.getCode();
if(deliveryDetail.getDeliveryMethod() != null){
method = deliveryDetail.getDeliveryMethod().toString();
}
String code = StoreDeliveryMethod.getCodeByType(method);
storeDeliveryInfoDto.setDeliveryTypeString(code);
return storeDeliveryInfoDto;
}
/**
* 获取 用户预计送达时间 距离
......@@ -1243,25 +1344,25 @@ public class CheckOrder {
* @param trackingNo
* @return
*/
public String checkDeliveryType(CreateOrderVo createOrderVo, String storeCode, String trackingNo) {
String code = "";
QueryDeliveryRequest request = new QueryDeliveryRequest();
request.setStoreCode(storeCode);
request.setPartnerId(createOrderVo.getPartnerId());
request.setUserLatitude(createOrderVo.getLatitude());
request.setUserLongitude(createOrderVo.getLongitude());
BaseResponse<QueryDeliverDetailResponse> query = storeCenterService.queryDeliverDetail(request, trackingNo);
if (null == query || !ResponseResult.SUCCESS.getCode().equals(query.getCode())) {
throw new ServiceException(ResponseResult.STORE_DDELIVERY_METHOD);
}
String method = query.getData().getDeliveryMethod();
//StoreDeliveryMethod.
code = StoreDeliveryMethod.getCodeByType(method);
if (StringUtils.isBlank(code)) {
throw new ServiceException(ResponseResult.STORE_DDELIVERY_METHOD);
}
return code;
}
// public String checkDeliveryType(CreateOrderVo createOrderVo, String storeCode, String trackingNo) {
// String code = "";
// QueryDeliveryRequest request = new QueryDeliveryRequest();
// request.setStoreCode(storeCode);
// request.setPartnerId(createOrderVo.getPartnerId());
// request.setUserLatitude(createOrderVo.getLatitude());
// request.setUserLongitude(createOrderVo.getLongitude());
// BaseResponse<QueryDeliverDetailResponse> query = storeCenterService.queryDeliverDetail(request, trackingNo);
// if (null == query || !ResponseResult.SUCCESS.getCode().equals(query.getCode())) {
// throw new ServiceException(ResponseResult.STORE_DDELIVERY_METHOD);
// }
// String method = query.getData().getDeliveryMethod();
// //StoreDeliveryMethod.
// code = StoreDeliveryMethod.getCodeByType(method);
// if (StringUtils.isBlank(code)) {
// throw new ServiceException(ResponseResult.STORE_DDELIVERY_METHOD);
// }
// return code;
// }
/**
* fisherman 预定单营业时间校验
......
......@@ -458,7 +458,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
orderExtInfoDto.setFromAppId(userLoginInfoDto.getWxAppId());
orderExtInfoDto.setUnDistribution(requestVo.getUnDistribution());
createPrepayRequestDto.setOrderExtInfoDTO(orderExtInfoDto);
if (StringUtils.isNotBlank(requestVo.getCardCode())) {
if (StringUtils.isNotBlank(requestVo.getCardCode()) || createPrepayRequestDto.getTotalAmount() == 0) {
return ResponseUtil.success(payService.createPrepayOrder(createPrepayRequestDto));
}
......
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