|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|