package com.doumee.service.business.impl; import com.doumee.biz.system.SystemDictDataBiz; import com.google.common.collect.Lists; import com.doumee.core.constants.Constants; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; import com.doumee.dao.business.BikeRepairMapper; import com.doumee.dao.business.MultifileMapper; import com.doumee.dao.business.join.BikeRepairJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.business.web.request.BikeRepairDTO; import com.doumee.dao.business.web.request.BikeRepairProblemDTO; import com.doumee.dao.business.web.request.BikeRepairQuery; import com.doumee.dao.business.web.request.RepairRequest; import com.doumee.service.business.BikeRepairService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.Date; import java.util.List; import java.util.Objects; /** * 车辆问题上报信息表Service实现 * @author 江蹄蹄 * @date 2023/09/27 18:06 */ @Service public class BikeRepairServiceImpl implements BikeRepairService { @Autowired private BikeRepairMapper bikeRepairMapper; @Autowired private BikeRepairJoinMapper bikeRepairJoinMapper; @Autowired SystemDictDataBiz systemDictDataBiz; @Autowired private MultifileMapper multifileMapper; @Override public String create(BikeRepair bikeRepair) { bikeRepairMapper.insert(bikeRepair); return bikeRepair.getId(); } @Override public void deleteById(String id) { bikeRepairMapper.deleteById(id); } @Override public void delete(BikeRepair bikeRepair) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(bikeRepair); bikeRepairMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } bikeRepairMapper.deleteBatchIds(ids); } @Override public void updateById(BikeRepair bikeRepair) { bikeRepairMapper.updateById(bikeRepair); } @Override public void updateByIdInBatch(List bikeRepairs) { if (CollectionUtils.isEmpty(bikeRepairs)) { return; } for (BikeRepair bikeRepair: bikeRepairs) { this.updateById(bikeRepair); } } @Override public BikeRepair findById(String id) { return bikeRepairMapper.selectById(id); } @Override public BikeRepair findOne(BikeRepair bikeRepair) { QueryWrapper wrapper = new QueryWrapper<>(bikeRepair); return bikeRepairMapper.selectOne(wrapper); } @Override public List findList(BikeRepair bikeRepair) { QueryWrapper wrapper = new QueryWrapper<>(bikeRepair); return bikeRepairMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getCreateDateStart() != null && pageWrap.getModel().getCreateDateEnd() != null) { queryWrapper.ge(BikeRepair::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDateStart())); queryWrapper.le(BikeRepair::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDateEnd())); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.eq(BikeRepair::getStatus, pageWrap.getModel().getStatus()); } queryWrapper.leftJoin(Member.class,Member::getId,BikeRepair::getMemberId) .leftJoin(Bikes.class,Bikes::getId,BikeRepair::getBinkeId) .leftJoin(BaseParam.class,BaseParam::getId,Bikes::getParamId) .leftJoin("base_param bpp on b.param_id = bp.id and bp.type = 1"); queryWrapper.selectAs(Member::getOpenid,BikeRepairDTO::getOpenid) .selectAs(BikeRepair::getLinkname,BikeRepairDTO::getLinkname) .selectAs(BikeRepair::getLinkphone,BikeRepairDTO::getLinkphone) .selectAs(Bikes::getCode,BikeRepairDTO::getBikeCode) .selectAs(BikeRepair::getCreateDate,BikeRepairDTO::getCreateDate) .selectAs(BikeRepair::getStatus,BikeRepairDTO::getStatus) .selectAs(BaseParam::getName,BikeRepairDTO::getBikeTypeName) .select("bpp.name as problemName"); queryWrapper.like(!StringUtils.isEmpty(pageWrap.getModel().getOpenid()),Member::getOpenid,pageWrap.getModel().getOpenid()) .like(!StringUtils.isEmpty(pageWrap.getModel().getBikeId()),Bikes::getId,pageWrap.getModel().getBikeId()) .eq(!StringUtils.isEmpty(pageWrap.getModel().getStatus()),BikeRepair::getStatus,pageWrap.getModel().getStatus()) .ge(Objects.nonNull(pageWrap.getModel().getCreateDateStart()), BikeRepair::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDateStart())) .le(Objects.nonNull(pageWrap.getModel().getCreateDateEnd()), BikeRepair::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDateEnd())); return PageData.from(bikeRepairJoinMapper.selectJoinPage(page, BikeRepairDTO.class,queryWrapper)); } @Override public BikeRepairProblemDTO getBikeRepairProblemDTO(String id) { BikeRepairProblemDTO bikeRepairProblemDTO = new BikeRepairProblemDTO(); BikeRepair bikeRepair = bikeRepairMapper.selectById(id); bikeRepairProblemDTO.setParam(bikeRepair.getParam()); // multifileMapper.multifile); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(Multifile::getObjId,id) .eq(Multifile::getObjType,Constants.ZERO) .eq(Multifile::getIsdeleted,Constants.ZERO); List multifiles = multifileMapper.selectList(wrapper); //TODO 需要修改 String path =systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(); String projectFile = systemDictDataBiz.queryByCode(Constants.OSS, Constants.PROJECT_FILE).getCode(); if (!CollectionUtils.isEmpty(multifiles)){ multifiles.forEach(s->{ s.setFileurlfull(path+projectFile+s.getFileurl()); }); bikeRepairProblemDTO.setList(multifiles); } return null; } @Override public long count(BikeRepair bikeRepair) { QueryWrapper wrapper = new QueryWrapper<>(bikeRepair); return bikeRepairMapper.selectCount(wrapper); } @Override public void saveRepair(RepairRequest repairRequest){ BikeRepair bikeRepair = new BikeRepair(); BeanUtils.copyProperties(repairRequest,bikeRepair); bikeRepair.setCreateDate(new Date()); bikeRepair.setIsdeleted(Constants.ZERO); bikeRepairMapper.insert(bikeRepair); //处理附件信息 List stringList = repairRequest.getFileUrlList(); if(!Objects.isNull(stringList)&&stringList.size()>Constants.ZERO){ for (int i = 0; i < stringList.size(); i++) { Multifile multifile = new Multifile(); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); multifile.setSortnum(i+Constants.ONE); multifile.setObjId(bikeRepair.getId()); multifile.setType(Constants.ZERO); multifile.setObjType(Constants.ZERO); multifile.setFileurl(stringList.get(i)); multifileMapper.insert(multifile); } } } }