whywhyo
2023-10-07 bfe6e8b654b3a90b0d95c4aebbef872418ebeaa6
zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java
@@ -36,37 +36,24 @@
    private TravelCountService travelCountService;
    @Override
    public AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize) {
    public AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize,TravelCount travelCount) {
        //设置查询条件
        LambdaQueryWrapper<TravelCount> lqw = new LambdaQueryWrapper<>();
        lqw.eq(TravelCount::getUid,userId);
        if(travelCount!=null){
            lqw.like(travelCount.getName()!=null,TravelCount::getName,travelCount.getName());
            lqw.like(travelCount.getDestination()!=null,TravelCount::getDestination,travelCount.getDestination());
            lqw.like(travelCount.getProperty()!=null,TravelCount::getProperty,travelCount.getProperty());
            lqw.like(travelCount.getManner()!=null,TravelCount::getManner,travelCount.getManner());
            lqw.like(travelCount.getName()!=null,TravelCount::getName,travelCount.getName());
            lqw.like(travelCount.getName()!=null,TravelCount::getName,travelCount.getName());
            lqw.like(travelCount.getName()!=null,TravelCount::getName,travelCount.getName());
        }
        Page<TravelCount> resultPage = page(new Page<>(pageNum, pageSize), lqw);
        resultPage.getRecords().forEach(data ->{
            //先找到对应一条统计数据的所有详细数据
            List<TravelDetail> travelDetailList = travelDetailService.getDataByCid(data.getId());
            double entranceTotal = 0;
            double eatTotal = 0;
            double stayTotal = 0;
            double travelTotal = 0;
            //把所有详细数据的费用值累加起来
            for (TravelDetail detail : travelDetailList) {
                entranceTotal+=detail.getEntrance();
                eatTotal+=detail.getEat();
                stayTotal+=detail.getStay();
                travelTotal+=detail.getTravel();
            }
            data.setEntranceTotal(entranceTotal);
            data.setEatTotal(eatTotal);
            data.setStayTotal(stayTotal);
            data.setTravelTotal(travelTotal);
            DecimalFormat df = new DecimalFormat("0.00");
            data.setTotalPrice(Double.parseDouble(df.format(entranceTotal+eatTotal+data.getGroupTotal()+stayTotal+travelTotal)));
        });
        resultPage.getRecords().forEach(this::inputTotalData);
        return AjaxResult.success(MapUtils.getResult(resultPage));
    }
@@ -83,4 +70,36 @@
        //再删除自己表的数据
        travelCountService.removeBatchByIds(list);
    }
    @Override
    public TravelCount getDataById(Long id) {
        TravelCount travelCount = getById(id);
        inputTotalData(travelCount);
        return travelCount;
    }
    private void inputTotalData(TravelCount travelCount){
        //先找到对应一条统计数据的所有详细数据
        List<TravelDetail> travelDetailList = travelDetailService.getDataByCid(travelCount.getId(),null);
        double entranceTotal = 0;
        double eatTotal = 0;
        double stayTotal = 0;
        double travelTotal = 0;
        //把所有详细数据的费用值累加起来
        for (TravelDetail detail : travelDetailList) {
            entranceTotal+=detail.getEntrance();
            eatTotal+=detail.getEat();
            stayTotal+=detail.getStay();
            travelTotal+=detail.getTravel();
        }
        travelCount.setEntranceTotal(entranceTotal);
        travelCount.setEatTotal(eatTotal);
        travelCount.setStayTotal(stayTotal);
        travelCount.setTravelTotal(travelTotal);
        DecimalFormat df = new DecimalFormat("0.00");
        travelCount.setTotalPrice(Double.parseDouble(df.format(entranceTotal+eatTotal+travelCount.getGroupTotal()+stayTotal+travelTotal)));
    }
}