⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requesthandler.java

📁 采用JAVA开发
💻 JAVA
字号:
package com.gctech.misc.provision.handler;

import java.sql.Connection;
import java.util.Iterator;
import java.util.List;

import javax.xml.soap.Name;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;

import com.gctech.misc.CONSTANTS;
import com.gctech.misc.provision.dao.CyncrecordDAO;
import com.gctech.misc.provision.dao.SubrelationDAO;
import com.gctech.misc.util.Base64Util;
import com.gctech.misc.util.StringUtility;
import com.icss.j2ee.dao.DAOFactory;

/**
 * <p>Title: 处理Provision订购关系同步请求</p>
 * <p>Description:</p>
 * <p>Copyright: Copyright (c) Gctech 2004-7-29</p>
 * <p>Company: 吉芙德资讯有限公司</p>
 *
 * @version 1.0
 * @author liyi
 *
 */
public class RequestHandler {
	public ExchangeData handle(SOAPEnvelope reqEnv, String TransactionID, Connection conn) throws Exception {

		try {
			ExchangeData exchangeData = new ExchangeData();
			//添加
			CyncrecordDAO CyncDao = new CyncrecordDAO();
			SubrelationDAO SubDao = new SubrelationDAO();
			CyncDao.setConnection(conn);
			SubDao.setConnection(conn);
			Base64Util base64util = new Base64Util();

			CyncDao.setTransactionid(TransactionID);
			CyncDao.setTranId(TransactionID);
			SOAPBody reqBody = reqEnv.getBody();
			Name reqName = reqEnv.createName("SyncOrderRelationReq", "dsmp", "http://www.monternet.com/dsmp/schemas/");
			Iterator ite = reqBody.getChildElements(reqName);
			SOAPBodyElement bodyElement = (SOAPBodyElement) ite.next();

			Name MsgType = reqEnv.createName("MsgType");
			ite = bodyElement.getChildElements(MsgType);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();
				System.out.println("MsgType:" + element.getValue());
				CyncDao.setMsgtype(element.getValue());
			}

			Name Version = reqEnv.createName("Version");
			ite = bodyElement.getChildElements(Version);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();
				System.out.println("Version:" + element.getValue());
				CyncDao.setVersion(element.getValue());
			}

			Name Send_Address = reqEnv.createName("Send_Address");
			ite = bodyElement.getChildElements(Send_Address);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();

