Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
a6f626d8
Commit
a6f626d8
authored
Nov 22, 2021
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
门店配送信息接口合并到门店综合查询接口
parent
8f180ef7
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
251 additions
and
105 deletions
+251
-105
order-application-service/src/main/java/cn/freemud/entities/bo/CreateOrderBONew.java
+7
-0
order-application-service/src/main/java/cn/freemud/entities/dto/StoreDeliveryInfoDto.java
+4
-0
order-application-service/src/main/java/cn/freemud/entities/dto/UserDeliveryInfoDto.java
+3
-1
order-application-service/src/main/java/cn/freemud/entities/dto/store/DeliveryInfoDTO.java
+38
-3
order-application-service/src/main/java/cn/freemud/service/impl/CheckMallOrder.java
+0
-3
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+199
-98
No files found.
order-application-service/src/main/java/cn/freemud/entities/bo/CreateOrderBONew.java
View file @
a6f626d8
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
()
{
}
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/StoreDeliveryInfoDto.java
View file @
a6f626d8
...
...
@@ -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
;
/**
* 预订单自定义推单时间
*/
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/UserDeliveryInfoDto.java
View file @
a6f626d8
...
...
@@ -52,13 +52,15 @@ public class UserDeliveryInfoDto {
@Deprecated
private
Long
realDeliveryAmount
;
/**
* 起送费单位分
* 起送费单位分
(门店配送信息字段)
*/
@Deprecated
private
Long
deliveryLimitAmount
;
/**
* 门店配送信息
*/
@Deprecated
private
StoreDeliveryInfoDto
storeDeliveryInfoDto
;
/**
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/store/DeliveryInfoDTO.java
View file @
a6f626d8
...
...
@@ -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
;
}
order-application-service/src/main/java/cn/freemud/service/impl/CheckMallOrder.java
View file @
a6f626d8
...
...
@@ -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
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
a6f626d8
...
...
@@ -428,27 +428,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
<
storeDeliveryInfoDt
o
.
getFreeDeliveryCup
())
{
if
(
sum
<
deliveryInf
o
.
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
();
...
...
@@ -462,9 +462,9 @@ public class CheckOrder {
}
}
storeDeliveryInfoDto
.
setEnableTakeaway
(
true
);
//
storeDeliveryInfoDto.setEnableTakeaway(true);
// 校验收货地址是否可配送 fisherman -> 获取门店预计送达时间
checkReceiveAddress
(
storeDeliveryInfoDto
,
createOrderVo
,
storeResponseDto
.
getStoreCode
()
);
builderUserDeliveryInfoDto
(
createOrderBO
,
deliveryInfo
);
}
return
pushOrderTime
;
}
...
...
@@ -959,77 +959,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
;
}
/**
* 获取配送范围内集合
...
...
@@ -1058,27 +1060,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
,
storeDeliveryInfoDt
o
.
getPartnerId
());
QueryReceiveAddressRequest
request
=
new
QueryReceiveAddressRequest
(
receiveId
,
createOrderV
o
.
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);
// }
...
...
@@ -1086,8 +1148,8 @@ public class CheckOrder {
/**
* @see StoreDeliveryMethod
*/
String
deliveryType
Code
=
this
.
checkDeliveryType
(
createOrderVo
,
storeCode
,
trackingNo
);
userDeliveryInfoDto
.
getStoreDeliveryInfoDto
().
setDeliveryType
(
deliveryType
Code
);
String
deliveryType
String
=
storeDeliveryInfoDto
.
getDeliveryTypeString
(
);
userDeliveryInfoDto
.
getStoreDeliveryInfoDto
().
setDeliveryType
(
deliveryType
String
);
// 【ID1030916】订单查询门店获取预计送达时间 并且不是预约单
if
(
StringUtils
.
isEmpty
(
createOrderVo
.
getExpectTime
())
...
...
@@ -1109,7 +1171,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
;
}
/**
* 获取 用户预计送达时间 距离
...
...
@@ -1235,25 +1336,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 预定单营业时间校验
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment