|
|
@@ -1,404 +1,404 @@
|
|
|
-package com.ssj.dao.sys.analysis.dao.impl;
|
|
|
-
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.data.domain.Page;
|
|
|
-import org.springframework.data.domain.Pageable;
|
|
|
-import org.springframework.stereotype.Repository;
|
|
|
-
|
|
|
-import com.ssj.bean.sys.analysis.bean.Analysis;
|
|
|
-import com.ssj.dao.sys.analysis.dao.AnalysisQueryDao;
|
|
|
-import com.ssj.framework.core.persistence.PagingHibernateJdbcDao;
|
|
|
-
|
|
|
-@Repository
|
|
|
-public class AnalysisQueryDaoImpl implements AnalysisQueryDao {
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private PagingHibernateJdbcDao dao;
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public Long countLibJoinConsumeSumByLibService(String date) {
|
|
|
- Long count=new Long(0);
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- sb.append(" SELECT IFNULL(SUM(t.lib_service),0) as count from tb_lib_join_consume t LEFT JOIN fx_merchant m ON t.from_merchant_id=m.id WHERE m.type=1 AND t.type in ('2') AND date_format(t.create_time, '%Y-%m') =? ");
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- param.add(date);
|
|
|
- List<Map<String, Object>> list=dao.findMap(sb.toString(), param.toArray());
|
|
|
- if(list!=null && list.size()>0) {
|
|
|
- count=Long.parseLong(list.get(0).get("count").toString());
|
|
|
- }
|
|
|
- return count;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Long countFxMerchantSumByPortNum() {
|
|
|
- Long count=new Long(0);
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- sb.append(" SELECT IFNULL(SUM(t.port_num),0) as count from fx_merchant t WHERE t.type=1 ");
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- List<Map<String, Object>> list=dao.findMap(sb.toString(), param.toArray());
|
|
|
- if(list!=null && list.size()>0) {
|
|
|
- count=Long.parseLong(list.get(0).get("count").toString());
|
|
|
- }
|
|
|
- return count;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<Map<String,Object>> countFxMerchantSumByTop(String date) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- sb.append(" SELECT *,IFNULL(count/lib_service,0) as lcount from ( ");
|
|
|
- sb.append(" SELECT ");
|
|
|
- sb.append(" (SELECT IFNULL(SUM(c.lib_service),0) from tb_lib_join_consume c WHERE c.type in ('2') AND date_format(c.create_time, '%Y-%m') =? AND c.from_merchant_id=t.id ) as count, ");
|
|
|
- sb.append(" t.lib_service,");
|
|
|
- sb.append(" t.unit_name");
|
|
|
- sb.append(" from fx_merchant t WHERE t.type=1 ");
|
|
|
- sb.append(" ) as tmp ORDER BY lcount desc LIMIT 10 ");
|
|
|
-
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- param.add(date);
|
|
|
- return dao.findMap(sb.toString(), param.toArray());
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Page<Map<String, Object>> countFxMerchantServiceByDate(Map<String, Object> params, Pageable pageable) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- sb.append(" SELECT ");
|
|
|
- sb.append(" t.id,t.unit_name,j.league_name, ");
|
|
|
- sb.append(" ( SELECT COUNT(DISTINCT s.vip_id) from tb_lib_vip_service s WHERE s.lib_id=t.lib_id AND date_format(s.start_time, '%Y-%m') =? ) as count_1, ");
|
|
|
- sb.append(" ( SELECT COUNT(DISTINCT s.vip_id) from tb_lib_vip_service s WHERE s.lib_id=t.lib_id AND date_format(s.end_time, '%Y-%m') =? ) as count_2, ");
|
|
|
- sb.append(" ( SELECT COUNT(DISTINCT s.vip_id) from tb_lib_vip_service s WHERE s.lib_id=t.lib_id AND date_format(s.end_time, '%Y-%m') >=? ) as count_3, ");
|
|
|
- sb.append(" ( SELECT COUNT(DISTINCT s.vip_id) from tb_lib_vip_service s WHERE s.lib_id=t.lib_id AND date_format(s.end_time, '%Y-%m') >? ) as count_4");
|
|
|
- sb.append(" from fx_merchant t ");
|
|
|
- sb.append(" LEFT JOIN tb_lib_join j ON t.lib_id=j.id ");
|
|
|
- sb.append(" WHERE t.type=1 AND t.lib_id is NOT null ");
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date"));
|
|
|
- if(params.get("unitName")!=null && StringUtils.isNotEmpty(params.get("unitName").toString())) {
|
|
|
- sb.append(" and t.unit_name like concat('%',?,'%') ");
|
|
|
- param.add(params.get("unitName"));
|
|
|
- }
|
|
|
- sb.append(" ORDER BY count_1 desc,count_2 desc,count_3 desc,count_4 desc ");
|
|
|
- return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Page<Map<String, Object>> countFxMerchantServiceByVipDate(Map<String, Object> params, Pageable pageable) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
-
|
|
|
- String type=params.get("type")!=null ? params.get("type").toString() : "1";
|
|
|
-
|
|
|
- switch (type) {
|
|
|
- case "1":
|
|
|
- sb.append(" SELECT s.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,s.start_time,s.end_time from tb_lib_vip_service s ");
|
|
|
- sb.append(" LEFT JOIN fx_merchant t ON s.lib_id=t.lib_id ");
|
|
|
- sb.append(" LEFT JOIN tb_lib_vip v ON s.vip_id=v.id ");
|
|
|
- sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
- sb.append(" WHERE date_format(s.start_time, '%Y-%m') =?");
|
|
|
- sb.append(" AND t.id=? ");
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("id"));
|
|
|
- if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
- sb.append(" AND v.child_name like concat('%',?,'%') ");
|
|
|
- param.add(params.get("name"));
|
|
|
- }
|
|
|
- sb.append(" GROUP BY s.vip_id ORDER BY s.start_time DESC ");
|
|
|
- return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
- case "2":
|
|
|
- sb.append(" SELECT s.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,s.start_time,s.end_time from tb_lib_vip_service s ");
|
|
|
- sb.append(" LEFT JOIN fx_merchant t ON s.lib_id=t.lib_id ");
|
|
|
- sb.append(" LEFT JOIN tb_lib_vip v ON s.vip_id=v.id ");
|
|
|
- sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
- sb.append(" WHERE date_format(s.end_time, '%Y-%m') =?");
|
|
|
- sb.append(" AND t.id=? ");
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("id"));
|
|
|
- if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
- sb.append(" AND v.child_name like concat('%',?,'%') ");
|
|
|
- param.add(params.get("name"));
|
|
|
- }
|
|
|
- sb.append(" GROUP BY s.vip_id ORDER BY s.start_time DESC ");
|
|
|
- return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
- case "3":
|
|
|
- sb.append(" SELECT s.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,s.start_time,s.end_time from tb_lib_vip_service s ");
|
|
|
- sb.append(" LEFT JOIN fx_merchant t ON s.lib_id=t.lib_id ");
|
|
|
- sb.append(" LEFT JOIN tb_lib_vip v ON s.vip_id=v.id ");
|
|
|
- sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
- sb.append(" WHERE date_format(s.end_time, '%Y-%m') >=?");
|
|
|
- sb.append(" AND t.id=? ");
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("id"));
|
|
|
- if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
- sb.append(" AND v.child_name like concat('%',?,'%') ");
|
|
|
- param.add(params.get("name"));
|
|
|
- }
|
|
|
- sb.append(" GROUP BY s.vip_id ORDER BY s.start_time DESC ");
|
|
|
- return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
- case "4":
|
|
|
- sb.append(" SELECT s.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,s.start_time,s.end_time from tb_lib_vip_service s ");
|
|
|
- sb.append(" LEFT JOIN fx_merchant t ON s.lib_id=t.lib_id ");
|
|
|
- sb.append(" LEFT JOIN tb_lib_vip v ON s.vip_id=v.id ");
|
|
|
- sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
- sb.append(" WHERE date_format(s.end_time, '%Y-%m') =?");
|
|
|
- sb.append(" AND t.id=? ");
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("id"));
|
|
|
- if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
- sb.append(" AND v.child_name like concat('%',?,'%') ");
|
|
|
- param.add(params.get("name"));
|
|
|
- }
|
|
|
- sb.append(" GROUP BY s.vip_id ORDER BY s.start_time DESC ");
|
|
|
- return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
- default:
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public Page<Map<String, Object>> countFxMerchantCommonByCountDate(Map<String, Object> params, Pageable pageable) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- String[] types=params.get("types").toString().split(";");
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT ");
|
|
|
- sb.append(" t.id,t.unit_name,j.id as lib_id, j.league_name");
|
|
|
- for (int i = 0; i < types.length; i++) {
|
|
|
- sb.append(" , ( SELECT IFNULL(SUM(a.count),0) from tb_analysis_count a WHERE a.lib_id=t.lib_id AND a.type=? AND a.source=? AND a.day_time>=? AND a.day_time<=? ) as count_"+i );
|
|
|
- param.add(types[i]);
|
|
|
- param.add(params.get("source"));
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
- }
|
|
|
- sb.append(" from fx_merchant t ");
|
|
|
- sb.append(" LEFT JOIN tb_lib_join j ON t.lib_id=j.id ");
|
|
|
- sb.append(" WHERE t.type=1 AND t.lib_id is NOT null ");
|
|
|
- if(params.get("unitName")!=null && StringUtils.isNotEmpty(params.get("unitName").toString())) {
|
|
|
- sb.append(" and t.unit_name like concat('%',?,'%') ");
|
|
|
- param.add(params.get("unitName"));
|
|
|
- }
|
|
|
- for (int i = 0; i < types.length; i++) {
|
|
|
- if(i==0) {
|
|
|
- sb.append(" ORDER BY count_"+i+" desc ");
|
|
|
- }else {
|
|
|
- sb.append(" , count_"+i+" desc ");
|
|
|
- }
|
|
|
- }
|
|
|
- return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Page<Map<String, Object>> countFxMerchantCommonByVipDate(Map<String, Object> params, Pageable pageable) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT t.user_id,t.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,t.create_time ");
|
|
|
- sb.append(" from tb_analysis t ");
|
|
|
- sb.append(" LEFT JOIN tb_lib_vip v ON t.vip_id=v.id ");
|
|
|
- sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
- sb.append(" WHERE t.lib_id=? AND t.type=? AND t.source =? AND TO_DAYS(t.create_time)>=TO_DAYS(?) AND TO_DAYS(t.create_time)<=TO_DAYS(?) ");
|
|
|
- param.add(params.get("libId"));
|
|
|
- param.add(params.get("type"));
|
|
|
- param.add(params.get("source"));
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
- if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
- sb.append(" and v.child_name like concat('%',?,'%') ");
|
|
|
- param.add(params.get("name"));
|
|
|
- }
|
|
|
- sb.append(" GROUP BY TO_DAYS(t.create_time),t.vip_id ORDER BY t.create_time asc ");
|
|
|
- return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public Page<Map<String, Object>> countFxMerchantCommonByUserDate(Map<String, Object> params, Pageable pageable) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT t.user_id,u.wx_name,u.photo,u.user_name,t.create_time ");
|
|
|
- sb.append(" from tb_analysis t ");
|
|
|
- sb.append(" LEFT JOIN tb_user u ON t.user_id=u.id ");
|
|
|
- sb.append(" WHERE t.lib_id=? AND t.type=? AND t.source =? AND TO_DAYS(t.create_time)>=TO_DAYS(?) AND TO_DAYS(t.create_time)<=TO_DAYS(?) ");
|
|
|
- param.add(params.get("libId"));
|
|
|
- param.add(params.get("type"));
|
|
|
- param.add(params.get("source"));
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
- if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
- sb.append(" and u.user_name like concat('%',?,'%') ");
|
|
|
- param.add(params.get("name"));
|
|
|
- }
|
|
|
- sb.append(" GROUP BY TO_DAYS(t.create_time),t.user_id ORDER BY t.create_time asc ");
|
|
|
- return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Analysis getAnalysisByDay(String libId, String userId, String vipId, Integer source, Integer type,String dayTime) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT * FROM `tb_analysis` t WHERE t.source=? AND t.type=? AND t.day_time=? AND t.lib_id=? ");
|
|
|
- param.add(source);
|
|
|
- param.add(type);
|
|
|
- param.add(dayTime);
|
|
|
- param.add(libId);
|
|
|
- if(StringUtils.isNotEmpty(userId)) {
|
|
|
- sb.append(" AND t.user_id=? ");
|
|
|
- param.add(userId);
|
|
|
- }
|
|
|
- if(StringUtils.isNotEmpty(userId)) {
|
|
|
- sb.append(" AND t.vip_id=? ");
|
|
|
- param.add(vipId);
|
|
|
- }
|
|
|
- sb.append(" LIMIT 1 ");
|
|
|
- List<Analysis> list=dao.findList(sb.toString(),param.toArray(),Analysis.class);
|
|
|
- return list!=null && list.size()>0 ? list.get(0) : null ;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public Map<String, Object> countAnalysisCountCommonByCountDate(Map<String, Object> params) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- String[] types=params.get("types").toString().split(";");
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT 1 ");
|
|
|
- for (int i = 0; i < types.length; i++) {
|
|
|
- sb.append(" , ( SELECT IFNULL(SUM(t.count),0) as count from tb_analysis_count t WHERE t.source=? AND t.type=? AND t.day_time>=? AND t.day_time<=? ) as count_"+i );
|
|
|
- param.add(params.get("source"));
|
|
|
- param.add(types[i]);
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
-
|
|
|
- sb.append(" , ( SELECT IFNULL(SUM(t.count),0) as count from tb_analysis_count t WHERE t.source=? AND t.type=? AND t.day_time>=? AND t.day_time<=? ) as count_"+i+"_"+i );
|
|
|
- param.add(params.get("source"));
|
|
|
- param.add(types[i]);
|
|
|
- param.add(params.get("date3"));
|
|
|
- param.add(params.get("date4"));
|
|
|
- }
|
|
|
- List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
- return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public Map<String, Object> countRecallCommonByCountDate(Map<String, Object> params) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT ");
|
|
|
- sb.append(" IFNULL((SELECT COUNT(lib_id) from tb_analysis_count a WHERE a.day_time>=? AND a.day_time<=? GROUP BY a.lib_id),0) as count_0, " );
|
|
|
- sb.append(" IFNULL((SELECT COUNT(lib_id) from tb_analysis_count a WHERE a.day_time>=? AND a.day_time<=? GROUP BY a.lib_id),0) as count_1 ");
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
- param.add(params.get("date3"));
|
|
|
- param.add(params.get("date4"));
|
|
|
- List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
- return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public Map<String, Object> countUploadWorkCommonByCountDate(Map<String, Object> params) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT ");
|
|
|
- sb.append(" (SELECT IFNULL(count(1),0) from (SELECT t.vip_id,count(t.day_time) as count from tb_analysis t WHERE t.type=3 AND t.day_time>=? AND t.day_time<=? GROUP BY t.vip_id HAVING count>=3) as tmp) as count_0, " );
|
|
|
- sb.append(" (SELECT IFNULL(count(1),0) from (SELECT t.vip_id,count(t.day_time) as count from tb_analysis t WHERE t.type=3 AND t.day_time>=? AND t.day_time<=? GROUP BY t.vip_id HAVING count>=3) as tmp) as count_1 ");
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
- param.add(params.get("date3"));
|
|
|
- param.add(params.get("date4"));
|
|
|
- List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
- return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Integer countActiveNumCommonByLibCountWeek(Map<String, Object> params) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT IFNULL(count(1),0) as count from (SELECT t.vip_id,count(t.day_time) as count from tb_analysis t WHERE t.lib_id=? AND t.type=3 AND DATE_FORMAT(t.day_time,'%Y')=DATE_FORMAT(DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%m-%d'),'%Y') AND DATE_FORMAT(t.day_time,'%Y')=DATE_FORMAT(DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%m-%d'),'%u') GROUP BY t.vip_id HAVING count>=3) as tmp" );
|
|
|
- param.add(params.get("libId"));
|
|
|
- List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
- return list!=null && list.size()>0 ? (int)list.get(0).get("count") : 0;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public Integer countMemberNumCommonByLibCountWeek(Map<String, Object> params) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT COUNT(1) as count from tb_lib_vip t WHERE t.lib_id=? " );
|
|
|
- param.add(params.get("libId"));
|
|
|
- List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
- return list!=null && list.size()>0 ? (int)list.get(0).get("count") : 0;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Map<String, Object> countAnalysisWeekCountCommonByCountCurDate(Map<String, Object> params) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT ");
|
|
|
- sb.append(" (SELECT COUNT(DISTINCT t.lib_id) from tb_analysis_week t WHERE t.year_week=? AND t.active_ratio>=50) as count_0, " );
|
|
|
- sb.append(" (SELECT COUNT(DISTINCT t.lib_id) from tb_analysis_week t WHERE t.year_week=? AND t.active_ratio>=50) as count_1, ");
|
|
|
- sb.append(" (SELECT COUNT(1) from fx_merchant t WHERE t.type=1 AND t.lib_id is NOT NULL) as count_2 ");
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
- List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
- return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<Map<String, Object>> countAnalysisWeekCountCommonByCountMonthDate(Map<String, Object> params) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT t.lib_id,COUNT(DISTINCT t.year_week) as count from tb_analysis_week t WHERE t.year_week>=? AND t.year_week<=? GROUP BY t.lib_id HAVING count>=?" );
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
- param.add(params.get("count"));
|
|
|
- return dao.findMap(sb.toString(),param.toArray());
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<Map<String, Object>> countLibJoinCountCommonByCountDate(Map<String, Object> params) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT t.id,COUNT(m.id) as count from tb_lib_join t LEFT JOIN tb_lib_manager m ON t.id=m.lib_id " );
|
|
|
- sb.append(" WHERE TO_DAYS(t.create_time) >=TO_DAYS(?) AND TO_DAYS(t.create_time) <=TO_DAYS(?) ");
|
|
|
- sb.append(" GROUP BY t.id HAVING count<=0 ");
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
- return dao.findMap(sb.toString(),param.toArray());
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Map<String, Object> countVipActivateCountCommonByCountDate(Map<String, Object> params) {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT " );
|
|
|
- sb.append(" (SELECT count(1) from tb_lib_vip t WHERE TO_DAYS(t.activate_time)>=TO_DAYS(?) AND TO_DAYS(t.activate_time)>=TO_DAYS(?)) AS count_0, ");
|
|
|
- sb.append(" (SELECT count(1) from tb_lib_vip t WHERE t.activate_time is NOT null ) AS count_1 ");
|
|
|
- param.add(params.get("date"));
|
|
|
- param.add(params.get("date2"));
|
|
|
- List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
- return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<Map<String, Object>> countAnalysisCountCommonByCountTask() {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- List<Object> param = new ArrayList<>();
|
|
|
- sb.append(" SELECT t.lib_id,t.source,t.type,DATE_FORMAT(t.create_time,'%Y-%m-%d') as day_time,IF(type=3,COUNT(DISTINCT t.user_id),COUNT(DISTINCT t.vip_id)) as count from tb_analysis t WHERE TO_DAYS(t.create_time)=TO_DAYS(DATE_SUB(NOW(),INTERVAL 1 DAY)) GROUP BY t.lib_id,t.source,t.type " );
|
|
|
- return dao.findMap(sb.toString(),param.toArray());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
+package com.ssj.dao.sys.analysis.dao.impl;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.domain.Pageable;
|
|
|
+import org.springframework.stereotype.Repository;
|
|
|
+
|
|
|
+import com.ssj.bean.sys.analysis.bean.Analysis;
|
|
|
+import com.ssj.dao.sys.analysis.dao.AnalysisQueryDao;
|
|
|
+import com.ssj.framework.core.persistence.PagingHibernateJdbcDao;
|
|
|
+
|
|
|
+@Repository
|
|
|
+public class AnalysisQueryDaoImpl implements AnalysisQueryDao {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PagingHibernateJdbcDao dao;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Long countLibJoinConsumeSumByLibService(String date) {
|
|
|
+ Long count=new Long(0);
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ sb.append(" SELECT IFNULL(SUM(t.lib_service),0) as count from tb_lib_join_consume t LEFT JOIN fx_merchant m ON t.from_merchant_id=m.id WHERE m.type=1 AND t.type in ('2') AND date_format(t.create_time, '%Y-%m') =? ");
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ param.add(date);
|
|
|
+ List<Map<String, Object>> list=dao.findMap(sb.toString(), param.toArray());
|
|
|
+ if(list!=null && list.size()>0) {
|
|
|
+ count=Long.parseLong(list.get(0).get("count").toString());
|
|
|
+ }
|
|
|
+ return count;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Long countFxMerchantSumByPortNum() {
|
|
|
+ Long count=new Long(0);
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ sb.append(" SELECT IFNULL(SUM(t.port_num),0) as count from fx_merchant t WHERE t.type=1 ");
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ List<Map<String, Object>> list=dao.findMap(sb.toString(), param.toArray());
|
|
|
+ if(list!=null && list.size()>0) {
|
|
|
+ count=Long.parseLong(list.get(0).get("count").toString());
|
|
|
+ }
|
|
|
+ return count;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String,Object>> countFxMerchantSumByTop(String date) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ sb.append(" SELECT *,IFNULL(count/lib_service,0) as lcount from ( ");
|
|
|
+ sb.append(" SELECT ");
|
|
|
+ sb.append(" (SELECT IFNULL(SUM(c.lib_service),0) from tb_lib_join_consume c WHERE c.type in ('2') AND date_format(c.create_time, '%Y-%m') =? AND c.from_merchant_id=t.id ) as count, ");
|
|
|
+ sb.append(" t.lib_service,");
|
|
|
+ sb.append(" t.unit_name");
|
|
|
+ sb.append(" from fx_merchant t WHERE t.type=1 ");
|
|
|
+ sb.append(" ) as tmp ORDER BY lcount desc LIMIT 10 ");
|
|
|
+
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ param.add(date);
|
|
|
+ return dao.findMap(sb.toString(), param.toArray());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<Map<String, Object>> countFxMerchantServiceByDate(Map<String, Object> params, Pageable pageable) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ sb.append(" SELECT ");
|
|
|
+ sb.append(" t.id,t.unit_name,j.league_name, ");
|
|
|
+ sb.append(" ( SELECT COUNT(DISTINCT s.vip_id) from tb_lib_vip_service s WHERE s.lib_id=t.lib_id AND date_format(s.start_time, '%Y-%m') =? ) as count_1, ");
|
|
|
+ sb.append(" ( SELECT COUNT(DISTINCT s.vip_id) from tb_lib_vip_service s WHERE s.lib_id=t.lib_id AND date_format(s.end_time, '%Y-%m') =? ) as count_2, ");
|
|
|
+ sb.append(" ( SELECT COUNT(DISTINCT s.vip_id) from tb_lib_vip_service s WHERE s.lib_id=t.lib_id AND date_format(s.end_time, '%Y-%m') >=? ) as count_3, ");
|
|
|
+ sb.append(" ( SELECT COUNT(DISTINCT s.vip_id) from tb_lib_vip_service s WHERE s.lib_id=t.lib_id AND date_format(s.end_time, '%Y-%m') >? ) as count_4");
|
|
|
+ sb.append(" from fx_merchant t ");
|
|
|
+ sb.append(" LEFT JOIN tb_lib_join j ON t.lib_id=j.id ");
|
|
|
+ sb.append(" WHERE t.type=1 AND t.lib_id is NOT null ");
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date"));
|
|
|
+ if(params.get("unitName")!=null && StringUtils.isNotEmpty(params.get("unitName").toString())) {
|
|
|
+ sb.append(" and t.unit_name like concat('%',?,'%') ");
|
|
|
+ param.add(params.get("unitName"));
|
|
|
+ }
|
|
|
+ sb.append(" ORDER BY count_1 desc,count_2 desc,count_3 desc,count_4 desc ");
|
|
|
+ return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<Map<String, Object>> countFxMerchantServiceByVipDate(Map<String, Object> params, Pageable pageable) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+
|
|
|
+ String type=params.get("type")!=null ? params.get("type").toString() : "1";
|
|
|
+
|
|
|
+ switch (type) {
|
|
|
+ case "1":
|
|
|
+ sb.append(" SELECT s.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,s.start_time,s.end_time from tb_lib_vip_service s ");
|
|
|
+ sb.append(" LEFT JOIN fx_merchant t ON s.lib_id=t.lib_id ");
|
|
|
+ sb.append(" LEFT JOIN tb_lib_vip v ON s.vip_id=v.id ");
|
|
|
+ sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
+ sb.append(" WHERE date_format(s.start_time, '%Y-%m') =?");
|
|
|
+ sb.append(" AND t.id=? ");
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("id"));
|
|
|
+ if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
+ sb.append(" AND v.child_name like concat('%',?,'%') ");
|
|
|
+ param.add(params.get("name"));
|
|
|
+ }
|
|
|
+ sb.append(" GROUP BY s.vip_id ORDER BY s.start_time DESC ");
|
|
|
+ return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
+ case "2":
|
|
|
+ sb.append(" SELECT s.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,s.start_time,s.end_time from tb_lib_vip_service s ");
|
|
|
+ sb.append(" LEFT JOIN fx_merchant t ON s.lib_id=t.lib_id ");
|
|
|
+ sb.append(" LEFT JOIN tb_lib_vip v ON s.vip_id=v.id ");
|
|
|
+ sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
+ sb.append(" WHERE date_format(s.end_time, '%Y-%m') =?");
|
|
|
+ sb.append(" AND t.id=? ");
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("id"));
|
|
|
+ if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
+ sb.append(" AND v.child_name like concat('%',?,'%') ");
|
|
|
+ param.add(params.get("name"));
|
|
|
+ }
|
|
|
+ sb.append(" GROUP BY s.vip_id ORDER BY s.start_time DESC ");
|
|
|
+ return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
+ case "3":
|
|
|
+ sb.append(" SELECT s.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,s.start_time,s.end_time from tb_lib_vip_service s ");
|
|
|
+ sb.append(" LEFT JOIN fx_merchant t ON s.lib_id=t.lib_id ");
|
|
|
+ sb.append(" LEFT JOIN tb_lib_vip v ON s.vip_id=v.id ");
|
|
|
+ sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
+ sb.append(" WHERE date_format(s.end_time, '%Y-%m') >=?");
|
|
|
+ sb.append(" AND t.id=? ");
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("id"));
|
|
|
+ if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
+ sb.append(" AND v.child_name like concat('%',?,'%') ");
|
|
|
+ param.add(params.get("name"));
|
|
|
+ }
|
|
|
+ sb.append(" GROUP BY s.vip_id ORDER BY s.start_time DESC ");
|
|
|
+ return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
+ case "4":
|
|
|
+ sb.append(" SELECT s.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,s.start_time,s.end_time from tb_lib_vip_service s ");
|
|
|
+ sb.append(" LEFT JOIN fx_merchant t ON s.lib_id=t.lib_id ");
|
|
|
+ sb.append(" LEFT JOIN tb_lib_vip v ON s.vip_id=v.id ");
|
|
|
+ sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
+ sb.append(" WHERE date_format(s.end_time, '%Y-%m') =?");
|
|
|
+ sb.append(" AND t.id=? ");
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("id"));
|
|
|
+ if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
+ sb.append(" AND v.child_name like concat('%',?,'%') ");
|
|
|
+ param.add(params.get("name"));
|
|
|
+ }
|
|
|
+ sb.append(" GROUP BY s.vip_id ORDER BY s.start_time DESC ");
|
|
|
+ return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
+ default:
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<Map<String, Object>> countFxMerchantCommonByCountDate(Map<String, Object> params, Pageable pageable) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ String[] types=params.get("types").toString().split(";");
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT ");
|
|
|
+ sb.append(" t.id,t.unit_name,j.id as lib_id, j.league_name");
|
|
|
+ for (int i = 0; i < types.length; i++) {
|
|
|
+ sb.append(" , ( SELECT IFNULL(SUM(a.count),0) from tb_analysis_count a WHERE a.lib_id=t.lib_id AND a.type=? AND a.source=? AND a.day_time>=? AND a.day_time<=? ) as count_"+i );
|
|
|
+ param.add(types[i]);
|
|
|
+ param.add(params.get("source"));
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+ }
|
|
|
+ sb.append(" from fx_merchant t ");
|
|
|
+ sb.append(" LEFT JOIN tb_lib_join j ON t.lib_id=j.id ");
|
|
|
+ sb.append(" WHERE t.type=1 AND t.lib_id is NOT null ");
|
|
|
+ if(params.get("unitName")!=null && StringUtils.isNotEmpty(params.get("unitName").toString())) {
|
|
|
+ sb.append(" and t.unit_name like concat('%',?,'%') ");
|
|
|
+ param.add(params.get("unitName"));
|
|
|
+ }
|
|
|
+ for (int i = 0; i < types.length; i++) {
|
|
|
+ if(i==0) {
|
|
|
+ sb.append(" ORDER BY count_"+i+" desc ");
|
|
|
+ }else {
|
|
|
+ sb.append(" , count_"+i+" desc ");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<Map<String, Object>> countFxMerchantCommonByVipDate(Map<String, Object> params, Pageable pageable) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT t.user_id,t.vip_id,u.wx_name,u.photo,v.parent_name,v.child_name,t.create_time ");
|
|
|
+ sb.append(" from tb_analysis t ");
|
|
|
+ sb.append(" LEFT JOIN tb_lib_vip v ON t.vip_id=v.id ");
|
|
|
+ sb.append(" LEFT JOIN tb_user u ON v.user_id=u.id ");
|
|
|
+ sb.append(" WHERE t.lib_id=? AND t.type=? AND t.source =? AND TO_DAYS(t.create_time)>=TO_DAYS(?) AND TO_DAYS(t.create_time)<=TO_DAYS(?) ");
|
|
|
+ param.add(params.get("libId"));
|
|
|
+ param.add(params.get("type"));
|
|
|
+ param.add(params.get("source"));
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+ if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
+ sb.append(" and v.child_name like concat('%',?,'%') ");
|
|
|
+ param.add(params.get("name"));
|
|
|
+ }
|
|
|
+ sb.append(" GROUP BY TO_DAYS(t.create_time),t.vip_id ORDER BY t.create_time asc ");
|
|
|
+ return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<Map<String, Object>> countFxMerchantCommonByUserDate(Map<String, Object> params, Pageable pageable) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT t.user_id,u.wx_name,u.photo,u.user_name,t.create_time ");
|
|
|
+ sb.append(" from tb_analysis t ");
|
|
|
+ sb.append(" LEFT JOIN tb_user u ON t.user_id=u.id ");
|
|
|
+ sb.append(" WHERE t.lib_id=? AND t.type=? AND t.source =? AND TO_DAYS(t.create_time)>=TO_DAYS(?) AND TO_DAYS(t.create_time)<=TO_DAYS(?) ");
|
|
|
+ param.add(params.get("libId"));
|
|
|
+ param.add(params.get("type"));
|
|
|
+ param.add(params.get("source"));
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+ if(params.get("name")!=null && StringUtils.isNotEmpty(params.get("name").toString())) {
|
|
|
+ sb.append(" and u.user_name like concat('%',?,'%') ");
|
|
|
+ param.add(params.get("name"));
|
|
|
+ }
|
|
|
+ sb.append(" GROUP BY TO_DAYS(t.create_time),t.user_id ORDER BY t.create_time asc ");
|
|
|
+ return dao.findPage(sb.toString(),param.toArray(),pageable);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Analysis getAnalysisByDay(String libId, String userId, String vipId, Integer source, Integer type,String dayTime) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT * FROM `tb_analysis` t WHERE t.source=? AND t.type=? AND t.day_time=? AND t.lib_id=? ");
|
|
|
+ param.add(source);
|
|
|
+ param.add(type);
|
|
|
+ param.add(dayTime);
|
|
|
+ param.add(libId);
|
|
|
+ if(StringUtils.isNotEmpty(userId)) {
|
|
|
+ sb.append(" AND t.user_id=? ");
|
|
|
+ param.add(userId);
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(userId)) {
|
|
|
+ sb.append(" AND t.vip_id=? ");
|
|
|
+ param.add(vipId);
|
|
|
+ }
|
|
|
+ sb.append(" LIMIT 1 ");
|
|
|
+ List<Analysis> list=dao.findList(sb.toString(),param.toArray(),Analysis.class);
|
|
|
+ return list!=null && list.size()>0 ? list.get(0) : null ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> countAnalysisCountCommonByCountDate(Map<String, Object> params) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ String[] types=params.get("types").toString().split(";");
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT 1 ");
|
|
|
+ for (int i = 0; i < types.length; i++) {
|
|
|
+ sb.append(" , ( SELECT IFNULL(SUM(t.count),0) as count from tb_analysis_count t WHERE t.source=? AND t.type=? AND t.day_time>=? AND t.day_time<=? ) as count_"+i );
|
|
|
+ param.add(params.get("source"));
|
|
|
+ param.add(types[i]);
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+
|
|
|
+ sb.append(" , ( SELECT IFNULL(SUM(t.count),0) as count from tb_analysis_count t WHERE t.source=? AND t.type=? AND t.day_time>=? AND t.day_time<=? ) as count_"+i+"_"+i );
|
|
|
+ param.add(params.get("source"));
|
|
|
+ param.add(types[i]);
|
|
|
+ param.add(params.get("date3"));
|
|
|
+ param.add(params.get("date4"));
|
|
|
+ }
|
|
|
+ List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
+ return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> countRecallCommonByCountDate(Map<String, Object> params) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT ");
|
|
|
+ sb.append(" IFNULL((SELECT COUNT(lib_id) from tb_analysis_count a WHERE a.day_time>=? AND a.day_time<=? GROUP BY a.lib_id),0) as count_0, " );
|
|
|
+ sb.append(" IFNULL((SELECT COUNT(lib_id) from tb_analysis_count a WHERE a.day_time>=? AND a.day_time<=? GROUP BY a.lib_id),0) as count_1 ");
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+ param.add(params.get("date3"));
|
|
|
+ param.add(params.get("date4"));
|
|
|
+ List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
+ return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> countUploadWorkCommonByCountDate(Map<String, Object> params) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT ");
|
|
|
+ sb.append(" (SELECT IFNULL(count(1),0) from (SELECT t.vip_id,count(t.day_time) as count from tb_analysis t WHERE t.type=3 AND t.day_time>=? AND t.day_time<=? GROUP BY t.vip_id HAVING count>=3) as tmp) as count_0, " );
|
|
|
+ sb.append(" (SELECT IFNULL(count(1),0) from (SELECT t.vip_id,count(t.day_time) as count from tb_analysis t WHERE t.type=3 AND t.day_time>=? AND t.day_time<=? GROUP BY t.vip_id HAVING count>=3) as tmp) as count_1 ");
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+ param.add(params.get("date3"));
|
|
|
+ param.add(params.get("date4"));
|
|
|
+ List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
+ return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Integer countActiveNumCommonByLibCountWeek(Map<String, Object> params) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT IFNULL(count(1),0) as count from (SELECT t.vip_id,count(t.day_time) as count from tb_analysis t WHERE t.lib_id=? AND t.type=3 AND DATE_FORMAT(t.day_time,'%Y')=DATE_FORMAT(DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%m-%d'),'%Y') AND DATE_FORMAT(t.day_time,'%Y')=DATE_FORMAT(DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%m-%d'),'%u') GROUP BY t.vip_id HAVING count>=3) as tmp" );
|
|
|
+ param.add(params.get("libId"));
|
|
|
+ List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
+ return list!=null && list.size()>0 ? (int)list.get(0).get("count") : 0;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public Integer countMemberNumCommonByLibCountWeek(Map<String, Object> params) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT COUNT(1) as count from tb_lib_vip t WHERE t.lib_id=? " );
|
|
|
+ param.add(params.get("libId"));
|
|
|
+ List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
+ return list!=null && list.size()>0 ? (int)list.get(0).get("count") : 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> countAnalysisWeekCountCommonByCountCurDate(Map<String, Object> params) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT ");
|
|
|
+ sb.append(" (SELECT COUNT(DISTINCT t.lib_id) from tb_analysis_week t WHERE t.year_week=? AND t.active_ratio>=50) as count_0, " );
|
|
|
+ sb.append(" (SELECT COUNT(DISTINCT t.lib_id) from tb_analysis_week t WHERE t.year_week=? AND t.active_ratio>=50) as count_1, ");
|
|
|
+ sb.append(" (SELECT COUNT(1) from fx_merchant t WHERE t.type=1 AND t.lib_id is NOT NULL) as count_2 ");
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+ List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
+ return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> countAnalysisWeekCountCommonByCountMonthDate(Map<String, Object> params) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT t.lib_id,COUNT(DISTINCT t.year_week) as count from tb_analysis_week t WHERE t.year_week>=? AND t.year_week<=? GROUP BY t.lib_id HAVING count>=?" );
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+ param.add(params.get("count"));
|
|
|
+ return dao.findMap(sb.toString(),param.toArray());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> countLibJoinCountCommonByCountDate(Map<String, Object> params) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT t.id,COUNT(m.id) as count from tb_lib_join t LEFT JOIN tb_lib_manager m ON t.id=m.lib_id " );
|
|
|
+ sb.append(" WHERE TO_DAYS(t.create_time) >=TO_DAYS(?) AND TO_DAYS(t.create_time) <=TO_DAYS(?) ");
|
|
|
+ sb.append(" GROUP BY t.id HAVING count<=0 ");
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+ return dao.findMap(sb.toString(),param.toArray());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> countVipActivateCountCommonByCountDate(Map<String, Object> params) {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT " );
|
|
|
+ sb.append(" (SELECT count(1) from tb_lib_vip t WHERE TO_DAYS(t.activate_time)>=TO_DAYS(?) AND TO_DAYS(t.activate_time)>=TO_DAYS(?)) AS count_0, ");
|
|
|
+ sb.append(" (SELECT count(1) from tb_lib_vip t WHERE t.activate_time is NOT null ) AS count_1 ");
|
|
|
+ param.add(params.get("date"));
|
|
|
+ param.add(params.get("date2"));
|
|
|
+ List<Map<String, Object>> list=dao.findMap(sb.toString(),param.toArray());
|
|
|
+ return list!=null && list.size()>0 ? list.get(0) : new HashMap<String, Object>();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> countAnalysisCountCommonByCountTask() {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ List<Object> param = new ArrayList<>();
|
|
|
+ sb.append(" SELECT t.lib_id,t.source,t.type,DATE_FORMAT(t.create_time,'%Y-%m-%d') as day_time,IF(type=3,COUNT(DISTINCT t.user_id),COUNT(DISTINCT t.vip_id)) as count from tb_analysis t WHERE TO_DAYS(t.create_time)=TO_DAYS(DATE_SUB(NOW(),INTERVAL 1 DAY)) GROUP BY t.lib_id,t.source,t.type " );
|
|
|
+ return dao.findMap(sb.toString(),param.toArray());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|