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
85f95889
Commit
85f95889
authored
Nov 25, 2021
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支付退款成功,订单未创建售后单,直接取消订单
parent
8ae6c36f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
95 additions
and
94 deletions
+95
-94
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+94
-93
No files found.
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
85f95889
...
...
@@ -135,7 +135,7 @@ public class OrderController {
}
/**
* 订单支付成功后通知
* 订单支付成功后通知
老支付回掉,已不用废弃
*/
@ApiAnnotation
(
logMessage
=
"paySuccessCallback"
)
@PostMapping
(
"/paySuccessCallback"
)
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
85f95889
...
...
@@ -150,8 +150,8 @@ public class OrderServiceImpl implements Orderservice {
/**
* coco商户
*/
@Value
(
"#{'${coco.partnerId}'.split(',')}"
)
private
List
<
String
>
cocoPartnerId
;
//
@Value("#{'${coco.partnerId}'.split(',')}")
//
private List<String> cocoPartnerId;
@Value
(
"#{'${hls.partnerId}'.split(',')}"
)
private
List
<
String
>
hlsPartnerId
;
@Value
(
"#{'${order.delete.partnerId}'.split(',')}"
)
...
...
@@ -641,7 +641,7 @@ public class OrderServiceImpl implements Orderservice {
requestVo
.
setTransId
(
orderId
);
}
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
if
(
StringUtils
.
is
Empty
(
requestVo
.
getTransId
()))
{
if
(
StringUtils
.
is
Blank
(
requestVo
.
getTransId
()))
{
//订单号不能为空
return
refundFaileMessage
(
"transId is can not empty"
);
}
...
...
@@ -650,10 +650,6 @@ public class OrderServiceImpl implements Orderservice {
//只有退款成功更新状态.其他情况不处理
return
refundFaileMessage
(
"pay refundStatus is not 100,refundStatus="
+
refundStatus
);
}
// 如果transId为空,返回失败
if
(
StringUtils
.
isBlank
(
requestVo
.
getTransId
()))
{
return
refundFaileMessage
(
"transId is empty "
+
requestVo
);
}
//查询订单详情
QueryRelationOrderByIdResponseDto
queryOrderByIdResponseDto
=
getQueryRelationOrderByIdResponseDto
(
requestVo
.
getTransId
());
if
(
queryOrderByIdResponseDto
.
getData
()
==
null
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
queryOrderByIdResponseDto
.
getErrcode
()))
{
...
...
@@ -669,12 +665,15 @@ public class OrderServiceImpl implements Orderservice {
orderBean
=
orderBeans
.
get
(
0
);
}
}
//无售后单,退款回掉取消订单,冲正库存等
if
(
CollectionUtils
.
isEmpty
(
orderBean
.
getRefundList
())){
return
cancelOrder
(
orderBean
);
}
//订单状态
Integer
s
tatus
=
orderBean
.
getRefundList
().
get
(
0
).
getStatus
();
if
(!
Objects
.
equals
(
RefundStatus
.
ALREADY_REFUND
.
getCode
(),
s
tatus
))
{
Integer
orderRefundS
tatus
=
orderBean
.
getRefundList
().
get
(
0
).
getStatus
();
if
(!
Objects
.
equals
(
RefundStatus
.
ALREADY_REFUND
.
getCode
(),
orderRefundS
tatus
))
{
//不是退款中处理不处理
return
refundFaileMessage
(
"order status is not 3,status="
+
s
tatus
);
return
refundFaileMessage
(
"order status is not 3,status="
+
orderRefundS
tatus
);
}
String
afterSalesCode
=
orderBean
.
getRefundList
().
get
(
orderBean
.
getRefundList
().
size
()
-
1
).
getRid
();
//退款流水号
...
...
@@ -972,9 +971,9 @@ public class OrderServiceImpl implements Orderservice {
// coco订单不考略是否查询待取餐的订单,直接调用支付有礼活动
// 所以在这个地方排除掉coco,在下边单独实现
//参与支付有礼活动
if
(!
cocoPartnerId
.
contains
(
queryOrderVo
.
getPartnerId
()))
{
//
if (!cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
joinPayGift
(
queryOrderVo
.
getSessionId
(),
queryOrderResponseVo
,
partnerId
,
queryOrderVo
.
getPayGiftVer
());
}
//
}
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"queryOrders_activity_error"
,
gson
.
toJson
(
queryOrderResponseVo
),
gson
.
toJson
(
e
),
e
);
...
...
@@ -983,16 +982,16 @@ public class OrderServiceImpl implements Orderservice {
}
// coco订单参与支付有礼活动
if
(
cocoPartnerId
.
contains
(
queryOrderVo
.
getPartnerId
()))
{
queryOrderResponseVos
.
forEach
(
queryOrderResponseVo
->
{
try
{
joinPayGift
(
queryOrderVo
.
getSessionId
(),
queryOrderResponseVo
,
partnerId
,
null
);
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"coco_queryOrders_activity_error"
,
gson
.
toJson
(
queryOrdersDto
),
gson
.
toJson
(
queryOrderResponseVo
),
e
);
}
});
}
//
if (cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
//
queryOrderResponseVos.forEach(queryOrderResponseVo -> {
//
try {
//
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, null);
//
//
} catch (Exception e) {
//
AppLogUtil.errorLog("coco_queryOrders_activity_error", gson.toJson(queryOrdersDto), gson.toJson(queryOrderResponseVo), e);
//
}
//
});
//
}
for
(
QueryOrderResponseVo
orderResponseVo
:
queryOrderResponseVos
)
{
if
(
OrderMarketType
.
GROUPB
.
getIndex
()
==
orderResponseVo
.
getMarketingType
()
&&
StringUtils
.
isNotEmpty
(
orderResponseVo
.
getSpellGroupCode
())
...
...
@@ -1248,25 +1247,25 @@ public class OrderServiceImpl implements Orderservice {
// coco订单不考略是否查询待取餐的订单,直接调用支付有礼活动
// 所以在这个地方排除掉coco,在下边单独实现
//参与支付有礼活动
if
(!
cocoPartnerId
.
contains
(
queryOrderVo
.
getPartnerId
()))
{
//
if (!cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
joinPayGift
(
queryOrderVo
.
getSessionId
(),
queryOrderResponseVo
,
partnerId
,
queryOrderVo
.
getPayGiftVer
());
}
//
}
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"queryOrders_activity_error"
,
gson
.
toJson
(
queryOrdersDto
),
gson
.
toJson
(
queryOrderResponseVo
),
e
);
}
});
}
// coco订单参与支付有礼活动
if
(
cocoPartnerId
.
contains
(
queryOrderVo
.
getPartnerId
()))
{
queryOrderResponseVos
.
forEach
(
queryOrderResponseVo
->
{
try
{
joinPayGift
(
queryOrderVo
.
getSessionId
(),
queryOrderResponseVo
,
partnerId
,
null
);
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"coco_queryOrders_activity_error"
,
gson
.
toJson
(
queryOrdersDto
),
gson
.
toJson
(
queryOrderResponseVo
),
e
);
}
});
}
//
if (cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
//
queryOrderResponseVos.forEach(queryOrderResponseVo -> {
//
try {
//
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, null);
//
//
} catch (Exception e) {
//
AppLogUtil.errorLog("coco_queryOrders_activity_error", gson.toJson(queryOrdersDto), gson.toJson(queryOrderResponseVo), e);
//
}
//
});
//
}
for
(
QueryOrderResponseVo
orderResponseVo
:
queryOrderResponseVos
)
{
if
(
OrderMarketType
.
GROUPB
.
getIndex
()
==
orderResponseVo
.
getMarketingType
()
&&
StringUtils
.
isNotEmpty
(
orderResponseVo
.
getSpellGroupCode
())
&&
orders
.
get
(
0
).
getApportionDetails
()
!=
null
)
{
...
...
@@ -1465,9 +1464,9 @@ public class OrderServiceImpl implements Orderservice {
payGitRequestDto
.
setVer
(
payGiftVer
);
//coco业务默认传值1
if
(
cocoPartnerId
.
contains
(
partnerId
))
{
payGitRequestDto
.
setVer
(
1
);
}
//
if (cocoPartnerId.contains(partnerId)) {
//
payGitRequestDto.setVer(1);
//
}
//fisherman 【ID1032306】 【订单聚合层】总部和区域活动可同时生效
BaseResponse
<
PayGiftCheckAndJoinResponseObj
>
payGiftBaseResponse
;
...
...
@@ -1632,9 +1631,10 @@ public class OrderServiceImpl implements Orderservice {
// 支付有礼
// 目前只有coco在订单详情参加支付有礼,且不检查订单的状态
if
(
cocoPartnerId
.
contains
(
partnerId
))
{
joinPayGift
(
sessionId
,
queryOrderResponseVo
,
partnerId
,
null
);
}
else
if
(
BizTypeEnum
.
SALE_COUPON
.
getBizType
().
equals
(
orderBean
.
getBizType
()))
{
// if (cocoPartnerId.contains(partnerId)) {
// joinPayGift(sessionId, queryOrderResponseVo, partnerId, null);
// } else
if
(
BizTypeEnum
.
SALE_COUPON
.
getBizType
().
equals
(
orderBean
.
getBizType
()))
{
joinPayGift
(
sessionId
,
queryOrderResponseVo
,
partnerId
,
payGiftVer
);
}
...
...
@@ -1921,44 +1921,44 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"订单配送中,退款请联系售后!"
);
}
//
todo
coco 商户校验
if
(
cocoPartnerId
.
contains
(
orderByIdResponseDto
.
getData
().
getCompanyId
()))
{
// COCO 即时单不可取消
if
(
NewOrderType
.
GENERAL_SELF_PICKUP
.
getCode
().
equals
(
queryOrderByIdResponse
.
getData
().
getNewOrderType
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
);
}
// 4,6 预约单
List
<
Integer
>
expectOrderType
=
Lists
.
newArrayList
(
NewOrderType
.
RESERVED_EXPRESS
.
getCode
(),
NewOrderType
.
RESERVED_SELF_PICKUP
.
getCode
());
long
time
=
DateUtil
.
addMinutes
(
new
Date
(),
15
).
getTime
();
// 外卖单
List
<
Integer
>
takeOrderType
=
Lists
.
newArrayList
(
NewOrderType
.
RESERVED_EXPRESS
.
getCode
(),
NewOrderType
.
GENERAL_EXPRESS
.
getCode
());
long
taskCancelOrderTime
=
DateUtil
.
addMinutes
(
new
Date
(),
30
).
getTime
();
if
(
takeOrderType
.
contains
(
queryOrderByIdResponse
.
getData
().
getNewOrderType
())
&&
Objects
.
nonNull
(
queryOrderByIdResponse
.
getData
().
getEstimateDeliveryCompleteTime
())
&&
taskCancelOrderTime
>
queryOrderByIdResponse
.
getData
().
getEstimateDeliveryCompleteTime
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_CANCEL_ERROR_ESTIMATE_TIME
);
}
if
(
expectOrderType
.
contains
(
queryOrderByIdResponse
.
getData
().
getNewOrderType
()))
{
if
(
Objects
.
nonNull
(
orderBean
.
getGmtExpect
())
&&
time
>
orderBean
.
getGmtExpect
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_CANCEL_ERROR_EXPECT_TIME
);
}
// todo coco 预约单直接退款
BaseResponse
baseResponse
=
partnerNoTakeOrder
(
orderRefundVo
,
orderBean
,
orderId
,
AfterSalesType
.
USER_CANCEL
,
true
);
if
(
baseResponse
!=
null
)
{
return
baseResponse
;
}
// 删除订单 通知活动添加商品库存
orderQueueService
.
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
(),
orderBean
.
getPayStatus
());
return
ResponseUtil
.
success
();
}
}
// coco 商户校验
//
if (cocoPartnerId.contains(orderByIdResponseDto.getData().getCompanyId())) {
//
// COCO 即时单不可取消
//
if (NewOrderType.GENERAL_SELF_PICKUP.getCode().equals(queryOrderByIdResponse.getData().getNewOrderType())) {
//
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND);
//
}
//
// 4,6 预约单
//
List<Integer> expectOrderType = Lists.newArrayList(
//
NewOrderType.RESERVED_EXPRESS.getCode(),
//
NewOrderType.RESERVED_SELF_PICKUP.getCode());
//
long time = DateUtil.addMinutes(new Date(), 15).getTime();
//
//
// 外卖单
//
List<Integer> takeOrderType = Lists.newArrayList(
//
NewOrderType.RESERVED_EXPRESS.getCode(),
//
NewOrderType.GENERAL_EXPRESS.getCode());
//
long taskCancelOrderTime = DateUtil.addMinutes(new Date(), 30).getTime();
//
if (takeOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())
//
&& Objects.nonNull(queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime())
//
&& taskCancelOrderTime > queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime()) {
//
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_ESTIMATE_TIME);
//
}
//
if (expectOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())) {
//
if (Objects.nonNull(orderBean.getGmtExpect())
//
&& time > orderBean.getGmtExpect()) {
//
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_EXPECT_TIME);
//
}
//
// todo coco 预约单直接退款
//
BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId, AfterSalesType.USER_CANCEL, true);
//
if (baseResponse != null) {
//
return baseResponse;
//
}
//
// 删除订单 通知活动添加商品库存
//
orderQueueService.backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(), orderBean.getPayStatus());
//
return ResponseUtil.success();
//
}
//
//
}
// fisherman 预定单前置校验-> bizType=7
if
(
BizTypeEnum
.
ADVANCE_ORDER
.
getBizType
().
compareTo
(
orderBean
.
getBizType
())
==
0
)
{
// 预定时间 前一天都可退款
...
...
@@ -3325,23 +3325,24 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
success
(
configVo
);
}
/**
* 标准点餐参数校验
*
* @param createOrderVo
* 支付退款成功,订单未创建售后单
* @return
*/
private
BaseResponse
checkStandardParamInfo
(
CreateOrderVo
createOrderVo
)
{
if
(
StringUtils
.
isEmpty
(
createOrderVo
.
getSessionId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
CREATE_ORDER_CHECK_SESSION_ERROR
);
}
if
(
StringUtils
.
isEmpty
(
createOrderVo
.
getShopId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
CREATE_ORDER_CHECK_STORE_ERROR
);
}
if
(
createOrderVo
.
getOrderType
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
CREATE_ORDER_CHECK_ORDERTYPE_ERROR
);
}
return
ResponseUtil
.
success
();
private
String
cancelOrder
(
OrderBeanV1
orderBean
)
{
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
AfterSalesType
.
OTHER
,
"退款回掉取消订单"
,
LogThreadLocal
.
getTrackingNo
(),
null
);
cancelOrderRequest
.
setOperator
(
"退款成功回掉"
);
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
//退款成功
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
cancelOrderRequest
.
setReqRemark
(
""
);
cancelOrderRequest
.
setRefundDeliveryAmount
(
true
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
orderQueueService
.
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
());
return
newSendPaySuccessNoticeMessage
();
}
}
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