zoukankan      html  css  js  c++  java
  • 第一篇就是测试一下吧发下代码看看格式

    package com.ccb.p2.ca.action;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.annotation.Resource;
    
    import org.apache.commons.lang.StringUtils;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.springframework.beans.factory.annotation.Value;
    
    import com.ccb.msgcenter.McConnection;
    import com.ccb.openframework.security.SecurityManagerUtils;
    import com.ccb.openframework.swaparea.SwapAreaUtils;
    import com.ccb.p2.ca.constant.AuthConstant;
    import com.ccb.p2.ca.service.AuthCancelService;
    import com.ccb.p2.ca.utils.AuthUtils;
    import com.ccb.p2.script.service.CommonService;
    import com.ccb.p2.util.exception.P2CommonException;
    
    /**
     * 授权Action,统一的授权入口,目前仅仅是为影像采集界面传递交易数据用 未来交易是否授权会在此类中进行判断
     * 
     * @author danyb
     * 
     */
    public class AuthAction 
    {
        private Log logger = LogFactory.getLog(AuthAction.class);
        // 交易内容json字符串
        private String transContent;
        // 影像采集提示,由于影像采集配置到分行,机构号+操作码+功能号确定缓存一条记录,后台取分行机构号不合适,所以影响采集提示放到前台页面取
        // nouse
        private String imageTipsInfo;
        private String instLevel1BranchId;    // 一级分行号
        private String appReqInfo = "helloworld";    // PBCS页面字段xmlcontent
    
        @Value("${p2FileUploadServiceAdapter.srvFileBaseDir}")
        private String serverPath = "";
        @Value("${auth.uploadPath}")
        private String authPath = "";
        
        @Resource(name = "commonService")
        private CommonService commonService;
        
        @Resource(name = "authCancelService")
        private AuthCancelService authCancelService;
        
        // 返回给页面的其他要素json格式
        private String resultContent = "resultContent";
        
        public String execute() throws Exception
        {
            logger.info("授权请求action开始");
            if (StringUtils.isEmpty(transContent))
            {
                // for test
                transContent = "{'APP_REQ_TXCODE6':'111111', 'APP_REQ_FUNC':'222222', 'AUTH_SEQ_NO':'123456789', 'APP_REQ_SYS':'02'}";
            }
    
            Map<String, Object> transMap = AuthUtils.getMapFromJsonString(transContent);
            logger.info("transContent=======> 转换为 transMap: " + transMap);
            //授权流水号
            String authSeqNo = (String)transMap.get("AUTH_SEQ_NO");    
            //请求系统
            String appReqSys = (String)transMap.get("APP_REQ_SYS");    
            // 交易码
            String frTranId = (String)transMap.get("APP_REQ_TXCODE");
            // 功能号
            String frFuncId = (String)transMap.get("APP_REQ_FUNC");
            // 请求机构号
            String appReqOrg = (String)transMap.get("APP_REQ_ORG");
            // 请求8位员工号默认 曹操 
            String defaulttellerId8 = "57000355";
            
            // return TOP field
            // CSID
            String csId = (String)transMap.get("MCC_RCV_CSID");
            // 安全节点号
            String appMsgSecId = (String)transMap.get("APP_MSG_SECID");
            // TTY
            String tty = (String)transMap.get("MCC_SND_TTY");
            
            // CRA997104交易状态查询
            // 全局跟踪号
            String serialNo = SecurityManagerUtils.generalGlobalSerialNo((String) SwapAreaUtils.getValue("['_host_name']"));
            // 组请求报文数据
            Map<String, Object> outboundData = new HashMap<String, Object>();
            outboundData.put("FR_SYS_ID", appReqSys);
            outboundData.put("FR_TRAN_ID", frTranId);
            outboundData.put("FR_FUNC_ID", frFuncId);
            outboundData.put("OPER_CODE", defaulttellerId8);
            outboundData.put("BRANCH_ID", appReqOrg);
            
            Map<String, Object> transResult = new HashMap<String, Object>();
            try
            {
                // 外呼COSRA997104
                transResult = commonService.service("CRA997104", serialNo, outboundData);
                // 记录数据库
                SwapAreaUtils.setValue("['resp_for_log']", transResult);
            } catch (Exception e)
            {
                logger.error("授权流水号:" + authSeqNo + ", 发送CRA997104交易状态查询失败");
                transResult = null;
            }
            
            
    //        AUTH_TRAN_STAT  授权交易状态  C   1   Y
    //        授权交易状态  1   0   正常
    //        2   1   非业务处理时间
    //        3   2   故障隔离
    
    //        AUTH_RE_DATE    授权交易恢复日期    C   8   N
    //        AUTH_RE_TIME    授权交易恢复时间    C   6   N
            // 取得CRA997104返回的结果
            Map<String, Object> returnMap = getCRA997104Response(transResult);
            logger.info("=====getCRA997104Response==》returnMap : " + returnMap);
            String appResInfo1 = (String)returnMap.get("BK_DESC") + "(" +(String)returnMap.get("BK_CODE") + ")";
            returnMap.put("APP_RES_INFO1", appResInfo1);
            returnMap.put("APP_RES_RSLT", "c");
            logger.info("==========appResInfo1========>" + appResInfo1);
            String bkStatus = (String)returnMap.get("BK_STATUS");
            logger.info("==========bkStatus========>" + bkStatus);
            
            resultContent = AuthUtils.getJsonStringFormMap(returnMap);
            logger.info("=========resultContent==========>" + resultContent);
            // 远程授权标志
            boolean authFlag = false;
            if(StringUtils.isNotEmpty(bkStatus) && "00".equals(bkStatus))
            {
                authFlag = true;
                // 处理PBCS页面要素字段文件
                if(StringUtils.isNotEmpty(appReqSys) && appReqSys.equals(AuthConstant.AUTH_APPLY_SYSTEM_PBCS)){
                    String filePath = serverPath + authPath + authSeqNo + ".xml";
                    AuthUtils.createTransFile(appReqInfo, filePath);
                    logger.info("pbcs页面要素文件生成成功");
                }
            }
            // authFlag=true 返回影像采集界面,否则返回错误页面并通知原系统
            if (authFlag)
            {
                return "success";
            } else
            {
                // 如果原系统是TOP,发消息中心通知原系统转本地授权
                if(AuthConstant.AUTH_APPLY_SYSTEM_CCBS.equals(appReqSys))
                {
                    logger.info("远程授权状态authFlag=false,不可以做远程授权");
                    Map<String, Object> returnTOPMap = new HashMap<String, Object>();
                    returnTOPMap.put("safetyCode", appMsgSecId);
                    returnTOPMap.put("MCC_SND_TTY", tty);
                    returnTOPMap.put("APP_REQ_SYS", appReqSys);
                    returnTOPMap.put("AUTH_SEQ_NO", authSeqNo);
                    // 系统异常转本终端授权 c
                    returnTOPMap.put("APP_RES_RSLT", "c");
                    
                    logger.info("================通知TOP转本地授权开始=================");
                    authCancelService.cancelToSourceSystem(csId, returnTOPMap);
                    logger.info("================通知TOP转本地授权结束=================");
                }
                return "success";
            }
        }
    
        public String getTransContent()
        {
            return transContent;
        }
    
        public void setTransContent(String transContent)
        {
            this.transContent = transContent;
        }
    
        public String getImageTipsInfo()
        {
            return imageTipsInfo;
        }
    
        public void setImageTipsInfo(String imageTipsInfo)
        {
            this.imageTipsInfo = imageTipsInfo;
        }
    
        public String getInstLevel1BranchId()
        {
            return instLevel1BranchId;
        }
    
        public void setInstLevel1BranchId(String instLevel1BranchId)
        {
            this.instLevel1BranchId = instLevel1BranchId;
        }
    
        public String getAppReqInfo()
        {
            return appReqInfo;
        }
    
        public void setAppReqInfo(String appReqInfo)
        {
            this.appReqInfo = appReqInfo;
        }
    
        public String getServerPath()
        {
            return serverPath;
        }
    
        public void setServerPath(String serverPath)
        {
            this.serverPath = serverPath;
        }
    
        public String getAuthPath()
        {
            return authPath;
        }
    
        public void setAuthPath(String authPath)
        {
            this.authPath = authPath;
        }
        
        @SuppressWarnings({"rawtypes", "unchecked" })
        public Map<String, Object> getCRA997104Response(Map rawData)
        {
            if(rawData == null)
            {
                rawData = new HashMap<String, Object>();
                rawData.put("BK_DESC", "发送COSRA外呼交易失败,系统异常");
                rawData.put("BK_CODE", "SYSTEM_ERROR");
                rawData.put("BK_STATUS", "01");
                
                return rawData;
            }
            Map resultMap = (Map)((Map)rawData.get("TX_BODY")).get("ENTITY");
            if(resultMap == null)
            {
                resultMap = new HashMap();
            }
            if (((Map) rawData.get("TX_HEADER")).get("SYS_TX_STATUS") != null)
                ((Map) resultMap).put("BK_STATUS", ((Map) rawData.get("TX_HEADER")).get("SYS_TX_STATUS"));
            else
                logger.info("TX_HEADER===>SYS_TX_STATUS为空");
                //((Map) resultMap).put("BK_STATUS", inData);
    
            if (((Map) rawData.get("TX_HEADER")).get("SYS_RESP_CODE") != null)
                ((Map) resultMap).put("BK_CODE", ((Map) rawData.get("TX_HEADER")).get("SYS_RESP_CODE"));
            else
                logger.info("TX_HEADER===>SYS_RESP_CODE为空");
    
            
            if (((Map) rawData.get("TX_HEADER")).get("SYS_RESP_DESC") != null)
            {
                String bkDesc = (String)((Map) rawData.get("TX_HEADER")).get("SYS_RESP_DESC");
                int i = bkDesc.indexOf("<br>");
                if( i > 0)
                {
                    bkDesc = bkDesc.substring(0, i);
                }
                ((Map) resultMap).put("BK_DESC", bkDesc);
            }
            else
                //((Map) resultMap).put("BK_DESC", okDesc);
                logger.info("TX_HEADER===>SYS_RESP_DESC为空");
            
            return (Map<String, Object>) resultMap;
        }
    
        public void setResultContent(String resultContent)
        {
            this.resultContent = resultContent;
        }
    
        public String getResultContent()
        {
            return resultContent;
        }
        
    }
  • 相关阅读:
    洛谷P6218 [USACO06NOV] Round Numbers S 题解 数位DP
    Duilib的双缓冲实现,附带GDI、WTL的双缓冲实现
    关于热键HotKey与WM_KEYDOWN的一点心得
    源码不匹配,找到了xxx的副本。
    SetForegroundWindow的失效问题: 跨进程的窗口前置。
    2021年4月的一份总结
    制作msi文件,exe转msi文件。
    内存限制
    ISPRS Vaihingen 数据集解析
    Linux中sudo、su和su -命令的区别小结
  • 原文地址:https://www.cnblogs.com/danyubin/p/3435369.html
Copyright © 2011-2022 走看看