package com.dy.pmsOther.dyFm;
|
|
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.fileWebDownloadUrl = confVo.webDownloadUrl ;
|
}
|
}
|
}
|
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.fileWebDownloadUrl = confVo.webDownloadUrl ;
|
}
|
}
|
}
|
return rvo ;
|
}
|
|
}
|