您的位置:首页 > 文旅 > 美景 > 湖南优化推广_互联网创业项目什么赚钱_网站建设的好公司_石家庄seo外包的公司

湖南优化推广_互联网创业项目什么赚钱_网站建设的好公司_石家庄seo外包的公司

2025/1/7 14:23:23 来源:https://blog.csdn.net/weixin_42739799/article/details/144927831  浏览:    关键词:湖南优化推广_互联网创业项目什么赚钱_网站建设的好公司_石家庄seo外包的公司
湖南优化推广_互联网创业项目什么赚钱_网站建设的好公司_石家庄seo外包的公司

瑞吉外卖项目学习笔记(一)准备工作、员工登录功能实现
瑞吉外卖项目学习笔记(二)Swagger、logback、表单校验和参数打印功能的实现
瑞吉外卖项目学习笔记(三)过滤器实现登录校验、添加员工、分页查询员工信息
瑞吉外卖项目学习笔记(四)@TableField(fill = FieldFill.INSERT)公共字段填充、启用/禁用/修改员工信息
瑞吉外卖项目学习笔记(五)菜品/套餐分类的增删改查
瑞吉外卖项目学习笔记(六)分页查询菜品列表、实现图片上传和下载
瑞吉外卖项目学习笔记(七)新增菜品、(批量)删除菜品
瑞吉外卖项目学习笔记(八)修改菜品信息、批量启售/停售菜品
瑞吉外卖项目学习笔记(九)套餐列表分页查询、新增套餐、图片上传和下载
瑞吉外卖项目学习笔记(十)修改套餐、删除套餐、起售和停售套餐

文章目录

  • 11 订单管理
    • 11.1 需求分析
    • 11.2 数据准备
      • 11.2.1 创建订单表`t_orders`、订单明细表`t_order_detail`
      • 11.2.2 使用MyBatisPlus插件生成代码
      • 11.2.3 创建订单查询对象`OrderQuery`
    • 11.3 查询订单列表
      • 11.3.1 需求分析
      • 11.3.2 具体实现

11 订单管理

11.1 需求分析

在“订单明细”页面,实现以下功能:

  • 查询订单列表

11.2 数据准备

11.2.1 创建订单表t_orders、订单明细表t_order_detail

DROP TABLE IF EXISTS `t_orders`;
CREATE TABLE `t_orders` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`number` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '订单号',`status` int(11) NOT NULL DEFAULT '1' COMMENT '订单状态 1待付款,2待派送,3已派送,4已完成,5已取消',`user_id` bigint(20) NOT NULL COMMENT '下单用户',`address_book_id` bigint(20) NOT NULL COMMENT '地址id',`order_time` datetime NOT NULL COMMENT '下单时间',`checkout_time` datetime NOT NULL COMMENT '结账时间',`pay_method` int(11) NOT NULL DEFAULT '1' COMMENT '支付方式 1微信,2支付宝',`amount` decimal(10,2) NOT NULL COMMENT '实收金额',`remark` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '备注',`phone` varchar(255) COLLATE utf8_bin DEFAULT NULL,`address` varchar(255) COLLATE utf8_bin DEFAULT NULL,`user_name` varchar(255) COLLATE utf8_bin DEFAULT NULL,`consignee` varchar(255) COLLATE utf8_bin DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='订单表';INSERT INTO `t_orders` VALUES (1, '1415580119015145474', 1, 1, 1, '2024-07-15 15:52:55', '2024-07-15 15:53:25', 1, 10.23, '玩具', '18922106514', '广东深圳市南山区', '张三', '李四');DROP TABLE IF EXISTS `t_order_detail`;
CREATE TABLE `t_order_detail` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '名字',`image` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '图片',`order_id` bigint(20) NOT NULL COMMENT '订单id',`dish_id` bigint(20) DEFAULT NULL COMMENT '菜品id',`setmeal_id` bigint(20) DEFAULT NULL COMMENT '套餐id',`dish_flavor` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '口味',`number` int(11) NOT NULL DEFAULT '1' COMMENT '数量',`amount` decimal(10,2) NOT NULL COMMENT '金额',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='订单明细表';

11.2.2 使用MyBatisPlus插件生成代码

11.2.3 创建订单查询对象OrderQuery

@Data
@EqualsAndHashCode(callSuper=false)
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "OrderQuery对象", description = "订单查询对象")
public class OrderQuery extends BaseQuery {@ApiModelProperty(value = "订单号")private String number;@ApiModelProperty(value = "订单开始时间")private String beginTime;@ApiModelProperty(value = "订单结束时间")private String endTime;}

11.3 查询订单列表

11.3.1 需求分析

支持根据订单号、下单时间段进行分页查询:

功能请求方法请求路径请求参数
查询订单列表GET/orders/page?page=1&pageSize=10&number=123456&orderTimeStart=2025-01-04 06:00:00&orderTimeEnd=2025-01-04 12:00:00

11.3.2 具体实现

  • 1)在OrdersController类中添加page方法
// com.itweid.takeout.controller.OrdersController@ApiOperation("分页查询订单")
@GetMapping("/page")
public BaseResult<Page<Orders>> page(OrderQuery orderQuery) {return ordersService.pageQueryOrders(orderQuery);
}
  • 2)在OrdersServiceImpl类中具体实现pageQueryOrders方法
// com.itweid.takeout.service.impl.OrdersServiceImpl@Override
public BaseResult<Page<Orders>> pageQueryOrders(OrderQuery orderQuery) {// 处理时间参数LocalDateTime start = null;LocalDateTime end = null;if(StringUtils.isNotBlank(orderQuery.getBeginTime())) {start = LocalDateTime.parse(orderQuery.getBeginTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));}if(StringUtils.isNotBlank(orderQuery.getEndTime())) {end = LocalDateTime.parse(orderQuery.getEndTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));}// 分页查询订单Page<Orders> page = new Page<>(orderQuery.getPage(), orderQuery.getPageSize());lambdaQuery().eq(StringUtils.isNotBlank(orderQuery.getNumber()), Orders::getNumber, orderQuery.getNumber()).ge(start != null, Orders::getOrderTime, start).le(end != null, Orders::getOrderTime, end).page(page);return BaseResult.success(page);
}
  • 3)功能测试

至此,该项目的后台管理页面已经开发完了。接下来是手机端的开发。

本节完,更多内容查阅:瑞吉外卖项目实战

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com