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 ; 
 | 
    } 
 | 
  
 | 
} 
 |