package com.ruoyi.system.service.impl; import com.alibaba.fastjson.JSON; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.core.utils.file.FilePrefixUtils; import com.ruoyi.system.api.RemoteFileService; import com.ruoyi.system.api.domain.SysFile; import com.ruoyi.system.domain.CenterdataTAttach; import com.ruoyi.system.mapper.CenterdataTAttachMapper; import com.ruoyi.system.service.ICenterdataTAttachService; import org.apache.commons.collections4.MapUtils; 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.List; import java.util.Map; /** * 附件Service业务层处理 * * @author ruoyi * @date 2022-06-11 */ @Service public class CenterdataTAttachServiceImpl extends BaseServiceImpl implements ICenterdataTAttachService { @Autowired private CenterdataTAttachMapper centerdataTAttachMapper; /** * 查询附件 * * @param busId 附件主键 * @return 附件 */ @Override public CenterdataTAttach selectCenterdataTAttachByBusId(String busId) { return centerdataTAttachMapper.selectCenterdataTAttachByBusId(busId); } /** * 查询附件列表 * * @param centerdataTAttach 附件 * @return 附件 */ @Override public List selectCenterdataTAttachList(CenterdataTAttach centerdataTAttach) { return centerdataTAttachMapper.selectCenterdataTAttachList(centerdataTAttach); } @Override public List remotelistNew(CenterdataTAttach centerdataTAttach) { return centerdataTAttachMapper.remotelistNew(centerdataTAttach); } /** * 新增附件 * * @param centerdataTAttach 附件 * @return 结果 */ @Override public int insertCenterdataTAttach(CenterdataTAttach centerdataTAttach) { /* *ImageUpload返回是全路径,数据库保存不要ip和端口号 */ if (centerdataTAttach.getAttachPath().startsWith("http")) { String attachPath = centerdataTAttach.getAttachPath(); if (centerdataTAttach.getAttachPath().contains("Download")) { int i1 = attachPath.indexOf("group="); attachPath = attachPath.replace("&&path=", "/"); attachPath = attachPath.substring(i1 + 6); centerdataTAttach.setAttachPath(attachPath); } else { int i1 = attachPath.indexOf('/'); int i2 = attachPath.indexOf('/', i1 + 1); int i3 = attachPath.indexOf('/', i2 + 1); centerdataTAttach.setAttachPath(centerdataTAttach.getAttachPath().substring(i3 + 1, attachPath.length())); } } return centerdataTAttachMapper.insertCenterdataTAttach(centerdataTAttach); } /** * 修改附件 * * @param centerdataTAttach 附件 * @return 结果 */ @Override public int updateCenterdataTAttach(CenterdataTAttach centerdataTAttach) { return centerdataTAttachMapper.updateCenterdataTAttach(centerdataTAttach); } /** * 删除附件信息 * * @param busId 附件主键 * @return 结果 */ @Override public int deleteCenterdataTAttachByBusId(String busId) { return centerdataTAttachMapper.deleteCenterdataTAttachByBusId(busId); } @Transactional @Override public void updateEventAttach(Map paramMap) { List attaches = centerdataTAttachMapper.listCenterdataTAttachByBusId(MapUtils.getString(paramMap, "busId")); attaches.forEach(item -> { String url = ""; if ("DH_1".equals(item.getBusSource())) { url = FilePrefixUtils.getUrlPrefix(item.getBusSource(), paramMap) + item.getAttachPath() + "?token=" + MapUtils.getString(paramMap, "token"); } else { url = FilePrefixUtils.getUrlPrefix(item.getBusSource(), paramMap) + item.getAttachPath(); } MultipartFile multipartFile = FilePrefixUtils.urlToMultipartFile(url, System.currentTimeMillis() + ".jpg"); SysFile sysFile = SpringUtils.getBean(RemoteFileService.class).upload(multipartFile).getData(); item.setFileName(item.getAttachPath()); item.setAttachPath(sysFile.getUrl()); item.setBusSource("APP".equals(MapUtils.getString(paramMap, "czlx")) ? "APP" : "PC"); centerdataTAttachMapper.updateEventAttach(item); setSookaDataBase(item); item.setFileName(JSON.toJSONString(item)); item.setCreateTime(DateUtils.getNowDate()); centerdataTAttachMapper.insertEventFileLog(item); }); } @Transactional @Override public void updateEventAttachSchedule(Map paramMap, SysFile sysFile) { CenterdataTAttach centerdataTAttach = new CenterdataTAttach(); centerdataTAttach.setFileName(MapUtils.getString(paramMap, "url")); centerdataTAttach.setAttachPath(sysFile.getUrl()); centerdataTAttach.setBusSource("PC"); centerdataTAttach.setBusId(MapUtils.getString(paramMap, "busId")); centerdataTAttachMapper.updateEventAttach(centerdataTAttach); setSookaDataBase(centerdataTAttach); centerdataTAttach.setFileName(JSON.toJSONString(centerdataTAttach)); centerdataTAttach.setCreateTime(DateUtils.getNowDate()); centerdataTAttachMapper.insertEventFileLog(centerdataTAttach); } @Override public void updateEventAttach(CenterdataTAttach centerdataTAttach) { centerdataTAttachMapper.updateEventAttach(centerdataTAttach); } @Override public int insertListCenterdataTAttach(List list) { return centerdataTAttachMapper.insertListCenterdataTAttach(list); } @Override public List> selectFailUpattah() { return centerdataTAttachMapper.selectFailUpattah(); } @Override public int deleteListCenterdataTAttach(String busId, List list) { return centerdataTAttachMapper.deleteListCenterdataTAttach(busId, list); } @Override public List selectDataAttachPathByBusId(String busId) { return centerdataTAttachMapper.selectDataAttachPathByBusId(busId); } }