06d388301524954c5bcfab65e53d7c72f5351dbe.svn-base
7.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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;
}
}