package jnpf.service.impl; 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 jnpf.base.ActionResult; import jnpf.base.vo.PaginationVO; import jnpf.constant.MsgCode; import jnpf.entity.FileEntity; import jnpf.mapper.FileMapper; import jnpf.model.YozoFileParams; import jnpf.model.YozoParams; import jnpf.service.YozoService; import jnpf.utils.SplicingUrlUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.List; /** * @author JNPF */ @Service @RequiredArgsConstructor public class YozoServiceImpl implements YozoService { private final FileMapper fileMapper; public static final String F_FILE_VERSION = "F_FileVersion"; @Override public String getPreviewUrl(YozoFileParams params) { return SplicingUrlUtil.getPreviewUrl(params); } @Override public ActionResultsaveFileId(String fileVersionId, String fileId, String fileName) { FileEntity fileEntity =new FileEntity(); fileEntity.setId(fileId); fileEntity.setFileName(fileName); fileEntity.setFileVersionId(fileVersionId); fileEntity.setType("create"); fileMapper.insert(fileEntity); return ActionResult.success(MsgCode.SU001.get()); } @Override public FileEntity selectByName(String fileNa) { QueryWrapper wrapper =new QueryWrapper<>(); wrapper.eq("F_FileName",fileNa); return fileMapper.selectOne(wrapper); } @Override public ActionResultsaveFileIdByHttp(String fileVersionId, String fileId, String fileUrl) { String fileName = ""; String url=""; String name=""; try { url = URLDecoder.decode(fileUrl, "UTF-8"); if (url.contains("/")){ fileName = url.substring(url.lastIndexOf("/") + 1); }else { fileName = url.substring(url.lastIndexOf("\\") + 1); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } //同一url文件数 QueryWrapper wrapper =new QueryWrapper<>(); wrapper.eq("F_Url",url); Integer total = 0; if (total==0){ name=fileName; }else{ String t =total.toString(); name= fileName+"(" + t +")"; } FileEntity fileEntity =new FileEntity(); fileEntity.setType(url.contains("http") ? "http" : "local"); fileEntity.setFileVersionId(fileVersionId ); fileEntity.setId(fileId); fileEntity.setFileName(name); fileEntity.setUrl(url); fileMapper.insert(fileEntity); return ActionResult.success(MsgCode.SU001.get()); } @Override public ActionResultdeleteFileByVersionId(String versionId) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(F_FILE_VERSION,versionId); int i = fileMapper.delete(wrapper); if (i==1){ return ActionResult.success(MsgCode.SU003.get()); } return ActionResult.fail(MsgCode.FA003.get()); } @Override public FileEntity selectByVersionId(String fileVersionId) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(F_FILE_VERSION,fileVersionId); return fileMapper.selectOne(wrapper); } @Override public ActionResultdeleteBatch(String[] versions) { for (String version : versions){ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(F_FILE_VERSION,version); int i = fileMapper.delete(wrapper); if (i==0){ return ActionResult.fail(MsgCode.FA045.get(version)); } } return ActionResult.success(MsgCode.SU003.get()); } @Override public void editFileVersion(String oldFileId, String newFileId) { UpdateWrapper wrapper = new UpdateWrapper<>(); wrapper.eq(F_FILE_VERSION,oldFileId); FileEntity fileEntity =new FileEntity(); fileEntity.setFileVersionId(newFileId); fileEntity.setOldFileVersionId(oldFileId); fileMapper.update(fileEntity,wrapper); } @Override public List getAllList(PaginationVO pageModel) { Page page = new Page<>(pageModel.getCurrentPage(), pageModel.getPageSize()); IPage iPage = fileMapper.selectPage(page,null); return iPage.getRecords(); } }