| | |
| | | package com.yeshi.fanli.service.impl.push;
|
| | |
|
| | | import java.io.Serializable;
|
| | | import java.util.List;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.hibernate.HibernateException;
|
| | | import org.hibernate.SQLQuery;
|
| | | import org.hibernate.Session;
|
| | | import org.springframework.orm.hibernate4.HibernateCallback;
|
| | | import org.springframework.stereotype.Service;
|
| | |
|
| | | import com.yeshi.fanli.dao.config.PushRecordDao;
|
| | | import com.yeshi.fanli.dao.mybatis.push.PushRecordMapper;
|
| | | import com.yeshi.fanli.entity.xinge.PushRecord;
|
| | | import com.yeshi.fanli.service.inter.push.PushRecordService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | @Service
|
| | | public class PushRecordServiceImpl implements PushRecordService {
|
| | |
|
| | | @Resource
|
| | | private PushRecordDao dao;
|
| | | private PushRecordMapper pushRecordMapper;
|
| | |
|
| | | public void save(PushRecord pushRecord) {
|
| | | pushRecord.setCreatetime(System.currentTimeMillis());
|
| | | dao.save(pushRecord);
|
| | |
|
| | | public List<PushRecord> getPushRecordList(long start, int pageSize,String key, int type) {
|
| | | return pushRecordMapper.listQuery(start, pageSize, key, type);
|
| | | }
|
| | |
|
| | | public List<PushRecord> getPushRecordList(String title, int type, int page) {
|
| | | int start = (page-1) * Constant.PAGE_SIZE;
|
| | | StringBuffer hqlBuf=new StringBuffer("from PushRecord pr where 1=1 ");
|
| | | |
| | | if(title !=null && !"".equals(title.trim())){
|
| | | hqlBuf.append(" and (pr.title like ? )");
|
| | | }
|
| | | if(type != 0){
|
| | | hqlBuf.append(" and (pr.type = ? )");
|
| | | }
|
| | | hqlBuf.append(" order by pr.id desc ");
|
| | | String hql = hqlBuf.toString();
|
| | | if(hql.contains("pr.title") && hql.contains("pr.type")){
|
| | | return dao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[]{"%"+title+"%",type});
|
| | | }else if(hql.contains("pr.title") && !hql.contains("pr.type")){
|
| | | return dao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[]{"%"+title+"%"});
|
| | | }else if(!hql.contains("pr.title") && hql.contains("pr.type")){
|
| | | return dao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[]{type});
|
| | | }else{
|
| | | return dao.list(hqlBuf.toString(), start, Constant.PAGE_SIZE, new Serializable[]{});
|
| | | }
|
| | | |
| | | public Long getCount(String title, int type) {
|
| | | return pushRecordMapper.countQuery(title, type);
|
| | | }
|
| | |
|
| | | public int getCount(String title, int type, int page) {
|
| | | |
| | | StringBuffer hqlBuf=new StringBuffer("select count(*) from PushRecord pr where 1=1 ");
|
| | | |
| | | if(title !=null && !"".equals(title.trim())){
|
| | | hqlBuf.append(" and (pr.title like ? )");
|
| | | }
|
| | | if(type != 0){
|
| | | hqlBuf.append(" and (pr.type = ? )");
|
| | | }
|
| | | String hql = hqlBuf.toString();
|
| | | if(hql.contains("pr.title") && hql.contains("pr.type")){
|
| | | return (int) dao.getCount(hqlBuf.toString(), new Serializable[]{"%"+title+"%",type});
|
| | | }else if(hql.contains("pr.title") && !hql.contains("pr.type")){
|
| | | return (int) dao.getCount(hqlBuf.toString(),new Serializable[]{"%"+title+"%"});
|
| | | }else if(!hql.contains("pr.title") && hql.contains("pr.type")){
|
| | | return (int) dao.getCount(hqlBuf.toString(),new Serializable[]{type});
|
| | | }else{
|
| | | return (int) dao.getCount(hqlBuf.toString(),new Serializable[]{});
|
| | | }
|
| | | }
|
| | |
|
| | | public void increaseByAndroid(final String pushId) {
|
| | | final String sql="update yeshi_ec_push_record pr set pr.count=pr.count+1 where pr.androidPushId = ? ";
|
| | | dao.excute(new HibernateCallback() {
|
| | | public Object doInHibernate(Session session)
|
| | | throws HibernateException {
|
| | | SQLQuery query = session.createSQLQuery(sql);
|
| | | query.setParameter(0, pushId);
|
| | | return query.executeUpdate();
|
| | | public void increaseByAndroid(String pushId) {
|
| | | PushRecord pushRecord = pushRecordMapper.getByAndroidPushId(pushId);
|
| | | if (pushRecord != null) {
|
| | | Long count = pushRecord.getCount();
|
| | | if(count == null) {
|
| | | pushRecord.setCount(1L);
|
| | | } else {
|
| | | pushRecord.setCount(count + 1);
|
| | | }
|
| | | });
|
| | | pushRecordMapper.updateByPrimaryKeySelective(pushRecord);
|
| | | }
|
| | | }
|
| | |
|
| | | public void increaseByIOS(final String pushId) {
|
| | | final String sql="update yeshi_ec_push_record pr set pr.count=pr.count+1 where pr.iosPushId = ? ";
|
| | | dao.excute(new HibernateCallback() {
|
| | | public Object doInHibernate(Session session)
|
| | | throws HibernateException {
|
| | | SQLQuery query = session.createSQLQuery(sql);
|
| | | query.setParameter(0, pushId);
|
| | | return query.executeUpdate();
|
| | | public void increaseByIOS(String pushId) {
|
| | | PushRecord pushRecord = pushRecordMapper.getByIosPushId(pushId);
|
| | | if (pushRecord != null) {
|
| | | Long count = pushRecord.getCount();
|
| | | if(count == null) {
|
| | | pushRecord.setCount(1L);
|
| | | } else {
|
| | | pushRecord.setCount(count + 1);
|
| | | }
|
| | | });
|
| | | pushRecordMapper.updateByPrimaryKeySelective(pushRecord);
|
| | | }
|
| | | }
|
| | | }
|