diff --git a/src/main/java/com/nis/domain/configuration/AvFileSampleCfg.java b/src/main/java/com/nis/domain/configuration/AvFileSampleCfg.java index 459582bed..586c9f578 100644 --- a/src/main/java/com/nis/domain/configuration/AvFileSampleCfg.java +++ b/src/main/java/com/nis/domain/configuration/AvFileSampleCfg.java @@ -1,16 +1,51 @@ package com.nis.domain.configuration; +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + public class AvFileSampleCfg extends BaseCfg { /** * */ private static final long serialVersionUID = -2356472662189941874L; + @Expose + @SerializedName("srcFile") private String srcUrl; + @Expose + @SerializedName("sampleFile") private String sampleUrl; + @Expose + @SerializedName("srcFileMd5") private String srcMd5; + @Expose + @SerializedName("sampleFileMd5") private String sampleMd5; + @Expose private Integer level; + @Expose + @SerializedName("cfgId") + private Integer compileId; + private String srcPath; + private String samplePath; + public String getSrcPath() { + return srcPath; + } + public void setSrcPath(String srcPath) { + this.srcPath = srcPath; + } + public String getSamplePath() { + return samplePath; + } + public void setSamplePath(String samplePath) { + this.samplePath = samplePath; + } + public Integer getCompileId() { + return compileId; + } + public void setCompileId(Integer compileId) { + this.compileId = compileId; + } public String getSrcUrl() { return srcUrl; } diff --git a/src/main/java/com/nis/domain/configuration/AvSignSampleCfg.java b/src/main/java/com/nis/domain/configuration/AvSignSampleCfg.java index c8c57c1df..aec629b47 100644 --- a/src/main/java/com/nis/domain/configuration/AvSignSampleCfg.java +++ b/src/main/java/com/nis/domain/configuration/AvSignSampleCfg.java @@ -1,13 +1,21 @@ package com.nis.domain.configuration; +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + public class AvSignSampleCfg extends BaseCfg { /** * */ private static final long serialVersionUID = 8002327858986390761L; + @Expose private String description; + @Expose private Integer level; + @Expose + @SerializedName("cfgId") + private Integer compileId; public String getDescription() { return description; } @@ -20,4 +28,11 @@ public class AvSignSampleCfg extends BaseCfg { public void setLevel(Integer level) { this.level = level; } + public Integer getCompileId() { + return compileId; + } + public void setCompileId(Integer compileId) { + this.compileId = compileId; + } + } diff --git a/src/main/java/com/nis/domain/configuration/BaseCfg.java b/src/main/java/com/nis/domain/configuration/BaseCfg.java index a200853b3..68ad54642 100644 --- a/src/main/java/com/nis/domain/configuration/BaseCfg.java +++ b/src/main/java/com/nis/domain/configuration/BaseCfg.java @@ -11,6 +11,9 @@ package com.nis.domain.configuration; import java.util.Date; import java.util.List; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; import com.nis.domain.BaseEntity; /** @@ -54,6 +57,7 @@ public class BaseCfg extends BaseEntity implements Cloneable{ /** * 有效标识 */ + @Expose protected Integer isValid; /** * 是否审核 @@ -94,10 +98,14 @@ public class BaseCfg extends BaseEntity implements Cloneable{ /** * 审核时间 */ + @Expose + @SerializedName("opTime") protected Date auditTime; /** * 业务id */ + @Expose + @SerializedName("service") protected Integer serviceId; /** * 来函id @@ -332,7 +340,7 @@ public class BaseCfg extends BaseEntity implements Cloneable{ * auditTime * @return auditTime */ - + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") public Date getAuditTime() { return auditTime; } diff --git a/src/main/java/com/nis/util/ConfigServiceUtil.java b/src/main/java/com/nis/util/ConfigServiceUtil.java index 16f9a92ff..931ee40f2 100644 --- a/src/main/java/com/nis/util/ConfigServiceUtil.java +++ b/src/main/java/com/nis/util/ConfigServiceUtil.java @@ -9,6 +9,8 @@ import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import net.sf.json.JSONObject; + import org.glassfish.jersey.media.multipart.FormDataMultiPart; import org.glassfish.jersey.media.multipart.file.FileDataBodyPart; @@ -95,7 +97,7 @@ public class ConfigServiceUtil { * @return * @throws Exception */ - public static String postFileCfg(String params,File file,Map fileDesc) throws Exception{ + public static String postFileCfg(String params,File file,JSONObject fileDesc) throws Exception{ String result = null; String url = Constants.SERVICE_URL+Constants.FILE_UPLOAD_CFG; //创建连接 @@ -103,7 +105,7 @@ public class ConfigServiceUtil { FormDataMultiPart formDataMultiPart=new FormDataMultiPart(); FileDataBodyPart bodyPart=new FileDataBodyPart("file",file); formDataMultiPart.bodyPart(bodyPart); - Builder header = wt.request(MediaType.APPLICATION_JSON).header("File-Desc",ClientUtil.formatFileDesc(fileDesc) ); + Builder header = wt.request(MediaType.APPLICATION_JSON).header("File-Desc",fileDesc); Response response= header.post(Entity.entity(formDataMultiPart, formDataMultiPart.getMediaType())); if( response.getStatus() == 200){ result= response.readEntity(String.class); diff --git a/src/main/java/com/nis/util/FileUtils.java b/src/main/java/com/nis/util/FileUtils.java index c233b2039..56a71120f 100644 --- a/src/main/java/com/nis/util/FileUtils.java +++ b/src/main/java/com/nis/util/FileUtils.java @@ -10,6 +10,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; +import java.security.MessageDigest; import java.util.Enumeration; import javax.servlet.ServletOutputStream; @@ -666,7 +667,25 @@ public class FileUtils extends org.apache.commons.io.FileUtils { } - + /** + * 获取文件前缀 + * + * @param filename + * @param isDot + * true:加“.” + * @return + */ + public static String getPrefix(String filename, Boolean isDot) { + String prefix = ""; + int pos = filename.lastIndexOf('.'); + if (pos > 0 && pos < filename.length() - 1) { + if (!isDot) { + pos = pos - 1; + } + prefix = filename.substring(0,pos); + } + return prefix; + } /** * 获取文件后缀 * @@ -728,4 +747,36 @@ public class FileUtils extends org.apache.commons.io.FileUtils { } } } + /** + * 计算文件MD5 + * @param file + * @return + */ + public static String getFileMD5(File file){ + if(!file.isFile()){ + return ""; + } + String md5 = ""; + MessageDigest digest=null; + FileInputStream in=null; + byte[] buffer=new byte[1024]; + int len; + try{ + digest=MessageDigest.getInstance("MD5"); + in=new FileInputStream(file); + while ((len=in.read(buffer,0,1024)) !=-1) { + digest.update(buffer,0,len); + } + in.close(); + }catch(Exception e){ + e.printStackTrace(); + return ""; + } + byte[] b = digest.digest(); + for (int i=0; i < b.length; i++) { + md5 += Integer.toString( (b[i] & 0xff ) + 0x100, 16).substring(1);//加0x100是因为有的b[i]的十六进制只有1位 + } +// BigInteger bigInt=new BigInteger(1,digest.digest()); + return md5; + } } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java index 36a535945..1eb1ae0ab 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java @@ -1,17 +1,23 @@ package com.nis.web.controller.configuration.ntc; +import java.io.File; +import java.util.UUID; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.multipart.MultipartFile; import com.nis.domain.Page; import com.nis.domain.configuration.AppIdCfg; import com.nis.domain.configuration.AvFileSampleCfg; import com.nis.domain.configuration.AvSignSampleCfg; +import com.nis.util.FileUtils; import com.nis.util.StringUtil; import com.nis.web.controller.BaseController; @@ -63,8 +69,48 @@ public class AvController extends BaseController { } //保存文件样例配置 @RequestMapping(value = {"/sample/saveFileSample"}) - public String saveFileSample(Model model,HttpServletRequest request,HttpServletResponse response,String ids,AvFileSampleCfg entity){ - avCfgService.saveOrUpdateAvFileSample(entity); + public String saveFileSample(Model model,HttpServletRequest request,HttpServletResponse response, + String ids,AvFileSampleCfg entity,MultipartFile srcFile,MultipartFile sampleFile){ + try{ + if(StringUtil.isEmpty(entity.getSrcUrl()) && + StringUtil.isEmpty(entity.getSampleUrl()) && + srcFile!=null && sampleFile!=null && + srcFile.getSize()>0 && sampleFile.getSize()>0){ + + String sep = System.getProperty("file.separator"); + String srcFilePath = request.getRealPath("/")+"srcFile"; + String sampleFilePath = request.getRealPath("/")+"sampleFile"; + FileUtils.createDirectory(srcFilePath); + FileUtils.createDirectory(sampleFilePath); + String srcFileName = UUID.randomUUID()+FileUtils.getSuffix(srcFile.getOriginalFilename(), true); + String sampleFileName = UUID.randomUUID()+FileUtils.getSuffix(sampleFile.getOriginalFilename(), true); + File uploadSrcFile = new File(srcFilePath+sep+srcFileName); + File uploadSampleFile = new File(sampleFilePath+sep+sampleFileName); + FileCopyUtils.copy(srcFile.getBytes(), uploadSrcFile); + FileCopyUtils.copy(sampleFile.getBytes(),uploadSampleFile); + String host = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/"+request.getContextPath(); + String srcUrl = host+"/srcFile/"+uploadSrcFile.getName(); + String sampleUrl = host+"/sampleFile/"+uploadSampleFile.getName(); + logger.info("srcUrl:"+srcUrl); + logger.info("sampleUrl:"+sampleUrl); + String srcMd5 = FileUtils.getFileMD5(uploadSrcFile); + String sampleMd5 = FileUtils.getFileMD5(uploadSampleFile); + entity.setSrcUrl(srcUrl); + entity.setSrcPath(uploadSrcFile.getPath()); + entity.setSampleUrl(sampleUrl); + entity.setSamplePath(uploadSampleFile.getPath()); + entity.setSrcMd5(srcMd5); + entity.setSampleMd5(sampleMd5); + } + + avCfgService.saveOrUpdateAvFileSample(entity); + + }catch(Exception e){ + logger.error("文件上传失败",e); + e.printStackTrace(); + addMessage(model,"file_upload_failed"); + } + return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+entity.getFunctionId(); } //保存标志样例配置 @@ -73,4 +119,28 @@ public class AvController extends BaseController { avCfgService.saveOrUpdateAvSignSample(entity); return "redirect:" + adminPath +"/ntc/av/sample/signSampleList?functionId="+entity.getFunctionId(); } + //修改文件样例配置状态 + @RequestMapping(value = {"/sample/updateAvFileSampleValid"}) + public String updateAvFileSampleValid(Integer isAudit,Integer isValid,String ids,Integer functionId){ + avCfgService.updateAvFileSampleValid(isAudit,isValid,ids); + return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+functionId; + } + //修改文件样例配置审核状态 + @RequestMapping(value = {"/sample/auditAvFileSample"}) + public String auditAvFileSample(Integer isAudit,Integer isValid,String ids,Integer functionId){ + avCfgService.auditAvFileSample(isAudit,isValid,ids); + return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+functionId; + } + //修改标志样例配置状态 + @RequestMapping(value = {"/sample/updateAvSignSampleValid"}) + public String updateAvSignSampleValid(Integer isAudit,Integer isValid,String ids,Integer functionId){ + avCfgService.updateAvSignSampleValid(isAudit,isValid,ids); + return "redirect:" + adminPath +"/ntc/av/sample/signSampleList?functionId="+functionId; + } + //修改标志样例配置审核状态 + @RequestMapping(value = {"/sample/auditAvSignSample"}) + public String auditAvSignSample(Integer isAudit,Integer isValid,String ids,Integer functionId){ + avCfgService.auditAvSignSample(isAudit,isValid,ids); + return "redirect:" + adminPath +"/ntc/av/sample/signSampleList?functionId="+functionId; + } } diff --git a/src/main/java/com/nis/web/dao/SysMenuDao.xml b/src/main/java/com/nis/web/dao/SysMenuDao.xml index b884fb054..bb22f942d 100644 --- a/src/main/java/com/nis/web/dao/SysMenuDao.xml +++ b/src/main/java/com/nis/web/dao/SysMenuDao.xml @@ -135,7 +135,7 @@ + + + + @@ -101,32 +114,41 @@ $(function(){ -
-
- -
- -
-
-
- -
-
-
- -
- -
-
-
+
+ +
+
+
+
+ +
+ <%-- --%> + + +
+
+
+
+
+
+ +
+ <%-- --%> + + +
+
+
+
+
@@ -143,10 +165,12 @@ $(function(){
+
- <%@include file="/WEB-INF/include/form/areaInfo.jsp" %> + <%-- <%@include file="/WEB-INF/include/form/areaInfo.jsp" %> --%> + <%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
diff --git a/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp b/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp index 8819e565d..389935500 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp @@ -8,7 +8,9 @@ //搜索框提示语初始化 if("${cfg.cfgDesc}"){ $("#intype").val("${cfg.cfgDesc}"); - } else{ + }else if("${cfg.level}"){ + $("#intype").val("${cfg.level}"); + }else{ $("#intype").attr("placeholder"," "+$("#seltype").find("option:selected").text()); } $("#seltype").change(function(){ @@ -27,7 +29,7 @@ $(this).find("option:first").attr("selected",true); }); $(".Wdate").attr("value",''); - $("#keywords").attr("value",''); + $("#level").attr("value",''); $("#searchForm")[0].reset(); }); }); @@ -65,7 +67,7 @@
- + @@ -94,6 +96,7 @@ +
@@ -110,7 +113,7 @@
- +
@@ -119,9 +122,9 @@
@@ -289,8 +292,18 @@ - ${cfg.srcUrl } - ${cfg.sampleUrl } + + + ${fn:substring(cfg.srcUrl,0,20) } + + + + + ${fn:substring(cfg.sampleUrl,0,20) } + + ${cfg.level } ${cfg.cfgDesc }