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

📄 deliverchannel.java

📁 短信开发用于文件交换处理转发的类模块
💻 JAVA
字号:
package com.sms.platform.switchcenter.entity;

import java.util.*;

import org.jdom.Element;

import com.pub.util.ReaderXml;
import com.sms.protocol.standard12.Standard_Inner_Deliver;

public class DeliverChannel implements Comparator {

	public static final int COMPARE_SUCCESS = 0;

	public static final int COMPARE_FAIL_GWID = -1;

	public static final int COMPARE_FAIL_LONGCODE = -2;

	public static final int COMPARE_FAIL_KEYWORD = -3;

	private int NUMGWID;

	private int NUMPRODID;

	private String VC2LONGCODE;

	private String VC2LCMATCHDIR;

	private String VC2CMD;

	private String VC2CMDMATCHDIR;

	private int NUMCHNID;

	public int getNUMCHNID() {
		return NUMCHNID;
	}

	public void setNUMCHNID(int NUMCHNID) {
		this.NUMCHNID = NUMCHNID;
	}

	public int getNUMPRODID() {
		return NUMPRODID;
	}

	public void setNUMPRODID(int NUMSVRID) {
		this.NUMPRODID = NUMSVRID;
	}

	public String getVC2CMD() {
		if (VC2CMD == null) {
			VC2CMD = "";
		}
		return VC2CMD;
	}

	public void setVC2CMD(String VC2CMD) {
		this.VC2CMD = VC2CMD;
	}

	public String getVC2CMDMATCHDIR() {
		if (VC2CMDMATCHDIR == null) {
			VC2CMDMATCHDIR = "";
		}

		return VC2CMDMATCHDIR;
	}

	public void setVC2CMDMATCHDIR(String VC2CMDMATCHDIR) {
		this.VC2CMDMATCHDIR = VC2CMDMATCHDIR;
	}

	public String getVC2LCMATCHDIR() {
		if (VC2LCMATCHDIR == null) {
			VC2LCMATCHDIR = "";
		}
		return VC2LCMATCHDIR;
	}

	public void setVC2LCMATCHDIR(String VC2LCMATCHDIR) {
		this.VC2LCMATCHDIR = VC2LCMATCHDIR;
	}

	public String getVC2LONGCODE() {
		if (VC2LONGCODE == null) {
			VC2LONGCODE = "";
		}
		return VC2LONGCODE;
	}

	public void setVC2LONGCODE(String VC2LONGCODE) {
		this.VC2LONGCODE = VC2LONGCODE;
	}

	public DeliverChannel() {
	}

	public static final int COMPARE_FAIL_CHID = -4;

