From 52a6eb5f5f30e2d40f7e40dbfd0b2ece3dbf7655 Mon Sep 17 00:00:00 2001 From: wujingtao Date: Tue, 8 Mar 2022 14:01:20 +0800 Subject: [PATCH 1/9] =?UTF-8?q?dmp=E6=96=B0=E5=A2=9E=E5=B9=BF=E7=82=B9?= =?UTF-8?q?=E9=80=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adcallback/common/enums/DeliveryPlatformEnum.java | 9 +++++++-- .../com/baiyee/adcallback/common/enums/TableEnum.java | 9 +++++++-- .../adcallback/service/impl/AnalysisServiceImpl.java | 6 +++--- .../service/impl/DmpMonitorNumServiceImpl.java | 6 +++++- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/baiyee/adcallback/common/enums/DeliveryPlatformEnum.java b/src/main/java/com/baiyee/adcallback/common/enums/DeliveryPlatformEnum.java index 84f5006..3ca9b73 100644 --- a/src/main/java/com/baiyee/adcallback/common/enums/DeliveryPlatformEnum.java +++ b/src/main/java/com/baiyee/adcallback/common/enums/DeliveryPlatformEnum.java @@ -26,12 +26,17 @@ public enum DeliveryPlatformEnum { /** * VIVO */ - VIVO("VIVO", 4), + VV("VV", 4), /** * 百度 */ - BD("BD", 5); + BD("BD", 5), + + /** + * 广点通 + */ + GD("GD", 6); /** * 类型 diff --git a/src/main/java/com/baiyee/adcallback/common/enums/TableEnum.java b/src/main/java/com/baiyee/adcallback/common/enums/TableEnum.java index f62cbdd..ebbdee6 100644 --- a/src/main/java/com/baiyee/adcallback/common/enums/TableEnum.java +++ b/src/main/java/com/baiyee/adcallback/common/enums/TableEnum.java @@ -26,12 +26,17 @@ public enum TableEnum { /** * VIVO */ - VIVO("tb_vivo_backdata"), + VV("tb_vivo_backdata"), /** * 百度 */ - BD("tb_bd_backdata"); + BD("tb_bd_backdata"), + + /** + * 广点通 + */ + GD("tb_gdt_backdata"); /** * 类型 diff --git a/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java index b456fc0..e8be83b 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java @@ -52,11 +52,11 @@ public class AnalysisServiceImpl implements AnalysisService { // 不传入结束时间默认今天 Date endTime = dto.getEndTime() != null ? dto.getEndTime() - : DateUtil.beginOfDay(DateUtil.date()); + : DateUtil.beginOfDay(DateUtil.date()); // 开始时间为空将往前一周 Date startTime = dto.getStartTime() != null ? dto.getStartTime() - : DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.date(), 7)); + : DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.date(), 7)); String formatDate = DateUtil.formatDate(startTime); Integer deliveryQuantity = dto.getDeliveryQuantity(); Long between = DateUtil.between(startTime, endTime, DateUnit.DAY); @@ -110,7 +110,7 @@ public class AnalysisServiceImpl implements AnalysisService { break; case 4: // VIVO - sqlString = SqlConstant.PARSE_DATA_SQL.replaceAll(SqlConstant.TABLE_STR, TableEnum.VIVO.getTableName()); + sqlString = SqlConstant.PARSE_DATA_SQL.replaceAll(SqlConstant.TABLE_STR, TableEnum.VV.getTableName()); break; case 5: //百度 diff --git a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java index 0203647..4a07af7 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java @@ -74,12 +74,16 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { break; case 4: // VIVO - imel = getImeiNumJpa(TableEnum.VIVO.getTableName(), startDate, endDate, tag); + imel = getImeiNumJpa(TableEnum.VV.getTableName(), startDate, endDate, tag); break; case 5: //百度 imel = getImeiNumJpa(TableEnum.BD.getTableName(), startDate, endDate, tag); break; + case 6: + //广点通 + imel = getImeiNumJpa(TableEnum.GD.getTableName(), startDate, endDate, tag); + break; default: break; } From 43a8be6a86338593e72bdc6b19074b2fd691f65f Mon Sep 17 00:00:00 2001 From: yqy Date: Tue, 8 Mar 2022 14:02:49 +0800 Subject: [PATCH 2/9] =?UTF-8?q?dmp=E6=B7=BB=E5=8A=A0=E5=B9=BF=E7=82=B9?= =?UTF-8?q?=E9=80=9A=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baiyee/adcallback/service/impl/GenerateServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/baiyee/adcallback/service/impl/GenerateServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/GenerateServiceImpl.java index 0ae075d..eb6bbe5 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/GenerateServiceImpl.java @@ -15,7 +15,7 @@ public class GenerateServiceImpl implements GenerateService { /** * * @param tag - * @param type 0:巨量 1:百度 2:快手 3:UC 4:VIVO + * @param type 0:巨量 1:百度 2:快手 3:UC 4:VIVO 5:广点通 * @return */ @Override @@ -24,6 +24,7 @@ public class GenerateServiceImpl implements GenerateService { String JL = "/api/jl/monitor?aid=__AID__&cid=__CID__&ctype=__CTYPE__&csite=__CSITE__&imei=__IMEI__&idfa=__IDFA__&oaid=__OAID__&os=__OS__&mac=__MAC__&mac1=__MAC1__&ip=__IP__&geo=__GEO__&TIMESTAMP=__TS__&callback_url=__CALLBACK_URL__&model=__MODEL__&caid1=__CAID1__&tag="; String BD = "/api/bd/monitor?userid=__USER_ID__&aid=__IDEA_ID__&pid=__PLAN_ID__&uid=__UNIT_ID__&callback_url=__CALLBACK_URL__&click_id=__CLICK_ID__&idfa=__IDFA__&imei_md5=__IMEI__&oaid=__OAID__&mac=__MAC__&ip=__IP__&os=__OS__&ts=__TS__&device_info=__DEVICE_INFO__&tag="; String UC = "/api/uc/monitor?imei={IMEI_SUM1}&oaid={OAID}&time={TS}&callback={CALLBACK_URL}&androidid={ANDROIDID_SUM1}&mac={MAC_SUM2}&ip={IP}&ua={UA}&acid={ACID}&gid={GID}&aid={AID}&cid={CID}&tag="; + String GDT = "/api/gdt/monitor?click_id=__CLICK__ID__&click_time=__CLICK__TIME__&impression_time=__IMPRESSION__TIME__&campaign_id=__CAMPAIGN__ID__&adgroup_id=__ADGROUP__ID__&ad_id=__AD__ID__&ad_platform_type=__AD__PLATFORM__TYPE__&ad_type=__AD__TYPE__&account_id=__ACCOUNT__ID__&agency_id=__AGENCY__ID__&click_sku_id=__CLICK__SKU__ID__&billing_event=__BILLING__EVENT__&deeplink_url=__DEEPLINK__URL__&universal_link=__UNIVERSAL__LINK__&page_url=__PAGE__URL__&device_os_type=__DEVICE__OS__TYPE__&process_time=__PROCESS__TIME__&promoted_object_id=__PROMOTED__OBJECT__ID__&promoted_object_type=__PROMOTED__OBJECT__TYPE__&real_cost=__REAL__COST__&request_id=__REQUEST__ID__&impression_id=__IMPRESSION__ID__&muid=__MUID__&hash_android_id=__HASH__ANDROID__ID__&ip=__IP__&user_agent=__USER__AGENT__&callback=__CALLBACK__&encrypted_position_id=__ENCRYPTED__POSITION__ID__&hash_oaid=__HASH__OAID__&caid=__CAID__&adgroup_name=__ADGROUP__NAME__&site_set_name=__SITE__SET__NAME__&campaign_name=__CAMPAIGN__NAME__&ad_name=__AD__NAME__&model=__MODEL__&tag="; String generateDmp; switch (type){ case 0: @@ -35,6 +36,9 @@ public class GenerateServiceImpl implements GenerateService { case 3: generateDmp = URL + UC + replaceTag; break; + case 5: + generateDmp = URL + GDT + replaceTag; + break; default: generateDmp = null; } From 146a9625a5c91b08cf32c6ecff68466b3c589615 Mon Sep 17 00:00:00 2001 From: wujingtao Date: Tue, 8 Mar 2022 14:04:07 +0800 Subject: [PATCH 3/9] =?UTF-8?q?DMP=E7=9B=91=E6=B5=8B=E5=B9=BF=E7=82=B9?= =?UTF-8?q?=E9=80=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baiyee/adcallback/service/impl/AnalysisServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java index e8be83b..059071b 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java @@ -116,6 +116,10 @@ public class AnalysisServiceImpl implements AnalysisService { //百度 sqlString = SqlConstant.PARSE_DATA_SQL.replaceAll(SqlConstant.TABLE_STR, TableEnum.BD.getTableName()); break; + case 6: + //广点通 + sqlString = SqlConstant.PARSE_DATA_SQL.replaceAll(SqlConstant.TABLE_STR, TableEnum.GD.getTableName()); + break; default: } if (CharSequenceUtil.isNotBlank(sqlString)) { From 22286c9f84efc2ed9a7c53e551329b0abd231920 Mon Sep 17 00:00:00 2001 From: yqy Date: Tue, 8 Mar 2022 14:40:10 +0800 Subject: [PATCH 4/9] =?UTF-8?q?dmp=E6=B7=BB=E5=8A=A0=E5=BF=AB=E6=89=8B?= =?UTF-8?q?=E3=80=81vivo=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/constants/TagTypeConstant.java | 22 +++++++++++++++++++ .../service/impl/GenerateServiceImpl.java | 17 ++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/baiyee/adcallback/api/constants/TagTypeConstant.java diff --git a/src/main/java/com/baiyee/adcallback/api/constants/TagTypeConstant.java b/src/main/java/com/baiyee/adcallback/api/constants/TagTypeConstant.java new file mode 100644 index 0000000..2ca0604 --- /dev/null +++ b/src/main/java/com/baiyee/adcallback/api/constants/TagTypeConstant.java @@ -0,0 +1,22 @@ +package com.baiyee.adcallback.api.constants; + +/** + * 0:巨量 1:百度 2:快手 3:UC 4:VIVO 5:广点通 + */ +public class TagTypeConstant { + private TagTypeConstant(){ + + } + + public static final int JL = 0; + + public static final int BD = 1; + + public static final int KS = 2; + + public static final int UC = 3; + + public static final int VIVO = 4; + + public static final int GDT = 5; +} diff --git a/src/main/java/com/baiyee/adcallback/service/impl/GenerateServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/GenerateServiceImpl.java index eb6bbe5..9e8f6cf 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/GenerateServiceImpl.java @@ -1,5 +1,6 @@ package com.baiyee.adcallback.service.impl; +import com.baiyee.adcallback.api.constants.TagTypeConstant; import com.baiyee.adcallback.service.GenerateService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -25,18 +26,26 @@ public class GenerateServiceImpl implements GenerateService { String BD = "/api/bd/monitor?userid=__USER_ID__&aid=__IDEA_ID__&pid=__PLAN_ID__&uid=__UNIT_ID__&callback_url=__CALLBACK_URL__&click_id=__CLICK_ID__&idfa=__IDFA__&imei_md5=__IMEI__&oaid=__OAID__&mac=__MAC__&ip=__IP__&os=__OS__&ts=__TS__&device_info=__DEVICE_INFO__&tag="; String UC = "/api/uc/monitor?imei={IMEI_SUM1}&oaid={OAID}&time={TS}&callback={CALLBACK_URL}&androidid={ANDROIDID_SUM1}&mac={MAC_SUM2}&ip={IP}&ua={UA}&acid={ACID}&gid={GID}&aid={AID}&cid={CID}&tag="; String GDT = "/api/gdt/monitor?click_id=__CLICK__ID__&click_time=__CLICK__TIME__&impression_time=__IMPRESSION__TIME__&campaign_id=__CAMPAIGN__ID__&adgroup_id=__ADGROUP__ID__&ad_id=__AD__ID__&ad_platform_type=__AD__PLATFORM__TYPE__&ad_type=__AD__TYPE__&account_id=__ACCOUNT__ID__&agency_id=__AGENCY__ID__&click_sku_id=__CLICK__SKU__ID__&billing_event=__BILLING__EVENT__&deeplink_url=__DEEPLINK__URL__&universal_link=__UNIVERSAL__LINK__&page_url=__PAGE__URL__&device_os_type=__DEVICE__OS__TYPE__&process_time=__PROCESS__TIME__&promoted_object_id=__PROMOTED__OBJECT__ID__&promoted_object_type=__PROMOTED__OBJECT__TYPE__&real_cost=__REAL__COST__&request_id=__REQUEST__ID__&impression_id=__IMPRESSION__ID__&muid=__MUID__&hash_android_id=__HASH__ANDROID__ID__&ip=__IP__&user_agent=__USER__AGENT__&callback=__CALLBACK__&encrypted_position_id=__ENCRYPTED__POSITION__ID__&hash_oaid=__HASH__OAID__&caid=__CAID__&adgroup_name=__ADGROUP__NAME__&site_set_name=__SITE__SET__NAME__&campaign_name=__CAMPAIGN__NAME__&ad_name=__AD__NAME__&model=__MODEL__&tag="; + String KS = "/api/ks/monitor?&accountid=__ACCOUNTID__&aid=__AID__&cid=__CID__&did=__DID__&dname=__DNAME__&imeiMD5=__IMEI2__&oaid=__OAID__&mac=__MAC2__&androidid=__ANDROIDID2__&os=__OS__&ts=__TS__&ip=__IP__&ua=__UA__&csite=__CSITE__&model=__MODEL__&ac_creative=__AC_CREATIVE__&tag="; + String VIVO = "/api/vivo/monitor?os=__OS__&ip=__IP__&oaid=__OAID__&oaidplain=__OAIDPLAIN__&ua=__UA__&androidid=__ANDROIDID__&location=__LOCATION__&requestid=__REQUESTID__&requesttime=__REQUESTTIME__&advertiserid=__ADVERTISERID__&adname=__ADNAME__&creativeid=__CREATIVEID__&osversion=__OSVERSION__&model=__MODEL__&lang=__LANG__&resolution=__RESOLUTION__&nettype=__NETTYPE__&ts=__TS__&tag="; String generateDmp; switch (type){ - case 0: + case TagTypeConstant.JL: generateDmp = URL + JL + replaceTag; break; - case 1: + case TagTypeConstant.BD: generateDmp = URL + BD +replaceTag; break; - case 3: + case TagTypeConstant.KS: + generateDmp = URL + KS +replaceTag; + break; + case TagTypeConstant.UC: generateDmp = URL + UC + replaceTag; break; - case 5: + case TagTypeConstant.VIVO: + generateDmp = URL + VIVO + replaceTag; + break; + case TagTypeConstant.GDT: generateDmp = URL + GDT + replaceTag; break; default: From 2d54dd5651a6071acb2904f65acd7691c7e15c14 Mon Sep 17 00:00:00 2001 From: wujingtao Date: Wed, 9 Mar 2022 12:30:28 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8E=BB=E9=87=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adcallback/service/impl/DmpMonitorNumServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java index 4a07af7..ad61d5d 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java @@ -56,7 +56,7 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { private List getImeiNum(Date startDate, Date endDate, String tag) { List imel = new ArrayList<>(); - int value = tag.contains(StrPool.UNDERLINE) ? DeliveryPlatformEnum.getValue + int value = tag.contains(StrPool.DASHED) ? DeliveryPlatformEnum.getValue (tag.substring(0, tag.indexOf(StrPool.DASHED))) : tag.equalsIgnoreCase(SqlConstant.TABLE_JU_QIAN) ? 1 : 999; switch (value) { @@ -116,11 +116,11 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { @Transactional(rollbackFor = Exception.class) public List getImeiNumJpa(String tableName, Date startDate, Date endDate, String tag) { StringBuilder sql = new StringBuilder(); - sql.append("select DISTINCT tb.gmt_create as gmtCreate ,tb.imei as imei from " + tableName + " as tb where 1=1"); - sql.append(" and tb.imei != :imei1 "); + sql.append("select DISTINCT DATE_FORMAT( tb.gmt_create, '%Y-%m-%d' ) as gmtCreate ,tb.imei as imei from " + tableName + " as tb where"); + sql.append(" tb.imei != :imei1 "); sql.append(" and tb.imei != :imei2 "); sql.append(" and tb.gmt_create >= :startDate "); - sql.append(" and tb.gmt_create <= :endDate "); + sql.append(" and tb.gmt_create < :endDate "); sql.append(" and tb.tag = :tag "); Query query = entityManager.createNativeQuery(sql.toString()); query.setParameter("imei1", ""); From 6f8158c125297423dea7c1b1bbbb33926edd5435 Mon Sep 17 00:00:00 2001 From: bynt Date: Thu, 10 Mar 2022 09:48:04 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baiyee/adcallback/api/constants/SqlConstant.java | 4 ++-- .../baiyee/adcallback/api/dto/DmpMonitorJpaDto.java | 5 ++--- .../adcallback/service/impl/AnalysisServiceImpl.java | 2 +- .../service/impl/DmpMonitorNumServiceImpl.java | 10 ++++++---- src/main/resources/application.yml | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/baiyee/adcallback/api/constants/SqlConstant.java b/src/main/java/com/baiyee/adcallback/api/constants/SqlConstant.java index 3117a17..c157a66 100644 --- a/src/main/java/com/baiyee/adcallback/api/constants/SqlConstant.java +++ b/src/main/java/com/baiyee/adcallback/api/constants/SqlConstant.java @@ -32,14 +32,14 @@ public class SqlConstant { " FROM" + " `tabIndex` " + " WHERE" + - " tabIndex.`gmt_create` >= :startTime " + + " tabIndex.`gmt_create` > :startTime " + " AND gmt_create < :endTime " + " AND tag = :tagStr" + " GROUP BY" + " DATE DESC " + " ) _tmpAllTable " + "GROUP BY" + - " `date` DESC"; + " `date`"; } diff --git a/src/main/java/com/baiyee/adcallback/api/dto/DmpMonitorJpaDto.java b/src/main/java/com/baiyee/adcallback/api/dto/DmpMonitorJpaDto.java index 5283381..45bd3a7 100644 --- a/src/main/java/com/baiyee/adcallback/api/dto/DmpMonitorJpaDto.java +++ b/src/main/java/com/baiyee/adcallback/api/dto/DmpMonitorJpaDto.java @@ -2,8 +2,6 @@ package com.baiyee.adcallback.api.dto; import lombok.Data; -import java.util.Date; - /** * @author wujingtao * @date 2022/03/01 @@ -12,5 +10,6 @@ import java.util.Date; public class DmpMonitorJpaDto { private String imei; - private Date gmtCreate; + + private String gmtCreate; } diff --git a/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java index 059071b..207633b 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/AnalysisServiceImpl.java @@ -91,7 +91,7 @@ public class AnalysisServiceImpl implements AnalysisService { private List getQueryResults (String tagStr, String formatDate, Date endTime, Date startTime) { // 获取前缀判断来源 - int value = tagStr.contains(StrPool.UNDERLINE) ? DeliveryPlatformEnum.getValue + int value = tagStr.contains(StrPool.DASHED) ? DeliveryPlatformEnum.getValue (tagStr.substring(0, tagStr.indexOf(StrPool.DASHED))) : tagStr.equalsIgnoreCase(SqlConstant.TABLE_JU_QIAN) ? 1 : 999; String sqlString = CharSequenceUtil.EMPTY; diff --git a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java index ad61d5d..0a124fd 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java @@ -97,7 +97,8 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { for (int i = 0; i <= betweenDay; i++) { HashMap map = new HashMap<>(); Date dateTime = DateUtil.offsetDay(beginTime, i); - List collect = iemi.stream().filter(c -> betweenByDay(dateTime, c.getGmtCreate())).collect(Collectors.toList()); + List collect = iemi.stream().filter + (c -> betweenByDay(dateTime,DateUtil.parseDate(c.getGmtCreate()))).collect(Collectors.toList()); map.put("date", dateTime); map.put("num", collect.size()); list.add(map); @@ -119,9 +120,10 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { sql.append("select DISTINCT DATE_FORMAT( tb.gmt_create, '%Y-%m-%d' ) as gmtCreate ,tb.imei as imei from " + tableName + " as tb where"); sql.append(" tb.imei != :imei1 "); sql.append(" and tb.imei != :imei2 "); - sql.append(" and tb.gmt_create >= :startDate "); + sql.append(" and tb.gmt_create > :startDate "); sql.append(" and tb.gmt_create < :endDate "); sql.append(" and tb.tag = :tag "); + Query query = entityManager.createNativeQuery(sql.toString()); query.setParameter("imei1", ""); query.setParameter("imei2", "__IMEI__"); @@ -138,8 +140,8 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { for (Object obj : list) { Map row = (Map) obj; DmpMonitorJpaDto trade = new DmpMonitorJpaDto(); - trade.setImei((String) row.get("imei")); - trade.setGmtCreate((Date) row.get("gmtCreate")); + trade.setImei(row.get("imei").toString()); + trade.setGmtCreate(row.get("gmtCreate").toString()); tradeList.add(trade); } return tradeList; diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0768d42..f22d935 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,7 +4,7 @@ spring: application: name: ad-callback profiles: - active: prod + active: dev jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss From 6eb6a3459aea8f1ce205b5dd0f027ecea4b0a1dd Mon Sep 17 00:00:00 2001 From: wujingtao Date: Thu, 10 Mar 2022 10:54:32 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adcallback/api/dto/DmpMonitorJpaDto.java | 3 +- .../service/DmpMonitorNumService.java | 4 +- .../impl/DmpMonitorNumServiceImpl.java | 191 ++++++++++++------ 3 files changed, 129 insertions(+), 69 deletions(-) diff --git a/src/main/java/com/baiyee/adcallback/api/dto/DmpMonitorJpaDto.java b/src/main/java/com/baiyee/adcallback/api/dto/DmpMonitorJpaDto.java index 45bd3a7..d4728ba 100644 --- a/src/main/java/com/baiyee/adcallback/api/dto/DmpMonitorJpaDto.java +++ b/src/main/java/com/baiyee/adcallback/api/dto/DmpMonitorJpaDto.java @@ -10,6 +10,7 @@ import lombok.Data; public class DmpMonitorJpaDto { private String imei; - private String gmtCreate; + private String tag; + private Long num; } diff --git a/src/main/java/com/baiyee/adcallback/service/DmpMonitorNumService.java b/src/main/java/com/baiyee/adcallback/service/DmpMonitorNumService.java index 4174ae3..d3d7430 100644 --- a/src/main/java/com/baiyee/adcallback/service/DmpMonitorNumService.java +++ b/src/main/java/com/baiyee/adcallback/service/DmpMonitorNumService.java @@ -1,7 +1,9 @@ package com.baiyee.adcallback.service; +import com.baiyee.adcallback.api.dto.DmpMonitorJpaDto; import com.baiyee.adcallback.api.dto.DmpMonitorNumDto; +import java.util.List; import java.util.Map; /** @@ -11,5 +13,5 @@ import java.util.Map; public interface DmpMonitorNumService { Map queryNumByTags(DmpMonitorNumDto dmpMonitorNumDto); - Map getDmpImeiLink(DmpMonitorNumDto dmpMonitorNumDto); + Map> getDmpImeiLink(DmpMonitorNumDto dmpMonitorNumDto); } diff --git a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java index 0a124fd..dac7140 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java @@ -3,6 +3,8 @@ package com.baiyee.adcallback.service.impl; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.StrPool; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baiyee.adcallback.api.constants.SqlConstant; import com.baiyee.adcallback.api.dto.DmpMonitorJpaDto; import com.baiyee.adcallback.api.dto.DmpMonitorNumDto; @@ -18,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; +import java.math.BigInteger; import java.util.*; import java.util.stream.Collectors; @@ -35,75 +38,109 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { @Override public Map queryNumByTags(DmpMonitorNumDto dmpMonitorNumDto) { HashMap map = new HashMap<>(); - for (String tag : dmpMonitorNumDto.getTags()) { - List imel = getImeiNum(dmpMonitorNumDto.getStartTime(), dmpMonitorNumDto.getEndTime(), tag); - List> groupByTime = getGroupByTime(dmpMonitorNumDto.getStartTime(), dmpMonitorNumDto.getEndTime(), imel); - map.put(tag, groupByTime); + List mapData = getMapData(dmpMonitorNumDto, 1); + HashMap numMapGroupByTag = new HashMap<>(8); + for (DmpMonitorJpaDto info : mapData) { + numMapGroupByTag.put(info.getTag(), info); + } + for (String key : dmpMonitorNumDto.getTags()) { + if (!numMapGroupByTag.containsKey(key)) { + numMapGroupByTag.put(key, new DmpMonitorJpaDto()); + } + } + for (String key : numMapGroupByTag.keySet()) { + List> groupByTime = getGroupByTime(dmpMonitorNumDto.getStartTime(), dmpMonitorNumDto.getEndTime(), numMapGroupByTag.get(key)); + map.put(key, groupByTime); } return map; } @Override - public Map getDmpImeiLink(DmpMonitorNumDto dmpMonitorNumDto) { - HashMap map = new HashMap<>(); - for (String tag : dmpMonitorNumDto.getTags()) { - List imel = getImeiNum(dmpMonitorNumDto.getStartTime(), dmpMonitorNumDto.getEndTime(), tag); - map.put(tag, imel); - } - return map; + public Map> getDmpImeiLink(DmpMonitorNumDto dmpMonitorNumDto) { + List mapData = getMapData(dmpMonitorNumDto, 2); + HashMap> mapGroupByTag = new HashMap<>(); + mapData.stream().collect(Collectors.groupingBy(DmpMonitorJpaDto::getTag, Collectors.toList())).forEach(mapGroupByTag::put); + return mapGroupByTag; } - private List getImeiNum(Date startDate, Date endDate, String tag) { - List imel = new ArrayList<>(); - - int value = tag.contains(StrPool.DASHED) ? DeliveryPlatformEnum.getValue - (tag.substring(0, tag.indexOf(StrPool.DASHED))) : tag.equalsIgnoreCase(SqlConstant.TABLE_JU_QIAN) ? 1 : 999; - - switch (value) { - case 1: - // 巨量 - imel = getImeiNumJpa(TableEnum.JL.getTableName(), startDate, endDate, tag); - break; - case 2: - // 快手 - imel = getImeiNumJpa(TableEnum.KS.getTableName(), startDate, endDate, tag); - break; - case 3: - // UC - imel = getImeiNumJpa(TableEnum.UC.getTableName(), startDate, endDate, tag); - break; - case 4: - // VIVO - imel = getImeiNumJpa(TableEnum.VV.getTableName(), startDate, endDate, tag); - break; - case 5: - //百度 - imel = getImeiNumJpa(TableEnum.BD.getTableName(), startDate, endDate, tag); - break; - case 6: - //广点通 - imel = getImeiNumJpa(TableEnum.GD.getTableName(), startDate, endDate, tag); - break; - default: - break; + private List getMapData(DmpMonitorNumDto dmpMonitorNumDto, Integer flag) { + List jlArray = new ArrayList<>(); + List ksArray = new ArrayList<>(); + List ucArray = new ArrayList<>(); + List vvArray = new ArrayList<>(); + List bdArray = new ArrayList<>(); + List gdArray = new ArrayList<>(); + for (String tag : dmpMonitorNumDto.getTags()) { + int value = tag.contains(StrPool.DASHED) ? DeliveryPlatformEnum.getValue + (tag.substring(0, tag.indexOf(StrPool.DASHED))) : tag.equalsIgnoreCase(SqlConstant.TABLE_JU_QIAN) ? 1 : 999; + switch (value) { + case 1: + jlArray.add(tag); + break; + case 2: + // 快手 + ksArray.add(tag); + break; + case 3: + // UC + ucArray.add(tag); + break; + case 4: + // VIVO + vvArray.add(tag); + break; + case 5: + //百度 + bdArray.add(tag); + break; + case 6: + //广点通 + gdArray.add(tag); + break; + default: + break; + } + } + Date startTime = dmpMonitorNumDto.getStartTime(); + Date endTime = dmpMonitorNumDto.getEndTime(); + List listAll = new ArrayList<>(); + if (jlArray.size() > 0) { + listAll.addAll(getImeiNumJpa(TableEnum.JL.getTableName(), startTime, endTime, jlArray, flag)); + } else if (ksArray.size() > 0) { + listAll.addAll(getImeiNumJpa(TableEnum.KS.getTableName(), startTime, endTime, ksArray, flag)); + } else if (ucArray.size() > 0) { + listAll.addAll(getImeiNumJpa(TableEnum.UC.getTableName(), startTime, endTime, ucArray, flag)); + } else if (vvArray.size() > 0) { + listAll.addAll(getImeiNumJpa(TableEnum.VV.getTableName(), startTime, endTime, vvArray, flag)); + } else if (bdArray.size() > 0) { + listAll.addAll(getImeiNumJpa(TableEnum.BD.getTableName(), startTime, endTime, bdArray, flag)); + } else if (gdArray.size() > 0) { + listAll.addAll(getImeiNumJpa(TableEnum.GD.getTableName(), startTime, endTime, gdArray, flag)); } - return imel; + return listAll; } //按时间分组 - private List> getGroupByTime(Date beginTime, Date endTime, List iemi) { + private List> getGroupByTime(Date beginTime, Date endTime, DmpMonitorJpaDto dto) { List> list = new ArrayList<>(); int betweenDay = (int) DateUtil.between(beginTime, endTime, DateUnit.DAY); for (int i = 0; i <= betweenDay; i++) { - HashMap map = new HashMap<>(); + HashMap map = new HashMap<>(16); Date dateTime = DateUtil.offsetDay(beginTime, i); - List collect = iemi.stream().filter - (c -> betweenByDay(dateTime,DateUtil.parseDate(c.getGmtCreate()))).collect(Collectors.toList()); - map.put("date", dateTime); - map.put("num", collect.size()); + if (ObjectUtil.isNull(dto) || StrUtil.isBlank(dto.getTag())) { + map.put("date", dateTime); + map.put("num", 0); + } else { + if (betweenByDay(dateTime, DateUtil.parseDate(dto.getGmtCreate()))) { + map.put("num", dto.getNum()); + map.put("date", dateTime); + } else { + map.put("num", 0); + map.put("date", dateTime); + } + } list.add(map); } - return list; } @@ -115,33 +152,53 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { } @Transactional(rollbackFor = Exception.class) - public List getImeiNumJpa(String tableName, Date startDate, Date endDate, String tag) { - StringBuilder sql = new StringBuilder(); - sql.append("select DISTINCT DATE_FORMAT( tb.gmt_create, '%Y-%m-%d' ) as gmtCreate ,tb.imei as imei from " + tableName + " as tb where"); - sql.append(" tb.imei != :imei1 "); - sql.append(" and tb.imei != :imei2 "); - sql.append(" and tb.gmt_create > :startDate "); - sql.append(" and tb.gmt_create < :endDate "); - sql.append(" and tb.tag = :tag "); - - Query query = entityManager.createNativeQuery(sql.toString()); + public List getImeiNumJpa(String tableName, Date startDate, Date endDate, List tags, Integer flag) { + String sql = getSqlString(tableName, flag); + Query query = entityManager.createNativeQuery(sql); query.setParameter("imei1", ""); query.setParameter("imei2", "__IMEI__"); query.setParameter("startDate", startDate); query.setParameter("endDate", endDate); - query.setParameter("tag", tag); + query.setParameter("tag", tags); query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List list = query.getResultList(); - return getDmpMonitorJpaDto(list); + return getDmpMonitorJpaDto(list, flag); + } + + private String getSqlString(String tableName, Integer flag) { + StringBuilder sql = new StringBuilder(); + if (1 == flag) { + sql.append(" select a.tag,a.date as date ,COUNT(*) as num FROM ( SELECT DISTINCT(tb.imei),tb.tag ,DATE_FORMAT( tb.gmt_create, '%Y-%m-%d' ) AS date FROM " + tableName + " as tb where "); + sql.append(" tb.imei != :imei1 "); + sql.append(" and tb.imei != :imei2 "); + sql.append(" and tb.gmt_create >= :startDate "); + sql.append(" and tb.gmt_create < :endDate "); + sql.append(" and tb.tag in :tag "); + sql.append(" ) a group by a.tag,a.date"); + } else { + sql.append("select DISTINCT DATE_FORMAT( tb.gmt_create, '%Y-%m-%d' ) as date ,tb.imei as imei ,tb.tag as tag from " + tableName + " as tb where"); + sql.append(" tb.imei != :imei1 "); + sql.append(" and tb.imei != :imei2 "); + sql.append(" and tb.gmt_create >= :startDate "); + sql.append(" and tb.gmt_create < :endDate "); + sql.append(" and tb.tag in :tag "); + } + return sql.toString(); } - private List getDmpMonitorJpaDto(List list) { + private List getDmpMonitorJpaDto(List list, Integer flag) { List tradeList = new ArrayList<>(); for (Object obj : list) { Map row = (Map) obj; DmpMonitorJpaDto trade = new DmpMonitorJpaDto(); - trade.setImei(row.get("imei").toString()); - trade.setGmtCreate(row.get("gmtCreate").toString()); + if (1 == flag) { + BigInteger num = (BigInteger) row.get("num"); + trade.setNum(num.longValue()); + } else { + trade.setImei(row.get("imei").toString()); + } + trade.setGmtCreate(row.get("date").toString()); + trade.setTag(row.get("tag").toString()); tradeList.add(trade); } return tradeList; From a82846ebd175a4bd4ce6b129ba79fdc2a8ed9171 Mon Sep 17 00:00:00 2001 From: wujingtao Date: Thu, 10 Mar 2022 11:57:35 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E8=A7=A3=E5=86=B3sql=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DmpMonitorNumServiceImpl.java | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java index dac7140..6c8fbf6 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java @@ -3,8 +3,6 @@ package com.baiyee.adcallback.service.impl; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.StrPool; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.baiyee.adcallback.api.constants.SqlConstant; import com.baiyee.adcallback.api.dto.DmpMonitorJpaDto; import com.baiyee.adcallback.api.dto.DmpMonitorNumDto; @@ -39,13 +37,22 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { public Map queryNumByTags(DmpMonitorNumDto dmpMonitorNumDto) { HashMap map = new HashMap<>(); List mapData = getMapData(dmpMonitorNumDto, 1); - HashMap numMapGroupByTag = new HashMap<>(8); + HashMap> numMapGroupByTag = new HashMap<>(8); for (DmpMonitorJpaDto info : mapData) { - numMapGroupByTag.put(info.getTag(), info); + List list = new ArrayList<>(); + if (numMapGroupByTag.containsKey(info.getTag())) { + List list1 = numMapGroupByTag.get(info.getTag()); + list1.add(info); + numMapGroupByTag.put(info.getTag(), list1); + } else { + List list1 = new ArrayList<>(); + list1.add(info); + numMapGroupByTag.put(info.getTag(), list1); + } } for (String key : dmpMonitorNumDto.getTags()) { if (!numMapGroupByTag.containsKey(key)) { - numMapGroupByTag.put(key, new DmpMonitorJpaDto()); + numMapGroupByTag.put(key, new ArrayList<>()); } } for (String key : numMapGroupByTag.keySet()) { @@ -121,25 +128,28 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { } //按时间分组 - private List> getGroupByTime(Date beginTime, Date endTime, DmpMonitorJpaDto dto) { + private List> getGroupByTime(Date beginTime, Date endTime, List dto) { List> list = new ArrayList<>(); int betweenDay = (int) DateUtil.between(beginTime, endTime, DateUnit.DAY); for (int i = 0; i <= betweenDay; i++) { - HashMap map = new HashMap<>(16); + HashMap map = new HashMap<>(); Date dateTime = DateUtil.offsetDay(beginTime, i); - if (ObjectUtil.isNull(dto) || StrUtil.isBlank(dto.getTag())) { - map.put("date", dateTime); - map.put("num", 0); - } else { - if (betweenByDay(dateTime, DateUtil.parseDate(dto.getGmtCreate()))) { - map.put("num", dto.getNum()); + if (dto.size() > 0) { + List collect = dto.stream().filter(c -> betweenByDay(dateTime, DateUtil.parseDate(c.getGmtCreate()))).collect(Collectors.toList()); + if (collect.size() > 0) { + DmpMonitorJpaDto dmpMonitorJpaDto = collect.get(0); map.put("date", dateTime); + map.put("num", dmpMonitorJpaDto.getNum()); } else { - map.put("num", 0); map.put("date", dateTime); + map.put("num", 0); } + list.add(map); + } else { + map.put("date", dateTime); + map.put("num", 0); + list.add(map); } - list.add(map); } return list; } From 85c7cfb33f0ea4a5edcdebb72336d5492f01dd2c Mon Sep 17 00:00:00 2001 From: wujingtao Date: Thu, 10 Mar 2022 14:43:24 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=97=B6=E5=88=86?= =?UTF-8?q?=E7=A7=92=E6=97=B6=E9=97=B4=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DmpMonitorNumServiceImpl.java | 37 +++++++------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java index 6c8fbf6..6920130 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java @@ -38,18 +38,7 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { HashMap map = new HashMap<>(); List mapData = getMapData(dmpMonitorNumDto, 1); HashMap> numMapGroupByTag = new HashMap<>(8); - for (DmpMonitorJpaDto info : mapData) { - List list = new ArrayList<>(); - if (numMapGroupByTag.containsKey(info.getTag())) { - List list1 = numMapGroupByTag.get(info.getTag()); - list1.add(info); - numMapGroupByTag.put(info.getTag(), list1); - } else { - List list1 = new ArrayList<>(); - list1.add(info); - numMapGroupByTag.put(info.getTag(), list1); - } - } + mapData.stream().collect(Collectors.groupingBy(DmpMonitorJpaDto::getTag, Collectors.toList())).forEach(numMapGroupByTag::put); for (String key : dmpMonitorNumDto.getTags()) { if (!numMapGroupByTag.containsKey(key)) { numMapGroupByTag.put(key, new ArrayList<>()); @@ -127,15 +116,22 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { return listAll; } - //按时间分组 + /** + * 组装数据返回前端,按时间分组 + * + * @param beginTime + * @param endTime + * @param dto + * @return + */ private List> getGroupByTime(Date beginTime, Date endTime, List dto) { List> list = new ArrayList<>(); int betweenDay = (int) DateUtil.between(beginTime, endTime, DateUnit.DAY); for (int i = 0; i <= betweenDay; i++) { HashMap map = new HashMap<>(); - Date dateTime = DateUtil.offsetDay(beginTime, i); + String dateTime = DateUtil.format(DateUtil.offsetDay(beginTime, i), "yyyy-MM-dd"); if (dto.size() > 0) { - List collect = dto.stream().filter(c -> betweenByDay(dateTime, DateUtil.parseDate(c.getGmtCreate()))).collect(Collectors.toList()); + List collect = dto.stream().filter(c -> DateUtil.between(DateUtil.parseDate(dateTime), DateUtil.parseDate(c.getGmtCreate()), DateUnit.DAY) == 0).collect(Collectors.toList()); if (collect.size() > 0) { DmpMonitorJpaDto dmpMonitorJpaDto = collect.get(0); map.put("date", dateTime); @@ -154,13 +150,6 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { return list; } - private static Boolean betweenByDay(Date begin, Date end) { - begin = DateUtil.parse(DateUtil.format(begin, "yyyy-MM-dd")); - end = DateUtil.parse(DateUtil.format(end, "yyyy-MM-dd")); - long between = DateUtil.between(begin, end, DateUnit.DAY); - return between == 0; - } - @Transactional(rollbackFor = Exception.class) public List getImeiNumJpa(String tableName, Date startDate, Date endDate, List tags, Integer flag) { String sql = getSqlString(tableName, flag); @@ -178,7 +167,7 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { private String getSqlString(String tableName, Integer flag) { StringBuilder sql = new StringBuilder(); if (1 == flag) { - sql.append(" select a.tag,a.date as date ,COUNT(*) as num FROM ( SELECT DISTINCT(tb.imei),tb.tag ,DATE_FORMAT( tb.gmt_create, '%Y-%m-%d' ) AS date FROM " + tableName + " as tb where "); + sql.append(" select a.tag,a.date as date ,COUNT(*) as num FROM ( SELECT DISTINCT(tb.imei),tb.tag ,DATE_FORMAT( tb.gmt_create, '%Y-%m-%d' ) AS date FROM ").append(tableName).append(" as tb where "); sql.append(" tb.imei != :imei1 "); sql.append(" and tb.imei != :imei2 "); sql.append(" and tb.gmt_create >= :startDate "); @@ -186,7 +175,7 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { sql.append(" and tb.tag in :tag "); sql.append(" ) a group by a.tag,a.date"); } else { - sql.append("select DISTINCT DATE_FORMAT( tb.gmt_create, '%Y-%m-%d' ) as date ,tb.imei as imei ,tb.tag as tag from " + tableName + " as tb where"); + sql.append("select DISTINCT DATE_FORMAT( tb.gmt_create, '%Y-%m-%d' ) as date ,tb.imei as imei ,tb.tag as tag from ").append(tableName).append(" as tb where"); sql.append(" tb.imei != :imei1 "); sql.append(" and tb.imei != :imei2 "); sql.append(" and tb.gmt_create >= :startDate ");