From a2f77152d8c2146bf2fa6155d57febeb22c27307 Mon Sep 17 00:00:00 2001 From: Tyson <32171149+Tyson0314@users.noreply.github.com> Date: Mon, 8 Jun 2020 22:09:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=A2=E5=8D=95=E5=8F=96?= =?UTF-8?q?=E6=B6=88/=E9=80=80=E6=AC=BE=E4=B9=8B=E5=90=8E=E4=BC=98?= =?UTF-8?q?=E6=83=A0=E5=88=B8=E6=B2=A1=E6=9C=89=E8=BF=94=E8=BF=98=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20(#397)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/service/AdminOrderService.java | 17 ++++++++++++---- .../db/service/LitemallCouponUserService.java | 6 ++++++ .../litemall/wx/service/WxOrderService.java | 20 +++++++++++++++++++ .../litemall/wx/task/OrderUnpaidTask.java | 6 ++++++ 4 files changed, 45 insertions(+), 4 deletions(-) diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminOrderService.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminOrderService.java index b770cdcb..daae6ee2 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminOrderService.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminOrderService.java @@ -10,11 +10,9 @@ import org.linlinjava.litemall.core.notify.NotifyService; import org.linlinjava.litemall.core.notify.NotifyType; import org.linlinjava.litemall.core.util.JacksonUtil; import org.linlinjava.litemall.core.util.ResponseUtil; -import org.linlinjava.litemall.db.domain.LitemallComment; -import org.linlinjava.litemall.db.domain.LitemallOrder; -import org.linlinjava.litemall.db.domain.LitemallOrderGoods; -import org.linlinjava.litemall.db.domain.UserVo; +import org.linlinjava.litemall.db.domain.*; import org.linlinjava.litemall.db.service.*; +import org.linlinjava.litemall.db.util.CouponUserConstant; import org.linlinjava.litemall.db.util.OrderUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -50,6 +48,8 @@ public class AdminOrderService { private NotifyService notifyService; @Autowired private LogHelper logHelper; + @Autowired + private LitemallCouponUserService couponUserService; public Object list(Integer userId, String orderSn, LocalDateTime start, LocalDateTime end, List orderStatusArray, Integer page, Integer limit, String sort, String order) { @@ -159,6 +159,15 @@ public class AdminOrderService { } } + // 返还优惠券 + List couponUsers = couponUserService.findByOid(orderId); + for (LitemallCouponUser couponUser: couponUsers) { + // 优惠券状态设置为可使用 + couponUser.setStatus(CouponUserConstant.STATUS_USABLE); + couponUser.setUpdateTime(LocalDateTime.now()); + couponUserService.update(couponUser); + } + //TODO 发送邮件和短信通知,这里采用异步发送 // 退款成功通知用户, 例如“您申请的订单退款 [ 单号:{1} ] 已成功,请耐心等待到账。” // 注意订单号只发后6位 diff --git a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallCouponUserService.java b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallCouponUserService.java index 4235c3b0..2a190648 100644 --- a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallCouponUserService.java +++ b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallCouponUserService.java @@ -91,4 +91,10 @@ public class LitemallCouponUserService { example.or().andStatusEqualTo(CouponUserConstant.STATUS_USABLE).andEndTimeLessThan(LocalDateTime.now()).andDeletedEqualTo(false); return couponUserMapper.selectByExample(example); } + + public List findByOid(Integer orderId) { + LitemallCouponUserExample example = new LitemallCouponUserExample(); + example.or().andOrderIdEqualTo(orderId).andDeletedEqualTo(false); + return couponUserMapper.selectByExample(example); + } } diff --git a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/WxOrderService.java b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/WxOrderService.java index cd24efeb..49c83938 100644 --- a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/WxOrderService.java +++ b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/WxOrderService.java @@ -534,6 +534,9 @@ public class WxOrderService { } } + // 返还优惠券 + releaseCoupon(orderId); + return ResponseUtil.ok(); } @@ -1013,4 +1016,21 @@ public class WxOrderService { return ResponseUtil.ok(); } + /** + * 取消订单/退款返还优惠券 + *
+ * @param orderId + * @return void + * @author Tyson + * @date 2020/6/8/0008 1:41 + */ + public void releaseCoupon(Integer orderId) { + List couponUsers = couponUserService.findByOid(orderId); + for (LitemallCouponUser couponUser: couponUsers) { + // 优惠券状态设置为可使用 + couponUser.setStatus(CouponUserConstant.STATUS_USABLE); + couponUser.setUpdateTime(LocalDateTime.now()); + couponUserService.update(couponUser); + } + } } \ No newline at end of file diff --git a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/task/OrderUnpaidTask.java b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/task/OrderUnpaidTask.java index bf9d567f..42b16a30 100644 --- a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/task/OrderUnpaidTask.java +++ b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/task/OrderUnpaidTask.java @@ -11,6 +11,7 @@ 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 org.linlinjava.litemall.wx.service.WxOrderService; import java.time.LocalDateTime; import java.util.List; @@ -36,6 +37,7 @@ public class OrderUnpaidTask extends Task { LitemallOrderService orderService = BeanUtil.getBean(LitemallOrderService.class); LitemallOrderGoodsService orderGoodsService = BeanUtil.getBean(LitemallOrderGoodsService.class); LitemallGoodsProductService productService = BeanUtil.getBean(LitemallGoodsProductService.class); + WxOrderService wxOrderService = BeanUtil.getBean(WxOrderService.class); LitemallOrder order = orderService.findById(this.orderId); if(order == null){ @@ -62,6 +64,10 @@ public class OrderUnpaidTask extends Task { throw new RuntimeException("商品货品库存增加失败"); } } + + //返还优惠券 + wxOrderService.releaseCoupon(orderId); + logger.info("系统结束处理延时任务---订单超时未付款---" + this.orderId); } }