Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
O
on-site-service
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
external
on-site-service
Commits
d60dd880
Commit
d60dd880
authored
Jul 19, 2022
by
lining
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 订单超时自动取消
parent
97b59ab1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
85 additions
and
10 deletions
+85
-10
ServiceOrderVO.java
...ava/com/onsiteservice/common/order/vo/ServiceOrderVO.java
+0
-3
ServiceOrderService.java
.../com/onsiteservice/service/order/ServiceOrderService.java
+3
-0
BizConstants.java
...ava/com/onsiteservice/constant/constant/BizConstants.java
+2
-0
ServiceOrder.java
...ain/java/com/onsiteservice/entity/order/ServiceOrder.java
+4
-7
ServiceOrderCancelJob.java
.../com/onsiteservice/miniapp/job/ServiceOrderCancelJob.java
+76
-0
No files found.
common/src/main/java/com/onsiteservice/common/order/vo/ServiceOrderVO.java
View file @
d60dd880
...
...
@@ -42,9 +42,6 @@ public class ServiceOrderVO {
@ApiModelProperty
(
value
=
"订单创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"订单修改时间"
)
private
Date
modifyTime
;
@ApiModelProperty
(
value
=
"客户上传需求图片,最多8张"
)
private
List
<
String
>
demandImgUrls
;
...
...
common/src/main/java/com/onsiteservice/service/order/ServiceOrderService.java
View file @
d60dd880
...
...
@@ -32,6 +32,7 @@ import org.springframework.util.CollectionUtils;
import
tk.mybatis.mapper.entity.Condition
;
import
javax.annotation.Resource
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -161,6 +162,8 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
serviceOrder
.
setPrice
(
dto
.
getPrice
());
serviceOrder
.
setOrderStatus
(
ServiceOrderStatusEnum
.
SEND
.
getStatus
());
serviceOrder
.
setModifyBy
(
userId
);
// 超时时间
serviceOrder
.
setCancelTime
(
new
Date
());
int
result
=
serviceOrderMapper
.
updateByPrimaryKeySelective
(
serviceOrder
);
...
...
constant/src/main/java/com/onsiteservice/constant/constant/BizConstants.java
View file @
d60dd880
...
...
@@ -12,6 +12,8 @@ public class BizConstants {
public
static
class
OrderConstants
{
public
static
final
String
ORDER_ID
=
"orderId"
;
public
static
final
String
ORDER_STATUS
=
"orderStatus"
;
public
static
final
long
TIMEOUT_CANCEL_LIMIT
=
1000
*
60
*
30
;
}
public
static
class
FormatConstants
{
...
...
entity/src/main/java/com/onsiteservice/entity/order/ServiceOrder.java
View file @
d60dd880
...
...
@@ -126,13 +126,6 @@ public class ServiceOrder implements Serializable {
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
/**
* 修改时间
*/
@Column
(
name
=
"modify_time"
)
@ApiModelProperty
(
"修改时间"
)
private
Date
modifyTime
;
@Column
(
name
=
"create_by"
)
@ApiModelProperty
(
"创建人"
)
private
Long
createBy
;
...
...
@@ -145,6 +138,10 @@ public class ServiceOrder implements Serializable {
@ApiModelProperty
(
"估价员id"
)
private
Long
valuatorId
;
@Column
(
name
=
"cancel_time"
)
@ApiModelProperty
(
"订单自动取消时间"
)
private
Date
cancelTime
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
mini-app/src/main/java/com/onsiteservice/miniapp/job/ServiceOrderCancelJob.java
0 → 100644
View file @
d60dd880
package
com
.
onsiteservice
.
miniapp
.
job
;
import
com.onsiteservice.constant.constant.BizConstants
;
import
com.onsiteservice.constant.constant.SysParamConstants
;
import
com.onsiteservice.constant.enums.ServiceOrderOpSourceEnum
;
import
com.onsiteservice.constant.enums.ServiceOrderStatusEnum
;
import
com.onsiteservice.dao.component.RecordComponent
;
import
com.onsiteservice.dao.mapper.service.ServiceOrderMapper
;
import
com.onsiteservice.dao.mapper.sys.SysParamMapper
;
import
com.onsiteservice.entity.order.ServiceOrder
;
import
com.onsiteservice.entity.sys.SysParam
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
tk.mybatis.mapper.entity.Condition
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* <P></P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/19 14:25
*/
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Slf4j
public
class
ServiceOrderCancelJob
{
private
static
final
String
MSG
=
"超时未付款自动取消"
;
@Resource
private
ServiceOrderMapper
serviceOrderMapper
;
@Resource
private
SysParamMapper
sysParamMapper
;
@Resource
private
RecordComponent
recordComponent
;
@Scheduled
(
cron
=
"0 * * * * *"
)
public
void
cancelServiceOrder
()
{
log
.
info
(
"cancelServiceOrder start!"
);
// 超时时间
Condition
sysParamCondition
=
new
Condition
(
SysParam
.
class
);
sysParamCondition
.
createCriteria
().
andEqualTo
(
"code"
,
SysParamConstants
.
ORDER_PAY_TIMEOUT
);
List
<
SysParam
>
sysParamList
=
sysParamMapper
.
selectByCondition
(
sysParamCondition
);
long
timeOut
=
CollectionUtils
.
isEmpty
(
sysParamList
)
?
BizConstants
.
OrderConstants
.
TIMEOUT_CANCEL_LIMIT
:
Long
.
parseLong
(
sysParamList
.
get
(
0
).
getValue
());
// 超时订单
Condition
c
=
new
Condition
(
ServiceOrder
.
class
);
c
.
createCriteria
().
andEqualTo
(
BizConstants
.
OrderConstants
.
ORDER_STATUS
,
ServiceOrderStatusEnum
.
SEND
.
getStatus
());
List
<
ServiceOrder
>
serviceOrderList
=
serviceOrderMapper
.
selectByCondition
(
c
);
serviceOrderList
.
forEach
(
serviceOrder
->
{
if
((
System
.
currentTimeMillis
()
-
serviceOrder
.
getCancelTime
().
getTime
())
>=
timeOut
)
{
serviceOrder
.
setOrderStatus
(
ServiceOrderStatusEnum
.
CANCEL
.
getStatus
());
serviceOrder
.
setRemark
(
MSG
);
int
result
=
serviceOrderMapper
.
updateByPrimaryKey
(
serviceOrder
);
if
(
result
==
1
)
{
log
.
info
(
"cancelServiceOrder success serviceOrder: {}"
,
serviceOrder
);
recordComponent
.
recordProcess
(
serviceOrder
.
getId
(),
ServiceOrderStatusEnum
.
CANCEL
.
getStatus
(),
MSG
,
ServiceOrderOpSourceEnum
.
MINI_APP
,
null
,
null
,
null
);
}
}
});
}
}
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