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.

90 lines
3.3 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.KuaidixinxiDao;
import com.entity.KuaidixinxiEntity;
import com.service.KuaidixinxiService;
import com.entity.vo.KuaidixinxiVO;
import com.entity.view.KuaidixinxiView;
//类定位分析
@Service("kuaidixinxiService")
public class KuaidixinxiServiceImpl extends ServiceImpl<KuaidixinxiDao, KuaidixinxiEntity> implements KuaidixinxiService {
//核心职责处理所有快递信息Kuaidixinxi 的业务逻辑
//技术架构:
//继承MyBatis-Plus的ServiceImpl → 拥有基础的CRUD操作能力
//实现自定义的KuaidixinxiService接口 → 扩展高级查询功能
//使用VO/View对象 → 实现数据展示与业务逻辑分离
//1. 基础分页查询(实体层)
@Override
public PageUtils queryPage(Map<String, Object> params) {
Page<KuaidixinxiEntity> page = this.selectPage(
new Query<KuaidixinxiEntity>(params).getPage(),
new EntityWrapper<KuaidixinxiEntity>()
);
return new PageUtils(page);
}
//作用:查询原始快递实体数据的分页列表
//特点:
//无查询条件 → 返回全部数据
//返回KuaidixinxiEntity → 包含所有数据库字段
//使用场景:后台管理-快递信息列表页(需要查看所有字段)
//2. 条件分页查询(视图层)
@Override
public PageUtils queryPage(Map<String, Object> params, Wrapper<KuaidixinxiEntity> wrapper) {
Page<KuaidixinxiView> page =new Query<KuaidixinxiView>(params).getPage();
page.setRecords(baseMapper.selectListView(page,wrapper));
PageUtils pageUtil = new PageUtils(page);
return pageUtil;
}
//作用:查询视图对象的分页数据
//特点:
//支持动态查询条件通过wrapper
//返回KuaidixinxiView → 包含关联表数据(如快递员信息、寄件人信息)
//3. VO查询数据展示层
@Override
public List<KuaidixinxiVO> selectListVO(Wrapper<KuaidixinxiEntity> wrapper) {
return baseMapper.selectListVO(wrapper);
}
@Override
public KuaidixinxiVO selectVO(Wrapper<KuaidixinxiEntity> wrapper) {
return baseMapper.selectVO(wrapper);
}
//作用获取值对象Value Object 列表或单个对象
//VO特点
//只包含前端需要的核心字段
//可能包含计算字段(如预计到达时间)
//数据格式优化(如状态转为中文描述)
//4. View查询关联数据层
@Override
public List<KuaidixinxiView> selectListView(Wrapper<KuaidixinxiEntity> wrapper) {
return baseMapper.selectListView(wrapper);
}
@Override
public KuaidixinxiView selectView(Wrapper<KuaidixinxiEntity> wrapper) {
return baseMapper.selectView(wrapper);
}
//作用:获取视图对象列表或单个对象
//View特点
//包含多表关联数据(如快递详情+快递员联系方式+寄件人信息)
//结构复杂但数据完整
}