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
d36cfa7f
Commit
d36cfa7f
authored
May 31, 2024
by
程裕兵
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:left transamount
parent
3cb4aef6
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
62 additions
and
3 deletions
+62
-3
api/src/main/java/com/jiejing/fitness/finance/api/cashier/vo/StudioCashierRecordVO.java
+6
-0
repository/src/main/java/com/jiejing/fitness/finance/repository/service/StudioCashierRecordRpService.java
+13
-1
service/src/main/java/com/jiejing/fitness/finance/service/cashier/convert/CashierConvert.java
+27
-0
service/src/main/java/com/jiejing/fitness/finance/service/cashier/impl/StudioCashierServiceImpl.java
+16
-2
No files found.
api/src/main/java/com/jiejing/fitness/finance/api/cashier/vo/StudioCashierRecordVO.java
View file @
d36cfa7f
...
@@ -107,6 +107,12 @@ public class StudioCashierRecordVO {
...
@@ -107,6 +107,12 @@ public class StudioCashierRecordVO {
@ApiModelProperty
(
"三方交易单号"
)
@ApiModelProperty
(
"三方交易单号"
)
private
String
thirdTransNo
;
private
String
thirdTransNo
;
@ApiModelProperty
(
"剩余可退金额(元)"
)
private
BigDecimal
leftTransAmount
;
@ApiModelProperty
(
"剩余可退实收金额(元)"
)
private
BigDecimal
leftActualAmount
;
@ApiModelProperty
(
"错误信息"
)
@ApiModelProperty
(
"错误信息"
)
private
String
failMessage
;
private
String
failMessage
;
...
...
repository/src/main/java/com/jiejing/fitness/finance/repository/service/StudioCashierRecordRpService.java
View file @
d36cfa7f
...
@@ -185,10 +185,22 @@ public class StudioCashierRecordRpService extends
...
@@ -185,10 +185,22 @@ public class StudioCashierRecordRpService extends
return
this
.
baseMapper
.
statisticRefund
(
query
);
return
this
.
baseMapper
.
statisticRefund
(
query
);
}
}
public
List
<
StudioCashierRecord
>
listByRelatedTransNo
(
Lo
ng
relatedTransNo
)
{
public
List
<
StudioCashierRecord
>
listByRelatedTransNo
(
Stri
ng
relatedTransNo
)
{
QueryWrapper
<
StudioCashierRecord
>
wrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
StudioCashierRecord
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
StudioCashierRecord
.
RELATED_TRANS_NO
,
relatedTransNo
);
wrapper
.
eq
(
StudioCashierRecord
.
RELATED_TRANS_NO
,
relatedTransNo
);
wrapper
.
orderByDesc
(
StudioCashierRecord
.
ID
);
wrapper
.
orderByDesc
(
StudioCashierRecord
.
ID
);
return
Optional
.
ofNullable
(
this
.
baseMapper
.
selectList
(
wrapper
)).
orElse
(
new
ArrayList
<>(
1
));
return
Optional
.
ofNullable
(
this
.
baseMapper
.
selectList
(
wrapper
)).
orElse
(
new
ArrayList
<>(
1
));
}
}
public
List
<
StudioCashierRecord
>
listByRelatedTransNos
(
List
<
String
>
relatedTransNos
)
{
QueryWrapper
<
StudioCashierRecord
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
in
(
StudioCashierRecord
.
RELATED_TRANS_NO
,
relatedTransNos
);
wrapper
.
orderByDesc
(
StudioCashierRecord
.
ID
);
return
Optional
.
ofNullable
(
this
.
baseMapper
.
selectList
(
wrapper
)).
orElse
(
new
ArrayList
<>(
1
));
}
public
Map
<
String
,
List
<
StudioCashierRecord
>>
mapByRelatedTransNos
(
List
<
String
>
payNos
)
{
return
this
.
listByRelatedTransNos
(
payNos
).
stream
()
.
collect
(
Collectors
.
groupingBy
(
StudioCashierRecord:
:
getRelatedTransNo
));
}
}
}
service/src/main/java/com/jiejing/fitness/finance/service/cashier/convert/CashierConvert.java
View file @
d36cfa7f
package
com
.
jiejing
.
fitness
.
finance
.
service
.
cashier
.
convert
;
package
com
.
jiejing
.
fitness
.
finance
.
service
.
cashier
.
convert
;
import
static
java
.
math
.
BigDecimal
.
ZERO
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.jiejing.common.model.PageVO
;
import
com.jiejing.common.model.PageVO
;
...
@@ -11,8 +13,13 @@ import com.jiejing.fitness.finance.api.cashier.vo.StudioCashierRecordVO;
...
@@ -11,8 +13,13 @@ import com.jiejing.fitness.finance.api.cashier.vo.StudioCashierRecordVO;
import
com.jiejing.fitness.finance.api.cashier.vo.StudioSettleVO
;
import
com.jiejing.fitness.finance.api.cashier.vo.StudioSettleVO
;
import
com.jiejing.fitness.finance.repository.entity.StudioCashierRecord
;
import
com.jiejing.fitness.finance.repository.entity.StudioCashierRecord
;
import
com.jiejing.fitness.finance.repository.entity.StudioSettleRecord
;
import
com.jiejing.fitness.finance.repository.entity.StudioSettleRecord
;
import
com.jiejing.fitness.finance.service.utils.MoneyUtil
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.Optional
;
import
java.util.function.BinaryOperator
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
...
@@ -37,6 +44,26 @@ public class CashierConvert {
...
@@ -37,6 +44,26 @@ public class CashierConvert {
return
list
.
stream
().
map
(
CashierConvert:
:
convertVO
).
collect
(
Collectors
.
toList
());
return
list
.
stream
().
map
(
CashierConvert:
:
convertVO
).
collect
(
Collectors
.
toList
());
}
}
public
static
List
<
StudioCashierRecordVO
>
convertList
(
List
<
StudioCashierRecord
>
list
,
Map
<
String
,
List
<
StudioCashierRecord
>>
payNoRefundMap
)
{
if
(
CollectionUtil
.
isEmpty
(
list
))
{
return
Lists
.
newArrayList
();
}
return
list
.
stream
()
.
map
(
e
->
convertVO
(
e
,
payNoRefundMap
.
getOrDefault
(
e
.
getTransNo
(),
new
ArrayList
<>(
1
))))
.
collect
(
Collectors
.
toList
());
}
public
static
StudioCashierRecordVO
convertVO
(
StudioCashierRecord
record
,
List
<
StudioCashierRecord
>
refunds
)
{
StudioCashierRecordVO
result
=
convertVO
(
record
);
result
.
setLeftTransAmount
(
MoneyUtil
.
subtract
(
record
.
getTransAmount
(),
refunds
.
stream
().
map
(
StudioCashierRecord:
:
getTransAmount
).
reduce
(
BigDecimal:
:
add
).
orElse
(
ZERO
)));
result
.
setLeftActualAmount
(
MoneyUtil
.
subtract
(
record
.
getActualAmount
(),
refunds
.
stream
().
map
(
StudioCashierRecord:
:
getActualAmount
).
reduce
(
BigDecimal:
:
add
).
orElse
(
ZERO
)));
return
result
;
}
public
static
PageVO
<
StudioCashierRecordVO
>
convertPageVO
(
Page
<
StudioCashierRecord
>
page
)
{
public
static
PageVO
<
StudioCashierRecordVO
>
convertPageVO
(
Page
<
StudioCashierRecord
>
page
)
{
return
PageVO
.
convert
(
page
,
convertList
(
page
.
getContent
()));
return
PageVO
.
convert
(
page
,
convertList
(
page
.
getContent
()));
}
}
...
...
service/src/main/java/com/jiejing/fitness/finance/service/cashier/impl/StudioCashierServiceImpl.java
View file @
d36cfa7f
...
@@ -2,11 +2,13 @@ package com.jiejing.fitness.finance.service.cashier.impl;
...
@@ -2,11 +2,13 @@ package com.jiejing.fitness.finance.service.cashier.impl;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.Lists
;
import
com.jiejing.common.exception.BizException
;
import
com.jiejing.common.exception.BizException
;
import
com.jiejing.common.model.PageVO
;
import
com.jiejing.common.model.PageVO
;
import
com.jiejing.common.utils.collection.CollectionUtil
;
import
com.jiejing.common.utils.collection.CollectionUtil
;
import
com.jiejing.common.utils.convert.BeanUtil
;
import
com.jiejing.common.utils.convert.BeanUtil
;
import
com.jiejing.common.utils.text.StringUtil
;
import
com.jiejing.common.utils.text.StringUtil
;
import
com.jiejing.fitness.enums.finance.BrandCashierTransTypeEnum
;
import
com.jiejing.fitness.finance.api.cashier.vo.StudioCashierRecordVO
;
import
com.jiejing.fitness.finance.api.cashier.vo.StudioCashierRecordVO
;
import
com.jiejing.fitness.finance.api.cashier.vo.StudioCashierStatisticVO
;
import
com.jiejing.fitness.finance.api.cashier.vo.StudioCashierStatisticVO
;
import
com.jiejing.fitness.finance.api.cashier.vo.StudioSettleVO
;
import
com.jiejing.fitness.finance.api.cashier.vo.StudioSettleVO
;
...
@@ -92,13 +94,24 @@ public class StudioCashierServiceImpl implements StudioCashierService {
...
@@ -92,13 +94,24 @@ public class StudioCashierServiceImpl implements StudioCashierService {
if
(
null
==
record
)
{
if
(
null
==
record
)
{
return
null
;
return
null
;
}
}
if
(
BrandCashierTransTypeEnum
.
PAY
.
getCode
().
equals
(
record
.
getTransType
()))
{
List
<
StudioCashierRecord
>
refunds
=
studioCashierRecordRpService
.
listByRelatedTransNo
(
record
.
getTransNo
());
return
CashierConvert
.
convertVO
(
record
,
refunds
);
}
return
CashierConvert
.
convertVO
(
record
);
return
CashierConvert
.
convertVO
(
record
);
}
}
@Override
@Override
public
List
<
StudioCashierRecordVO
>
listByOrderNo
(
String
orderNo
)
{
public
List
<
StudioCashierRecordVO
>
listByOrderNo
(
String
orderNo
)
{
List
<
StudioCashierRecord
>
list
=
studioCashierRecordRpService
.
listByOrderNo
(
orderNo
);
List
<
StudioCashierRecord
>
list
=
studioCashierRecordRpService
.
listByOrderNo
(
orderNo
);
return
CashierConvert
.
convertList
(
list
);
List
<
String
>
payNos
=
list
.
stream
()
.
filter
(
e
->
BrandCashierTransTypeEnum
.
PAY
.
getCode
().
equals
(
e
.
getTransType
()))
.
map
(
StudioCashierRecord:
:
getTransNo
)
.
collect
(
Collectors
.
toList
());
Map
<
String
,
List
<
StudioCashierRecord
>>
payNoRefundMap
=
studioCashierRecordRpService
.
mapByRelatedTransNos
(
payNos
);
return
CashierConvert
.
convertList
(
list
,
payNoRefundMap
);
}
}
@Override
@Override
...
@@ -148,7 +161,8 @@ public class StudioCashierServiceImpl implements StudioCashierService {
...
@@ -148,7 +161,8 @@ public class StudioCashierServiceImpl implements StudioCashierService {
@Override
@Override
public
List
<
StudioCashierRecordVO
>
listByRelatedTransNo
(
Long
relatedTransNo
)
{
public
List
<
StudioCashierRecordVO
>
listByRelatedTransNo
(
Long
relatedTransNo
)
{
List
<
StudioCashierRecord
>
records
=
studioCashierRecordRpService
.
listByRelatedTransNo
(
relatedTransNo
);
List
<
StudioCashierRecord
>
records
=
studioCashierRecordRpService
.
listByRelatedTransNo
(
relatedTransNo
.
toString
());
return
records
.
stream
().
map
(
CashierConvert:
:
convertVO
).
collect
(
Collectors
.
toList
());
return
records
.
stream
().
map
(
CashierConvert:
:
convertVO
).
collect
(
Collectors
.
toList
());
}
}
...
...
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