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

📄 smssorting.java

📁 关于开发SMS的java工程
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package sms;

import java.util.HashMap;
import java.util.Map;

import common.SMSParametersInfo;

/*
 * 本类负责将6个需要发送的String组合成1~6条短信,返回一个HashMap引用
 * 根据排列组合,共有32种分法
 */

public class SMSSorting {
	 String uid;
	 String model;
	 String ip;
	 String ctrlName;
	 String severity;
	 String evtStr;
	public  Map Segmentation(String uid,
                                   String model,
                                   String ip,
                                   String ctrlName,
                                   String severity,
                                   String evtStr){
//		boolean couldSend=true;
		Map couldnotSendMap=null;
		Map dividHashMap=new HashMap();
		
		this.uid=uid;
		this.model=model;
		this.ip=ip;
		this.ctrlName=ctrlName;
		this.severity=severity;
		this.evtStr=evtStr;
		/*
		 * 利用HashMap来分类保存短信的划分结果,算法规则:
		 * 1、0开头的划分为一条短信,例如01,02,03...,这些key所对应的value组成一个长字符串,归入一条短信
		 * 2、1开头的划分为一条短信,例如11,12,13...,这些key所对应的value组成一个长字符串,归入一条短信
		 * 依次类推,目前算法最多划分为7条,因为还没有找到可以划分一个参数中不同单词的算法
		 */
		if(uid.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
			//uid的长度小于SMS_Parameter_MAXLENGTH,测试是否可以在同一条短信中添加其他的String
			dividHashMap.put("01", uid);
			if((uid.length()+model.length())<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
				//uid和model长度之和小于SMSParametersInfo.SMS_Parameter_MAXLENGTH
				dividHashMap.put("02", model);
				if((uid.length()+model.length()+ip.length())<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
					//uid+model+ip长度之和小于SMSParametersInfo.SMS_Parameter_MAXLENGTH
					dividHashMap.put("03", ip);
					if((uid.length()+model.length()+ip.length()+ctrlName.length())<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
						//uid+model+ip+ctrlName长度之和小于SMSParametersInfo.SMS_Parameter_MAXLENGTH
						dividHashMap.put("04", ctrlName);
						if((uid.length()+model.length()+ip.length()+ctrlName.length()+severity.length())<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							//uid+model+ip+ctrlName+severity长度之和小于SMSParametersInfo.SMS_Parameter_MAXLENGTH
							dividHashMap.put("05", severity);
							if((uid.length()+model.length()+ip.length()+ctrlName.length()+severity.length()+evtStr.length())<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
								//uid+model+ip+ctrlName+severity+evtStr长度之和小于SMSParametersInfo.SMS_Parameter_MAXLENGTH
								dividHashMap.put("06", evtStr);
							}else{
								//uid+model+ip+ctrlName+severity+evtStr长度之和大于SMSParametersInfo.SMS_Parameter_MAXLENGTH
							    //而uid+model+ip+ctrlName+severity长度之和小于SMSParametersInfo.SMS_Parameter_MAXLENGTH								
								if(evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
									dividHashMap.put("11", evtStr);
								}else{
									System.out.println("参数evtStr的长度超出了规定允许的范围");
									return couldnotSendMap;
								}
							}//evtStr相关处理完毕
						}else{
							//uid+model+ip+ctrlName+severity长度之和大于SMSParametersInfo.SMS_Parameter_MAXLENGTH
							//而uid+model+ip+ctrlName长度之和小于SMSParametersInfo.SMS_Parameter_MAXLENGTH
							if(severity.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
									&&evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
								//共2中分法
								if((severity+evtStr).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
									dividHashMap.put("11", severity);
									dividHashMap.put("12", evtStr);
								}else{//千万注意,此处只能有一个分割模式!!!!!!!!!
								  if(severity.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
										&&evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
									dividHashMap.put("11", severity);
									dividHashMap.put("21", evtStr);
								  }
								}
							}else{
								//severity,evtStr中有一个长度大于SMSParametersInfo.SMS_Parameter_MAXLENGTH
							
								if(severity.length()>SMSParametersInfo.SMS_Parameter_MAXLENGTH){
									System.out.println("参数severity的长度超出了规定允许的范围");
									return couldnotSendMap;
								}
								if(evtStr.length()>SMSParametersInfo.SMS_Parameter_MAXLENGTH){
									System.out.println("参数evtStr的长度超出了规定允许的范围");
									return couldnotSendMap;
								}
							}
						}//severity相关处理完毕
					}else{
						//uid+model+ip+ctrlName长度之和大于SMSParametersInfo.SMS_Parameter_MAXLENGTH
						//而uid+model+ip长度之和小于SMSParametersInfo.SMS_Parameter_MAXLENGTH
						if(ctrlName.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&severity.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								){
							//ctrlName,severity,evtStr长度均满足要求
							//进行排列,分别检测ctrlName+severity和severity+evtStr
							//可能的分发有4中
							//1.ctrlName+severity一条,evtStr一条
							//2.ctrlName一条,severity+evtStr一条
							//3.ctrlName一条,severity一条,evtStr一条
							//4.ctrlName severity evtStr一起发送
							if((ctrlName+severity+evtStr).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
								dividHashMap.put("11", ctrlName);
								dividHashMap.put("12", severity);
								dividHashMap.put("13", evtStr);
							}else if((ctrlName+severity).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
									&&evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
								dividHashMap.put("11", ctrlName);
								dividHashMap.put("12", severity);
								dividHashMap.put("21", evtStr);
							}else if((severity+evtStr).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
								dividHashMap.put("11", ctrlName);
								dividHashMap.put("21", severity);
								dividHashMap.put("22", evtStr);
							}else{
								//此else表示以上两个if均不满足,每个参数只能以单独的短信形式发出
								dividHashMap.put("11", ctrlName);
								dividHashMap.put("21", severity);
								dividHashMap.put("31", evtStr);
							}
						}else{
							//检查在ctrlName,severity,evtStr中是那一个参数大于SMSParametersInfo.SMS_Parameter_MAXLENGTH
							if(ctrlName.length()>SMSParametersInfo.SMS_Parameter_MAXLENGTH){
								System.out.println("参数ctrlName的长度超出了规定允许的范围");
							}
							if(severity.length()>SMSParametersInfo.SMS_Parameter_MAXLENGTH){
								System.out.println("参数severity的长度超出了规定允许的范围");
							}
							if(evtStr.length()>SMSParametersInfo.SMS_Parameter_MAXLENGTH){
								System.out.println("参数evtStr的长度超出了规定允许的范围");
							}
							return couldnotSendMap;
						}
					}//ctrlName相关处理完毕
				}else{
					//uid+model+ip长度之和大于SMSParametersInfo.SMS_Parameter_MAXLENGTH
					//而uid+model长度之和小于SMSParametersInfo.SMS_Parameter_MAXLENGTH
					if(ip.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
							&&ctrlName.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
							&&severity.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
							&&evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
							){
						//发送方法有8种
						if((ip+ctrlName+severity+evtStr).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							dividHashMap.put("11", ip);
							dividHashMap.put("12", ctrlName);
							dividHashMap.put("13", severity);
							dividHashMap.put("14", evtStr);
						}else if(ip.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&(ctrlName+severity+evtStr).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							dividHashMap.put("11", ip);
							dividHashMap.put("21", ctrlName);
							dividHashMap.put("22", severity);
							dividHashMap.put("23", evtStr);
						}else if((ip+ctrlName).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&(severity+evtStr).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							dividHashMap.put("11", ip);
							dividHashMap.put("12", ctrlName);
							dividHashMap.put("21", severity);
							dividHashMap.put("22", evtStr);
						}else if((ip+ctrlName+severity).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							dividHashMap.put("11", ip);
							dividHashMap.put("12", ctrlName);
							dividHashMap.put("13", severity);
							dividHashMap.put("21", evtStr);
						}else if(ip.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&ctrlName.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&(severity+evtStr).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							dividHashMap.put("11", ip);
							dividHashMap.put("21", ctrlName);
							dividHashMap.put("31", severity);
							dividHashMap.put("32", evtStr);
						}else if(ip.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&(ctrlName+severity).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							dividHashMap.put("11", ip);
							dividHashMap.put("21", ctrlName);
							dividHashMap.put("22", severity);
							dividHashMap.put("31", evtStr);
						}else if((ip+ctrlName).length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&severity.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							dividHashMap.put("11", ip);
							dividHashMap.put("12", ctrlName);
							dividHashMap.put("21", severity);
							dividHashMap.put("31", evtStr);
						}else if(ip.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&ctrlName.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&severity.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH
								&&evtStr.length()<SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							dividHashMap.put("11", ip);
							dividHashMap.put("21", ctrlName);
							dividHashMap.put("31", severity);
							dividHashMap.put("41", evtStr);
						}
					}else{
						//检查在ip,ctrlName,severity,evtStr中是那一个参数大于SMSParametersInfo.SMS_Parameter_MAXLENGTH
						if(ip.length()>SMSParametersInfo.SMS_Parameter_MAXLENGTH){
							System.out.println("参数ip的长度超出了规定允许的范围");
							return couldnotSendMap;

⌨️ 快捷键说明

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