				Name DeviceType = reqEnv.createName("DeviceType");
				ite = element.getChildElements(DeviceType);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("DeviceType:" + elementChildren.getValue());
					CyncDao.setSendDevicetype(elementChildren.getValue());
				}

				Name DeviceID = reqEnv.createName("DeviceID");
				ite = element.getChildElements(DeviceID);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("DeviceID:" + elementChildren.getValue());
					CyncDao.setSendDeviceid(elementChildren.getValue());
				}
			}

			Name Dest_Address = reqEnv.createName("Dest_Address");
			ite = bodyElement.getChildElements(Dest_Address);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();

				Name DeviceType = reqEnv.createName("DeviceType");
				ite = element.getChildElements(DeviceType);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("DeviceType:" + elementChildren.getValue());
					CyncDao.setDestDevicetype(elementChildren.getValue());
				}

				Name DeviceID = reqEnv.createName("DeviceID");
				ite = element.getChildElements(DeviceID);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("DeviceID:" + elementChildren.getValue());
					CyncDao.setDestDeviceid(elementChildren.getValue());
				}
			}

			Name FeeUser_ID = reqEnv.createName("FeeUser_ID");
			ite = bodyElement.getChildElements(FeeUser_ID);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();

				Name UserIDType = reqEnv.createName("UserIDType");
				ite = element.getChildElements(UserIDType);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("UserIDType:" + elementChildren.getValue());
					CyncDao.setFeeUsertype(elementChildren.getValue());
					SubDao.setFeeterminalType(elementChildren.getValue());
				}

				Name MSISDN = reqEnv.createName("MSISDN");
				ite = element.getChildElements(MSISDN);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("MSISDN:" + elementChildren.getValue());
					CyncDao.setFeeMsisdn(elementChildren.getValue());
					SubDao.setFeeterminalMsisdn(elementChildren.getValue());
					exchangeData.setFeeMSISDN(elementChildren.getValue());
				}

				Name PseudoCode = reqEnv.createName("PseudoCode");
				ite = element.getChildElements(PseudoCode);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("PseudoCode:" + elementChildren.getValue());
					CyncDao.setFeePseudocode(base64util.decode(elementChildren.getValue()));
					SubDao.setFeeterminalPseudocode(base64util.decode(elementChildren.getValue()));
					exchangeData.setFeePseudoCode(elementChildren.getValue());
				}
			}

			Name DestUser_ID = reqEnv.createName("DestUser_ID");
			ite = bodyElement.getChildElements(DestUser_ID);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();

				Name UserIDType = reqEnv.createName("UserIDType");
				ite = element.getChildElements(UserIDType);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("UserIDType:" + elementChildren.getValue());
					CyncDao.setDestUsertype(elementChildren.getValue());
					SubDao.setDestterminalType(elementChildren.getValue());
				}

				Name MSISDN = reqEnv.createName("MSISDN");
				ite = element.getChildElements(MSISDN);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("MSISDN:" + elementChildren.getValue());
					CyncDao.setDestMsisdn(elementChildren.getValue());
					SubDao.setDestterminalMsisdn(elementChildren.getValue());
					exchangeData.setDestMSISDN(elementChildren.getValue());
				}

				Name PseudoCode = reqEnv.createName("PseudoCode");
				ite = element.getChildElements(PseudoCode);
				if (ite.hasNext()) {
					SOAPElement elementChildren = (SOAPElement) ite.next();
					System.out.println("PseudoCode:" + elementChildren.getValue());
					CyncDao.setDestPseudocode(base64util.decode(elementChildren.getValue()));
					SubDao.setDestterminalPseudocode(base64util.decode(elementChildren.getValue()));
					exchangeData.setDestPseudoCode(elementChildren.getValue());
				}
			}

			Name LinkID = reqEnv.createName("LinkID");
			ite = bodyElement.getChildElements(LinkID);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();
				System.out.println("LinkID:" + element.getValue());
				CyncDao.setLindId(element.getValue());
				exchangeData.setLinkID(element.getValue());
			}
			//标识同步关系请求的类型1:定购 2:取消
			String operateType = "";
			Name ActionID = reqEnv.createName("ActionID");
			ite = bodyElement.getChildElements(ActionID);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();
				System.out.println("ActionID:" + element.getValue());
				operateType = element.getValue();
				if (CONSTANTS.START_SERVICE.equals(operateType))
					CyncDao.setActionId(element.getValue());
				exchangeData.setActionID(element.getValue());
			}

			Name ActionReasonID = reqEnv.createName("ActionReasonID");
			ite = bodyElement.getChildElements(ActionReasonID);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();
				System.out.println("ActionReasonID:" + element.getValue());
				CyncDao.setActionreasonId(element.getValue());
			}

			Name SPID = reqEnv.createName("SPID");
			ite = bodyElement.getChildElements(SPID);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();
				System.out.println("SPID:" + element.getValue());
				CyncDao.setSpId(element.getValue());
				SubDao.setSpId(element.getValue());
			}

			Name SPServiceID = reqEnv.createName("SPServiceID");
			ite = bodyElement.getChildElements(SPServiceID);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();
				System.out.println("SPServiceID:" + element.getValue());
				CyncDao.setSpserviceId(element.getValue());
				SubDao.setServiceId(element.getValue());
				exchangeData.setSPServiceID(element.getValue());
			}

			Name AccessMode = reqEnv.createName("AccessMode");
			ite = bodyElement.getChildElements(AccessMode);
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();
				System.out.println("AccessMode:" + element.getValue());
				CyncDao.setAccessmode(element.getValue());
			}

			Name FeatureStr = reqEnv.createName("FeatureStr");
			ite = bodyElement.getChildElements(FeatureStr);
			String[] subCommand = { "" };
			if (ite.hasNext()) {
				SOAPElement element = (SOAPElement) ite.next();
				System.out.println("FeatureStr:" + element.getValue());
				CyncDao.setFeaturestr(base64util.decode(element.getValue()));
				//SubDao.setServiceKey(base64util.decode(element.getValue()));
				System.out.println("FeatureStr:" + base64util.decode(element.getValue()));
				subCommand = StringUtility.split(base64util.decode(element.getValue()), ",");
			}

			Long nowTime = new Long(System.currentTimeMillis());
			//添加定购同步记录
			CyncDao.setGenerateTime(nowTime);
			CyncDao.create();
			//添加订阅记录
			SubDao.setSubdate(nowTime);
			if (!CONSTANTS.END_SERVICE.equals(operateType)) {
				//SubDao.setServiceKey(subCommand[1].substring(0, subCommand[1].length() - 1));
				SubDao.setServiceKey("news");
				DAOFactory factory = new DAOFactory(conn);
				factory.setDAO(SubDao);
				List subList = factory.find();
				Iterator subIte = subList.iterator();
				if (subIte.hasNext()) {
					SubDao = (SubrelationDAO) subIte.next();
					SubDao.setStatus(operateType);
					SubDao.update(true);
				}
			} else if (!CONSTANTS.START_SERVICE.equals(operateType)) {
				if (subCommand.length == 1) {
					SubDao.setServiceKey(subCommand[0]);
				} else if (subCommand.length > 1 && subCommand[1] != null)
					SubDao.setServiceKey(subCommand[1]);
				SubDao.setStatus(CONSTANTS.START_SERVICE);
				SubDao.create();
			}
			return exchangeData;
		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -