package com.service.impl; import org.springframework.stereotype.Service; import java.util.Map; import java.util.List; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.utils.PageUtils; import com.utils.Query; import com.dao.JijianxinxiDao; import com.entity.JijianxinxiEntity; import com.service.JijianxinxiService; import com.entity.vo.JijianxinxiVO; import com.entity.view.JijianxinxiView; //类定义与继承关系 @Service("jijianxinxiService") public class JijianxinxiServiceImpl extends ServiceImpl implements JijianxinxiService { //作用:这是寄件信息服务的具体实现类,被Spring标记为服务组件(@Service),在Spring容器中的名称为jijianxinxiService。 //继承: //继承了MyBatis-Plus的ServiceImpl,因此默认拥有了18个基础的CRUD操作方法。 //实现了自定义的JijianxinxiService接口,提供了更多特定于寄件信息的功能。 //方法1:基础分页查询 @Override public PageUtils queryPage(Map params) { Page page = this.selectPage( new Query(params).getPage(), new EntityWrapper() ); return new PageUtils(page); } //作用:查询寄件信息的分页数据,不包含任何条件(即查询所有寄件信息)。 //流程: //Query(params).getPage():将请求参数params(包含page页码和limit每页条数)转换为MyBatis-Plus的Page对象。 //new EntityWrapper():创建一个空的查询条件包装器,表示无条件查询。 //this.selectPage(...):调用MyBatis-Plus提供的基础分页查询方法,返回分页结果。 //将分页结果包装为PageUtils对象返回(该对象通常包含分页数据和分页信息)。 //方法2:带条件的分页查询 @Override public PageUtils queryPage(Map params, Wrapper wrapper) { Page page =new Query(params).getPage(); page.setRecords(baseMapper.selectListView(page,wrapper)); PageUtils pageUtil = new PageUtils(page); return pageUtil; } //作用:根据条件查询寄件信息的分页数据,返回的是JijianxinxiView视图对象的分页结果。 //特点: //支持复杂的查询条件(通过Wrapper参数)。 //返回的是视图对象(JijianxinxiView)的分页数据,通常视图对象会包含关联表的信息(如用户姓名、快递公司名称等)。 //流程: //根据params构建分页参数(Page对象)。 //调用baseMapper.selectListView(page, wrapper)执行分页查询,并设置结果到page对象中。 //将page对象包装为PageUtils返回。 //方法3:查询VO列表 @Override public List selectListVO(Wrapper wrapper) { return baseMapper.selectListVO(wrapper); } //作用:根据条件查询寄件信息的VO(Value Object)列表。 //说明: //JijianxinxiVO是一个值对象,通常只包含寄件信息的部分字段,或者包含一些计算字段,用于特定的业务场景(如导出、报表等)。 //通过wrapper可以添加查询条件。 //方法4:查询单个VO @Override public JijianxinxiVO selectVO(Wrapper wrapper) { return baseMapper.selectVO(wrapper); } //作用:根据条件查询单个寄件信息的VO对象。 //适用场景:查询单条寄件记录的特定视图,如寄件详情页。 //方法5:查询视图列表 @Override public List selectListView(Wrapper wrapper) { return baseMapper.selectListView(wrapper); } //作用:根据条件查询寄件信息的视图对象列表(非分页)。 //说明: //JijianxinxiView通常是一个包含关联信息的视图对象,比如关联了用户表、地址表等。 //与selectListVO的区别在于,视图对象通常用于展示更复杂的数据结构(包含关联表字段)。 //方法6:查询单个视图 @Override public JijianxinxiView selectView(Wrapper wrapper) { return baseMapper.selectView(wrapper); } //作用:根据条件查询单个寄件信息的视图对象。 //适用场景:获取单条寄件记录的详情,包含关联信息(如寄件人详细信息、收件人地址信息等)。 }