Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fit-finance
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
fitness-server
fit-finance
Commits
3d6c49b3
Commit
3d6c49b3
authored
May 13, 2024
by
程裕兵
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:refund
parent
99bddebf
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
43 additions
and
11 deletions
+43
-11
service/src/main/java/com/jiejing/fitness/finance/service/pay/convert/RefundConvert.java
+27
-1
service/src/main/java/com/jiejing/fitness/finance/service/pay/impl/RefundServiceImpl.java
+16
-10
No files found.
service/src/main/java/com/jiejing/fitness/finance/service/pay/convert/RefundConvert.java
View file @
3d6c49b3
package
com
.
jiejing
.
fitness
.
finance
.
service
.
pay
.
convert
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.jiejing.common.exception.BizException
;
import
com.jiejing.common.utils.convert.BeanUtil
;
import
com.jiejing.fitness.enums.finance.BrandCashierTransStateEnum
;
import
com.jiejing.fitness.enums.finance.BrandCashierTransTypeEnum
;
import
com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO
;
import
com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO.CheckRefundCodeEnum
;
import
com.jiejing.fitness.finance.repository.entity.StudioCashierRecord
;
import
com.jiejing.fitness.finance.service.enums.FinanceErrorEnums
;
import
com.jiejing.fitness.finance.service.pay.params.StudioMerchantRefundParams
;
import
com.jiejing.fitness.finance.service.utils.FeeUtil
;
import
com.jiejing.fitness.finance.service.utils.MoneyUtil
;
...
...
@@ -99,7 +101,7 @@ public class RefundConvert {
case
PROCESS:
return
BrandCashierTransStateEnum
.
REFUNDING
;
default
:
return
null
;
throw
new
BizException
(
FinanceErrorEnums
.
NOT_SUPPORT_TYPE
)
;
}
}
...
...
@@ -129,4 +131,28 @@ public class RefundConvert {
return
StudioMerchantRefundVO
.
builder
().
code
(
code
.
getCode
()).
failMessage
(
code
.
getMessage
()).
build
();
}
public
static
RefundEvent
convertRefundEvent
(
StudioCashierRecord
refund
,
StudioMerchantRefundVO
vo
)
{
return
RefundEvent
.
builder
()
.
id
(
refund
.
getId
())
.
transNo
(
refund
.
getTransNo
())
.
thirdTransNo
(
vo
.
getThirdTransNo
())
.
refundState
(
convertTransState
(
vo
.
getRefundState
()).
getCode
())
.
failMessage
(
vo
.
getFailMessage
())
.
successTime
(
vo
.
getSuccessTime
())
.
updateTime
(
new
Date
())
.
build
();
}
public
static
RefundEvent
convertRefundEvent
(
StudioCashierRecord
refund
,
RefundVO
vo
)
{
return
RefundEvent
.
builder
()
.
id
(
refund
.
getId
())
.
transNo
(
refund
.
getTransNo
())
.
thirdTransNo
(
vo
.
getThirdTransNo
())
.
refundState
(
convertTransState
(
vo
.
getRefundState
()).
getCode
())
.
failMessage
(
vo
.
getFailMessage
())
.
successTime
(
vo
.
getSuccessTime
())
.
updateTime
(
new
Date
())
.
build
();
}
}
service/src/main/java/com/jiejing/fitness/finance/service/pay/impl/RefundServiceImpl.java
View file @
3d6c49b3
...
...
@@ -112,16 +112,15 @@ public class RefundServiceImpl implements RefundService {
StudioMerchantRefundVO
checkResult
=
this
.
checkBeforeMerchantRefund
(
params
);
if
(
CheckRefundCodeEnum
.
isFail
(
checkResult
.
getCode
()))
{
StudioCashierRecord
toModify
=
RefundConvert
.
convertRefundFail
(
refund
,
checkResult
);
studioCashierRecordRpService
.
updateById
(
toModify
);
this
.
refundCallback
(
RefundConvert
.
convertRefundEvent
(
refund
,
checkResult
));
return
checkResult
;
}
RefundPayRequest
request
=
RefundConvert
.
convert
(
params
,
refund
);
RefundVO
vo
=
payRpcService
.
refund
(
request
);
StudioCashierRecord
toModify
=
RefundConvert
.
convertRefund
(
refund
,
vo
);
studioCashierRecordRpService
.
updateById
(
toModify
);
this
.
refundCallback
(
RefundConvert
.
convertRefundEvent
(
refund
,
vo
)
);
return
RefundConvert
.
convertRefundVO
(
refund
,
vo
);
}
...
...
@@ -147,18 +146,25 @@ public class RefundServiceImpl implements RefundService {
}
private
void
doAfterRefund
(
RefundEvent
event
,
StudioCashierRecord
record
)
{
if
(!
TransStateEnums
.
SUCCESS
.
getCode
().
equals
(
event
.
getRefundState
()))
{
return
;
TransStateEnums
state
=
TransStateEnums
.
getByCode
(
event
.
getRefundState
());
switch
(
state
)
{
case
SUCCESS:
executor
.
execute
(()
->
this
.
sendRefundMessage
(
event
,
record
,
"CASHIER_REFUND_SUCCESS"
));
break
;
case
FAIL:
executor
.
execute
(()
->
this
.
sendRefundMessage
(
event
,
record
,
"CASHIER_REFUND_FAIL"
));
break
;
default
:
break
;
}
executor
.
execute
(()
->
this
.
sendRefundSuccessMessage
(
event
,
record
));
}
private
void
sendRefund
SuccessMessage
(
RefundEvent
e
,
StudioCashierRecord
record
)
{
private
void
sendRefund
Message
(
RefundEvent
e
,
StudioCashierRecord
record
,
String
bizType
)
{
List
<
Long
>
targetIds
=
this
.
getAdminIds
(
record
.
getStudioId
());
if
(
CollectionUtil
.
isEmpty
(
targetIds
))
{
return
;
}
List
<
Map
<
String
,
Object
>>
paramList
=
targetIds
.
stream
().
map
(
targetId
->
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>(
1
);
paramMap
.
put
(
"targetId"
,
targetId
);
...
...
@@ -174,7 +180,7 @@ public class RefundServiceImpl implements RefundService {
event
.
setCovertTarget
(
true
);
event
.
setEventId
(
IdWorker
.
getId
());
event
.
setSourceId
(
record
.
getStudioId
());
event
.
setBizType
(
"CASHIER_REFUND_SUCCESS"
);
event
.
setBizType
(
bizType
);
event
.
setParams
(
paramList
);
EventAgent
.
of
(
SendCommonMsgEvent
.
class
).
triggerEvent
(
event
);
}
...
...
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