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
6983d0d5
Commit
6983d0d5
authored
Aug 08, 2020
by
huiyang.chen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macafe 订单查询
parent
4e2cad1a
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
483 additions
and
75 deletions
+483
-75
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+13
-0
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+20
-3
order-application-service/src/main/java/cn/freemud/entities/vo/MaCafeQueryOrderVo.java
+58
-0
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderResponseVo.java
+4
-0
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderVo.java
+1
-1
order-application-service/src/main/java/cn/freemud/enums/QueryOrderStatus.java
+2
-1
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+4
-2
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
+3
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+120
-2
order-application-service/src/main/java/cn/freemud/utils/DateUtils.java
+29
-0
order-management/src/main/java/cn/freemud/management/adapter/McCafeCouponAdapter.java
+70
-26
order-management/src/main/java/cn/freemud/management/entities/dto/request/coupon/MCCafeCouponRequest.java
+1
-1
order-management/src/main/java/cn/freemud/management/entities/dto/request/delivery/DeliveryOrderHaltedRequest.java
+14
-0
order-management/src/main/java/cn/freemud/management/service/OrderManagerService.java
+2
-2
order-management/src/main/java/cn/freemud/management/service/handle/CouponHandle.java
+74
-0
order-management/src/main/java/cn/freemud/management/service/handle/DeliveryHandle.java
+27
-0
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+11
-33
order-management/src/main/java/cn/freemud/management/service/impl/WaimaiOrderMangerServiceImpl.java
+10
-0
order-management/src/main/java/cn/freemud/management/thirdparty/CouponOfflineMCCafeClient.java
+4
-4
order-management/src/main/java/cn/freemud/management/thirdparty/DeliveryMCCafeClient.java
+16
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
6983d0d5
...
@@ -105,6 +105,10 @@ public class OrderAdapter {
...
@@ -105,6 +105,10 @@ public class OrderAdapter {
private
String
backOrdersChangeOrderStatusConsumerQueue
;
private
String
backOrdersChangeOrderStatusConsumerQueue
;
@Value
(
"${program.backorders_notify_activity_exchange}"
)
@Value
(
"${program.backorders_notify_activity_exchange}"
)
private
String
backOrdersNotifyActivityExchange
;
private
String
backOrdersNotifyActivityExchange
;
@Value
(
"${macafe.waimai.tag}"
)
private
String
maCafeWaimaiTag
;
@Value
(
"${macafe.pick.tag}"
)
private
String
maCafePickTag
;
@Autowired
@Autowired
private
ShoppingCartAdapter
shoppingCartAdapter
;
private
ShoppingCartAdapter
shoppingCartAdapter
;
@Autowired
@Autowired
...
@@ -791,6 +795,9 @@ public class OrderAdapter {
...
@@ -791,6 +795,9 @@ public class OrderAdapter {
if
(
QueryOrderStatus
.
NO_PAY
.
getCode
().
equals
(
queryOrderDto
.
getQueryOrderStatus
()))
{
if
(
QueryOrderStatus
.
NO_PAY
.
getCode
().
equals
(
queryOrderDto
.
getQueryOrderStatus
()))
{
queryOrdersDto
.
setPayStatus
(
new
Integer
[]{
PayStatus
.
NOT_PAY
.
getCode
()});
queryOrdersDto
.
setPayStatus
(
new
Integer
[]{
PayStatus
.
NOT_PAY
.
getCode
()});
}
}
if
(
QueryOrderStatus
.
ORDER_CANCEL
.
getCode
().
equals
(
queryOrderDto
.
getQueryOrderStatus
()))
{
queryOrdersDto
.
setStatus
(
new
Integer
[]{
OrderStatus
.
CALCEL
.
getCode
()});
}
}
}
// 兼容历史版本,如果传参是4 查询拆程4和5
// 兼容历史版本,如果传参是4 查询拆程4和5
...
@@ -892,6 +899,12 @@ public class OrderAdapter {
...
@@ -892,6 +899,12 @@ public class OrderAdapter {
responseVo
.
setTakeOut
(
0
);
responseVo
.
setTakeOut
(
0
);
responseVo
.
setTakeOutDesc
(
""
);
responseVo
.
setTakeOutDesc
(
""
);
}
}
//配置麦咖啡文案
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
ordersBean
.
getType
())){
responseVo
.
setMcCafeOrderTag
(
maCafeWaimaiTag
);
}
else
{
responseVo
.
setMcCafeOrderTag
(
maCafePickTag
);
}
responseVo
.
setTableNumber
(
ordersBean
.
getBarCounter
());
responseVo
.
setTableNumber
(
ordersBean
.
getBarCounter
());
responseVo
.
setPayStatus
(
ordersBean
.
getPayStatus
());
responseVo
.
setPayStatus
(
ordersBean
.
getPayStatus
());
responseVo
.
setPayStatusDesc
(
Optional
.
ofNullable
(
PayStatus
.
getByCode
(
ordersBean
.
getPayStatus
()))
responseVo
.
setPayStatusDesc
(
Optional
.
ofNullable
(
PayStatus
.
getByCode
(
ordersBean
.
getPayStatus
()))
...
...
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
6983d0d5
...
@@ -15,17 +15,15 @@ package cn.freemud.controller;
...
@@ -15,17 +15,15 @@ package cn.freemud.controller;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.EmptyTableNumberVo
;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
cn.freemud.monitorcenter.tools.HealthUtil
;
import
cn.freemud.monitorcenter.tools.HealthUtil
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.Orderservice
;
import
cn.freemud.service.Orderservice
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.service.impl.MallOrderServiceImpl
;
import
cn.freemud.service.impl.MallOrderServiceImpl
;
import
cn.freemud.utils.ResponseUtil
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -130,6 +128,15 @@ public class OrderController {
...
@@ -130,6 +128,15 @@ public class OrderController {
}
}
/**
/**
* 查询麦咖啡订单列表
*/
@ApiAnnotation
(
logMessage
=
"maCafeQueryOrders"
)
@PostMapping
(
"/maCafeQueryOrders"
)
public
BaseResponse
maCafeQueryOrders
(
@Validated
@LogParams
@RequestBody
QueryOrderVo
queryOrderVo
)
{
return
orderservice
.
queryOrders
(
queryOrderVo
);
}
/**
* 围餐-预览订单
* 围餐-预览订单
* @param queryOrderVo
* @param queryOrderVo
* @return
* @return
...
@@ -172,6 +179,16 @@ public class OrderController {
...
@@ -172,6 +179,16 @@ public class OrderController {
return
orderservice
.
queryOrderById
(
queryOrderVo
.
getOperation
(),
queryOrderVo
.
getSessionId
(),
queryOrderVo
.
getOid
(),
queryOrderVo
.
getPartnerId
(),
queryOrderVo
.
getChannelType
());
return
orderservice
.
queryOrderById
(
queryOrderVo
.
getOperation
(),
queryOrderVo
.
getSessionId
(),
queryOrderVo
.
getOid
(),
queryOrderVo
.
getPartnerId
(),
queryOrderVo
.
getChannelType
());
}
}
/**
* 麦咖啡 获取订单详情
*/
@ApiAnnotation
(
logMessage
=
"mcCafeQueryOrderById"
)
@PostMapping
(
"/mcCafeQueryOrderById"
)
public
BaseResponse
mcCafeQueryOrderById
(
@Validated
@LogParams
@RequestBody
MaCafeQueryOrderVo
queryOrderVo
)
{
return
orderservice
.
mcCafeQueryOrderById
(
queryOrderVo
);
}
/**
/**
* 取消支付删除订单
* 取消支付删除订单
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/MaCafeQueryOrderVo.java
0 → 100644
View file @
6983d0d5
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: QueryOrderVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: liming.guo
* @date: 2018/5/22 17:35
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
@Data
public
class
MaCafeQueryOrderVo
{
@NotEmpty
(
message
=
"sessionId 不能为空"
)
private
String
sessionId
;
/**
* 商户ID
*/
private
String
partnerId
;
/**
* 订单ID
*/
private
String
oid
;
/**
* 订单状态 enum queryOrderStatus 全部订单 1 待取餐 2 已完成 3 全部 4.退款,5 待支付 ,6 已取消
*/
private
Integer
queryOrderStatus
;
/**
* 查询订单状态 1 外卖 4 门店自提
*/
private
Integer
queryOrderType
;
/**
* 每页显示几条数据
*/
private
Integer
pageSize
;
/**
* 第几页
*/
private
Integer
pageNumber
;
private
String
startDate
;
private
String
endDate
;
/**
* 渠道信息 saas; img; iwc; saasmall
*/
private
String
channelType
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderResponseVo.java
View file @
6983d0d5
...
@@ -205,6 +205,10 @@ public class QueryOrderResponseVo {
...
@@ -205,6 +205,10 @@ public class QueryOrderResponseVo {
* 退款文案提示 若48小时后商家未处理,自动同意/拒绝退款
* 退款文案提示 若48小时后商家未处理,自动同意/拒绝退款
*/
*/
private
String
refundTips
;
private
String
refundTips
;
/*
* 麦咖啡 外卖单或者自提单文案提示
*/
private
String
mcCafeOrderTag
;
/**
/**
* 退款单
* 退款单
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderVo.java
View file @
6983d0d5
...
@@ -34,7 +34,7 @@ public class QueryOrderVo {
...
@@ -34,7 +34,7 @@ public class QueryOrderVo {
*/
*/
private
String
oid
;
private
String
oid
;
/**
/**
* 订单状态 enum queryOrderStatus 全部订单 1 待取餐 2 已完成 3 全部 4.退款,5 待支付
* 订单状态 enum queryOrderStatus 全部订单 1 待取餐 2 已完成 3 全部 4.退款,5 待支付
,6 已取消
*/
*/
private
Integer
queryOrderStatus
;
private
Integer
queryOrderStatus
;
/**
/**
...
...
order-application-service/src/main/java/cn/freemud/enums/QueryOrderStatus.java
View file @
6983d0d5
...
@@ -19,7 +19,8 @@ public enum QueryOrderStatus {
...
@@ -19,7 +19,8 @@ public enum QueryOrderStatus {
FINISH
(
2
,
"已完成"
),
FINISH
(
2
,
"已完成"
),
ALL_BILL
(
3
,
"全部"
),
ALL_BILL
(
3
,
"全部"
),
REFUND_BILL
(
4
,
"退款"
),
REFUND_BILL
(
4
,
"退款"
),
NO_PAY
(
5
,
"待支付"
);
NO_PAY
(
5
,
"待支付"
),
ORDER_CANCEL
(
6
,
"已取消"
);
private
Integer
code
;
private
Integer
code
;
...
...
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
6983d0d5
...
@@ -186,6 +186,10 @@ public enum ResponseResult {
...
@@ -186,6 +186,10 @@ public enum ResponseResult {
*/
*/
DELIVERY_QUERY_ERROR
(
"50024"
,
"查询配送单失败"
),
DELIVERY_QUERY_ERROR
(
"50024"
,
"查询配送单失败"
),
DELIVERY_CANCEL_ORDER_ERROR
(
"53012"
,
"取消配送单失败"
),
DELIVERY_CANCEL_ORDER_ERROR
(
"53012"
,
"取消配送单失败"
),
DELIVERY_REMINDER_ORDER_ERROR
(
"53013"
,
"订单状态不是配送中,不能催单"
),
DELIVERY_QUERY_RIDER_STATUS_ERROR
(
"53014"
,
"订单状态不是配送中,不能查询骑手位置"
),
DELIVERY_REMINDER_ERROR
(
"53015"
,
"催单失败"
),
DELIVERY_QUERY_RIDER_ERROR
(
"53016"
,
"查询骑手位置失败"
),
/**
/**
* 配送信息
* 配送信息
...
@@ -193,8 +197,6 @@ public enum ResponseResult {
...
@@ -193,8 +197,6 @@ public enum ResponseResult {
DELIVERY_INFO_NOT_DELIVERY
(
"60001"
,
"当前地址不可配送"
),
DELIVERY_INFO_NOT_DELIVERY
(
"60001"
,
"当前地址不可配送"
),
DELIVERY_INFO_ERROR
(
"60002"
,
"配送地址不正确"
),
DELIVERY_INFO_ERROR
(
"60002"
,
"配送地址不正确"
),
DELIVERY_CREATE_ERROR
(
"60003"
,
"运单不足,配送失败"
),
DELIVERY_CREATE_ERROR
(
"60003"
,
"运单不足,配送失败"
),
DELIVERY_REMINDER_ERROR
(
"60004"
,
"催单失败"
),
DELIVERY_QUERY_RIDER_ERROR
(
"60005"
,
"查询骑手位置失败"
),
;
;
...
...
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
View file @
6983d0d5
...
@@ -120,4 +120,7 @@ public interface Orderservice {
...
@@ -120,4 +120,7 @@ public interface Orderservice {
BaseResponse
reminder
(
ReminderVo
reminderVo
);
BaseResponse
reminder
(
ReminderVo
reminderVo
);
BaseResponse
listFreeRider
(
FreeRiderPositionVo
vo
);
BaseResponse
listFreeRider
(
FreeRiderPositionVo
vo
);
BaseResponse
mcCafeQueryOrderById
(
MaCafeQueryOrderVo
queryOrderVo
);
}
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
6983d0d5
...
@@ -172,6 +172,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -172,6 +172,7 @@ public class OrderServiceImpl implements Orderservice {
@Value
(
"${mq.cloud_print_exchange}"
)
@Value
(
"${mq.cloud_print_exchange}"
)
private
String
cloud_print_exchange
;
private
String
cloud_print_exchange
;
@Autowired
@Autowired
private
AssortmentCloudPrinterManager
cloudPrinterManager
;
private
AssortmentCloudPrinterManager
cloudPrinterManager
;
// @Autowired
// @Autowired
...
@@ -1012,6 +1013,98 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -1012,6 +1013,98 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
success
(
queryOrderResponseVo
);
return
ResponseUtil
.
success
(
queryOrderResponseVo
);
}
}
/**
* 麦咖啡查询订单详情
*
* @param queryOrderVo
* @return
*/
@Override
public
BaseResponse
mcCafeQueryOrderById
(
MaCafeQueryOrderVo
queryOrderVo
)
{
AssortmentCustomerInfoVo
userInfo
=
customerInfoManager
.
getCustomerInfoByObject
(
queryOrderVo
.
getSessionId
());
if
(
userInfo
==
null
||
StringUtils
.
isEmpty
(
userInfo
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
String
oid
=
queryOrderVo
.
getOid
();
if
(
StringUtils
.
isBlank
(
oid
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"oid不能为空"
);
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
oid
);
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
String
storeId
=
orderBean
.
getShopId
();
StoreInfoRequest
request
=
new
StoreInfoRequest
();
request
.
setPartnerId
(
queryOrderVo
.
getPartnerId
());
request
.
setStoreCode
(
storeId
);
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
request
,
LogTreadLocal
.
getTrackingNo
());
if
(
storeInfo
!=
null
&&
storeInfo
.
getBizVO
()
!=
null
)
{
StoreResponse
.
BizVO
storeResponseDto
=
storeInfo
.
getBizVO
();
orderBean
.
setShopAddress
(
storeResponseDto
.
getAddress
());
orderBean
.
setShopPhone
(
storeResponseDto
.
getPhone
());
orderBean
.
setShopImageUrl
(
storeResponseDto
.
getLogoUrl
());
//默认骑手头像显示为门店首页图片
orderBean
.
setRiderPhoto
(
storeResponseDto
.
getLogoUrl
());
orderBean
.
setShopPhone
(
storeResponseDto
.
getPhone
());
orderBean
.
setLatitude
(
Double
.
valueOf
(
storeResponseDto
.
getLatitude
()));
orderBean
.
setLongitude
(
Double
.
valueOf
(
storeResponseDto
.
getLongitude
()));
}
BaseQueryOrderRequest
var1
=
new
BaseQueryOrderRequest
();
var1
.
setOrderId
(
orderBean
.
getOid
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
queryOrderQueueIndex
(
var1
);
QueryOrderQueueIndexResponse
response1
=
new
QueryOrderQueueIndexResponse
();
response1
.
setErrcode
(
baseOrderResponse
.
getErrcode
());
response1
.
setErrmsg
(
baseOrderResponse
.
getErrmsg
());
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
response1
.
getErrcode
()))
{
String
queueIndex
=
response1
.
getData
()
==
null
?
""
:
response1
.
getData
().
toString
();
orderBean
.
setQueueIndex
(
queueIndex
);
}
// 获取订单运单号,如果有运单则是第三方外卖单
if
(
orderBean
.
getAddInfo
()
!=
null
&&
StringUtils
.
isNotEmpty
(
orderBean
.
getAddInfo
().
getDeliveryId
()))
{
hasThirdDelivery
(
orderBean
);
}
// 查询订单的操作状态
OrderStatusTrackingInfoResponse
statusTrackingInfoByOid
=
orderCenterSdkService
.
getOrderStatusTrackingInfoByOid
(
var1
);
String
string2
=
JSONObject
.
toJSONString
(
statusTrackingInfoByOid
);
JSONObject
jsonObject2
=
JSONObject
.
parseObject
(
string2
);
OrderStatusTrackingInfoDto
orderStatusTrackingInfoByOid
=
jsonObject2
.
toJavaObject
(
OrderStatusTrackingInfoDto
.
class
);
if
(
RESPONSE_SUCCESS_CODE
.
equals
(
orderStatusTrackingInfoByOid
.
getErrcode
()))
{
orderStatusTracking
(
orderBean
,
orderStatusTrackingInfoByOid
);
}
List
<
QueryOrderResponseVo
>
queryOrderResponseVos
=
orderAdapter
.
convent2QueryOrderResponseVos
(
Collections
.
singletonList
(
orderBean
),
userInfo
.
getWxAppId
(),
userInfo
.
getIappId
());
if
(
CollectionUtils
.
isEmpty
(
queryOrderResponseVos
))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrderResponseVo
queryOrderResponseVo
=
queryOrderResponseVos
.
get
(
0
);
/*if (queryOrderResponseVo.getTakeMealType() == 1) {
//麦咖啡预单重新封装取餐时间
queryOrderResponseVo.setTakeMealTime();
}*/
//48小时自动退款描述
if
(
storeInfo
!=
null
&&
storeInfo
.
getBizVO
()
!=
null
&&
storeInfo
.
getBizVO
().
getStoreConfig
()!=
null
&&
queryOrderResponseVo
.
getRefundStatus
()
!=
null
&&
queryOrderResponseVo
.
getRefundStatus
()
==
1
)
{
Integer
automaticRefund
=
storeInfo
.
getBizVO
().
getStoreConfig
().
getAutomaticRefund
();
if
(
automaticRefund
!=
null
&&
automaticRefund
==
1
){
queryOrderResponseVo
.
setRefundTips
(
"若48小时后商家未处理,自动同意"
);
}
else
{
queryOrderResponseVo
.
setRefundTips
(
"若48小时后商家未处理,拒绝退款"
);
}
}
return
ResponseUtil
.
success
(
queryOrderResponseVo
);
}
/**
/**
* 如果有第三方配送,返回值添加第三方配送信息
* 如果有第三方配送,返回值添加第三方配送信息
*/
*/
...
@@ -2483,6 +2576,19 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2483,6 +2576,19 @@ public class OrderServiceImpl implements Orderservice {
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
reminderVo
.
getOid
());
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
//判断订单状态
if
(!
cn
.
freemud
.
management
.
enums
.
OrderStatus
.
DISTRIBUTION
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_REMINDER_ORDER_ERROR
);
}
//调用配送服务进行催单
//调用配送服务进行催单
OrderRemindRequestDto
dto
=
new
OrderRemindRequestDto
();
OrderRemindRequestDto
dto
=
new
OrderRemindRequestDto
();
dto
.
setOrderKey
(
reminderVo
.
getOid
());
dto
.
setOrderKey
(
reminderVo
.
getOid
());
...
@@ -2505,11 +2611,23 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2505,11 +2611,23 @@ public class OrderServiceImpl implements Orderservice {
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
vo
.
getOid
());
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
//判断订单状态
if
(!
cn
.
freemud
.
management
.
enums
.
OrderStatus
.
DISTRIBUTION
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_QUERY_RIDER_STATUS_ERROR
);
}
QueryLocusRiderTrackDto
dto
=
new
QueryLocusRiderTrackDto
();
QueryLocusRiderTrackDto
dto
=
new
QueryLocusRiderTrackDto
();
dto
.
setDeliveryChannel
(
"CanDao"
);
dto
.
setDeliveryChannel
(
"CanDao"
);
dto
.
setOrderId
(
vo
.
getOid
());
dto
.
setOrderId
(
vo
.
getOid
());
BaseResponse
<
ResRiderTrackDto
>
response
=
deliveryFeiginClient
.
listFreeRider
(
dto
);
BaseResponse
<
ResRiderTrackDto
>
response
s
=
deliveryFeiginClient
.
listFreeRider
(
dto
);
if
(
response
==
null
||
RESPONSE_SUCCESS_CODE
!=
Integer
.
valueOf
(
response
.
getCode
())
||
response
.
getResult
()
==
null
)
{
if
(
response
s
==
null
||
RESPONSE_SUCCESS_CODE
!=
Integer
.
valueOf
(
responses
.
getCode
())
||
responses
.
getResult
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_QUERY_RIDER_ERROR
);
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_QUERY_RIDER_ERROR
);
}
}
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
...
...
order-application-service/src/main/java/cn/freemud/utils/DateUtils.java
0 → 100644
View file @
6983d0d5
package
cn
.
freemud
.
utils
;
import
java.util.Calendar
;
import
java.util.Date
;
public
class
DateUtils
{
/**
* 对传入的时间翻译星期
* @param date
* @return
*/
public
String
getDayWeek
(
Date
date
){
if
(
date
==
null
){
return
null
;
}
String
[]
week
={
"周一"
,
"周二"
,
"周三"
,
"周四"
,
"周五"
,
"周六"
,
"周日"
};
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
int
w
=
calendar
.
get
(
Calendar
.
DAY_OF_WEEK
)
-
1
;
if
(
w
<
0
){
w
=
0
;
}
return
week
[
w
];
}
}
order-management/src/main/java/cn/freemud/management/adapter/McCafeCouponAdapter.java
View file @
6983d0d5
package
cn
.
freemud
.
management
.
adapter
;
package
cn
.
freemud
.
management
.
adapter
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeConponRequest
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeCouponRequest
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeProductRedeemVo
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeProductRedeemVo
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeTransactionVo
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeTransactionVo
;
import
cn.freemud.management.enums.ActivityTypeEnum
;
import
cn.freemud.management.enums.ActivityTypeEnum
;
import
cn.freemud.management.enums.CouponReqTypeEnum
;
import
cn.freemud.management.enums.CouponReqTypeEnum
;
import
cn.freemud.management.enums.MCCafeChannelEnum
;
import
cn.freemud.management.enums.MCCafeChannelEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.OrderSourceType
;
import
com.freemud.sdk.api.assortment.order.enums.OrderSourceType
;
import
com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.request.order.CreateOrderAccountRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
...
@@ -18,32 +21,37 @@ import org.springframework.stereotype.Component;
...
@@ -18,32 +21,37 @@ import org.springframework.stereotype.Component;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Component
@Component
public
class
McCafeCouponAdapter
{
public
class
McCafeCouponAdapter
{
public
MCCafeConponRequest
convertOrderBean2CouponLockRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
public
List
<
MCCafeCouponRequest
>
convertOrderBean2CouponLockRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
orderBean
.
getAccountList
()))
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
orderBean
.
getAccountList
()))
{
return
null
;
return
null
;
}
}
Optional
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
>
accountRequest
=
orderBean
.
getAccountList
().
stream
().
filter
(
account
->
getQueryOrderAccountType
(
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
COUPON
)
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
>
accountList
=
orderBean
.
getAccountList
().
stream
().
filter
(
account
->
(
getQueryOrderAccountType
(
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
COUPON
)
||
getQueryOrderAccountType
(
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
getQueryOrderAccountType
(
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
getQueryOrderAccountType
(
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
))
.
findFirst
(
);
||
getQueryOrderAccountType
(
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
))
&&
account
.
getPrice
()
!=
0
l
).
collect
(
Collectors
.
toList
()
);
if
(
!
accountRequest
.
isPresent
()
||
accountRequest
.
get
().
getPrice
()
==
0
)
{
if
(
CollectionUtils
.
isEmpty
(
accountList
)
)
{
return
null
;
return
null
;
}
}
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
accountBean
=
accountRequest
.
get
();
List
<
MCCafeCouponRequest
>
list
=
new
ArrayList
<>();
accountList
.
forEach
(
accountBean
->
list
.
add
(
convert2MCCafeCouponRequest
(
orderBean
,
accountBean
)));
return
list
;
}
public
MCCafeCouponRequest
convert2MCCafeCouponRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
accountBean
)
{
List
<
MCCafeProductRedeemVo
>
products
=
new
ArrayList
<>();
List
<
MCCafeProductRedeemVo
>
products
=
new
ArrayList
<>();
//商品券核销核销参数
//商品券核销核销参数
if
(
QueryOrderAccountType
.
PRODUCT_COUPON
.
equals
(
getQueryOrderAccountType
(
getOrderAccountType
(
accountBean
.
getType
())
)))
{
if
(
QueryOrderAccountType
.
PRODUCT_COUPON
.
equals
(
accountBean
.
getType
(
)))
{
for
(
int
i
=
0
;
i
<
orderBean
.
getProductList
().
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
orderBean
.
getProductList
().
size
();
i
++)
{
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
productBean
=
orderBean
.
getProductList
().
get
(
i
);
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
productBean
=
orderBean
.
getProductList
().
get
(
i
);
String
pid
=
StringUtils
.
isNotBlank
(
productBean
.
getSpecification
())
?
productBean
.
getSpecification
()
:
productBean
.
getProductId
();
String
pid
=
StringUtils
.
isNotBlank
(
productBean
.
getSpecification
())
?
productBean
.
getSpecification
()
:
productBean
.
getProductId
();
if
(!
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
orderBean
.
getProductList
().
get
(
i
)
.
getDiscountList
()))
{
if
(!
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
productBean
.
getDiscountList
()))
{
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
>
discounts
=
orderBean
.
getProductList
().
get
(
i
)
.
getDiscountList
().
stream
().
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
>
discounts
=
productBean
.
getDiscountList
().
stream
().
filter
(
productDiscount
->
productDiscount
.
getDiscountId
().
equals
(
accountBean
.
getAccountId
())).
collect
(
Collectors
.
toList
());
filter
(
productDiscount
->
productDiscount
.
getDiscountId
().
equals
(
accountBean
.
getAccountId
())).
collect
(
Collectors
.
toList
());
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
productDiscount
:
discounts
)
{
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
productDiscount
:
discounts
)
{
if
(
productDiscount
.
getDiscountType
()
==
null
||
productDiscount
.
getDiscountType
()
==
0
)
{
if
(
productDiscount
.
getDiscountType
()
==
null
||
productDiscount
.
getDiscountType
()
==
0
)
{
...
@@ -60,17 +68,16 @@ public class McCafeCouponAdapter {
...
@@ -60,17 +68,16 @@ public class McCafeCouponAdapter {
}
}
}
}
}
}
MCCafeCo
nponRequest
mcCafeConponRequest
=
new
MCCafeCon
ponRequest
();
MCCafeCo
uponRequest
mcCafeCouponRequest
=
new
MCCafeCou
ponRequest
();
mcCafeCo
n
ponRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeCo
u
ponRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeCo
n
ponRequest
.
setReqtype
(
CouponReqTypeEnum
.
REDEEM
.
getCode
());
mcCafeCo
u
ponRequest
.
setReqtype
(
CouponReqTypeEnum
.
REDEEM
.
getCode
());
mcCafeCo
n
ponRequest
.
setPartnerId
(
Integer
.
parseInt
(
orderBean
.
getCompanyId
()));
mcCafeCo
u
ponRequest
.
setPartnerId
(
Integer
.
parseInt
(
orderBean
.
getCompanyId
()));
mcCafeCo
n
ponRequest
.
setStore_id
(
orderBean
.
getShopId
());
mcCafeCo
u
ponRequest
.
setStore_id
(
orderBean
.
getShopId
());
mcCafeCo
n
ponRequest
.
setStation_id
(
"-1"
);
mcCafeCo
u
ponRequest
.
setStation_id
(
"-1"
);
mcCafeCo
n
ponRequest
.
setOperator_id
(
"-1"
);
mcCafeCo
u
ponRequest
.
setOperator_id
(
"-1"
);
// 订单号
// 订单号
mcCafeConponRequest
.
setTrans_id
(
orderBean
.
getOid
());
mcCafeCouponRequest
.
setTrans_id
(
orderBean
.
getOid
());
mcCafeConponRequest
.
setChannel
(
OrderSourceType
.
ALIPAY
.
getCode
().
equals
(
orderBean
.
getSource
())?
mcCafeCouponRequest
.
setChannel
(
OrderClientType
.
ALIPAY
.
getIndex
().
toString
().
equals
(
orderBean
.
getOrderClient
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
List
<
MCCafeTransactionVo
>
transactions
=
new
ArrayList
<>();
List
<
MCCafeTransactionVo
>
transactions
=
new
ArrayList
<>();
MCCafeTransactionVo
mcCafeTransactionVo
=
new
MCCafeTransactionVo
();
MCCafeTransactionVo
mcCafeTransactionVo
=
new
MCCafeTransactionVo
();
mcCafeTransactionVo
.
setCode
(
accountBean
.
getAccountId
());
mcCafeTransactionVo
.
setCode
(
accountBean
.
getAccountId
());
...
@@ -79,14 +86,15 @@ public class McCafeCouponAdapter {
...
@@ -79,14 +86,15 @@ public class McCafeCouponAdapter {
mcCafeTransactionVo
.
setProducts
(
products
);
mcCafeTransactionVo
.
setProducts
(
products
);
}
}
transactions
.
add
(
mcCafeTransactionVo
);
transactions
.
add
(
mcCafeTransactionVo
);
mcCafeCo
n
ponRequest
.
setTransactions
(
transactions
);
mcCafeCo
u
ponRequest
.
setTransactions
(
transactions
);
mcCafeCo
n
ponRequest
.
setSign
(
"skip"
);
mcCafeCo
u
ponRequest
.
setSign
(
"skip"
);
mcCafeCo
n
ponRequest
.
setAppFlag
(
"kgd.Y"
);
mcCafeCo
u
ponRequest
.
setAppFlag
(
"kgd.Y"
);
mcCafeCo
n
ponRequest
.
setBusiness_date
(
cn
.
freemud
.
base
.
util
.
DateUtil
.
convert2Str
(
new
Date
(),
cn
.
freemud
.
base
.
util
.
DateUtil
.
FORMAT_yyyyMMdd
));
mcCafeCo
u
ponRequest
.
setBusiness_date
(
cn
.
freemud
.
base
.
util
.
DateUtil
.
convert2Str
(
new
Date
(),
cn
.
freemud
.
base
.
util
.
DateUtil
.
FORMAT_yyyyMMdd
));
return
mcCafeCo
n
ponRequest
;
return
mcCafeCo
u
ponRequest
;
}
}
/**
/**
* 获取聚合订单活动类型
* 获取聚合订单活动类型
*/
*/
...
@@ -144,4 +152,40 @@ public class McCafeCouponAdapter {
...
@@ -144,4 +152,40 @@ public class McCafeCouponAdapter {
return
OldOrderAccountType
.
BUYM_SENDN
;
return
OldOrderAccountType
.
BUYM_SENDN
;
}
}
public
List
<
MCCafeCouponLockRequest
>
convertOrderBean2UnlockCoupon
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
orderBean
.
getAccountList
()))
{
return
null
;
}
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
>
accountList
=
orderBean
.
getAccountList
().
stream
().
filter
(
account
->
(
getQueryOrderAccountType
(
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
COUPON
)
||
getQueryOrderAccountType
(
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
getQueryOrderAccountType
(
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
))
&&
account
.
getPrice
()
!=
0
l
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
accountList
)
)
{
return
null
;
}
List
<
MCCafeCouponLockRequest
>
list
=
new
ArrayList
<>();
accountList
.
forEach
(
accountBean
->
list
.
add
(
convert2MCCafeCouponLockRequest
(
orderBean
,
accountBean
)));
return
list
;
}
public
MCCafeCouponLockRequest
convert2MCCafeCouponLockRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
accountBean
)
{
MCCafeCouponLockRequest
mcCafeCouponLockRequest
=
new
MCCafeCouponLockRequest
();
mcCafeCouponLockRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeCouponLockRequest
.
setReqType
(
CouponReqTypeEnum
.
UNLOCK
.
getCode
());
mcCafeCouponLockRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
mcCafeCouponLockRequest
.
setStoreId
(
orderBean
.
getShopId
());
// 订单号
mcCafeCouponLockRequest
.
setTransId
(
orderBean
.
getOid
());
mcCafeCouponLockRequest
.
setCoupon
(
accountBean
.
getAccountId
());
mcCafeCouponLockRequest
.
setOfferId
(
accountBean
.
getAccountId
());
mcCafeCouponLockRequest
.
setNumber
(
"1"
);
mcCafeCouponLockRequest
.
setChannel
(
OrderSourceType
.
ALIPAY
.
getCode
().
equals
(
orderBean
.
getSource
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
mcCafeCouponLockRequest
.
setOperatorId
(
"-1"
);
mcCafeCouponLockRequest
.
setStationId
(
"-1"
);
mcCafeCouponLockRequest
.
setSign
(
"skip"
);
return
mcCafeCouponLockRequest
;
}
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/coupon/MCCafeCo
n
ponRequest.java
→
order-management/src/main/java/cn/freemud/management/entities/dto/request/coupon/MCCafeCo
u
ponRequest.java
View file @
6983d0d5
...
@@ -13,7 +13,7 @@ import java.util.List;
...
@@ -13,7 +13,7 @@ import java.util.List;
@Builder
@Builder
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
public
class
MCCafeCo
n
ponRequest
{
public
class
MCCafeCo
u
ponRequest
{
/**
/**
* 接口版本
* 接口版本
*/
*/
...
...
order-management/src/main/java/cn/freemud/management/entities/dto/request/delivery/DeliveryOrderHaltedRequest.java
0 → 100644
View file @
6983d0d5
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
delivery
;
import
lombok.Data
;
@Data
public
class
DeliveryOrderHaltedRequest
{
//订单原因
private
String
haltedReason
;
//订单ID
private
String
orderKey
;
//ECP通用门店
private
String
storeId
;
}
order-management/src/main/java/cn/freemud/management/service/OrderManagerService.java
View file @
6983d0d5
...
@@ -24,7 +24,7 @@ public interface OrderManagerService {
...
@@ -24,7 +24,7 @@ public interface OrderManagerService {
* @param orderBean 订单实体
* @param orderBean 订单实体
* @return
* @return
*/
*/
BaseResponse
<
OrderManagerResponse
>
mcCafeOrderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
);
BaseResponse
mcCafeOrderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
);
/**
/**
* 制作完成
* 制作完成
...
@@ -64,7 +64,7 @@ public interface OrderManagerService {
...
@@ -64,7 +64,7 @@ public interface OrderManagerService {
* @param orderBean
* @param orderBean
* @return
* @return
*/
*/
BaseResponse
<
OrderManagerResponse
>
mcCafeOrderReject
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
);
BaseResponse
mcCafeOrderReject
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
);
/**
/**
* 同意退款
* 同意退款
...
...
order-management/src/main/java/cn/freemud/management/service/handle/CouponHandle.java
0 → 100644
View file @
6983d0d5
package
cn
.
freemud
.
management
.
service
.
handle
;
import
cn.freemud.management.adapter.McCafeCouponAdapter
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeCouponRequest
;
import
cn.freemud.management.thirdparty.CouponOfflineMCCafeClient
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Component
@Slf4j
public
class
CouponHandle
{
public
final
static
Integer
RESPONSE_SUCCESS
=
100
;
@Autowired
private
McCafeCouponAdapter
mcCafeCouponAdapter
;
@Autowired
private
CouponOfflineMCCafeClient
couponOfflineMCCafeClient
;
/**
* 异步核销券码
* @param orderBean
*/
@Async
(
"couponExecutor"
)
public
void
asyncVerificationCoupon
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
List
<
MCCafeCouponRequest
>
list
=
mcCafeCouponAdapter
.
convertOrderBean2CouponLockRequest
(
orderBean
);
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
for
(
MCCafeCouponRequest
mcCafeCouponRequest:
list
)
{
//重试3次
for
(
int
i
=
2
;
i
>=
0
;
i
--)
{
CouponRedeemResponse
redeem
=
couponOfflineMCCafeClient
.
redeem
(
mcCafeCouponRequest
);
if
(
RESPONSE_SUCCESS
.
equals
(
redeem
.
getStatusCode
()))
{
break
;
}
if
(
i
==
0
&&
!
RESPONSE_SUCCESS
.
equals
(
redeem
.
getStatusCode
()))
{
log
.
error
(
"核销券码异常,入参{},出参:{}"
,
JSONObject
.
toJSONString
(
mcCafeCouponRequest
),
JSONObject
.
toJSON
(
redeem
));
}
}
}
}
}
/**
* 解锁券码
* @param orderBean
*/
public
void
unlock
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
List
<
MCCafeCouponLockRequest
>
list
=
mcCafeCouponAdapter
.
convertOrderBean2UnlockCoupon
(
orderBean
);
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
for
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest:
list
)
{
//重试3次
for
(
int
i
=
2
;
i
>=
0
;
i
--)
{
CouponBaseResponse
response
=
couponOfflineMCCafeClient
.
unlock
(
mcCafeCouponLockRequest
);
if
(
RESPONSE_SUCCESS
.
equals
(
response
.
getStatusCode
()))
{
break
;
}
if
(
i
==
0
&&
!
RESPONSE_SUCCESS
.
equals
(
response
.
getStatusCode
()))
{
log
.
error
(
"解锁券码异常,入参{},出参:{}"
,
JSONObject
.
toJSONString
(
mcCafeCouponLockRequest
),
JSONObject
.
toJSON
(
response
));
}
}
}
}
}
}
order-management/src/main/java/cn/freemud/management/service/handle/DeliveryHandle.java
View file @
6983d0d5
...
@@ -3,13 +3,16 @@ package cn.freemud.management.service.handle;
...
@@ -3,13 +3,16 @@ package cn.freemud.management.service.handle;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.management.adapter.DeliverySdkAdapter
;
import
cn.freemud.management.adapter.DeliverySdkAdapter
;
import
cn.freemud.management.entities.dto.request.delivery.DeliveryOrderHaltedRequest
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.enums.DeliveryStatus
;
import
cn.freemud.management.enums.DeliveryStatus
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.intercept.DeliveryServiceException
;
import
cn.freemud.management.intercept.DeliveryServiceException
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.thirdparty.DeliveryMCCafeClient
;
import
cn.freemud.management.util.ResponseUtil
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CancelDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CancelDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
...
@@ -56,6 +59,8 @@ public class DeliveryHandle {
...
@@ -56,6 +59,8 @@ public class DeliveryHandle {
private
DeliverySdkAdapter
deliverySdkAdapter
;
private
DeliverySdkAdapter
deliverySdkAdapter
;
@Autowired
@Autowired
private
OrderBaseService
orderBaseService
;
private
OrderBaseService
orderBaseService
;
@Autowired
private
DeliveryMCCafeClient
deliveryMCCafeClient
;
/**
/**
...
@@ -121,6 +126,28 @@ public class DeliveryHandle {
...
@@ -121,6 +126,28 @@ public class DeliveryHandle {
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
/**
* 配送停单
*
* @param data
* @return
*/
public
BaseResponse
haltedDelivery
(
QueryOrdersResponse
.
DataBean
.
OrderBean
data
)
{
if
(
data
.
getType
()
==
1
&&
data
.
getAddInfo
()
!=
null
&&
ObjectUtils
.
equals
(
data
.
getAddInfo
().
getDeliveryType
(),
THIRD
))
{
DeliveryOrderHaltedRequest
deliveryOrderHaltedRequest
=
new
DeliveryOrderHaltedRequest
();
deliveryOrderHaltedRequest
.
setHaltedReason
(
"foe入机失败"
);
deliveryOrderHaltedRequest
.
setOrderKey
(
data
.
getOid
());
deliveryOrderHaltedRequest
.
setStoreId
(
data
.
getShopId
());
DeliveryResponseDto
deliveryResponse
=
deliveryMCCafeClient
.
halted
(
deliveryOrderHaltedRequest
);
if
(
deliveryResponse
==
null
||
!
StringUtils
.
equals
(
ResponseResult
.
SUCCESS
.
getCode
(),
deliveryResponse
.
getCode
()+
""
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_CANCEL_ORDER_ERROR
);
}
}
return
ResponseUtil
.
success
();
}
/**
/**
* 校验是否要创建配送单
* 校验是否要创建配送单
...
...
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
6983d0d5
...
@@ -2,7 +2,7 @@ package cn.freemud.management.service.impl;
...
@@ -2,7 +2,7 @@ package cn.freemud.management.service.impl;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.adapter.McCafeCouponAdapter
;
import
cn.freemud.management.adapter.McCafeCouponAdapter
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeCo
npon
Request
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeCo
uponLock
Request
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
...
@@ -12,13 +12,9 @@ import cn.freemud.management.enums.ResponseResult;
...
@@ -12,13 +12,9 @@ import cn.freemud.management.enums.ResponseResult;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.handle.DeliveryHandle
;
import
cn.freemud.management.service.handle.*
;
import
cn.freemud.management.service.handle.PaymentHandle
;
import
cn.freemud.management.service.handle.SaasOrderHandle
;
import
cn.freemud.management.service.handle.StockHandle
;
import
cn.freemud.management.thirdparty.CouponOfflineMCCafeClient
;
import
cn.freemud.management.thirdparty.CouponOfflineMCCafeClient
;
import
cn.freemud.management.util.ResponseUtil
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
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.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
...
@@ -26,7 +22,6 @@ import com.freemud.sdk.api.assortment.message.enums.OrderType;
...
@@ -26,7 +22,6 @@ import com.freemud.sdk.api.assortment.message.enums.OrderType;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Objects
;
import
java.util.Objects
;
...
@@ -46,8 +41,6 @@ import java.util.Objects;
...
@@ -46,8 +41,6 @@ import java.util.Objects;
@Service
@Service
public
class
SaasOrderMangerServiceImpl
implements
OrderManagerService
{
public
class
SaasOrderMangerServiceImpl
implements
OrderManagerService
{
public
final
static
Integer
RESPONSE_SUCCESS
=
100
;
@Autowired
@Autowired
private
SaasOrderHandle
saasOrderHandle
;
private
SaasOrderHandle
saasOrderHandle
;
@Autowired
@Autowired
...
@@ -64,6 +57,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -64,6 +57,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
private
CouponOfflineMCCafeClient
couponOfflineMCCafeClient
;
private
CouponOfflineMCCafeClient
couponOfflineMCCafeClient
;
@Autowired
@Autowired
private
McCafeCouponAdapter
mcCafeCouponAdapter
;
private
McCafeCouponAdapter
mcCafeCouponAdapter
;
@Autowired
private
CouponHandle
couponHandle
;
/**
/**
...
@@ -95,34 +90,17 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -95,34 +90,17 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
* @return
* @return
*/
*/
@Override
@Override
public
BaseResponse
<
OrderManagerResponse
>
mcCafeOrderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
public
BaseResponse
mcCafeOrderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
// 订单接单
// 订单接单
saasOrderHandle
.
orderConfirm
(
request
,
orderBean
);
saasOrderHandle
.
orderConfirm
(
request
,
orderBean
);
//获取门店信息
//支付成功已经 创建配送单
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()),
""
);
// 创建配送单
deliveryHandle
.
createDelivery
(
orderBean
,
request
,
storeInfo
);
if
(!
Objects
.
equals
(
orderBean
.
getOrderType
(),
OrderType
.
TAKE_OUT
.
getCode
()))
{
if
(!
Objects
.
equals
(
orderBean
.
getOrderType
(),
OrderType
.
TAKE_OUT
.
getCode
()))
{
// 异步核销券码
// 异步核销券码
asyncVerificationCoupon
(
orderBean
);
couponHandle
.
asyncVerificationCoupon
(
orderBean
);
}
}
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
/**
* 异步核销券码
* @param orderBean
*/
@Async
(
"couponExecutor"
)
public
void
asyncVerificationCoupon
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
MCCafeConponRequest
mcCafeConponRequest
=
mcCafeCouponAdapter
.
convertOrderBean2CouponLockRequest
(
orderBean
);
CouponRedeemResponse
redeem
=
couponOfflineMCCafeClient
.
redeem
(
mcCafeConponRequest
);
if
(!
RESPONSE_SUCCESS
.
equals
(
redeem
.
getStatusCode
()))
{
//todo 失败重试
}
}
/**
/**
...
@@ -207,14 +185,14 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -207,14 +185,14 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
* @return
* @return
*/
*/
@Override
@Override
public
BaseResponse
<
OrderManagerResponse
>
mcCafeOrderReject
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
public
BaseResponse
mcCafeOrderReject
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
//根据是否是外卖单来判断
//根据是否是外卖单来判断
if
(
Objects
.
equals
(
orderBean
.
getOrderType
(),
OrderType
.
TAKE_OUT
.
getCode
()))
{
if
(
Objects
.
equals
(
orderBean
.
getOrderType
(),
OrderType
.
TAKE_OUT
.
getCode
()))
{
// 订单接单
// 订单接单
BaseResponse
<
OrderManagerResponse
>
orderManagerResponseBaseResponse
=
mcCafeOrderConfirm
(
request
,
orderBean
);
BaseResponse
<
OrderManagerResponse
>
orderManagerResponseBaseResponse
=
mcCafeOrderConfirm
(
request
,
orderBean
);
if
(
ResponseResult
.
SUCCESS
.
equals
(
orderManagerResponseBaseResponse
.
getCode
())){
if
(
ResponseResult
.
SUCCESS
.
equals
(
orderManagerResponseBaseResponse
.
getCode
())){
//
todo
通知配送服务停单
//通知配送服务停单
deliveryHandle
.
haltedDelivery
(
orderBean
);
}
}
}
else
{
}
else
{
...
@@ -225,7 +203,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -225,7 +203,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
//冲正库存
//冲正库存
stockHandle
.
revert
(
request
,
orderBean
);
stockHandle
.
revert
(
request
,
orderBean
);
// 券码解冻
// 券码解冻
coupon
OfflineMCCafeClient
.
unlock
(
null
);
coupon
Handle
.
unlock
(
orderBean
);
}
}
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
...
...
order-management/src/main/java/cn/freemud/management/service/impl/WaimaiOrderMangerServiceImpl.java
View file @
6983d0d5
...
@@ -55,6 +55,11 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
...
@@ -55,6 +55,11 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
@Override
public
BaseResponse
mcCafeOrderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
return
null
;
}
/**
/**
* 制作完成
* 制作完成
*
*
...
@@ -118,6 +123,11 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
...
@@ -118,6 +123,11 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
@Override
public
BaseResponse
mcCafeOrderReject
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
return
null
;
}
/**
/**
* 同意退款
* 同意退款
*
*
...
...
order-management/src/main/java/cn/freemud/management/thirdparty/CouponOfflineMCCafeClient.java
View file @
6983d0d5
package
cn
.
freemud
.
management
.
thirdparty
;
package
cn
.
freemud
.
management
.
thirdparty
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeConponRequest
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.management.entities.dto.request.coupon.MCCafeCouponRequest
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
...
@@ -15,13 +15,13 @@ public interface CouponOfflineMCCafeClient {
...
@@ -15,13 +15,13 @@ public interface CouponOfflineMCCafeClient {
// 核销优惠券
// 核销优惠券
@PostMapping
(
"/mccafe/redeem"
)
@PostMapping
(
"/mccafe/redeem"
)
CouponRedeemResponse
redeem
(
MCCafeCo
n
ponRequest
mcCafeConponRequest
);
CouponRedeemResponse
redeem
(
MCCafeCo
u
ponRequest
mcCafeConponRequest
);
@PostMapping
(
"/mccafe/cancelRedeem"
)
@PostMapping
(
"/mccafe/cancelRedeem"
)
CouponRedeemResponse
cancelRedeem
(
MCCafeCo
n
ponRequest
mcCafeConponRequest
);
CouponRedeemResponse
cancelRedeem
(
MCCafeCo
u
ponRequest
mcCafeConponRequest
);
@PostMapping
(
"/mccafe/query"
)
@PostMapping
(
"/mccafe/query"
)
CouponQueryResponse
query
(
MCCafeCo
n
ponRequest
mcCafeConponRequest
);
CouponQueryResponse
query
(
MCCafeCo
u
ponRequest
mcCafeConponRequest
);
// 优惠券锁定
// 优惠券锁定
@PostMapping
(
"/mccafe/lock"
)
@PostMapping
(
"/mccafe/lock"
)
...
...
order-management/src/main/java/cn/freemud/management/thirdparty/DeliveryMCCafeClient.java
0 → 100644
View file @
6983d0d5
package
cn
.
freemud
.
management
.
thirdparty
;
import
cn.freemud.management.entities.dto.request.delivery.DeliveryOrderHaltedRequest
;
import
com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"Delivery_maCafe"
,
url
=
"XXXX"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
DeliveryMCCafeClient
{
// 核销优惠券
@PostMapping
(
"/delivery/halted"
)
DeliveryResponseDto
halted
(
DeliveryOrderHaltedRequest
deliveryOrderHaltedRequest
);
}
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