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