说明:
(1)本篇博客的主要内容是开发【后台:订单列表】接口;
(2)本篇博客没什么难点;只需要注意:【前台:订单列表】接口是查询当前登录用户的订单数据;【后台:订单列表】接口是查询所有用户的订单数据;
目录
1.创建OrderAdminController,并在其中创建处理【后台:订单列表】接口的方法:listForAdmin()方法;
2.在OrderServiceImpl中,创建一查询所有用户的订单数据的方法:listForAdmin()方法;并在OrderService中反向生成方法的声明;
(1)在OrderServiceImpl中,创建一查询所有用户的订单数据的方法:listForAdmin()方法;
3.在OrderMapper中,定义查询所有用户订单数据的方法:selectAllOrderForAdmin()方法;并在OrderMapper.xml中,编写实现SQL;
(1)在OrderMapper中,定义查询所有用户订单数据的方法:selectAllOrderForAdmin()方法;
一:【后台:订单列表】接口说明;
1.【后台:订单列表】接口,接口文档;
然后,【后台:订单列表】接口和【前台:订单列表】接口,获取的数据格式是一样的;只是,【前台:订单列表】接口获取的只是当前登录用户的订单数据;【后台:订单列表】接口获取的是所有用户的订单数据;
关于,这个接口返回的数据格式的内容,如有需要可以参考【Spring Boot电商项目55:订单模块四:【前台:订单列表】接口;】;
2.【后台:订单列表】接口,在接口上的表现;
二:正式开发;
1.创建OrderAdminController,并在其中创建处理【后台:订单列表】接口的方法:listForAdmin()方法;
OrderAdminController:
package com.imooc.mall.controller; import com.github.pagehelper.PageInfo; import com.imooc.mall.common.ApiRestResponse; import com.imooc.mall.service.OrderService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 描述:后台订单Controller */ @RestController public class OrderAdminController { @Autowired OrderService orderService; @ApiOperation("后台管理员的,订单列表") @GetMapping("/admin/order/list") public ApiRestResponse listForAdmin(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) { PageInfo pageInfo = orderService.listForAdmin(pageNum, pageSize); return ApiRestResponse.success(pageInfo); } }
说明:
(1)请求方式,url,参数要符合接口文档的要求;
(2)然后,我们在service层,编写了一个针对后台管理员的、查询所有订单数据的方法:listForAdmin()方法;这将在下一部分介绍;
2.在OrderServiceImpl中,创建一查询所有用户的订单数据的方法:listForAdmin()方法;并在OrderService中反向生成方法的声明;
(1)在OrderServiceImpl中,创建一查询所有用户的订单数据的方法:listForAdmin()方法;
/** * 后台的,针对管理员的,获取订单列表方法;即,获取所有用户的订单的; * @param pageNum * @param pageSize * @return */ @Override public PageInfo listForAdmin(Integer pageNum, Integer pageSize) { //然后,调用Dao层的方法,去查order表,根据userId查询List<order>; List<Order> orderList = orderMapper.selectAllOrderForAdmin(); //由于接口要求,返回的数据格式,需要是OrderVO;;;所以,编写工具方法:把List<Order>拼装成List<OrderVO>; List<OrderVO> orderVOList = orderListToOrderVOList(orderList); //然后,设置分页的:当前页和每页条目数 PageHelper.startPage(pageNum, pageSize); //然后,以Mybatis层返回的查询结果List,得到PageInfo对象 PageInfo pageInfo = new PageInfo<>(orderList); //然后,把分页中具体的数据,更改为List<OrderVO> pageInfo.setList(orderVOList); return pageInfo; }
说明:
(1)我们在OrderMapper中,定义了一个查询所有用户订单数据的方法:selectAllOrderForAdmin()方法;这将在下一部分介绍;
(2)这儿,我们把【查询order表,得到的List<Order>】,转换为了【接口要求的,List<OrderVO>】;有关orderListTOOrderVOList()方法,如有需要可以参考【Spring Boot电商项目55:订单模块四:【前台:订单列表】接口;】;
(3)最后,把查询到的结果,包装成PageInfo,返回即可;
3.在OrderMapper中,定义查询所有用户订单数据的方法:selectAllOrderForAdmin()方法;并在OrderMapper.xml中,编写实现SQL;
(1)在OrderMapper中,定义查询所有用户订单数据的方法:selectAllOrderForAdmin()方法;
/** * 查询所有的订单 * @return */ List<Order> selectAllOrderForAdmin();
(2)在OrderMapper.xml中,编写实现SQL;
<select id="selectAllOrderForAdmin" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from imooc_mall_order order by create_time desc; </select>
说明:
(1)这个方法很容易理解,就是查询所有用户的订单数据;