Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
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
order-group-application
order-group
Commits
5eef2c3d
Commit
5eef2c3d
authored
Sep 26, 2021
by
陈斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
校验订单
parent
9e91a17e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
33 additions
and
10 deletions
+33
-10
order-application-service/src/main/java/cn/freemud/adapter/OrderInvoiceAdapter.java
+26
-9
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+6
-1
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderInvoiceAdapter.java
View file @
5eef2c3d
...
...
@@ -47,6 +47,26 @@ public class OrderInvoiceAdapter {
);
/**
* 校验订单数据
* @param request
* @return
*/
public
BaseResponse
checkOrderData
(
CreateOrderInvoiceRequest
request
){
// 【1】. 订单去重判断
List
<
String
>
distinctOrderCodes
=
request
.
getOrderCodes
().
stream
().
distinct
().
collect
(
Collectors
.
toList
());
if
(
request
.
getOrderCodes
().
size
()
!=
distinctOrderCodes
.
size
()){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_CODES_REPEAT
);
}
// 【2】 单张发票包含的订单数量限制30
if
(
request
.
getOrderCodes
().
size
()
>
ORDER_INVOICE_NUM_LIMIT
){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_INVOINVE_LIMIT_30
);
}
return
ResponseUtil
.
success
();
}
/**
* 校验订单开票数据
* @return
*/
...
...
@@ -55,11 +75,8 @@ public class OrderInvoiceAdapter {
if
(
CollectionUtils
.
isEmpty
(
orders
)
||
orders
.
size
()
!=
request
.
getOrderCodes
().
size
()){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERY_ANY_ERR
);
}
// 【2】 单张发票包含的订单数量限制30
if
(
orders
.
size
()
>
ORDER_INVOICE_NUM_LIMIT
){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_INVOINVE_LIMIT_30
);
}
// 【3】 过滤订单状态&&实付金额是否符合开票原则
// 【2】 过滤订单状态&&实付金额是否符合开票原则
List
<
OrderBeanV1
>
orderBeanV1List
=
orders
.
stream
()
.
filter
(
x
->
canOpenOrderInvoiceStatus
.
contains
(
x
.
getStatus
()))
.
filter
(
x
->
x
.
getActualPayAmount
()
!=
null
).
collect
(
Collectors
.
toList
());
...
...
@@ -67,21 +84,21 @@ public class OrderInvoiceAdapter {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_INVOICE_OPEN_ERR
);
}
Long
totalActualPayAmount
=
orderBeanV1List
.
stream
().
map
(
e
->
e
.
getActualPayAmount
()).
reduce
(
Long:
:
sum
).
get
();
// 【
4
】 实际支付金额为0,不能开票
// 【
3
】 实际支付金额为0,不能开票
if
(
null
==
totalActualPayAmount
||
totalActualPayAmount
==
0
){
return
ResponseUtil
.
error
(
ResponseResult
.
ACTUALPAYAMOUNT_IS_ZERO
);
}
// 【
5
】 将前端传的实际支付金额和服务端查出订单【可开票状态】实际支付金额对比,如果不相等,不予开票
// 【
4
】 将前端传的实际支付金额和服务端查出订单【可开票状态】实际支付金额对比,如果不相等,不予开票
if
(
totalActualPayAmount
!=
request
.
getTotalActualPayAmount
()){
return
ResponseUtil
.
error
(
ResponseResult
.
ACTUALPAYAMOUNT_IS_ERROR
);
}
// 【
6
】 单张发票最大限制1000元,超过最大限额不能开票
// 【
5
】 单张发票最大限制1000元,超过最大限额不能开票
double
actualPayAmount2yuan
=
new
BigDecimal
(
totalActualPayAmount
)
.
divide
(
new
BigDecimal
(
100
),
2
,
BigDecimal
.
ROUND_HALF_UP
).
doubleValue
();
if
(
actualPayAmount2yuan
>
CommonsConstant
.
CONSTANTS_ONE_THOUSAND
){
return
ResponseUtil
.
error
(
ResponseResult
.
ACTUALPAYAMOUNT_OUT_OF_ONE_THOUSAND
);
}
// 【
7
】 查询请求订单号是否开过发票,如果存在订单已开过发票,不予处理
// 【
6
】 查询请求订单号是否开过发票,如果存在订单已开过发票,不予处理
QueryInvoiceByCodesRequest
queryInvoiceByCodesRequest
=
new
QueryInvoiceByCodesRequest
();
queryInvoiceByCodesRequest
.
setPartnerId
(
request
.
getPartnerId
());
queryInvoiceByCodesRequest
.
setOrderCodes
(
request
.
getOrderCodes
());
...
...
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
5eef2c3d
...
...
@@ -188,6 +188,7 @@ public enum ResponseResult {
ORDER_INVOICE_OPEN_ERR
(
"45081"
,
"订单状态不符合开票原则"
,
""
),
ORDER_INVOICE_QUERY_ERROR
(
"45082"
,
"订单发票查询失败"
,
""
),
ORDER_INVOICE_IS_OPENED
(
"45083"
,
"存在选中的订单已开过发票,请重新选择订单"
,
""
),
ORDER_CODES_REPEAT
(
"45084"
,
"同一次开票,选中的订单不能重复,请重新选择订单"
,
""
),
/**
* 售后单
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
5eef2c3d
...
...
@@ -4382,7 +4382,12 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
// 【1】. 查询订单详情
// 【1.1】. 校验订单数据
BaseResponse
checkOrderDataResponse
=
orderInvoiceAdapter
.
checkOrderData
(
request
);
if
(!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
checkOrderDataResponse
.
getCode
()))
{
return
checkOrderDataResponse
;
}
// 【1.2】. 查询订单详情
QueryOrdersResponse
orderResponse
=
this
.
getOrderList
(
request
.
getOrderCodes
());
if
(!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
orderResponse
.
getErrcode
())){
return
ResponseUtil
.
error
(
orderResponse
.
getErrcode
()+
""
,
orderResponse
.
getErrmsg
());
...
...
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