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