diff --git a/src/main/java/live/tomey/api/express/controller/OrderController.java b/src/main/java/live/tomey/api/express/controller/OrderController.java index 8ad2dc5..0ba8ebc 100644 --- a/src/main/java/live/tomey/api/express/controller/OrderController.java +++ b/src/main/java/live/tomey/api/express/controller/OrderController.java @@ -33,6 +33,27 @@ public class OrderController { @Autowired private OrderService orderService; + @UserLoginToken + @RequestMapping(value = "/cancel", method = RequestMethod.POST) + private Result> cancel(HttpServletRequest request) { + Account account = (Account)request.getSession().getAttribute("account"); + try{ + Integer orderid = HttpServletRequestUtil.getInteger(request, "orderid"); + Integer type = orderService.cancelOrder(orderid, account.getId()); + if (type==1){ + return new Result(true, "删除成功"); + }else if (type==0){ + return new Result(false, "删除失败"); + }else if (type == 2){ + return new Result(false, "订单已无法删除"); + }else { + return new Result(false, OrderEnum.OFFLINE.getState(), OrderEnum.OFFLINE.getStateInfo()); + } + }catch (RuntimeException e) { + logger.error(e.getMessage()); + return new Result(false, OrderEnum.OFFLINE.getState(), OrderEnum.OFFLINE.getStateInfo()); + } + } @UserLoginToken @RequestMapping(value = "/charge", method = RequestMethod.POST) private Result> charge(HttpServletRequest request) { diff --git a/src/main/java/live/tomey/api/express/dao/OrderDao.java b/src/main/java/live/tomey/api/express/dao/OrderDao.java index c2264a5..8b58f52 100644 --- a/src/main/java/live/tomey/api/express/dao/OrderDao.java +++ b/src/main/java/live/tomey/api/express/dao/OrderDao.java @@ -107,5 +107,11 @@ public interface OrderDao { */ Integer queryChargeStart(@Param("orderModifyState") OrderModifyState orderModifyState); + /** + * 删除订单 + * @param orderid + * @return + */ + Integer deleteOrder(@Param("orderid") Integer orderid,@Param("accountid") Integer accountid); } diff --git a/src/main/java/live/tomey/api/express/service/OrderService.java b/src/main/java/live/tomey/api/express/service/OrderService.java index 87cbe8a..ee119df 100644 --- a/src/main/java/live/tomey/api/express/service/OrderService.java +++ b/src/main/java/live/tomey/api/express/service/OrderService.java @@ -29,5 +29,6 @@ public interface OrderService { OrderExcution changCharge(OrderModifyState orderModifyState); + Integer cancelOrder(Integer orderid,Integer acountid); } diff --git a/src/main/java/live/tomey/api/express/service/impl/OrderServiceImpl.java b/src/main/java/live/tomey/api/express/service/impl/OrderServiceImpl.java index fd03bb7..0d94cab 100644 --- a/src/main/java/live/tomey/api/express/service/impl/OrderServiceImpl.java +++ b/src/main/java/live/tomey/api/express/service/impl/OrderServiceImpl.java @@ -182,4 +182,23 @@ public class OrderServiceImpl implements OrderService { return new OrderExcution>(OrderEnum.OFFLINE); } } + + @Override + public Integer cancelOrder(Integer orderid, Integer acountid) { + try { + Integer state = orderDao.queryStart(orderid); + if (state==1){ + Integer type = orderDao.deleteOrder(orderid,acountid); + if (type==1){ + return 1; + }else { + return 0; + } + }else { + return 2; + } + }catch (RuntimeException e){ + return -1; + } + } } diff --git a/src/main/resources/mapper/OrderDao.xml b/src/main/resources/mapper/OrderDao.xml index 4fdbe45..4b1e734 100644 --- a/src/main/resources/mapper/OrderDao.xml +++ b/src/main/resources/mapper/OrderDao.xml @@ -437,4 +437,7 @@ WHERE id = #{item.id} + + DELETE FROM m_order WHERE id= #{orderid} AND account_id = #{accountid} + \ No newline at end of file