📄 deliverchannel.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 + -