mmsuserstatisticsserviceimpl.java
来自「移动彩信管理平台」· Java 代码 · 共 514 行 · 第 1/2 页
JAVA
514 行
ws.addCell(lb_1);
Label lb_2 = new Label(2, 0, "注册用户");
ws.addCell(lb_2);
Label lb_3 = new Label(3, 0, "体验用户");
ws.addCell(lb_3);
Label lb_4 = new Label(4, 0, "退订用户");
ws.addCell(lb_4);
// 明细数据
MmsUserStatisticsBean value = null;
for (int i = 0; i < list.size(); i++)
{
value = list.get(i);
if (value == null)
continue;
// 定制用户总量累加
totalOrderNum += value.getOrderUserNum();
// 体验用户总量累加
totalTasteNum += value.getTasteUserNum();
// 退订用户总量累加
totalUnOrderNum += value.getUnOrderUserNum();
// 填充栏目
ws.addCell(new Label(0, i + 1, value.getCondition()));
// 填充时间
ws.addCell(new Label(1, i + 1, value.getEndTime()));
// 填充定制
ws.addCell(new Label(2, i + 1, String.valueOf(value.getOrderUserNum())));
// 填充体验
ws.addCell(new Label(3, i + 1, String.valueOf(value.getTasteUserNum())));
// 填充退订
ws.addCell(new Label(4, i + 1, String.valueOf(value.getUnOrderUserNum())));
}
// 保存
wwb.write();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (wwb != null) {
try {
wwb.close();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public List<MmsUserStatisticsBean> getUserStatisticsListFromHistory(String conditions,
String time, int flag) {
List statisticsList_Order = null;
List statisticsList_UnOrder = null;
List<MmsUserStatisticsBean> reList= new ArrayList<MmsUserStatisticsBean>();
String[] hql = null;
boolean isArea = true;
if(flag == 11 || flag == 12 || flag == 31 || flag == 32)
isArea = false;
hql = getQueryHQLForHistory(conditions,time,flag);
if(hql == null)
return null;
//System.out.println("业务用户数统计->获得HQL[0]="+hql[0]);
//System.out.println("业务用户数统计->获得HQL[1]="+hql[1]);
// 存在问题 ************************ 没有用户时的判断处理 **************************
statisticsList_Order = this.jdbcTemplatePlatform.queryForList(hql[0]);
statisticsList_UnOrder = this.jdbcTemplatePlatform.queryForList(hql[1]);
// 整理成存放MmsUserStatisticsBean的Map
HashMap<String,MmsUserStatisticsBean> beanMap = new HashMap<String,MmsUserStatisticsBean>();
String condtions = null;
short type_id = 0;
int total = 0;
MmsUserStatisticsBean value = null;
Map obj = null;
// 整理定制用户
for(int i=0;i< statisticsList_Order.size();i++)
{
obj = (Map) statisticsList_Order.get(i);
if(obj == null)
{
System.out.println("业务用户数统计->(定制)列Map对象为空!");
return null;
}
total = (Integer) obj.get("total");
condtions = String.valueOf(obj.get("condtions")).trim();
type_id = Short.valueOf(String.valueOf(obj.get("type_id")));
// 若map中不存在相应记录 增加一条新的 /////individuality 目前是 索引 不是类型代码////////
if(!beanMap.containsKey(condtions))
{
if(isArea)
beanMap.put(condtions, new MmsUserStatisticsBean(Constant.areaMap.get(condtions),time,0,0,0));
else
beanMap.put(condtions, new MmsUserStatisticsBean(Constant.typeMap.get(condtions),time,0,0,0));
}
value = beanMap.get(condtions);
if(value == null)
{
System.out.println("业务用户数统计->(定制)从beanMap对象取出对象为空!");
return null;
}
//System.out.println("业务用户数统计->(定制)从beanMap对象取出对象="+value);
if(type_id == 2)//注册
value.setOrderUserNum(value.getUnOrderUserNum()+total);
else if(type_id == 4)//体验
value.setTasteUserNum(value.getTasteUserNum()+total);
else// 目前只有两种定制用户
System.out.println("业务用户数统计->(定制)从beanMap对象取出对象类型异常type_id="+type_id);
}
// 整理退订用户
for(int i=0;i< statisticsList_UnOrder.size();i++)
{
obj = (Map) statisticsList_UnOrder.get(i);
if(obj == null)
{
System.out.println("业务用户数统计->(退订)列Map对象为空!");
return null;
}
total = (Integer) obj.get("total");
condtions = String.valueOf(obj.get("condtions")).trim();
type_id = Short.valueOf(String.valueOf(obj.get("type_id")));
// 若map中不存在相应记录 增加一条新的 /////individuality 目前是 索引 不是类型代码////////
if(!beanMap.containsKey(condtions))
{
if(isArea)
beanMap.put(condtions, new MmsUserStatisticsBean(Constant.areaMap.get(condtions),time,0,0,0));
else
beanMap.put(condtions, new MmsUserStatisticsBean(Constant.typeMap.get(condtions),time,0,0,0));
}
value = beanMap.get(condtions);
if(value == null)
{
System.out.println("业务用户数统计->(退订)从beanMap对象取出对象为空!");
return null;
}
//System.out.println("业务用户数统计->(退订)从beanMap对象取出对象="+value);
if(type_id == 2 || type_id == 4)//注册 体验用户 退订
value.setUnOrderUserNum(value.getUnOrderUserNum()+total);
else// 目前只有两种定制用户
System.out.println("业务用户数统计->(退订)从beanMap对象取出对象类型异常type_id="+type_id);
}
// 整理成存放MmsUserStatisticsBean的List
Iterator itor = beanMap.values().iterator();
MmsUserStatisticsBean bean = null;
int totalOrderNum = 0;
int totalTasteNum = 0;
int totalUnOrderNum = 0;
while(itor.hasNext())
{
bean =(MmsUserStatisticsBean) itor.next();
// 定制用户总量累加
totalOrderNum += bean.getOrderUserNum();
// 体验用户总量累加
totalTasteNum += bean.getTasteUserNum();
// 退订用户总量累加
totalUnOrderNum += bean.getUnOrderUserNum();
reList.add(bean);
}
reList.add(new MmsUserStatisticsBean("总计",time,totalOrderNum,totalTasteNum,totalUnOrderNum));
return reList;
}
/**
* 从历史表中获取统计信息
* */
private String[] getQueryHQLForHistory(String conditions,String endTime,int flag)
{
String[] strHql = {"",""};//0=读取定制用户 1=读取退订用户
String strParamHql_start = "select count(*) as total, ";
String strParamHql_mid0 = " as condtions,type_id from tb_cjdx_user_history where id in(select max(id) from tb_cjdx_user_history where open_date <= '"+endTime+"' and (destory_date>='"+endTime+"' or destory_date is null) "+conditions+" group by phone)";
String strParamHql_mid1 = " as condtions,type_id from tb_cjdx_user_history where id in(select max(id) from tb_cjdx_user_history where open_date <= '"+endTime+"' "+conditions+" group by phone) and destory_date<='"+endTime+"'";
String strParamHql_end1 = " group by individuality,type_id";
String strParamHql_end2 = " group by city_id,type_id";
if(flag == 11)
{
// cp 用户首次进入查询页面 返回相对应所有栏目的统计信息 对应HQL
strHql[0] = strParamHql_start + "individuality" + strParamHql_mid0+strParamHql_end1;
strHql[1] = strParamHql_start + "individuality" + strParamHql_mid1+strParamHql_end1;
}
else if(flag == 12)
{
// cp 用户已经进入查询页面并选择了相应栏目 返回选择栏目的统计信息 对应HQL
strHql[0] = strParamHql_start + "individuality" + strParamHql_mid0+strParamHql_end1;
strHql[1] = strParamHql_start + "individuality" + strParamHql_mid1+strParamHql_end1;
}
else if(flag == 21)
{
// cp 用户首次进入查询页面 返回所有地市的统计信息 对应HQL
strHql[0] = strParamHql_start + "city_id" + strParamHql_mid0+strParamHql_end2;
strHql[1] = strParamHql_start + "city_id" + strParamHql_mid1+strParamHql_end2;
}
else if(flag == 22)
{
// cp 用户已经进入查询页面并选择了相应地市 返回选择地市的统计信息 对应HQL
strHql[0] = strParamHql_start + "city_id" + strParamHql_mid0+strParamHql_end2;
strHql[1] = strParamHql_start + "city_id" + strParamHql_mid1+strParamHql_end2;
}
else if(flag == 31)
{
// ad 用户首次进入查询页面 返回所有栏目的统计信息 对应HQL
strHql[0] = strParamHql_start + "individuality" + strParamHql_mid0+strParamHql_end1;
strHql[1] = strParamHql_start + "individuality" + strParamHql_mid1+strParamHql_end1;
}
else if(flag == 32)
{
// ad 用户已经进入查询页面并选择了相应栏目 返回选择栏目的统计信息 对应HQL
strHql[0] = strParamHql_start + "individuality" + strParamHql_mid0+strParamHql_end1;
strHql[1] = strParamHql_start + "individuality" + strParamHql_mid1+strParamHql_end1;
}
else if(flag == 41)
{
// ad 用户首次进入查询页面 返回所有地市的统计信息 对应HQL
strHql[0] = strParamHql_start + "city_id" + strParamHql_mid0+strParamHql_end2;
strHql[1] = strParamHql_start + "city_id" + strParamHql_mid1+strParamHql_end2;
}
else if(flag == 42)
{
// ad 用户已经进入查询页面并选择了相应地市 返回选择地市的统计信息 对应HQL
strHql[0] = strParamHql_start + "city_id" + strParamHql_mid0+strParamHql_end2;
strHql[1] = strParamHql_start + "city_id" + strParamHql_mid1+strParamHql_end2;
}
else
{
// 类型标识有误
System.out.println("业务用户数统计->类型标识有误!flag="+flag);
}
if(strHql == null || strHql[0].length()<50 || strHql[1].length()<50)
{
System.out.println("业务用户数统计->获取检索HQL语句有误!flag="+flag);
strHql = null;
}
return strHql;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?