posts - 45,comments - 0,views - 4785

引入依赖

复制代码
<dependency>
    <groupId>com.github.yulichang</groupId>
    <artifactId>mybatis-plus-join</artifactId>
    <version>1.2.4</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>
复制代码

 

修改Mapper

以往在使用myatis-plus的时候,我们的Mapper层接口都是直接继承的BaseMapper,使用mpj后需要对其进行修改,改为继承MPJBaseMapper接口。

用了mapper的全局扫描mapperscan注解

public interface SalesOrderMapper extends MPJBaseMapper<SalesOrder> {
}

查询

Mapper接口改造完成后,我们把它注入到Service中,虽然说我们要完成3张表的联表查询,但是以SalesOrder作为主表的话,那么只注入这一个对应的SalesOrderMapper就可以,非常简单。

service

.innerJoin(SalesReturns.class,SalesReturns::getOrderId,SalesOrder::getOrderId);

innerjoin  leftjoin rightjoin后的实体类型与第一个字段保持一致

复制代码
@Service
public class SalesRejectionReasonServiceImpl extends ServiceImpl<SalesRejectionReasonMapper, SalesRejectionReason> implements SalesRejectionReasonService {

    @Autowired
    private SalesOrderMapper salesOrderMapper;

    @Override
    public PageResult<SalesOrderVo> findByPage(ReturnsCriteria returnsCriteria) {
        PageHelper.startPage(returnsCriteria.getCurrentPage(),returnsCriteria.getPageSize());

        MPJLambdaWrapper<SalesOrder> wrapper = new MPJLambdaWrapper<>();
        wrapper.selectAll(SalesOrder.class)
                .select(SalesReturns::getRejectionReason,SalesReturns::getRejectionDate)
                .innerJoin(SalesReturns.class,SalesReturns::getOrderId,SalesOrder::getOrderId);

        //添加查询条件
        //订单编号
        wrapper.eq(!StringUtils.isEmpty(returnsCriteria.getOrderId()),
                SalesOrder::getOrderId,returnsCriteria.getOrderId());
        //拒收原因
        if(!StringUtils.isEmpty(returnsCriteria.getRejectionReason())&&!returnsCriteria.getRejectionReason().equals("全部")){
            wrapper.eq(SalesReturns::getRejectionReason,returnsCriteria.getRejectionReason());
        }
        //下单日期
        if(!StringUtils.isEmpty(returnsCriteria.getStartTime())&&!StringUtils.isEmpty(returnsCriteria.getEndTime())){
            wrapper.between(SalesOrder::getOrderDate,returnsCriteria.getStartTime(),returnsCriteria.getEndTime());
        }

        List<SalesOrderVo> salesOrderVos = salesOrderMapper.selectJoinList(SalesOrderVo.class, wrapper);

        PageInfo<SalesOrderVo> salesOrderPageInfo = new PageInfo<>(salesOrderVos);
        long total = salesOrderPageInfo.getTotal();

        PageResult<SalesOrderVo> orderPageResult = new PageResult<>();
        orderPageResult.setTotal(total);
        orderPageResult.setDataList(salesOrderVos);

        return orderPageResult;

    }
}
复制代码

 

 

 

 

 

 

 

 

 

 

 

 

 



posted on   小贤看世界  阅读(842)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示