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 daae6ee2..b0518473 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 @@ -1,5 +1,6 @@ package org.linlinjava.litemall.admin.service; +import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest; import com.github.binarywang.wxpay.bean.result.WxPayRefundResult; import com.github.binarywang.wxpay.exception.WxPayException; @@ -8,11 +9,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.linlinjava.litemall.core.notify.NotifyService; import org.linlinjava.litemall.core.notify.NotifyType; +import org.linlinjava.litemall.core.util.DateTimeUtil; import org.linlinjava.litemall.core.util.JacksonUtil; import org.linlinjava.litemall.core.util.ResponseUtil; 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.GrouponConstant; import org.linlinjava.litemall.db.util.OrderUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -26,6 +29,7 @@ import java.util.List; import java.util.Map; import static org.linlinjava.litemall.admin.util.AdminResponseCode.*; +import static org.linlinjava.litemall.admin.util.AdminResponseCode.ORDER_PAY_FAILED; @Service @@ -51,11 +55,10 @@ public class AdminOrderService { @Autowired private LitemallCouponUserService couponUserService; - public Object list(Integer userId, String orderSn, LocalDateTime start, LocalDateTime end, List orderStatusArray, + public Object list(String nickname, String consignee, String orderSn, LocalDateTime start, LocalDateTime end, List orderStatusArray, Integer page, Integer limit, String sort, String order) { - List orderList = orderService.querySelective(userId, orderSn, start, end, orderStatusArray, page, limit, - sort, order); - return ResponseUtil.okList(orderList); + Map data = (Map)orderService.queryVoSelective(nickname, consignee, orderSn, start, end, orderStatusArray, page, limit, sort, order); + return ResponseUtil.ok(data); } public Object detail(Integer id) { @@ -287,4 +290,29 @@ public class AdminOrderService { return ResponseUtil.ok(); } + public Object pay(String body) { + Integer orderId = JacksonUtil.parseInteger(body, "orderId"); + String newMoney = JacksonUtil.parseString(body, "newMoney"); + + if (orderId == null || StringUtils.isEmpty(newMoney)) { + return ResponseUtil.badArgument(); + } + BigDecimal actualPrice = new BigDecimal(newMoney); + + LitemallOrder order = orderService.findById(orderId); + if (order == null) { + return ResponseUtil.badArgument(); + } + if (!order.getOrderStatus().equals(OrderUtil.STATUS_CREATE)) { + return ResponseUtil.fail(ORDER_PAY_FAILED, "当前订单状态不支持线下收款"); + } + + order.setActualPrice(actualPrice); + order.setOrderStatus(OrderUtil.STATUS_PAY); + if (orderService.updateWithOptimisticLocker(order) == 0) { + return WxPayNotifyResponse.fail("更新数据已失效"); + } + + return ResponseUtil.ok(); + } } diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java index 3b926b30..6a0ff0ac 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java @@ -13,7 +13,7 @@ public class AdminResponseCode { public static final Integer ORDER_REFUND_FAILED = 621; public static final Integer ORDER_REPLY_EXIST = 622; public static final Integer ORDER_DELETE_FAILED = 623; - public static final Integer USER_INVALID_NAME = 630; + public static final Integer ORDER_PAY_FAILED = 624;public static final Integer USER_INVALID_NAME = 630; public static final Integer USER_INVALID_PASSWORD = 631; public static final Integer USER_INVALID_MOBILE = 632; public static final Integer USER_NAME_EXIST = 633; diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminOrderController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminOrderController.java index b5b4eea2..4e01f101 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminOrderController.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminOrderController.java @@ -45,7 +45,7 @@ public class AdminOrderController { @RequiresPermissions("admin:order:list") @RequiresPermissionsDesc(menu = {"商场管理", "订单管理"}, button = "查询") @GetMapping("/list") - public Object list(Integer userId, String orderSn, + public Object list(String nickname, String consignee, String orderSn, @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime start, @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime end, @RequestParam(required = false) List orderStatusArray, @@ -53,7 +53,7 @@ public class AdminOrderController { @RequestParam(defaultValue = "10") Integer limit, @Sort @RequestParam(defaultValue = "add_time") String sort, @Order @RequestParam(defaultValue = "desc") String order) { - return adminOrderService.list(userId, orderSn, start, end, orderStatusArray, page, limit, sort, order); + return adminOrderService.list(nickname, consignee, orderSn, start, end, orderStatusArray, page, limit, sort, order); } /** @@ -105,6 +105,12 @@ public class AdminOrderController { return adminOrderService.ship(body); } + @RequiresPermissions("admin:order:pay") + @RequiresPermissionsDesc(menu = {"商场管理", "订单管理"}, button = "订单收款") + @PostMapping("/pay") + public Object pay(@RequestBody String body) { + return adminOrderService.pay(body); + } /** * 删除订单 diff --git a/litemall-admin/src/api/order.js b/litemall-admin/src/api/order.js index 122fdcbf..6cf21636 100644 --- a/litemall-admin/src/api/order.js +++ b/litemall-admin/src/api/order.js @@ -36,6 +36,14 @@ export function refundOrder(data) { }) } +export function payOrder(data) { + return request({ + url: '/order/pay', + method: 'post', + data + }) +} + export function deleteOrder(data) { return request({ url: '/order/delete', diff --git a/litemall-admin/src/views/mall/order.vue b/litemall-admin/src/views/mall/order.vue index b6974d7a..e14bc7ad 100644 --- a/litemall-admin/src/views/mall/order.vue +++ b/litemall-admin/src/views/mall/order.vue @@ -3,8 +3,8 @@
- - + + @@ -17,32 +17,85 @@ - + + + - + + + + + + + + + + - + + + - + + + + + + + + + - + @@ -119,6 +172,39 @@ + + + +
+ 确认当前订单(订单编号 {{ payForm.orderSn }} ) 已经完成线下收款 ? +
+ + + + + + +
+ + + + + + + + + +
+ @@ -153,8 +239,53 @@
+ +