diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/enums/UrlLinkEnum.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/enums/UrlLinkEnum.java new file mode 100644 index 0000000..a233403 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/enums/UrlLinkEnum.java @@ -0,0 +1,64 @@ +package me.zhengjie.modules.dmpMonitor.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author Enzo + * @date : 2023/4/19 + */ + +@Getter +@AllArgsConstructor +public enum UrlLinkEnum { + + + /** + * 巨量 + */ + JL(1, "/api/jl/new/monitor/v1?aid=__AID__&aid_name=__AID_NAME__&cid=__CID__&cid_name=__CID_NAME__&campaign_id=__CAMPAIGN_ID__&campaign_name=__CAMPAIGN_NAME__&ctype=__CTYPE__&csite=__CSITE__&convert_id=__CONVERT_ID__&request_id=__REQUEST_ID__&track_id=__TRACK_ID__&os=__OS__&ua=__UA__&geo=__GEO__&ts=__TS__&model=__MODEL__&imei=__IMEI__&idfa=__IDFA__&idfa_md5=__IDFA_MD5__&oaid=__OAID__&oaid_md5=__OAID_MD5__&mac=__MAC__&callback_param=__CALLBACK_PARAM__&callback_url=__CALLBACK_URL__&advertiser_id=__ADVERTISER_ID__"), + + /** + * BD + */ + BD(2, "/api/bd/new/monitor?userId=__USER_ID__&aid=__IDEA_ID__&pid=__PLAN_ID__&uid=__UNIT_ID__&callbackUrl=__CALLBACK_URL__&extInfo=__EXT_INFO__&clickId=__CLICK_ID__&idfa=__IDFA__&imei=__IMEI__&oaidMD5=__OAID_MD5__&oaid=__OAID__&mac=__MAC__&ip=__IP__&ua=__UA__&osType=__OS_TYPE__&ts=__TS__&interactionsType=__INTERACTIONS_TYPE__"), + + /** + * UC + */ + UC(3, "/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}&model={MODEL1}&idfa={IDFA1}"), + + /** + * 广点通 + */ + GDT(4, "/api/gdt/new/monitor?account_id=__ACCOUNT_ID__&click_id=__CLICK_ID__&click_time=__CLICK_TIME__&device_os_type=__DEVICE_OS_TYPE__&muid=__MUID__&hash_oaid=__HASH_OAID__&hash_mac=__HASH_MAC__&campaign_id=__CAMPAIGN_ID__&adgroup_id=__ADGROUP_ID__&ad_id=__AD_ID__&promoted_object_id=__PROMOTED_OBJECT_ID__&ip=__IP__&user_agent=__USER_AGENT__&callback=__CALLBACK__&promoted_object_type=__PROMOTED_OBJECT_TYPE__"), + + /** + * 快手 + */ + KS(5, "/api/ks/new/monitor?accountid=__ACCOUNTID__&aid=__AID__&cid=__CID__&did=__DID__&dname=__DNAME__&photoid=__PHOTOID__&oaid=__OAID2__&imei=__IMEI2__&imeiHash=__IMEI3__&idfa=__IDFA2__&idfaHash=__IDFA3__&macBak=__MAC2__&mac=__MAC3__&ts=__TS__&ua=__UA__&os=__OS__&model=__MODEL__&callback=__CALLBACK__&ip=__IP__&csite=__CSITE__&ac_creative=__AC_CREATIVE__&win_for_id=__WINFOID__&tag="), + + /** + * vivo + */ + VIVO(6, "/api/vivo/monitor?os=__OS__&imei=__IMEI__&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__"), + + /** + * 巨量v2版本 + */ + JL2(7, "/api/jl/new/monitor/v2?promotion_id=__PROMOTION_ID__&project_id=__PROJECT_ID__&promotion_name=__PROMOTION_NAME__&project_name=__PROJECT_NAME__&mid1=__MID1__&mid2=__MID2__&mid3=__MID3__&mid4=__MID4__&mid5=__MID5__&mid6=__MID6__&csite=__CSITE__&convert_id=__CONVERT_ID__&request_id=__REQUEST_ID__&track_id=__TRACK_ID__&os=__OS__&ua=__UA__&geo=__GEO__&ts=__TS__&model=__MODEL__&imei=__IMEI__&idfa=__IDFA__&idfa_md5=__IDFA_MD5__&oaid=__OAID__&oaid_md5=__OAID_MD5__&mac=__MAC__&callback_param=__CALLBACK_PARAM__&callback_url=__CALLBACK_URL__&advertiser_id=__ADVERTISER_ID__"); + + private final int type; + + private final String url; + + public static UrlLinkEnum find(int val) { + for (UrlLinkEnum dataScopeEnum : UrlLinkEnum.values()) { + if (dataScopeEnum.getType() == val) { + return dataScopeEnum; + } + } + return null; + } + +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/rest/StatisticsDmpController.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/rest/StatisticsDmpController.java index 61109c4..c6fa738 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/rest/StatisticsDmpController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/rest/StatisticsDmpController.java @@ -5,7 +5,6 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import me.zhengjie.annotation.Log; -import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.dmpMonitor.domian.DmpMonitorNumDto; import me.zhengjie.modules.dmpMonitor.dto.DataAnalysisRequestDTO; import me.zhengjie.modules.dmpMonitor.request.HttpRequestRds; @@ -16,8 +15,6 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; -import java.util.Map; - /** * @author wujingtao @@ -32,7 +29,6 @@ public class StatisticsDmpController { private final StatisticsDmpService statisticsDmpService; - private final HttpRequestRds httpRequestRds; @Log("获取数目") @@ -51,24 +47,17 @@ public class StatisticsDmpController { return new ResponseEntity<>(HttpStatus.OK); } - /** - * 生成DMP链接 - * @param tag - * @return - */ + @Log("生成链接") @GetMapping("/generateDmp") - public ResponseEntity generateDmp(@RequestParam("tag") String tag, @RequestParam("type") Integer type){ - Map map = httpRequestRds.generateDmp(tag, type); - String status = map.get("status"); - String data = map.get("data"); - if ("1".equals(status)){ - throw new BadRequestException(data); - } - return new ResponseEntity<>(data,HttpStatus.OK); + public ResponseEntity generateDmp(@RequestParam("tag") String tag, + @RequestParam("type") Integer type, + @RequestParam(value = "vpoint", required = false) String vpoInt, + @RequestParam(value = "version", required = false) Integer version, + @RequestParam(value = "akey", required = false) String aKey) { + return new ResponseEntity<>(statisticsDmpService.createLinkUrl(tag, type, vpoInt, aKey, version), HttpStatus.OK); } - @Log("解析数据") @ApiOperation("根据传入参数解析请求") @PostMapping("/parseData") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/StatisticsDmpService.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/StatisticsDmpService.java index ab81344..c99ed7d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/StatisticsDmpService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/StatisticsDmpService.java @@ -2,6 +2,8 @@ package me.zhengjie.modules.dmpMonitor.service; import me.zhengjie.modules.dmpMonitor.domian.DmpMonitorNumDto; import me.zhengjie.modules.dmpMonitor.dto.DataAnalysisRequestDTO; +import me.zhengjie.modules.dmpMonitor.enums.UrlLinkEnum; +import me.zhengjie.modules.dmpMonitor.vo.CreateLinkUrlVO; import java.util.List; import java.util.Map; @@ -22,4 +24,15 @@ public interface StatisticsDmpService { * @return */ Map analyticalData(List chartRequestList); + + /** + * 生成链接 + * + * @param tag tag值 + * @param type {@link UrlLinkEnum}type值对应 + * @param vpoInt 链接类型2.0版本选择 + * @param aKey aKey值 + * @param version 版本 + */ + List createLinkUrl(String tag, Integer type, String vpoInt, String aKey, Integer version); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/impl/StatisticsDmpServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/impl/StatisticsDmpServiceImpl.java index eca09f7..861c197 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/impl/StatisticsDmpServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/impl/StatisticsDmpServiceImpl.java @@ -1,5 +1,6 @@ package me.zhengjie.modules.dmpMonitor.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ZipUtil; @@ -13,25 +14,23 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import me.zhengjie.common.json.ApiDataResponse; import me.zhengjie.constant.SystemConstant; -import me.zhengjie.domain.EmailConfig; import me.zhengjie.domain.vo.EmailVo; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.dmpMonitor.domian.DmpMonitorNumDto; +import me.zhengjie.modules.dmpMonitor.enums.UrlLinkEnum; import me.zhengjie.modules.dmpMonitor.request.FtpRequest; import me.zhengjie.modules.dmpMonitor.request.HttpRequestRds; import me.zhengjie.modules.dmpMonitor.service.StatisticsDmpService; import me.zhengjie.modules.dmpMonitor.dto.DataAnalysisRequestDTO; +import me.zhengjie.modules.dmpMonitor.vo.CreateLinkUrlVO; import me.zhengjie.modules.uploadnew.service.impl.BuildPathUtils; import me.zhengjie.service.EmailService; import me.zhengjie.utils.FileUtil; -import me.zhengjie.utils.MailUtil; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author wujingtao @@ -46,6 +45,12 @@ public class StatisticsDmpServiceImpl implements StatisticsDmpService { private final HttpRequestRds httpRequestRds; private final EmailService emailService; + @Value("${generate.url}") + private String configurationUrl; + private final Integer[] TAG_TYPE = {1, 2, 4, 5}; + private final String VPOINT_URL = "&vpoint="; + private final String TAG_URL = "&tag="; + @Override public Map queryNumByTags(DmpMonitorNumDto conditionDto) { return httpRequestRds.callBackNumByTags(conditionDto); @@ -126,4 +131,36 @@ public class StatisticsDmpServiceImpl implements StatisticsDmpService { } return new HashMap<>(0); } + + @Override + public List createLinkUrl(String tag, Integer type, String vpoInt, String aKey, Integer version) { + if (Arrays.asList(TAG_TYPE).contains(type) && StringUtils.isBlank(vpoInt)) { + throw new BadRequestException("请选择链接检测方式"); + } + List returnList = new ArrayList<>(); + List vpoIntList = new ArrayList<>(); + if (StringUtils.isNotBlank(vpoInt)) vpoIntList = Arrays.asList(vpoInt.split(",")); + + String url = UrlLinkEnum.find(type).getUrl(); + //巨量v2版本处理,获取v2的url + if (type == 1 && version != null && version == 2) { + url = UrlLinkEnum.find(7).getUrl(); + tag = tag.concat("-v2"); + } + //生成链接 + String fullLink = configurationUrl.concat(url); + if (Arrays.asList(TAG_TYPE).contains(type) && CollUtil.isNotEmpty(vpoIntList)) { + for (String vpoIntStr : vpoIntList) { + String newUrl = fullLink.concat(VPOINT_URL).concat(vpoIntStr); + // 百度链接拼接aKey值 + if (StringUtils.isNotBlank(aKey)) newUrl = newUrl.concat("&akey=").concat(aKey); + String newTag = newUrl.concat(TAG_URL).concat(tag); + returnList.add(new CreateLinkUrlVO(newTag, type, vpoIntStr)); + } + } else { + String newFullLink = fullLink.concat(TAG_URL).concat(tag); + returnList.add(new CreateLinkUrlVO(newFullLink, type, "")); + } + return returnList; + } } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/vo/CreateLinkUrlVO.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/vo/CreateLinkUrlVO.java new file mode 100644 index 0000000..bc3ea21 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/vo/CreateLinkUrlVO.java @@ -0,0 +1,22 @@ +package me.zhengjie.modules.dmpMonitor.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author YQY + * @Date 2023/6/2 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CreateLinkUrlVO { + + private String url; + + private Integer type; + + private String vpoInt; + +} diff --git a/eladmin-system/src/main/resources/config/application-dev.yml b/eladmin-system/src/main/resources/config/application-dev.yml index 814402f..b6868ba 100644 --- a/eladmin-system/src/main/resources/config/application-dev.yml +++ b/eladmin-system/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://localhost:3306/eladmin-plat2?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false + url: jdbc:log4jdbc:mysql://8.130.96.163:3306/eladmin-plat2?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false username: root password: y7z7noq2 # 初始连接数 diff --git a/eladmin-system/src/main/resources/config/application.yml b/eladmin-system/src/main/resources/config/application.yml index 3bfc8e0..42177c8 100644 --- a/eladmin-system/src/main/resources/config/application.yml +++ b/eladmin-system/src/main/resources/config/application.yml @@ -68,3 +68,6 @@ upload: callback: url: http://127.0.0.1:9191 + +generate: + url: https://cb.tuoz.net