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
Expand all
Hide 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 {
private
String
backOrdersChangeOrderStatusConsumerQueue
;
@Value
(
"${program.backorders_notify_activity_exchange}"
)
private
String
backOrdersNotifyActivityExchange
;
@Value
(
"${macafe.waimai.tag}"
)
private
String
maCafeWaimaiTag
;
@Value
(
"${macafe.pick.tag}"
)
private
String
maCafePickTag
;
@Autowired
private
ShoppingCartAdapter
shoppingCartAdapter
;
@Autowired
...
...
@@ -791,6 +795,9 @@ public class OrderAdapter {
if
(
QueryOrderStatus
.
NO_PAY
.
getCode
().
equals
(
queryOrderDto
.
getQueryOrderStatus
()))
{
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
...
...
@@ -892,6 +899,12 @@ public class OrderAdapter {
responseVo
.
setTakeOut
(
0
);
responseVo
.
setTakeOutDesc
(
""
);
}
//配置麦咖啡文案
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
ordersBean
.
getType
())){
responseVo
.
setMcCafeOrderTag
(
maCafeWaimaiTag
);
}
else
{
responseVo
.
setMcCafeOrderTag
(
maCafePickTag
);
}
responseVo
.
setTableNumber
(
ordersBean
.
getBarCounter
());
responseVo
.
setPayStatus
(
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;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.EmptyTableNumberVo
;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
cn.freemud.monitorcenter.tools.HealthUtil
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.Orderservice
;
import
cn.freemud.utils.ResponseUtil
;
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.LogParams
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -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
* @return
...
...
@@ -172,6 +179,16 @@ public class OrderController {
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 {
* 退款文案提示 若48小时后商家未处理,自动同意/拒绝退款
*/
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 {
*/
private
String
oid
;
/**
* 订单状态 enum queryOrderStatus 全部订单 1 待取餐 2 已完成 3 全部 4.退款,5 待支付
* 订单状态 enum queryOrderStatus 全部订单 1 待取餐 2 已完成 3 全部 4.退款,5 待支付
,6 已取消
*/
private
Integer
queryOrderStatus
;
/**
...
...
order-application-service/src/main/java/cn/freemud/enums/QueryOrderStatus.java
View file @
6983d0d5
...
...
@@ -19,7 +19,8 @@ public enum QueryOrderStatus {
FINISH
(
2
,
"已完成"
),
ALL_BILL
(
3
,
"全部"
),
REFUND_BILL
(
4
,
"退款"
),
NO_PAY
(
5
,
"待支付"
);
NO_PAY
(
5
,
"待支付"
),
ORDER_CANCEL
(
6
,
"已取消"
);
private
Integer
code
;
...
...
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
6983d0d5
...
...
@@ -186,6 +186,10 @@ public enum ResponseResult {
*/
DELIVERY_QUERY_ERROR
(
"50024"
,
"查询配送单失败"
),
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 {
DELIVERY_INFO_NOT_DELIVERY
(
"60001"
,
"当前地址不可配送"
),
DELIVERY_INFO_ERROR
(
"60002"
,
"配送地址不正确"
),
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 {
BaseResponse
reminder
(
ReminderVo
reminderVo
);
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 {
@Value
(
"${mq.cloud_print_exchange}"
)
private
String
cloud_print_exchange
;
@Autowired
private
AssortmentCloudPrinterManager
cloudPrinterManager
;
// @Autowired
...
...
@@ -1012,6 +1013,98 @@ public class OrderServiceImpl implements Orderservice {
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 {
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
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
();
dto
.
setOrderKey
(
reminderVo
.
getOid
());
...
...
@@ -2505,11 +2611,23 @@ public class OrderServiceImpl implements Orderservice {
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isBlank
(
userLoginInfoDto
.
getMemberId
()))
{
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
();
dto
.
setDeliveryChannel
(
"CanDao"
);
dto
.
setOrderId
(
vo
.
getOid
());
BaseResponse
<
ResRiderTrackDto
>
response
=
deliveryFeiginClient
.
listFreeRider
(
dto
);
if
(
response
==
null
||
RESPONSE_SUCCESS_CODE
!=
Integer
.
valueOf
(
response
.
getCode
())
||
response
.
getResult
()
==
null
)
{
BaseResponse
<
ResRiderTrackDto
>
response
s
=
deliveryFeiginClient
.
listFreeRider
(
dto
);
if
(
response
s
==
null
||
RESPONSE_SUCCESS_CODE
!=
Integer
.
valueOf
(
responses
.
getCode
())
||
responses
.
getResult
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_QUERY_RIDER_ERROR
);
}
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
This diff is collapsed.
Click to expand it.
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;
@Builder
@NoArgsConstructor
@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 {
* @param orderBean 订单实体
* @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 {
* @param orderBean
* @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;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
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.enums.DeliveryStatus
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.intercept.DeliveryServiceException
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.thirdparty.DeliveryMCCafeClient
;
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.CreateDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
...
...
@@ -56,6 +59,8 @@ public class DeliveryHandle {
private
DeliverySdkAdapter
deliverySdkAdapter
;
@Autowired
private
OrderBaseService
orderBaseService
;
@Autowired
private
DeliveryMCCafeClient
deliveryMCCafeClient
;
/**
...
...
@@ -121,6 +126,28 @@ public class DeliveryHandle {
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;
import
cn.freemud.base.entity.BaseResponse
;
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.response.order.OrderManagerResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
...
...
@@ -12,13 +12,9 @@ import cn.freemud.management.enums.ResponseResult;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.handle.DeliveryHandle
;
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.service.handle.*
;
import
cn.freemud.management.thirdparty.CouponOfflineMCCafeClient
;
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.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
...
...
@@ -26,7 +22,6 @@ import com.freemud.sdk.api.assortment.message.enums.OrderType;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
java.util.Objects
;
...
...
@@ -46,8 +41,6 @@ import java.util.Objects;
@Service
public
class
SaasOrderMangerServiceImpl
implements
OrderManagerService
{
public
final
static
Integer
RESPONSE_SUCCESS
=
100
;
@Autowired
private
SaasOrderHandle
saasOrderHandle
;
@Autowired
...
...
@@ -64,6 +57,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
private
CouponOfflineMCCafeClient
couponOfflineMCCafeClient
;
@Autowired
private
McCafeCouponAdapter
mcCafeCouponAdapter
;
@Autowired
private
CouponHandle
couponHandle
;
/**
...
...
@@ -95,34 +90,17 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
* @return
*/
@Override
public
BaseResponse
<
OrderManagerResponse
>
mcCafeOrderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
public
BaseResponse
mcCafeOrderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
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
()))
{
// 异步核销券码
asyncVerificationCoupon
(
orderBean
);
couponHandle
.
asyncVerificationCoupon
(
orderBean
);
}
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 {
* @return
*/
@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
()))
{
// 订单接单
BaseResponse
<
OrderManagerResponse
>
orderManagerResponseBaseResponse
=
mcCafeOrderConfirm
(
request
,
orderBean
);
if
(
ResponseResult
.
SUCCESS
.
equals
(
orderManagerResponseBaseResponse
.
getCode
())){
//
todo
通知配送服务停单
//通知配送服务停单
deliveryHandle
.
haltedDelivery
(
orderBean
);
}
}
else
{
...
...
@@ -225,7 +203,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
//冲正库存
stockHandle
.
revert
(
request
,
orderBean
);
// 券码解冻
coupon
OfflineMCCafeClient
.
unlock
(
null
);
coupon
Handle
.
unlock
(
orderBean
);
}
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 {
return
ResponseUtil
.
success
();
}
@Override
public
BaseResponse
mcCafeOrderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
return
null
;
}
/**
* 制作完成
*
...
...
@@ -118,6 +123,11 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
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
;
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
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.CouponRedeemResponse
;
...
...
@@ -15,13 +15,13 @@ public interface CouponOfflineMCCafeClient {
// 核销优惠券
@PostMapping
(
"/mccafe/redeem"
)
CouponRedeemResponse
redeem
(
MCCafeCo
n
ponRequest
mcCafeConponRequest
);
CouponRedeemResponse
redeem
(
MCCafeCo
u
ponRequest
mcCafeConponRequest
);
@PostMapping
(
"/mccafe/cancelRedeem"
)
CouponRedeemResponse
cancelRedeem
(
MCCafeCo
n
ponRequest
mcCafeConponRequest
);
CouponRedeemResponse
cancelRedeem
(
MCCafeCo
u
ponRequest
mcCafeConponRequest
);
@PostMapping
(
"/mccafe/query"
)
CouponQueryResponse
query
(
MCCafeCo
n
ponRequest
mcCafeConponRequest
);
CouponQueryResponse
query
(
MCCafeCo
u
ponRequest
mcCafeConponRequest
);
// 优惠券锁定
@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