	public int compare(int numgwid, int numprodid, String longcode,
			String keyword) {

		// System.out.println("-------------------------");
		// System.out.println("NUMGWID : " + this.getNUMGWID());
		// System.out.println("NUMSVRID : " + this.getNUMSVRID());
		// System.out.println("VC2LONGCODE : " + this.getVC2LONGCODE());
		// System.out.println("VC2LCMATCHDIR : " + this.getVC2LCMATCHDIR());
		// System.out.println("VC2CMD : " + this.getVC2CMD());
		// System.out.println("VC2CMDMATCHDIR : " + this.getVC2CMDMATCHDIR());
		// System.out.println("NUMCHNID : " + this.getNUMCHNID());

		if (longcode == null) {
			longcode = "";
		}
		if (keyword == null) {
			keyword = "";
		}
		// 网关错误
		if (this.getNUMGWID() != numgwid) {
			return COMPARE_FAIL_CHID;
		}

		// 服务编号错误
		if (this.getNUMPRODID() != numprodid) {
			return COMPARE_FAIL_CHID;
		}
		// 长代码长度错
		if (this.getVC2LONGCODE().length() > longcode.length()) {
			return COMPARE_FAIL_LONGCODE;
		}
		// 关键字长度错
		if (this.getVC2CMD().length() > keyword.length()) {
			return COMPARE_FAIL_KEYWORD;
		}

		if (this.getVC2LCMATCHDIR().equals("0")) { // 长代码精确匹配
			if (this.getVC2LONGCODE().equals(longcode)) { // 长代码精确匹配成功
				if (this.getVC2CMDMATCHDIR().equals("0")) { // 关键字精确匹配
					if (this.getVC2CMD().equalsIgnoreCase(keyword)) { // 关键字精确匹配成功
						return COMPARE_SUCCESS;
					} else { // 关键字精确匹配失败
						return COMPARE_FAIL_KEYWORD;
					}
				} else { // 关键字模糊匹配
					if (this.getVC2CMD().equals("")) { // 关键字模糊匹配成功
						return COMPARE_SUCCESS;
					} else if (keyword.toUpperCase().startsWith(
							this.getVC2CMD())) { // 关键字半模糊匹配成功
						return COMPARE_SUCCESS;
					} else { // 关键字模糊匹配失败
						return COMPARE_FAIL_KEYWORD;
					}
				}

			} else { // 长代码精确匹配失败
				return COMPARE_FAIL_LONGCODE;
			}

		} else { // 长代码模糊匹配

			if (longcode.startsWith(this.getVC2LONGCODE())) { // 长代码半模糊匹配成功

				if (this.getVC2CMDMATCHDIR().equals("0")) { // 关键字精确匹配

					if (this.getVC2CMD().equalsIgnoreCase(keyword)) { // 关键字精确匹配成功
						return COMPARE_SUCCESS;
					} else { // 关键字精确匹配失败
						return COMPARE_FAIL_KEYWORD;
					}

				} else { // 关键字模糊匹配

					if (this.getVC2CMD().equals("")) { // 关键字模糊匹配成功
						return COMPARE_SUCCESS;
					} else if (keyword.toUpperCase().startsWith(
							this.getVC2CMD())) { // 关键字半模糊匹配成功
						return COMPARE_SUCCESS;
					} else { // 关键字模糊匹配失败
						return COMPARE_FAIL_KEYWORD;
					}

				}

			} else {

				if (this.getVC2LONGCODE().equals("")) {
					if (this.getVC2CMDMATCHDIR().equals("0")) { // 关键字精确匹配

						if (this.getVC2CMD().equalsIgnoreCase(keyword)) { // 关键字精确匹配成功
							return COMPARE_SUCCESS;
						} else { // 关键字精确匹配失败
							return COMPARE_FAIL_KEYWORD;
						}

					} else { // 关键字模糊匹配

						if (this.getVC2CMD().equals("")) { // 关键字模糊匹配成功
							return COMPARE_SUCCESS;
						} else if (keyword.toUpperCase().startsWith(
								this.getVC2CMD())) { // 关键字半模糊匹配成功
							return COMPARE_SUCCESS;
						} else { // 关键字模糊匹配失败
							return COMPARE_FAIL_KEYWORD;
						}

					}
				} else {
					return COMPARE_FAIL_LONGCODE;
				}
			}

		}
	}

	public int compare(Object element1, Object element2) {
		DeliverChannel m1 = (DeliverChannel) element1;
		DeliverChannel m2 = (DeliverChannel) element2;

		int m1count = Integer.parseInt(m1.getVC2LCMATCHDIR())
				+ Integer.parseInt(m1.getVC2CMDMATCHDIR());

		int m2count = Integer.parseInt(m2.getVC2LCMATCHDIR())
				+ Integer.parseInt(m2.getVC2CMDMATCHDIR());

		// System.out.println("------------------------------------------");
		// System.out.println(m1);
		// System.out.println(m2);
		// System.out.println("------------------------------------------");
		if (m1count < m2count) {
			return -1;
		} else if (m1count == m2count) {
			;
		} else {
			return 1;
		}

		if (m1.getVC2LONGCODE().length() > m2.getVC2LONGCODE().length()) {
			return -1;
		} else if (m1.getVC2LONGCODE().length() == m2.getVC2LONGCODE().length()) {
			;
		} else {
			return 1;
		}

		if (m1.getVC2CMD().length() > m2.getVC2CMD().length()) {
			return -1;
		} else if (m1.getVC2CMD().length() == m2.getVC2CMD().length()) {
			;
		} else {
			return 1;
		}

		if (Integer.parseInt(m1.getVC2LCMATCHDIR()) < Integer.parseInt(m2
				.getVC2LCMATCHDIR())) {
			return -1;
		} else if (Integer.parseInt(m1.getVC2LCMATCHDIR()) == Integer
				.parseInt(m2.getVC2LCMATCHDIR())) {
			;
		} else {
			return 1;
		}

		if (Integer.parseInt(m1.getVC2CMDMATCHDIR()) < Integer.parseInt(m2
				.getVC2CMDMATCHDIR())) {
			return -1;
		} else if (Integer.parseInt(m1.getVC2CMDMATCHDIR()) == Integer
				.parseInt(m2.getVC2CMDMATCHDIR())) {
			;
		} else {
			return 1;
		}

		return 0;

	}
	
	
    public static int searchChannel(List<DeliverChannel> list,
            Standard_Inner_Deliver sid) {
        int rtn = -1;
        for (DeliverChannel or : list) {
            if (or.compare(sid.getSrcClientID(), sid.getProductID(), sid.getDestNumber(), sid.getContentString()) == 0) {
                sid.setChannelID(or.getNUMCHNID());
                rtn = COMPARE_SUCCESS;
                break;
            }
        }
        return rtn;
    }

