package com.ruoyi.gas.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.gas.domain.GEmergencyRepair; import com.ruoyi.gas.domain.bo.GEmergencyRepairBo; import com.ruoyi.gas.domain.bo.GEmergencyRepairPhotoBo; import com.ruoyi.gas.domain.vo.GEmergencyRepairVo; import com.ruoyi.gas.mapper.GEmergencyRepairMapper; import com.ruoyi.gas.service.IGEmergencyRepairPhotoService; import com.ruoyi.gas.service.IGEmergencyRepairService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 抢险维修Service业务层处理 * * @author JX.Li * @date 2023-10-23 */ @Service public class GEmergencyRepairServiceImpl extends ServicePlusImpl implements IGEmergencyRepairService { @Autowired private IGEmergencyRepairPhotoService igEmergencyRepairPhotoService; @Override public GEmergencyRepairVo queryById(Long id) { GEmergencyRepairVo byId = baseMapper.getById(id); byId.setPhotoList(baseMapper.getPhoto(id)); return byId; } @Override public TableDataInfo queryPageList(GEmergencyRepairBo bo) { Page page = new Page<>(bo.getPageNum(), bo.getPageSize()); Page list = baseMapper.getList(bo, page); return PageUtils.buildDataInfo(list); } @Override public List queryList(GEmergencyRepairBo bo) { return listVo(buildQueryWrapper(bo)); } private LambdaQueryWrapper buildQueryWrapper(GEmergencyRepairBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.like(StringUtils.isNotBlank(bo.getRepairName()), GEmergencyRepair::getRepairName, bo.getRepairName()); return lqw; } @Override public Boolean insertByBo(GEmergencyRepairBo bo) { GEmergencyRepair add = BeanUtil.toBean(bo, GEmergencyRepair.class); validEntityBeforeSave(add); boolean flag = save(add); if (flag) { bo.setId(add.getId()); //添加照片 List piclist = bo.getPhotoList(); if (piclist != null) { for (int i = 0; i < bo.getPhotoList().size(); i++) { GEmergencyRepairPhotoBo photo = new GEmergencyRepairPhotoBo(); photo.setEmergencyRepairId(bo.getId()); photo.setPicUrl(bo.getPhotoList().get(i)); igEmergencyRepairPhotoService.insertByBo(photo); } } } return flag; } @Override public Boolean updateByBo(GEmergencyRepairBo bo) { GEmergencyRepair update = BeanUtil.toBean(bo, GEmergencyRepair.class); validEntityBeforeSave(update); List piclist = bo.getPhotoList(); if (piclist != null) { //原有的照片 List photolist = baseMapper.getPhoto(bo.getId()); //原有的照片不在新传的照片里 List dellist = photolist.stream().filter(i -> !piclist.contains(i)).collect(Collectors.toList()); //删除照片 if (dellist.size() > 0) { igEmergencyRepairPhotoService.deleteByUrl(bo.getId(), dellist); } //新传的照片不在原有的照片里 List inslist = piclist.stream().filter(i -> !photolist.contains(i)).collect(Collectors.toList()); if (inslist.size() > 0) { for (int i = 0; i < inslist.size(); i++) { if (StringUtils.isNotEmpty(inslist.get(i))) { //添加照片 GEmergencyRepairPhotoBo photo = new GEmergencyRepairPhotoBo(); photo.setEmergencyRepairId(bo.getId()); photo.setPicUrl(inslist.get(i)); igEmergencyRepairPhotoService.insertByBo(photo); } } } } return updateById(update); } /** * 保存前的数据校验 * * @param entity 实体类数据 */ private void validEntityBeforeSave(GEmergencyRepair entity) { //TODO 做一些数据校验,如唯一约束 } @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return removeByIds(ids); } }