作者 徐宝林

营销邮定时服务SVN转GIT

正在显示 93 个修改的文件 包含 4745 行增加0 行删除

要显示太多修改。

为保证性能只显示 93 of 93+ 个文件。

12
... ...
12
... ...
package yxy.timer.dao;
import java.util.List;
import yxy.timer.pojo.YxyReplyInfo;
/**
*
* @author xieyong
* 回复DAO接口
*/
public interface YxyReplyInfoDao {
/**实体插入*/
public int addPojo(YxyReplyInfo reply)throws Exception;
/**查询指定量数据*/
public List<YxyReplyInfo> findByHqlSet(String hql,int num)throws Exception;
/**统计条数*/
public int count(String hql)throws Exception;
/**根据sql查询*/
public List<Object> findBySql(String sql)throws Exception;
/**hql更新*/
public void updateByHql(String hql)throws Exception;
}
... ...
package yxy.timer.dao.impl;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import yxy.timer.dao.HibernateBaseDAO;
public abstract class SaleHibernateBaseDAOImpl<T extends Serializable ,Pk extends Serializable> extends HibernateDaoSupport
implements HibernateBaseDAO<T, Pk>
{
//------------------------------常用CRUD操作-----------------------------------------
/**增加记录 (返回新增加记录的主键)*/
public int add(T o) throws Exception {
return (Integer) super.getHibernateTemplate().save(o);
}
/**增加记录(无返回�?)*/
public void adddate(T o) throws Exception
{
super.getHibernateTemplate().save(o);
}
/**修改记录*/
public void update(T o) throws Exception {
super.getHibernateTemplate().update(o);
}
/**删除记录*/
public void del(T o) throws Exception {
super.getHibernateTemplate().delete(o);
}
/**添加或更改*/
public void saveOrUpdate(T o) throws Exception {
super.getHibernateTemplate().saveOrUpdate(o);
}
/**根据ID获取�?��数据*/
@SuppressWarnings("unchecked")
public T get(Class<T> t,Pk pk) throws Exception {
return (T) super.getHibernateTemplate().get(t, pk);
}
/**根据ID获取�?��数据*/
@SuppressWarnings("unchecked")
public T load(Class<T> t,Pk pk) throws Exception {
return (T) super.getHibernateTemplate().load(t, pk);
}
/**根据hql进行条件查询*/
@SuppressWarnings("unchecked")
public List<T> getAll(String hql) throws Exception {
return super.getHibernateTemplate().find(hql);
}
/**条件查询*/
@SuppressWarnings("unchecked")
public List<T> getAll(String whereHql, Object... params) throws Exception {
return super.getHibernateTemplate().find(whereHql,params);
}
/**根据条件和参数查询�?记录*/
public int count(String hql, Object... params) throws Exception {
return Integer.valueOf(super.getHibernateTemplate().find(hql,params).get(0).toString());
}
/**根据条件查询总记录*/
public int count(String hql) throws Exception {
List result=super.getHibernateTemplate().find(hql);
if(result.size()>0&&result.get(0)!=null&&!result.get(0).equals("null")){
return Integer.valueOf(result.get(0).toString());
}else{
return 0;
}
//return Integer.valueOf(super.getHibernateTemplate().find(hql).get(0).toString());
}
/**批量插入*/
public void addPi(List<T> o)throws Exception{
Session session =null;
if(o!=null){
session=super.getHibernateTemplate().getSessionFactory().openSession();
session.beginTransaction();
for(int i=0;i<o.size();i++){
session.saveOrUpdate(o.get(i));
if(i%10==0){
session.flush();
session.clear();
}
}
session.getTransaction().commit();
}
session.close();
}
/**Hql语句修改删除记录*/
public int updateorDelByHql(String hql){
Query query = null;
int result=0;
Session session =null;
try {
session=super.getHibernateTemplate().getSessionFactory().openSession();
query = session.createQuery(hql);
result = query.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
session.clear();
session.close();
}
}
return result;
}
/**查询设定的记录条数据*/
public List<T> findBySet(String hql,int num){
Session session = null;
Query query=null;
try {
session=super.getHibernateTemplate().getSessionFactory().openSession();
query = session.createQuery(hql);
query.setMaxResults(num);
return query.list();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
session.clear();
session.close();
}
}
return null;
}
/**sql语句查询*/
public List findBySql(String sql) throws Exception{
Session session=null;
try {
session =super.getHibernateTemplate().getSessionFactory().
openSession();
return session.createSQLQuery(sql).list();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
session.clear();
session.close();
}
}
return null;
}
/**sql语句修改删除记录*/
public int updateorDelSql(String sql){
Query query = null;
int result=0;
Session session =null;
try {
session=super.getHibernateTemplate().getSessionFactory().openSession();
query = session.createSQLQuery(sql);
result = query.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
session.clear();
session.close();
}
}
return result;
}
}
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxyUnsubscribeInfoSaleDao;
import yxy.timer.sale.YxyUnsubscribeInfo;
public class YxyUnsubscribeInfoSaleDaoImpl extends SaleHibernateBaseDAOImpl<YxyUnsubscribeInfo, Long> implements YxyUnsubscribeInfoSaleDao{
/**HQL查询*/
public List<YxyUnsubscribeInfo> findByHql(String hql) throws Exception {
return super.getAll(hql);
}
/**查询指定量数据*/
public List<YxyUnsubscribeInfo> findByHqlSet(String hql,int num)throws Exception{
return super.findBySet(hql, num);
}
/**批量插入退订信息*/
public void insertUnPi(List<YxyUnsubscribeInfo> o) throws Exception {
super.addPi(o);
}
/**sql查询*/
public List<Object> findBySql(String sql) throws Exception
{
return super.findBySql(sql);
}
/**HQL更新*/
public void updateByHql(String hql)throws Exception
{
super.updateorDelByHql(hql);
}
public int insertUn(YxyUnsubscribeInfo o)throws Exception{
return super.add(o);
}
public int findByHqlCount(String hql)throws Exception{
return super.count(hql);
}
}
... ...
package yxy.timer.service.impl;
import java.util.List;
import yxy.timer.dao.YxySendMailMasterDao;
import yxy.timer.pojo.YxySendMailMaster;
import yxy.timer.service.YxySendMailMasterService;
public class YxySendMailMasterServiceImpl implements YxySendMailMasterService{
//查询正在使用的邮件
public List<YxySendMailMaster> findByStatus() throws Exception {
String hql="from YxySendMailMaster where isuse=1";
return yxysendmailmasterdao.findByHql(hql);
}
//批量更新
public void updateMaster(List<YxySendMailMaster> o) throws Exception {
yxysendmailmasterdao.updateByMaster(o);
}
//sql查询
public List<Object> findbysql(String sql)throws Exception{
return yxysendmailmasterdao.findbysql(sql);
}
//sql更新
public void updatebysql(String sql)throws Exception{
yxysendmailmasterdao.updatebysql(sql);
}
private YxySendMailMasterDao yxysendmailmasterdao;//邮件待发dao
public YxySendMailMasterDao getYxysendmailmasterdao() {
return yxysendmailmasterdao;
}
public void setYxysendmailmasterdao(YxySendMailMasterDao yxysendmailmasterdao) {
this.yxysendmailmasterdao = yxysendmailmasterdao;
}
}
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxyReadDao;
import yxy.timer.pojo.YxyReadingInfo;
/*
* 点读DAO实现类
*/
public class YxyReadDaoImpl extends HibernateBaseDAOImpl<YxyReadingInfo, Long> implements YxyReadDao
{
/**HQL查询*/
public List<YxyReadingInfo> findByHql(String hql) throws Exception
{
return super.getAll(hql);
}
/**批量插入*/
public void insertReadPi(List<YxyReadingInfo> o) throws Exception {
super.addPi(o);
}
/**HQL查询指定条数据*/
public List findByHqlNum(String hql) throws Exception
{
return super.findBySet(hql, 1000);
}
/**sql查询*/
public List<Object> findBySql(String sql) throws Exception
{
return super.findBySql(sql);
}
/**sql更新*/
public void updateSql(String sql) throws Exception{
super.updateorDelSql(sql);
}
/**HQL更新*/
public void updateByHql(String hql)throws Exception
{
super.updateorDelByHql(hql);
}
/**批量插入*/
public int insertRead(YxyReadingInfo o)throws Exception{
return super.add(o);
}
public int findByHqlCount(String hql)throws Exception{
return super.count(hql);
}
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>yxyTimerService</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature>
<nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>
... ...
package yxy.timer.method;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import yxy.timer.service.YxyReadService;
import yxy.timer.tool.DBUtil;
import yxy.timer.tool.UserAgentUtil;
import yxy.timer.tool.getArea;
/***
*
* @author 谢勇
* 获取远程退订信息
*/
public class GetUnTimer {
private boolean isRun = false; //判断定时器是否在运行 默认false
private Connection conn;
private ResultSet rs;
private PreparedStatement pst;
/**获取远程退订信息*/
public void getUnTimerMethod(){
try {
if(!isRun)
{
System.out.println("正在从远程获取退订信息...");
isRun = true;//在运行
conn = DBUtil.getConnection("clickdataSource");
String sql = "select yxy_unsubscribe_id,yxy_unsubscribe_loginid,yxy_unsubscribe_domain," +
"yxy_unsubscribe_mail_uid,yxy_unsubscribe_date,yxy_unsubscribe_body," +
"yxy_unsubscribe_email,yxy_unsubscribe_ip,yxy_unsubscribe_agent " +
"from yxy_unsubscribe_info where yxy_unsubscribe_issyn = 0 limit 200";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()){
int yxy_unsubscribe_id = rs.getInt("yxy_unsubscribe_id");
String yxy_unsubscribe_loginid = rs.getString("yxy_unsubscribe_loginid");
String yxy_unsubscribe_domain = rs.getString("yxy_unsubscribe_domain");
String yxy_unsubscribe_mail_uid = rs.getString("yxy_unsubscribe_mail_uid");
String yxy_unsubscribe_date = rs.getString("yxy_unsubscribe_date");
String yxy_unsubscribe_body = rs.getString("yxy_unsubscribe_body");
String yxy_unsubscribe_email = rs.getString("yxy_unsubscribe_email");
String yxy_unsubscribe_ip = rs.getString("yxy_unsubscribe_ip");
String yxy_unsubscribe_agent = rs.getString("yxy_unsubscribe_agent");
if(yxy_unsubscribe_mail_uid!=null&&yxy_unsubscribe_email!=null){
if("sale100.com".equals(yxy_unsubscribe_domain)){//个人版的营销邮
//查询本地库是否存在了
String hql="select count(*) from YxyUnsubscribeInfo where unsubscribe_mail_uid='"+yxy_unsubscribe_mail_uid+"' and unsubscribe_email='"+yxy_unsubscribe_email+"'";
int counts=yxyreadservice.findisRecode2(hql);
if(counts==0){//未同步
yxy.timer.sale.YxyMailNumCountInfo count = yxyreadservice.getYxyMailNumCount2(yxy_unsubscribe_mail_uid);
if(count == null){//添加
count = new yxy.timer.sale.YxyMailNumCountInfo();
count.setId(0);
count.setMail_uid(yxy_unsubscribe_mail_uid);
count.setUnsub_person(1);
}else{//编辑
count.setUnsub_person(count.getUnsub_person()+1);
}
//获取ip所属地区
String area = "未知";
if(yxy_unsubscribe_ip!=null&&!"".equals(yxy_unsubscribe_ip)&&!"unknown".equals(yxy_unsubscribe_ip)){
area = getArea.getArea(yxy_unsubscribe_ip);
}
yxy.timer.sale.YxyUnsubscribeInfo unsub = new yxy.timer.sale.YxyUnsubscribeInfo();
unsub.setUnsubscribe_loginid(yxy_unsubscribe_loginid);
unsub.setUnsubscribe_domain(yxy_unsubscribe_domain);
unsub.setUnsubscribe_mail_uid(yxy_unsubscribe_mail_uid);
unsub.setUnsubscribe_date(yxy_unsubscribe_date);
unsub.setUnsubscribe_body(yxy_unsubscribe_body);
unsub.setUnsubscribe_email(yxy_unsubscribe_email);
unsub.setIp(yxy_unsubscribe_ip);
unsub.setArea(area);
unsub.setUser_agent(yxy_unsubscribe_agent);
unsub.setUser_agent_info(UserAgentUtil.parseUserAgent(yxy_unsubscribe_agent));
String yxy_unsubscribe_date2 = yxy_unsubscribe_date.split(" ")[0];
int unsubscribe_year = Integer.parseInt(yxy_unsubscribe_date2.split("-")[0]);
int unsubscribe_month = Integer.parseInt(yxy_unsubscribe_date2.split("-")[1]);
int unsubscribe_day = Integer.parseInt(yxy_unsubscribe_date2.split("-")[2]);
unsub.setUnsubscribe_year(unsubscribe_year);
unsub.setUnsubscribe_month(unsubscribe_month);
unsub.setUnsubscribe_day(unsubscribe_day);
//添加退订信息
yxyreadservice.insertUn2(unsub);
//添加邮件对应的数量统计
yxyreadservice.addEditYxyMailNumCount2(count);
}
}else{//自己的营销邮
//查询本地库是否存在了
String hql="select count(*) from YxyUnsubscribeInfo where unsubscribe_mail_uid='"+yxy_unsubscribe_mail_uid+"' and unsubscribe_email='"+yxy_unsubscribe_email+"'";
int counts=yxyreadservice.findisRecode(hql);
if(counts==0){//未同步
yxy.timer.pojo.YxyMailNumCount count = yxyreadservice.getYxyMailNumCount(yxy_unsubscribe_mail_uid);
if(count == null){//添加
count = new yxy.timer.pojo.YxyMailNumCount();
count.setId(0);
count.setMail_uid(yxy_unsubscribe_mail_uid);
count.setUnsub_person(1);
}else{//编辑
count.setUnsub_person(count.getUnsub_person()+1);
}
//获取ip所属地区
String area = "未知";
if(yxy_unsubscribe_ip!=null&&!"".equals(yxy_unsubscribe_ip)&&!"unknown".equals(yxy_unsubscribe_ip)){
area = getArea.getArea(yxy_unsubscribe_ip);
}
yxy.timer.pojo.YxyUnsubscribeInfo unsub = new yxy.timer.pojo.YxyUnsubscribeInfo();
unsub.setUnsubscribe_loginid(yxy_unsubscribe_loginid);
unsub.setUnsubscribe_domain(yxy_unsubscribe_domain);
unsub.setUnsubscribe_mail_uid(yxy_unsubscribe_mail_uid);
unsub.setUnsubscribe_date(yxy_unsubscribe_date);
unsub.setUnsubscribe_body(yxy_unsubscribe_body);
unsub.setUnsubscribe_email(yxy_unsubscribe_email);
unsub.setIp(yxy_unsubscribe_ip);
unsub.setArea(area);
unsub.setUser_agent(yxy_unsubscribe_agent);
unsub.setUser_agent_info(UserAgentUtil.parseUserAgent(yxy_unsubscribe_agent));
String yxy_unsubscribe_date2 = yxy_unsubscribe_date.split(" ")[0];
int unsubscribe_year = Integer.parseInt(yxy_unsubscribe_date2.split("-")[0]);
int unsubscribe_month = Integer.parseInt(yxy_unsubscribe_date2.split("-")[1]);
int unsubscribe_day = Integer.parseInt(yxy_unsubscribe_date2.split("-")[2]);
unsub.setUnsubscribe_year(unsubscribe_year);
unsub.setUnsubscribe_month(unsubscribe_month);
unsub.setUnsubscribe_day(unsubscribe_day);
//添加退订信息
yxyreadservice.insertUn(unsub);
//添加邮件对应的数量统计
yxyreadservice.addEditYxyMailNumCount(count);
}
}
}
//更新远程
conn.setAutoCommit(false);
String updatesql="update yxy_unsubscribe_info set yxy_unsubscribe_issyn=1 where yxy_unsubscribe_id="+yxy_unsubscribe_id;
pst = conn.prepareStatement(updatesql);
pst.executeUpdate();
conn.commit();
System.out.println("邮件退订量处理中...");
}
}
System.out.println("正常结束从远程获取退订信息");
} catch (Exception e) {
e.printStackTrace();
System.out.println("异常从远处获取退订信息");
}finally{
DBUtil.close(rs, pst, conn);
isRun = false;//更改状态为非执行
}
}
private YxyReadService yxyreadservice;//点读service
public YxyReadService getYxyreadservice() {
return yxyreadservice;
}
public void setYxyreadservice(YxyReadService yxyreadservice) {
this.yxyreadservice = yxyreadservice;
}
}
... ...
package yxy.timer.service;
import java.util.List;
import java.util.Map;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 控制参数Service(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
public interface YxySysParamaterService {
/**通过级别查询控制参数*/
public Map<String,String> findParamaterByLevel(int level,String loginid,String domain)throws Exception;
/**通过code查询控制参数,如果用户参数不存在则查企业控制参数,企业控制参数不存在则查询企业默认参数(用户级)*/
public String findUserParamValue(String loginid,String domain,String usercode,String syscode)throws Exception;
/**查询用户总分配量*/
public int findTolFenPeiCount(String loginid,String domain)throws Exception;
}
... ...
package yxy.timer.dao;
import java.util.List;
import yxy.timer.sale.YxyLinkInfo;
public interface YxyLinkInfoSaleDao {
/**实体插入*/
public int addPojo(YxyLinkInfo link)throws Exception;
/**查询指定量数据*/
public List<YxyLinkInfo> findByHqlSet(String hql,int num)throws Exception;
/**统计条数*/
public int count(String hql)throws Exception;
/**根据sql查询*/
public List<Object> findBySql(String sql)throws Exception;
/**hql更新*/
public void updateByHql(String hql)throws Exception;
/**实体编辑*/
public void updatePojo(YxyLinkInfo link)throws Exception;
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="yxy_send_mail_master")
public class YxySendMailMaster implements Serializable{
private int send_mail_id;//发送邮件ID
private String result_remark;//发送情况摘要
private int isuse;//是否使用中
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getSend_mail_id() {
return send_mail_id;
}
public void setSend_mail_id(int sendMailId) {
send_mail_id = sendMailId;
}
public String getResult_remark() {
return result_remark;
}
public void setResult_remark(String resultRemark) {
result_remark = resultRemark;
}
public int getIsuse() {
return isuse;
}
public void setIsuse(int isuse) {
this.isuse = isuse;
}
}
... ...
package yxy.timer.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import yxy.timer.dao.YxySysParamaterDao;
import yxy.timer.dao.YxySysParamatersValueDao;
import yxy.timer.pojo.YxySysParamaters;
import yxy.timer.pojo.YxySysParamatersValue;
import yxy.timer.service.YxySysParamaterService;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 控制参数Service实现类(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
public class YxySysParamaterServiceImpl implements YxySysParamaterService{
/**通过level查询控制参数*/
public Map<String,String> findParamaterByLevel(int level,String loginid,String domain) throws Exception {
//返回一个map集合
Map<String,String> paraMap=new HashMap<String,String>();
//查询控制参数(所有level的默认参数)
String parahql="from YxySysParamaters where owner_type="+level;
List<YxySysParamaters> paras=yxysysparamaterdao.findByHql(parahql);
if(level==1){//系统级
for(int j=0;j<paras.size();j++){
paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
}
}else if(level==2){//企业级
//查询控制参数值(所有用户控制参数的配置值)
String paravaluehql="from YxySysParamatersValue where company_domain='"+domain+"' and owner_type=2";
List<YxySysParamatersValue> paraValue=yxysysparamatersvaluedao.findByHql(paravaluehql);
//循环赋值
int isexits=0;
for(int j=0;j<paras.size();j++){
isexits=0;
if(paraValue.size()>0){
our:for(int i=0;i<paraValue.size();i++){
if(paras.get(j).getPara_id()==paraValue.get(i).getPara_id()){
isexits++;
if(paraValue.get(i).getPara_value()!=null||paraValue.get(i).getPara_value().equals("")){
paraMap.put(paras.get(j).getPara_code(), paraValue.get(i).getPara_value());
}else{
paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
}
break our;
}
}
if(isexits==0){
paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
}
}else{
paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
}
}
}else if(level==4){//用户级
//查询控制参数值(所有用户控制参数的配置值)
String paravaluehql="from YxySysParamatersValue where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and owner_type=4";
List<YxySysParamatersValue> paraValue=yxysysparamatersvaluedao.findByHql(paravaluehql);
//循环赋值
int isexits=0;
for(int j=0;j<paras.size();j++){
isexits=0;
if(paraValue.size()>0){
our:for(int i=0;i<paraValue.size();i++){
if(paras.get(j).getPara_id()==paraValue.get(i).getPara_id()){
isexits++;
if(paraValue.get(i).getPara_value()!=null||paraValue.get(i).getPara_value().equals("")){
paraMap.put(paras.get(j).getPara_code(), paraValue.get(i).getPara_value());
}
break our;
}
}
if(isexits==0){
paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
}
}
}
}
return paraMap;
}
/**通过code查询控制参数,如果用户参数不存在则查企业控制参数,企业控制参数不存在则查询企业默认参数(用户级)*/
public String findUserParamValue(String loginid,String domain,String usercode,String syscode)throws Exception{
//根据code查询paraid
String usercodehql="from YxySysParamaters where para_code='"+usercode+"'";
List<YxySysParamaters> paramlist=yxysysparamaterdao.findByHql(usercodehql);
int paramid=paramlist.get(0).getPara_id();
//根据paramid查询值
String paravaluehql="from YxySysParamatersValue where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id="+paramid;
List<YxySysParamatersValue> paramvlist=yxysysparamatersvaluedao.findByHql(paravaluehql);
if(paramvlist.size()>0){
return paramvlist.get(0).getPara_value();
}else{
//查询系统参数
String syscodehql="from YxySysParamaters where para_code='"+syscode+"'";
List<YxySysParamaters> sysparamlist=yxysysparamaterdao.findByHql(syscodehql);
int sysparamid=sysparamlist.get(0).getPara_id();
//根据paramid查询值
String sysparavaluehql="from YxySysParamatersValue where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id="+sysparamid;
List<YxySysParamatersValue> sysparamvlist=yxysysparamatersvaluedao.findByHql(sysparavaluehql);
if(sysparamvlist.size()>0){
return sysparamvlist.get(0).getPara_value();
}else{
return sysparamlist.get(0).getDefault_value();
}
}
}
/**查询用户总分配量*/
public int findTolFenPeiCount(String loginid,String domain)throws Exception{
String hql="select count(*) from YxySysParamatersValue where para_id=34 and owner_loginid='"+loginid+"' and company_domain='"+domain+"'";
return yxysysparamatersvaluedao.findByHqlCount(hql);
}
private YxySysParamaterDao yxysysparamaterdao;
private YxySysParamatersValueDao yxysysparamatersvaluedao;
public YxySysParamaterDao getYxysysparamaterdao() {
return yxysysparamaterdao;
}
public void setYxysysparamaterdao(YxySysParamaterDao yxysysparamaterdao) {
this.yxysysparamaterdao = yxysysparamaterdao;
}
public YxySysParamatersValueDao getYxysysparamatersvaluedao() {
return yxysysparamatersvaluedao;
}
public void setYxysysparamatersvaluedao(
YxySysParamatersValueDao yxysysparamatersvaluedao) {
this.yxysysparamatersvaluedao = yxysysparamatersvaluedao;
}
}
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxyReadInfoSaleDao;
import yxy.timer.sale.YxyReadingInfo;
public class YxyReadInfoSaleDaoImpl extends SaleHibernateBaseDAOImpl<YxyReadingInfo, Long> implements YxyReadInfoSaleDao
{
/**HQL查询*/
public List<YxyReadingInfo> findByHql(String hql) throws Exception
{
return super.getAll(hql);
}
/**批量插入*/
public void insertReadPi(List<YxyReadingInfo> o) throws Exception {
super.addPi(o);
}
/**HQL查询指定条数据*/
public List findByHqlNum(String hql) throws Exception
{
return super.findBySet(hql, 1000);
}
/**sql查询*/
public List<Object> findBySql(String sql) throws Exception
{
return super.findBySql(sql);
}
/**sql更新*/
public void updateSql(String sql) throws Exception{
super.updateorDelSql(sql);
}
/**HQL更新*/
public void updateByHql(String hql)throws Exception
{
super.updateorDelByHql(hql);
}
/**批量插入*/
public int insertRead(YxyReadingInfo o)throws Exception{
return super.add(o);
}
public int findByHqlCount(String hql)throws Exception{
return super.count(hql);
}
}
... ...
package yxy.timer.webservice.interfaces;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
@WebService(targetNamespace="http://UserSignatureWebservice.interfaces.webservice.timer.yxy/",serviceName="signatureWebservice")
public interface UserSignatureWebservice
{
@WebResult(name="result",targetNamespace="http://UserSignatureWebservice.interfaces.webservice.timer.yxy/")
@WebMethod
public String updateUserSignature(@WebParam(name="id",targetNamespace="http://UserSignatureWebservice.interfaces.webservice.timer.yxy/")int id,
@WebParam(name="title",targetNamespace="http://UserSignatureWebservice.interfaces.webservice.timer.yxy/")String title,
@WebParam(name="body",targetNamespace="http://UserSignatureWebservice.interfaces.webservice.timer.yxy/")String body);
}
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxyReplyInfoDao;
import yxy.timer.pojo.YxyReplyInfo;
/**
*
* 回复dao实现类
*
*/
public class YxyReplyInfoDaoImpl extends HibernateBaseDAOImpl<YxyReplyInfo, Long> implements YxyReplyInfoDao{
/**实体插入*/
public int addPojo(YxyReplyInfo reply)throws Exception{
return super.add(reply);
}
/**查询指定量数据*/
public List<YxyReplyInfo> findByHqlSet(String hql,int num)throws Exception
{
return super.findBySet(hql, num);
}
/**统计条数*/
public int count(String hql)throws Exception
{
return super.count(hql);
}
/**根据sql查询*/
public List<Object> findBySql(String sql)throws Exception
{
return super.findBySql(sql);
}
/**hql更新*/
public void updateByHql(String hql)throws Exception
{
super.updateorDelByHql(hql);
}
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 控制参数(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
@Entity
@Table(name="yxy_sys_paramaters")
public class YxySysParamaters implements Serializable{
private static final long serialVersionUID = 1L;
private int para_id;
private int owner_type;
private int enable_flag;//启用标识,1:启用,0:未启用
private int sort_number;//sort_number
private String para_kind;//分类名称
private String para_code;//参数代码
private String para_name;//参数名称
private String para_desc;//参数描述
private String para_datatype;
private String default_value;//默认值
private String list_value;//侯选值
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getPara_id() {
return para_id;
}
public void setPara_id(int paraId) {
para_id = paraId;
}
public int getOwner_type() {
return owner_type;
}
public void setOwner_type(int ownerType) {
owner_type = ownerType;
}
public int getEnable_flag() {
return enable_flag;
}
public void setEnable_flag(int enableFlag) {
enable_flag = enableFlag;
}
public int getSort_number() {
return sort_number;
}
public void setSort_number(int sortNumber) {
sort_number = sortNumber;
}
public String getPara_kind() {
return para_kind;
}
public void setPara_kind(String paraKind) {
para_kind = paraKind;
}
public String getPara_code() {
return para_code;
}
public void setPara_code(String paraCode) {
para_code = paraCode;
}
public String getPara_name() {
return para_name;
}
public void setPara_name(String paraName) {
para_name = paraName;
}
public String getPara_desc() {
return para_desc;
}
public void setPara_desc(String paraDesc) {
para_desc = paraDesc;
}
public String getPara_datatype() {
return para_datatype;
}
public void setPara_datatype(String paraDatatype) {
para_datatype = paraDatatype;
}
public String getDefault_value() {
return default_value;
}
public void setDefault_value(String defaultValue) {
default_value = defaultValue;
}
public String getList_value() {
return list_value;
}
public void setList_value(String listValue) {
list_value = listValue;
}
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置spring监听器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- Spring乱码处理 -->
<filter>
<filter-name>characterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!-- webservice配置 -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/yxyTimerWebservice/*</url-pattern>
</servlet-mapping>
</web-app>
... ...
package yxy.timer.tool;
/**
* UserAgent解析工具类
* @author 陈南巧
*
*/
public class UserAgentUtil {
/**
* 把UserAgent转换成具体的设备名称
*/
public static String parseUserAgent(String userAgent)
{
String toolName = "PC设备谷歌浏览器";
try{
if(userAgent != null && userAgent.trim().length() > 0)
{
//转换为小写字母
userAgent = userAgent.toLowerCase();
if(userAgent.indexOf("mailmasterpc")!=-1){
toolName = "PC设备网易邮箱大师";
}else if(userAgent.indexOf("mailmaster")!=-1){
toolName = "手机设备网易邮箱大师";
}else if(userAgent.indexOf("mailapp")!=-1){
toolName = "手机设备QQ邮箱";
}else if(userAgent.indexOf("outlook")!=-1){
toolName = "PC设备Outlook";
}else if(userAgent.indexOf("mailbird")!=-1){
toolName = "PC设备Gmail";
}else if(userAgent.indexOf("firebox")!=-1){
toolName = "PC设备火狐浏览器";
}else if(userAgent.indexOf("qqbrowser")!=-1){
toolName = "PC设备QQ浏览器";
}else if(userAgent.indexOf("ubrowser")!=-1){
toolName = "PC设备UC浏览器";
}else if(userAgent.indexOf("rv:11")!=-1){
toolName = "PC设备IE11浏览器";
}else if(userAgent.indexOf("edge")!=-1){
toolName = "PC设备Edge浏览器";
}else if(userAgent.indexOf("msie 6")!=-1){
toolName = "PC设备IE6浏览器";
}else if(userAgent.indexOf("msie 7")!=-1){
toolName = "PC设备IE7浏览器";
}else if(userAgent.indexOf("msie 8")!=-1){
toolName = "PC设备IE8浏览器";
}else if(userAgent.indexOf("msie 9")!=-1){
toolName = "PC设备IE9浏览器";
}else if(userAgent.indexOf("msie 10")!=-1){
toolName = "PC设备IE10浏览器";
}else if(userAgent.indexOf("mac os x")!=-1 && userAgent.indexOf("mobile")!=-1){
toolName = "手机设备Safari浏览器";
}else if(userAgent.indexOf("mac os x")!=-1){
toolName = "PC设备Safari浏览器";
}else if(userAgent.indexOf("opr")!=-1){
toolName = "PC设备Opera浏览器";
}
}
}catch (Exception e) {
}
return toolName;
}
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 日发量统计(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
@Entity
@Table(name="yxy_mail_day_count")
public class YxyMailDayCount implements Serializable{
private int yxy_day_count_id;//ID
private String yxy_day_count_loiginid;//用户账号
private String yxy_day_count_domain;//用户所属域名
private String yxy_day_count_date;//统计日期
private int yxy_day_count_tol_num;//发送量
private int yxy_day_count_ci_num;//发送次数
private int yxy_day_count_address_num;//导入地址数
private int is_timer_count;//定时器是否统计过,0没统计,1已统计
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getYxy_day_count_id() {
return yxy_day_count_id;
}
public void setYxy_day_count_id(int yxyDayCountId) {
yxy_day_count_id = yxyDayCountId;
}
public String getYxy_day_count_date() {
return yxy_day_count_date;
}
public void setYxy_day_count_date(String yxyDayCountDate) {
yxy_day_count_date = yxyDayCountDate;
}
public int getYxy_day_count_tol_num() {
return yxy_day_count_tol_num;
}
public void setYxy_day_count_tol_num(int yxyDayCountTolNum) {
yxy_day_count_tol_num = yxyDayCountTolNum;
}
public int getYxy_day_count_ci_num() {
return yxy_day_count_ci_num;
}
public void setYxy_day_count_ci_num(int yxyDayCountCiNum) {
yxy_day_count_ci_num = yxyDayCountCiNum;
}
public int getYxy_day_count_address_num() {
return yxy_day_count_address_num;
}
public void setYxy_day_count_address_num(int yxyDayCountAddressNum) {
yxy_day_count_address_num = yxyDayCountAddressNum;
}
public String getYxy_day_count_loiginid() {
return yxy_day_count_loiginid;
}
public void setYxy_day_count_loiginid(String yxyDayCountLoiginid) {
yxy_day_count_loiginid = yxyDayCountLoiginid;
}
public String getYxy_day_count_domain() {
return yxy_day_count_domain;
}
public void setYxy_day_count_domain(String yxyDayCountDomain) {
yxy_day_count_domain = yxyDayCountDomain;
}
public int getIs_timer_count() {
return is_timer_count;
}
public void setIs_timer_count(int isTimerCount) {
is_timer_count = isTimerCount;
}
}
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.TimerCountYxyDao;
import yxy.timer.pojo.TimerCountYxy;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 营销邮时间统计DAO实现类
* 开始时间: 2015.12.29
* 程 序 员: 陈南巧
* 最后修改: 2015.12.29
* 备 注: 二次修改
*/
public class TimerCountYxyDaoImpl extends HibernateBaseDAOImpl<TimerCountYxy, Long> implements TimerCountYxyDao
{
/**实体插入*/
public void addPojo(TimerCountYxy o) throws Exception
{
super.add(o);
}
/**批量插入实体*/
public void addPojoPI(List<TimerCountYxy> list) throws Exception
{
super.addPi(list);
}
/**HQL查询*/
public List<TimerCountYxy> findByHql(String hql) throws Exception
{
return super.getAll(hql);
}
/**SQL查询*/
public List<Object> findBySqlQuery(String sql) throws Exception
{
return super.findBySql(sql);
}
/**HQL更新*/
public void updateByHql(String hql) throws Exception
{
super.updateorDelByHql(hql);
}
/**SQL更新*/
public void updateBySql(String sql)throws Exception
{
super.updateorDelSql(sql);
}
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<!--
共有方法,负责所有共有配置文件
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- 营销邮时间统计dao -->
<bean id="timercountyxydao" class="yxy.timer.dao.impl.TimerCountYxyDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!-- 日统计DAO -->
<bean id="yxymaildaycountdao" class="yxy.timer.dao.impl.YxyMailDayCountDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!--点击信息DAO-->
<bean id="yxyreaddao" class="yxy.timer.dao.impl.YxyReadDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!--日点击信息DAO-->
<bean id="yxydayreaddao" class="yxy.timer.dao.impl.YxyReadingDayInfoDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!--退订DAO-->
<bean id="yxyunsubscribedao" class="yxy.timer.dao.impl.YxyUnsubscribeDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!--用户设置DAO-->
<bean id="yxyusersetdao" class="yxy.timer.dao.impl.YxyUserSetDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!--用户地址DAO-->
<bean id="yxyuseraddressdao" class="yxy.timer.dao.impl.YxyUserAddressDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!--用户回复地址DAO-->
<bean id="yxyreplyinfodao" class="yxy.timer.dao.impl.YxyReplyInfoDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!--用户回复地址DAO-->
<bean id="yxysendmaildetaildao" class="yxy.timer.dao.impl.YxySendMailDetailDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!-- 待发dao -->
<bean id="yxysendmailmasterdao" class="yxy.timer.dao.impl.YxySendMailMasterDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!-- 邮箱签名dao -->
<bean id="yxywebmaildao" class="yxy.timer.dao.impl.YxyWebmailDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!-- 邮件基本信息dao -->
<bean id="yxysendmailmasterbasedao" class="yxy.timer.dao.impl.YxySendMailMasterBaseDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!-- 控制参数DAO-->
<bean id="yxysysparamaterdao" class="yxy.timer.dao.impl.YxySysParamaterDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!-- 控制参数值DAO-->
<bean id="yxysysparamatersvaluedao" class="yxy.timer.dao.impl.YxySysParamatersValueDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!-- 链接数DAO-->
<bean id="yxymailnumcountdao" class="yxy.timer.dao.impl.YxyMailNumCountDaoImpl" parent="AnnhibernateBaseDAO"></bean>
<!-- 链接详情DAO-->
<bean id="yxylinkinfodao" class="yxy.timer.dao.impl.YxyLinkInfoDaoImpl" parent="AnnhibernateBaseDAO"></bean>
</beans>
... ...
package yxy.timer.pojo;
/**
* 营销邮部门排行
* @author 陈南巧
*
*/
public class YxyDeptRanking
{
private String dept_name;//部门id
private int sendcinums;//发送总次数
private String sendciids;//发送总次数对应的邮件id
private int sendtolnums;//发送总数
private String sendtolids;//发送总数对应的邮件id
private int readnums;//点读数
private String readids;//点读数对应的邮件id
private int unsubnums;//退订数
private String unsubids;//退订数对应的邮件id
private int replynums;//回复数
private String replyids;//回复数对应的邮件id
public String getDept_name() {
return dept_name;
}
public void setDept_name(String deptName) {
dept_name = deptName;
}
public int getSendcinums() {
return sendcinums;
}
public void setSendcinums(int sendcinums) {
this.sendcinums = sendcinums;
}
public String getSendciids() {
return sendciids;
}
public void setSendciids(String sendciids) {
this.sendciids = sendciids;
}
public int getSendtolnums() {
return sendtolnums;
}
public void setSendtolnums(int sendtolnums) {
this.sendtolnums = sendtolnums;
}
public String getSendtolids() {
return sendtolids;
}
public void setSendtolids(String sendtolids) {
this.sendtolids = sendtolids;
}
public int getReadnums() {
return readnums;
}
public void setReadnums(int readnums) {
this.readnums = readnums;
}
public String getReadids() {
return readids;
}
public void setReadids(String readids) {
this.readids = readids;
}
public int getUnsubnums() {
return unsubnums;
}
public void setUnsubnums(int unsubnums) {
this.unsubnums = unsubnums;
}
public String getUnsubids() {
return unsubids;
}
public void setUnsubids(String unsubids) {
this.unsubids = unsubids;
}
public int getReplynums() {
return replynums;
}
public void setReplynums(int replynums) {
this.replynums = replynums;
}
public String getReplyids() {
return replyids;
}
public void setReplyids(String replyids) {
this.replyids = replyids;
}
}
... ...
package yxy.timer.dao;
/**
*
* 地址dao
*
*/
public interface YxyUserAddressDao {
/**HQL删除*/
public void delByHql(String hql)throws Exception;
}
... ...
package yxy.timer.method;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import yxy.timer.pojo.YxyUserSet;
import yxy.timer.service.YxyAddressService;
import yxy.timer.tool.DateFormat;
/**
*
* 定时清理邮件地址
*
*/
public class AutoClearAddress {
private void cleraAddress()throws Exception{
// try {
// //业务修改(未分类的只清理7天之前的地址..分类的由用户自己设定)
// SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String nowDate=df.format(new Date());//当前时间
// System.out.println(nowDate+"===开始清理地址===");
// //删除超过7天的地址
// String chaTimer=DateFormat.nDaysAfterOneDateString(nowDate, -7);//获取相差N天的时间
// //删除小于该时间的地址
// yxyaddressservice.delAddress(chaTimer);
// //删除用户设置的地址(只限分类的)
// List<YxyUserSet> userSet=yxyaddressservice.findAllSet();
// int cleraday=0;
// String loginid="";//用户账号
// String domain="";//用户域名
// for(int i=0;i<userSet.size();i++){
// loginid=userSet.get(i).getUser_set_loginid();
// domain=userSet.get(i).getUser_companydomain();
// //判断是否开启自动清理地址功能
// if(userSet.get(i).getUser_clear_address_use()==1){//开启
// //获取的天数
// cleraday=userSet.get(i).getUser_clear_address_num();
// chaTimer=DateFormat.nDaysAfterOneDateString(nowDate, cleraday);//获取相差N天的时间
// yxyaddressservice.delAddressByUser(chaTimer, loginid, domain);
// }
// }
// System.out.println("===清理地址完成===");
// } catch (Exception e) {
// System.out.println("===清理地址出现异常===");
// e.printStackTrace();
// }
//清理待发邮件地址
try {
yxyaddressservice.delDetail();
} catch (Exception e) {
e.printStackTrace();
}
}
private YxyAddressService yxyaddressservice;//地址service
public YxyAddressService getYxyaddressservice()
{
return yxyaddressservice;
}
public void setYxyaddressservice(YxyAddressService yxyaddressservice)
{
this.yxyaddressservice = yxyaddressservice;
}
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 点读统计实体(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
@Entity
@Table(name="yxy_reading_count")
public class YxyReadingCount implements Serializable{
private int reading_count_id;
private String reading_count_mailuid;
private String reading_count_loginid;
private String reading_count_domain;
private int reading_count_tol;/**点读总数*/
private int reading_count_person;/**点读人数*/
private String reading_count_date;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getReading_count_id() {
return reading_count_id;
}
public void setReading_count_id(int readingCountId) {
reading_count_id = readingCountId;
}
public String getReading_count_mailuid() {
return reading_count_mailuid;
}
public void setReading_count_mailuid(String readingCountMailuid) {
reading_count_mailuid = readingCountMailuid;
}
public int getReading_count_tol() {
return reading_count_tol;
}
public void setReading_count_tol(int readingCountTol) {
reading_count_tol = readingCountTol;
}
public int getReading_count_person() {
return reading_count_person;
}
public void setReading_count_person(int readingCountPerson) {
reading_count_person = readingCountPerson;
}
public String getReading_count_loginid() {
return reading_count_loginid;
}
public void setReading_count_loginid(String readingCountLoginid) {
reading_count_loginid = readingCountLoginid;
}
public String getReading_count_domain() {
return reading_count_domain;
}
public void setReading_count_domain(String readingCountDomain) {
reading_count_domain = readingCountDomain;
}
public String getReading_count_date() {
return reading_count_date;
}
public void setReading_count_date(String readingCountDate) {
reading_count_date = readingCountDate;
}
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<!--
sale100个人版配置文件
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="dataSourceSale" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/yxybase?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>sz1234567890</value>
</property>
<property name="maxActive">
<value>100</value>
</property>
<property name="maxIdle">
<value>50</value>
</property>
<property name="initialSize">
<value>30</value>
</property>
<property name="maxWait">
<value>10000</value>
</property>
<property name="defaultAutoCommit">
<value>true</value>
</property>
<property name="removeAbandoned">
<value>true</value>
</property>
<property name="removeAbandonedTimeout">
<value>300</value>
</property>
<property name="logAbandoned">
<value>false</value>
</property>
<property name="validationQuery">
<value>select 1</value>
</property>
<property name="testOnBorrow">
<value>true</value>
</property>
</bean>
<bean id="sessionFactorySale" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSourceSale" />
<property name="packagesToScan">
<list>
<value>yxy.timer.sale</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.connetion.release_mode">auto</prop>
</props>
</property>
</bean>
<bean id="SalehibernateBaseDAO" class="yxy.timer.dao.impl.SaleHibernateBaseDAOImpl" abstract="true" scope="prototype">
<property name="sessionFactory" ref="sessionFactorySale"/>
</bean>
<bean id="transactionManagerSale" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactorySale" />
</bean>
<tx:advice id="txAdviceSale" transaction-manager="transactionManagerSale">
<tx:attributes>
<tx:method name="del*"/>
<tx:method name="save*" />
<tx:method name="update*" />
<tx:method name="add*" />
<tx:method name="insert*" />
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="load*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="list*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* yxy.timer.service.*.*(..))" id="allMethodSale"/>
<aop:advisor pointcut-ref="allMethodSale" advice-ref="txAdviceSale"/>
</aop:config>
<!--点击信息DAO-->
<bean id="yxyreadinfosaledao" class="yxy.timer.dao.impl.YxyReadInfoSaleDaoImpl" parent="SalehibernateBaseDAO"></bean>
<!--退订DAO-->
<bean id="yxyunsubscribeinfosaledao" class="yxy.timer.dao.impl.YxyUnsubscribeInfoSaleDaoImpl" parent="SalehibernateBaseDAO"></bean>
<!-- 链接数DAO-->
<bean id="yxymailnumcountinfosaledao" class="yxy.timer.dao.impl.YxyMailNumCountInfoSaleDaoImpl" parent="SalehibernateBaseDAO"></bean>
<!-- 链接详情DAO-->
<bean id="yxylinkinfosaledao" class="yxy.timer.dao.impl.YxyLinkInfoSaleDaoImpl" parent="SalehibernateBaseDAO"></bean>
</beans>
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxyMailNumCountDao;
import yxy.timer.pojo.YxyMailNumCount;
public class YxyMailNumCountDaoImpl extends HibernateBaseDAOImpl<YxyMailNumCount, Long> implements YxyMailNumCountDao{
/**实体插入*/
public int addPojo(YxyMailNumCount o)throws Exception{
return super.add(o);
}
/**实体编辑*/
public void updatePojo(YxyMailNumCount o)throws Exception{
super.update(o);
}
/**HQL查询*/
public List<YxyMailNumCount> findByHql(String hql)throws Exception{
return super.getAll(hql);
}
/**指定条记录*/
public List<YxyMailNumCount> findByHqlSet(String hql,int num)throws Exception{
return super.findBySet(hql, num);
}
/**SQL查询*/
public List<Object> findBySqlQuery(String sql)throws Exception{
return super.findBySql(sql);
}
/**HQL更新*/
public void updateByHql(String hql)throws Exception{
super.updateorDelByHql(hql);
}
}
... ...
package yxy.timer.dao;
import java.util.List;
import yxy.timer.pojo.YxyMailNumCount;
public interface YxyMailNumCountDao {
/**实体插入*/
public int addPojo(YxyMailNumCount o)throws Exception;
/**实体编辑*/
public void updatePojo(YxyMailNumCount o)throws Exception;
/**HQL查询*/
public List<YxyMailNumCount> findByHql(String hql)throws Exception;
/**指定条记录*/
public List<YxyMailNumCount> findByHqlSet(String hql,int num)throws Exception;
/**SQL查询*/
public List<Object> findBySqlQuery(String sql)throws Exception;
/**HQL更新*/
public void updateByHql(String hql)throws Exception;
}
... ...
package yxy.timer.method;
import org.springframework.scheduling.quartz.CronTriggerBean;
import org.quartz.Scheduler;
public class InitializingCronTrigger{
private static Scheduler scheduler;
public void setScheduler(Scheduler scheduler){
InitializingCronTrigger.scheduler = scheduler;
}
//dotime 配置文件里面 - 是配置jobDetail和CronExpression的
public static void updateTime(String expression){
try {
/*
* 通过Scheduler.getTrigger("truggerName","GroupName")得到CronTriggerBean
* 通过setCronExpression方法设置时间
* */
CronTriggerBean trigger = (CronTriggerBean) scheduler.getTrigger("dotime", Scheduler.DEFAULT_GROUP);
if(! trigger.getCronExpression().equalsIgnoreCase(expression)){
trigger.setCronExpression(expression);
scheduler.rescheduleJob("dotime", Scheduler.DEFAULT_GROUP, trigger);
}
//trigger.setCronExpression(expression);
System.out.println(trigger.getName() + ":"+ trigger.getCronExpression());
} catch (Exception e) {
e.printStackTrace();
}
}
}
... ...
package yxy.timer.dao;
import java.util.List;
import yxy.timer.pojo.YxySysParamatersValue;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 控制参数值Dao(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
public interface YxySysParamatersValueDao {
/**HQL查询*/
public List<YxySysParamatersValue> findByHql(String hql)throws Exception;
/**HQL数量查询*/
public int findByHqlCount(String hql)throws Exception;
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
*
* @author 谢勇
* 日点读信息
*/
//@Entity
//@Table(name="yxy_reading_day_info")
public class YxyReadingDayInfo implements Serializable{
private static final long serialVersionUID = 1L;
private int day_readid;
private String day_read_loginid;
private String day_read_domain;
private String day_read_mailuid;
private String day_read_ip;
private String day_read_date;
private String day_read_email;
private int day_read_num;
private int day_read_month;
private String day_read_area;
private int day_read_year;
private String day_read_hh;
private int day_read_day;
// @Id
// @GeneratedValue(strategy=GenerationType.AUTO)
public int getDay_readid() {
return day_readid;
}
public void setDay_readid(int dayReadid) {
day_readid = dayReadid;
}
public String getDay_read_loginid() {
return day_read_loginid;
}
public void setDay_read_loginid(String dayReadLoginid) {
day_read_loginid = dayReadLoginid;
}
public String getDay_read_domain() {
return day_read_domain;
}
public void setDay_read_domain(String dayReadDomain) {
day_read_domain = dayReadDomain;
}
public String getDay_read_mailuid() {
return day_read_mailuid;
}
public void setDay_read_mailuid(String dayReadMailuid) {
day_read_mailuid = dayReadMailuid;
}
public String getDay_read_ip() {
return day_read_ip;
}
public void setDay_read_ip(String dayReadIp) {
day_read_ip = dayReadIp;
}
public String getDay_read_date() {
return day_read_date;
}
public void setDay_read_date(String dayReadDate) {
day_read_date = dayReadDate;
}
public String getDay_read_email() {
return day_read_email;
}
public void setDay_read_email(String dayReadEmail) {
day_read_email = dayReadEmail;
}
public int getDay_read_num() {
return day_read_num;
}
public void setDay_read_num(int dayReadNum) {
day_read_num = dayReadNum;
}
public int getDay_read_month() {
return day_read_month;
}
public void setDay_read_month(int dayReadMonth) {
day_read_month = dayReadMonth;
}
public String getDay_read_area() {
return day_read_area;
}
public void setDay_read_area(String dayReadArea) {
day_read_area = dayReadArea;
}
public int getDay_read_year() {
return day_read_year;
}
public void setDay_read_year(int dayReadYear) {
day_read_year = dayReadYear;
}
public String getDay_read_hh() {
return day_read_hh;
}
public void setDay_read_hh(String dayReadHh) {
day_read_hh = dayReadHh;
}
public int getDay_read_day() {
return day_read_day;
}
public void setDay_read_day(int dayReadDay) {
day_read_day = dayReadDay;
}
}
... ...
package yxy.timer.tool;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
/*
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 日期格式化工具类
* 开始时间: 2013.09.26
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
public class DateFormat {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
private static SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将字符串转换日期
public static Date dateToString(String str) {
Date dateNum = null;
try {
dateNum = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return dateNum;
}
// 将字符串转换日期
public static Date dateToString2(String str) {
Date dateNum = null;
try {
dateNum = sdf2.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return dateNum;
}
// 将日期转换为字符串
public static String simpleDataFormat(Date date) {// yy必须小写,MM是月份,mm是分;HH是24小时制,而hh是12小时制
String str = sdf.format(date);
return str;
}
// 给定一个日期型字符串,返回加减n天后的日期型字符串
public static String nDaysAfterOneDateString(String basicDate, int n) {
//SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
Date tmpDate = null;
try {
tmpDate = sdf2.parse(basicDate);
} catch (Exception e) {
// 日期型字符串格式错误
}
long nDay = (tmpDate.getTime() / (24 * 60 * 60 * 1000) + 1 + n)* (24 * 60 * 60 * 1000);
tmpDate.setTime(nDay);
return sdf2.format(tmpDate);
}
//获取当前时间加减后的日期
public static String lastDays(int n){
String resultdate="";
try {
//获取几天之前的时间
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd"); //字符串转换
Calendar c = Calendar.getInstance();
c.setTimeInMillis(new Date().getTime());
c.add(Calendar.DATE, n);//多少天后的日期
Date date= new Date(c.getTimeInMillis()); //将c转换成Date
resultdate=formatDate.format(date);
} catch (Exception e) {
resultdate="";
e.printStackTrace();
}
return resultdate;
}
// 给定一个日期,返回加减n天后的日期
public static Date nDaysAfterOneDate(Date basicDate, int n) {
long nDay = (basicDate.getTime() / (24 * 60 * 60 * 1000) + 1 + n)
* (24 * 60 * 60 * 1000);
basicDate.setTime(nDay);
return basicDate;
}
// 判断日期为星期几,0为星期天,依此类推
public static String dayOfWeek(String strdate) {
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
Date date = null;
try {
date = df.parse(strdate);
} catch (ParseException e) {
// TODO Auto-generated catch block
System.out.println("字符型转日期有异常");
}
// 首先定义一个calendar,必须使用getInstance()进行实例化
Calendar aCalendar = Calendar.getInstance();
// 里面野可以直接插入date类型
aCalendar.setTime(date);
// 计算此日期是一周中的哪一天
int x = aCalendar.get(Calendar.DAY_OF_WEEK) - 1;
String week = "";
switch (x) {
case 0:
week = "星期天";
break;
case 1:
week = "星期一";
break;
case 2:
week = "星期二";
break;
case 3:
week = "星期三";
break;
case 4:
week = "星期四";
break;
case 5:
week = "星期五";
break;
case 6:
week = "星期六";
break;
}
return week;
}
/*
* 本应用未用到
*/
// 计算两个日期相隔的天数
public static int nDaysBetweenTwoDate(Date firstDate, Date secondDate) {
int nDay = (int) ((secondDate.getTime() - firstDate.getTime()) / (24 * 60 * 60 * 1000));
return nDay;
}
// 计算两个日期相隔的天数
public static int nDaysBetweenTwoDate(String firstString, String secondString) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date firstDate = null;
Date secondDate = null;
try {
firstDate = df.parse(firstString);
secondDate = df.parse(secondString);
} catch (Exception e) {
// 日期型字符串格式错误
}
int nDay = (int) ((secondDate.getTime() - firstDate.getTime()) / (24 * 60 * 60 * 1000));
System.out.println("相差"+nDay+"天");
return nDay;
}
// 某年某月有多少天
public static int yearMonthDay(int year, int month) {
int day = 0;
if (((month >= 1) && (month <= 12)) && (year >= 0)) {
if (month == 2) {
if ((((year % 4) == 0) && ((year % 100) != 0))|| ((year % 400) == 0))
day = 29;
else
day = 28;
} else {
if ((month == 1) || (month == 3) || (month == 5)
|| (month == 7) || (month == 8) || (month == 10)
|| (month == 12))
day = 31;
else
day = 30;
}
System.out.println(year + "年" + month + "月的天数为:" + day);
} else {
System.out.println("请输入正确的年月!");
}
return day;
}
//判断两时间相差的分钟数
public static long minutes(String beginDate,String endDate){
Date begin = null;
Date end = null;
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long minute1=0;
try {
begin = dfs.parse(beginDate);
end = dfs.parse(endDate);
long between = (end.getTime() - begin.getTime()) / 1000;// 除以1000是为了转换成秒
minute1 = between / 60;
} catch (Exception e) {
e.printStackTrace();
}
return minute1;
}
//获取当前时间的季度
public static String getQuarter(){
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowDate= dfs.format(new Date());
String[] str=nowDate.split("-");
int nowmonth=Integer.parseInt(str[1]);
if(nowmonth<=3){
return "第一季度";
}else if(nowmonth>3&&nowmonth<=6){
return "第二季度";
}else if(nowmonth>6&&nowmonth<=9){
return "第三季度";
}else{
return "第四季度";
}
}
//获取当前第多少周
public static String getWeekDay(){
TimeZone zone=TimeZone.getTimeZone("Asia/Shanghai");
Calendar cal = Calendar.getInstance(zone);
int c = cal.get(cal.WEEK_OF_YEAR);
return c+"";
}
//时区换算为当前北京时间(参数:1.选择的时间,2.时区)
// public static String hourdiffer(String newStrTimer,int timeZone) throws Exception{
// int hour=0;//时区相差的时间(小时)
// int minutes=0;//时区相差的时间(分钟)
// String marginTimer="";//各时区差
// Date tmpDate = null;
// //时间格式转换
// newStrTimer=newStrTimer.replace("年", "-");
// newStrTimer=newStrTimer.replace("月", "-");
// newStrTimer=newStrTimer.replace("日", " ");
// newStrTimer=newStrTimer.replace("时", ":");
// newStrTimer=newStrTimer.replace("分", ":");
// newStrTimer=newStrTimer.replace("秒", "");
//
// switch (timeZone) {
// case 1://北京时区
// hour=0;
// minutes=0;
// break;
// case 2://美国时区
// marginTimer="12";
// hour=Integer.parseInt(marginTimer);
// minutes=0;
// //minutes=Integer.parseInt(marginTimer.split(".")[1]);
// break;
// case 3://英国时区
//
// break;
// case 4://北京时区
//
// break;
// case 5://北京时区
//
// break;
// case 6://北京时区
//
// break;
// case 7://北京时区
//
// break;
// case 8://北京时区
//
// break;
// case 9://北京时区
// break;
// default:
// break;
// }
// tmpDate = sdf2.parse(newStrTimer);
// Calendar now = Calendar.getInstance();
// now.setTime(tmpDate);
// now.set(Calendar.HOUR, now.get(Calendar.HOUR) + hour);
// now.set(Calendar.MINUTE, now.get(Calendar.MINUTE) + minutes);
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// return sdf.format(now.getTime());
// }
/**获取当前时间*/
public static String getNowDate(){
String nowdate="2000-01-01 01:00:00";
try {
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
nowdate=df.format(new Date());
} catch (Exception e) {
e.printStackTrace();
}
return nowdate;
}
public static void main(String[] args) {
//获取几天之前的时间
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd"); //字符串转换
Calendar c = Calendar.getInstance();
//new Date().getTime();这个是获得当前电脑的时间,你也可以换成一个随意的时间
c.setTimeInMillis(new Date().getTime());
c.add(Calendar.DATE, -1);//5天后的日期
Date date= new Date(c.getTimeInMillis()); //将c转换成Date
System.out.println("date="+formatDate.format(date));
}
}
... ...
package yxy.timer.dao;
import java.util.List;
import yxy.timer.pojo.YxyReadingDayInfo;
/**
*
* @author 谢勇
* 今日点读信息dao
*/
public interface YxyReadingDayInfoDao {
/**实体插入*/
public int addPojo(YxyReadingDayInfo o)throws Exception;
/**实体插入*/
public void addPojoPi(List<YxyReadingDayInfo> list)throws Exception;
/**实体编辑*/
public void updatePojo(YxyReadingDayInfo o)throws Exception;
/**HQL查询*/
public List<YxyReadingDayInfo> findByHql(String hql)throws Exception;
/**SQL查询*/
public List<Object> findBySqlQuery(String sql)throws Exception;
/**SQL更新*/
public void updateBySql(String sql)throws Exception;
/**指定条记录*/
public List<YxyReadingDayInfo> findByHqlSet(String hql,int num)throws Exception;
/**HQL更新*/
public void updateByHql(String hql)throws Exception;
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
<classpathentry exported="true" kind="lib" path="WebRoot/WEB-INF/lib/hibernate3.jar"/>
<classpathentry exported="true" kind="lib" path="WebRoot/WEB-INF/lib/hibernate-jpa-2.0-api-1.0.1.Final.jar"/>
<classpathentry exported="true" kind="lib" path="WebRoot/WEB-INF/lib/common-annotations.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-beans.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-web.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.1.6-bin.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging-1.1.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectjweaver.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/slf4j-api-1.6.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jta-1.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-collections-3.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/javassist-3.12.0.GA.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/quartz.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/antlr-2.7.6.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-beanutils.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-io-1.4.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-lang.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-2.6.2.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-manifest.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-services-sts-core-2.6.2.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-services-wsn-api-2.6.2.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-services-wsn-core-2.6.2.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-xjc-boolean-2.6.0.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-xjc-bug671-2.6.0.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-xjc-dv-2.6.0.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-xjc-runtime-2.6.0.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cxf-xjc-ts-2.6.0.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ezmorph-1.0.6.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/fastjson-1.1.36.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/json-lib-2.4-jdk15.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/neethi-3.0.2.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/wsdl4j-1.6.2.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xmlschema-core-2.0.3.jar"/>
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>
... ...
package yxy.timer.tool;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
public class DBUtil
{
private static DataSource dataSource;
//获得连接
public static Connection getConnection(String datesource) throws SQLException
{
dataSource = (DataSource) SpringFactory.getObject(datesource);
return dataSource.getConnection();
}
//关闭数据库连接
public static void close(ResultSet rs,Statement st,Connection conn){
if(rs!=null){ try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
}
}
\ No newline at end of file
... ...
package yxy.timer.dao;
import java.util.List;
import yxy.timer.pojo.YxyMailDayCount;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 日发量统计dao接口(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
public interface YxyMailDayCountDao {
/**实体插入*/
public int addPojo(YxyMailDayCount o)throws Exception;
/**实体编辑*/
public void updatePojo(YxyMailDayCount o)throws Exception;
/**HQL查询*/
public List<YxyMailDayCount> findByHql(String hql)throws Exception;
/**SQL查询*/
public List<Object> findBySqlQuery(String sql)throws Exception;
/**指定条记录*/
public List<YxyMailDayCount> findByHqlSet(String hql,int num)throws Exception;
/**HQL更新*/
public void updateByHql(String hql)throws Exception;
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 退订实体(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
@Entity
@Table(name="yxy_unsubscribe_info")
public class YxyUnsubscribeInfo implements Serializable{
private static final long serialVersionUID = 1L;
private int unsubscribe_id;
private String unsubscribe_loginid;//用户账号
private String unsubscribe_domain;//用户所属域名
private String unsubscribe_mail_uid;//邮件唯一码
private String unsubscribe_date;//退订时间
private String unsubscribe_body;//退订理由
private String unsubscribe_email;//退订地址
private int unsubscribe_issys;//是不是用户自己添加的
private int is_timer_count;//定时器是否统计过,0没统计,1已统计
private String ip;
private String area;
private String user_agent;
private String user_agent_info;
private int unsubscribe_year;
private int unsubscribe_month;
private int unsubscribe_day;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getUnsubscribe_id() {
return unsubscribe_id;
}
public void setUnsubscribe_id(int unsubscribeId) {
unsubscribe_id = unsubscribeId;
}
public String getUnsubscribe_loginid() {
return unsubscribe_loginid;
}
public void setUnsubscribe_loginid(String unsubscribeLoginid) {
unsubscribe_loginid = unsubscribeLoginid;
}
public String getUnsubscribe_domain() {
return unsubscribe_domain;
}
public void setUnsubscribe_domain(String unsubscribeDomain) {
unsubscribe_domain = unsubscribeDomain;
}
public String getUnsubscribe_mail_uid() {
return unsubscribe_mail_uid;
}
public void setUnsubscribe_mail_uid(String unsubscribeMailUid) {
unsubscribe_mail_uid = unsubscribeMailUid;
}
public String getUnsubscribe_date() {
return unsubscribe_date;
}
public void setUnsubscribe_date(String unsubscribeDate) {
unsubscribe_date = unsubscribeDate;
}
public String getUnsubscribe_body() {
return unsubscribe_body;
}
public void setUnsubscribe_body(String unsubscribeBody) {
unsubscribe_body = unsubscribeBody;
}
public String getUnsubscribe_email() {
return unsubscribe_email;
}
public void setUnsubscribe_email(String unsubscribeEmail) {
unsubscribe_email = unsubscribeEmail;
}
public int getUnsubscribe_issys() {
return unsubscribe_issys;
}
public void setUnsubscribe_issys(int unsubscribeIssys) {
unsubscribe_issys = unsubscribeIssys;
}
public int getIs_timer_count() {
return is_timer_count;
}
public void setIs_timer_count(int isTimerCount) {
is_timer_count = isTimerCount;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public String getUser_agent() {
return user_agent;
}
public void setUser_agent(String user_agent) {
this.user_agent = user_agent;
}
public String getUser_agent_info() {
return user_agent_info;
}
public void setUser_agent_info(String user_agent_info) {
this.user_agent_info = user_agent_info;
}
public int getUnsubscribe_year() {
return unsubscribe_year;
}
public void setUnsubscribe_year(int unsubscribe_year) {
this.unsubscribe_year = unsubscribe_year;
}
public int getUnsubscribe_month() {
return unsubscribe_month;
}
public void setUnsubscribe_month(int unsubscribe_month) {
this.unsubscribe_month = unsubscribe_month;
}
public int getUnsubscribe_day() {
return unsubscribe_day;
}
public void setUnsubscribe_day(int unsubscribe_day) {
this.unsubscribe_day = unsubscribe_day;
}
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 用户设置(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
@Entity
@Table(name="yxy_user_set")
public class YxyUserSet implements Serializable{
private int user_set_id;/**用户设置ID*/
private String user_set_loginid;//用户账号
private String user_companydomain;//用户所属域名
private String user_defalt_send_name;//默认发件人姓名
private String user_defalt_send_email;//默认发件人地址
private String user_defalt_reply_email;//默认回复地址
private int user_not_send_repeat_use;//是否启用多少天不发送重复地址
private int user_not_send_repeat_num;//不能发送重复地址天数
private int user_not_send_repeat_context_use;//是否启用多少天不发送重复内容
private int user_not_send_repeat_context_num;//是否启用多少天不发送重复内容的天数
private int user_clear_address_use;//是否开启自动清空地址数
private int user_clear_address_num;//自动清空地址数天数
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getUser_set_id() {
return user_set_id;
}
public void setUser_set_id(int userSetId) {
user_set_id = userSetId;
}
public String getUser_defalt_send_name() {
return user_defalt_send_name;
}
public void setUser_defalt_send_name(String userDefaltSendName) {
user_defalt_send_name = userDefaltSendName;
}
public String getUser_defalt_send_email() {
return user_defalt_send_email;
}
public void setUser_defalt_send_email(String userDefaltSendEmail) {
user_defalt_send_email = userDefaltSendEmail;
}
public String getUser_defalt_reply_email() {
return user_defalt_reply_email;
}
public void setUser_defalt_reply_email(String userDefaltReplyEmail) {
user_defalt_reply_email = userDefaltReplyEmail;
}
public int getUser_not_send_repeat_use() {
return user_not_send_repeat_use;
}
public void setUser_not_send_repeat_use(int userNotSendRepeatUse) {
user_not_send_repeat_use = userNotSendRepeatUse;
}
public int getUser_not_send_repeat_num() {
return user_not_send_repeat_num;
}
public void setUser_not_send_repeat_num(int userNotSendRepeatNum) {
user_not_send_repeat_num = userNotSendRepeatNum;
}
public int getUser_not_send_repeat_context_use() {
return user_not_send_repeat_context_use;
}
public void setUser_not_send_repeat_context_use(int userNotSendRepeatContextUse) {
user_not_send_repeat_context_use = userNotSendRepeatContextUse;
}
public int getUser_not_send_repeat_context_num() {
return user_not_send_repeat_context_num;
}
public void setUser_not_send_repeat_context_num(int userNotSendRepeatContextNum) {
user_not_send_repeat_context_num = userNotSendRepeatContextNum;
}
public int getUser_clear_address_use() {
return user_clear_address_use;
}
public void setUser_clear_address_use(int userClearAddressUse) {
user_clear_address_use = userClearAddressUse;
}
public int getUser_clear_address_num() {
return user_clear_address_num;
}
public void setUser_clear_address_num(int userClearAddressNum) {
user_clear_address_num = userClearAddressNum;
}
public String getUser_set_loginid() {
return user_set_loginid;
}
public void setUser_set_loginid(String userSetLoginid) {
user_set_loginid = userSetLoginid;
}
public String getUser_companydomain() {
return user_companydomain;
}
public void setUser_companydomain(String userCompanydomain) {
user_companydomain = userCompanydomain;
}
}
... ...
package yxy.timer.method;
import java.util.List;
import org.apache.commons.lang.StringEscapeUtils;
import yxy.timer.dao.TimerCountYxyDao;
import yxy.timer.dao.YxyMailDayCountDao;
import yxy.timer.dao.YxyReadDao;
import yxy.timer.dao.YxyReplyInfoDao;
import yxy.timer.dao.YxyUnsubscribeDao;
import yxy.timer.pojo.TimerCountYxy;
import yxy.timer.tool.DateFormat;
/**
* 统计分析定时器
* @author 陈南巧
*/
public class YxyCountAnalysisTime
{
//定时器运行的主方法
public void counting()
{
try
{
System.out.println("营销邮统计分析定时器开始,开始时间:"+DateFormat.getNowDate());
//营销邮统计发送总次数与发送总数
yxyCountSMailInfo();
//营销邮统计点读总数yxyCoutReadMail
yxyCountReadMail();
//营销邮统计退订总数
yxyCountUnsubscribeMail();
//营销邮统计回复总数
yxyCountReplyMail();
System.out.println("营销邮统计分析定时器结束,结束时间:"+DateFormat.getNowDate());
}
catch (Exception e)
{
System.out.println("营销邮统计分析定时器异常......");
e.printStackTrace();
}
}
//营销邮统计发送总次数与发送总数
public void yxyCountSMailInfo()
{
try
{
System.out.println("营销邮-按时间统计发送总次数与发送总数开始,开始时间:"+DateFormat.getNowDate());
String sql = "select yxy_day_count_id,yxy_day_count_loiginid,yxy_day_count_domain,yxy_day_count_date,yxy_day_count_ci_num,yxy_day_count_tol_num " +
"from yxy_mail_day_count where is_timer_count = 0 limit 0,100";
List<Object> objects = yxymaildaycountdao.findBySqlQuery(sql);
if(objects.size() > 0)
{
String ids = "";
for(int i = 0; i < objects.size(); i++)
{
Object []obj=(Object[])objects.get(i);
//日统计表的id
int yxy_day_count_id = Integer.parseInt(obj[0].toString());
ids += yxy_day_count_id + ",";
//登录帐号
String loginid = obj[1].toString();
//登录域名
String domain = obj[2].toString();
//日期
String date = obj[3].toString();
//当天发送次数
int ci_num = Integer.parseInt(obj[4].toString());
//当天发送总数
int tol_num = Integer.parseInt(obj[5].toString());
//先判断记录是否存在,不存在则添加,存在则更新
sql = "select timer_id from timer_count_yxy where count_id = 8 and count_date = '"+date+"' and login_id = '"+StringEscapeUtils.escapeSql(loginid)+"' and domain = '"+StringEscapeUtils.escapeSql(domain)+"'";
List<Object> select_objects = timercountyxydao.findBySqlQuery(sql);
if(select_objects.size() > 0)//已存在,则更新记录
{
int timer_id = Integer.parseInt(select_objects.get(0).toString());
String hql = "update TimerCountYxy set day_count = "+ci_num+" where timer_id = "+timer_id;
timercountyxydao.updateByHql(hql);
}
else//不存在,则添加记录
{
TimerCountYxy yxy1 = new TimerCountYxy();
yxy1.setCount_date(date);
yxy1.setDay(date.split("-")[2]);
yxy1.setMonth(date.split("-")[1]);
yxy1.setYear(Integer.parseInt(date.split("-")[0]));
yxy1.setLogin_id(loginid);
yxy1.setDomain(domain);
yxy1.setCount_id(8);
yxy1.setDay_count(ci_num);
yxy1.setRecord_id("");
timercountyxydao.addPojo(yxy1);
}
sql = "select timer_id from timer_count_yxy where count_id = 9 and count_date = '"+date+"' and login_id = '"+StringEscapeUtils.escapeSql(loginid)+"' and domain = '"+StringEscapeUtils.escapeSql(domain)+"'";
select_objects = timercountyxydao.findBySqlQuery(sql);
if(select_objects.size() > 0)//已存在,则更新记录
{
int timer_id = Integer.parseInt(select_objects.get(0).toString());
String hql = "update TimerCountYxy set day_count = "+ci_num+" where timer_id = "+timer_id;
timercountyxydao.updateByHql(hql);
}
else//不存在,则添加记录
{
TimerCountYxy yxy2 = new TimerCountYxy();
yxy2.setCount_date(date);
yxy2.setDay(date.split("-")[2]);
yxy2.setMonth(date.split("-")[1]);
yxy2.setYear(Integer.parseInt(date.split("-")[0]));
yxy2.setLogin_id(loginid);
yxy2.setDomain(domain);
yxy2.setCount_id(9);
yxy2.setDay_count(tol_num);
yxy2.setRecord_id("");
timercountyxydao.addPojo(yxy2);
}
}
ids = ids.substring(0, ids.length()-1);//去掉最后一个分号
//操作完毕后改变该日统计表的状态为已统计
String hql = "update YxyMailDayCount set is_timer_count = 1 where yxy_day_count_id in("+ids+")";
yxymaildaycountdao.updateByHql(hql);
}
System.out.println("营销邮-按时间统计发送总次数与发送总数结束,结束时间:"+DateFormat.getNowDate());
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("营销邮--统计发送总次数与发送总数异常......");
}
}
//营销邮统计点读总数
public void yxyCountReadMail()
{
try
{
System.out.println("营销邮-按时间统计点读总数开始,开始时间:"+DateFormat.getNowDate());
String sql = "select * from yxy_reading_info where is_timer_count = 0 LIMIT 0,100";
List<Object> objects = yxyreaddao.findBySql(sql);
if(objects.size() > 0)
{
String ids = "";
for(int i = 0; i < objects.size(); i++)
{
Object []obj = (Object[])objects.get(i);
//点读id
int yxy_reading_id = Integer.parseInt(obj[0].toString());
ids += yxy_reading_id + ",";
//登录帐号
String loginid = obj[1].toString();
//登录域名
String domain = obj[2].toString();
//当天点读数量
int count = Integer.parseInt(obj[7].toString());
//日期
String date = obj[5].toString().split(" ")[0];
//先判断记录是否存在,不存在则添加,存在则更新
sql = "select timer_id,day_count from timer_count_yxy where count_id = 10 and count_date = '"+date+"' and login_id = '"+StringEscapeUtils.escapeSql(loginid)+"' and domain = '"+StringEscapeUtils.escapeSql(domain)+"'";
List<Object> select_objects = timercountyxydao.findBySqlQuery(sql);
if(select_objects.size() > 0)//已存在,则更新记录
{
Object []arr_select_objects = (Object[])select_objects.get(0);
int timer_id = Integer.parseInt(arr_select_objects[0].toString());
int day_count = Integer.parseInt(arr_select_objects[1].toString());
day_count = day_count + count;
String hql = "update TimerCountYxy set day_count = "+day_count+" where timer_id = "+timer_id;
timercountyxydao.updateByHql(hql);
}
else//不存在,则添加记录
{
TimerCountYxy yxy1 = new TimerCountYxy();
yxy1.setCount_date(date);
yxy1.setDay(date.split("-")[2]);
yxy1.setMonth(date.split("-")[1]);
yxy1.setYear(Integer.parseInt(date.split("-")[0]));
yxy1.setLogin_id(loginid);
yxy1.setDomain(domain);
yxy1.setCount_id(10);
yxy1.setDay_count(count);
yxy1.setRecord_id("");
timercountyxydao.addPojo(yxy1);
}
}
ids = ids.substring(0, ids.length()-1);//去掉最后一个分号
//操作完毕后改变该点读表的状态为已统计
String hql = "update YxyReadingInfo set is_timer_count = 1 where yxy_reading_id in("+ids+")";
yxyreaddao.updateByHql(hql);
}
System.out.println("营销邮-按时间统计点读总数结束,结束时间:"+DateFormat.getNowDate());
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("营销邮--统计点读总数异常......");
}
}
//营销邮统计退订总数
public void yxyCountUnsubscribeMail()
{
try
{
System.out.println("营销邮-按时间统计退订总数开始,开始时间:"+DateFormat.getNowDate());
String sql = "select * from yxy_unsubscribe_info where is_timer_count = 0 LIMIT 0,100";
List<Object> objects = yxyunsubscribedao.findBySql(sql);
if(objects.size() > 0)
{
String ids = "";
for(int i = 0; i < objects.size(); i++)
{
Object []obj=(Object[])objects.get(i);
//退订id
int unsubscribe_id = Integer.parseInt(obj[0].toString());
ids += unsubscribe_id + ",";
//登录帐号
String loginid = obj[1].toString();
//登录域名
String domain = obj[2].toString();
//日期
String date = obj[4].toString().split(" ")[0];
//先判断记录是否存在,不存在则添加,存在则更新
sql = "select timer_id,day_count from timer_count_yxy where count_id = 11 and count_date = '"+date+"' and login_id = '"+StringEscapeUtils.escapeSql(loginid)+"' and domain = '"+StringEscapeUtils.escapeSql(domain)+"'";
List<Object> select_objects = timercountyxydao.findBySqlQuery(sql);
if(select_objects.size() > 0)//已存在,则更新记录
{
Object []arr_select_objects = (Object[])select_objects.get(0);
int timer_id = Integer.parseInt(arr_select_objects[0].toString());
int day_count = Integer.parseInt(arr_select_objects[1].toString());
day_count = day_count + 1;
String hql = "update TimerCountYxy set day_count = "+day_count+" where timer_id = "+timer_id;
timercountyxydao.updateByHql(hql);
}
else//不存在,则添加记录
{
TimerCountYxy yxy = new TimerCountYxy();
yxy.setCount_date(date);
yxy.setDay(date.split("-")[2]);
yxy.setMonth(date.split("-")[1]);
yxy.setYear(Integer.parseInt(date.split("-")[0]));
yxy.setLogin_id(loginid);
yxy.setDomain(domain);
yxy.setCount_id(11);
yxy.setDay_count(1);
yxy.setRecord_id("");
timercountyxydao.addPojo(yxy);
}
}
ids = ids.substring(0, ids.length()-1);//去掉最后一个分号
//操作完毕后改变该退订表的状态为已统计
String hql = "update YxyUnsubscribeInfo set is_timer_count = 1 where unsubscribe_id in("+ids+")";
yxyunsubscribedao.updateByHql(hql);
}
System.out.println("营销邮-按时间统计退订总数结束,结束时间:"+DateFormat.getNowDate());
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("营销邮--统计退订总数异常......");
}
}
//营销邮统计回复总数
public void yxyCountReplyMail()
{
try
{
System.out.println("营销邮-按时间统计回复总数开始,开始时间:"+DateFormat.getNowDate());
String sql = "select * from yxy_reply_info where is_timer_count = 0 LIMIT 0,100";
List<Object> objects = yxyreplyinfodao.findBySql(sql);
if(objects.size() > 0)
{
String ids = "";
for(int i = 0; i < objects.size(); i++)
{
Object []obj=(Object[])objects.get(i);
//回复id
int replyid = Integer.parseInt(obj[0].toString());
ids += replyid + ",";
//登录帐号
String loginid = obj[1].toString();
//登录域名
String domain = obj[2].toString();
//日期
String date = obj[3].toString().split(" ")[0];
//先判断记录是否存在,不存在则添加,存在则更新
sql = "select timer_id,day_count from timer_count_yxy where count_id = 12 and count_date = '"+date+"' and login_id = '"+StringEscapeUtils.escapeSql(loginid)+"' and domain = '"+StringEscapeUtils.escapeSql(domain)+"'";
List<Object> select_objects = timercountyxydao.findBySqlQuery(sql);
if(select_objects.size() > 0)//已存在,则更新记录
{
Object []arr_select_objects = (Object[])select_objects.get(0);
int timer_id = Integer.parseInt(arr_select_objects[0].toString());
int day_count = Integer.parseInt(arr_select_objects[1].toString());
day_count = day_count + 1;
String hql = "update TimerCountYxy set day_count = "+day_count+" where timer_id = "+timer_id;
timercountyxydao.updateByHql(hql);
}
else//不存在,则添加记录
{
TimerCountYxy yxy = new TimerCountYxy();
yxy.setCount_date(date);
yxy.setDay(date.split("-")[2]);
yxy.setMonth(date.split("-")[1]);
yxy.setYear(Integer.parseInt(date.split("-")[0]));
yxy.setLogin_id(loginid);
yxy.setDomain(domain);
yxy.setCount_id(12);
yxy.setDay_count(1);
yxy.setRecord_id("");
timercountyxydao.addPojo(yxy);
}
}
ids = ids.substring(0, ids.length()-1);//去掉最后一个分号
//操作完毕后改变该回复表的状态为已统计
String hql = "update YxyReplyInfo set is_timer_count = 1 where replyid in("+ids+")";
yxyreplyinfodao.updateByHql(hql);
}
System.out.println("营销邮-按时间统计回复总数结束,结束时间:"+DateFormat.getNowDate());
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("营销邮--统计回复总数异常......");
}
}
private TimerCountYxyDao timercountyxydao;//营销邮时间统计dao
private YxyMailDayCountDao yxymaildaycountdao;//营销邮日总统计dao
private YxyReadDao yxyreaddao;//点读dao
private YxyUnsubscribeDao yxyunsubscribedao;//退订dao
private YxyReplyInfoDao yxyreplyinfodao;//回复dao
public TimerCountYxyDao getTimercountyxydao() {
return timercountyxydao;
}
public void setTimercountyxydao(TimerCountYxyDao timercountyxydao) {
this.timercountyxydao = timercountyxydao;
}
public YxyMailDayCountDao getYxymaildaycountdao() {
return yxymaildaycountdao;
}
public void setYxymaildaycountdao(YxyMailDayCountDao yxymaildaycountdao) {
this.yxymaildaycountdao = yxymaildaycountdao;
}
public YxyReadDao getYxyreaddao() {
return yxyreaddao;
}
public void setYxyreaddao(YxyReadDao yxyreaddao) {
this.yxyreaddao = yxyreaddao;
}
public YxyUnsubscribeDao getYxyunsubscribedao() {
return yxyunsubscribedao;
}
public void setYxyunsubscribedao(YxyUnsubscribeDao yxyunsubscribedao) {
this.yxyunsubscribedao = yxyunsubscribedao;
}
public YxyReplyInfoDao getYxyreplyinfodao() {
return yxyreplyinfodao;
}
public void setYxyreplyinfodao(YxyReplyInfoDao yxyreplyinfodao) {
this.yxyreplyinfodao = yxyreplyinfodao;
}
}
... ...
package yxy.timer.webservice.interfaces;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/***
*
* @author 谢勇
* 获取邮件webservice接口
*/
@WebService(targetNamespace="http://GetMailInterfaces.interfaces.webservice.timer.yxy/",serviceName="yxymailinfoWebservice")
public interface GetMailInterfaces {
/**获取邮件详细信息*/
@WebResult(name="result")
@WebMethod
public String getMailInfo(@WebParam(name="mailid",targetNamespace="http://GetMailInterfaces.interfaces.webservice.timer.yxy/")String mailid)throws Exception;
}
... ...
package yxy.timer.webservice.interfaces;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
@WebService(targetNamespace="http://LinkManWebservice.interfaces.webservice.timer.yxy/",serviceName="linkmanWebservice")
public interface LinkManWebservice
{
@WebResult(name="result",targetNamespace="http://LinkManWebservice.interfaces.webservice.timer.yxy/")
@WebMethod
public String updateLinkMan(@WebParam(name="id",targetNamespace="http://LinkManWebservice.interfaces.webservice.timer.yxy/")int id,
@WebParam(name="full_name",targetNamespace="http://LinkManWebservice.interfaces.webservice.timer.yxy/")String full_name,
@WebParam(name="email",targetNamespace="http://LinkManWebservice.interfaces.webservice.timer.yxy/")String email);
@WebResult(name="result",targetNamespace="http://LinkManWebservice.interfaces.webservice.timer.yxy/")
@WebMethod
public String deleteLinkMan(@WebParam(name="id",targetNamespace="http://LinkManWebservice.interfaces.webservice.timer.yxy/")int id);
@WebResult(name="result",targetNamespace="http://LinkManWebservice.interfaces.webservice.timer.yxy/")
@WebMethod
public String updateCustomerToPublic(@WebParam(name="customer_id",targetNamespace="http://LinkManWebservice.interfaces.webservice.timer.yxy/")String customer_id);
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 用户地址库(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
@Entity
@Table(name="yxy_user_address")
public class YxyUserAddress implements Serializable{
private int user_addr_id;//ID
private int user_addr_type_id;//所属类别ID
private String user_loginid;//用户账号
private String user_domain;//用户所属域名
private String user_addr_name;//姓名
private String user_addr_email;//地址
private String user_addr_add_date;//地址添加日期
private String user_addr_modify_date;//地址修改日期
private String user_addr_sex;//所属地址性别
private int isrepeat;//是否重复/
private int user_addr_status;//状态
private String user_send_time;//发送时间
private int user_send_num;//发送数
private int readingnum;//点读量
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getUser_addr_id() {
return user_addr_id;
}
public void setUser_addr_id(int userAddrId) {
user_addr_id = userAddrId;
}
public int getUser_addr_type_id() {
return user_addr_type_id;
}
public void setUser_addr_type_id(int userAddrTypeId) {
user_addr_type_id = userAddrTypeId;
}
public String getUser_addr_name() {
return user_addr_name;
}
public void setUser_addr_name(String userAddrName) {
user_addr_name = userAddrName;
}
public String getUser_addr_email() {
return user_addr_email;
}
public void setUser_addr_email(String userAddrEmail) {
user_addr_email = userAddrEmail;
}
public String getUser_addr_add_date() {
return user_addr_add_date;
}
public void setUser_addr_add_date(String userAddrAddDate) {
user_addr_add_date = userAddrAddDate;
}
public String getUser_addr_modify_date() {
return user_addr_modify_date;
}
public void setUser_addr_modify_date(String userAddrModifyDate) {
user_addr_modify_date = userAddrModifyDate;
}
public String getUser_addr_sex() {
return user_addr_sex;
}
public void setUser_addr_sex(String userAddrSex) {
user_addr_sex = userAddrSex;
}
@Transient
public int getIsrepeat() {
return isrepeat;
}
public void setIsrepeat(int isrepeat) {
this.isrepeat = isrepeat;
}
public String getUser_loginid() {
return user_loginid;
}
public void setUser_loginid(String userLoginid) {
user_loginid = userLoginid;
}
public String getUser_domain() {
return user_domain;
}
public void setUser_domain(String userDomain) {
user_domain = userDomain;
}
public int getUser_addr_status() {
return user_addr_status;
}
public void setUser_addr_status(int userAddrStatus) {
user_addr_status = userAddrStatus;
}
public String getUser_send_time() {
return user_send_time;
}
public void setUser_send_time(String user_send_time) {
this.user_send_time = user_send_time;
}
public int getUser_send_num() {
return user_send_num;
}
public void setUser_send_num(int user_send_num) {
this.user_send_num = user_send_num;
}
public int getReadingnum() {
return readingnum;
}
public void setReadingnum(int readingnum) {
this.readingnum = readingnum;
}
}
... ...
package yxy.timer.sale;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* sale100个人版营销邮
* @author 陈南巧
* @date 2019-101-16
*/
@Entity
@Table(name="yxy_link_info")
public class YxyLinkInfo implements Serializable{
private static final long serialVersionUID = 1L;
private int id;//主键id
private int user_id;//用户id
private int company_id;//企业id
private String link_email;//邮箱
private String mail_uid;//邮件唯一码
private String link_url;//访问url
private String user_agent;
private String user_agent_all;
private String ip;
private String area;
private String create_time;
private int link_year;
private int link_month;
private int link_day;
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public int getCompany_id() {
return company_id;
}
public void setCompany_id(int company_id) {
this.company_id = company_id;
}
public String getLink_email() {
return link_email;
}
public void setLink_email(String link_email) {
this.link_email = link_email;
}
public String getMail_uid() {
return mail_uid;
}
public void setMail_uid(String mail_uid) {
this.mail_uid = mail_uid;
}
public String getLink_url() {
return link_url;
}
public void setLink_url(String link_url) {
this.link_url = link_url;
}
public String getUser_agent() {
return user_agent;
}
public void setUser_agent(String user_agent) {
this.user_agent = user_agent;
}
public String getUser_agent_all() {
return user_agent_all;
}
public void setUser_agent_all(String user_agent_all) {
this.user_agent_all = user_agent_all;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public String getCreate_time() {
return create_time;
}
public void setCreate_time(String create_time) {
this.create_time = create_time;
}
public int getLink_year() {
return link_year;
}
public void setLink_year(int link_year) {
this.link_year = link_year;
}
public int getLink_month() {
return link_month;
}
public void setLink_month(int link_month) {
this.link_month = link_month;
}
public int getLink_day() {
return link_day;
}
public void setLink_day(int link_day) {
this.link_day = link_day;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("YxyLinkInfo [id=");
builder.append(id);
builder.append(", user_id=");
builder.append(user_id);
builder.append(", company_id=");
builder.append(company_id);
builder.append(", link_email=");
builder.append(link_email);
builder.append(", mail_uid=");
builder.append(mail_uid);
builder.append(", link_url=");
builder.append(link_url);
builder.append(", user_agent=");
builder.append(user_agent);
builder.append(", user_agent_all=");
builder.append(user_agent_all);
builder.append(", ip=");
builder.append(ip);
builder.append(", area=");
builder.append(area);
builder.append(", create_time=");
builder.append(create_time);
builder.append(", link_year=");
builder.append(link_year);
builder.append(", link_month=");
builder.append(link_month);
builder.append(", link_day=");
builder.append(link_day);
builder.append("]");
return builder.toString();
}
}
... ...
package yxy.timer.dao;
import java.util.List;
import yxy.timer.pojo.YxyReadingInfo;
/*
* 点读DAO
*/
public interface YxyReadDao
{
/**HQL查询*/
public List<YxyReadingInfo> findByHql(String hql)throws Exception;
/**插入*/
public int insertRead(YxyReadingInfo o)throws Exception;
/**批量插入*/
public void insertReadPi(List<YxyReadingInfo> o)throws Exception;
/**HQL查询指定条数据*/
public List findByHqlNum(String hql)throws Exception;
public int findByHqlCount(String hql)throws Exception;
/**sql查询*/
public List<Object> findBySql(String sql) throws Exception;
/**sql更新*/
public void updateSql(String sql) throws Exception;
/**HQL更新*/
public void updateByHql(String hql)throws Exception;
}
... ...
package yxy.timer.dao.impl;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import yxy.timer.dao.HibernateBaseDAO;
public abstract class HibernateBaseDAOImpl<T extends Serializable ,Pk extends Serializable> extends HibernateDaoSupport
implements HibernateBaseDAO<T, Pk>
{
//------------------------------常用CRUD操作-----------------------------------------
/**增加记录 (返回新增加记录的主键)*/
public int add(T o) throws Exception {
return (Integer) super.getHibernateTemplate().save(o);
}
/**增加记录(无返回�?)*/
public void adddate(T o) throws Exception
{
super.getHibernateTemplate().save(o);
}
/**修改记录*/
public void update(T o) throws Exception {
super.getHibernateTemplate().update(o);
}
/**删除记录*/
public void del(T o) throws Exception {
super.getHibernateTemplate().delete(o);
}
/**添加或更改*/
public void saveOrUpdate(T o) throws Exception {
super.getHibernateTemplate().saveOrUpdate(o);
}
/**根据ID获取�?��数据*/
@SuppressWarnings("unchecked")
public T get(Class<T> t,Pk pk) throws Exception {
return (T) super.getHibernateTemplate().get(t, pk);
}
/**根据ID获取�?��数据*/
@SuppressWarnings("unchecked")
public T load(Class<T> t,Pk pk) throws Exception {
return (T) super.getHibernateTemplate().load(t, pk);
}
/**根据hql进行条件查询*/
@SuppressWarnings("unchecked")
public List<T> getAll(String hql) throws Exception {
return super.getHibernateTemplate().find(hql);
}
/**条件查询*/
@SuppressWarnings("unchecked")
public List<T> getAll(String whereHql, Object... params) throws Exception {
return super.getHibernateTemplate().find(whereHql,params);
}
/**根据条件和参数查询�?记录*/
public int count(String hql, Object... params) throws Exception {
return Integer.valueOf(super.getHibernateTemplate().find(hql,params).get(0).toString());
}
/**根据条件查询总记录*/
public int count(String hql) throws Exception {
List result=super.getHibernateTemplate().find(hql);
if(result.size()>0&&result.get(0)!=null&&!result.get(0).equals("null")){
return Integer.valueOf(result.get(0).toString());
}else{
return 0;
}
//return Integer.valueOf(super.getHibernateTemplate().find(hql).get(0).toString());
}
/**批量插入*/
public void addPi(List<T> o)throws Exception{
Session session =null;
if(o!=null){
session=super.getHibernateTemplate().getSessionFactory().openSession();
session.beginTransaction();
for(int i=0;i<o.size();i++){
session.saveOrUpdate(o.get(i));
if(i%10==0){
session.flush();
session.clear();
}
}
session.getTransaction().commit();
}
session.close();
}
/**Hql语句修改删除记录*/
public int updateorDelByHql(String hql){
Query query = null;
int result=0;
Session session =null;
try {
session=super.getHibernateTemplate().getSessionFactory().openSession();
query = session.createQuery(hql);
result = query.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
session.clear();
session.close();
}
}
return result;
}
/**查询设定的记录条数据*/
public List<T> findBySet(String hql,int num){
Session session = null;
Query query=null;
try {
session=super.getHibernateTemplate().getSessionFactory().openSession();
query = session.createQuery(hql);
query.setMaxResults(num);
return query.list();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
session.clear();
session.close();
}
}
return null;
}
/**sql语句查询*/
public List findBySql(String sql) throws Exception{
Session session=null;
try {
session =super.getHibernateTemplate().getSessionFactory().
openSession();
return session.createSQLQuery(sql).list();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
session.clear();
session.close();
}
}
return null;
}
/**sql语句修改删除记录*/
public int updateorDelSql(String sql){
Query query = null;
int result=0;
Session session =null;
try {
session=super.getHibernateTemplate().getSessionFactory().openSession();
query = session.createSQLQuery(sql);
result = query.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
session.clear();
session.close();
}
}
return result;
}
}
... ...
package yxy.timer.dao;
import java.util.List;
import yxy.timer.pojo.YxySendMailMaster;
/*
* 邮件dao
*/
public interface YxySendMailMasterDao {
//查询邮件
public List<YxySendMailMaster> findByHql(String hql)throws Exception;
//批量更新实体
public void updateByMaster(List<YxySendMailMaster> o)throws Exception;
//sql查询
public List<Object> findbysql(String sql)throws Exception;
//sql更新
public void updatebysql(String sql)throws Exception;
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 营销中心表实体类
* 开始时间: 2015.04.07
* 程 序 员: 蒋俭
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
@Entity
@Table(name="yxy_user_signature")
public class YxyUserSignature implements Serializable {
private int id;
private String title;
private String body;
private String loginid;
private String domain;
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getLoginid() {
return loginid;
}
public void setLoginid(String loginid) {
this.loginid = loginid;
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
@Override
public String toString() {
return "YxyUserSignature [body=" + body + ", domain=" + domain
+ ", id=" + id + ", loginid=" + loginid + ", title="
+ title + "]";
}
}
... ...
package yxy.timer.sale;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
* sale100个人版营销邮
* @author 陈南巧
* @date 2019-101-16
*/
@Entity
@Table(name="yxy_reading_info")
public class YxyReadingInfo implements Serializable{
private static final long serialVersionUID = 1L;
private int yxy_reading_id;
private String yxy_reading_loginid;
private String yxy_reading_domain;
private String yxy_reading_mailuid;
private String yxy_reading_ip;
private String yxy_reading_date;
private String yxy_reading_email;
private String yxy_reading_area;
private int yxy_reading_num;
private int yxy_is_export;
private int yxy_reading_month;
private int yxy_reading_year;
private int isnew;
private int is_timer_count;
private String yxy_useragent;
private String yxy_useragent_all;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getYxy_reading_id() {
return yxy_reading_id;
}
public void setYxy_reading_id(int yxyReadingId) {
yxy_reading_id = yxyReadingId;
}
public String getYxy_reading_mailuid() {
return yxy_reading_mailuid;
}
public void setYxy_reading_mailuid(String yxyReadingMailuid) {
yxy_reading_mailuid = yxyReadingMailuid;
}
public String getYxy_reading_ip() {
return yxy_reading_ip;
}
public void setYxy_reading_ip(String yxyReadingIp) {
yxy_reading_ip = yxyReadingIp;
}
public String getYxy_reading_date() {
return yxy_reading_date;
}
public void setYxy_reading_date(String yxyReadingDate) {
yxy_reading_date = yxyReadingDate;
}
public String getYxy_reading_email() {
return yxy_reading_email;
}
public void setYxy_reading_email(String yxyReadingEmail) {
yxy_reading_email = yxyReadingEmail;
}
public String getYxy_reading_loginid() {
return yxy_reading_loginid;
}
public void setYxy_reading_loginid(String yxyReadingLoginid) {
yxy_reading_loginid = yxyReadingLoginid;
}
public String getYxy_reading_domain() {
return yxy_reading_domain;
}
public void setYxy_reading_domain(String yxyReadingDomain) {
yxy_reading_domain = yxyReadingDomain;
}
public int getYxy_is_export() {
return yxy_is_export;
}
public void setYxy_is_export(int yxyIsExport) {
yxy_is_export = yxyIsExport;
}
public String getYxy_reading_area() {
return yxy_reading_area;
}
public void setYxy_reading_area(String yxyReadingArea) {
yxy_reading_area = yxyReadingArea;
}
public int getYxy_reading_num() {
return yxy_reading_num;
}
public void setYxy_reading_num(int yxyReadingNum) {
yxy_reading_num = yxyReadingNum;
}
public int getYxy_reading_month() {
return yxy_reading_month;
}
public void setYxy_reading_month(int yxyReadingMonth) {
yxy_reading_month = yxyReadingMonth;
}
public int getYxy_reading_year() {
return yxy_reading_year;
}
public void setYxy_reading_year(int yxyReadingYear) {
yxy_reading_year = yxyReadingYear;
}
@Transient
public int getIsnew() {
return isnew;
}
public void setIsnew(int isnew) {
this.isnew = isnew;
}
public int getIs_timer_count() {
return is_timer_count;
}
public void setIs_timer_count(int isTimerCount) {
is_timer_count = isTimerCount;
}
public String getYxy_useragent() {
return yxy_useragent;
}
public void setYxy_useragent(String yxy_useragent) {
this.yxy_useragent = yxy_useragent;
}
public String getYxy_useragent_all() {
return yxy_useragent_all;
}
public void setYxy_useragent_all(String yxy_useragent_all) {
this.yxy_useragent_all = yxy_useragent_all;
}
}
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxySysParamaterDao;
import yxy.timer.pojo.YxySysParamaters;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 控制参数DAO实现类(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
public class YxySysParamaterDaoImpl extends HibernateBaseDAOImpl<YxySysParamaters, Long> implements YxySysParamaterDao{
/**HQL查询*/
public List<YxySysParamaters> findByHql(String hql)throws Exception{
return super.getAll(hql);
}
}
... ...
package yxy.timer.dao.impl;
import yxy.timer.dao.YxyUserAddressDao;
import yxy.timer.pojo.YxyUserAddress;
/**
*
* 地址dao实现类
*
*/
public class YxyUserAddressDaoImpl extends HibernateBaseDAOImpl<YxyUserAddress, Long>implements YxyUserAddressDao{
/**HQL删除*/
public void delByHql(String hql) throws Exception {
super.updateorDelByHql(hql);
}
}
... ...
package yxy.timer.sale;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 邮件基本信息实体(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
@Entity
@Table(name="yxy_send_mail_master_base")
public class YxySendMailMasterBase implements Serializable{
private static final long serialVersionUID = 1L;
private int send_mail_id;//发送邮件ID
private String user_loginid;//创建用户账号
private String user_domain;//创建用户域名
private String create_time;//创建时间
private String mail_account;//发送邮箱账号
private String sender;//发件人
private String send_email;//发件人邮箱
private String reply_email;//回复邮箱
private String subject;//主题
private String body;//邮件正文
private int attachment_count;//包含附件数量
private String attarchment_path ;//附件保存路径
private String image_path;//图片保存路径
private String eml_file_path;//EML文件路径
private String eml_encode_key;//EML文件KEY
private int mail_size;//邮件大小
private String mail_uid; //mail唯一性标识
private int un_person;
private int reading_tol;
private Integer reply_mail_count;//该邮件的回复量
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getSend_mail_id() {
return send_mail_id;
}
public void setSend_mail_id(int sendMailId) {
send_mail_id = sendMailId;
}
public String getCreate_time() {
return create_time;
}
public void setCreate_time(String createTime) {
create_time = createTime;
}
public String getMail_account() {
return mail_account;
}
public void setMail_account(String mailAccount) {
mail_account = mailAccount;
}
public String getSender() {
return sender;
}
public void setSender(String sender) {
this.sender = sender;
}
public String getSend_email() {
return send_email;
}
public void setSend_email(String sendEmail) {
send_email = sendEmail;
}
public String getReply_email() {
return reply_email;
}
public void setReply_email(String replyEmail) {
reply_email = replyEmail;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
@Transient
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public int getAttachment_count() {
return attachment_count;
}
public void setAttachment_count(int attachmentCount) {
attachment_count = attachmentCount;
}
public String getAttarchment_path() {
return attarchment_path;
}
public void setAttarchment_path(String attarchmentPath) {
attarchment_path = attarchmentPath;
}
public String getImage_path() {
return image_path;
}
public void setImage_path(String imagePath) {
image_path = imagePath;
}
public String getEml_file_path() {
return eml_file_path;
}
public void setEml_file_path(String emlFilePath) {
eml_file_path = emlFilePath;
}
public String getEml_encode_key() {
return eml_encode_key;
}
public void setEml_encode_key(String emlEncodeKey) {
eml_encode_key = emlEncodeKey;
}
public int getMail_size() {
return mail_size;
}
public void setMail_size(int mailSize) {
mail_size = mailSize;
}
public String getMail_uid() {
return mail_uid;
}
public void setMail_uid(String mailUid) {
mail_uid = mailUid;
}
public String getUser_loginid() {
return user_loginid;
}
public void setUser_loginid(String userLoginid) {
user_loginid = userLoginid;
}
public String getUser_domain() {
return user_domain;
}
public void setUser_domain(String userDomain) {
user_domain = userDomain;
}
public int getUn_person() {
return un_person;
}
public void setUn_person(int unPerson) {
un_person = unPerson;
}
public int getReading_tol() {
return reading_tol;
}
public void setReading_tol(int readingTol) {
reading_tol = readingTol;
}
public Integer getReply_mail_count() {
return reply_mail_count;
}
public void setReply_mail_count(Integer reply_mail_count) {
this.reply_mail_count = reply_mail_count;
}
}
... ...
package yxy.timer.service;
import java.util.List;
import yxy.timer.pojo.YxyMailNumCount;
import yxy.timer.pojo.YxyReplyInfo;
public interface YxyReplyInfoService {
/**批量插入*/
public void addReply(YxyReplyInfo reply)throws Exception;
/**查询指定量数据*/
public List<YxyReplyInfo> findByHqlSet(String hql,int num)throws Exception;
/**查询邮件对应的统计数据*/
public YxyMailNumCount getYxyMailNumCount(String mail_uid)throws Exception;
/**添加或更新邮件对应的统计数据*/
public void addEditYxyMailNumCount(YxyMailNumCount count)throws Exception;
}
... ...
#Wed Nov 12 15:37:05 CST 2014
eclipse.preferences.version=1
encoding/<project>=UTF-8
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name="yxy_reading_info")
public class YxyReadingInfo implements Serializable{
private int yxy_reading_id;
private String yxy_reading_loginid;
private String yxy_reading_domain;
private String yxy_reading_mailuid;/**�ʼ�Ψһ��*/
private String yxy_reading_ip;/**���IP*/
private String yxy_reading_date;/**���ʱ��*/
private String yxy_reading_email; /**����ߵ�ַ*/
private String yxy_reading_area;//��������
private int yxy_reading_num;//�����
private int yxy_is_export;//�Ƿ񵼳���
private int yxy_reading_month;
private int yxy_reading_year;
private int isnew;
private int is_timer_count;//定时器是否统计过,0没统计,1已统计
private String yxy_useragent;
private String yxy_useragent_all;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getYxy_reading_id() {
return yxy_reading_id;
}
public void setYxy_reading_id(int yxyReadingId) {
yxy_reading_id = yxyReadingId;
}
public String getYxy_reading_mailuid() {
return yxy_reading_mailuid;
}
public void setYxy_reading_mailuid(String yxyReadingMailuid) {
yxy_reading_mailuid = yxyReadingMailuid;
}
public String getYxy_reading_ip() {
return yxy_reading_ip;
}
public void setYxy_reading_ip(String yxyReadingIp) {
yxy_reading_ip = yxyReadingIp;
}
public String getYxy_reading_date() {
return yxy_reading_date;
}
public void setYxy_reading_date(String yxyReadingDate) {
yxy_reading_date = yxyReadingDate;
}
public String getYxy_reading_email() {
return yxy_reading_email;
}
public void setYxy_reading_email(String yxyReadingEmail) {
yxy_reading_email = yxyReadingEmail;
}
public String getYxy_reading_loginid() {
return yxy_reading_loginid;
}
public void setYxy_reading_loginid(String yxyReadingLoginid) {
yxy_reading_loginid = yxyReadingLoginid;
}
public String getYxy_reading_domain() {
return yxy_reading_domain;
}
public void setYxy_reading_domain(String yxyReadingDomain) {
yxy_reading_domain = yxyReadingDomain;
}
public int getYxy_is_export() {
return yxy_is_export;
}
public void setYxy_is_export(int yxyIsExport) {
yxy_is_export = yxyIsExport;
}
public String getYxy_reading_area() {
return yxy_reading_area;
}
public void setYxy_reading_area(String yxyReadingArea) {
yxy_reading_area = yxyReadingArea;
}
public int getYxy_reading_num() {
return yxy_reading_num;
}
public void setYxy_reading_num(int yxyReadingNum) {
yxy_reading_num = yxyReadingNum;
}
public int getYxy_reading_month() {
return yxy_reading_month;
}
public void setYxy_reading_month(int yxyReadingMonth) {
yxy_reading_month = yxyReadingMonth;
}
public int getYxy_reading_year() {
return yxy_reading_year;
}
public void setYxy_reading_year(int yxyReadingYear) {
yxy_reading_year = yxyReadingYear;
}
@Transient
public int getIsnew() {
return isnew;
}
public void setIsnew(int isnew) {
this.isnew = isnew;
}
public int getIs_timer_count() {
return is_timer_count;
}
public void setIs_timer_count(int isTimerCount) {
is_timer_count = isTimerCount;
}
public String getYxy_useragent() {
return yxy_useragent;
}
public void setYxy_useragent(String yxy_useragent) {
this.yxy_useragent = yxy_useragent;
}
public String getYxy_useragent_all() {
return yxy_useragent_all;
}
public void setYxy_useragent_all(String yxy_useragent_all) {
this.yxy_useragent_all = yxy_useragent_all;
}
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="yxy_reply_info")
public class YxyReplyInfo implements Serializable{
private static final long serialVersionUID = 1L;
private int replyid;
private String loginid;//用户
private String domain;//所属域名
private String replydate;//回复时间
private String mailuid;//邮件唯一码
private int replymonth;//回复月份
private String replyemail;//回复地址
private String replyname;//回复都姓名
private String nowdate;//当前时间
private int is_timer_count;//定时器是否统计过,0没统计,1已统计
private String reason;//其它信息
private String ip;//ip地址
private String area;//ip所属地区
private int replyyear;//回复年份
private int replyday;//回复日份
@Id
public int getReplyid() {
return replyid;
}
public void setReplyid(int replyid) {
this.replyid = replyid;
}
public String getLoginid() {
return loginid;
}
public void setLoginid(String loginid) {
this.loginid = loginid;
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
public String getReplydate() {
return replydate;
}
public void setReplydate(String replydate) {
this.replydate = replydate;
}
public String getMailuid() {
return mailuid;
}
public void setMailuid(String mailuid) {
this.mailuid = mailuid;
}
public int getReplymonth() {
return replymonth;
}
public void setReplymonth(int replymonth) {
this.replymonth = replymonth;
}
public String getReplyemail() {
return replyemail;
}
public void setReplyemail(String replyemail) {
this.replyemail = replyemail;
}
public String getReplyname() {
return replyname;
}
public void setReplyname(String replyname) {
this.replyname = replyname;
}
public String getNowdate() {
return nowdate;
}
public void setNowdate(String nowdate) {
this.nowdate = nowdate;
}
public int getIs_timer_count() {
return is_timer_count;
}
public void setIs_timer_count(int isTimerCount) {
is_timer_count = isTimerCount;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public int getReplyyear() {
return replyyear;
}
public void setReplyyear(int replyyear) {
this.replyyear = replyyear;
}
public int getReplyday() {
return replyday;
}
public void setReplyday(int replyday) {
this.replyday = replyday;
}
}
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxyLinkInfoDao;
import yxy.timer.dao.YxyReplyInfoDao;
import yxy.timer.pojo.YxyLinkInfo;
import yxy.timer.pojo.YxyReplyInfo;
/**
*
* 回复dao实现类
*
*/
public class YxyLinkInfoDaoImpl extends HibernateBaseDAOImpl<YxyLinkInfo, Long> implements YxyLinkInfoDao{
/**实体插入*/
public int addPojo(YxyLinkInfo reply)throws Exception{
return super.add(reply);
}
/**查询指定量数据*/
public List<YxyLinkInfo> findByHqlSet(String hql,int num)throws Exception
{
return super.findBySet(hql, num);
}
/**统计条数*/
public int count(String hql)throws Exception
{
return super.count(hql);
}
/**根据sql查询*/
public List<Object> findBySql(String sql)throws Exception
{
return super.findBySql(sql);
}
/**hql更新*/
public void updateByHql(String hql)throws Exception
{
super.updateorDelByHql(hql);
}
/**实体编辑*/
public void updatePojo(YxyLinkInfo o)throws Exception{
super.update(o);
}
}
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxyUnsubscribeDao;
import yxy.timer.pojo.YxyUnsubscribeInfo;
/**
*
* 退订dao实现类
*
*/
public class YxyUnsubscribeDaoImpl extends HibernateBaseDAOImpl<YxyUnsubscribeInfo, Long> implements YxyUnsubscribeDao{
/**HQL查询*/
public List<YxyUnsubscribeInfo> findByHql(String hql) throws Exception {
return super.getAll(hql);
}
/**查询指定量数据*/
public List<YxyUnsubscribeInfo> findByHqlSet(String hql,int num)throws Exception{
return super.findBySet(hql, num);
}
/**批量插入退订信息*/
public void insertUnPi(List<YxyUnsubscribeInfo> o) throws Exception {
super.addPi(o);
}
/**sql查询*/
public List<Object> findBySql(String sql) throws Exception
{
return super.findBySql(sql);
}
/**HQL更新*/
public void updateByHql(String hql)throws Exception
{
super.updateorDelByHql(hql);
}
public int insertUn(YxyUnsubscribeInfo o)throws Exception{
return super.add(o);
}
public int findByHqlCount(String hql)throws Exception{
return super.count(hql);
}
}
... ...
package yxy.timer.dao;
import java.io.Serializable;
import java.util.List;
public interface HibernateBaseDAO<T extends Serializable ,Pk extends Serializable> {
/**
* ------------------------------常用CRUD操作-----------------------------------------
*/
/**增加记录**/
int add(T o)throws Exception;
/**修改记录*/
void update(T o)throws Exception;
/**删除记录*/
void del(T o)throws Exception;
/**添加或更�?/
void saveOrUpdate(T o)throws Exception;
/**根据ID获取�?��数据*/
T get(Class<T> t,Pk pk)throws Exception;
/**根据ID获取�?��数据*/
T load(Class<T> t,Pk pk)throws Exception;
/**根据hql进行条件查询*/
List<T> getAll(String hql)throws Exception;
/**条件查询*/
List<T> getAll(String whereHql,Object...params)throws Exception;
/*
* -------------------------------查询总记录数-----------------------------------------
*/
/**根据条件查询总记�?/
public int count(String hql) throws Exception;
/**根据条件和参数查询�?记录*/
public int count(String hql, Object... params) throws Exception;
}
... ...
package yxy.timer.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="yxy_mail_num_count")
public class YxyMailNumCount implements Serializable{
private static final long serialVersionUID = 1L;
private int id;//主键id
private String mail_uid;//邮件唯一码
private int read_all;//阅读总数
private int read_person;//阅读人数
private int unsub_person;//退订人数
private int replay_person;//回复人数
private int open_url;//打开链接次数
private int open_url_all;//打开链接总数
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getMail_uid() {
return mail_uid;
}
public void setMail_uid(String mail_uid) {
this.mail_uid = mail_uid;
}
public int getRead_all() {
return read_all;
}
public void setRead_all(int read_all) {
this.read_all = read_all;
}
public int getRead_person() {
return read_person;
}
public void setRead_person(int read_person) {
this.read_person = read_person;
}
public int getUnsub_person() {
return unsub_person;
}
public void setUnsub_person(int unsub_person) {
this.unsub_person = unsub_person;
}
public int getReplay_person() {
return replay_person;
}
public void setReplay_person(int replay_person) {
this.replay_person = replay_person;
}
public int getOpen_url() {
return open_url;
}
public void setOpen_url(int open_url) {
this.open_url = open_url;
}
public int getOpen_url_all() {
return open_url_all;
}
public void setOpen_url_all(int open_url_all) {
this.open_url_all = open_url_all;
}
}
... ...
#Wed Nov 12 15:31:05 CST 2014
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.5
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxyUserSetDao;
import yxy.timer.pojo.YxyUserSet;
/**
*
* 用户设置dao实现类
*
*/
public class YxyUserSetDaoImpl extends HibernateBaseDAOImpl<YxyUserSet, Long> implements YxyUserSetDao{
/**查询所有用户设置信息*/
public List<YxyUserSet> findAllSet() throws Exception {
String hql="from YxyUserSet";
return super.getAll(hql);
}
}
... ...
package yxy.timer.service;
import java.util.List;
import yxy.timer.pojo.YxyReadingDayInfo;
/**
* 点读service
*/
public interface YxyReadService {
/**查询所有点读信息*/
public List<yxy.timer.pojo.YxyReadingInfo> findAllReadinfo(String nowdate)throws Exception;
/**批量插入*/
public void insertReadPi(List<yxy.timer.pojo.YxyReadingInfo> o)throws Exception;
/**实体插入*/
public int insertRead(yxy.timer.pojo.YxyReadingInfo o)throws Exception;
/**查询退订信息*/
public List<yxy.timer.pojo.YxyUnsubscribeInfo> findUnInfoSet(String hql,int num)throws Exception;
/**批量插入退订信息*/
public void insertUnPi(List<yxy.timer.pojo.YxyUnsubscribeInfo> o)throws Exception;
/**插入退订信息*/
public int insertUn(yxy.timer.pojo.YxyUnsubscribeInfo o)throws Exception;
/**查询所有点读信息1000条*/
public List<yxy.timer.pojo.YxyReadingInfo> findAllRead()throws Exception;
/**查询今日点读信息表*/
public List<YxyReadingDayInfo> findDayRead(int day)throws Exception;
/**清除今日点读信息表*/
public void updateDayRead()throws Exception;
/**今日批量插入*/
public void insertDayReadPi(List<YxyReadingDayInfo> list)throws Exception;
/**sql更新*/
public void updateBySql(String sql)throws Exception;
/**sql查询*/
public List<Object> findBySqlQuery(String sql)throws Exception;
/**查询是否有记录*/
public int findisRecode(String hql)throws Exception;
/**查询邮件对应的统计数据*/
public yxy.timer.pojo.YxyMailNumCount getYxyMailNumCount(String mail_uid)throws Exception;
/**添加或更新邮件对应的统计数据*/
public void addEditYxyMailNumCount(yxy.timer.pojo.YxyMailNumCount count)throws Exception;
/**查询邮件对应的统计数据(个人版sale100)*/
public yxy.timer.sale.YxyMailNumCountInfo getYxyMailNumCount2(String mail_uid)throws Exception;
/**查询是否有记录(个人版sale100)*/
public int findisRecode2(String hql)throws Exception;
/**实体插入(个人版sale100)*/
public int insertRead2(yxy.timer.sale.YxyReadingInfo o)throws Exception;
/**添加或更新邮件对应的统计数据(个人版sale100)*/
public void addEditYxyMailNumCount2(yxy.timer.sale.YxyMailNumCountInfo count)throws Exception;
/**插入退订信息*/
public int insertUn2(yxy.timer.sale.YxyUnsubscribeInfo o)throws Exception;
}
... ...
package yxy.timer.dao.impl;
import java.util.List;
import yxy.timer.dao.YxyMailNumCountInfoSaleDao;
import yxy.timer.sale.YxyMailNumCountInfo;
public class YxyMailNumCountInfoSaleDaoImpl extends SaleHibernateBaseDAOImpl<YxyMailNumCountInfo, Long> implements YxyMailNumCountInfoSaleDao{
/**实体插入*/
public int addPojo(YxyMailNumCountInfo o)throws Exception{
return super.add(o);
}
/**实体编辑*/
public void updatePojo(YxyMailNumCountInfo o)throws Exception{
super.update(o);
}
/**HQL查询*/
public List<YxyMailNumCountInfo> findByHql(String hql)throws Exception{
return super.getAll(hql);
}
/**指定条记录*/
public List<YxyMailNumCountInfo> findByHqlSet(String hql,int num)throws Exception{
return super.findBySet(hql, num);
}
/**SQL查询*/
public List<Object> findBySqlQuery(String sql)throws Exception{
return super.findBySql(sql);
}
/**HQL更新*/
public void updateByHql(String hql)throws Exception{
super.updateorDelByHql(hql);
}
}
... ...
package yxy.timer.dao;
import java.util.List;
import yxy.timer.pojo.YxyUserSet;
/*
* 用户设置dao
*/
public interface YxyUserSetDao {
/**查询所有用户设置信息*/
public List<YxyUserSet> findAllSet()throws Exception;
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<!-- YxyTimer webservice Wsdl模块配置 -->
<bean id="linkmanWebserviceWsdl" class="yxy.timer.webservice.interfaces.impl.LinkManWebserviceImpl" />
<!-- 客户分类 webservice wsdl 配置 -->
<bean id="typeWebserviceWsdl" class="yxy.timer.webservice.interfaces.impl.CustomerTypeWebserviceImpl" />
<!-- 用户签名 webservice wsdl 配置 -->
<bean id="signatureWebserviceWsdl" class="yxy.timer.webservice.interfaces.impl.UserSignatureWebserviceImpl"/>
<!-- 获取邮件基本信息webservice wsdl配置 -->
<bean id="getmailinfoWsdl" class="yxy.timer.webservice.interfaces.impl.GetMailInterfacesImpl">
<property name="yxysendmailmasterbasedao" ref="yxysendmailmasterbasedao"></property>
<property name="yxysysparamaterservice" ref="yxysysparamaterservice"></property>
</bean>
<!-- webmail统计营销邮数据 wsdl 配置 -->
<bean id="yxycountwebservicewsdl" class="yxy.timer.webservice.interfaces.impl.YxyCountWebserviceImpl">
<property name="timercountyxydao" ref="timercountyxydao"></property>
</bean>
<!--联系人 webservice Wsdl访问方式 -->
<jaxws:server id="linkmanWebservice" serviceClass="yxy.timer.webservice.interfaces.impl.LinkManWebserviceImpl" address="/linkmanWebservice">
<jaxws:serviceBean>
<ref bean="linkmanWebserviceWsdl" />
</jaxws:serviceBean>
</jaxws:server>
<!-- 客户分类 webservice Wsdl访问方式 -->
<jaxws:server id="typeWebservice" serviceClass="yxy.timer.webservice.interfaces.impl.CustomerTypeWebserviceImpl" address="/typeWebservice">
<jaxws:serviceBean>
<ref bean="typeWebserviceWsdl"/>
</jaxws:serviceBean>
</jaxws:server>
<!-- 用户签名webservice Wsdl访问方式 -->
<jaxws:server id="signatueWebservice" serviceClass="yxy.timer.webservice.interfaces.impl.UserSignatureWebserviceImpl" address="/signatureWebservice">
<jaxws:serviceBean>
<ref bean="signatureWebserviceWsdl"/>
</jaxws:serviceBean>
</jaxws:server>
<!-- webmail统计营销邮数据 -->
<jaxws:server id="yxycountwebservice" serviceClass="yxy.timer.webservice.interfaces.impl.YxyCountWebserviceImpl" address="/yxycountWebservice">
<jaxws:serviceBean>
<ref bean="yxycountwebservicewsdl"/>
</jaxws:serviceBean>
</jaxws:server>
<!-- 获取邮件基本信息webservice wsdl配置 -->
<jaxws:server id="getmailinfowebservice" serviceClass="yxy.timer.webservice.interfaces.impl.GetMailInterfacesImpl" address="/yxymailinfoWebservice">
<jaxws:serviceBean>
<ref bean="getmailinfoWsdl"/>
</jaxws:serviceBean>
</jaxws:server>
</beans>
\ No newline at end of file
... ...