diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/controller/OrderInfoController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/controller/OrderInfoController.java index 4e2efdb..2019163 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/controller/OrderInfoController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/controller/OrderInfoController.java @@ -220,4 +220,16 @@ public class OrderInfoController extends BaseController { return toAjax(orderInfoService.deleteOrderInfoByOrderIds(ids)); } + + @SysLog(title = "核销", module = "订单", businessType = OperaType.UPDATE) + @PostMapping( "/write-off") + @ResponseBody + public AjaxResult writeOff(@RequestBody @Valid OrderWriteOffParam param) + { + if(CollUtil.isEmpty(param.getOrderIdList())) { + throw new ServiceException("订单ID不能为空"); + } + orderInfoService.writeOffOrderByOrderIds(param); + return AjaxResult.success(); + } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderQueryParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderQueryParam.java index 8324292..b7048dd 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderQueryParam.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderQueryParam.java @@ -33,6 +33,8 @@ public class OrderQueryParam implements Serializable private Long orderId; + private List orderIdList; + private List deptIdList; /** 设备编号 */ diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderWriteOffParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderWriteOffParam.java new file mode 100644 index 0000000..f2b2006 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/domain/param/OrderWriteOffParam.java @@ -0,0 +1,13 @@ +package com.bonus.canteen.core.order.domain.param; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; +@Data +public class OrderWriteOffParam implements Serializable { + + @NotNull + private List orderIdList; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/mapper/OrderInfoMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/mapper/OrderInfoMapper.java index b8f4a5d..d7963d6 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/mapper/OrderInfoMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/mapper/OrderInfoMapper.java @@ -5,6 +5,7 @@ import com.bonus.canteen.core.order.domain.OrderPayResultDTO; import com.bonus.canteen.core.order.domain.OrderRefundHistoryVO; import com.bonus.canteen.core.order.domain.param.OrderQueryParam; import com.bonus.canteen.core.order.domain.param.OrderRefundHistoryParam; +import com.bonus.canteen.core.order.domain.param.OrderWriteOffParam; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -70,4 +71,6 @@ public interface OrderInfoMapper public int deleteOrderInfoByOrderIds(List orderIds); public List orderRefundHistory(@Param("param") OrderRefundHistoryParam param); + + public void writeOffOrderByOrderIds(@Param("param") OrderWriteOffParam param); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/IOrderInfoService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/IOrderInfoService.java index 1d6cd2e..456ce93 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/IOrderInfoService.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/IOrderInfoService.java @@ -70,5 +70,7 @@ public interface IOrderInfoService public void refund(Long orderId, String operationUser); public void pay(Long orderId); - List orderRefundHistory(@Param("param") OrderRefundHistoryParam param); + List orderRefundHistory(OrderRefundHistoryParam param); + + public void writeOffOrderByOrderIds(OrderWriteOffParam param); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/impl/OrderInfoServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/impl/OrderInfoServiceImpl.java index e13ab43..3d5e721 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/impl/OrderInfoServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/service/impl/OrderInfoServiceImpl.java @@ -234,6 +234,23 @@ public class OrderInfoServiceImpl implements IOrderInfoService return orderInfoMapper.orderRefundHistory(param); } + @Override + public void writeOffOrderByOrderIds(OrderWriteOffParam param) { + OrderQueryParam orderQueryParam = new OrderQueryParam(); + orderQueryParam.setOrderIdList(param.getOrderIdList()); + orderQueryParam.setStartDateTime(null); + orderQueryParam.setEndDateTime(null); + List orderInfoList = orderInfoMapper.selectOrderInfoList(orderQueryParam); + if(CollUtil.isNotEmpty(orderInfoList)) { + orderInfoList.forEach(orderInfo -> { + if(!OrderStateEnum.PLACE.getKey().equals(orderInfo.getOrderState())) { + throw new ServiceException("仅已下单订单才能核销"); + } + }); + } + orderInfoMapper.writeOffOrderByOrderIds(param); + } + private void checkOrdersTotalAmount(List orderInfoList ,BigDecimal totalAmountParam) { BigDecimal totalAmount = BigDecimal.ZERO; if(CollUtil.isNotEmpty(orderInfoList)) { diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/order/OrderInfoMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/order/OrderInfoMapper.xml index 7dbb650..da8d2b6 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/order/OrderInfoMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/order/OrderInfoMapper.xml @@ -68,6 +68,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + update order_info set + order_state = 2 + where order_id in + + #{orderId} + + + \ No newline at end of file