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