Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
caosy
/
fun-golf-service
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
1
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d2837ea8
authored
Nov 29, 2018
by
chongli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
小程序赛事和单定场加入使用余额的支持
parent
c98a22bf
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
19 deletions
src/main/java/com/ctrip/fun/golf/service/payment/AbstractNotifyService.java
src/main/java/com/ctrip/fun/golf/service/payment/AbstractNotifyService.java
View file @
d2837ea8
...
...
@@ -132,27 +132,61 @@ public abstract class AbstractNotifyService extends CorePaymentService {
if
(
notifyMap
.
get
(
"return_code"
).
equals
(
"SUCCESS"
)){
String
orderNo
=
notifyMap
.
get
(
"out_trade_no"
).
toString
();
//商户订单号
Order
order
=
this
.
orderDao
.
getAndLockOrderByOrderNo
(
Long
.
parseLong
(
orderNo
));
if
(
notifyMap
.
get
(
"result_code"
).
equals
(
"SUCCESS"
)){
// 4、设置订单的状态:除去扣款失败,增加已扣款状态
order
.
setProcessStatus
(
order
.
getProcessStatus
()
&
(
OrderStatusBitEnum
.
getSumStatusValue
()
-
OrderStatusBitEnum
.
DEDUCT_FAILED
.
getValue
()));
order
.
setProcessStatus
(
order
.
getProcessStatus
()
|
OrderStatusBitEnum
.
DEDUCTED
.
getValue
());
// 5、扣除现金券、账户余额、抵用发票的积分、以及投保动作(此步骤中基本每一步都是重启事务)
// 5.1、扣除现金券
if
(
order
.
getVoucherAmount
().
doubleValue
()
>
0
)
{
try
{
this
.
voucherService
.
userVoucher
(
order
.
getVoucherCount
(),
order
.
getOrderNo
(),
order
.
getVoucherIDList
());
}
catch
(
Exception
e
)
{
logger
.
warn
(
e
.
getMessage
(),
e
);
handPayException
(
order
,
e
);
//重复回调不做处理
if
((
order
.
getProcessStatus
()
&
OrderStatusBitEnum
.
DEDUCTED
.
getValue
())!=
OrderStatusBitEnum
.
DEDUCTED
.
getValue
()){
// 4、设置订单的状态:除去扣款失败,增加已扣款状态
order
.
setProcessStatus
(
order
.
getProcessStatus
()
&
(
OrderStatusBitEnum
.
getSumStatusValue
()
-
OrderStatusBitEnum
.
DEDUCT_FAILED
.
getValue
()));
order
.
setProcessStatus
(
order
.
getProcessStatus
()
|
OrderStatusBitEnum
.
DEDUCTED
.
getValue
());
// 5、扣除现金券、账户余额、抵用发票的积分、以及投保动作(此步骤中基本每一步都是重启事务)
// 5.1、扣除现金券
if
(
order
.
getVoucherAmount
().
doubleValue
()
>
0
)
{
try
{
this
.
voucherService
.
userVoucher
(
order
.
getVoucherCount
(),
order
.
getOrderNo
(),
order
.
getVoucherIDList
());
}
catch
(
Exception
e
)
{
logger
.
warn
(
e
.
getMessage
(),
e
);
handPayException
(
order
,
e
);
}
}
}
//6、更新订单信息(状态)
this
.
orderDao
.
update
(
order
);
this
.
doPaySuccess
(
order
);
// 5.2、扣除账户余额
if
(
order
.
getPrePayCardAmount
().
doubleValue
()
>
0
)
{
try
{
this
.
userService
.
deductPrepayCardAmount
(
order
.
getUid
(),
order
.
getPrePayCardAmount
());
order
.
setPrePayCardDeductFlag
(
PrePayCardStatusEnum
.
USED
.
getValue
());
}
catch
(
Exception
e
)
{
logger
.
warn
(
e
.
getMessage
(),
e
);
handPayException
(
order
,
e
);
}
}
// 5.4、最后投保动作
if
(
order
.
getCancelStatus
()
!=
1
)
{
// 当订单前面动作都成功,没有取消订单时,进行投保操作
if
(
order
.
getInsuranceAmount
().
doubleValue
()
>
0
&&
order
.
getInsuranceStatus
()
!=
OrderInsuranceStatusEnum
.
INSURED
.
getValue
())
{
// 保险金额大于0,并且保险状态不是已投保
try
{
boolean
isInsuranceSuccess
=
insuranceProcessService
.
newExecuteCreateAndSendInsureRequest
(
order
.
getOrderId
());
if
(!
isInsuranceSuccess
)
{
throw
new
ServiceException
(
"发送保险报文失败"
);
}
order
.
setInsuranceStatus
(
OrderInsuranceStatusEnum
.
INSURED
.
getValue
());
}
catch
(
Exception
e
)
{
logger
.
warn
(
e
.
getMessage
(),
e
);
handPayException
(
order
,
e
);
}
}
}
//6、更新订单信息(状态)
this
.
orderDao
.
update
(
order
);
this
.
doPaySuccess
(
order
);
}
}
else
{
if
(
order
.
getOrderStatusEnum
()
==
OrderStatusEnum
.
CHARGING
&&
order
.
getCancelStatus
()
==
0
)
{
this
.
doPayFail
(
order
);
...
...
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