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
97e9ad97
Commit
97e9ad97
authored
Dec 01, 2020
by
邓杰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
配送进程
parent
ec942dc6
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
102 additions
and
12 deletions
+102
-12
order-application-service/src/main/java/cn/freemud/controller/delivery/DeliveryController.java
+1
-1
order-application-service/src/main/java/cn/freemud/entities/dto/delivery/DeliveryStatusAndRiderPositionDto.java
+5
-1
order-application-service/src/main/java/cn/freemud/entities/dto/ecology/DeliveryErrorReminder.java
+2
-2
order-application-service/src/main/java/cn/freemud/entities/dto/ecology/SubscribeMessageRequest.java
+4
-0
order-application-service/src/main/java/cn/freemud/entities/vo/OrderRiderResponseVo.java
+22
-2
order-application-service/src/main/java/cn/freemud/service/delivery/ThirdDeliveryServiceImpl.java
+60
-5
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+8
-1
No files found.
order-application-service/src/main/java/cn/freemud/controller/delivery/DeliveryController.java
View file @
97e9ad97
...
...
@@ -42,7 +42,7 @@ public class DeliveryController {
@ApiOperation
(
value
=
"配送回调"
,
notes
=
"配送回调"
,
produces
=
"application/json"
)
@PostMapping
(
"/delivery/callbackUrl"
)
public
BaseResponse
callbackUrl
(
@Valid
@LogParams
@RequestBody
CallbackUrlRequestDto
request
)
{
return
deliveryService
.
callbackUrl
(
request
);
return
deliveryService
.
callbackUrl
(
request
);
}
@ApiAnnotation
(
logMessage
=
"麦咖啡配送回调"
)
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/delivery/DeliveryStatusAndRiderPositionDto.java
View file @
97e9ad97
...
...
@@ -13,10 +13,14 @@ public class DeliveryStatusAndRiderPositionDto {
*/
private
String
deliveryId
;
/**
* 经纬度
*
骑手
经纬度
*/
private
String
currentPoint
;
/**
* 门店经纬度
*/
private
String
storePoint
;
/**
* 配送状态
*/
private
Integer
devlieryStatus
;
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/ecology/DeliveryErrorReminder.java
View file @
97e9ad97
...
...
@@ -17,9 +17,9 @@ public class DeliveryErrorReminder {
private
String
createTime
;
/**
*
客
户电话
*
商
户电话
*/
private
String
customer
Phone
;
private
String
merchant
Phone
;
/**
* 订单号
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/ecology/SubscribeMessageRequest.java
View file @
97e9ad97
...
...
@@ -18,6 +18,10 @@ public class SubscribeMessageRequest {
* 渠道
*/
private
Integer
channel
;
/**
*
*/
private
String
scene
;
private
DeliveryErrorReminder
deliveryErrorReminder
;
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/OrderRiderResponseVo.java
View file @
97e9ad97
...
...
@@ -17,9 +17,29 @@ public class OrderRiderResponseVo {
*/
private
String
deliveryId
;
/**
*
经纬
度
*
骑手经
度
*/
private
String
currentPoint
;
private
String
riderLongitude
;
/**
* 骑手纬度
*/
private
String
riderLatitude
;
/**
* 用户经度
*/
private
String
userLongitude
;
/**
* 用户纬度
*/
private
String
userLatitude
;
/**
* 门店经度
*/
private
String
shopLongitude
;
/**
* 门店纬度
*/
private
String
shopLatitude
;
/**
* 配送状态
*/
...
...
order-application-service/src/main/java/cn/freemud/service/delivery/ThirdDeliveryServiceImpl.java
View file @
97e9ad97
...
...
@@ -5,6 +5,8 @@ import cn.freemud.amp.service.ProduceMQService;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.entities.dto.delivery.*
;
import
cn.freemud.entities.dto.ecology.DeliveryErrorReminder
;
import
cn.freemud.entities.dto.ecology.OrderDeliveryScene
;
import
cn.freemud.entities.dto.ecology.SubscribeMessageRequest
;
import
cn.freemud.entities.dto.pos.PosBaseRequestDto
;
import
cn.freemud.entities.vo.delivery.DeliveryAmountVo
;
...
...
@@ -21,17 +23,24 @@ import cn.freemud.service.ThirdDeliveryService;
import
cn.freemud.service.thirdparty.DeliveryFeiginClient
;
import
cn.freemud.service.thirdparty.EcologyAdminApplicationClient
;
import
cn.freemud.service.thirdparty.PosClient
;
import
cn.freemud.utils.DateTimeUtil
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.freemud.application.sdk.api.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CancelDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.DeliveryInfoDto
;
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.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCollectReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
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.application.sdk.api.structure.request.PushMessageNoticeDto
;
import
com.freemud.application.sdk.api.structure.service.MessageCenterClient
;
import
com.freemud.sdk.api.assortment.order.request.order.AssortmentUpdateDeliveryAbnormalRequest
;
...
...
@@ -50,6 +59,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -90,6 +101,8 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
private
String
deliveryMicroMessagePartner
;
@Autowired
private
EcologyAdminApplicationClient
ecologyAdminApplicationClient
;
@Autowired
private
StoreCenterService
storeCenterService
;
@Override
public
BaseResponse
callbackUrl
(
CallbackUrlRequestDto
request
)
{
...
...
@@ -134,11 +147,9 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
posBaseRequestDto
.
setDelivery_status
(
DeliveryStatus
.
ALLOTRIDER
.
getCode
());
posBaseRequestDto
.
setPartner_id
(
partnerId
);
sendPosService
(
deliveryStatus
,
posBaseRequestDto
);
sendMicroMessage
(
partnerId
,
request
.
getOrderId
());
}
else
if
(
deliveryStatus
==
DeliveryStatus
.
RIDERGETMEAL
.
getCode
()
||
deliveryStatus
==
DeliveryStatus
.
RIDERSTARTDELIVERY
.
getCode
())
{
// 订单配送
sendPosService
(
deliveryStatus
,
posBaseRequestDto
);
sendMicroMessage
(
partnerId
,
request
.
getOrderId
());
}
else
if
(
deliveryStatus
==
DeliveryStatus
.
DELIVERYARRIVED
.
getCode
())
{
// 订单已完成
sendPosService
(
deliveryStatus
,
posBaseRequestDto
);
...
...
@@ -150,8 +161,6 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
sendPosDeliveryStatus
=
81
;
}
sendPosMessage
(
partnerId
,
storeCode
,
request
.
getOrderId
(),
sendPosDeliveryStatus
,
request
.
getRemark
());
sendMicroMessage
(
partnerId
,
request
.
getOrderId
());
// 取消外卖中台配送单 订单异常
// 如果 "配送单异常并且顾客更改配送地址" 不取消配送单
if
(!
isDeliveryAbnormalAndCustomerChangedAddress
(
request
))
{
...
...
@@ -168,6 +177,8 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
produceMQService
.
sendOfDeliveryInfo
(
request
);
produceMQService
.
sendRocketMqOfDeliveryInfo
(
request
);
}
//配送订阅消息
sendMicroMessage
(
partnerId
,
request
.
getOrderId
(),
deliveryStatus
);
// else {
// return ResponseUtil.error(ResponseResult.SYSTEM_ERROR.getCode(), "订单回调状态有误");
...
...
@@ -370,7 +381,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
/**
* 配送消息推送
*/
public
void
sendMicroMessage
(
String
partnerId
,
String
orderId
){
public
void
sendMicroMessage
(
String
partnerId
,
String
orderId
,
int
deliveryStatus
){
//如果商户配置了配送订阅消息推送
if
(
deliveryMicroMessagePartner
.
contains
(
partnerId
)){
try
{
...
...
@@ -380,6 +391,50 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
SubscribeMessageRequest
request
=
new
SubscribeMessageRequest
();
OrderExtInfoDto
extInfoDto
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
new
TypeReference
<
OrderExtInfoDto
>()
{});
request
.
setMiniAppId
(
extInfoDto
.
getAppid
());
List
<
String
>
userList
=
new
ArrayList
<>();
userList
.
add
(
extInfoDto
.
getOpenid
());
request
.
setOpenIdList
(
userList
);
request
.
setScene
(
"scene_delivery"
);
//默认微信
request
.
setChannel
(
1
);
//支付宝
if
(
"3"
.
equals
(
orderBean
.
getOrderClient
())){
request
.
setChannel
(
2
);
}
//配送订阅模板消息
if
(
deliveryStatus
==
DeliveryStatus
.
ALLOTRIDER
.
getCode
()){
request
.
setMessageEventType
(
"ORDER_DELIVERY"
);
OrderDeliveryScene
orderDeliveryScene
=
new
OrderDeliveryScene
();
orderDeliveryScene
.
setAddress
(
orderBean
.
getAddress
());
Long
createTime
=
orderBean
.
getGmtCreate
();
// 获取门店信息
StoreInfoRequest
storeInfoRequest
=
new
StoreInfoRequest
(
partnerId
,
orderBean
.
getShopId
(),
null
);
StoreResponse
storeResponse
=
storeCenterService
.
getStoreInfo
(
storeInfoRequest
,
LogThreadLocal
.
getTrackingNo
());
//立即单外卖
if
(
OrderType
.
GENERAL_EXPRESS
.
getIndex
().
equals
(
orderBean
.
getNewOrderType
()))
{
if
(
storeResponse
!=
null
&&
storeResponse
.
getBizVO
()
!=
null
&&
storeResponse
.
getBizVO
().
getServiceTime
()
!=
null
){
createTime
=
createTime
+
storeResponse
.
getBizVO
().
getServiceTime
()*
1000
*
60
;
orderDeliveryScene
.
setEstimateArrivalTime
(
DateTimeUtil
.
timeStampToTime
(
createTime
));
}
}
//预约单外卖
if
(
OrderType
.
RESERVED_EXPRESS
.
getIndex
().
equals
(
orderBean
.
getNewOrderType
())&&
orderBean
.
getGmtExpect
()!=
null
){
orderDeliveryScene
.
setEstimateArrivalTime
(
DateTimeUtil
.
timeStampToTime
(
orderBean
.
getGmtExpect
()));
}
orderDeliveryScene
.
setMerchantPhone
(
storeResponse
.
getBizVO
().
getPhone
());
orderDeliveryScene
.
setOrderNo
(
orderId
);
}
//配送异常模板消息
if
(
deliveryStatus
==
DeliveryStatus
.
DELIVERYCANCEL
.
getCode
()
||
deliveryStatus
==
DeliveryStatus
.
DELIVERYERROR
.
getCode
()){
request
.
setMessageEventType
(
"DELIVERY_ERROR_REMINDER"
);
DeliveryErrorReminder
deliveryErrorReminder
=
new
DeliveryErrorReminder
();
deliveryErrorReminder
.
setCreateTime
(
DateTimeUtil
.
timeStampToTime
(
orderBean
.
getGmtCreate
()));
deliveryErrorReminder
.
setOrderId
(
orderId
);
deliveryErrorReminder
.
setMerchantPhone
(
orderBean
.
getShopPhone
());
deliveryErrorReminder
.
setAddress
(
orderBean
.
getAddress
());
deliveryErrorReminder
.
setRemark
(
"订单配送异常,请电话联系门店确认哦"
);
}
ecologyAdminApplicationClient
.
subscribeMessage
(
request
);
}
catch
(
Exception
e
){
log
.
error
(
"配送订阅消息推送失败:{},失败原因:{}"
,
orderId
,
e
.
getMessage
());
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
97e9ad97
...
...
@@ -1131,7 +1131,14 @@ public class OrderServiceImpl implements Orderservice {
});
responseVo
.
setOperationList
(
operationList
);
responseVo
.
setOrderId
(
deliveryBaseResponse
.
getData
().
getDeliveryId
());
responseVo
.
setCurrentPoint
(
deliveryBaseResponse
.
getData
().
getCurrentPoint
());
String
currentPoint
[]
=
deliveryBaseResponse
.
getData
().
getCurrentPoint
().
split
(
","
);
String
storePoint
[]
=
deliveryBaseResponse
.
getData
().
getStorePoint
().
split
(
","
);
responseVo
.
setRiderLongitude
(
currentPoint
[
0
]);
responseVo
.
setRiderLatitude
(
currentPoint
[
1
]);
responseVo
.
setUserLongitude
(
String
.
valueOf
(
orderBean
.
getLongitude
()));
responseVo
.
setUserLatitude
(
String
.
valueOf
(
orderBean
.
getLatitude
()));
responseVo
.
setShopLongitude
(
storePoint
[
0
]);
responseVo
.
setShopLatitude
(
storePoint
[
1
]);
responseVo
.
setDistance
(
deliveryBaseResponse
.
getData
().
getDistance
());
responseVo
.
setDeliveryId
(
deliveryBaseResponse
.
getData
().
getDeliveryId
());
responseVo
.
setDevlieryStatus
(
deliveryBaseResponse
.
getData
().
getDevlieryStatus
());
...
...
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