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 32576c7b8..23d6e4682 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,11 +1,18 @@ package com.nis.web.controller.configuration.ntc; import java.io.File; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import net.sf.json.JSONObject; + import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.util.FileCopyUtils; @@ -13,13 +20,20 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; 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.domain.maat.ToMaatResult; +import com.nis.domain.maat.ToMaatResult.ResponseData; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; import com.nis.util.FileUtils; import com.nis.util.StringUtil; import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; /** * 处理音视频业务 @@ -124,9 +138,84 @@ public class AvController extends BaseController { return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+functionId; } //修改文件样例配置审核状态 + /** + * 审核配置下发,为了保证配置下发过程事务正确,一条配置提交一次 + * @param isAudit + * @param isValid + * @param ids + * @param functionId + * @return + */ @RequestMapping(value = {"/sample/auditAvFileSample"}) public String auditAvFileSample(Integer isAudit,Integer isValid,String ids,Integer functionId){ - avCfgService.auditAvFileSample(isAudit,isValid,ids); +// avCfgService.auditAvFileSample(isAudit,isValid,ids); + AvFileSampleCfg entity = new AvFileSampleCfg(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity = avCfgService.getAvFileSampleById(Long.parseLong(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(new Date()); + String oldSrcUrl = entity.getSrcPath(); + String oldSampleUrl = entity.getSamplePath(); + if(isAudit==1){ + //音视频文件上传接口调用 + try { + File srcFile = new File(oldSrcUrl); + Map srcMap = new HashMap(); + srcMap.put("filetype", FileUtils.getSuffix(srcFile.getName(), false)); + srcMap.put("datatype", "dbSystem");//源文件存入数据中心 + srcMap.put("createTime", entity.getCreateTime()); + srcMap.put("key",FileUtils.getPrefix(srcFile.getName(), false)); + srcMap.put("fileName", srcFile.getName()); + srcMap.put("checksum", entity.getSrcMd5()); + ToMaatResult result1 = ConfigServiceUtil.postFileCfg(null, srcFile, JSONObject.fromObject(srcMap)); + logger.info("音视频源文件上传响应信息:"+result1); + //获取文件上传响应信息(新的文件访问路径) + String srcAccessUrl = null; + if(!StringUtil.isEmpty(result1)){ + ResponseData data = result1.getData(); + srcAccessUrl=data.getAccessUrl(); + entity.setSrcUrl(srcAccessUrl); +// entity.setSrcPath(""); + } + File sampleFile = new File(oldSampleUrl); + Map sampleMap = new HashMap(); + sampleMap.put("filetype", FileUtils.getSuffix(sampleFile.getName(), false)); + sampleMap.put("datatype", "fileSystem");//样例文件存入fastdfs + sampleMap.put("createTime", entity.getCreateTime()); + sampleMap.put("key",FileUtils.getPrefix(sampleFile.getName(), false)); + sampleMap.put("fileName", sampleFile.getName()); + sampleMap.put("checksum", entity.getSampleMd5()); + ToMaatResult result2 = ConfigServiceUtil.postFileCfg(null, sampleFile, JSONObject.fromObject(sampleMap)); + logger.info("音视频样例文件上传响应信息:"+result2); + + //获取文件上传响应信息(新的文件访问路径) + String sampleAccessUrl = null; + if(!StringUtil.isEmpty(result2)){ + ResponseData data = result2.getData(); + sampleAccessUrl = data.getAccessUrl(); + entity.setSampleUrl(sampleAccessUrl); +// entity.setSamplePath(""); + + } + + } catch (Exception e) { + e.printStackTrace(); + logger.info("音视频文件样例配置下发失败"); + throw new MaatConvertException(":"+e.getMessage()); + } + } + avCfgService.auditAvFileSample(entity,isAudit); + //删除本地源文件和样例文件 + if(!oldSrcUrl.equals(entity.getSrcUrl())){ + FileUtils.deleteFile(oldSrcUrl); + } + if(!oldSampleUrl.equals(entity.getSampleUrl())){ + FileUtils.deleteFile(oldSampleUrl); + } + } return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+functionId; } //修改标志样例配置状态 @@ -136,9 +225,27 @@ public class AvController extends BaseController { return "redirect:" + adminPath +"/ntc/av/sample/signSampleList?functionId="+functionId; } //修改标志样例配置审核状态 + /** + * 审核配置下发,为了保证配置下发过程事务正确,一条配置提交一次 + * @param isAudit + * @param isValid + * @param ids + * @param functionId + * @return + */ @RequestMapping(value = {"/sample/auditAvSignSample"}) public String auditAvSignSample(Integer isAudit,Integer isValid,String ids,Integer functionId){ - avCfgService.auditAvSignSample(isAudit,isValid,ids); +// avCfgService.auditAvSignSample(isAudit,isValid,ids); + AvSignSampleCfg entity = new AvSignSampleCfg(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity = avCfgService.getAvSignSampleById(Long.parseLong(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(new Date()); + avCfgService.auditAvSignSample(entity,isAudit); + } return "redirect:" + adminPath +"/ntc/av/sample/signSampleList?functionId="+functionId; } } diff --git a/src/main/java/com/nis/web/service/configuration/AvCfgService.java b/src/main/java/com/nis/web/service/configuration/AvCfgService.java index c770a5d5b..cda1b8dc1 100644 --- a/src/main/java/com/nis/web/service/configuration/AvCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/AvCfgService.java @@ -141,81 +141,13 @@ public class AvCfgService extends BaseService{ } - public void auditAvFileSample(Integer isAudit,Integer isValid,String ids){ - AvFileSampleCfg entity = new AvFileSampleCfg(); - String[] idArray = ids.split(","); - List list = new ArrayList(); - Gson gson=new GsonBuilder().disableHtmlEscaping() - .excludeFieldsWithoutExposeAnnotation() - .create(); - for(String id :idArray){ - entity = getAvFileSampleById(Long.parseLong(id)); - entity.setIsAudit(isAudit); - entity.setIsValid(isValid); - entity.setAuditorId(UserUtils.getUser().getId()); - entity.setAuditTime(new Date()); - - String oldSrcUrl = entity.getSrcPath(); - String oldSampleUrl = entity.getSamplePath(); - if(isAudit==1){ - //音视频文件上传接口调用 - try { - File srcFile = new File(oldSrcUrl); - Map srcMap = new HashMap(); - srcMap.put("filetype", FileUtils.getSuffix(srcFile.getName(), false)); - srcMap.put("datatype", "dbSystem");//源文件存入数据中心 - srcMap.put("createTime", entity.getCreateTime()); - srcMap.put("key",FileUtils.getPrefix(srcFile.getName(), false)); - srcMap.put("fileName", srcFile.getName()); - srcMap.put("checksum", entity.getSrcMd5()); - ToMaatResult result1 = ConfigServiceUtil.postFileCfg(null, srcFile, JSONObject.fromObject(srcMap)); - logger.info("音视频源文件上传响应信息:"+result1); - //获取文件上传响应信息(新的文件访问路径) - String srcAccessUrl = null; - if(!StringUtil.isEmpty(result1)){ - ResponseData data = result1.getData(); - srcAccessUrl=data.getAccessUrl(); - entity.setSrcUrl(srcAccessUrl); -// entity.setSrcPath(""); - } - File sampleFile = new File(oldSampleUrl); - Map sampleMap = new HashMap(); - sampleMap.put("filetype", FileUtils.getSuffix(sampleFile.getName(), false)); - sampleMap.put("datatype", "fileSystem");//样例文件存入fastdfs - sampleMap.put("createTime", entity.getCreateTime()); - sampleMap.put("key",FileUtils.getPrefix(sampleFile.getName(), false)); - sampleMap.put("fileName", sampleFile.getName()); - sampleMap.put("checksum", entity.getSampleMd5()); - ToMaatResult result2 = ConfigServiceUtil.postFileCfg(null, sampleFile, JSONObject.fromObject(sampleMap)); - logger.info("音视频样例文件上传响应信息:"+result2); - - //获取文件上传响应信息(新的文件访问路径) - String sampleAccessUrl = null; - if(!StringUtil.isEmpty(result2)){ - ResponseData data = result2.getData(); - sampleAccessUrl = data.getAccessUrl(); - entity.setSampleUrl(sampleAccessUrl); -// entity.setSamplePath(""); - - } - - } catch (Exception e) { - e.printStackTrace(); - logger.info("音视频文件样例配置下发失败"); - throw new MaatConvertException(":"+e.getMessage()); - } - } - avCfgDao.auditAvFileSample(entity); - //删除本地源文件和样例文件 - if(!oldSrcUrl.equals(entity.getSrcUrl())){ - FileUtils.deleteFile(oldSrcUrl); - } - if(!oldSampleUrl.equals(entity.getSampleUrl())){ - FileUtils.deleteFile(oldSampleUrl); - } - list.add(entity); - } - if(isAudit==1){ + public void auditAvFileSample(AvFileSampleCfg entity,Integer isAudit){ + //修改数据库审核状态信息 + avCfgDao.auditAvFileSample(entity); + List list = new ArrayList(); + list.add(entity); + //一条配置提交一次综合服务 + if(isAudit==1){ //调用服务接口下发配置数据 String json=gsonToJson(list); logger.info("音视频文件样例下发配置参数:"+json); @@ -255,19 +187,10 @@ public class AvCfgService extends BaseService{ avCfgDao.updateAvSignSampleValid(entity); } } - public void auditAvSignSample(Integer isAudit,Integer isValid,String ids){ - AvSignSampleCfg entity = new AvSignSampleCfg(); - String[] idArray = ids.split(","); - List list = new ArrayList(); - for(String id :idArray){ - entity = getAvSignSampleById(Long.parseLong(id)); - entity.setIsAudit(isAudit); - entity.setIsValid(isValid); - entity.setAuditorId(UserUtils.getUser().getId()); - entity.setAuditTime(new Date()); - avCfgDao.auditAvSignSample(entity); - list.add(entity); - } + public void auditAvSignSample(AvSignSampleCfg entity,Integer isAudit){ + avCfgDao.auditAvSignSample(entity); + List list = new ArrayList(); + list.add(entity); if(isAudit==1){ //调用服务接口下发配置数据 String json=gsonToJson(list); diff --git a/src/main/webapp/WEB-INF/views/cfg/av/fileSampleForm.jsp b/src/main/webapp/WEB-INF/views/cfg/av/fileSampleForm.jsp index 0f6d155fe..768ddad08 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/fileSampleForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/fileSampleForm.jsp @@ -130,7 +130,7 @@ $(function(){
- +
@@ -156,7 +156,7 @@ $(function(){ -
+
@@ -179,7 +179,7 @@ $(function(){ ${_cfg.sampleUrl } --%>
-
+
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 48e8ddf47..55bcc7a80 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp @@ -334,7 +334,7 @@ - ${fns:abbr(classify,20)} @@ -353,7 +353,7 @@ - ${fns:abbr(attribute,20)} @@ -373,7 +373,7 @@ - ${fns:abbr(lableInfo,20)} diff --git a/src/main/webapp/WEB-INF/views/cfg/av/signSampleForm.jsp b/src/main/webapp/WEB-INF/views/cfg/av/signSampleForm.jsp index c5bc343e1..027d28d9f 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/signSampleForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/signSampleForm.jsp @@ -105,11 +105,11 @@ $(function(){
- +
+
-
@@ -118,6 +118,7 @@ $(function(){
+
@@ -134,6 +135,7 @@ $(function(){
+
diff --git a/src/main/webapp/WEB-INF/views/cfg/av/signSampleList.jsp b/src/main/webapp/WEB-INF/views/cfg/av/signSampleList.jsp index 984f9187f..2d1d57c43 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/signSampleList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/signSampleList.jsp @@ -331,7 +331,7 @@ - ${fns:abbr(classify,20)} @@ -350,7 +350,7 @@ - ${fns:abbr(attribute,20)} @@ -370,7 +370,7 @@ - ${fns:abbr(lableInfo,20)} diff --git a/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp b/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp index 727b3e7f9..50da41d01 100644 --- a/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp @@ -381,7 +381,7 @@ - ${fns:abbr(classify,20)} @@ -400,7 +400,7 @@ - ${fns:abbr(attribute,20)} @@ -420,7 +420,7 @@ - ${fns:abbr(lableInfo,20)}