| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | @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()); |
| | | addPriceDetail.forEach(priceDetail -> { |
| | | priceDetail.setFeeId(priceDto.getId()); |
| | | }); |
| | | |
| | | //那就先增加到数据库中 |
| | | zTravelPriceDetailService.saveBatch(addPriceDetail); |
| | | |
| | | //得到总天数 |
| | | long count = detailList.stream().map(ZTravelPriceDetail::getHappenTime).distinct().count(); |
| | |
| | | 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); |