diff --git a/src/main/java/com/zcloud/aspect/DockingAspect.java b/src/main/java/com/zcloud/aspect/DockingAspect.java index 7783a8b2..817e3d28 100644 --- a/src/main/java/com/zcloud/aspect/DockingAspect.java +++ b/src/main/java/com/zcloud/aspect/DockingAspect.java @@ -34,98 +34,163 @@ public class DockingAspect { private DockingRelationService dockingRelationService; @Pointcut("@annotation(com.zcloud.aspect.DockAnnotation)") - public void pointcut() {} + public void pointcut() { + } public static Map dockingRelationMap = new HashMap(); // 增强逻辑:在切点方法执行前打印日志 @Around("pointcut()") public Object beforeApi(ProceedingJoinPoint joinPoint) throws Throwable { - Map proceed = (HashMap)joinPoint.proceed(); - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = joinPoint.getTarget().getClass().getDeclaredMethod(signature.getName(), signature.getParameterTypes()); + try { - HttpServletRequest request = getRequest(); - //获取资源映射路径:servlet路径 - String servletPath = request.getServletPath(); - //验证该数据是否需要对接 - System.out.println("------------------------切面方法执行------------------------"); - //将路径换为对应的访问路径 - /*servletPath=dockingRelationMap.get(servletPath); - //完整访问路径(访问港务局的路径,不是被访问的路径) - String fullPath = gwjUrl+servletPath; - System.out.println("完整路径:"+fullPath);*/ - //获取所有访问参数 - PageData pageData = getPageData(); - DockAnnotation annotation = method.getAnnotation(DockAnnotation.class); - if (annotation != null) { - if (annotation.isAdd()){ - if (Tools.notEmpty(proceed.get("dockData"))){ - pageData.put("dockData",proceed.get("dockData")); - } - }else if (annotation.hasAnnex()) { - //查找附件 - String dockDataJson = pageData.getString("dockData"); - if (Tools.notEmpty(dockDataJson)){ - Map dockData = (Map) JSON.parse(dockDataJson); - String img = dockData.get("img"); - for (String imgurl : img.split(",")) { - //获取附件名称 - String[] split = imgurl.split("/"); - String filename = split[split.length - 1]; - PageData imgpd = new PageData(); - imgpd.put("imgUrl",imgurl); - imgpd.put("filename",filename); - imgpd.put("url","/file/saveImg"); - imgpd.put("TARGETURL","https://qgqy.qhdsafety.com/file/"); - imgpd.put("ORIGINURL","https://qgqy.qhdsafety.com/file/"); - TenCorpDto tenCorpDto = new TenCorpDto(); - tenCorpDto.setMessage("一条新增消息"); - tenCorpDto.setData(imgpd); - tenCorpDto.setId(UuidUtil.get32UUID()); - tenCorpDto.setTopic("docking"); - tenCorpDto.setProducer_name("qa-prevention-czks"); - sendMessageService.sendMessage(tenCorpDto); - } - } - } + Object proceed = joinPoint.proceed(); + HashMap parseProceed = JSON.parseObject(JSON.toJSONString(proceed), HashMap.class); + if (parseProceed == null) { + return parseProceed; } - PageData login_user = new PageData(); - if (!servletPath.contains("/app/")) { - login_user.put("USER_ID",Jurisdiction.getUSER_ID()); - login_user.put("USERNAME",Jurisdiction.getUsername()); - login_user.put("CORPINFO_ID",Jurisdiction.getCORPINFO_ID()); - login_user.put("DEPARTMENT_ID",Jurisdiction.getDEPARTMENT_ID()); - login_user.put("NAME",Jurisdiction.getName()); - login_user.put("ISSUPERVISE",Jurisdiction.getISSUPERVISE()); - login_user.put("POST_ID",Jurisdiction.getPOST_ID()); - } - pageData.put("LOGIN_USER",login_user); - pageData.put("url",servletPath); - /*//连接redis - Jedis jedis = new Jedis(host,port); - //测试是否连接成功 - String ping = jedis.ping(); - System.out.println(ping); - //切换数据库 - String select = jedis.select(0); - System.out.println(select); - //存储数据至redis - String rq = JSON.toJSONString(map); - jedis.zadd("request",0,rq); - System.out.println(rq);*/ - TenCorpDto tenCorpDto = new TenCorpDto(); - tenCorpDto.setMessage("一条新增消息"); - tenCorpDto.setData(pageData); - tenCorpDto.setId(UuidUtil.get32UUID()); - tenCorpDto.setTopic("docking"); - tenCorpDto.setProducer_name("qa-prevention-czks"); - sendMessageService.sendMessage(tenCorpDto); - System.out.println("------------------------方法执行完毕------------------------"); + // 数据同步 + dataSync(parseProceed, joinPoint); + return proceed; } catch (Exception e) { - throw new RuntimeException(e); + throw e; } - return proceed; +// +// +// MethodSignature signature = (MethodSignature) joinPoint.getSignature(); +// Method method = joinPoint.getTarget().getClass().getDeclaredMethod(signature.getName(), signature.getParameterTypes()); +// try { +// HttpServletRequest request = getRequest(); +// //获取资源映射路径:servlet路径 +// String servletPath = request.getServletPath(); +// //验证该数据是否需要对接 +// System.out.println("------------------------切面方法执行------------------------"); +// //将路径换为对应的访问路径 +// /*servletPath=dockingRelationMap.get(servletPath); +// //完整访问路径(访问港务局的路径,不是被访问的路径) +// String fullPath = gwjUrl+servletPath; +// System.out.println("完整路径:"+fullPath);*/ +// //获取所有访问参数 +// PageData pageData = getPageData(); +// DockAnnotation annotation = method.getAnnotation(DockAnnotation.class); +// if (annotation != null) { +// if (annotation.isAdd()) { +// if (Tools.notEmpty(proceed.get("dockData"))) { +// pageData.put("dockData", proceed.get("dockData")); +// } +// } else if (annotation.hasAnnex()) { +// //查找附件 +// String dockDataJson = pageData.getString("dockData"); +// if (Tools.notEmpty(dockDataJson)) { +// Map dockData = (Map) JSON.parse(dockDataJson); +// String img = dockData.get("img"); +// for (String imgurl : img.split(",")) { +// //获取附件名称 +// String[] split = imgurl.split("/"); +// String filename = split[split.length - 1]; +// PageData imgpd = new PageData(); +// imgpd.put("imgUrl", imgurl); +// imgpd.put("filename", filename); +// imgpd.put("url", "/file/saveImg"); +// imgpd.put("TARGETURL", "https://qgqy.qhdsafety.com/file/"); +// imgpd.put("ORIGINURL", "https://qgqy.qhdsafety.com/file/"); +// TenCorpDto tenCorpDto = new TenCorpDto(); +// tenCorpDto.setMessage("一条新增消息"); +// tenCorpDto.setData(imgpd); +// tenCorpDto.setId(UuidUtil.get32UUID()); +// tenCorpDto.setTopic("docking"); +// tenCorpDto.setProducer_name("qa-prevention-czks"); +// sendMessageService.sendMessage(tenCorpDto); +// } +// } +// } +// } +// PageData login_user = new PageData(); +// if (!servletPath.contains("/app/")) { +// login_user.put("USER_ID", Jurisdiction.getUSER_ID()); +// login_user.put("USERNAME", Jurisdiction.getUsername()); +// login_user.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); +// login_user.put("DEPARTMENT_ID", Jurisdiction.getDEPARTMENT_ID()); +// login_user.put("NAME", Jurisdiction.getName()); +// login_user.put("ISSUPERVISE", Jurisdiction.getISSUPERVISE()); +// login_user.put("POST_ID", Jurisdiction.getPOST_ID()); +// } +// pageData.put("LOGIN_USER", login_user); +// pageData.put("url", servletPath); +// /*//连接redis +// Jedis jedis = new Jedis(host,port); +// //测试是否连接成功 +// String ping = jedis.ping(); +// System.out.println(ping); +// //切换数据库 +// String select = jedis.select(0); +// System.out.println(select); +// //存储数据至redis +// String rq = JSON.toJSONString(map); +// jedis.zadd("request",0,rq); +// System.out.println(rq);*/ +// TenCorpDto tenCorpDto = new TenCorpDto(); +// tenCorpDto.setMessage("一条新增消息"); +// tenCorpDto.setData(pageData); +// tenCorpDto.setId(UuidUtil.get32UUID()); +// tenCorpDto.setTopic("docking"); +// tenCorpDto.setProducer_name("qa-prevention-czks"); +// sendMessageService.sendMessage(tenCorpDto); +// System.out.println("------------------------方法执行完毕------------------------"); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// return proceed; + } + + private void dataSync(HashMap proceed, ProceedingJoinPoint joinPoint) throws Exception { + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = joinPoint.getTarget().getClass().getDeclaredMethod(signature.getName(), signature.getParameterTypes()); + DockAnnotation annotation = method.getAnnotation(DockAnnotation.class); + //获取资源映射路径:servlet路径 + String servletPath = getRequest().getServletPath(); + //验证该数据是否需要对接 + System.out.println("------------------------切面方法执行------------------------"); + PageData sendData = this.getPageData(); + // app 方法 不取session + PageData login_user = new PageData(); + if (!servletPath.contains("/app/")) { + login_user.put("USER_ID", Jurisdiction.getUSER_ID()); + login_user.put("USERNAME", Jurisdiction.getUsername()); + login_user.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); + login_user.put("DEPARTMENT_ID", Jurisdiction.getDEPARTMENT_ID()); + login_user.put("NAME", Jurisdiction.getName()); + login_user.put("ISSUPERVISE", Jurisdiction.getISSUPERVISE()); + login_user.put("POST_ID", Jurisdiction.getPOST_ID()); + sendData.put("LOGIN_USER", login_user); + } else { + // 手机app 会传递值。 + login_user.put("USER_ID", Tools.notEmpty(sendData.getString("USER_ID")) ? sendData.getString("USER_ID") : ""); + sendData.put("LOGIN_USER", login_user); + } + // 路径地址 + sendData.put("url", servletPath); + // 有存自己表里的图片 把自己图片服务器的前缀传过去 + if (annotation.hasAnnex()) { + sendData.put("baseImgPath", "czks-baseimgpath"); + // 自己表里的图片集合 + sendData.put("sendPicturesList", proceed.get("sendPicturesList")); + proceed.remove("sendPicturesList"); + } + // 有dockData + if (Tools.notEmpty(proceed.get("dockData"))) { + sendData.put("dockData", proceed.get("dockData")); + proceed.remove("dockData"); + } else { + sendData.put("dockData", "手动添加的dockData"); + } + TenCorpDto tenCorpDto = new TenCorpDto(); + tenCorpDto.setMessage("沧州矿石数据同步消息"); + tenCorpDto.setData(sendData); + tenCorpDto.setId(UuidUtil.get32UUID()); + tenCorpDto.setTopic("docking"); + tenCorpDto.setProducer_name("qa-prevention-czks"); + sendMessageService.sendMessage(tenCorpDto); } @PostConstruct @@ -139,6 +204,7 @@ public class DockingAspect { /** * 得到request对象 + * * @return */ private HttpServletRequest getRequest() { diff --git a/src/main/java/com/zcloud/controller/corpsystem/CorpRoleController.java b/src/main/java/com/zcloud/controller/corpsystem/CorpRoleController.java index f2d71389..98b0d753 100644 --- a/src/main/java/com/zcloud/controller/corpsystem/CorpRoleController.java +++ b/src/main/java/com/zcloud/controller/corpsystem/CorpRoleController.java @@ -155,7 +155,7 @@ public class CorpRoleController extends BaseController { */ @RequestMapping(value="/delete") @ResponseBody - @DockAnnotation + @DockAnnotation(isAdd = true) public Object deleteRole(@RequestParam String ROLE_ID)throws Exception{ Map map = new HashMap(); PageData pd = new PageData(); @@ -177,7 +177,7 @@ public class CorpRoleController extends BaseController { errInfo = "success"; FHLOG.save(Jurisdiction.getUsername(), "删除角色ID为:"+ROLE_ID); //记录日志 } - map.put("dockData", JSON.toJSONString(pd)); + map.put("dockData", JSON.toJSONString(this.getPageData())); } map.put("result", errInfo); return map; diff --git a/src/main/java/com/zcloud/controller/system/DictionariesController.java b/src/main/java/com/zcloud/controller/system/DictionariesController.java index 84d6bb45..a2251713 100644 --- a/src/main/java/com/zcloud/controller/system/DictionariesController.java +++ b/src/main/java/com/zcloud/controller/system/DictionariesController.java @@ -5,7 +5,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import com.alibaba.fastjson.JSON; +import com.zcloud.aspect.DockAnnotation; import com.zcloud.entity.system.DepartmentMenu; +import com.zcloud.util.ReturnMap; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -153,6 +156,7 @@ public class DictionariesController extends BaseController { */ @RequestMapping(value="/add") @ResponseBody + @DockAnnotation(isAdd = true) public Object add() throws Exception{ Map map = new HashMap(); String errInfo = "success"; @@ -160,6 +164,7 @@ public class DictionariesController extends BaseController { pd = this.getPageData(); pd.put("DICTIONARIES_ID", this.get32UUID()); //主键 dictionariesService.save(pd); + map.put("dockData", JSON.toJSONString(pd)); map.put("result", errInfo); return map; } @@ -226,13 +231,14 @@ public class DictionariesController extends BaseController { */ @RequestMapping(value="/edit") @ResponseBody + @DockAnnotation(isAdd = true) public Object edit() throws Exception{ Map map = new HashMap(); String errInfo = "success"; - PageData pd = new PageData(); - pd = this.getPageData(); + PageData pd = this.getPageData(); dictionariesService.edit(pd); map.put("result", errInfo); //返回结果 + map.put("dockData", JSON.toJSONString(pd)); return map; } @@ -244,6 +250,7 @@ public class DictionariesController extends BaseController { */ @RequestMapping(value="/delete") @ResponseBody + @DockAnnotation(isAdd = true) public Object delete(@RequestParam String DICTIONARIES_ID) throws Exception{ Map map = new HashMap(); PageData pd = new PageData(); @@ -253,7 +260,8 @@ public class DictionariesController extends BaseController { errInfo = "fail"; }else{ pd = dictionariesService.findById(pd); //根据ID读取 - if("yes".equals(pd.getString("YNDEL")))return null; //当禁止删除字段值为yes, 则禁止删除,只能从手动从数据库删除 + if("yes".equals(pd.getString("YNDEL"))) return null; + //当禁止删除字段值为yes, 则禁止删除,只能从手动从数据库删除 if(null != pd.get("TBSNAME") && !"".equals(pd.getString("TBSNAME"))){ String TBFIELD = pd.getString("TBFIELD"); if(Tools.isEmpty(TBFIELD))TBFIELD = "BIANMA"; //如果关联字段没有设置,就默认字段为 BIANMA @@ -275,6 +283,7 @@ public class DictionariesController extends BaseController { } if("success".equals(errInfo)){ dictionariesService.delete(pd); //执行删除 + map.put("dockData", JSON.toJSONString(this.getPageData())); } map.put("result", errInfo); return map; diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index d73ed56b..1a7480dd 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -49,7 +49,8 @@ smb.port=22 smb.user=root smb.password=Zcloud@zcloud88888 smb.basePath=/mnt/qgfile/file/ - +#???????????? +baseimgpath = https://qgqy.qhdsafety.com/file/ #???????? czks-useridentity=CZKS czks-baseimgpath=https://qgqy.qhdsafety.com/file/ diff --git a/src/main/resources/application-local.properties b/src/main/resources/application-local.properties index 0027d285..2f3625a9 100644 --- a/src/main/resources/application-local.properties +++ b/src/main/resources/application-local.properties @@ -62,6 +62,10 @@ spring.main.banner-mode=off preventionxgf.api.url=http://192.168.0.79:8088/ qa-regulatory-gwj.api.url=http://192.168.0.79:8092/ + +#???????????? +baseimgpath = https://qgqy.qhdsafety.com/ + #????? smb.host=39.103.224.166 smb.port=22 diff --git a/src/main/resources/application-master.properties b/src/main/resources/application-master.properties index 751f7dc0..53999d54 100644 --- a/src/main/resources/application-master.properties +++ b/src/main/resources/application-master.properties @@ -30,7 +30,8 @@ spring.datasource.testOnBorrow: false spring.datasource.testOnReturn: false #?????????filters????????sql?????,'wall'????? filters: stat, wall, log4j - +#???????????? +baseimgpath = https://qgqy.qhdsafety.com/ #???????? spring.cache.ehcache.cofnig=ehcache.xml