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

📄 smsdaoimpl.java

📁 短信发送
💻 JAVA
字号:
package com.jdev.sms.dao;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.jdev.sms.model.Callee;
import com.jdev.sms.model.Sms;
import com.jdev.sms.model.SmsResponse;
import com.jdev.util.HibernateSessionFactoryHelper;


/**
 * 短信Dao实现
 * 
 * Author: Lin.Jin
 * CrateDate: 2008-7-2 下午03:41:45
 * Copyright(C) 2008 北京合智创展科技责任有限公司
 *
 */
public class SMSDaoImpl extends HibernateDaoSupport implements SMSDao {
	private static Log log = LogFactory.getLog(SMSDaoImpl.class);
	
	public List getNowSendSms() {
		String hql = "from Sms s where (s.send is null or s.send=? or s.send=?) and (s.speed = ?) and ((s.sendTime - s.recordTime) between 0 and 0.125))";
		log.info(hql);
		
		return getSession().createQuery(hql)
								.setParameter(0, Sms.SEND_TYPE_UNSEND)
								.setParameter(1, Sms.SEND_TYPE_WORKING)
								.setParameter(2, Sms.SEND_SPEED_NOW)
								.list();		
	}

	public void updateCalleeState(int smsId, String mobile) {		
		Session session = HibernateSessionFactoryHelper.getCurrentSession();
		try {
			session.beginTransaction();
			String hql = "update Callee c set c.status=? where (c.sms.id=?) and (c.mobile=?)";
			
			session.createQuery(hql)
						.setParameter(0, Callee.CALLEE_SEND_SUCCESS)
						.setParameter(1, smsId)
						.setParameter(2, mobile)
						.executeUpdate();

			session.getTransaction().commit();
		} catch (HibernateException e) {
			session.getTransaction().rollback();
			e.printStackTrace();
		}
	}
	
	public Callee getCallee(String mobile, int smsId) {
		String hql = "from Callee c where c.mobile.id=? and c.sms.id=?";
		
		return  (Callee)getSession().createQuery(hql)
										.setParameter(0, mobile)
										.setParameter(1, smsId)
										.uniqueResult();
	}
	
	public void addCallBackSms(SmsResponse smsBack) {
		Session session = HibernateSessionFactoryHelper.getCurrentSession();
		try {
			session.beginTransaction();		
			session.save(smsBack);
			session.getTransaction().commit();
		} catch (HibernateException e) {
			session.getTransaction().rollback();
			e.printStackTrace();
		}
	}

	public void updateSmsState(int smsId, String send) {
		Sms sms = getSms(smsId);		
		sms.setSend(send);
		getHibernateTemplate().update(sms);
	}

	public List getSomeTimeSendSms() {
		String hql = "from Sms s where (s.send is null or s.send=? or s.send=?) and (s.speed=?) and ((s.sendTime - s.recordTime) > 0))";
		
		return getSession().createQuery(hql)
								.setParameter(0, Sms.SEND_TYPE_UNSEND)
								.setParameter(1, Sms.SEND_TYPE_WORKING)
								.setParameter(2, Sms.SEND_SPEED_SOMETIME)
								.list();		
	}

	public void updateSmsSpeed(int smsId, String speed) {
		Sms sms = getSms(smsId);		
		sms.setSpeed(speed);
		getHibernateTemplate().update(sms);		
	}

	public Sms getSms(int smsId) {		
		return (Sms)getHibernateTemplate().load(Sms.class, smsId);
	}

	public List getFailSendSms() {
		String hql = "from Sms s where (s.send is null or s.send=? or s.send=?) and (s.speed = ?) and ((s.sendTime - s.recordTime) > 0))";
		
		return getSession().createQuery(hql)
								.setParameter(0, Sms.SEND_TYPE_UNSEND)
								.setParameter(1, Sms.SEND_TYPE_WORKING)
								.setParameter(2, Sms.SEND_SPEED_WORKING)
								.list();	
	}

	public void recoverFailSms() {
		String hql = "update Sms s set s.speed=? where (s.send is null or s.send=? or s.send=?) and (s.speed = ?) and ((s.sendTime - s.recordTime) > 0))";
		
		getSession().createQuery(hql)
					.setParameter(0, Sms.SEND_SPEED_SOMETIME)
					.setParameter(1, Sms.SEND_TYPE_UNSEND)
					.setParameter(2, Sms.SEND_TYPE_WORKING)
					.setParameter(3, Sms.SEND_SPEED_WORKING)
					.executeUpdate();
	}

	public void updateSms(int smsId, String send, String speed) {
		Sms sms = getSms(smsId);		
		sms.setSend(send);
		sms.setSpeed(speed);
		getHibernateTemplate().update(sms);		
	}
}

⌨️ 快捷键说明

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