@SelectProvider的用法

首先在mapper里面写个方法

@SelectProvider(type = SalesOrderProvider.class, method = "selectSalesInformation")
    List<SalesInformation> selectSalesInformation(@Param("createDateStart") String createDateStart, @Param("createDateEnd") String createDateEnd);

然后再在SalesOrderProvider.class这个类里面写方法

public String selectSalesInformation(@Param("createDateStart") String createDateStart, @Param("createDateEnd") String createDateEnd){
        StringBuffer sql = new StringBuffer();
        sql.append(" SELECT ORDER_STATUS,b.number,b.unit_price,a.CREATE_DATE FROM hl4pl_sales_order a join hl4pl_sales_order_goods b ");
        sql.append(" where a.ID=b.ID and a.CREATE_DATE BETWEEN #{createDateStart} and #{createDateEnd} ");
        sql.append(" HAVING ORDER_STATUS =8 or ORDER_STATUS =6 ");
        return sql.toString();
    }

最后就在实现类里面直接调用就好了。

public SalesInformaitonVo getSalesInformation(String createDateStart, String createDateEnd){
        List<SalesInformation> salesInformations = salesOrderMapper.selectSalesInformation(createDateStart,createDateEnd);
        BigDecimal salesVolume = BigDecimal.ZERO;//销售额
        BigDecimal totalOrders = BigDecimal.ZERO;//订单总量
        int totalSales = salesInformations.size();//销售总量
        for (SalesInformation salesInformation : salesInformations) {
            if (salesInformation.getNumber()!=null&&salesInformation.getUnitPrice()!=null&&salesInformation.getNumber()!=BigDecimal.ZERO&&salesInformation.getUnitPrice()!=BigDecimal.ZERO){
                salesVolume = salesVolume.add(salesInformation.getNumber().multiply(salesInformation.getUnitPrice()));
                totalOrders = totalOrders.add(salesInformation.getNumber());
            }
        }
        SalesInformaitonVo salesInformaitonVo = new SalesInformaitonVo();
        salesVolume=salesVolume.divide(BigDecimal.valueOf(10000));
        BigDecimal bigDecimal = salesVolume.setScale(2, BigDecimal.ROUND_UP);//四舍五入两位小数
        salesInformaitonVo.setSalesVolume(bigDecimal);
        salesInformaitonVo.setTotalOrders(totalOrders);
        salesInformaitonVo.setTotalSales(totalSales);
        return salesInformaitonVo;
    }

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值