苍穹外卖学习笔记(二十)

ops/2024/10/17 22:36:45/

文章目录

  • 用户端历史订单模块:
    • 查询历史订单
      • OrderController
      • OrderService
      • OrderServiceImpl
    • 查询订单详情
      • OrderController
      • OrderService
      • OrderServiceImpl

用户端历史订单模块:

查询历史订单

OrderController

java">  /*** 历史订单*/@GetMapping("/historyOrders")@ApiOperation(value = "历史订单")public Result<PageResult> page(int page, int pageSize, Integer status) {PageResult pageResult = orderService.pageQuery4User(page, pageSize, status);return Result.success(pageResult);}

OrderService

java"> /*** 分页查询用户订单*/PageResult pageQuery4User(int page, int pageSize, Integer status);

OrderServiceImpl

java">/*** 分页查询用户订单*/@Overridepublic PageResult pageQuery4User(int pageNum, int pageSize, Integer status) {Page<Orders> page = new Page<>(pageNum, pageSize);OrdersPageQueryDTO ordersPageQueryDTO = new OrdersPageQueryDTO();ordersPageQueryDTO.setUserId(BaseContext.getCurrentId());ordersPageQueryDTO.setStatus(status);//查询条件LambdaQueryWrapper<Orders> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(Orders::getUserId, BaseContext.getCurrentId());if (status != null) {queryWrapper.eq(Orders::getStatus, status);}if (ordersPageQueryDTO.getNumber() != null && !ordersPageQueryDTO.getNumber().isEmpty()) {queryWrapper.like(Orders::getNumber, ordersPageQueryDTO.getNumber());}if (ordersPageQueryDTO.getPhone() != null && !ordersPageQueryDTO.getPhone().isEmpty()) {queryWrapper.like(Orders::getPhone, ordersPageQueryDTO.getPhone());}if (ordersPageQueryDTO.getBeginTime() != null) {queryWrapper.ge(Orders::getOrderTime, ordersPageQueryDTO.getBeginTime());}if (ordersPageQueryDTO.getEndTime() != null) {queryWrapper.le(Orders::getOrderTime, ordersPageQueryDTO.getEndTime());}Page<Orders> ordersPage = orderMapper.selectPage(page, queryWrapper);List<OrderVO> list = new ArrayList<>();if (ordersPage != null && ordersPage.getTotal() > 0) {for (Orders orders : ordersPage.getRecords()) {Long orderId = orders.getId();LambdaQueryWrapper<OrderDetail> orderDetailLambdaQueryWrapper = new LambdaQueryWrapper<>();orderDetailLambdaQueryWrapper.eq(OrderDetail::getOrderId, orderId);List<OrderDetail> orderDetails = orderDetailMapper.selectList(orderDetailLambdaQueryWrapper);OrderVO orderVO = new OrderVO();BeanUtils.copyProperties(orders, orderVO);orderVO.setOrderDetailList(orderDetails);list.add(orderVO);}}assert ordersPage != null;//用于断言return new PageResult(ordersPage.getTotal(), list);}

查询订单详情

OrderController

java">  /*** 订单详情*/@GetMapping("/orderDetail/{id}")@ApiOperation(value = "订单详情")public Result<OrderVO> details(@PathVariable Long id) {OrderVO orderVO = orderService.details(id);return Result.success(orderVO);}

OrderService

java">/*** 订单详情*/OrderVO details(Long id);

OrderServiceImpl

java">/*** 订单详情*/@Overridepublic OrderVO details(Long id) {Orders orders = orderMapper.selectById(id);LambdaQueryWrapper<OrderDetail> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(OrderDetail::getOrderId, id);List<OrderDetail> orderDetailList = orderDetailMapper.selectList(queryWrapper);OrderVO orderVO = new OrderVO();BeanUtils.copyProperties(orders, orderVO);orderVO.setOrderDetailList(orderDetailList);return orderVO;}

http://www.ppmy.cn/ops/126317.html

相关文章

12.1-基础柱状图构建

Python基础综合案例——数据可视化 动态柱状图 通过Bar构建基础柱状图 反转x和y轴 调用 bar.reversal_axis() 我们现在所看到的数值是从下到上的&#xff0c;当我们反转之后数据是从左向右的&#xff0c;我们现在把数据放到柱的右边。即数值标签在右侧 添加y轴数据的时候&am…

MySQL高可用性(MySQL High Availability)解析

MHA (Master High Availability Manager) 是一种用于 MySQL 主从复制架构的高可用性解决方案&#xff0c;可以实现自动故障转移&#xff0c;从而减少停机时间并提高系统的可用性。 MHA 的工作原理 MHA 通过监控主库的状态并在检测到主库故障时自动进行故障转移来实现高可用性…

显卡的HDMI和DP接口的区别,如何给显卡选择最佳效果的显示器

1、HDMI和DisplayPort&#xff08;DP&#xff09;的区别 在显卡接口的选择上&#xff0c;HDMI和DisplayPort&#xff08;DP&#xff09;是两种常见的连接方式。它们在兼容性、性能以及分辨率等方面存在区别。具体分析如下&#xff1a; 兼容性 HDMI&#xff1a;广泛兼容多种设备…

本地合并develop分支到分支a

步骤 切换到a分支&#xff1a; 首先&#xff0c;你需要切换到目标分支a。 git checkout a合并develop分支到a分支&#xff1a; 使用git merge命令将develop分支合并到当前分支&#xff08;即a分支&#xff09;。 git merge develop解决冲突&#xff08;如果有&#xff09;&…

React(四) 事件总线,setState的原理,PureComponent优化React性能,ref获取类组件与函数组件

文章目录 一、全局事件总线二、setState的原理1. 为什么要使用setState修改数据2. setState的三种用法(1) 基本使用(2) 传入回调函数(3) setState是一个异步调用 3. setState为什么要设置成异步 二、PureComponent优化性能1. React的diff算法以及Key的优化(扩展)(1) diff算法(2…

多仓多门店库存管理与系统设计

库存是供应链之魂。 在新零售模式下&#xff0c;仓库和门店遍布全国甚至全球&#xff0c;如果库存管理不到位&#xff0c;就没法给企业赋能&#xff0c;无法给客户带来极致购物体验。 商品的库存数是整个供应链业务的核心&#xff0c;是业务能顺利流转的基础&#xff0c;如何…

Axure PR 9 滑动条 设计交互

​大家好&#xff0c;我是大明同学。 这期内容&#xff0c;我们来探讨Axure中滑动条设计与交互技巧。 滑动条 创建滑动条所需的元件 1.打开一个新的 RP 文件并在画布上打开 Page 1。 2.在元件库中拖出一个矩形元件。 3.选中矩形元件&#xff0c;样式窗格中&#xff0c;将宽…

双调TSP问题最牛逼的解法,不接受所有人反驳

为什么我取这个标题呢&#xff1f;因为我的解 又简单 又好写 我找遍了许多答案&#xff0c;却没发现一个满意的&#xff0c;通过询问GPT&#xff0c;再通过自己的改善&#xff0c;总算得到正确的解了&#xff01;&#xff01;&#xff01; 首先你得明白是如何递推的。 我们规…