Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
2e72796b
Commit
2e72796b
authored
Feb 05, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
检测订单是否超时未支付
parent
16faaf18
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
54 additions
and
0 deletions
+54
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
...ch/wx/impl/distribution/DistributionOrderServiceImpl.java
+54
-0
No files found.
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
View file @
2e72796b
...
@@ -3,6 +3,7 @@ package com.wwdz.ch.wx.impl.distribution;
...
@@ -3,6 +3,7 @@ package com.wwdz.ch.wx.impl.distribution;
import
com.github.pagehelper.PageInfo
;
import
com.github.pagehelper.PageInfo
;
import
com.wechat.pay.java.service.payments.model.Transaction
;
import
com.wechat.pay.java.service.payments.model.Transaction
;
import
com.wwdz.ch.core.api.wxpay.WxPayServiceApi
;
import
com.wwdz.ch.core.api.wxpay.WxPayServiceApi
;
import
com.wwdz.ch.core.consts.ConsignSaleEnum
;
import
com.wwdz.ch.core.consts.DistributionEnum
;
import
com.wwdz.ch.core.consts.DistributionEnum
;
import
com.wwdz.ch.core.consts.LogisticsEnum
;
import
com.wwdz.ch.core.consts.LogisticsEnum
;
import
com.wwdz.ch.core.type.PageSearchResult
;
import
com.wwdz.ch.core.type.PageSearchResult
;
...
@@ -12,10 +13,12 @@ import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
...
@@ -12,10 +13,12 @@ import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
import
com.wwdz.ch.db.dao.distribution.DistributorProfitDao
;
import
com.wwdz.ch.db.dao.distribution.DistributorProfitDao
;
import
com.wwdz.ch.db.dao.distribution.DistributorShareRecordDao
;
import
com.wwdz.ch.db.dao.distribution.DistributorShareRecordDao
;
import
com.wwdz.ch.db.dao.distribution.SupplierItemDao
;
import
com.wwdz.ch.db.dao.distribution.SupplierItemDao
;
import
com.wwdz.ch.db.domain.ConsignSale
;
import
com.wwdz.ch.db.domain.distribution.DistributionOrder
;
import
com.wwdz.ch.db.domain.distribution.DistributionOrder
;
import
com.wwdz.ch.db.domain.distribution.DistributorProfit
;
import
com.wwdz.ch.db.domain.distribution.DistributorProfit
;
import
com.wwdz.ch.db.domain.distribution.DistributorShareRecord
;
import
com.wwdz.ch.db.domain.distribution.DistributorShareRecord
;
import
com.wwdz.ch.db.domain.distribution.SupplierItem
;
import
com.wwdz.ch.db.domain.distribution.SupplierItem
;
import
com.wwdz.ch.db.dto.request.ConsignSaleRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto
;
import
com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderDetailVo
;
import
com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderDetailVo
;
...
@@ -177,6 +180,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -177,6 +180,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
DistributionOrder
orderUpdateDto
=
new
DistributionOrder
();
DistributionOrder
orderUpdateDto
=
new
DistributionOrder
();
orderUpdateDto
.
setDistributionOrderId
(
distributionOrderId
);
orderUpdateDto
.
setDistributionOrderId
(
distributionOrderId
);
orderUpdateDto
.
setLogisticsCode
(
dto
.
getLogisticsCode
());
orderUpdateDto
.
setLogisticsCode
(
dto
.
getLogisticsCode
());
orderUpdateDto
.
setWaybill
(
dto
.
getWaybill
());
orderUpdateDto
.
setDeliveryTime
(
new
Date
());
orderUpdateDto
.
setDeliveryTime
(
new
Date
());
orderUpdateDto
.
setState
(
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_SIGNED
.
getCode
());
orderUpdateDto
.
setState
(
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_SIGNED
.
getCode
());
distributionOrderDao
.
update
(
orderUpdateDto
);
distributionOrderDao
.
update
(
orderUpdateDto
);
...
@@ -190,6 +194,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -190,6 +194,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Override
@Override
public
Result
findOrderOfDistributor
(
DistributionOrderRequestDto
dto
)
{
public
Result
findOrderOfDistributor
(
DistributionOrderRequestDto
dto
)
{
try
{
try
{
//检查是否有超时未支付订单
checkPrePayTimeOut
(
null
,
dto
.
getSellerId
());
List
<
DistributionOrderVo
>
distributionOrderVoList
=
new
ArrayList
<>();
List
<
DistributionOrderVo
>
distributionOrderVoList
=
new
ArrayList
<>();
if
(
StringUtils
.
hasLength
(
dto
.
getSearchParam
()))
{
if
(
StringUtils
.
hasLength
(
dto
.
getSearchParam
()))
{
//判断查询条件是否为中文,是的话就根据商品名称模糊查询
//判断查询条件是否为中文,是的话就根据商品名称模糊查询
...
@@ -240,6 +246,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -240,6 +246,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Override
@Override
public
Result
findOrderDetailOfDistributor
(
DistributionOrderRequestDto
dto
)
{
public
Result
findOrderDetailOfDistributor
(
DistributionOrderRequestDto
dto
)
{
try
{
try
{
//检查订单是否超时未付款
checkPrePayTimeOut
(
dto
.
getDistributionOrderId
());
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
dto
.
getDistributionOrderId
());
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
dto
.
getDistributionOrderId
());
DistributionOrderDetailVo
distributionOrderDetailVo
=
new
DistributionOrderDetailVo
();
DistributionOrderDetailVo
distributionOrderDetailVo
=
new
DistributionOrderDetailVo
();
EntityMapper
.
copyAttribute
(
distributionOrder
,
distributionOrderDetailVo
);
EntityMapper
.
copyAttribute
(
distributionOrder
,
distributionOrderDetailVo
);
...
@@ -268,6 +276,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -268,6 +276,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
Instant
instant
=
date
.
toInstant
().
plus
(
Duration
.
ofHours
(
2
));
Instant
instant
=
date
.
toInstant
().
plus
(
Duration
.
ofHours
(
2
));
Date
time
=
Date
.
from
(
instant
);
Date
time
=
Date
.
from
(
instant
);
distributionOrderDetailVo
.
setPayEndTime
(
time
);
distributionOrderDetailVo
.
setPayEndTime
(
time
);
distributionOrderDetailVo
.
setProfit
(
PriceUtil
.
convertDoubleToString
(
profit
));
distributionOrderDetailVo
.
setProfit
(
PriceUtil
.
convertDoubleToString
(
profit
));
return
Result
.
success
(
distributionOrderDetailVo
);
return
Result
.
success
(
distributionOrderDetailVo
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -280,6 +289,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -280,6 +289,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Override
@Override
public
Result
findOrderOfUser
(
DistributionOrderRequestDto
dto
)
{
public
Result
findOrderOfUser
(
DistributionOrderRequestDto
dto
)
{
try
{
try
{
//检查是否有超时未支付订单
checkPrePayTimeOut
(
dto
.
getBuyerId
(),
null
);
List
<
DistributionOrderVo
>
distributionOrderVoList
=
new
ArrayList
<>();
List
<
DistributionOrderVo
>
distributionOrderVoList
=
new
ArrayList
<>();
if
(
StringUtils
.
hasLength
(
dto
.
getSearchParam
()))
{
if
(
StringUtils
.
hasLength
(
dto
.
getSearchParam
()))
{
//判断查询条件是否为中文,是的话就根据商品名称模糊查询
//判断查询条件是否为中文,是的话就根据商品名称模糊查询
...
@@ -332,6 +343,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -332,6 +343,8 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Override
@Override
public
Result
findOrderDetailOfUser
(
DistributionOrderRequestDto
dto
)
{
public
Result
findOrderDetailOfUser
(
DistributionOrderRequestDto
dto
)
{
try
{
try
{
//检查订单是否超时未付款
checkPrePayTimeOut
(
dto
.
getDistributionOrderId
());
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
dto
.
getDistributionOrderId
());
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
dto
.
getDistributionOrderId
());
DistributionOrderDetailVo
distributionOrderDetailVo
=
new
DistributionOrderDetailVo
();
DistributionOrderDetailVo
distributionOrderDetailVo
=
new
DistributionOrderDetailVo
();
EntityMapper
.
copyAttribute
(
distributionOrder
,
distributionOrderDetailVo
);
EntityMapper
.
copyAttribute
(
distributionOrder
,
distributionOrderDetailVo
);
...
@@ -348,10 +361,51 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -348,10 +361,51 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
Instant
instant
=
date
.
toInstant
().
plus
(
Duration
.
ofHours
(
2
));
Instant
instant
=
date
.
toInstant
().
plus
(
Duration
.
ofHours
(
2
));
Date
time
=
Date
.
from
(
instant
);
Date
time
=
Date
.
from
(
instant
);
distributionOrderDetailVo
.
setPayEndTime
(
time
);
distributionOrderDetailVo
.
setPayEndTime
(
time
);
long
diffInMillies
=
Math
.
abs
(
new
Date
().
getTime
()
-
distributionOrder
.
getCreateTime
().
getTime
());
long
diffInHours
=
diffInMillies
/
(
60
*
60
*
1000
);
if
(
diffInHours
>=
2
)
{
//待支付超出两小时,订单取消
distributionOrderDao
.
updateState
(
distributionOrder
.
getDistributionOrderId
(),
DistributionEnum
.
DistributionOrderStateEnum
.
CANCEL
.
getCode
());
}
return
Result
.
success
(
distributionOrderDetailVo
);
return
Result
.
success
(
distributionOrderDetailVo
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"查询用户订单详情失败 error : {}"
,
e
);
logger
.
error
(
"查询用户订单详情失败 error : {}"
,
e
);
}
}
return
Result
.
failed
();
return
Result
.
failed
();
}
}
public
void
checkPrePayTimeOut
(
String
distributionOrderId
){
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
distributionOrderId
);
if
(
distributionOrder
.
getState
()
==
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_PAY
.
getCode
())
{
long
diffInMillies
=
Math
.
abs
(
new
Date
().
getTime
()
-
distributionOrder
.
getCreateTime
().
getTime
());
long
diffInHours
=
diffInMillies
/
(
60
*
60
*
1000
);
if
(
diffInHours
>=
2
)
{
//待支付超出两小时,订单取消
distributionOrderDao
.
updateState
(
distributionOrder
.
getDistributionOrderId
(),
DistributionEnum
.
DistributionOrderStateEnum
.
CANCEL
.
getCode
());
}
}
}
/**
* 检查用户或者分销商的订单是否有超时未付款的
* @param userId
* @param distributorId
*/
public
void
checkPrePayTimeOut
(
Long
userId
,
Long
distributorId
){
DistributionOrderRequestDto
dto
=
new
DistributionOrderRequestDto
();
dto
.
setBuyerId
(
userId
);
dto
.
setSellerId
(
distributorId
);
dto
.
setState
(
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_PAY
.
getCode
());
List
<
DistributionOrder
>
prePayList
=
distributionOrderDao
.
findByPage
(
dto
);
prePayList
.
forEach
(
distributionOrder
->
{
long
diffInMillies
=
Math
.
abs
(
new
Date
().
getTime
()
-
distributionOrder
.
getCreateTime
().
getTime
());
long
diffInHours
=
diffInMillies
/
(
60
*
60
*
1000
);
if
(
diffInHours
>=
2
)
{
//待支付超出两小时,订单取消
distributionOrderDao
.
updateState
(
distributionOrder
.
getDistributionOrderId
(),
DistributionEnum
.
DistributionOrderStateEnum
.
CANCEL
.
getCode
());
}
});
}
}
}
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