Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
31eb1481
Commit
31eb1481
authored
Nov 13, 2019
by
Junling Bu
Browse files
feat[litemall-wx-api]: 订单超时未支付任务
parent
d8ccd137
Changes
2
Hide whitespace changes
Inline
Side-by-side
litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/WxOrderService.java
View file @
31eb1481
...
...
@@ -18,6 +18,7 @@ import org.linlinjava.litemall.core.notify.NotifyService;
import
org.linlinjava.litemall.core.notify.NotifyType
;
import
org.linlinjava.litemall.core.qcode.QCodeService
;
import
org.linlinjava.litemall.core.system.SystemConfig
;
import
org.linlinjava.litemall.core.task.TaskService
;
import
org.linlinjava.litemall.core.util.DateTimeUtil
;
import
org.linlinjava.litemall.core.util.JacksonUtil
;
import
org.linlinjava.litemall.core.util.ResponseUtil
;
...
...
@@ -27,6 +28,7 @@ import org.linlinjava.litemall.db.util.CouponUserConstant;
import
org.linlinjava.litemall.db.util.OrderHandleOption
;
import
org.linlinjava.litemall.db.util.OrderUtil
;
import
org.linlinjava.litemall.core.util.IpUtil
;
import
org.linlinjava.litemall.wx.task.OrderUnpaidTask
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -105,6 +107,8 @@ public class WxOrderService {
private
LitemallCouponUserService
couponUserService
;
@Autowired
private
CouponVerifyService
couponVerifyService
;
@Autowired
private
TaskService
taskService
;
/**
* 订单列表
...
...
@@ -422,6 +426,9 @@ public class WxOrderService {
grouponService
.
createGroupon
(
groupon
);
}
// 订单支付超期任务
taskService
.
addTask
(
new
OrderUnpaidTask
(
orderId
));
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
data
.
put
(
"orderId"
,
orderId
);
return
ResponseUtil
.
ok
(
data
);
...
...
@@ -766,6 +773,9 @@ public class WxOrderService {
notifyService
.
notifyWxTemplate
(
result
.
getOpenid
(),
NotifyType
.
PAY_SUCCEED
,
parms
,
"pages/index/index?orderId="
+
order
.
getId
());
// 取消订单超时未支付任务
taskService
.
removeTask
(
new
OrderUnpaidTask
(
order
.
getId
()));
return
WxPayNotifyResponse
.
success
(
"处理成功!"
);
}
...
...
litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/task/OrderUnpaidTask.java
0 → 100644
View file @
31eb1481
package
org.linlinjava.litemall.wx.task
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.linlinjava.litemall.core.system.SystemConfig
;
import
org.linlinjava.litemall.core.task.Task
;
import
org.linlinjava.litemall.core.util.BeanUtil
;
import
org.linlinjava.litemall.db.domain.LitemallOrder
;
import
org.linlinjava.litemall.db.domain.LitemallOrderGoods
;
import
org.linlinjava.litemall.db.service.LitemallGoodsProductService
;
import
org.linlinjava.litemall.db.service.LitemallOrderGoodsService
;
import
org.linlinjava.litemall.db.service.LitemallOrderService
;
import
org.linlinjava.litemall.db.util.OrderUtil
;
import
java.time.LocalDateTime
;
import
java.util.List
;
public
class
OrderUnpaidTask
extends
Task
{
private
final
Log
logger
=
LogFactory
.
getLog
(
OrderUnpaidTask
.
class
);
private
int
orderId
=
-
1
;
public
OrderUnpaidTask
(
Integer
orderId
){
super
(
"OrderUnpaidTask-"
+
orderId
,
SystemConfig
.
getOrderUnpaid
()
*
60
*
1000
);
this
.
orderId
=
orderId
;
}
@Override
public
void
run
()
{
logger
.
info
(
"系统开始处理订单超时未付款订单 "
+
this
.
orderId
);
LitemallOrderService
orderService
=
BeanUtil
.
getBean
(
LitemallOrderService
.
class
);
LitemallOrderGoodsService
orderGoodsService
=
BeanUtil
.
getBean
(
LitemallOrderGoodsService
.
class
);
LitemallGoodsProductService
productService
=
BeanUtil
.
getBean
(
LitemallGoodsProductService
.
class
);
LitemallOrder
order
=
orderService
.
findById
(
this
.
orderId
);
if
(
order
==
null
){
return
;
}
if
(!
OrderUtil
.
isCreateStatus
(
order
)){
return
;
}
// 设置订单已取消状态
order
.
setOrderStatus
(
OrderUtil
.
STATUS_AUTO_CANCEL
);
order
.
setEndTime
(
LocalDateTime
.
now
());
if
(
orderService
.
updateWithOptimisticLocker
(
order
)
==
0
)
{
throw
new
RuntimeException
(
"更新数据已失效"
);
}
// 商品货品数量增加
Integer
orderId
=
order
.
getId
();
List
<
LitemallOrderGoods
>
orderGoodsList
=
orderGoodsService
.
queryByOid
(
orderId
);
for
(
LitemallOrderGoods
orderGoods
:
orderGoodsList
)
{
Integer
productId
=
orderGoods
.
getProductId
();
Short
number
=
orderGoods
.
getNumber
();
if
(
productService
.
addStock
(
productId
,
number
)
==
0
)
{
throw
new
RuntimeException
(
"商品货品库存增加失败"
);
}
}
logger
.
info
(
"系统成功处理订单超时未付款订单 "
+
this
.
orderId
);
}
}
Write
Preview
Supports
Markdown
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