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

📄 cmccmm7recvservlet.java

📁 彩信接入系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
					}
				} else {
					// 多媒体是单个多媒体元素
					//System.out.println("Has Single MMS Content");

					if (c.getContentType().getPrimaryType().compareTo("") != 0) {
						String mimeType = c.getContentType().getPrimaryType() + "/" +
							c.getContentType().getSubType();
						
						MimeContent contentElement = new MimeContent();
						
						// 按照文本格式保存
						if (QueryMimeContentSaveStrategy.getSaveStrategy(mimeType, sess) == 1) {
							contentElement.setCharacterContent(c.getContentAsString());
							contentElement.setBinaryContent(null);
						} else { // 按照二进制格式保存
							contentElement.setBinaryContent(c.getContent());
							contentElement.setCharacterContent(null);
						}
						
						contentElement.setCreateTime(new Date());
						contentElement.setMimeContentName(c.getContentID());
						contentElement.setMimeType(mimeType);

						// 保存该多媒体元素						
						Integer contentId = (Integer)sess.save(contentElement);
						
						//System.out.println("Deliver MMS Content Element ID: " + contentId);
						log.debug("Deliver MMS Content Element ID: " + contentId);
						
						// 将该多媒体元素加入到彩信内容体中
						mmsContent.getMmsContentElments().add(contentElement);
					}
				}

				//System.out.println(mmsContent.toString());

				// 保存彩信内容体
				sess.save(mmsContent);
			}

			deliverMsg.setContent(mmsContent);

			// 保存Deliver消息
			deliverID = ((Integer) sess.save(deliverMsg)).intValue();
			tx.commit();
			
			System.out.println(deliverMsg.toString());

		} catch (Exception e) {
			e.printStackTrace();
			deliverID = 0;
			//HibernateUtil.closeSession();
		}
		finally{
			HibernateUtil.closeSession();
		}

		// 执行数据路由
		Connection con = null;
		CallableStatement state = null;

		if (deliverID != 0){
			
			try {
				sess = HibernateUtil.currentSession();
				con = sess.connection();
				Transaction tx1 = sess.beginTransaction();
				log.debug("调用存储过程: MMS_PSysDeliverRouter");
				state = con.prepareCall("{call MMS_PSysDeliverRouter (?)}");
				state.setInt(1, deliverID);
				state.execute();
				tx1.commit();
				state.close();
	
			} catch (Exception e2) {
				e2.printStackTrace();
			} finally {
				try {
					if (state != null) {
						state.close();
					}
	
				} catch (SQLException e1) {
					e1.printStackTrace();
				}
				
				// 关闭会话
				HibernateUtil.closeSession();
			}
		}
		else{
			// 关闭会话
			HibernateUtil.closeSession();
		}		
	}

	/**
	 * 处理到VASP的Submit报告
	 * 
	 * @param mm7DeliveryReportReq
	 *            收到的状态报告
	 */
	public MM7VASPRes doDeliveryReport(MM7DeliveryReportReq mm7DeliveryReportReq) {

		// 累加统计计数器
		RecverStaticInfo.getInstance().addReportNum();
		
		// 将收到的SubmitReport消息在界面上打印出来
		StringBuffer buffer = new StringBuffer();
		buffer.append("-----收到SubmitReport消息-----\n");
		buffer.append("recvTime: " + TimeOperate.getNowTime() + "\n");
		buffer.append("srcNum: " + mm7DeliveryReportReq.getSender() + "\n");
		buffer.append("transactionID: "
				+ mm7DeliveryReportReq.getTransactionID() + "\n");
		buffer.append("messageID: " + mm7DeliveryReportReq.getMessageID()
				+ "\n");
		buffer.append("gatewayID: " + this.gwGateWayID + "\n");
		buffer.append("dstNum: " + mm7DeliveryReportReq.getRecipient() + "\n");
		buffer.append("mmStatus: " + mm7DeliveryReportReq.getMMStatus() + "\n");
		buffer.append("statusText: " + mm7DeliveryReportReq.getStatusText()
				+ "\n");
		System.out.println(buffer.toString());

		// 记录到接收帐单中
		bill.log(buffer.toString());

		// 组长应答消息
		MM7DeliveryReportRes res = new MM7DeliveryReportRes();
		res.setTransactionID(mm7DeliveryReportReq.getTransactionID());
		res.setStatusCode(1000);

		Session sess = HibernateUtil.currentSession();
		Transaction tx = sess.beginTransaction();
		
		Connection con = sess.connection();
		CallableStatement state = null;

		// 记录状态报告,调用存储过程 MMS_PSysSetDeliverReport
		try {
			log.debug("调用存储过程 MMS_PSysSetDeliverReport");
			state = con.prepareCall("{call MMS_PSysSetDeliverReport (?, ?)}");
			int j = 0;
			state.setString(++j, mm7DeliveryReportReq.getMessageID());
			state.setInt(++j, mm7DeliveryReportReq.getMMStatus());
			state.execute();
			tx.commit();

		} catch (SQLException e) {
			e.printStackTrace();

		} finally {
			try {
				if (state != null) {
					state.close();
				}

			} catch (SQLException e1) {
				e1.printStackTrace();
			}

			HibernateUtil.closeSession();
		}

		return res;
	}

	/**
	 * 处理到VASP的ReadReply
	 * 
	 * @param mm7ReadReplyReq
	 *            收到的状态报告
	 */
	public MM7VASPRes doReadReply(MM7ReadReplyReq mm7ReadReplyReq) {
		
		// 累加统计计数器
		RecverStaticInfo.getInstance().addReadNum();
		
		// 将收到的SubmitReport消息在界面上打印出来
		StringBuffer buffer = new StringBuffer();
		buffer.append("-----收到ReadReply消息-----\n");
		buffer.append("recvTime: " + TimeOperate.getNowTime() + "\n");
		buffer.append("srcNum: " + mm7ReadReplyReq.getSender() + "\n");
		buffer.append("dstNum: " + mm7ReadReplyReq.getRecipient() + "\n");
		buffer.append("transactionID: " + mm7ReadReplyReq.getTransactionID()
				+ "\n");
		buffer.append("messageID: " + mm7ReadReplyReq.getMessageID() + "\n");
		buffer.append("gatewayID: " + this.gwGateWayID + "\n");
		buffer.append("mmStatus: " + mm7ReadReplyReq.getMMStatus() + "\n");
		buffer.append("statusText: " + mm7ReadReplyReq.getStatusText() + "\n");
		System.out.println(buffer.toString());

		// 记录阅读报告到日志中
		bill.log(buffer.toString());

		MM7ReadReplyRes res = new MM7ReadReplyRes();
		res.setTransactionID(mm7ReadReplyReq.getTransactionID());
		res.setStatusCode(1000);

		Session sess = HibernateUtil.currentSession();
		Transaction tx = sess.beginTransaction();
		
		Connection con = sess.connection();
		CallableStatement state = null;

		// 记录状态报告,调用存储过程 MMS_PSysSetDeliverReport
		try {
			log.debug("调用存储过程 MMS_PSysSetReadReport");
			state = con.prepareCall("{call MMS_PSysSetReadReport (?)}");
			int j = 0;
			state.setString(++j, mm7ReadReplyReq.getMessageID());
			state.execute();
			tx.commit();

		} catch (SQLException e) {
			e.printStackTrace();

		} finally {
			try {
				if (state != null) {
					state.close();
				}

			} catch (SQLException e1) {
				e1.printStackTrace();
			}

			HibernateUtil.closeSession();
		}
		
		return res;
	}

	/**
	 * 取出合法的目的号码
	 * 
	 * @param request
	 *            Deliver请求消息
	 * @return 合法的目的号码
	 */
	private String getValidDstNum(MM7DeliverReq request) {

		// 取出合法的目的号码
		String dstNum = null, tmpNum = null;
		for (int i = 0; i < request.getTo().size(); i++) {
			tmpNum = (String) request.getTo().get(i);
			if (tmpNum.indexOf(gwServiceID) == 0) {
				dstNum = tmpNum;
			}
		}

		if (dstNum == null) {
			for (int i = 0; i < request.getCc().size(); i++) {
				tmpNum = (String) request.getCc().get(i);
				if (tmpNum.indexOf(gwServiceID) == 0) {
					dstNum = tmpNum;
				}
			}
		}

		if (dstNum == null) {
			for (int i = 0; i < request.getBcc().size(); i++) {
				tmpNum = (String) request.getBcc().get(i);
				if (tmpNum.indexOf(gwServiceID) == 0) {
					dstNum = tmpNum;
				}
			}
		}

		return dstNum;
	}
}

⌨️ 快捷键说明

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