|
|
@@ -184,6 +184,10 @@ public class PosOrderShOprateController extends BaseController {
|
|
|
// 设置支付相关信息(从父订单继承)
|
|
|
posOrder.setPayType(input.getPaymentMethod());
|
|
|
posOrder.setOrderSource("MERCHANT");
|
|
|
+ // 现金支付(4):创建时未支付,待商家App触发确认收款后置为已支付
|
|
|
+ if (OrderLifecycleService.PAY_TYPE_CASH.equals(input.getPaymentMethod())) {
|
|
|
+ posOrder.setPayStatus(0L);
|
|
|
+ }
|
|
|
//设置桌号(从父订单继承)
|
|
|
posOrder.setTableId(input.getTableId());
|
|
|
posOrder.setTableNo(input.getTableNo());
|
|
|
@@ -370,6 +374,38 @@ public class PosOrderShOprateController extends BaseController {
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 商家确认现金收款:payType=4 的订单 payStatus 0→1(现金单创建时未支付,商家收到现金后在App触发)
|
|
|
+ */
|
|
|
+ @Anonymous
|
|
|
+ @Auth
|
|
|
+ @GetMapping("/confirmCashPayment")
|
|
|
+ public AjaxResult confirmCashPayment(@RequestHeader String token, @RequestParam Long id) {
|
|
|
+ PosOrder order = posOrderService.getOne(new LambdaQueryWrapper<PosOrder>().eq(PosOrder::getId, id));
|
|
|
+ if (order == null) {
|
|
|
+ throw new ServiceException(MessageUtils.message("no.order.not.exist"));
|
|
|
+ }
|
|
|
+ linePayOrderGuard.requireMerchantOwnership(order, currentMerchant(token));
|
|
|
+ if (!OrderLifecycleService.PAY_TYPE_CASH.equals(order.getPayType())) {
|
|
|
+ throw new ServiceException(MessageUtils.message("no.order.paytype.not.cash"));
|
|
|
+ }
|
|
|
+ // 已取消订单不允许确认收款:否则出现 state=4+payStatus=1,无现金退款流程可恢复,只能手工改库
|
|
|
+ if (order.getState() != null && order.getState() == 4L) {
|
|
|
+ throw new ServiceException(MessageUtils.message("no.order.cash.cancelled"));
|
|
|
+ }
|
|
|
+ if (Long.valueOf(1L).equals(order.getPayStatus())) {
|
|
|
+ throw new ServiceException(MessageUtils.message("no.order.cash.already.paid"));
|
|
|
+ }
|
|
|
+ PosOrder update = new PosOrder();
|
|
|
+ update.setId(order.getId());
|
|
|
+ update.setPayStatus(1L);
|
|
|
+ posOrderService.saveOrUpdate(update);
|
|
|
+ InfoUser shUser = infoUserService.getOne(new LambdaQueryWrapper<InfoUser>().eq(InfoUser::getUserId, Long.valueOf(new JwtUtil().getusid(token))));
|
|
|
+ String shName = shUser != null ? shUser.getNickName() : "";
|
|
|
+ orderLogHelper.log(String.valueOf(order.getDdId()), 2, Long.valueOf(new JwtUtil().getusid(token)), shName, "商家" + shName + "确认现金收款");
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 商家取消订单:校验 state IN (0,1),设 state=4
|
|
|
*/
|