第一篇就是测试一下吧发下代码看看格式

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;

    }

    

}

 

你可能感兴趣的:(测试)