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
38ec88a1
Commit
38ec88a1
authored
Feb 29, 2024
by
程裕兵
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:cashier
parent
ff44d57d
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
410 additions
and
5 deletions
+410
-5
api/src/main/java/com/jiejing/fitness/finance/api/cashier/BrandCashierApi.java
+4
-3
api/src/main/java/com/jiejing/fitness/finance/api/cashier/BrandCashierApiFallback.java
+23
-1
app/src/main/java/com/jiejing/fitness/finance/app/controller/cashier/BrandCashierController.java
+43
-1
repository/src/main/java/com/jiejing/fitness/finance/repository/query/PageBrandCashierRecordQuery.java
+92
-0
repository/src/main/java/com/jiejing/fitness/finance/repository/service/BrandCashierRecordRpService.java
+53
-0
service/src/main/java/com/jiejing/fitness/finance/service/cashier/BrandCashierService.java
+38
-0
service/src/main/java/com/jiejing/fitness/finance/service/cashier/convert/CashierConvert.java
+34
-0
service/src/main/java/com/jiejing/fitness/finance/service/cashier/impl/BrandCashierServiceImpl.java
+50
-0
service/src/main/java/com/jiejing/fitness/finance/service/cashier/params/PageBrandCashierParams.java
+73
-0
No files found.
api/src/main/java/com/jiejing/fitness/finance/api/cashier/BrandCashierApi.java
View file @
38ec88a1
package
com
.
jiejing
.
fitness
.
finance
.
api
.
cashier
;
import
com.jiejing.common.model.JsonResult
;
import
com.jiejing.common.model.PageVO
;
import
com.jiejing.fitness.finance.api.cashier.request.GetBrandCashierByIdRequest
;
import
com.jiejing.fitness.finance.api.cashier.request.ListBrandCashierByOrderNoRequest
;
...
...
@@ -21,14 +22,14 @@ public interface BrandCashierApi {
@ApiOperation
(
value
=
"分页筛选收银流水"
,
tags
=
{
TAG
})
@PostMapping
(
value
=
"/private/brandCashier/page"
)
PageVO
<
BrandCashierRecordVO
>
page
(
PageBrandCashierRequest
request
);
JsonResult
<
PageVO
<
BrandCashierRecordVO
>
>
page
(
PageBrandCashierRequest
request
);
@ApiOperation
(
value
=
"查询收银流水详情"
,
tags
=
{
TAG
})
@PostMapping
(
value
=
"/private/brandCashier/getById"
)
BrandCashierRecordVO
getById
(
GetBrandCashierByIdRequest
request
);
JsonResult
<
BrandCashierRecordVO
>
getById
(
GetBrandCashierByIdRequest
request
);
@ApiOperation
(
value
=
"根据订单号查询收银列表"
,
tags
=
{
TAG
})
@PostMapping
(
value
=
"/private/brandCashier/getById"
)
List
<
BrandCashierRecordVO
>
listByOrderNo
(
ListBrandCashierByOrderNoRequest
request
);
JsonResult
<
List
<
BrandCashierRecordVO
>
>
listByOrderNo
(
ListBrandCashierByOrderNoRequest
request
);
}
api/src/main/java/com/jiejing/fitness/finance/api/cashier/BrandCashierApiFallback.java
View file @
38ec88a1
package
com
.
jiejing
.
fitness
.
finance
.
api
.
cashier
;
import
com.jiejing.common.model.JsonResult
;
import
com.jiejing.common.model.PageVO
;
import
com.jiejing.fitness.finance.api.cashier.request.GetBrandCashierByIdRequest
;
import
com.jiejing.fitness.finance.api.cashier.request.ListBrandCashierByOrderNoRequest
;
import
com.jiejing.fitness.finance.api.cashier.request.PageBrandCashierRequest
;
import
com.jiejing.fitness.finance.api.cashier.vo.BrandCashierRecordVO
;
import
feign.hystrix.FallbackFactory
;
import
java.util.List
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
...
...
@@ -14,6 +21,21 @@ public class BrandCashierApiFallback implements FallbackFactory<BrandCashierApi>
@Override
public
BrandCashierApi
create
(
Throwable
throwable
)
{
return
null
;
return
new
BrandCashierApi
()
{
@Override
public
JsonResult
<
PageVO
<
BrandCashierRecordVO
>>
page
(
PageBrandCashierRequest
request
)
{
return
JsonResult
.
rpcError
();
}
@Override
public
JsonResult
<
BrandCashierRecordVO
>
getById
(
GetBrandCashierByIdRequest
request
)
{
return
JsonResult
.
rpcError
();
}
@Override
public
JsonResult
<
List
<
BrandCashierRecordVO
>>
listByOrderNo
(
ListBrandCashierByOrderNoRequest
request
)
{
return
JsonResult
.
rpcError
();
}
};
}
}
app/src/main/java/com/jiejing/fitness/finance/app/controller/cashier/BrandCashierController.java
View file @
38ec88a1
package
com
.
jiejing
.
fitness
.
finance
.
app
.
controller
.
cashier
;
import
com.jiejing.common.model.JsonResult
;
import
com.jiejing.common.model.PageVO
;
import
com.jiejing.common.utils.convert.BeanUtil
;
import
com.jiejing.fitness.finance.api.cashier.BrandCashierApi
;
import
com.jiejing.fitness.finance.api.cashier.request.GetBrandCashierByIdRequest
;
import
com.jiejing.fitness.finance.api.cashier.request.ListBrandCashierByOrderNoRequest
;
import
com.jiejing.fitness.finance.api.cashier.request.PageBrandCashierRequest
;
import
com.jiejing.fitness.finance.api.cashier.vo.BrandCashierRecordVO
;
import
com.jiejing.fitness.finance.service.cashier.BrandCashierService
;
import
com.jiejing.fitness.finance.service.cashier.params.PageBrandCashierParams
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.List
;
import
javax.annotation.Resource
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author chengyubing
* @since 2024/2/29 10:41
*/
public
class
BrandCashierController
{
@RestController
public
class
BrandCashierController
implements
BrandCashierApi
{
@Resource
private
BrandCashierService
brandCashierService
;
@ApiOperation
(
value
=
"分页筛选收银流水"
,
tags
=
{
TAG
})
@PostMapping
(
value
=
"/private/brandCashier/page"
)
@Override
public
JsonResult
<
PageVO
<
BrandCashierRecordVO
>>
page
(
PageBrandCashierRequest
request
)
{
PageBrandCashierParams
params
=
BeanUtil
.
map
(
request
,
PageBrandCashierParams
.
class
);
return
JsonResult
.
success
(
brandCashierService
.
page
(
params
));
}
@ApiOperation
(
value
=
"查询收银流水详情"
,
tags
=
{
TAG
})
@PostMapping
(
value
=
"/private/brandCashier/getById"
)
@Override
public
JsonResult
<
BrandCashierRecordVO
>
getById
(
GetBrandCashierByIdRequest
request
)
{
return
JsonResult
.
success
(
brandCashierService
.
getById
(
request
.
getId
()));
}
@ApiOperation
(
value
=
"根据订单号查询收银列表"
,
tags
=
{
TAG
})
@PostMapping
(
value
=
"/private/brandCashier/getById"
)
@Override
public
JsonResult
<
List
<
BrandCashierRecordVO
>>
listByOrderNo
(
ListBrandCashierByOrderNoRequest
request
)
{
return
JsonResult
.
success
(
brandCashierService
.
listByOrderNo
(
request
.
getOrderNo
()));
}
}
repository/src/main/java/com/jiejing/fitness/finance/repository/query/PageBrandCashierRecordQuery.java
0 → 100644
View file @
38ec88a1
package
com
.
jiejing
.
fitness
.
finance
.
repository
.
query
;
import
com.jiejing.fitness.finance.api.enums.BrandCashierTransStateEnums
;
import
com.jiejing.fitness.finance.api.enums.BrandCashierTransTypeEnums
;
import
com.jiejing.paycenter.common.enums.merchant.SubChannelEnums
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 品牌收银流水分页
*
* @author chengyubing
* @since 2024/2/29 11:12
*/
@Data
public
class
PageBrandCashierRecordQuery
{
/**
* 场馆订单号
*/
private
String
orderNo
;
/**
* 交易流水号
*/
private
String
transNo
;
/**
* 三方交易单号
*/
private
String
thirdTransNo
;
/**
* 场馆ID
*/
private
String
studioId
;
/**
* 购买人姓名
*/
private
String
buyerName
;
/**
* 交易状态
*/
private
BrandCashierTransStateEnums
transState
;
/**
* 业务订单类型(来源)
*/
private
Integer
orderType
;
/**
* 交易类型:PAY-收款;REFUND-退款;
*/
private
BrandCashierTransTypeEnums
transType
;
/**
* 交易方式
*/
private
SubChannelEnums
subChannel
;
/**
* 交易创建开始时间
*/
private
Date
createStartTime
;
/**
* 交易创建结束时间
*/
private
Date
createEndTime
;
/**
* 交易成功开始时间
*/
private
Date
successStartTime
;
/**
* 交易成功结束时间
*/
private
Date
successEndTime
;
/**
* 页码:0开始
*/
private
Integer
current
;
/**
* 分页大小
*/
private
Integer
size
;
}
repository/src/main/java/com/jiejing/fitness/finance/repository/service/BrandCashierRecordRpService.java
View file @
38ec88a1
...
...
@@ -14,11 +14,15 @@
package
com
.
jiejing
.
fitness
.
finance
.
repository
.
service
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.jiejing.common.utils.text.StringUtil
;
import
com.jiejing.fitness.finance.repository.entity.BrandCashierRecord
;
import
com.jiejing.fitness.finance.repository.mapper.BrandCashierRecordMapper
;
import
com.jiejing.fitness.finance.repository.query.PageBrandCashierRecordQuery
;
import
com.jiejing.mbp.MapperRepoService
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
org.springframework.data.domain.Page
;
import
org.springframework.stereotype.Service
;
/**
...
...
@@ -36,4 +40,53 @@ public class BrandCashierRecordRpService extends
return
this
.
baseMapper
.
sumRefundActualAmountByPayTransNo
(
payTransNo
);
}
public
List
<
BrandCashierRecord
>
listByOrderNo
(
String
orderNo
)
{
QueryWrapper
<
BrandCashierRecord
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
BrandCashierRecord
.
ORDER_NO
,
orderNo
);
return
this
.
baseMapper
.
selectList
(
wrapper
);
}
public
Page
<
BrandCashierRecord
>
page
(
PageBrandCashierRecordQuery
query
)
{
QueryWrapper
<
BrandCashierRecord
>
wrapper
=
new
QueryWrapper
<>();
if
(
StringUtil
.
isNotBlank
(
query
.
getOrderNo
()))
{
wrapper
.
eq
(
BrandCashierRecord
.
ORDER_NO
,
query
.
getOrderNo
());
}
if
(
StringUtil
.
isNotBlank
(
query
.
getTransNo
()))
{
wrapper
.
eq
(
BrandCashierRecord
.
TRANS_NO
,
query
.
getTransNo
());
}
if
(
StringUtil
.
isNotBlank
(
query
.
getThirdTransNo
()))
{
wrapper
.
eq
(
BrandCashierRecord
.
THIRD_TRANS_NO
,
query
.
getThirdTransNo
());
}
if
(
null
!=
query
.
getStudioId
())
{
wrapper
.
eq
(
BrandCashierRecord
.
STUDIO_ID
,
query
.
getStudioId
());
}
if
(
StringUtil
.
isNotBlank
(
query
.
getBuyerName
()))
{
wrapper
.
eq
(
BrandCashierRecord
.
BUYER_NAME
,
query
.
getBuyerName
());
}
if
(
null
!=
query
.
getTransState
())
{
wrapper
.
eq
(
BrandCashierRecord
.
TRANS_STATE
,
query
.
getTransState
());
}
if
(
null
!=
query
.
getOrderType
())
{
wrapper
.
eq
(
BrandCashierRecord
.
ORDER_TYPE
,
query
.
getOrderType
());
}
if
(
null
!=
query
.
getTransType
())
{
wrapper
.
eq
(
BrandCashierRecord
.
TRANS_TYPE
,
query
.
getTransType
());
}
if
(
null
!=
query
.
getSubChannel
())
{
wrapper
.
eq
(
BrandCashierRecord
.
SUB_CHANNEL
,
query
.
getSubChannel
());
}
if
(
null
!=
query
.
getCreateStartTime
())
{
wrapper
.
ge
(
BrandCashierRecord
.
CREATE_TIME
,
query
.
getCreateStartTime
());
}
if
(
null
!=
query
.
getCreateEndTime
())
{
wrapper
.
le
(
BrandCashierRecord
.
CREATE_TIME
,
query
.
getCreateEndTime
());
}
if
(
null
!=
query
.
getSuccessStartTime
())
{
wrapper
.
ge
(
BrandCashierRecord
.
SUCCESS_TIME
,
query
.
getSuccessStartTime
());
}
if
(
null
!=
query
.
getSuccessEndTime
())
{
wrapper
.
le
(
BrandCashierRecord
.
SUCCESS_TIME
,
query
.
getSuccessEndTime
());
}
return
this
.
findByWrapperPage
(
wrapper
,
query
.
getCurrent
(),
query
.
getSize
());
}
}
service/src/main/java/com/jiejing/fitness/finance/service/cashier/BrandCashierService.java
0 → 100644
View file @
38ec88a1
package
com
.
jiejing
.
fitness
.
finance
.
service
.
cashier
;
import
com.jiejing.common.model.PageVO
;
import
com.jiejing.fitness.finance.api.cashier.vo.BrandCashierRecordVO
;
import
com.jiejing.fitness.finance.service.cashier.params.PageBrandCashierParams
;
import
java.util.List
;
/**
* @author chengyubing
* @since 2024/2/29 11:05
*/
public
interface
BrandCashierService
{
/**
* 查询详情
*
* @param id ID
* @return 结果
*/
BrandCashierRecordVO
getById
(
Long
id
);
/**
* 根据订单号查询列表
*
* @param orderNo 订单号
* @return 结果
*/
List
<
BrandCashierRecordVO
>
listByOrderNo
(
String
orderNo
);
/**
* 分页
*
* @param params 参数
* @return 结果
*/
PageVO
<
BrandCashierRecordVO
>
page
(
PageBrandCashierParams
params
);
}
service/src/main/java/com/jiejing/fitness/finance/service/cashier/convert/CashierConvert.java
0 → 100644
View file @
38ec88a1
package
com
.
jiejing
.
fitness
.
finance
.
service
.
cashier
.
convert
;
import
com.google.common.collect.Lists
;
import
com.jiejing.common.model.PageVO
;
import
com.jiejing.common.utils.collection.CollectionUtil
;
import
com.jiejing.common.utils.convert.BeanUtil
;
import
com.jiejing.fitness.finance.api.cashier.vo.BrandCashierRecordVO
;
import
com.jiejing.fitness.finance.repository.entity.BrandCashierRecord
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
org.springframework.data.domain.Page
;
/**
* @author chengyubing
* @since 2024/2/29 11:09
*/
public
class
CashierConvert
{
public
static
BrandCashierRecordVO
convertVO
(
BrandCashierRecord
record
)
{
return
BeanUtil
.
map
(
record
,
BrandCashierRecordVO
.
class
);
}
public
static
List
<
BrandCashierRecordVO
>
convertList
(
List
<
BrandCashierRecord
>
list
)
{
if
(
CollectionUtil
.
isEmpty
(
list
))
{
return
Lists
.
newArrayList
();
}
return
list
.
stream
().
map
(
CashierConvert:
:
convertVO
).
collect
(
Collectors
.
toList
());
}
public
static
PageVO
<
BrandCashierRecordVO
>
convertPageVO
(
Page
<
BrandCashierRecord
>
page
)
{
return
PageVO
.
convert
(
page
,
convertList
(
page
.
getContent
()));
}
}
service/src/main/java/com/jiejing/fitness/finance/service/cashier/impl/BrandCashierServiceImpl.java
0 → 100644
View file @
38ec88a1
package
com
.
jiejing
.
fitness
.
finance
.
service
.
cashier
.
impl
;
import
com.jiejing.common.model.PageVO
;
import
com.jiejing.common.utils.convert.BeanUtil
;
import
com.jiejing.fitness.finance.api.cashier.vo.BrandCashierRecordVO
;
import
com.jiejing.fitness.finance.repository.entity.BrandCashierRecord
;
import
com.jiejing.fitness.finance.repository.query.PageBrandCashierRecordQuery
;
import
com.jiejing.fitness.finance.repository.service.BrandCashierRecordRpService
;
import
com.jiejing.fitness.finance.service.cashier.BrandCashierService
;
import
com.jiejing.fitness.finance.service.cashier.convert.CashierConvert
;
import
com.jiejing.fitness.finance.service.cashier.params.PageBrandCashierParams
;
import
java.util.List
;
import
javax.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.data.domain.Page
;
import
org.springframework.stereotype.Service
;
/**
* @author chengyubing
* @since 2024/2/29 11:08
*/
@Slf4j
@Service
public
class
BrandCashierServiceImpl
implements
BrandCashierService
{
@Resource
private
BrandCashierRecordRpService
brandCashierRecordRpService
;
@Override
public
BrandCashierRecordVO
getById
(
Long
id
)
{
BrandCashierRecord
record
=
brandCashierRecordRpService
.
getById
(
id
).
orElse
(
null
);
if
(
null
==
record
)
{
return
null
;
}
return
CashierConvert
.
convertVO
(
record
);
}
@Override
public
List
<
BrandCashierRecordVO
>
listByOrderNo
(
String
orderNo
)
{
List
<
BrandCashierRecord
>
list
=
brandCashierRecordRpService
.
listByOrderNo
(
orderNo
);
return
CashierConvert
.
convertList
(
list
);
}
@Override
public
PageVO
<
BrandCashierRecordVO
>
page
(
PageBrandCashierParams
params
)
{
PageBrandCashierRecordQuery
query
=
BeanUtil
.
map
(
params
,
PageBrandCashierRecordQuery
.
class
);
Page
<
BrandCashierRecord
>
page
=
brandCashierRecordRpService
.
page
(
query
);
return
CashierConvert
.
convertPageVO
(
page
);
}
}
service/src/main/java/com/jiejing/fitness/finance/service/cashier/params/PageBrandCashierParams.java
0 → 100644
View file @
38ec88a1
package
com
.
jiejing
.
fitness
.
finance
.
service
.
cashier
.
params
;
import
com.jiejing.fitness.finance.api.enums.BrandCashierTransStateEnums
;
import
com.jiejing.fitness.finance.api.enums.BrandCashierTransTypeEnums
;
import
com.jiejing.paycenter.common.enums.merchant.SubChannelEnums
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.util.Date
;
import
javax.validation.constraints.NotNull
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author chengyubing
* @since 2024/2/29 10:46
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
(
description
=
"品牌收银流水分页Params"
)
public
class
PageBrandCashierParams
{
@ApiModelProperty
(
value
=
"场馆订单号"
)
private
String
orderNo
;
@ApiModelProperty
(
value
=
"交易流水号"
)
private
String
transNo
;
@ApiModelProperty
(
"三方交易单号"
)
private
String
thirdTransNo
;
@ApiModelProperty
(
value
=
"场馆ID"
)
private
String
studioId
;
@ApiModelProperty
(
value
=
"购买人姓名"
)
private
String
buyerName
;
@ApiModelProperty
(
"交易状态"
)
private
BrandCashierTransStateEnums
transState
;
@ApiModelProperty
(
"业务订单类型(来源)"
)
private
Integer
orderType
;
@ApiModelProperty
(
"交易类型:PAY-收款;REFUND-退款;"
)
private
BrandCashierTransTypeEnums
transType
;
@ApiModelProperty
(
"交易方式"
)
private
SubChannelEnums
subChannel
;
@ApiModelProperty
(
value
=
"交易创建开始时间"
)
private
Date
createStartTime
;
@ApiModelProperty
(
value
=
"交易创建结束时间"
)
private
Date
createEndTime
;
@ApiModelProperty
(
value
=
"交易成功开始时间"
)
private
Date
successStartTime
;
@ApiModelProperty
(
value
=
"交易成功结束时间"
)
private
Date
successEndTime
;
@ApiModelProperty
(
value
=
"页码:0开始"
,
required
=
true
)
@NotNull
(
message
=
"页码不能为空"
)
private
Integer
current
;
@ApiModelProperty
(
value
=
"分页大小"
,
required
=
true
)
@NotNull
(
message
=
"分页大小不能为空"
)
private
Integer
size
;
}
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