YxyMailNumCountServiceImpl.java 5.7 KB
package com.espeed.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.espeed.dao.YxyLinkInfoDao;
import com.espeed.dao.YxyMailNumCountDao;
import com.espeed.dao.YxyReadingInfoDao;
import com.espeed.dao.YxyReplyInfoDao;
import com.espeed.dao.YxySendMailMasterBaseDao;
import com.espeed.dao.YxyUnsubscribeInfoDao;
import com.espeed.pojo.YxyLinkInfo;
import com.espeed.pojo.YxyMailNumCount;
import com.espeed.pojo.YxyReadingInfo;
import com.espeed.pojo.YxyReplyInfo;
import com.espeed.pojo.YxySendMailMasterBase;
import com.espeed.pojo.YxyUnsubscribeInfo;
import com.espeed.service.YxyMailNumCountService;


public class YxyMailNumCountServiceImpl implements YxyMailNumCountService {
	
	/**获取邮件对应的统计数据*/
	public YxyMailNumCount getNumCountByUid(String mail_uid)throws Exception{
		YxyMailNumCount count = new YxyMailNumCount();
		count.setMail_uid(mail_uid);
		if(null!=mail_uid && !"".equals(mail_uid)){
			String hql = "from YxyMailNumCount where mail_uid = '"+mail_uid+"'";
			List<YxyMailNumCount> counts = yxymailnumcountdao.findByHql(hql);
			if(counts.size() > 0){
				count = counts.get(0);
			}
		}
		return count;
	}
	
	/**获取阅读总数列表数据*/
	public List<YxyReadingInfo> getReadingInfoList(String mail_uid,int nums)throws Exception{
		if(nums == 0){
			return new ArrayList<YxyReadingInfo>();
		}
		String hql = "from YxyReadingInfo where yxy_reading_mailuid = '"+mail_uid+"' order by yxy_reading_date desc";
		return yxyreadinginfodao.findByHqlSet(hql, nums);
	}
	
	/**获取阅读人数列表数据*/
	public Map<String,Integer> getReadingPersonList(String mail_uid,int nums)throws Exception{
		Map<String,Integer> map = new HashMap<String,Integer>();
		if(nums == 0){
			return map;
		}
		String hql = "from YxyReadingInfo where yxy_reading_mailuid = '"+mail_uid+"' order by yxy_reading_date desc";
		List<YxyReadingInfo> reads = yxyreadinginfodao.findByHqlSet(hql, nums);
		for(YxyReadingInfo read : reads){
			if(map.containsKey(read.getYxy_reading_email())){
				map.put(read.getYxy_reading_email(), map.get(read.getYxy_reading_email())+1);
			}else{
				map.put(read.getYxy_reading_email(), 1);
			}
		}
		return map;
	}
	
	/**获取回复列表数据*/
	public List<YxyReplyInfo> getReplyInfoList(String mail_uid,int nums)throws Exception{
		if(nums == 0){
			return new ArrayList<YxyReplyInfo>();
		}
		String hql = "from YxyReplyInfo where mailuid = '"+mail_uid+"' order by replydate desc";
		return yxyreplyinfodao.findByHqlSet(hql, nums);
	}
	
	/**获取退订列表数据*/
	public List<YxyUnsubscribeInfo> getUnsubInfoList(String mail_uid,int nums)throws Exception{
		if(nums == 0){
			return new ArrayList<YxyUnsubscribeInfo>();
		}
		String hql = "from YxyUnsubscribeInfo where unsubscribe_issys = 0 and unsubscribe_mail_uid = '"+mail_uid+"' order by unsubscribe_date desc";
		return yxyunsubscribeinfodao.findByHqlSet(hql, nums);
	}
	
	/**获取打开链接人数列表数据*/
	public Map<String,Integer> getLinkPersonList(String mail_uid,int nums)throws Exception{
		Map<String,Integer> map = new HashMap<String,Integer>();
		if(nums == 0){
			return map;
		}
		String hql = "from YxyLinkInfo where mail_uid = '"+mail_uid+"' order by create_time desc";
		List<YxyLinkInfo> links = yxylinkinfodao.findByHqlSet(hql, nums);
		for(YxyLinkInfo link : links){
			String key = link.getLink_email()+"@espeed@"+link.getLink_url();
			if(map.containsKey(key)){
				map.put(key, map.get(key)+1);
			}else{
				map.put(key, 1);
			}
		}
		return map;
	}
	
	/**获取打开链接总数列表数据*/
	public List<YxyLinkInfo> getLinkInfoList(String mail_uid,int nums)throws Exception{
		if(nums == 0){
			return new ArrayList<YxyLinkInfo>();
		}
		String hql = "from YxyLinkInfo where mail_uid = '"+mail_uid+"' order by create_time desc";
		return yxylinkinfodao.findByHqlSet(hql, nums);
	}
	
	/**获取邮件的所有邮件信息*/
	public List<YxySendMailMasterBase> findAllMailById(int send_mail_id)throws Exception{
		String hql = "from YxySendMailMasterBase where send_mail_id = "+send_mail_id+" or mainid = "+send_mail_id+" order by send_mail_id asc";
		return yxysendmailmasterbasedao.findByHql(hql);
	}
	
	private YxyMailNumCountDao yxymailnumcountdao;
	private YxyReadingInfoDao yxyreadinginfodao;
	private YxyReplyInfoDao yxyreplyinfodao;
	private YxyUnsubscribeInfoDao yxyunsubscribeinfodao;
	private YxyLinkInfoDao yxylinkinfodao;
	private YxySendMailMasterBaseDao yxysendmailmasterbasedao;
	public YxyMailNumCountDao getYxymailnumcountdao() {
		return yxymailnumcountdao;
	}
	public void setYxymailnumcountdao(YxyMailNumCountDao yxymailnumcountdao) {
		this.yxymailnumcountdao = yxymailnumcountdao;
	}
	public YxyReadingInfoDao getYxyreadinginfodao() {
		return yxyreadinginfodao;
	}
	public void setYxyreadinginfodao(YxyReadingInfoDao yxyreadinginfodao) {
		this.yxyreadinginfodao = yxyreadinginfodao;
	}
	public YxyReplyInfoDao getYxyreplyinfodao() {
		return yxyreplyinfodao;
	}
	public void setYxyreplyinfodao(YxyReplyInfoDao yxyreplyinfodao) {
		this.yxyreplyinfodao = yxyreplyinfodao;
	}
	public YxyUnsubscribeInfoDao getYxyunsubscribeinfodao() {
		return yxyunsubscribeinfodao;
	}
	public void setYxyunsubscribeinfodao(YxyUnsubscribeInfoDao yxyunsubscribeinfodao) {
		this.yxyunsubscribeinfodao = yxyunsubscribeinfodao;
	}
	public YxyLinkInfoDao getYxylinkinfodao() {
		return yxylinkinfodao;
	}
	public void setYxylinkinfodao(YxyLinkInfoDao yxylinkinfodao) {
		this.yxylinkinfodao = yxylinkinfodao;
	}
	public YxySendMailMasterBaseDao getYxysendmailmasterbasedao() {
		return yxysendmailmasterbasedao;
	}
	public void setYxysendmailmasterbasedao(
			YxySendMailMasterBaseDao yxysendmailmasterbasedao) {
		this.yxysendmailmasterbasedao = yxysendmailmasterbasedao;
	}
}