//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 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 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); // } // //}