From f0cfa0e9ccf81334b6f9eafbdc73fd17a9ef43f2 Mon Sep 17 00:00:00 2001 From: dearlin <1261008090@qq.com> Date: Wed, 20 Dec 2023 11:08:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5aop?= =?UTF-8?q?=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zcloud/aspect/DockingAspect.java | 232 +++++++++++------- .../corpsystem/CorpRoleController.java | 4 +- .../keyProjects/OutSourcedController.java | 8 +- .../system/DictionariesController.java | 15 +- src/main/resources/application-dev.properties | 3 +- .../resources/application-local.properties | 4 + .../resources/application-master.properties | 3 +- 7 files changed, 177 insertions(+), 92 deletions(-) diff --git a/src/main/java/com/zcloud/aspect/DockingAspect.java b/src/main/java/com/zcloud/aspect/DockingAspect.java index 6f153798..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(); + + try { + Object proceed = joinPoint.proceed(); + HashMap parseProceed = JSON.parseObject(JSON.toJSONString(proceed), HashMap.class); + if (parseProceed == null) { + return parseProceed; + } + // 数据同步 + dataSync(parseProceed, joinPoint); + return proceed; + } catch (Exception e) { + throw e; + } +// +// +// 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()); - 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); + 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); } - return proceed; + // 路径地址 + 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/keyProjects/OutSourcedController.java b/src/main/java/com/zcloud/controller/keyProjects/OutSourcedController.java index 28789e86..d7420516 100644 --- a/src/main/java/com/zcloud/controller/keyProjects/OutSourcedController.java +++ b/src/main/java/com/zcloud/controller/keyProjects/OutSourcedController.java @@ -82,6 +82,7 @@ public class OutSourcedController extends BaseController { //pd.put("INVOLVING_CORPS", Jurisdiction.getCORPINFO_ID()); //理单位名称 pd.put("IS_CORP_TYPE", "1"); //是否企业重点工程0监管重点工程;1企业重点工程 + ArrayList strings = new ArrayList<>(); if (null != file && !file.isEmpty()) { String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase(); @@ -95,6 +96,7 @@ public class OutSourcedController extends BaseController { String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); Smb.sshSftp(file, fileName, Const.FILEPATHFILE + ffile); pd.put("UNITS_APTITUDE", Const.FILEPATHFILE + ffile + "/" + fileName); + strings.add(Const.FILEPATHFILE + ffile + "/" + fileName); } if (null != file1 && !file1.isEmpty()) { String suffixName = file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase(); @@ -217,14 +219,15 @@ public class OutSourcedController extends BaseController { String ffile = DateUtil.getDays(); String fileName = this.get32UUID() + file9One.getOriginalFilename(). substring(file9One.getOriginalFilename().lastIndexOf(".")); - Smb.sshSftp(file9One, fileName, Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile); PageData pdImg = new PageData(); String fileUpdateName = file9One.getOriginalFilename(); - pdImg.put("IMGFILES_ID", this.get32UUID()); + String IMGFILES_ID = this.get32UUID(); + pdImg.put("IMGFILES_ID", IMGFILES_ID); pdImg.put("FILE_NAME", fileUpdateName); pdImg.put("FILEPATH", Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName); pdImg.put("TYPE", "300"); pdImg.put("FOREIGN_KEY", pd.getString("OUTSOURCED_ID")); + Smb.sshSftp(file9One, fileName, Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile,IMGFILES_ID, pd.getString("OUTSOURCED_ID"),"300"); imgfilesService.save(pdImg); } } @@ -237,6 +240,7 @@ public class OutSourcedController extends BaseController { pd.put("INVOLVING_CORPS", Jurisdiction.getCORPINFO_ID()); outsourcedService.save(pd); map.put("result", errInfo); + map.put("sendPicturesList", strings); 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 88f83259..4d8dd176 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