00aef788e34dcb4ad22e88e440c817400c104eaa.svn-base
3.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
package com.espeed.service.impl;
import java.util.List;
import java.util.Map;
import com.espeed.dao.YxyMailCountDao;
import com.espeed.dao.YxyMailDayCountDao;
import com.espeed.dao.YxyMailMonthCountDao;
import com.espeed.service.MailSendVerificationService;
public class MailSendVerificationServiceImpl implements MailSendVerificationService {
/**用户发送量判断*/
public int VerificationSendNum(String loginid, String domain,int commitnum, Map<String,String> usergraph,String time) throws Exception {
//日发量限制
int daysendBig=Integer.parseInt(usergraph.get("yxy_day_send_mail_limit").toString());//日最大量
//月发量限制
int monthsendBig=Integer.parseInt(usergraph.get("yxy_month_send_mail_limit").toString());//月最大量
//单次最大发送量限制
int onesendBig=Integer.parseInt(usergraph.get("yxy_single_send_num").toString());//单次最大量
//总最大发量(-1无限制)
int tolBig=Integer.parseInt(usergraph.get("yxy_sum_send").toString());
//日已发量
String dayhql="select yxy_day_count_tol_num from YxyMailDayCount where yxy_day_count_loiginid='"+loginid+"' and yxy_day_count_domain='"+domain+"' and yxy_day_count_date='"+time+"'";
int daysendMax=yxymaildaycountdao.findByHqlCount(dayhql);
//判断是否满了
if(daysendMax+commitnum>=daysendBig){
return -2;//日已发量满
}
//月已发量
String monthdate=time.substring(0,time.length()-3);
String monthhql="select yxy_month_count_tol_num from YxyMailMonthCount where yxy_month_count_loginid='"+loginid+"' and yxy_month_count_domain='"+domain+"' and yxy_month_count_date='"+monthdate+"'";
int monthsendMax=yxymailmonthcountdao.findByHqlCount(monthhql);//当月已发量
//判断是否满了
if(monthsendMax+commitnum>=monthsendBig){
return -3;//月已发量满
}
//总量
String tolhql="select yxy_count_tol_num from YxyMailCount where yxy_count_loginid='"+loginid+"' and yxy_count_domain='"+domain+"'";
int tolNum=yxymailcountdao.findByHqlCount(tolhql);
//判断是否满了
if(tolNum+commitnum>=tolBig){
return -4; //总量满
}
//单次最大发送量
if(commitnum>=onesendBig){
return -5; //单次最大发送量满
}
return 1;
}
private YxyMailDayCountDao yxymaildaycountdao;//日统计
private YxyMailMonthCountDao yxymailmonthcountdao;//月统计
private YxyMailCountDao yxymailcountdao;//总统计
public YxyMailDayCountDao getYxymaildaycountdao() {
return yxymaildaycountdao;
}
public void setYxymaildaycountdao(YxyMailDayCountDao yxymaildaycountdao) {
this.yxymaildaycountdao = yxymaildaycountdao;
}
public YxyMailMonthCountDao getYxymailmonthcountdao() {
return yxymailmonthcountdao;
}
public void setYxymailmonthcountdao(YxyMailMonthCountDao yxymailmonthcountdao) {
this.yxymailmonthcountdao = yxymailmonthcountdao;
}
public YxyMailCountDao getYxymailcountdao() {
return yxymailcountdao;
}
public void setYxymailcountdao(YxyMailCountDao yxymailcountdao) {
this.yxymailcountdao = yxymailcountdao;
}
}