YxySysParamaterServiceImpl.java
10.8 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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
package com.espeed.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.espeed.centre.pojo.YxyUserInfo;
import com.espeed.dao.YxySysParamaterDao;
import com.espeed.dao.YxySysParamatersValueDao;
import com.espeed.pojo.YxySysParamaters;
import com.espeed.pojo.YxySysParamatersValue;
import com.espeed.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==1){//企业级
//查询控制参数值(所有用户控制参数的配置值)
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++){
//当参数中的id等于参数值id
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{
public int findTolFenPeiCount(YxyUserInfo user)throws Exception{
//String hql="select count(*) from YxySysParamatersValue where para_id=34 and owner_loginid='"+loginid+"' and company_domain='"+domain+"'";
//return yxysysparamatersvaluedao.findByHqlCount(hql);
if(user.getUser_role()==1)
{
int counts = 0;
String hql="from YxySysParamatersValue where para_id=34 and company_domain='"+user.getDomain()+"' and para_value != '-1'";
List<YxySysParamatersValue> values = yxysysparamatersvaluedao.findByHql(hql);
if(values.size()>0)
{
for(YxySysParamatersValue value : values)
{
if(null!=value.getPara_value()&&!"".equals(value.getPara_value())||value.getPara_value().length()!=0)
{
counts += Integer.parseInt(value.getPara_value());
}
}
return counts;
}
else
{
return counts;
}
}
else
{
int counts = 0;
String hql="from YxySysParamatersValue where para_id=34 and company_domain='"+user.getDomain()+"' " +
"and para_value != '-1' and owner_loginid ='"+user.getLogin_id()+"'";
List<YxySysParamatersValue> values = yxysysparamatersvaluedao.findByHql(hql);
if(values.size()>0)
{
for(YxySysParamatersValue value : values)
{
if(null!=value.getPara_value()&&!"".equals(value.getPara_value())||value.getPara_value().length()!=0)
{
counts += Integer.parseInt(value.getPara_value());
}
}
return counts;
}
else
{
return counts;
}
}
}
/**修改用户营销发送量控制参数*/
public void updateParamaters(String loginid,String domain,String valuestr)throws Exception{
//解析出传递的值
String[] arraystr=valuestr.split("#");
//需要添加的集合
List<YxySysParamatersValue> paramvaluelist=new ArrayList<YxySysParamatersValue>();
//循环处理
for(int i=0;i<arraystr.length;i++){
String[] valuearray=arraystr[i].split(",");
String conntion=valuearray[0];
String value=valuearray[1];
if("1".equals(conntion)){//日发量
//查询用户是否有记录
String findhql1="select count(*) from YxySysParamatersValue where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id=1";
int isday=yxysysparamatersvaluedao.findByHqlCount(findhql1);
if(isday>0){
//修改记录
String hql="update YxySysParamatersValue set para_value="+value+" where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id=1";
yxysysparamatersvaluedao.updateByHql(hql);
}else{//添加记录
YxySysParamatersValue daypara=new YxySysParamatersValue();
daypara.setCompany_domain(domain);
daypara.setOwner_loginid(loginid);
daypara.setOwner_type(4);
daypara.setPara_id(1);
daypara.setPara_value(value);
paramvaluelist.add(daypara);
}
}else if("2".equals(conntion)){//月发量
String findhql1="select count(*) from YxySysParamatersValue where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id=2";
int ismonth=yxysysparamatersvaluedao.findByHqlCount(findhql1);
if(ismonth>0){
String hql="update YxySysParamatersValue set para_value="+value+" where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id=2";
yxysysparamatersvaluedao.updateByHql(hql);
}else{
YxySysParamatersValue monthpara=new YxySysParamatersValue();
monthpara.setCompany_domain(domain);
monthpara.setOwner_loginid(loginid);
monthpara.setOwner_type(4);
monthpara.setPara_id(2);
monthpara.setPara_value(value);
paramvaluelist.add(monthpara);
}
}else if("3".equals(conntion)){//总发量
String findhql1="select count(*) from YxySysParamatersValue where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id=34";
int ismonth=yxysysparamatersvaluedao.findByHqlCount(findhql1);
if(ismonth>0){
String hql="update YxySysParamatersValue set para_value="+value+" where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id=34";
yxysysparamatersvaluedao.updateByHql(hql);
}else{
YxySysParamatersValue tolpara=new YxySysParamatersValue();
tolpara.setCompany_domain(domain);
tolpara.setOwner_loginid(loginid);
tolpara.setOwner_type(4);
tolpara.setPara_id(34);
tolpara.setPara_value(value);
paramvaluelist.add(tolpara);
}
}
}
//批量插入
yxysysparamatersvaluedao.addPojoPi(paramvaluelist);
}
/**查询用户参数*/
public YxySysParamatersValue findUserParam(String loginid,String domain,int para_id)throws Exception
{
String hql = "from YxySysParamatersValue where owner_type = 4 and owner_loginid = '"+loginid+"' and " +
" company_domain = '"+domain+"' and para_id = "+para_id;
List<YxySysParamatersValue> values = yxysysparamatersvaluedao.findByHql(hql);
if(values.size() > 0)
{
return values.get(0);
}
else
{
return null;
}
}
/**查询系统级参数*/
public List<YxySysParamatersValue> findCompanyParam(String domain,int para_id)throws Exception
{
String hql = "from YxySysParamatersValue where owner_type = 1 and company_domain = '"+domain+"' and para_id = "+para_id;
return yxysysparamatersvaluedao.findByHql(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;
}
}