package com.finstone.gjj.dqd.service.imp;
import com.caucho.hessian.client.HessianProxyFactory;
import com.fins.html.Application;
import com.fins.jdbc.DataSourceRoute;
import com.fins.modules.dao.DataBaseHelper;
import com.fins.modules.web.mvc.support.ResponseEntity;
import com.finstone.app.common.service.LogService;
import com.finstone.app.common.util.SignatureUtils;
import com.finstone.app.common.util.XmlUtil;
import com.finstone.gjj.common.service.imp.ImportSupportService;
import com.finstone.gjj.dqd.client.WxsbAxisClient;
import com.finstone.gjj.dqd.protocol.wljk.util.AES;
import com.finstone.gjj.dqd.service.imp.TransService;
import com.finstone.gjj.dqd.support.Constants;
import com.finstone.gjj.dqd.support.DqdPropertyConstants;
import com.finstone.gjj.dqd.support.ResultStatus;
import com.finstone.gjj.dqd.support.ServiceException;
import com.finstone.gjj.dqd.support.util.ClassUtilsEx;
import com.finstone.gjj.dqd.support.util.ParamUtils;
import com.finstone.gjj.dqd.support.util.XmlUtils;
import com.finstone.gjj.dqd.support.util.ZipUtils;
import com.finstone.jwt.support.JwtConsts.JwtServiceError;
import com.tienon.util.FileFieldConv;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Random;
import net.sf.ehcache.Cache;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@Service
public class ResponseData {
private static String DEFAULT_CHARSET = "UTF-8";
@Autowired
private TransService transService;
@Autowired
private WxsbAxisClient wxsbAxisClient;
@Autowired
private ImportSupportService importSupportService;
@Autowired
private LogService logService;
private Cache retryInvokeCache;
protected Log logger = LogFactory.getLog(this.getClass());
private String GetXML_By_DB;
private static final String XML_HEAD = "";
public static String getDEFAULT_CHARSET() {
return DEFAULT_CHARSET;
}
public static void setDEFAULT_CHARSET(String default_charset) {
DEFAULT_CHARSET = default_charset;
}
public String getReturnCode(String transCode) {
String retransCode = transCode.substring(0, 2) + this.transService.getReturnTranscode(transCode.substring(2));
return retransCode;
}
public Map getReturnMap(Map m) {
String transcode = String.valueOf(m.get("transcode"));
String appid = String.valueOf(m.get("appid"));
String sGndm = "";
String tranXml = XmlUtils.converter(m);
if(transcode.length() == 9) {
sGndm = transcode.substring(0, 3);
transcode = transcode.substring(3);
}
ResultStatus resultStatus = null;
HashMap r = new HashMap();
Properties setings = Application.getApplicationSettings();
String sXmid = setings.getProperty("zhfw.xmid").toUpperCase();
m.put("xmid", sXmid);
long starttime = (new Date()).getTime();
try {
DataSourceRoute.putAppId("default");
this.transService.doLog(transcode, tranXml, "", "");
resultStatus = this.transService.tranProcMds(appid, transcode, "" + sXmid + "", sGndm, "1");
} catch (ServiceException var26) {
resultStatus.set(var26.getCode(), var26.getMessage());
this.logger.info("getMap业务查询异常>>>>>>>" + var26.getMessage(), var26);
r.put("code", "-1");
r.put("msg", "执行方法异常:" + var26.getMessage());
} catch (Exception var27) {
var27.printStackTrace();
this.logger.info("getMap业务查询异常>>>>>>>" + var27.getMessage(), var27);
r.put("code", "-1");
r.put("msg", "执行方法异常:" + var27.getMessage());
}
if(resultStatus.getCode().equals("0001")) {
String e = this.transService.getClassName(transcode, appid, sXmid);
String[] classArray = e.split("\\.");
try {
String e1 = this.transService.getSjy(transcode, appid, sXmid);
DataSourceRoute.putAppId(e1);
this.logger.info("getMap执行反射开始>>>>>>>");
r = (HashMap)ClassUtilsEx.invokeMethod(classArray[0], classArray[1], m);
if(r.get("code") != null && r.get("msg") != null) {
if(r.get("code").equals("0")) {
r.put("code", "0001");
r.put("msg", "成功返回结果!");
} else {
r.put("code", r.get("code"));
r.put("msg", r.get("msg"));
}
} else if(r.get("code") == null) {
r.put("code", "-1");
r.put("msg", "结果返回异常!");
} else {
boolean code = true;
try {
int code1 = Integer.parseInt(r.get("code").toString());
if(code1 > 0) {
r.put("code", r.get("code"));
r.put("msg", "成功返回结果!");
} else if(code1 == 0) {
r.put("code", "0001");
r.put("msg", "成功返回结果!");
} else if(code1 < 0) {
r.put("code", r.get("code"));
r.put("msg", "结果返回异常!");
}
} catch (Exception var25) {
r.put("code", "-1");
r.put("msg", "结果返回异常!");
}
}
} catch (Exception var28) {
this.logger.info("getMap执行反射异常>>>>>>>" + var28.getMessage(), var28);
var28.printStackTrace();
r.put("code", "-1");
r.put("msg", "反射执行方法异常:" + var28.getMessage());
} finally {
DataSourceRoute.putAppId("default");
}
} else {
this.logger.info("getMap内部异常:>>>>>>>" + resultStatus.getText());
r.put("code", "-1");
r.put("msg", "内部异常:" + resultStatus.getText());
}
r.put("transcode", transcode);
r.put("appid", appid);
r.put("inxml", tranXml);
r.put("blobid", m.get("blobid") == null?"":m.get("blobid").toString());
this.logger.info("写入getReturnMap日志>>>>>>>transcode:" + transcode + "|fwqd:" + appid);
try {
this.transService.savelogs(sGndm, appid, transcode, Integer.valueOf(r.get("code").toString()).intValue(), String.valueOf(r.get("msg")), m.toString(), starttime);
return r;
} catch (Exception var24) {
throw new ServiceException("9999", "记录操作日志错误,请联系管理员!");
}
}
public Map doJava(Map p) {
String testM = "com.finstone.zhfw.ywjk.service.ImpExpFileService.getTemplate";
String[] classArray = testM.split("\\.");
Object r = new HashMap();
try {
r = (Map)ClassUtilsEx.invokeMethod("ImpExpFileService", "getTemplate", p);
} catch (Exception var6) {
var6.printStackTrace();
((Map)r).put("code", "-1");
((Map)r).put("msg", "反射执行方法异常:" + var6.getMessage());
}
return (Map)r;
}
public String getOseqno() {
StringBuffer sb = new StringBuffer();
SimpleDateFormat tempDate = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String datetime = tempDate.format(new Date());
sb.append(datetime);
Random ra = new Random();
for(int j = 0; j < 3; ++j) {
sb.append(ra.nextInt(10));
}
return sb.toString();
}
private String addZero(String str, int len) {
StringBuffer s = new StringBuffer();
s.append(str);
while(s.length() < len) {
s.insert(0, "0");
}
return s.toString();
}
public String doGenPage(String xml) {
boolean tmpStart = false;
String limit_start = StringUtils.substringBetween(xml, "", "");
String limit_length = StringUtils.substringBetween(xml, "", "");
if(StringUtils.isNotBlank(limit_start)) {
int len = Integer.valueOf(StringUtils.defaultIfEmpty(limit_length, "20")).intValue();
int tmpStart1;
if(Integer.valueOf(limit_start).intValue() > 1) {
tmpStart1 = (Integer.valueOf(limit_start).intValue() - 1) * len;
} else {
tmpStart1 = Integer.valueOf(limit_start).intValue() - 1;
}
xml = StringUtils.replace(xml, "" + limit_start + "", "" + (Integer.valueOf(tmpStart1).intValue() + 1) + "");
xml = StringUtils.replace(xml, "" + limit_length + "", "" + String.valueOf(tmpStart1 + len) + "");
}
return xml;
}
public Cache getRetryInvokeCache() {
return this.retryInvokeCache;
}
public void setRetryInvokeCache(Cache retryInvokeCache) {
this.retryInvokeCache = retryInvokeCache;
}
public void setGetXML_By_DB(String getXML_By_DB) {
this.GetXML_By_DB = getXML_By_DB;
}
public String invoke(String inXml) throws ServiceException, Exception {
Properties setings = Application.getApplicationSettings();
String isMutiDS = setings.getProperty("isMutiDS");
return isMutiDS.toUpperCase().equals("TRUE")?ParamUtils.encode(this.doResponseMD(inXml)):ParamUtils.encode(this.doResponse(inXml));
}
public Map invokeAndFile(String inXml, Map filemap) throws ServiceException, Exception {
return this.doResponseMDAndFile(inXml, filemap);
}
private String doResponse(String paramXml) throws ServiceException, Exception {
String inXml = "";
if(Constants.xmlZip.toUpperCase().equals("TRUE")) {
if(Constants.ziptype.toUpperCase().equals("GZIP")) {
inXml = ZipUtils.decompress(paramXml);
} else {
inXml = FileFieldConv.fieldBCDtoASC(paramXml, "GBK");
}
} else {
inXml = paramXml;
}
String iniseqno = "";
String bodyxml = inXml.substring(inXml.indexOf("
"), inXml.indexOf("")) + ""), paramXml.indexOf("", "" + AES.decrypt(headreceiver, fwqd_jmmy) + "", "";
String transCode = inXml.substring(inXml.indexOf("") + 11, inXml.indexOf(""));
iniseqno = inXml.substring(inXml.indexOf("") + 8, inXml.indexOf(""));
String sGndm = inXml.indexOf("") == -1?"":inXml.substring(inXml.indexOf("") + 6, inXml.indexOf(""));
String sAppid = inXml.substring(inXml.indexOf("") + 7, inXml.indexOf(""));
String headsender = inXml.substring(inXml.indexOf("") + 8, inXml.indexOf(""));
String headreceiver = inXml.substring(inXml.indexOf("") + 10, inXml.indexOf(""));
ResultStatus resultStatus = new ResultStatus();
String strBody = "";
String retransCode = transCode;
if(transCode.equals("090102")) {
String isRetryInvoke1 = inXml.substring(inXml.indexOf("") + 8, inXml.indexOf(""));
resultStatus = this.invoke_wxsb(isRetryInvoke1);
strBody = "" + headreceiver + "" + headsender + "" + transCode + "" + resultStatus.getCode() + "" + resultStatus.getText() + "" + iniseqno + "";
strBody = "\r\n" + strBody;
this.logger.info("doCall 业务查询正常结束>>>>>>>");
return strBody;
} else {
boolean isRetryInvoke = false;
try {
DataSourceRoute.putAppId("default");
String e = "";
this.transService.doLog(transCode, inXml, "", "");
e = StringUtils.replace(bodyxml, "", "");
e = StringUtils.replace(e, "", "");
e = StringUtils.replace(e, "", "");
e = StringUtils.replace(e, "", "
" + sXmid + "");
Properties setings = Application.getApplicationSettings();
String sXmid = setings.getProperty("zhfw.xmid").toUpperCase();
e = StringUtils.replace(e, "
", "
");
try {
resultStatus = this.transService.tranProc(sAppid, transCode, e, sGndm);
} catch (ServiceException var24) {
resultStatus.set(var24.getCode(), var24.getMessage());
this.logger.info("doCall业务查询(信息返回)异常>>>>>>>" + e + "<<<<<<<,异常信息栈" + var24.getMessage(), var24);
}
if(resultStatus.getCode().equals("0001")) {
resultStatus.setText("成功返回结果!");
strBody = resultStatus.getMsg();
if(strBody != null) {
String iseqno = StringUtils.substringBetween(strBody, "", "");
strBody = StringUtils.replace(strBody, "" + iseqno + "", "" + iniseqno + "");
String sender = StringUtils.substringBetween(strBody, "", "");
strBody = StringUtils.replace(strBody, "" + sender + "", "" + headreceiver + "");
String receiver = StringUtils.substringBetween(strBody, "", "");
strBody = StringUtils.replace(strBody, "" + receiver + "", "" + headsender + "");
}
strBody = ParamUtils.formatXML(strBody);
} else {
strBody = "" + headreceiver + "" + headsender + "" + retransCode + "" + resultStatus.getCode() + "" + resultStatus.getText() + "" + iniseqno + "";
strBody = "\r\n" + strBody;
}
} catch (Exception var25) {
throw new ServiceException("9999", "服务端出现异常,请联系开发人员" + var25.getMessage());
} finally {
DataSourceRoute.putAppId("default");
this.transService.doLog(transCode, strBody, resultStatus.getCode(), resultStatus.getText());
}
this.logger.info("doCall 业务查询正常结束>>>>>>>");
return strBody;
}
}
private String doResponseMD(String paramXml) throws ServiceException, Exception {
return this.doResponseMDAndFile(paramXml, (Map)null).get("xml").toString();
}
private Map doResponseMDAndFile(String paramXml, Map filemap) throws ServiceException, Exception {
String allxml = "";
String iniseqno = "";
Map fwqd_map = null;
String bodyxml = paramXml.substring(paramXml.indexOf("
")) + "";
String transCode = paramXml.substring(paramXml.indexOf("") + 11, paramXml.indexOf(""));
String access_token = StringUtils.substringBetween(paramXml, "", "");
String signature = StringUtils.substringBetween(paramXml, "", "");
String ishttp = StringUtils.substringBetween(paramXml, "", "");
if(transCode != null && !"".equals(transCode)) {
String sGndm;
if("ZZZZZZ".equals(transCode)) {
sGndm = "0000ZZZZZZ0001" + iniseqno + "";
HashMap setings1 = new HashMap();
setings1.put("xml", sGndm);
setings1.put("file", new HashMap());
return setings1;
} else {
sGndm = "";
if(transCode.length() == 9) {
sGndm = transCode.substring(0, 3);
transCode = transCode.substring(3);
}
Properties setings = Application.getApplicationSettings();
String sXmid = setings.getProperty("zhfw.xmid").toUpperCase();
if(!this.transService.checkjkdmbf(transCode, bodyxml, sXmid)) {
throw new ServiceException("0024", "对不起,服务器繁忙,请先至业务进度查询办理结果!");
} else {
String inXml = StringUtils.replace(paramXml, "", "");
iniseqno = inXml.substring(inXml.indexOf("") + 8, inXml.indexOf(""));
String sAppid = inXml.substring(inXml.indexOf("") + 7, inXml.indexOf(""));
if(sAppid != null && !"".equals(sAppid)) {
new ResponseEntity();
String fwqd_yzpt = "";
String fwqd_sfjm = "";
String fwqd_jmmy = "";
ResponseEntity responseEntity;
String ip;
String headsender;
String headreceiver;
if(!"1".equals(ishttp)) {
fwqd_map = this.transService.getFwqdMapCache(sAppid);
if(fwqd_map == null) {
throw new ServiceException("0024", "无效的渠道号,请检查!");
}
fwqd_yzpt = fwqd_map.get("yzpt") == null?"":fwqd_map.get("yzpt").toString();
fwqd_sfjm = fwqd_map.get("sfjm") == null?"":fwqd_map.get("sfjm").toString();
fwqd_jmmy = fwqd_map.get("jmmy") == null?"":fwqd_map.get("jmmy").toString();
ip = fwqd_map.get("sfqm") == null?"":fwqd_map.get("sfqm").toString();
headsender = fwqd_map.get("secret") == null?"":fwqd_map.get("secret").toString();
if("1".equals(fwqd_yzpt)) {
this.logger.info("开始权限验证>>>>>>>");
this.logger.info("开始校验token>>>>>>>");
responseEntity = this.transService.checkToken(fwqd_map, access_token);
if(responseEntity.getCode() != 0) {
throw new ServiceException(String.valueOf(responseEntity.getCode()), responseEntity.getMsg());
}
if(fwqd_sfjm.equals("1")) {
this.logger.info("开始解密接收报文body>>>>>>>");
headreceiver = StringUtils.substringBetween(bodyxml, "
");
try {
bodyxml = "
";
} catch (Exception var56) {
this.logger.info("解密body失败>>>>>>>");
throw new ServiceException(String.valueOf(JwtServiceError.AES_ERROR_ANALYSIS.getCode()), JwtServiceError.AES_ERROR_ANALYSIS.getMsg());
}
}
if(!"".equals(headsender) && ip.equals("1")) {
this.logger.info("验证签名信息>>>>>>>");
headreceiver = SignatureUtils.getSignature(headsender, StringUtils.substringBetween(bodyxml, "
"));
if(!headreceiver.equals(signature)) {
throw new ServiceException(String.valueOf(JwtServiceError.SIGNATURE_ERROR_ANALYSIS.getCode()), JwtServiceError.SIGNATURE_ERROR_ANALYSIS.getMsg());
}
}
this.logger.info("权限验证结束>>>>>>>");
}
}
ip = inXml.indexOf("") == -1?"":inXml.substring(inXml.indexOf("") + 4, inXml.indexOf(""));
headsender = inXml.indexOf("") == -1?"":inXml.substring(inXml.indexOf("") + 8, inXml.indexOf(""));
headreceiver = inXml.indexOf("") == -1?"":inXml.substring(inXml.indexOf("") + 10, inXml.indexOf(""));
ResultStatus resultStatus = new ResultStatus();
String strBody = "";
String retransCode = transCode;
String transXml = "";
long starttime = (new Date()).getTime();
long wlstarttime = 0L;
String wllsid = "";
String sProc = "";
String djmstring;
try {
DataSourceRoute.putAppId("default");
transXml = this.doGenPage(bodyxml);
transXml = StringUtils.replace(transXml, "", "");
transXml = StringUtils.replace(transXml, "", "");
transXml = StringUtils.replace(transXml, "", "");
transXml = StringUtils.replace(transXml, "", "" + sXmid + "");
resultStatus.setCode("0001");
Map returnMap = DataBaseHelper.queryForMap("select fwdz from zhfw_fwqd where fwqd=?", new Object[]{sAppid});
if(returnMap.get("fwdz") != null && !ip.equals(returnMap.get("fwdz").toString())) {
resultStatus.setCode("9999");
resultStatus.setText("非法接入地址!");
}
String sender;
String receiver;
String s_sjjk_jkdm;
Object wljklogMap;
if(sAppid.indexOf("7") == 0 && !transCode.equals("010111") && !sAppid.equals("73") && !sAppid.equals("76")) {
djmstring = StringUtils.substringBetween(transXml, "", "");
sender = StringUtils.substringBetween(transXml, "", "");
receiver = StringUtils.substringBetween(transXml, "", "");
if("".equals(djmstring) || djmstring == null) {
djmstring = sender;
}
if(("".equals(djmstring) || djmstring == null) && receiver != null && !receiver.equals("")) {
s_sjjk_jkdm = setings.getProperty("rpc.url");
String debugmap = setings.getProperty("rpc.interface");
HessianProxyFactory ywXml = new HessianProxyFactory();
ywXml.setConnectTimeout((long)Integer.parseInt(Constants.hessianConnectTimeout));
ywXml.setReadTimeout((long)Integer.parseInt(Constants.hessianReadTimeout));
wljklogMap = ywXml.create(Class.forName(debugmap), s_sjjk_jkdm);
Class headXML = wljklogMap.getClass();
Method fszzbw = null;
fszzbw = headXML.getMethod("querySpcodeBysqbh", new Class[]{Map.class});
HashMap xyysbw = new HashMap();
xyysbw.put("sqbh", receiver);
HashMap paramsmap = new HashMap();
paramsmap.put("params", xyysbw);
responseEntity = (ResponseEntity)fszzbw.invoke(wljklogMap, new Object[]{paramsmap});
djmstring = responseEntity.getData().size() == 0?"":((Map)responseEntity.getData().get(0)).get("spcode").toString();
}
Map s_sjjk_jkdm1 = DataBaseHelper.queryForMap("select count(*) cnt from zhfw_user_qd where fwqd=? and spcodebm =?", new Object[]{sAppid, djmstring});
if(Integer.valueOf(s_sjjk_jkdm1.get("cnt").toString()).intValue() == 0) {
resultStatus.setCode("9999");
resultStatus.setText("账号没有签约,请先签约!");
}
}
if(transCode.equals("******")) {
try {
Map djmstring1 = DataBaseHelper.queryForMap("select YHFWFZ from zhfw_fwqd where fwqd=?", new Object[]{sAppid});
if(djmstring1.get("YHFWFZ") != null && Double.valueOf(djmstring1.get("YHFWFZ").toString()).doubleValue() > 0.0D) {
sender = setings.getProperty("rpc.url");
receiver = setings.getProperty("rpc.interface");
HessianProxyFactory s_sjjk_jkdm2 = new HessianProxyFactory();
s_sjjk_jkdm2.setConnectTimeout((long)Integer.parseInt(Constants.hessianConnectTimeout));
s_sjjk_jkdm2.setReadTimeout((long)Integer.parseInt(Constants.hessianReadTimeout));
Object debugmap1 = s_sjjk_jkdm2.create(Class.forName(receiver), sender);
Class ywXml1 = debugmap1.getClass();
wljklogMap = null;
Method wljklogMap1 = ywXml1.getMethod("getTotalTqje", new Class[]{Map.class});
HashMap headXML1 = new HashMap();
headXML1.put("fwqd", sAppid);
HashMap fszzbw1 = new HashMap();
fszzbw1.put("params", headXML1);
responseEntity = (ResponseEntity)wljklogMap1.invoke(debugmap1, new Object[]{fszzbw1});
Double xyysbw1 = Double.valueOf(responseEntity.getData().size() == 0?0.0D:Double.valueOf(((Map)responseEntity.getData().get(0)).get("sumje").toString()).doubleValue());
if(xyysbw1.doubleValue() >= Double.valueOf(djmstring1.get("YHFWFZ").toString()).doubleValue()) {
resultStatus.setCode("9999");
resultStatus.setText("您好,今日提取金额已达最大值,请明天再试!");
}
}
} catch (Exception var55) {
;
}
}
if("0001".equals(resultStatus.getCode())) {
try {
this.logger.info("进入数据库的XML>>>>>>>" + transXml);
resultStatus = this.transService.tranProcMds(sAppid, transCode, transXml, sGndm, "1");
if(!resultStatus.getCode().equals("0001")) {
throw new ServiceException(resultStatus.getCode(), resultStatus.getText());
}
djmstring = resultStatus.getMsg();
sProc = StringUtils.substringBetween(djmstring, "", "");
sender = StringUtils.substringBetween(djmstring, "", "");
receiver = StringUtils.substringBetween(djmstring, "", "");
s_sjjk_jkdm = StringUtils.substringBetween(djmstring, "", "");
djmstring = djmstring.replace("" + sXmid + "", "" + sXmid + "");
if(!resultStatus.getCode().equals("0001")) {
throw new ServiceException(resultStatus.getCode(), resultStatus.getText());
}
if(!resultStatus.getCode().equals("0001")) {
throw new ServiceException(resultStatus.getCode(), resultStatus.getText());
}
Map debugmap2 = this.transService.tranDebugMds(sAppid, transCode, sXmid, djmstring);
if(debugmap2.get("flag").toString().equals("1")) {
resultStatus = (ResultStatus)debugmap2.get("resultStatus");
} else {
this.logger.info(">>>>>>>>>>数据源为:" + sender + "进入相应数据源的XML>>>>>>>" + djmstring);
DataSourceRoute.putAppId(sender);
djmstring = djmstring.substring(djmstring.indexOf("") > 0?djmstring.indexOf(""):0);
Map ywXml2 = XmlUtil.xml2map(inXml, false);
Map wljklogMap2 = (Map)ywXml2.get("head");
String headXML2 = XmlUtil.formatXml(XmlUtil.map2xml(wljklogMap2, "head"));
headXML2 = headXML2.substring(headXML2.indexOf(""));
allxml = "" + headXML2 + djmstring + "";
if("7".equals(sProc)) {
wlstarttime = (new Date()).getTime();
resultStatus = this.transService.tranProcMds(sAppid, receiver, allxml, sProc, "2");
String fszzbw2 = resultStatus.getOtherResult() != null && resultStatus.getOtherResult().get("fszzbw") != null?resultStatus.getOtherResult().get("fszzbw").toString():resultStatus.getText();
String xyysbw2 = resultStatus.getOtherResult() != null && resultStatus.getOtherResult().get("xyysbw") != null?resultStatus.getOtherResult().get("xyysbw").toString():resultStatus.getText();
if(resultStatus.getCode().equals("0001")) {
wllsid = this.transService.saveWlJklogs(sAppid, sGndm + transCode, allxml, fszzbw2, wlstarttime, xyysbw2, "01");
} else {
wllsid = this.transService.saveWlJklogs(sAppid, sGndm + transCode, allxml, fszzbw2, wlstarttime, xyysbw2, "-1");
}
} else if("9".equals(sProc)) {
resultStatus = this.doCallZhfwJavaYwcl(djmstring, "2", sAppid, receiver, filemap);
} else {
resultStatus = this.transService.tranProcMds(sAppid, receiver, djmstring, sProc, "2", filemap);
}
}
if(!resultStatus.getCode().equals("0001")) {
throw new ServiceException(resultStatus.getCode(), resultStatus.getText());
}
String ywXml3 = resultStatus.getMsg();
this.logger.info("业务返回XML>>>>>>>" + ywXml3);
if(!"02096B".equals(s_sjjk_jkdm)) {
this.logger.info("业务返回XML222222>>>>>>>" + resultStatus.getDataset());
} else {
this.logger.info("业务返回XML22222>>>>>>> " + s_sjjk_jkdm + " 接口已经屏蔽返回(内容过大)");
}
DataSourceRoute.putAppId("default");
djmstring = StringUtils.replace(djmstring, "", "" + sXmid + "");
if("7".equals(sProc)) {
if(resultStatus.getHeadMap() == null) {
HashMap wljklogMap3 = new HashMap();
wljklogMap3.put("zhfw_wljklog_id", wllsid);
resultStatus.setHeadMap(wljklogMap3);
} else {
resultStatus.getHeadMap().put("zhfw_wljklog_id", wllsid);
}
}
resultStatus = this.transService.tranProcMds(sAppid, transCode, djmstring, ywXml3, "3", resultStatus);
} catch (ServiceException var57) {
resultStatus.set(var57.getCode(), var57.getMessage());
this.logger.info("doCall业务查询(信息返回)异常>>>>>>>" + transXml + "<<<<<<<,异常信息栈" + var57.getMessage(), var57);
}
}
if(resultStatus.getCode().equals("0001")) {
resultStatus.setText("成功返回结果!");
strBody = resultStatus.getMsg();
if(strBody != null) {
djmstring = StringUtils.substringBetween(strBody, "", "");
strBody = StringUtils.replace(strBody, "" + djmstring + "", "" + iniseqno + "");
sender = StringUtils.substringBetween(strBody, "", "");
strBody = StringUtils.replace(strBody, "" + sender + "", "" + headreceiver + "");
receiver = StringUtils.substringBetween(strBody, "", "");
strBody = StringUtils.replace(strBody, "" + receiver + "", "" + headsender + "");
}
strBody = ParamUtils.formatXML(strBody);
} else {
strBody = "" + headreceiver + "" + headsender + "" + retransCode + "" + resultStatus.getCode() + "" + resultStatus.getText() + "" + iniseqno + "";
strBody = "\r\n" + strBody;
}
} catch (Exception var58) {
var58.printStackTrace();
throw new ServiceException("9999", "服务端出现异常,请联系开发人员" + var58.getMessage());
} finally {
DataSourceRoute.putAppId("default");
if("7".equals(sProc)) {
if(resultStatus.getCode().equals("0001")) {
this.transService.updateWlJklogs(wllsid, strBody, "21");
} else {
this.transService.updateWlJklogs(wllsid, strBody, "-1");
}
}
this.logger.info("写入doResponseMDAndFile日志>>>>>>>transcode:" + transCode + "|fwqd:" + sAppid);
try {
this.transService.savelogs(sGndm, sAppid, transCode, Integer.valueOf(resultStatus.getCode()).intValue(), resultStatus.getText(), allxml.equals("")?transXml:allxml, starttime);
} catch (Exception var54) {
throw new ServiceException("9999", "记录操作日志错误,请联系管理员!");
}
}
this.logger.info("doCall 业务查询正常结束>>>>>>>");
HashMap returnMap1 = new HashMap();
if(fwqd_sfjm.equals("1") && "1".equals(fwqd_yzpt) && !"1".equals(ishttp)) {
this.logger.info("开始加密,报文body>>>>>>>" + strBody);
djmstring = StringUtils.substringBetween(strBody, "", "");
strBody = strBody.substring(0, strBody.indexOf("")) + "" + AES.encrypt(djmstring, fwqd_jmmy) + strBody.substring(strBody.indexOf(""));
this.logger.info("加密结束,返回报文加密body>>>>>>>" + strBody);
}
returnMap1.put("xml", strBody);
returnMap1.put("file", resultStatus.getFileMap());
return returnMap1;
} else {
throw new ServiceException("0024", "服务渠道不能为空,请检查!");
}
}
}
} else {
throw new ServiceException("0024", "接口代码不能为空,请检查!");
}
}
public ResultStatus checkHmd(String gndm, String jkdm, String appid, String xmid, String xml) {
ResultStatus resultstatus = new ResultStatus("0001");
try {
String e = StringUtils.replace(xml, "", "");
e = StringUtils.replace(e, "", "");
Map rootmap = XmlUtil.xml2map(xml, false);
Map headmap = (Map)rootmap.get("head");
Object paramslist = new ArrayList();
if(!(rootmap.get("list") == null?"":rootmap.get("list").toString().trim()).equals("")) {
Map qd_zhlx = (Map)rootmap.get("list");
if(qd_zhlx.get("array") instanceof LinkedHashMap) {
((List)paramslist).add((Map)qd_zhlx.get("array"));
} else if(qd_zhlx.get("array") instanceof List) {
paramslist = (List)qd_zhlx.get("array");
}
}
String qd_zhlx1 = headmap.get("qd_zhlx") == null?"":headmap.get("qd_zhlx").toString();
if("2".equals(qd_zhlx1)) {
return resultstatus;
} else {
resultstatus = this.checkHmdImp(headmap, appid);
if(resultstatus.getCode().equals("9999")) {
return resultstatus;
} else {
Iterator var13 = ((List)paramslist).iterator();
while(var13.hasNext()) {
Map arraymap = (Map)var13.next();
resultstatus = this.checkHmdImp(arraymap, appid);
if(resultstatus.getCode().equals("9999")) {
return resultstatus;
}
}
return resultstatus;
}
}
} catch (Exception var14) {
var14.printStackTrace();
resultstatus.setCode("9999");
resultstatus.setText("检查黑名单失败,请稍候");
return resultstatus;
}
}
private ResultStatus checkHmdImp(Map headmap, String appid) {
ResultStatus resultstatus = new ResultStatus("0001");
String sql = "";
String spcode = headmap.get("spcode") == null?"":headmap.get("spcode").toString();
String grzh = headmap.get("grzh") == null?"":headmap.get("grzh").toString();
String spaccount = headmap.get("spaccount") == null?"":headmap.get("spaccount").toString();
String logname = headmap.get("logname") == null?"":headmap.get("logname").toString();
sql = "select count(1) cnt from ZHFW_YHHMD where yhid =? or zjhm = ? ";
Map hmdmap1 = DataBaseHelper.getJdbcTemplate().queryForMap(sql, new Object[]{logname, logname});
if(Integer.valueOf(hmdmap1.get("cnt").toString()).intValue() > 0) {
resultstatus.setCode("9999");
resultstatus.setText("您已被列入黑名单,请咨询12329!");
return resultstatus;
} else {
String yhid = "";
String[] zh = new String[]{spcode, grzh, spaccount};
String[] sfzh = zh;
int spidno = zh.length;
String sfz;
for(int zjhm = 0; zjhm < spidno; ++zjhm) {
sfz = sfzh[zjhm];
if(!"".equals(sfz)) {
yhid = sfz;
break;
}
}
if(!"".equals(yhid)) {
sql = "select count(1) cnt from ZHFW_YHHMD where yhid =? and fwqd = ?";
Map var20 = DataBaseHelper.getJdbcTemplate().queryForMap(sql, new Object[]{yhid, appid});
if(Integer.valueOf(var20.get("cnt").toString()).intValue() > 0) {
resultstatus.setCode("9999");
resultstatus.setText("您已被列入黑名单,请咨询12329!");
return resultstatus;
}
}
sfz = "";
String var21 = headmap.get("zjhm") == null?"":headmap.get("zjhm").toString();
String var22 = headmap.get("spidno") == null?"":headmap.get("spidno").toString();
sfzh = new String[]{var21, var22};
String[] var19 = sfzh;
int var18 = sfzh.length;
for(int var17 = 0; var17 < var18; ++var17) {
String hmdmap = var19[var17];
if(!"".equals(hmdmap)) {
sfz = hmdmap;
break;
}
}
if(!"".equals(sfz)) {
sql = "select count(1) cnt from ZHFW_YHHMD where zjhm =? and fwqd = ?";
Map var23 = DataBaseHelper.getJdbcTemplate().queryForMap(sql, new Object[]{sfz, appid});
if(Integer.valueOf(var23.get("cnt").toString()).intValue() > 0) {
resultstatus.setCode("9999");
resultstatus.setText("您已被列入黑名单,请咨询12329!");
return resultstatus;
}
}
return resultstatus;
}
}
public ResultStatus checkywfz(String gndm, String jkdm, String appid, String xmid, String xml) {
ResultStatus resultstatus = new ResultStatus("0001");
try {
if(jkdm.equals("99010Q")) {
return resultstatus;
} else {
String e = StringUtils.replace(xml, "", "");
e = StringUtils.replace(e, "", "");
Map rootmap = XmlUtil.xml2map(e, false);
Map headmap = (Map)rootmap.get("head");
Object paramslist = new ArrayList();
if(!(rootmap.get("list") == null?"":rootmap.get("list").toString().trim()).equals("")) {
Map sql = (Map)rootmap.get("list");
if(sql.get("array") instanceof LinkedHashMap) {
((List)paramslist).add((Map)sql.get("array"));
} else if(sql.get("array") instanceof List) {
paramslist = (List)sql.get("array");
}
}
String var34 = "";
new ArrayList();
List listmx;
if("".equals(gndm)) {
var34 = "select * from zhfw_ywfz where projectid = ? and fwqd=? and jkdm=? and status = \'11\'";
listmx = DataBaseHelper.getJdbcTemplate().queryForList(var34, new Object[]{xmid, appid, jkdm});
} else {
var34 = "select * from zhfw_ywfz where projectid = ? and fwqd=? and jkdm=? and gndm =? and status =\'11\'";
listmx = DataBaseHelper.getJdbcTemplate().queryForList(var34, new Object[]{xmid, appid, jkdm, gndm});
}
if(listmx.size() <= 0) {
return resultstatus;
} else {
Iterator var14 = listmx.iterator();
while(var14.hasNext()) {
Map map = (Map)var14.next();
String xesx = map.get("xesx") == null?"":map.get("xesx").toString();
String xexx = map.get("xexx") == null?"":map.get("xexx").toString();
String drxe = map.get("drxe") == null?"":map.get("drxe").toString();
String ywlfz = map.get("ywlfz") == null?"":map.get("ywlfz").toString();
String drfwlfz = map.get("drfwlfz") == null?"":map.get("drfwlfz").toString();
String drfwkzfw = map.get("drfwkzfw") == null?"":map.get("drfwkzfw").toString();
String nodename = map.get("nodename") == null?"":map.get("nodename").toString();
String nodeValue;
String arraymap;
if(!drfwlfz.equals("")) {
nodeValue = "";
arraymap = StringUtils.substringBetween(xml, "", "") == null?"":StringUtils.substringBetween(xml, "", "");
String retrunmap = StringUtils.substringBetween(xml, "", "") == null?"":StringUtils.substringBetween(xml, "", "");
String nodeValue1 = StringUtils.substringBetween(xml, "", "") == null?"":StringUtils.substringBetween(xml, "", "");
String list = StringUtils.substringBetween(xml, "", "") == null?"":StringUtils.substringBetween(xml, "", "");
String accmap = StringUtils.substringBetween(xml, "", "") == null?"":StringUtils.substringBetween(xml, "", "");
nodeValue = StringUtils.substringBetween(xml, "", "") == null?"":StringUtils.substringBetween(xml, "", "");
String[] listr = new String[]{arraymap, retrunmap, accmap, nodeValue1, list, nodeValue};
String[] openid = listr;
int cntmap11 = listr.length;
for(int cntmap1 = 0; cntmap1 < cntmap11; ++cntmap1) {
String acclist = openid[cntmap1];
if(!"".equals(acclist)) {
nodeValue = acclist;
break;
}
}
if(!"".equals(nodeValue)) {
int var43 = 0;
Map var44;
if("01".equals(drfwkzfw)) {
var34 = "select count(1) cnt from zhfw_oplog where jkdm=? and userid =? and qrrq = to_char(sysdate,\'yyyymmdd\') ";
var44 = DataBaseHelper.getJdbcTemplate().queryForMap(var34, new Object[]{jkdm, nodeValue});
var43 = Integer.valueOf(var44.get("cnt").toString()).intValue();
var34 = "select openid openid from zhfw_user where yhid = ?";
List var45 = DataBaseHelper.getJdbcTemplate().queryForList(var34, new Object[]{nodeValue});
if(var45.size() > 0) {
String var49 = ((Map)var45.get(0)).get("openid") == null?"":((Map)var45.get(0)).get("openid").toString();
if(!"".equals(var49)) {
var34 = "select count(1) cnt from zhfw_oplog where jkdm=? and userid =? and fwqd = \'04\' and qrrq = to_char(sysdate,\'yyyymmdd\')";
var44 = DataBaseHelper.getJdbcTemplate().queryForMap(var34, new Object[]{jkdm, var49});
var43 += Integer.valueOf(var44.get("cnt").toString()).intValue();
}
}
}
if("02".equals(drfwkzfw)) {
if("04".equals(appid)) {
String var47 = StringUtils.substringBetween(xml, "", "") == null?"":StringUtils.substringBetween(xml, "", "");
if(!"".equals(var47)) {
var34 = "select count(1) cnt from zhfw_oplog where jkdm=? and userid =? and fwqd = ? and qrrq = to_char(sysdate,\'yyyymmdd\') ";
Map var48 = DataBaseHelper.getJdbcTemplate().queryForMap(var34, new Object[]{jkdm, var47, appid});
var43 = Integer.valueOf(var48.get("cnt").toString()).intValue();
}
} else {
var34 = "select count(1) cnt from zhfw_oplog where jkdm=? and userid =? and fwqd = ? and qrrq = to_char(sysdate,\'yyyymmdd\') ";
var44 = DataBaseHelper.getJdbcTemplate().queryForMap(var34, new Object[]{jkdm, nodeValue, appid});
var43 = Integer.valueOf(var44.get("cnt").toString()).intValue();
}
}
if(var43 >= Integer.valueOf(drfwlfz).intValue()) {
resultstatus.setCode("9999");
resultstatus.setText("该接口访问已经超过当日访问限制,请明日再试!");
return resultstatus;
}
}
}
if(!ywlfz.equals("") || !drxe.equals("")) {
nodeValue = " 00 00 00 Y0199010Q20161209133350 201612091333500303 " + gndm + "" + jkdm + "
";
arraymap = this.invoke(nodeValue);
Map var37 = XmlUtil.xml2map(arraymap, false);
Map var39 = (Map)var37.get("body");
if(var39.get("list") == null || "".equals(var39.get("list"))) {
resultstatus.setCode("9999");
resultstatus.setText("该功能已配置单日交易限额或业务量阈值,但未设置业务系统检查接口,请联系管理员!");
return resultstatus;
}
Map var41 = (Map)var39.get("list");
Object var42 = new HashMap();
if(var41.get("acc_info") instanceof LinkedHashMap) {
new ArrayList();
var42 = (Map)var41.get("acc_info");
} else if(var41.get("acc_info") instanceof List) {
new ArrayList();
List var46 = (List)var41.get("acc_info");
var42 = (Map)var46.get(0);
}
this.logger.info("ywlfz================" + ywlfz + "====" + ((Map)var42).get("ywzl").toString());
if(!ywlfz.equals("") && Double.valueOf(((Map)var42).get("ywzl").toString()).doubleValue() > Double.valueOf(ywlfz).doubleValue()) {
resultstatus.setCode("9999");
resultstatus.setText("已超过当日业务量阀值【" + Double.valueOf(ywlfz) + "】,请明天再试!");
return resultstatus;
}
this.logger.info("drxe================" + drxe + "====" + ((Map)var42).get("drxe").toString());
if(!drxe.equals("") && Double.valueOf(((Map)var42).get("drxe").toString()).doubleValue() > Double.valueOf(drxe).doubleValue()) {
resultstatus.setCode("9999");
resultstatus.setText("已超过当日业务限额【" + Double.valueOf(drxe) + "】,请明天再试!");
return resultstatus;
}
}
this.logger.info("xesx================" + xesx);
this.logger.info("xexx================" + xexx);
if(!"".equals(xesx) || !"".equals(xexx)) {
this.logger.info("nodename================" + nodename + "=====" + headmap.get(nodename));
Object var35 = headmap.get(nodename);
if(!"".equals(xexx) && var35 != null && Double.valueOf(var35.toString().replaceAll(",", "")).doubleValue() < Double.valueOf(xexx).doubleValue()) {
resultstatus.setCode("9999");
resultstatus.setText("输入金额低于金额下限【" + Double.valueOf(xexx) + "】");
return resultstatus;
}
if(!"".equals(xesx) && var35 != null && Double.valueOf(var35.toString().replaceAll(",", "")).doubleValue() > Double.valueOf(xesx).doubleValue()) {
resultstatus.setCode("9999");
resultstatus.setText("输入金额超过金额上限【" + Double.valueOf(xesx) + "】");
return resultstatus;
}
Iterator var38 = ((List)paramslist).iterator();
while(var38.hasNext()) {
Map var36 = (Map)var38.next();
Object var40 = var36.get(nodename);
if(!"".equals(xexx) && var40 != null && Double.valueOf(var40.toString().replaceAll(",", "")).doubleValue() < Double.valueOf(xexx).doubleValue()) {
resultstatus.setCode("9999");
resultstatus.setText("输入金额低于金额下限【" + Double.valueOf(xexx) + "】");
map.put("resultstatus", resultstatus);
return resultstatus;
}
if(!"".equals(xesx) && var40 != null && Double.valueOf(var40.toString().replaceAll(",", "")).doubleValue() > Double.valueOf(xesx).doubleValue()) {
resultstatus.setCode("9999");
resultstatus.setText("输入金额超过金额上限【" + Double.valueOf(xesx) + "】");
map.put("resultstatus", resultstatus);
return resultstatus;
}
}
}
}
return resultstatus;
}
}
} catch (Exception var33) {
var33.printStackTrace();
resultstatus.setCode("9999");
resultstatus.setText("系统异常,请稍后!");
return resultstatus;
}
}
public ResultStatus doCallZhfwJavaYwcl(String tranxml, String sproc, String appid, String trancode, Map filemap) {
new HashMap();
new HashMap();
new ResponseEntity();
String method = "";
String sjy = "";
ResultStatus resultstatus = new ResultStatus("0", "");
try {
Map map = XmlUtil.xml2map(tranxml, false);
Map headmap = (Map)map.get("head");
if(headmap.get("sjjk_dyjk") == null) {
method = map.get("sjjk_dyjk").toString();
} else {
method = headmap.get("sjjk_dyjk").toString();
}
if(headmap.get("sjjk_dyjk") == null) {
sjy = map.get("sjjk_sjy").toString();
} else {
sjy = headmap.get("sjjk_sjy").toString();
}
String[] e = method.split("\\.");
Object paramslist = new ArrayList();
if(!(map.get("list") == null?"":map.get("list").toString()).equals("")) {
Map paramsmap = (Map)map.get("list");
if(paramsmap.get("array") instanceof LinkedHashMap) {
((List)paramslist).add((Map)paramsmap.get("array"));
} else if(paramsmap.get("array") instanceof List) {
paramslist = (List)paramsmap.get("array");
}
}
HashMap paramsmap1 = new HashMap();
paramsmap1.put("params", headmap);
paramsmap1.put("paramslist", paramslist);
paramsmap1.put("sjy", sjy);
if(filemap != null) {
paramsmap1.putAll(filemap);
}
if(headmap.get("transcode") != null) {
paramsmap1.put("transcode", headmap.get("transcode").toString());
headmap.remove("transcode");
}
ResponseEntity responseEntity = (ResponseEntity)ClassUtilsEx.invokeMethod(e[0], e[1], paramsmap1);
resultstatus.setDataset(responseEntity.getData());
resultstatus.setMsg(responseEntity.getData() == null?"":(responseEntity.getTotal() == 0?String.valueOf(responseEntity.getData().size()):String.valueOf(responseEntity.getTotal())));
resultstatus.setText(responseEntity.getMsg());
int retcode = responseEntity.getCode();
if(retcode > -1) {
resultstatus.setCode("0001");
} else {
resultstatus.setCode("9999");
}
resultstatus.setHeadMap(responseEntity.getHeadMap());
resultstatus.setFileMap(responseEntity.getFileMap());
} catch (Exception var16) {
var16.printStackTrace();
resultstatus.setCode("-1");
resultstatus.setText("查询异常,请稍后再试!");
}
return resultstatus;
}
private ResultStatus invoke_wxsb(String paramXml) {
this.logger.info("发送社保查询报文>>>>报文内容---" + paramXml);
String taskResult = null;
String sMethedName = null;
ResultStatus resultStatus = new ResultStatus();
sMethedName = "getInfoForGJJ";
this.wxsbAxisClient.setEndpoint(DqdPropertyConstants.getProperty("wxsb_url", "null"));
this.wxsbAxisClient.setOperationName(sMethedName);
StringBuffer sb = new StringBuffer();
sb.append("
");
taskResult = this.wxsbAxisClient.invoke_wxsb(paramXml);
this.logger.info("无锡社保查询报文收到返回信息>>>>>>" + taskResult);
String responseXml = StringUtils.substringBetween(taskResult, "", "");
responseXml = "" + responseXml + "";
if(responseXml.indexOf("errmsg") > 0 && responseXml.indexOf("code") > 0) {
resultStatus.setCode("9001");
resultStatus.setText("");
} else {
Document retCount = XmlUtils.fromXML(taskResult, false);
NodeList sRyzt = retCount.getElementsByTagName("row");
if(sRyzt.getLength() > 1) {
resultStatus.setCode("9002");
resultStatus.setText("");
} else if(sRyzt.getLength() < 1) {
resultStatus.setCode("9001");
resultStatus.setText("没有找到记录");
} else {
Element element = (Element)sRyzt.item(0);
String sRyzt1 = element.getAttribute("aac008");
if(sRyzt1.equals("退休")) {
resultStatus.setCode("0001");
resultStatus.setText(sRyzt1);
} else {
resultStatus.setCode("9999");
resultStatus.setText(sRyzt1);
}
}
}
if(!resultStatus.equals("0001") && !resultStatus.equals("9999") && !resultStatus.equals("9002")) {
this.wxsbAxisClient.setEndpoint(DqdPropertyConstants.getProperty("yxsb_url", "null"));
sMethedName = "GETCBZGXX";
this.wxsbAxisClient.setOperationName(sMethedName);
taskResult = this.wxsbAxisClient.invoke_yxsb(paramXml);
this.logger.info("宜兴社保查询报文收到返回信息>>>>>>" + taskResult);
responseXml = StringUtils.substringBetween(taskResult, "", "");
responseXml = "" + responseXml + "";
if(responseXml.indexOf("errmsg") > 0 && responseXml.indexOf("code") > 0) {
resultStatus.setCode("9001");
resultStatus.setText(StringUtils.substringBetween(taskResult, "", ""));
} else {
int retCount1 = Integer.valueOf(StringUtils.substringBetween(taskResult, "", "")).intValue();
if(retCount1 > 1) {
resultStatus.setCode("9002");
resultStatus.setText("");
} else if(retCount1 < 1) {
resultStatus.setCode("9001");
resultStatus.setText("没有找到记录");
} else {
String sRyzt2 = StringUtils.substringBetween(taskResult, "", "");
if(sRyzt2.equals("退休")) {
resultStatus.setCode("0001");
resultStatus.setText(sRyzt2);
} else {
resultStatus.setCode("9999");
resultStatus.setText(sRyzt2);
}
}
}
return resultStatus;
} else {
return resultStatus;
}
}
}