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
036262af
Commit
036262af
authored
May 11, 2024
by
程裕兵
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:refund
parent
ecff6b75
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
59 additions
and
22 deletions
+59
-22
api/src/main/java/com/jiejing/fitness/finance/api/merchant/request/StudioMerchantRefundRequest.java
+10
-1
service/src/main/java/com/jiejing/fitness/finance/service/pay/convert/RefundConvert.java
+36
-18
service/src/main/java/com/jiejing/fitness/finance/service/pay/impl/RefundServiceImpl.java
+0
-2
service/src/main/java/com/jiejing/fitness/finance/service/pay/params/StudioMerchantRefundParams.java
+13
-1
No files found.
api/src/main/java/com/jiejing/fitness/finance/api/merchant/request/StudioMerchantRefundRequest.java
View file @
036262af
package
com
.
jiejing
.
fitness
.
finance
.
api
.
merchant
.
request
;
import
com.jiejing.fitness.enums.finance.PayOrderTypeEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.math.BigDecimal
;
...
...
@@ -37,7 +38,15 @@ public class StudioMerchantRefundRequest {
@NotBlank
(
message
=
"退款原因不能为空"
)
private
String
refundReason
;
@ApiModelProperty
(
name
=
"上层业务退款单号"
)
@ApiModelProperty
(
name
=
"上层业务退款单号"
,
required
=
true
)
@NotBlank
(
message
=
"上层业务退款单号不能为空"
)
private
String
orderNo
;
@ApiModelProperty
(
name
=
"上层业务子订单号"
)
private
String
subOrderNo
;
@ApiModelProperty
(
name
=
"订单类型"
,
required
=
true
)
@NotNull
(
message
=
"订单类型不能为空"
)
private
PayOrderTypeEnum
orderType
;
}
service/src/main/java/com/jiejing/fitness/finance/service/pay/convert/RefundConvert.java
View file @
036262af
...
...
@@ -3,6 +3,7 @@ package com.jiejing.fitness.finance.service.pay.convert;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
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
;
...
...
@@ -24,24 +25,41 @@ public class RefundConvert {
public
static
StudioCashierRecord
convertRefundInit
(
StudioMerchantRefundParams
params
,
StudioCashierRecord
pay
,
BigDecimal
historyRefundActualAmount
)
{
StudioCashierRecord
record
=
BeanUtil
.
map
(
pay
,
StudioCashierRecord
.
class
);
record
.
setId
(
IdWorker
.
getId
());
record
.
setTransNo
(
record
.
getId
().
toString
());
record
.
setOrderNo
(
params
.
getOrderNo
());
record
.
setRelatedTransNo
(
params
.
getPayTransNo
());
record
.
setTransAmount
(
params
.
getTransAmount
());
record
.
setFeeRate
(
pay
.
getFeeRate
());
record
.
setFee
(
FeeUtil
.
calculateRefundFee
(
params
.
getTransAmount
(),
pay
.
getTransAmount
(),
pay
.
getActualAmount
(),
pay
.
getFee
(),
historyRefundActualAmount
));
record
.
setActualAmount
(
MoneyUtil
.
subtract
(
record
.
getTransAmount
(),
record
.
getFee
()));
record
.
setRemark
(
params
.
getRefundReason
());
record
.
setStudioId
(
params
.
getStudioId
());
record
.
setTransState
(
BrandCashierTransStateEnum
.
REFUND_INIT
.
getCode
());
record
.
setTradingTime
(
new
Date
());
record
.
setCreateTime
(
new
Date
());
record
.
setUpdateTime
(
new
Date
());
return
record
;
Long
id
=
IdWorker
.
getId
();
BigDecimal
fee
=
FeeUtil
.
calculateRefundFee
(
params
.
getTransAmount
(),
pay
.
getTransAmount
(),
pay
.
getActualAmount
(),
pay
.
getFee
(),
historyRefundActualAmount
);
BigDecimal
actualAmount
=
MoneyUtil
.
subtract
(
params
.
getTransAmount
(),
fee
);
Date
now
=
new
Date
();
return
StudioCashierRecord
.
builder
()
.
id
(
id
)
.
transNo
(
id
.
toString
())
.
orderNo
(
params
.
getOrderNo
())
.
businessNo
(
params
.
getBusinessNo
())
.
orderType
(
params
.
getOrderType
().
getCode
())
.
subOrderNo
(
params
.
getSubOrderNo
())
.
transType
(
BrandCashierTransTypeEnum
.
REFUND
.
getCode
())
.
brandId
(
pay
.
getBrandId
())
.
studioId
(
pay
.
getStudioId
())
.
studioName
(
pay
.
getStudioName
())
.
merchantId
(
pay
.
getMerchantId
())
.
merchantNo
(
pay
.
getMerchantNo
())
.
channelNo
(
pay
.
getChannelNo
())
.
subChannel
(
pay
.
getSubChannel
())
.
transAmount
(
params
.
getTransAmount
())
.
feeRate
(
pay
.
getFeeRate
())
.
fee
(
fee
)
.
actualAmount
(
actualAmount
)
.
transState
(
BrandCashierTransStateEnum
.
REFUND_INIT
.
getCode
())
.
buyerName
(
pay
.
getBuyerName
())
.
buyerPhone
(
pay
.
getBuyerPhone
())
.
goods
(
pay
.
getGoods
())
.
remark
(
params
.
getRefundReason
())
.
existRelatedTrans
(
true
)
.
relatedTransNo
(
params
.
getPayTransNo
())
.
tradingTime
(
now
)
.
createTime
(
now
)
.
updateTime
(
now
)
.
build
();
}
public
static
RefundPayRequest
convert
(
StudioMerchantRefundParams
params
,
StudioCashierRecord
record
)
{
...
...
service/src/main/java/com/jiejing/fitness/finance/service/pay/impl/RefundServiceImpl.java
View file @
036262af
...
...
@@ -34,12 +34,10 @@ import com.jiejing.paycenter.common.model.vo.RefundVO;
import
com.xiaomai.event.EventAgent
;
import
java.math.BigDecimal
;
import
java.time.temporal.ChronoUnit
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.concurrent.Executor
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
...
...
service/src/main/java/com/jiejing/fitness/finance/service/pay/params/StudioMerchantRefundParams.java
View file @
036262af
package
com
.
jiejing
.
fitness
.
finance
.
service
.
pay
.
params
;
import
com.jiejing.fitness.enums.finance.PayOrderTypeEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.math.BigDecimal
;
...
...
@@ -37,7 +38,18 @@ public class StudioMerchantRefundParams {
@NotBlank
(
message
=
"退款原因不能为空"
)
private
String
refundReason
;
@ApiModelProperty
(
name
=
"上层业务退款单号"
)
@ApiModelProperty
(
name
=
"上层业务退款ID"
,
required
=
true
)
@NotBlank
(
message
=
"上层业务退款ID不能为空"
)
private
String
orderNo
;
@ApiModelProperty
(
name
=
"上层业务退款订单号"
)
private
String
businessNo
;
@ApiModelProperty
(
name
=
"上层业务子订单号"
)
private
String
subOrderNo
;
@ApiModelProperty
(
name
=
"订单类型"
,
required
=
true
)
@NotNull
(
message
=
"订单类型不能为空"
)
private
PayOrderTypeEnum
orderType
;
}
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