dangsn
2024-06-05 72c7bbd66b8456db7dabf0dbc15f7aa9c2af2b9d
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebContextInfoFetcher.java
@@ -1,14 +1,13 @@
package com.vci.web.service.impl;
import com.vci.corba.common.data.VCIInvocationInfo;
import com.vci.mw.client.ClientContextVariable;
import com.vci.mw.client.IInvocationContext;
import com.vci.starter.corba.constant.CorbaKeyConstant;
import com.vci.starter.corba.initializer.JacorbSessionContext;
import com.vci.client.mw.ClientSessionUtility;
import com.vci.client.mw.IInvocationContext;
import com.vci.corba.common.data.InvocationInfo;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.enumpck.DataSecretEnum;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.web.constant.CorbaKeyConstant;
import org.springframework.stereotype.Component;
import java.util.HashMap;
@@ -20,7 +19,7 @@
 * @date 2021-2-2
 */
@Component
public class WebContextInfoFetcher implements IInvocationContext, JacorbSessionContext {
public class WebContextInfoFetcher implements IInvocationContext {
   /**
    * 获取corba所需的会话的信息
@@ -28,46 +27,30 @@
    */
   @Override
   @VciUnLog
   public VCIInvocationInfo getInvocationInfo() {
   public InvocationInfo getInvocationInfo() {
      SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().get();
      if(sessionInfo == null){
         return ClientContextVariable.getInvocationInfo();
         return ClientSessionUtility.getInvocation();
      }else {
         VCIInvocationInfo vcii = new VCIInvocationInfo();
         InvocationInfo vcii = new InvocationInfo();
         if (sessionInfo != null) {
            vcii.clientIPInfo = sessionInfo.getIp()==null?"127.0.0.1":sessionInfo.getIp();
            vcii.clientMachine = sessionInfo.getMachine()== null?"PC":sessionInfo.getMachine();
            vcii.clientOS = sessionInfo.getOs()==null?"windows":sessionInfo.getOs();
            vcii.clientOSUser = sessionInfo.getOsUser() == null?"unknow":sessionInfo.getOsUser();
            vcii.email=sessionInfo.getEmail() ==null?"":sessionInfo.getEmail();
            vcii.groupIDs = sessionInfo.getDeptOid()==null?new String[0]:sessionInfo.getDeptOid().split(",");
            vcii.groupNames =sessionInfo.getDeptName() ==null?new String[0]:sessionInfo.getDeptName().split(",");
            vcii.language = sessionInfo.getLanguage()==null?"ZH_CN":sessionInfo.getLanguage();
            vcii.secretGrade = sessionInfo.getUserSecret()==null?"10": sessionInfo.getUserSecret();
            vcii.trueName = sessionInfo.getUserName() ==null?"":sessionInfo.getUserName();
            vcii.userID = sessionInfo.getUserOid()==null?"":sessionInfo.getUserOid();
            vcii.userName = sessionInfo.getUserId() == null?"":sessionInfo.getUserId();
            vcii.roleIDs = sessionInfo.getRolesName() == null ? new String[0]:sessionInfo.getRolesName().keySet().toArray(new String[0]);
            vcii.roleNames = sessionInfo.getRolesName() == null ? new String[0]:sessionInfo.getRolesName().values().toArray(new String[0]);
            vcii.setToken(sessionInfo.getToken());
            Map<String,String> globalAttributeMap = sessionInfo.getGlobalAttributeMap();
            if(globalAttributeMap==null){
               globalAttributeMap = new HashMap<>();
               globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_ID,sessionInfo.getUserId());
               globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_NAME,sessionInfo.getUserName());
               globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_SECRET,sessionInfo.getUserSecret());
               globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_EMAIL,sessionInfo.getEmail());
               globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_GROUPNUM,"");
               globalAttributeMap.put(CorbaKeyConstant.CURRENT_MACHINE_SECRET, DataSecretEnum.NONE.getValue()+"");
               globalAttributeMap.put(CorbaKeyConstant.IP_SECRET_SWITCH,"off");
               globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_GROUPNAME,sessionInfo.getDeptName());
               globalAttributeMap.put(CorbaKeyConstant.USER_SECRET_SWITCH,"off");
               globalAttributeMap.put(CorbaKeyConstant.CURRENTTIME, String.valueOf(System.currentTimeMillis()));
            }
            String[] globalAttributeString = new String[11];
            globalAttributeString[0]= CorbaKeyConstant.CURRENT_USER_ID + "=" + globalAttributeMap.getOrDefault(CorbaKeyConstant.CURRENT_USER_ID,sessionInfo.getUserId());
            globalAttributeString[1]=CorbaKeyConstant.CURRENT_USER_NAME + "=" + globalAttributeMap.getOrDefault(CorbaKeyConstant.CURRENT_USER_NAME,sessionInfo.getUserName());
            globalAttributeString[2]=CorbaKeyConstant.CURRENT_USER_SECRET +"=" + globalAttributeMap.getOrDefault(CorbaKeyConstant.CURRENT_USER_SECRET,sessionInfo.getUserSecret());
            globalAttributeString[3]=CorbaKeyConstant.CURRENT_USER_EMAIL +"=" + globalAttributeMap.getOrDefault(CorbaKeyConstant.CURRENT_USER_EMAIL,sessionInfo.getEmail());
            globalAttributeString[4]=CorbaKeyConstant.CURRENT_USER_GROUPNUM +"=" + globalAttributeMap.getOrDefault(CorbaKeyConstant.CURRENT_USER_GROUPNUM,"");
            globalAttributeString[5]=CorbaKeyConstant.CURRENT_MACHINE_SECRET + "=" + globalAttributeMap.getOrDefault(CorbaKeyConstant.CURRENT_MACHINE_SECRET, DataSecretEnum.NONE.getValue()+"");
            String ipSec = globalAttributeMap.getOrDefault(CorbaKeyConstant.IP_SECRET_SWITCH,"off");
            globalAttributeString[6]=CorbaKeyConstant.IP_SECRET_SWITCH + "=" + ipSec;
            globalAttributeString[7]=CorbaKeyConstant.CURRENT_USER_GROUPNAME +"=" + globalAttributeMap.getOrDefault(CorbaKeyConstant.CURRENT_USER_GROUPNAME,sessionInfo.getDeptName());
            globalAttributeString[8]=CorbaKeyConstant.USER_SECRET_SWITCH+ "=" + globalAttributeMap.getOrDefault(CorbaKeyConstant.USER_SECRET_SWITCH,"off");
            globalAttributeString[9]=String.valueOf(System.currentTimeMillis());
            globalAttributeString[10]=sessionInfo.getToken();
            //现在不确定老的是否可以接受数组多个的情况
            vcii.extAttribs = globalAttributeString;
            vcii.extAttribs = globalAttributeMap;
         }
         return vcii;
      }
@@ -77,7 +60,6 @@
    * 获取当前会话
    * @return 会话的对象
    */
   @Override
   public SessionInfo getSessionInfo() {
      return WebThreadLocalUtil.getCurrentUserSessionInfoInThread().get();
   }