package io.loli.sc.server.service.pan; import io.loli.sc.server.dao.pan.LinkDao; import io.loli.sc.server.entity.pan.FileEntity; import io.loli.sc.server.entity.pan.LinkEntity; import io.loli.util.string.MD5Util; import java.security.NoSuchAlgorithmException; import java.util.Date; import javax.inject.Inject; import javax.inject.Named; import javax.transaction.Transactional; import org.apache.log4j.Logger; @Named public class LinkService { private static final Logger logger = Logger.getLogger(LinkService.class); @Inject private LinkDao linkDao; @Transactional public void save(LinkEntity link) { linkDao.save(link); } @Transactional public LinkEntity getPermLinkByFileId(FileEntity file) { if (!linkDao.checkPermLinkExistsByFileId(file.getId())) { LinkEntity link = new LinkEntity(); link.setFile(file); link.setCreateDate(new Date()); String newPath = null; try { newPath = MD5Util.hash(file.getMd5() + System.nanoTime()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); logger.error(e); newPath = String.valueOf(System.nanoTime()); } link.setPath(newPath); link.setTime(0); link.setType(LinkEntity.TYPE_PERM); linkDao.save(link); } return linkDao.findPermLinkByFileId(file.getId()); } public FileEntity findFileByPath(String path) { return linkDao.findfileByPath(path); } }