You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
4.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
}
//作用根据条件查询寄件信息的VOValue 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);
}
//作用:根据条件查询单个寄件信息的视图对象。
//适用场景:获取单条寄件记录的详情,包含关联信息(如寄件人详细信息、收件人地址信息等)。
}