diff --git a/sky-server/pom.xml b/sky-server/pom.xml
index a5cccf0..b3c03d3 100644
--- a/sky-server/pom.xml
+++ b/sky-server/pom.xml
@@ -115,6 +115,11 @@
org.apache.poi
poi-ooxml
+
+ com.github.pagehelper
+ pagehelper
+ 6.1.0
+
org.projectlombok
lombok
diff --git a/sky-server/src/main/java/com/sky/controller/admin/OrderController.java b/sky-server/src/main/java/com/sky/controller/admin/OrderController.java
new file mode 100644
index 0000000..d1c52c8
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/OrderController.java
@@ -0,0 +1,28 @@
+package com.sky.controller.admin;
+
+import com.sky.dto.OrdersPageQueryDTO;
+import com.sky.result.PageResult;
+import com.sky.result.Result;
+import com.sky.service.OrderService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/admin/order")
+@Api(tags = "Order-Controller")
+@Slf4j
+public class OrderController {
+ @Autowired
+ private OrderService orderService;
+
+ @GetMapping("/conditionSearch")
+ public Result conditionSearch(OrdersPageQueryDTO ordersPageQueryDTO) {
+ PageResult pageResult = orderService.pageQuery(ordersPageQueryDTO);
+ return Result.success(pageResult);
+ }
+}
diff --git a/sky-server/src/main/java/com/sky/controller/user/OrderController.java b/sky-server/src/main/java/com/sky/controller/user/OrderController.java
index 9286c5b..f35c1e2 100644
--- a/sky-server/src/main/java/com/sky/controller/user/OrderController.java
+++ b/sky-server/src/main/java/com/sky/controller/user/OrderController.java
@@ -1,11 +1,14 @@
package com.sky.controller.user;
+import com.sky.dto.OrdersDTO;
import com.sky.dto.OrdersPaymentDTO;
import com.sky.dto.OrdersSubmitDTO;
+import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.service.OrderService;
import com.sky.vo.OrderPaymentVO;
import com.sky.vo.OrderSubmitVO;
+import com.sky.vo.OrderVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -42,4 +45,32 @@ public class OrderController {
log.info("生成预支付交易单:{}", orderPaymentVO);
return Result.success(orderPaymentVO);
}
+
+ @GetMapping("/historyOrders")
+ public Result historyOrders(Integer page, Integer pageSize, Integer status) {
+ log.info("查询历史订单");
+ PageResult pageResult = orderService.getHistoryOrders(page, pageSize, status);
+ return Result.success(pageResult);
+ }
+
+ @GetMapping("/orderDetail/{id}")
+ public Result orderDetail(@PathVariable Long id) {
+ log.info("check order detail: {}", id);
+ OrderVO orderVO = orderService.getOrderDetailById(id);
+ return Result.success(orderVO);
+ }
+
+ @PutMapping("/cancel/{id}")
+ public Result cancel(@PathVariable Long id) {
+ log.info("cancel order: {}", id);
+ orderService.cancel(id);
+ return Result.success();
+ }
+
+ @PostMapping("/repetition/{id}")
+ public Result repetition(@PathVariable Long id) {
+ log.info("repetition order: {}", id);
+ orderService.repetition(id);
+ return Result.success();
+ }
}
diff --git a/sky-server/src/main/java/com/sky/mapper/OrderDetailMapper.java b/sky-server/src/main/java/com/sky/mapper/OrderDetailMapper.java
index 3c7c6aa..69a23d0 100644
--- a/sky-server/src/main/java/com/sky/mapper/OrderDetailMapper.java
+++ b/sky-server/src/main/java/com/sky/mapper/OrderDetailMapper.java
@@ -13,4 +13,6 @@ public interface OrderDetailMapper {
* @param orderDetails
*/
void insertBatch(List orderDetails);
+
+ List getByOrderId(Long orderId);
}
diff --git a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java
index 67628b1..29ed05f 100644
--- a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java
+++ b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java
@@ -1,11 +1,14 @@
package com.sky.mapper;
+import com.github.pagehelper.Page;
+import com.sky.dto.OrdersPageQueryDTO;
import com.sky.entity.Orders;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.time.LocalDateTime;
+import java.util.List;
@Mapper
public interface OrderMapper {
@@ -29,4 +32,9 @@ public interface OrderMapper {
@Update("update orders set status = #{orderStatus},pay_status = #{orderPaidStatus} ,checkout_time = #{check_out_time} where id = #{id}")
void updateStatus(Integer orderStatus, Integer orderPaidStatus, LocalDateTime check_out_time, Long id);
+
+ Page pageQuery(OrdersPageQueryDTO ordersPageQueryDTO);
+
+ @Select("select * from orders where id = #{id}")
+ Orders getById(Long id);
}
diff --git a/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java b/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java
index 52c5e4e..3205acb 100644
--- a/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java
+++ b/sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java
@@ -58,4 +58,10 @@ public interface ShoppingCartMapper {
*/
@Delete("delete from sky_take_out.shopping_cart where user_id = #{userId}")
void deleteByUserId(Long userId);
+
+ /**
+ * insert all the shopping cart data
+ * @param shoppingCartList
+ */
+ void insertBatch(List shoppingCartList);
}
diff --git a/sky-server/src/main/java/com/sky/service/OrderService.java b/sky-server/src/main/java/com/sky/service/OrderService.java
index 84cc043..81b93b8 100644
--- a/sky-server/src/main/java/com/sky/service/OrderService.java
+++ b/sky-server/src/main/java/com/sky/service/OrderService.java
@@ -1,9 +1,13 @@
package com.sky.service;
+import com.sky.dto.OrdersDTO;
+import com.sky.dto.OrdersPageQueryDTO;
import com.sky.dto.OrdersPaymentDTO;
import com.sky.dto.OrdersSubmitDTO;
+import com.sky.result.PageResult;
import com.sky.vo.OrderPaymentVO;
import com.sky.vo.OrderSubmitVO;
+import com.sky.vo.OrderVO;
import org.springframework.stereotype.Service;
@Service
@@ -29,4 +33,39 @@ public interface OrderService {
*/
void paySuccess(String outTradeNo);
+ /**
+ * 获取历史订单
+ * (page query for user)
+ * @param page
+ * @param pageSize
+ * @param status
+ * @return
+ */
+ PageResult getHistoryOrders(Integer page, Integer pageSize, Integer status);
+
+ /**
+ * get order detail by order id
+ * @param id
+ * @return
+ */
+ OrderVO getOrderDetailById(Long id);
+
+ /**
+ * cancel order
+ * @param id
+ */
+ void cancel(Long id);
+
+ /**
+ * repeat order by order id
+ * @param id
+ */
+ void repetition(Long id);
+
+ /**
+ * page query for admin
+ * @param ordersPageQueryDTO
+ * @return
+ */
+ PageResult pageQuery(OrdersPageQueryDTO ordersPageQueryDTO);
}
diff --git a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java
index 93498f0..175c9f8 100644
--- a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java
+++ b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java
@@ -1,28 +1,32 @@
package com.sky.service.impl;
import com.alibaba.fastjson.JSONObject;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
import com.sky.constant.MessageConstant;
import com.sky.context.BaseContext;
+import com.sky.dto.OrdersPageQueryDTO;
import com.sky.dto.OrdersPaymentDTO;
import com.sky.dto.OrdersSubmitDTO;
import com.sky.entity.*;
import com.sky.exception.AddressBookBusinessException;
-import com.sky.exception.OrderBusinessException;
import com.sky.exception.ShoppingCartBusinessException;
import com.sky.mapper.*;
+import com.sky.result.PageResult;
import com.sky.service.OrderService;
import com.sky.utils.WeChatPayUtil;
import com.sky.vo.OrderPaymentVO;
import com.sky.vo.OrderSubmitVO;
+import com.sky.vo.OrderVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
@Service
@@ -69,6 +73,7 @@ public class OrderServiceImpl implements OrderService {
orders.setNumber(userId + "-" + System.currentTimeMillis());
orders.setPhone(addressBook.getPhone());
orders.setUserName(addressBook.getConsignee());
+ orders.setConsignee(addressBook.getConsignee());
orders.setAddress(addressBook.getDetail());
orderMapper.insert(orders);
@@ -120,7 +125,7 @@ public class OrderServiceImpl implements OrderService {
}*/
JSONObject jsonObject = new JSONObject();
- jsonObject.put("code","ORDERPAID");
+ jsonObject.put("code", "ORDERPAID");
OrderPaymentVO vo = jsonObject.toJavaObject(OrderPaymentVO.class);
vo.setPackageStr(jsonObject.getString("package"));
@@ -164,4 +169,83 @@ public class OrderServiceImpl implements OrderService {
orderMapper.update(orders);
}
+ @Override
+ public PageResult getHistoryOrders(Integer page, Integer pageSize, Integer status) {
+ Long userId = BaseContext.getCurrentId();
+ PageHelper.startPage(page,pageSize);
+ OrdersPageQueryDTO ordersPageQueryDTO = new OrdersPageQueryDTO();
+ ordersPageQueryDTO.setUserId(userId);
+ ordersPageQueryDTO.setStatus(status);
+
+ Page ordersPage = orderMapper.pageQuery(ordersPageQueryDTO);
+ List list = new ArrayList<>();
+ if (ordersPage != null && ordersPage.getTotal() > 0) {
+ for (Orders order : ordersPage) {
+ List orderDetails = orderDetailMapper.getByOrderId(order.getId());
+ OrderVO orderVO = new OrderVO();
+ orderVO.setOrderDetailList(orderDetails);
+ BeanUtils.copyProperties(order, orderVO);
+ list.add(orderVO);
+ }
+ }
+ return new PageResult(list.size(),list);
+ }
+
+ @Override
+ public OrderVO getOrderDetailById(Long id) {
+ OrderVO orderVO = new OrderVO();
+ Orders orders = orderMapper.getById(id);
+ BeanUtils.copyProperties(orders, orderVO);
+ orderVO.setOrderDetailList(orderDetailMapper.getByOrderId(orderVO.getId()));
+ return orderVO;
+ }
+
+ @Override
+ public void cancel(Long id) {
+ Orders orders = new Orders();
+ orders.setId(id);
+ orders.setStatus(Orders.CANCELLED);
+ orders.setCancelTime(LocalDateTime.now());
+ orderMapper.update(orders);
+ }
+
+ @Override
+ public void repetition(Long id) {
+ //get information of order detail
+ List orderDetailList = orderDetailMapper.getByOrderId(id);
+ //construct shopping cart
+ List shoppingCartList = new ArrayList<>();
+ for (OrderDetail orderDetail : orderDetailList) {
+ ShoppingCart shoppingCart = new ShoppingCart();
+ shoppingCart.setName(orderDetail.getName());
+ shoppingCart.setImage(orderDetail.getImage());
+ shoppingCart.setUserId(BaseContext.getCurrentId());
+ shoppingCart.setDishId(orderDetail.getDishId());
+ shoppingCart.setSetmealId(orderDetail.getSetmealId());
+ shoppingCart.setDishFlavor(orderDetail.getDishFlavor());
+ shoppingCart.setNumber(orderDetail.getNumber());
+ shoppingCart.setAmount(orderDetail.getAmount());
+ shoppingCart.setCreateTime(LocalDateTime.now());
+ shoppingCartList.add(shoppingCart);
+ }
+ shoppingCartMapper.insertBatch(shoppingCartList);
+ }
+
+ @Override
+ public PageResult pageQuery(OrdersPageQueryDTO ordersPageQueryDTO) {
+ PageHelper.startPage(ordersPageQueryDTO.getPage(),ordersPageQueryDTO.getPageSize());
+ Page ordersPage = orderMapper.pageQuery(ordersPageQueryDTO);
+ List list = new ArrayList<>();
+ for (Orders orders : ordersPage) {
+ OrderVO orderVO = new OrderVO();
+ BeanUtils.copyProperties(orders, orderVO);
+ List orderDetailList = orderDetailMapper.getByOrderId(orders.getId());
+ String orderDishes = Arrays.toString(orderDetailList.toArray());
+ orderDishes = orderDishes.substring(1, orderDishes.length() - 1);
+ orderVO.setOrderDishes(orderDishes);
+ list.add(orderVO);
+ }
+ return new PageResult(list.size(),list);
+ }
+
}
diff --git a/sky-server/src/main/resources/mapper/OrderDetailMapper.xml b/sky-server/src/main/resources/mapper/OrderDetailMapper.xml
index 5cbf45d..f47320e 100644
--- a/sky-server/src/main/resources/mapper/OrderDetailMapper.xml
+++ b/sky-server/src/main/resources/mapper/OrderDetailMapper.xml
@@ -11,4 +11,7 @@
(#{orderDetail.name},#{orderDetail.image},#{orderDetail.orderId},#{orderDetail.dishId},#{orderDetail.setmealId},#{orderDetail.dishFlavor},#{orderDetail.number},#{orderDetail.amount})
+
\ No newline at end of file
diff --git a/sky-server/src/main/resources/mapper/OrderMapper.xml b/sky-server/src/main/resources/mapper/OrderMapper.xml
index 7e43d99..7d3020f 100644
--- a/sky-server/src/main/resources/mapper/OrderMapper.xml
+++ b/sky-server/src/main/resources/mapper/OrderMapper.xml
@@ -44,4 +44,29 @@
where id = #{id}
+
+
\ No newline at end of file
diff --git a/sky-server/src/main/resources/mapper/ShoppingCartMapper.xml b/sky-server/src/main/resources/mapper/ShoppingCartMapper.xml
index b63d361..8212fab 100644
--- a/sky-server/src/main/resources/mapper/ShoppingCartMapper.xml
+++ b/sky-server/src/main/resources/mapper/ShoppingCartMapper.xml
@@ -3,6 +3,13 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+ insert into sky_take_out.shopping_cart (name, image, user_id, dish_id, setmeal_id, dish_flavor, number,
+ amount, create_time) values
+
+ (#{s.name},#{s.image},#{s.userId},#{s.dishId},#{s.setmealId},#{s.dishFlavor},#{s.number},#{s.amount},#{s.createTime})
+
+
delete from sky_take_out.shopping_cart