From 50bb228c2323228585f20b1a82ba424588c53820 Mon Sep 17 00:00:00 2001 From: CR7 <1965214192@qq.com> Date: Wed, 18 Dec 2024 21:44:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/service/impl/MyOrderServiceImpl.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 yami-shop-service/src/main/java/com/yami/shop/service/impl/MyOrderServiceImpl.java diff --git a/yami-shop-service/src/main/java/com/yami/shop/service/impl/MyOrderServiceImpl.java b/yami-shop-service/src/main/java/com/yami/shop/service/impl/MyOrderServiceImpl.java new file mode 100644 index 0000000..2f54ad0 --- /dev/null +++ b/yami-shop-service/src/main/java/com/yami/shop/service/impl/MyOrderServiceImpl.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. + * + * https://www.mall4j.com/ + * + * 未经允许,不可做商业用途! + * + * 版权所有,侵权必究! + */ + +package com.yami.shop.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yami.shop.bean.app.dto.MyOrderDto; +import com.yami.shop.bean.model.Order; +import com.yami.shop.common.util.PageAdapter; +import com.yami.shop.dao.OrderMapper; +import com.yami.shop.service.MyOrderService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * MyOrderServiceImpl 是 MyOrderService 接口的具体实现类。 + * 它继承自 MyBatis-Plus 提供的 ServiceImpl,并实现了 MyOrderService 中定义的方法。 + * 该服务负责处理与用户订单(Order)相关的业务逻辑。 + * + * @author lgh on 2018/09/15. + */ +@Service +public class MyOrderServiceImpl extends ServiceImpl implements MyOrderService { + + /** + * orderMapper 是通过 Spring 自动装配的 DAO 层组件, + * 用于执行对 Order 实体对应的数据库表的操作。 + */ + @Autowired + private OrderMapper orderMapper; + + /** + * pageMyOrderByUserIdAndStatus 方法实现了根据用户ID和订单状态分页查询订单信息的功能。 + * + * @param page 分页参数,包含了当前页码、每页显示记录数等信息。 + * 该参数也作为返回结果的一部分,用来封装分页后的数据。 + * @param userId 用户唯一标识符,用于确定要查询哪个用户的订单。 + * @param status 订单的状态码,用于过滤符合条件的订单。 + * 如果为 null,则表示不根据订单状态进行过滤。 + * @return 返回一个 IPage 对象,其中包含分页后的订单信息列表, + * 以及与分页相关的元数据(如总记录数、总页数等)。 + */ + @Override + public IPage pageMyOrderByUserIdAndStatus(Page page, String userId, Integer status) { + // 使用 PageAdapter 将传入的分页对象适配成适合底层查询的形式 + page.setRecords(orderMapper.listMyOrderByUserIdAndStatus(new PageAdapter(page), userId, status)); + + // 查询满足条件的订单总数,以便设置分页对象的总记录数 + page.setTotal(orderMapper.countMyOrderByUserIdAndStatus(userId, status)); + + // 返回填充了数据的分页对象 + return page; + } +}