package com.dy.pipIrrWebFile.fm; import com.dy.common.util.MurmurHash; public class RestHashDeal { /** * 文件名称计算转换 * @param fileName * @param rvo * @return * @throws Exception */ public FileRestVo fileTransRest(String fileName, FileRestVo rvo) throws Exception{ if(fileName != null && !fileName.trim().equals("") && rvo != null){ if(DyFmListener.dyFileGroup == null || DyFmListener.dyFileGroup.list == null || DyFmListener.dyFileGroup.list.size() == 0){ throw new Exception("严重错误,文件服务器restful未配置!") ; }else{ DyFileSvConf.Vo confVo = null ; Integer hash = null ; if(DyFmListener.dyFileGroup.list.size() == 1){ confVo = DyFmListener.dyFileGroup.list.get(0) ; }else{ hash = new MurmurHash().hash16_plus(fileName) ; for(DyFileSvConf.Vo lvo : DyFmListener.dyFileGroup.list){ if(hash >= lvo.hashStart.intValue() && hash <= lvo.hashEnd.intValue()){ confVo = lvo ; break ; } } } if(confVo != null){ rvo.fileSysId = confVo.id; rvo.fileNameHash = hash; rvo.fileSysAbsolutePath = confVo.fileSysAbsolutePath; rvo.fileSysRelativePath = confVo.fileSysRelativePath; rvo.fileSysRestUrl = confVo.restUrl; rvo.fileWebUrl = confVo.webUrl ; rvo.fileWebDownloadPath = confVo.webDownloadPath ; } } } return rvo ; } /** * 哈希值计算转换 * @param hashcode * @param rvo * @return * @throws Exception */ public FileRestVo fileTransRest(Integer hashcode, FileRestVo rvo) throws Exception{ if(hashcode != null && rvo != null){ if(DyFmListener.dyFileGroup == null || DyFmListener.dyFileGroup.list == null || DyFmListener.dyFileGroup.list.size() == 0){ throw new Exception("严重错误,文件服务器restful未配置!") ; }else{ DyFileSvConf.Vo confVo = null ; Integer hash = hashcode ; if(DyFmListener.dyFileGroup.list.size() == 1){ confVo = DyFmListener.dyFileGroup.list.get(0) ; }else{ for(DyFileSvConf.Vo lvo : DyFmListener.dyFileGroup.list){ if(hash >= lvo.hashStart.intValue() && hash <= lvo.hashEnd.intValue()){ confVo = lvo ; break ; } } } if(confVo != null){ rvo.fileSysId = confVo.id; rvo.fileNameHash = hash; rvo.fileSysAbsolutePath = confVo.fileSysAbsolutePath; rvo.fileSysRelativePath = confVo.fileSysRelativePath; rvo.fileSysRestUrl = confVo.restUrl; rvo.fileWebUrl = confVo.webUrl ; rvo.fileWebDownloadPath = confVo.webDownloadPath ; } } } return rvo ; } }