美文网首页
解决mybatisplus 更新/查询操作便捷?

解决mybatisplus 更新/查询操作便捷?

作者: Raral | 来源:发表于2021-06-17 21:05 被阅读0次

update

如果更新表根据主键id, IService 的 updateById(update);

public Boolean updateByEditBo(AppDiseaseEditBo bo) {
        AppDisease update = BeanUtil.toBean(bo, AppDisease.class);
        validEntityBeforeSave(update);
        return this.updateById(update);
    }
UpdateWrapper<AssetCouponPo> uw = new UpdateWrapper<>();
            uw.eq(!StrUtil.isBlankIfStr(adPo.getLogoId()), "logo_id", adPo.getLogoId());
            uw.set(!StrUtil.isBlankIfStr(adPo.getLogoTitle()), "logo_title", adPo.getLogoTitle());
            uw.set(!StrUtil.isBlankIfStr(adPo.getLogoUrl()), "logo_url", adPo.getLogoUrl());
            this.update(uw);
 LambdaUpdateWrapper<AssetCouponPo> luw = Wrappers.lambdaUpdate();
            luw.eq(!StrUtil.isBlankIfStr(adPo.getLogoId()), AssetCouponPo::getLogoId, adPo.getLogoId());
            luw.set(!StrUtil.isBlankIfStr(adPo.getLogoTitle()), AssetCouponPo::getLogoTitle, adPo.getLogoTitle());
            luw.set(!StrUtil.isBlankIfStr(adPo.getLogoUrl()), AssetCouponPo::getLogoUrl, adPo.getLogoUrl());
            this.update(luw);

如果更新表 根据非主键id, 需要BaseMapper的update

 if (count != null && count != 0) {
            //修改
            QueryWrapper<ShopCouponResellPO> wrapper = new QueryWrapper<>();
            wrapper.eq("my_coupon_id", shopCouponResellDTO.getMyCouponId());
            shopCouponResellDao.update(shopCouponResell, wrapper);


        } else {
            shopCouponResellDao.insert(shopCouponResell);
        }

select 分页

  1. 分页,条件
Page page = new Page(refundOrderReqDTO.getPage(), refundOrderReqDTO.getSize());
        LambdaQueryWrapper<ShopRefundApplyPO> lqw = Wrappers.lambdaQuery();
        lqw.eq(!StrUtil.isBlankIfStr(refundOrderReqDTO.getOrderNumber()), ShopRefundApplyPO::getOrderNumber, refundOrderReqDTO.getOrderNumber());
        lqw.eq(!StrUtil.isBlankIfStr(refundOrderReqDTO.getPayOrderId()), ShopRefundApplyPO::getPayOrderId, refundOrderReqDTO.getPayOrderId());
        Page pageRec = null;
        try {
            pageRec = shopRefundApplyMapper.selectPage(page, lqw);
        } catch (Exception e) {
            log.error("查询退款订单列表异常");
        }
  1. 聚合

QueryWrapper<TShopResellOrderPO> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("resell_user_id", uid);
        queryWrapper.select("ifnull(sum(order_price),0) as totalAccount");
        TShopResellOrderPO tShopResellOrderPO = this.resellOrderMapper.selectOne(queryWrapper);
        BigDecimal totalAccount = BigDecimal.valueOf(0.00).setScale(2, RoundingMode.HALF_UP);
        if (tShopResellOrderPO != null) {
            totalAccount = tShopResellOrderPO.getTotalAccount().setScale(2, RoundingMode.HALF_UP);
        }
        return totalAccount;

==>  Preparing: SELECT ifnull(sum(order_price),0) as totalAccount FROM t_cs_shop_resell_order WHERE (resell_user_id = ?) 
==> Parameters: 1111(String)
<==    Columns: totalAccount
<==        Row: 4.00
<==      Total: 1

方便使用

updateSucc = tradeOrderService.update(Wrappers.<TradeOrderPO>lambdaUpdate()
                        .set(TradeOrderPO::getStatus, TradeOrderStatusEnum.TRADE_SUCC.getCode())
                        .set(TradeOrderPO::getFinishTime, notifyReq.getEndTime())//支付完成时间
                        .set(TradeOrderPO::getChanOrderNo, notifyReq.getOrderId())//收银台订单号
                        .eq(TradeOrderPO::getStatus, TradeOrderStatusEnum.TRADE_ING.getCode())
                        .eq(TradeOrderPO::getTradeOrderNo, notifyReq.getOrderNumber())
                        .eq(TradeOrderPO::getOrderType, TradeOrderTypeEnum.FIRST_COUPON.getCode())
                        .eq(TradeOrderPO::getTradeType, TradeTypeEnum.PAY.getCode())
                );
 CouponOrder couponOrder = couponOrderDao.selectOne(new QueryWrapper<CouponOrder>().lambda().eq(CouponOrder::getAccno, couponNum));
        TradeOrderQueryDto orderQueryDto = TradeOrderQueryDto.builder().elecOrderNo(couponOrder.getOrderNumber())
                .orderType(TradeOrderTypeEnum.FIRST_COUPON.getCode()).tradeType(TradeTypeEnum.PAY.getCode()).build();
        TradeOrderPO payTradeOrder = this.tradeOrderService.querySingleTraderOrder(orderQueryDto);

相关文章

网友评论

      本文标题:解决mybatisplus 更新/查询操作便捷?

      本文链接:https://www.haomeiwen.com/subject/xschyltx.html