|
@@ -1,172 +1,172 @@
|
|
|
-package com.fdkankan.scene.Interceptor;
|
|
|
-
|
|
|
-import cn.hutool.http.HttpUtil;
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONArray;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.fdkankan.common.util.ThreeDESUtil;
|
|
|
-import com.fdkankan.common.util.UserAgentUtils;
|
|
|
-import com.fdkankan.common.util.WebUtil;
|
|
|
-import com.fdkankan.common.exception.BusinessException;
|
|
|
-import com.fdkankan.feign.TietaFeignClient;
|
|
|
-import com.fdkankan.feign.WS4AServiceClient;
|
|
|
-import com.fdkankan.scene.entity.SceneViewLog;
|
|
|
-import com.fdkankan.scene.service.SceneViewLogService;
|
|
|
-import lombok.extern.log4j.Log4j2;
|
|
|
-import org.aspectj.lang.JoinPoint;
|
|
|
-import org.aspectj.lang.annotation.Aspect;
|
|
|
-import org.aspectj.lang.annotation.Before;
|
|
|
-import org.aspectj.lang.annotation.Pointcut;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.core.annotation.Order;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-import org.springframework.web.context.request.RequestContextHolder;
|
|
|
-import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.io.IOException;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-@Log4j2
|
|
|
-@Aspect
|
|
|
-@Component
|
|
|
-@Order(101)
|
|
|
-public class ViewLogAspect {
|
|
|
-
|
|
|
- @Value("${spring.cloud.nacos.discovery.access-key}")
|
|
|
- private String accessKey;
|
|
|
-
|
|
|
- @Value("${tieta.checkToken.syscode}")
|
|
|
- private String syscode;
|
|
|
- @Value("${gateway.key:6#dPz>3F}")
|
|
|
- private String gatewayKey;
|
|
|
- @Value("${gateway.url}")
|
|
|
- private String gatewayUrl;
|
|
|
- @Resource
|
|
|
- private TietaFeignClient tietaFeignClient;
|
|
|
- @Autowired
|
|
|
- private WS4AServiceClient ws4AServiceClient;
|
|
|
- @Autowired
|
|
|
- private SceneViewLogService sceneViewLogService;
|
|
|
-
|
|
|
- @Pointcut("@annotation(com.fdkankan.scene.annotation.VrLog)")
|
|
|
- public void checkCooperationPermit() {
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 前置通知 用于判断用户协作场景是否有协作权限
|
|
|
- *
|
|
|
- * @param joinPoint
|
|
|
- * 切点
|
|
|
- * @throws IOException
|
|
|
- */
|
|
|
- @Before("checkCooperationPermit()")
|
|
|
- public void doBefore(JoinPoint joinPoint) throws Exception {
|
|
|
- log.info("记录日志开始");
|
|
|
- HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
|
- boolean mobileDevice = UserAgentUtils.isMobileDevice(request);
|
|
|
- String userAgent = "pc";
|
|
|
- if(mobileDevice){
|
|
|
- userAgent = "mobile";
|
|
|
- }
|
|
|
-
|
|
|
- //请求4a接口获取用户信息
|
|
|
- Map<String, Object> parameter = WebUtil.getParameter(joinPoint, request);
|
|
|
- String acctId = (String) parameter.get("acctId");
|
|
|
- String token = (String) parameter.get("token");
|
|
|
- String num = (String) parameter.get("num");
|
|
|
- String syscode = (String) parameter.get("syscode");
|
|
|
-
|
|
|
- //token校验
|
|
|
- JSONObject checkProwadaTokenParam = new JSONObject();
|
|
|
- JSONObject params = new JSONObject();
|
|
|
- params.put("SYSCODE", syscode);
|
|
|
- params.put("ACCTID", acctId);
|
|
|
- params.put("TOKEN", token);
|
|
|
- String encode = ThreeDESUtil.encode(JSON.toJSONString(params), gatewayKey);
|
|
|
- checkProwadaTokenParam.put("args", encode);
|
|
|
- JSONObject result = ws4AServiceClient.checkProwadaToken(checkProwadaTokenParam);
|
|
|
- log.info("场景:{},4A校验token结果:{}", num, result);
|
|
|
- if(!"SUCCESS".equals(result.getString("resultStat"))){
|
|
|
- throw new BusinessException(4000, "4A鉴权失败");
|
|
|
- }
|
|
|
- String data = result.getString("data");
|
|
|
- JSONObject dataObj = JSONObject.parseObject(data);
|
|
|
- if(!"0".equals(dataObj.getString("RSP"))){
|
|
|
- throw new BusinessException(4000, "4A鉴权失败:" + dataObj.getString("ERRDESC"));
|
|
|
- }
|
|
|
- String USERCODE = dataObj.getString("USERCODE");
|
|
|
-// String SERVICEID = dataObj.getString("SERVICEID");
|
|
|
- String ORGCODE = dataObj.getString("ORGCODE");
|
|
|
-
|
|
|
- //查询用户信息
|
|
|
- JSONObject param2 = new JSONObject();
|
|
|
- param2.put("SERVICEID", syscode);
|
|
|
- param2.put("LOGINACCOUNT", USERCODE);
|
|
|
- param2.put("TOKEN", token);
|
|
|
- encode = ThreeDESUtil.encode(JSON.toJSONString(param2), gatewayKey);
|
|
|
- Map<String, Object> param = new HashMap<>();
|
|
|
- param.put("args", encode);
|
|
|
- String queryLoginUserInfoResp = HttpUtil.get(gatewayUrl + "/QUERY4A/user/queryLoginUserInfo?args=" + encode);
|
|
|
- result = JSON.parseObject(queryLoginUserInfoResp);
|
|
|
-// result = ws4AServiceClient.queryLoginUserInfo(encode);
|
|
|
- log.info("场景:{},4A查询用户信息结果:{}", num, result);
|
|
|
- if(!"SUCCESS".equals(result.getString("resultStat"))){
|
|
|
- throw new BusinessException(4000, "4A查询用户信息失败");
|
|
|
- }
|
|
|
- data = result.getString("data");
|
|
|
- dataObj = JSONObject.parseObject(data);
|
|
|
- if(!"0".equals(dataObj.getString("RSP"))){
|
|
|
- throw new BusinessException(4000, "4A查询用户信息失败:" + dataObj.getString("ERRDESC"));
|
|
|
- }
|
|
|
- String nickName = dataObj.getString("LOGINNAME");
|
|
|
-
|
|
|
- JSONObject param3 = new JSONObject();
|
|
|
- param3.put("SERVICEID", syscode);
|
|
|
- param3.put("QUERYMODE", "3");
|
|
|
- param3.put("ORGCODE", ORGCODE);
|
|
|
- param3.put("TOKEN", token);
|
|
|
- encode = ThreeDESUtil.encode(JSON.toJSONString(param3), gatewayKey);
|
|
|
-// result = ws4AServiceClient.queryOrgs(encode);
|
|
|
- String queryOrgsResp = HttpUtil.get(gatewayUrl + "/QUERY4A/query/queryOrgs?args=" + encode);
|
|
|
- result = JSON.parseObject(queryOrgsResp);
|
|
|
- log.info("场景:{},4A查询用户组织结果:{}", num, result);
|
|
|
- if(!"SUCCESS".equals(result.getString("resultStat"))){
|
|
|
- throw new BusinessException(4000, "查询用户组织失败");
|
|
|
- }
|
|
|
- data = result.getString("data");
|
|
|
- dataObj = JSONObject.parseObject(data);
|
|
|
- if(!"0".equals(dataObj.getString("RSP"))){
|
|
|
- throw new BusinessException(4000, "4A查询用户组织失败:" + dataObj.getString("ERRDESC"));
|
|
|
- }
|
|
|
- JSONObject ORGS = dataObj.getJSONObject("ORGS");
|
|
|
- JSONArray ORG = ORGS.getJSONArray("ORG");
|
|
|
- JSONObject ORG1 = ORG.getJSONObject(0);
|
|
|
- String ORGNAMEPATH = ORG1.getString("ORGNAMEPATH");
|
|
|
-
|
|
|
- //写入表
|
|
|
- SceneViewLog sceneViewLog = new SceneViewLog();
|
|
|
- sceneViewLog.setOrgNamePath(ORGNAMEPATH);
|
|
|
- sceneViewLog.setFuncName("VR全景");
|
|
|
- sceneViewLog.setFuncDesc("VR全景试图");
|
|
|
- sceneViewLog.setUserName(USERCODE);
|
|
|
- sceneViewLog.setNickName(nickName);
|
|
|
- sceneViewLog.setCreateTime(new Date());
|
|
|
- sceneViewLog.setTerminalType(userAgent);
|
|
|
- sceneViewLogService.save(sceneViewLog);
|
|
|
- }
|
|
|
-
|
|
|
- public static void main(String[] args) {
|
|
|
- JSONObject param2 = new JSONObject();
|
|
|
- param2.put("SERVICEID", "CHNTRMS2");
|
|
|
- param2.put("LOGINACCOUNT", "wx-sunql3");
|
|
|
- param2.put("TOKEN", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJSRVMiLCJpc3MiOiJXUzRBIiwiZXhwIjoxNzMzMzEwNjY1LCJOQU5PU0VDT05EIjo0MjAxNTczODIzODYyMjgzOH0.sQR4qkTeRZEOQMI-Rjck35dFswoOMYHsGSuNcXH45TI");
|
|
|
- String encode = ThreeDESUtil.encode(JSON.toJSONString(param2), "6#dPz>3F");
|
|
|
- System.out.println(encode);
|
|
|
- }
|
|
|
-
|
|
|
-}
|
|
|
+//package com.fdkankan.scene.Interceptor;
|
|
|
+//
|
|
|
+//import cn.hutool.http.HttpUtil;
|
|
|
+//import com.alibaba.fastjson.JSON;
|
|
|
+//import com.alibaba.fastjson.JSONArray;
|
|
|
+//import com.alibaba.fastjson.JSONObject;
|
|
|
+//import com.fdkankan.common.util.ThreeDESUtil;
|
|
|
+//import com.fdkankan.common.util.UserAgentUtils;
|
|
|
+//import com.fdkankan.common.util.WebUtil;
|
|
|
+//import com.fdkankan.common.exception.BusinessException;
|
|
|
+//import com.fdkankan.feign.TietaFeignClient;
|
|
|
+//import com.fdkankan.feign.WS4AServiceClient;
|
|
|
+//import com.fdkankan.scene.entity.SceneViewLog;
|
|
|
+//import com.fdkankan.scene.service.SceneViewLogService;
|
|
|
+//import lombok.extern.log4j.Log4j2;
|
|
|
+//import org.aspectj.lang.JoinPoint;
|
|
|
+//import org.aspectj.lang.annotation.Aspect;
|
|
|
+//import org.aspectj.lang.annotation.Before;
|
|
|
+//import org.aspectj.lang.annotation.Pointcut;
|
|
|
+//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+//import org.springframework.beans.factory.annotation.Value;
|
|
|
+//import org.springframework.core.annotation.Order;
|
|
|
+//import org.springframework.stereotype.Component;
|
|
|
+//import org.springframework.web.context.request.RequestContextHolder;
|
|
|
+//import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
+//
|
|
|
+//import javax.annotation.Resource;
|
|
|
+//import javax.servlet.http.HttpServletRequest;
|
|
|
+//import java.io.IOException;
|
|
|
+//import java.util.Date;
|
|
|
+//import java.util.HashMap;
|
|
|
+//import java.util.Map;
|
|
|
+//
|
|
|
+//@Log4j2
|
|
|
+//@Aspect
|
|
|
+//@Component
|
|
|
+//@Order(101)
|
|
|
+//public class ViewLogAspect {
|
|
|
+//
|
|
|
+// @Value("${spring.cloud.nacos.discovery.access-key}")
|
|
|
+// private String accessKey;
|
|
|
+//
|
|
|
+// @Value("${tieta.checkToken.syscode}")
|
|
|
+// private String syscode;
|
|
|
+// @Value("${gateway.key:6#dPz>3F}")
|
|
|
+// private String gatewayKey;
|
|
|
+// @Value("${gateway.url}")
|
|
|
+// private String gatewayUrl;
|
|
|
+// @Resource
|
|
|
+// private TietaFeignClient tietaFeignClient;
|
|
|
+// @Autowired
|
|
|
+// private WS4AServiceClient ws4AServiceClient;
|
|
|
+// @Autowired
|
|
|
+// private SceneViewLogService sceneViewLogService;
|
|
|
+//
|
|
|
+// @Pointcut("@annotation(com.fdkankan.scene.annotation.VrLog)")
|
|
|
+// public void checkCooperationPermit() {
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 前置通知 用于判断用户协作场景是否有协作权限
|
|
|
+// *
|
|
|
+// * @param joinPoint
|
|
|
+// * 切点
|
|
|
+// * @throws IOException
|
|
|
+// */
|
|
|
+// @Before("checkCooperationPermit()")
|
|
|
+// public void doBefore(JoinPoint joinPoint) throws Exception {
|
|
|
+// log.info("记录日志开始");
|
|
|
+// HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
|
+// boolean mobileDevice = UserAgentUtils.isMobileDevice(request);
|
|
|
+// String userAgent = "pc";
|
|
|
+// if(mobileDevice){
|
|
|
+// userAgent = "mobile";
|
|
|
+// }
|
|
|
+//
|
|
|
+// //请求4a接口获取用户信息
|
|
|
+// Map<String, Object> parameter = WebUtil.getParameter(joinPoint, request);
|
|
|
+// String acctId = (String) parameter.get("acctId");
|
|
|
+// String token = (String) parameter.get("token");
|
|
|
+// String num = (String) parameter.get("num");
|
|
|
+// String syscode = (String) parameter.get("syscode");
|
|
|
+//
|
|
|
+// //token校验
|
|
|
+// JSONObject checkProwadaTokenParam = new JSONObject();
|
|
|
+// JSONObject params = new JSONObject();
|
|
|
+// params.put("SYSCODE", syscode);
|
|
|
+// params.put("ACCTID", acctId);
|
|
|
+// params.put("TOKEN", token);
|
|
|
+// String encode = ThreeDESUtil.encode(JSON.toJSONString(params), gatewayKey);
|
|
|
+// checkProwadaTokenParam.put("args", encode);
|
|
|
+// JSONObject result = ws4AServiceClient.checkProwadaToken(checkProwadaTokenParam);
|
|
|
+// log.info("场景:{},4A校验token结果:{}", num, result);
|
|
|
+// if(!"SUCCESS".equals(result.getString("resultStat"))){
|
|
|
+// throw new BusinessException(4000, "4A鉴权失败");
|
|
|
+// }
|
|
|
+// String data = result.getString("data");
|
|
|
+// JSONObject dataObj = JSONObject.parseObject(data);
|
|
|
+// if(!"0".equals(dataObj.getString("RSP"))){
|
|
|
+// throw new BusinessException(4000, "4A鉴权失败:" + dataObj.getString("ERRDESC"));
|
|
|
+// }
|
|
|
+// String USERCODE = dataObj.getString("USERCODE");
|
|
|
+//// String SERVICEID = dataObj.getString("SERVICEID");
|
|
|
+// String ORGCODE = dataObj.getString("ORGCODE");
|
|
|
+//
|
|
|
+// //查询用户信息
|
|
|
+// JSONObject param2 = new JSONObject();
|
|
|
+// param2.put("SERVICEID", syscode);
|
|
|
+// param2.put("LOGINACCOUNT", USERCODE);
|
|
|
+// param2.put("TOKEN", token);
|
|
|
+// encode = ThreeDESUtil.encode(JSON.toJSONString(param2), gatewayKey);
|
|
|
+// Map<String, Object> param = new HashMap<>();
|
|
|
+// param.put("args", encode);
|
|
|
+// String queryLoginUserInfoResp = HttpUtil.get(gatewayUrl + "/QUERY4A/user/queryLoginUserInfo?args=" + encode);
|
|
|
+// result = JSON.parseObject(queryLoginUserInfoResp);
|
|
|
+//// result = ws4AServiceClient.queryLoginUserInfo(encode);
|
|
|
+// log.info("场景:{},4A查询用户信息结果:{}", num, result);
|
|
|
+// if(!"SUCCESS".equals(result.getString("resultStat"))){
|
|
|
+// throw new BusinessException(4000, "4A查询用户信息失败");
|
|
|
+// }
|
|
|
+// data = result.getString("data");
|
|
|
+// dataObj = JSONObject.parseObject(data);
|
|
|
+// if(!"0".equals(dataObj.getString("RSP"))){
|
|
|
+// throw new BusinessException(4000, "4A查询用户信息失败:" + dataObj.getString("ERRDESC"));
|
|
|
+// }
|
|
|
+// String nickName = dataObj.getString("LOGINNAME");
|
|
|
+//
|
|
|
+// JSONObject param3 = new JSONObject();
|
|
|
+// param3.put("SERVICEID", syscode);
|
|
|
+// param3.put("QUERYMODE", "3");
|
|
|
+// param3.put("ORGCODE", ORGCODE);
|
|
|
+// param3.put("TOKEN", token);
|
|
|
+// encode = ThreeDESUtil.encode(JSON.toJSONString(param3), gatewayKey);
|
|
|
+//// result = ws4AServiceClient.queryOrgs(encode);
|
|
|
+// String queryOrgsResp = HttpUtil.get(gatewayUrl + "/QUERY4A/query/queryOrgs?args=" + encode);
|
|
|
+// result = JSON.parseObject(queryOrgsResp);
|
|
|
+// log.info("场景:{},4A查询用户组织结果:{}", num, result);
|
|
|
+// if(!"SUCCESS".equals(result.getString("resultStat"))){
|
|
|
+// throw new BusinessException(4000, "查询用户组织失败");
|
|
|
+// }
|
|
|
+// data = result.getString("data");
|
|
|
+// dataObj = JSONObject.parseObject(data);
|
|
|
+// if(!"0".equals(dataObj.getString("RSP"))){
|
|
|
+// throw new BusinessException(4000, "4A查询用户组织失败:" + dataObj.getString("ERRDESC"));
|
|
|
+// }
|
|
|
+// JSONObject ORGS = dataObj.getJSONObject("ORGS");
|
|
|
+// JSONArray ORG = ORGS.getJSONArray("ORG");
|
|
|
+// JSONObject ORG1 = ORG.getJSONObject(0);
|
|
|
+// String ORGNAMEPATH = ORG1.getString("ORGNAMEPATH");
|
|
|
+//
|
|
|
+// //写入表
|
|
|
+// SceneViewLog sceneViewLog = new SceneViewLog();
|
|
|
+// sceneViewLog.setOrgNamePath(ORGNAMEPATH);
|
|
|
+// sceneViewLog.setFuncName("VR全景");
|
|
|
+// sceneViewLog.setFuncDesc("VR全景试图");
|
|
|
+// sceneViewLog.setUserName(USERCODE);
|
|
|
+// sceneViewLog.setNickName(nickName);
|
|
|
+// sceneViewLog.setCreateTime(new Date());
|
|
|
+// sceneViewLog.setTerminalType(userAgent);
|
|
|
+// sceneViewLogService.save(sceneViewLog);
|
|
|
+// }
|
|
|
+//
|
|
|
+// public static void main(String[] args) {
|
|
|
+// JSONObject param2 = new JSONObject();
|
|
|
+// param2.put("SERVICEID", "CHNTRMS2");
|
|
|
+// param2.put("LOGINACCOUNT", "wx-sunql3");
|
|
|
+// param2.put("TOKEN", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJSRVMiLCJpc3MiOiJXUzRBIiwiZXhwIjoxNzMzMzEwNjY1LCJOQU5PU0VDT05EIjo0MjAxNTczODIzODYyMjgzOH0.sQR4qkTeRZEOQMI-Rjck35dFswoOMYHsGSuNcXH45TI");
|
|
|
+// String encode = ThreeDESUtil.encode(JSON.toJSONString(param2), "6#dPz>3F");
|
|
|
+// System.out.println(encode);
|
|
|
+// }
|
|
|
+//
|
|
|
+//}
|