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
4f2e0986
Commit
4f2e0986
authored
Aug 08, 2020
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
创建订单使用真实openid
parent
7e05feb6
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
325 additions
and
33 deletions
+325
-33
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+11
-2
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
+10
-0
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
+6
-0
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+285
-18
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/MCCafeOrderCenterSdkServiceImpl.java
+13
-13
No files found.
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
4f2e0986
...
...
@@ -82,7 +82,7 @@ public class OrderController {
* 麦咖啡创建订单
*/
@ApiAnnotation
(
logMessage
=
"createMCCafeOrder"
)
@PostMapping
(
"/
mcCafe/creat
eOrder"
)
@PostMapping
(
"/
MCoffee/createMCCaf
eOrder"
)
public
BaseResponse
createOrderMCCafe
(
@Validated
@LogParams
@RequestBody
CreateOrderVo
createOrderVo
)
{
return
orderAdapterService
.
createMCCafeOrder
(
createOrderVo
);
}
...
...
@@ -127,7 +127,7 @@ public class OrderController {
* 麦咖啡订单支付成功后通知
*/
@ApiAnnotation
(
logMessage
=
"mcCafePaySuccessCallback"
)
@PostMapping
({
"/mcCafePaySuccessCallback"
,
"/openStoreMCCafeQueryPaymentCallback"
})
@PostMapping
({
"/
MCoffee/
mcCafePaySuccessCallback"
,
"/openStoreMCCafeQueryPaymentCallback"
})
public
String
mcCafePaySuccessCallback
(
@LogParams
@RequestBody
NewPaysuccessNoticeMessage
message
)
{
return
mcCafeOrderService
.
mcCafePaySuccessCallback
(
message
);
}
...
...
@@ -193,6 +193,15 @@ public class OrderController {
}
/**
* 麦咖啡用户申请退款
*/
@ApiAnnotation
(
logMessage
=
"mcCafeRefund"
)
@PostMapping
(
"/MCoffee/mcCafeRefund"
)
public
BaseResponse
mcCafeRefund
(
@Validated
@LogParams
@RequestBody
OrderRefundVo
orderRefundVo
)
{
return
mcCafeOrderService
.
orderRefund
(
orderRefundVo
);
}
/**
* 获取订单排队号
*/
@ApiAnnotation
(
logMessage
=
"queueIndex"
)
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
View file @
4f2e0986
...
...
@@ -206,6 +206,16 @@ public class CreateOrderVo {
private
String
channelType
;
/**
* 是否需要餐具,1 需要 0不需要
*/
private
Integer
needTableware
;
/**
* 是否需要开发票,1 需要 0不需要
*/
private
Integer
needInvoice
;
/**
* 微信配送地址信息
*/
private
WeixinDeliveryAddressDto
weixinDeliveryAddress
;
...
...
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
View file @
4f2e0986
...
...
@@ -30,4 +30,10 @@ public interface MCCafeOrderService {
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
);
/**
* 麦咖啡订单申请退款
*/
BaseResponse
orderRefund
(
OrderRefundVo
orderRefundVo
);
}
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
4f2e0986
...
...
@@ -13,6 +13,7 @@
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.adapter.*
;
import
cn.freemud.amp.body.MessagePushNewMqBody
;
import
cn.freemud.amqp.Header
;
import
cn.freemud.amqp.MQAction
;
import
cn.freemud.amqp.MQMessage
;
...
...
@@ -51,6 +52,7 @@ import com.freemud.api.assortment.datamanager.manager.*;
import
com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.api.assortment.datamanager.meal.MealCacheManager
;
import
com.freemud.application.sdk.api.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.constant.ResponseResultEnum
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
...
...
@@ -68,12 +70,17 @@ import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmou
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto
;
import
com.freemud.application.sdk.api.structure.service.MessageCenterClient
;
import
com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig
;
import
com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg
;
import
com.freemud.sdk.api.assortment.message.entity.MpTemplateMsgDataValue
;
import
com.freemud.sdk.api.assortment.message.enums.MessageEventType
;
import
com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponRequest
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderStatus
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
...
...
@@ -85,6 +92,7 @@ import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo;
import
com.freemud.sdk.api.assortment.orderdistributor.entity.dto.PaymentMqMessageDto
;
import
com.freemud.sdk.api.assortment.orderdistributor.service.PaymentQueueService
;
import
com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest
;
import
com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
import
com.freemud.sdk.api.assortment.payment.service.StandardPaymentService
;
import
com.google.common.collect.Lists
;
...
...
@@ -94,6 +102,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.builder.ToStringBuilder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -101,8 +110,10 @@ import org.springframework.stereotype.Service;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
static
cn
.
freemud
.
constant
.
OrderRefundConstant
.
ALLOW_REFUND
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
;
@Service
...
...
@@ -113,7 +124,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private
static
Gson
gson
=
new
Gson
();
@Value
(
"${
saas
.reverseNotifyiDcUrl}"
)
@Value
(
"${
mcCafe
.reverseNotifyiDcUrl}"
)
private
String
reverseNotifyiDcUrl
;
@Value
(
"${program.backorders_change_order_status_consumer_queue}"
)
private
String
backOrdersChangeOrderStatusConsumerQueue
;
...
...
@@ -555,8 +566,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
String
cardCode
=
createPrepayRequestDto
.
getCardCode
();
String
transId
=
createPrepayRequestDto
.
getTransId
();
// 测试appId和openid,后面删除,改为实时获取
paymentRequest
.
setWxAppId
(
"wx21e254fdcc79dee8"
);
paymentRequest
.
setOpenId
(
"oR0VA5aRRaGpQxaLUPgQqcDHamg4"
);
//
paymentRequest.setWxAppId("wx21e254fdcc79dee8");
//
paymentRequest.setOpenId("oR0VA5aRRaGpQxaLUPgQqcDHamg4");
//麦咖啡不支持svc卡
if
(
totalAmount
<
0
)
{
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
...
...
@@ -954,23 +965,279 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
sendPaySuccessNoticeMessage
();
}
private
List
<
CreateOrderAccountRequest
>
convertOrderBean2Accounts
(
OrderBean
orderBean
)
{
List
<
CreateOrderAccountRequest
>
list
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
orderBean
.
getAccountList
()))
{
orderBean
.
getAccountList
().
forEach
(
o
->
{
CreateOrderAccountRequest
createOrderAccountDto
=
CreateOrderAccountRequest
.
builder
()
.
accountId
(
o
.
getAccountId
())
.
name
(
o
.
getName
())
.
price
(
o
.
getPrice
())
.
accountType
(
orderAdapter
.
getQueryOrderAccountType
(
orderAdapter
.
getOrderAccountType
(
o
.
getType
())))
.
sequence
(
o
.
getSequence
())
.
orderId
(
o
.
getOrderId
())
.
build
();
list
.
add
(
createOrderAccountDto
);
});
@Override
public
BaseResponse
orderRefund
(
OrderRefundVo
orderRefundVo
)
{
if
(
StringUtils
.
isEmpty
(
orderRefundVo
.
getReason
()))
{
orderRefundVo
.
setReason
(
"退款"
);
}
AssortmentCustomerInfoVo
userInfo
=
customerInfoManager
.
getCustomerInfoByObject
(
orderRefundVo
.
getSessionId
());
if
(
userInfo
==
null
||
StringUtils
.
isEmpty
(
userInfo
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
String
memberId
=
userInfo
.
getMemberId
();
String
partnerId
=
userInfo
.
getPartnerId
();
if
(
StringUtils
.
isBlank
(
orderRefundVo
.
getOid
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"oid不能为空"
);
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
orderRefundVo
.
getOid
());
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
queryOrderByIdResponse
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
String
string
=
JSONObject
.
toJSONString
(
queryOrderByIdResponse
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
string
);
QueryOrderByIdResponseDto
orderByIdResponseDto
=
jsonObject
.
toJavaObject
(
QueryOrderByIdResponseDto
.
class
);
boolean
isSon
=
StringUtils
.
isEmpty
(
orderByIdResponseDto
.
getData
().
getParentCode
())
||
"0"
.
equals
(
orderByIdResponseDto
.
getData
().
getParentCode
());
String
orderId
=
isSon
?
orderByIdResponseDto
.
getData
().
getOid
()
:
orderByIdResponseDto
.
getData
().
getParentCode
();
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
orderByIdResponseDto
.
getErrcode
())
||
orderByIdResponseDto
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"订单信息不存在"
);
}
if
(!
memberId
.
equals
(
orderByIdResponseDto
.
getData
().
getUserId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
.
getCode
(),
"不能操作非本人的订单"
);
}
OrderBean
orderBean
=
orderByIdResponseDto
.
getData
();
if
(
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderByIdResponseDto
.
getData
().
getPayStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"订单未支付,无法退款"
);
}
if
(
OrderStatus
.
CALCEL
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"订单已取消,无法退款"
);
}
if
(
OldOrderType
.
COLLECT_GOODS
.
getCode
().
equals
(
orderBean
.
getOrderType
())
||
OldOrderType
.
EAT_IN
.
getCode
().
equals
(
orderBean
.
getOrderType
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"麦咖啡到店订单不支持退款"
);
}
if
(
OrderStatus
.
DISTRIBUTION
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"订单配送中,退款请联系售后!"
);
}
/**
* 已接单,制作完成,配送中,未接单,用户可申请退款
*
* v1.9.3.1 支持已完成订单可申请退款(通过b端后台控制)
*/
List
<
Integer
>
enableRefundCodes
=
Lists
.
newArrayList
(
Arrays
.
asList
(
OrderStatus
.
TAKE_ORDER
.
getCode
(),
OrderStatus
.
RECEIPT
.
getCode
(),
OrderStatus
.
COMPLETE_MAKE
.
getCode
(),
OrderStatus
.
DISTRIBUTION
.
getCode
(),
OrderStatus
.
COMPLETE
.
getCode
()
));
if
(
enableRefundCodes
.
contains
(
orderBean
.
getStatus
())
&&
PayStatus
.
HAVE_PAID
.
getCode
().
equals
(
orderBean
.
getPayStatus
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
orderBean
.
getRefundList
()))
{
OrderBean
.
RefundBean
refundBean
=
orderBean
.
getRefundList
().
get
(
0
);
if
(
RefundStatus
.
APPLY_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"商家正在处理中,请稍后……"
);
}
if
(
RefundStatus
.
REFUSE_REFUND
.
getCode
().
equals
(
refundBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"您的申请已被商家拒绝,请联系门店沟通。"
);
}
}
List
<
AssortmentOpenPlatformPartnerWxappConfig
>
partnerWxappConfigs
=
cacheOpenPlatformPartnerWxappConfigManager
.
cacheSelectDefaultPage
(
userInfo
.
getWxAppId
(),
"2"
);
Map
<
String
,
AssortmentOpenPlatformPartnerWxappConfig
>
configMap
=
partnerWxappConfigs
.
stream
().
collect
(
Collectors
.
toMap
(
AssortmentOpenPlatformPartnerWxappConfig:
:
getAppKey
,
Function
.
identity
()));
//是否退配送费
boolean
isRefundDeliveryFee
=
true
;
AssortmentOpenPlatformPartnerWxappConfig
refundDeliveryFeeConfig
=
configMap
.
get
(
OrderRefundEnum
.
REFUND_DELIVERY_FEE_ENABLE
.
getKeyValue
());
LogUtil
.
info
(
"orderRefund of oid:{}, {}, {}"
,
orderBean
.
getOid
(),
orderBean
.
getStatus
(),
(
null
!=
refundDeliveryFeeConfig
?
ToStringBuilder
.
reflectionToString
(
refundDeliveryFeeConfig
)
:
null
));
// 0、null表示 关闭 ; 1 表示开启
if
(
null
!=
refundDeliveryFeeConfig
&&
Arrays
.
asList
(
OrderStatus
.
DISTRIBUTION
.
getCode
()).
contains
(
orderBean
.
getStatus
())
&&
!
ALLOW_REFUND
.
equals
(
refundDeliveryFeeConfig
.
getAppValue
()))
{
isRefundDeliveryFee
=
false
;
}
// 未接单
if
(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
//商家未接单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
BaseResponse
baseResponse
=
partnerNoTakeOrder
(
orderRefundVo
,
orderBean
,
orderId
,
AfterSalesType
.
USER_CANCEL
,
isRefundDeliveryFee
);
if
(
baseResponse
!=
null
)
{
return
baseResponse
;
}
// 删除订单 通知活动添加商品库存
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
());
}
else
{
//TODO 申请取消配送单
CancelOrderRequest
cancelOrderRequest
=
new
CancelOrderRequest
();
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
cancelOrderRequest
.
setStoreId
(
orderBean
.
getShopId
());
cancelOrderRequest
.
setOrderId
(
orderBean
.
getOid
());
cancelOrderRequest
.
setOrderClient
(
orderAdapter
.
getNewOrderClient
(
orderBean
.
getSource
()));
//传入的售后单类型为:2:售中用户取消 8:售后申请
cancelOrderRequest
.
setAfterSalesType
(
AfterSalesType
.
USER_CANCEL
);
cancelOrderRequest
.
setReason
(
orderRefundVo
.
getReason
());
cancelOrderRequest
.
setReqRemark
(
orderRefundVo
.
getRemarks
());
cancelOrderRequest
.
setOperator
(
orderBean
.
getUserName
());
cancelOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
cancelOrderRequest
.
setRefundDeliveryAmount
(
isRefundDeliveryFee
);
BaseOrderResponse
baseResponseDto
=
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
baseResponseDto
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
baseResponseDto
.
getErrmsg
());
}
if
(
orderBean
.
getAmount
()
>
0
)
{
sendPosMessage
(
partnerId
,
orderBean
.
getShopId
());
}
//通知小助手发送申请退款公众号订阅消息
sendApplyRefundSubscriptionNotice
(
orderBean
,
orderRefundVo
);
//已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票
printApplyRefundSmallTicket
(
orderBean
,
orderRefundVo
);
}
}
return
ResponseUtil
.
success
();
}
/**
* 商家未接单,取消订单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
*
* @param orderRefundVo
* @param orderBean
*/
private
BaseResponse
partnerNoTakeOrder
(
OrderRefundVo
orderRefundVo
,
OrderBean
orderBean
,
String
fatherOrderId
,
AfterSalesType
afterSalesType
,
Boolean
isRefundDeliveryFee
)
{
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
response
=
null
;
Long
refundId
=
System
.
currentTimeMillis
();
String
partnerId
=
orderBean
.
getCompanyId
();
int
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
//TODO 取消配送单
if
(
orderBean
.
getAmount
()
!=
0
)
{
//调用支付退款
com
.
freemud
.
sdk
.
api
.
assortment
.
payment
.
request
.
OrderRefundRequest
orderPayRefundRequest
=
orderAdapter
.
getOrderPayRefundRequest
(
orderBean
,
refundId
,
fatherOrderId
);
response
=
standardPaymentService
.
orderRefund
(
orderPayRefundRequest
,
LogTreadLocal
.
getTrackingNo
());
if
(
response
==
null
||
response
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
response
.
getCode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
}
//获取支付返回退款状态
state
=
response
.
getData
().
getRefundStatus
()
==
null
?
PayRefundStatus
.
SUCCESS
.
getCode
()
:
response
.
getData
().
getRefundStatus
();
}
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
partnerId
,
afterSalesType
,
orderRefundVo
.
getReason
(),
LogTreadLocal
.
getTrackingNo
(),
refundId
.
toString
());
cancelOrderRequest
.
setOperator
(
orderBean
.
getUserName
());
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
if
(
PayRefundStatus
.
RUNNING
.
getCode
().
intValue
()
==
state
)
{
// 退款中
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
RETURN_COMPLETE
.
getCreateEvent
());
}
else
if
(
PayRefundStatus
.
SUCCESS
.
getCode
().
intValue
()
==
state
)
{
//退款成功
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
}
cancelOrderRequest
.
setReqRemark
(
orderRefundVo
.
getRemarks
());
cancelOrderRequest
.
setRefundDeliveryAmount
(
isRefundDeliveryFee
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
if
(
baseOrderResponse
==
null
||
baseOrderResponse
.
getData
()
==
null
||
!
ObjectUtils
.
equals
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE
,
baseOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
}
return
null
;
}
/**
* 发送pos端消息
*/
public
void
sendPosMessage
(
String
partnerId
,
String
storeId
)
{
PushMessageNoticeDto
pushMessageNoticeDto
=
messageNoticeAdapter
.
convent2PushMessageNoticeDto
(
2
,
partnerId
,
storeId
,
null
,
null
,
null
,
null
);
messageNoticeClient
.
createMessage
(
pushMessageNoticeDto
,
LogThreadLocal
.
getTrackingNo
());
}
/**
* 通知小助手发送申请退款公众号订阅消息
* @param orderBean
*/
public
void
sendApplyRefundSubscriptionNotice
(
OrderBean
orderBean
,
OrderRefundVo
request
)
{
LogUtil
.
debug
(
"sendApplyRefundSubscriptionNotice"
,
JSONObject
.
toJSONString
(
request
),
null
);
String
partnerId
=
orderBean
.
getCompanyId
();
String
shopId
=
orderBean
.
getShopId
();
if
(
orderBean
.
getExtInfo
()
==
null
){
return
;
}
OrderExtInfoDto
extInfo
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
if
(
extInfo
==
null
||
extInfo
.
getAppid
()
==
null
){
return
;
}
AssortmentOpenPlatformWxappAuthorizer
authorizerAppid
=
wxappAuthorizerManager
.
findAuthorizerByWxAppId
(
extInfo
.
getAppid
());
if
(
authorizerAppid
==
null
){
return
;
}
String
accessToken
=
authorizerAppid
.
getAuthorizerAccessToken
();
String
orderId
=
orderBean
.
getOid
();
MpTemplateMsg
template
=
new
MpTemplateMsg
();
MpTemplateMsg
.
TemplateMsgData
data
=
new
MpTemplateMsg
.
TemplateMsgData
();
MpTemplateMsgDataValue
first
=
new
MpTemplateMsgDataValue
();
first
.
setValue
(
"用户申请退款"
);
MpTemplateMsgDataValue
keyword1
=
new
MpTemplateMsgDataValue
();
keyword1
.
setValue
(
orderId
);
MpTemplateMsgDataValue
keyword2
=
new
MpTemplateMsgDataValue
();
Double
amount
=
orderBean
.
getAmount
()
/
100.0
D
;
keyword2
.
setValue
(
amount
.
toString
()+
" 元"
);
MpTemplateMsgDataValue
keyword3
=
new
MpTemplateMsgDataValue
();
keyword3
.
setValue
(
orderBean
.
getGmtPay
()
==
null
?
""
:
DateUtil
.
convert2String
(
new
Date
(
orderBean
.
getGmtPay
()),
"yyyy-MM-dd HH:mm:ss"
));
MpTemplateMsgDataValue
keyword4
=
new
MpTemplateMsgDataValue
();
keyword4
.
setValue
(
orderBean
.
getUserName
());
MpTemplateMsgDataValue
keyword5
=
new
MpTemplateMsgDataValue
();
keyword5
.
setValue
(
orderBean
.
getPhone
());
MpTemplateMsgDataValue
remark
=
new
MpTemplateMsgDataValue
();
remark
.
setValue
(
request
.
getReason
()+
","
+
request
.
getRemarks
());
data
.
setFirst
(
first
);
data
.
setKeyword1
(
keyword1
);
data
.
setKeyword2
(
keyword2
);
data
.
setKeyword3
(
keyword3
);
data
.
setKeyword4
(
keyword4
);
data
.
setKeyword5
(
keyword5
);
data
.
setRemark
(
remark
);
template
.
setData
(
data
);
MessagePushNewMqBody
messagePushMqBody
=
new
MessagePushNewMqBody
();
messagePushMqBody
.
setPartnerId
(
partnerId
);
messagePushMqBody
.
setAccessToken
(
accessToken
);
messagePushMqBody
.
setTemplate
(
template
);
messagePushMqBody
.
setStoreId
(
shopId
);
messagePushMqBody
.
setOrderId
(
orderId
);
messagePushMqBody
.
setWxappid
(
extInfo
.
getAppid
());
Header
header
=
new
Header
(
MQAction
.
INSERT
.
getAction
(),
"order-application-service-api"
,
orderId
,
MessageOfficialRefundPushMqConfig
.
MESSAGE_PUSH_ORDER_REFUND_QUEUE
);
MQMessage
<
MessagePushNewMqBody
>
message
=
new
MQMessage
<>(
header
,
messagePushMqBody
);
mqService
.
convertAndSend
(
MessageOfficialRefundPushMqConfig
.
MESSAGE_PUSH_EXCHANGE_TOPIC
,
MessageOfficialRefundPushMqConfig
.
MESSAGE_PUSH_ORDER_REFUND_QUEUE_EKY
,
message
);
}
return
list
;
/**
* 申请退款小票打印
*
* @param orderBean
* @param orderRefundVo
*/
private
void
printApplyRefundSmallTicket
(
OrderBean
orderBean
,
OrderRefundVo
orderRefundVo
)
{
// 有云打印机 打印小票,杯贴
try
{
List
<
AssortmentCloudPrinter
>
storePrinters
=
cloudPrinterManager
.
getStorePrinters
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
());
if
(
null
!=
storePrinters
&&
storePrinters
.
size
()
>
0
)
{
boolean
printerStatus
=
false
;
for
(
AssortmentCloudPrinter
cloudPrinter
:
storePrinters
)
{
if
(
null
!=
cloudPrinter
.
getStatus
()
&&
cloudPrinter
.
getStatus
()
==
1
)
{
printerStatus
=
true
;
}
}
//在线打印
if
(
printerStatus
)
{
OrderPrintDto
orderPrintDto
=
orderAdapter
.
convert2OrderPrintDto
(
orderBean
);
String
reason
=
orderRefundVo
.
getReason
();
if
(
StringUtils
.
isNotBlank
(
orderRefundVo
.
getRemarks
()))
{
reason
=
reason
+
","
+
orderRefundVo
.
getRemarks
();
}
orderPrintDto
.
setRemark
(
reason
);
fmAssistantCloudPrintClient
.
applyRefundPrint
(
orderPrintDto
);
}
}
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
"applyRefundPrint_error"
,
null
,
null
,
e
);
}
}
/**
...
...
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/MCCafeOrderCenterSdkServiceImpl.java
View file @
4f2e0986
...
...
@@ -152,19 +152,19 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
// }
// }
// 扣减积分,扣减失败冲正积分返回错误
UserScoreRequest
userScoreRequest
=
orderSdkAdapter
.
convent2UserScoreRequest
(
orderBean
,
accounts
,
true
);
if
(
userScoreRequest
!=
null
)
{
BaseResponse
userScoreResponse
=
memberScoreService
.
useScore
(
userScoreRequest
,
""
);
if
(!
ObjectUtils
.
equals
(
RESPONSE_SUCCESS_STR
,
userScoreResponse
.
getCode
()))
{
//TODO 失败取消订单,异步冲正库存
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
AfterSalesType
.
SYSTEM_CANCEL
,
"积分不足"
,
""
,
null
);
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity
(
orderBean
,
mqMessageRequest
.
getBackOrdersNotifyActivityQueue
(),
mqMessageRequest
.
getBackOrdersNotifyActivityExchange
());
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
userScoreResponse
.
getCode
(),
"积分不足"
);
}
}
//
UserScoreRequest userScoreRequest = orderSdkAdapter.convent2UserScoreRequest(orderBean, accounts, true);
//
if (userScoreRequest != null) {
//
BaseResponse userScoreResponse = memberScoreService.useScore(userScoreRequest, "");
//
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, userScoreResponse.getCode())) {
//
//TODO 失败取消订单,异步冲正库存
//
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
//
AfterSalesType.SYSTEM_CANCEL, "积分不足", "", null);
//
orderCenterSdkService.orderCancel(cancelOrderRequest);
//
//失败异步冲正库存,取消订单
//
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
//
return BaseOrderResponse.getErrorBaseOrderResponse(userScoreResponse.getCode(), "积分不足");
//
}
//
}
// CouponBaseResponse couponBaseResponse = couponClientService.lock(orderBean, accounts);
// if (couponBaseResponse!=null){
...
...
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