	/**
	 * 装载业务路由数据
	 * 
	 * @return List
	 */
	public static List<DeliverChannel> loadDeliverChannel() throws Exception {
		List<DeliverChannel> router = null;
		Element element = null;

		List list = ReaderXml.loadListElement("./memory/ChannelRouter.xml",
				"//sub");
		Iterator it = list.iterator();
		router = new ArrayList<DeliverChannel>();
		DeliverChannel opRouter = new DeliverChannel();

		while (it.hasNext()) {
			element = (Element) it.next();
			opRouter.setNUMGWID(ReaderXml.getChildTextInteger(element,
					"gatewayID", 0));
			opRouter.setNUMPRODID(ReaderXml.getChildTextInteger(element,
					"productID", 0));
			opRouter.setVC2LONGCODE(ReaderXml.getChildTextString(element,
					"longCode", ""));
			opRouter.setVC2CMD(ReaderXml.getChildTextString(element, "keyWord",
					""));
			opRouter.setVC2LCMATCHDIR(ReaderXml.getChildTextString(element,
					"lcCheckFlag", ""));
			opRouter.setVC2CMDMATCHDIR(ReaderXml.getChildTextString(element,
					"kwCheckFlag", ""));
			opRouter.setNUMCHNID(ReaderXml.getChildTextInteger(element,
					"channelID", 0));
			router.add(opRouter);
			opRouter = new DeliverChannel();
		}

		return router;
	}

	// public static List LoadSMS_MO_CHANNELID(Connection conn) throws Exception
	// {
	//
	// List list = new ArrayList();
	// PreparedStatement pstmt = null;
	// ResultSet res = null;
	// String wk_sql = null;
	// wk_sql = "select
	// NUMGWID,NUMSVRID,VC2LONGCODE,VC2LCMATCHDIR,VC2CMD,VC2CMDMATCHDIR,NUMCHNID
	// from RAY_CHANNEL_ROUTER where VC2VALIDFLAG = 'Y'";
	// try {
	// pstmt = conn.prepareStatement(wk_sql);
	// res = pstmt.executeQuery();
	// while (res.next()) {
	// SMS_MO_CHANNELID slc = new SMS_MO_CHANNELID();
	// slc.setNUMGWID(res.getInt("NUMGWID"));
	// slc.setNUMSVRID(res.getInt("NUMSVRID"));
	// slc.setVC2LONGCODE(res.getString("VC2LONGCODE"));
	// slc.setVC2LCMATCHDIR(res.getString("VC2LCMATCHDIR"));
	// slc.setVC2CMD(res.getString("VC2CMD"));
	// slc.setVC2CMDMATCHDIR(res.getString("VC2CMDMATCHDIR"));
	// slc.setNUMCHNID(res.getInt("NUMCHNID"));
	//
	// list.add(slc);
	// }
	// }catch (Exception ex){
	// ex.printStackTrace();
	// }
	//
	// finally {
	// try {
	// if (res != null) {
	// res.close();
	// }
	// } catch (SQLException ex1) {
	// }
	// try {
	// if (pstmt != null)
	// pstmt.close();
	// } catch (SQLException ex) {
	// }
	// }
	// return list;
	// }

	public String toString() {

		StringBuffer sb = new StringBuffer();
		sb.append("NUMGWID : ").append(NUMGWID).append("  ");
		sb.append("NUMPRODID : ").append(NUMPRODID).append("  ");
		sb.append("VC2LONGCODE : ").append(VC2LONGCODE).append("  ");
		sb.append("VC2LCMATCHDIR : ").append(VC2LCMATCHDIR).append("  ");
		sb.append("VC2CMD : ").append(VC2CMD).append("  ");
		sb.append("VC2CMDMATCHDIR : ").append(VC2CMDMATCHDIR).append("  ");
		sb.append("NUMCHNID : ").append(NUMCHNID).append("  ");
		return sb.toString();
	}

	public int getNUMGWID() {
		return NUMGWID;
	}

	public void setNUMGWID(int numgwid) {
		NUMGWID = numgwid;
	}
}

⌨️ 快捷键说明

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