zqy
5 天以前 b02beccf4567068cb47a3f1181a00039456c872d
zhang-content/src/main/java/com/ruoyi/service/impl/ZTravelPriceServiceImpl.java
@@ -1,7 +1,6 @@
package com.ruoyi.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,10 +9,8 @@
import com.ruoyi.common.utils.MapUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.domain.ZTravelBase;
import com.ruoyi.domain.ZTravelPrice;
import com.ruoyi.domain.ZTravelPrice;
import com.ruoyi.domain.ZTravelPriceDetail;
import com.ruoyi.domain.dto.PriceDto;
@@ -24,7 +21,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.*;
import java.util.stream.Collectors;
@@ -67,8 +63,14 @@
        LambdaQueryWrapper<ZTravelPrice> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZTravelPrice::getMyId, userId)
                .eq(zTravelPrice.getTotalDay() != null, ZTravelPrice::getTotalDay, zTravelPrice.getTotalDay())
                .like(StringUtils.isNotEmpty(zTravelPrice.getTitle()),ZTravelPrice::getTitle,zTravelPrice.getTitle())
                .eq(zTravelPrice.getTotalCost()!=null,ZTravelPrice::getTotalCost,zTravelPrice.getTotalCost())
                .le(zTravelPrice.getEnd() != null, ZTravelPrice::getEndTime, zTravelPrice.getEnd())
                .ge(zTravelPrice.getStart() != null, ZTravelPrice::getStartTime, zTravelPrice.getStart());
                .ge(zTravelPrice.getStart() != null, ZTravelPrice::getStartTime, zTravelPrice.getStart())
                .eq(zTravelPrice.getEat()!=null,ZTravelPrice::getEat,zTravelPrice.getEat())
                .eq(zTravelPrice.getStay()!=null,ZTravelPrice::getStay,zTravelPrice.getStay())
                .eq(zTravelPrice.getTraffic()!=null,ZTravelPrice::getTraffic,zTravelPrice.getTraffic())
                .eq(zTravelPrice.getShopping()!=null,ZTravelPrice::getShopping,zTravelPrice.getShopping());
        lqw.orderBy(true, true, ZTravelPrice::getStartTime);
        return lqw;
@@ -206,6 +208,10 @@
        zTravelPrice.setEndTime(priceDto.getEndTime());
        zTravelPrice.setTotalDay(totalDay);
        zTravelPrice.setTitle(priceDto.getTitle());
        zTravelPrice.setTableName(priceDto.getTableName());
        zTravelPrice.setProperty(priceDto.getProperty());
        zTravelPrice.setType(priceDto.getType());
        zTravelPrice.setDestination(priceDto.getDestination());
        zTravelPrice.setEat(eatTotal);
        zTravelPrice.setStay(stayTotal);
        zTravelPrice.setTraffic(trafficTotal);
@@ -222,12 +228,24 @@
    }
    @Override
    @Transactional
    public AjaxResult myUpdate(PriceDto priceDto) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        List<ZTravelPriceDetail> detailList = priceDto.getDetailList();
        //先查数据库里面这一次费用所有的数据
        LambdaQueryWrapper<ZTravelPriceDetail> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZTravelPriceDetail::getFeeId,priceDto.getId());
        List<ZTravelPriceDetail> selectDetailList = zTravelPriceDetailService.list(lqw);
        //把传过来的数据中没有的id,在数据库中删掉
        List<Long> detailIdList = detailList.stream().filter(priceDetail -> priceDetail.getId() != null).map(ZTravelPriceDetail::getId).collect(Collectors.toList());
        List<Long> deleteIdList = selectDetailList.stream().filter(priceDetail -> !detailIdList.contains(priceDetail.getId())).map(ZTravelPriceDetail::getId).collect(Collectors.toList());
        zTravelPriceDetailService.removeBatchByIds(deleteIdList);
        //如果传过来的列表的数据里面没有id
        List<ZTravelPriceDetail> addPriceDetail = detailList.stream().filter(priceDetail -> priceDetail.getId() == null || priceDetail.getId() == 0 ).collect(Collectors.toList());
@@ -306,6 +324,10 @@
        zTravelPrice.setEndTime(priceDto.getEndTime());
        zTravelPrice.setTotalDay(totalDay);
        zTravelPrice.setTitle(priceDto.getTitle());
        zTravelPrice.setTableName(priceDto.getTableName());
        zTravelPrice.setProperty(priceDto.getProperty());
        zTravelPrice.setType(priceDto.getType());
        zTravelPrice.setDestination(priceDto.getDestination());
        zTravelPrice.setEat(eatTotal);
        zTravelPrice.setStay(stayTotal);
        zTravelPrice.setTraffic(trafficTotal);