From 055e98127c8a4330745f05f0d76fefc2bbc5dce8 Mon Sep 17 00:00:00 2001 From: bynt <13586541001@163.com> Date: Tue, 14 Nov 2023 14:30:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9C=A8=E7=BA=BF=E9=BB=91?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/baiye/util/AFileUtil.java | 76 +++++++++++++++++++ .../java/com/baiye/util/GoodFavorOfExcel.java | 15 ++++ .../baiye/module/constant/SecretConstant.java | 9 +++ .../service/dto/IsOnlineBlackResponse.java | 35 +++++++++ .../service/impl/DmpCallbackServiceImpl.java | 3 +- .../main/java/com/baiye/util/IsBlackUtil.java | 35 +++++++++ 6 files changed, 172 insertions(+), 1 deletion(-) create mode 100644 ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/AFileUtil.java create mode 100644 ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/GoodFavorOfExcel.java create mode 100644 ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/IsOnlineBlackResponse.java diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/AFileUtil.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/AFileUtil.java new file mode 100644 index 00000000..f599dc44 --- /dev/null +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/AFileUtil.java @@ -0,0 +1,76 @@ +package com.baiye.util; + +import cn.hutool.core.text.csv.CsvUtil; +import cn.hutool.core.text.csv.CsvWriter; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; +import com.baiye.exception.BadRequestException; +import com.baiye.modules.platform.service.dto.ImeiDTO; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import org.apache.commons.lang3.StringUtils; + +import java.io.File; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author Enzo + * @date : 2022/10/21 + */ + +public class AFileUtil { + + /** + * 导出csv格式工具类 + * + * @param result 导出数据 + * @param fileName 文件名 + */ + public static void createCsvFile(List result, String fileName) { + try { + //构造文件 + File csvFile = new File(fileName); + //导入HuTool中CSV工具包的CsvWriter类 + //设置导出字符类型, CHARSET_UTF_8 + CsvWriter writer = CsvUtil.getWriter(csvFile, CharsetUtil.CHARSET_UTF_8); + + //通过CsvWriter中的write方法写入数据 + for (ImeiDTO dto : result) { + writer.writeLine(dto.getImei(), dto.getTag()); + } + writer.close(); + } catch (Exception e) { + throw new BadRequestException("生成文件失败"); + } + } + + public static void main(String[] args) { + List studentList = Lists.newArrayList(); + for (int i = 24; i < 27; i++) { + String fileName = "C:\\Users\\a\\Desktop\\抖音-" + i + ".xls"; + ExcelReader reader = ExcelUtil.getReader(fileName); + reader.addHeaderAlias("OAID", "imei"); + List goodFavorOfExcels = reader.readAll(GoodFavorOfExcel.class); + List collect = goodFavorOfExcels.stream().filter(str -> + StringUtils.isNotBlank(str.getImei())).collect(Collectors.toList()); + studentList.addAll(collect); + + } + + + // 去除重复 + List phoneSets = Lists.newArrayList(Sets.newHashSet(studentList)); + + File csvFile = new File("C:\\Users\\a\\Desktop\\OAID.csv"); + //导入HuTool中CSV工具包的CsvWriter类 + //设置导出字符类型, CHARSET_UTF_8 + CsvWriter writer = CsvUtil.getWriter(csvFile, CharsetUtil.CHARSET_UTF_8); + + for (int i = 0; i < phoneSets.size(); i++) { + writer.writeLine(phoneSets.get(i).getImei(),"jl-test"); + } + writer.close(); + } +} diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/GoodFavorOfExcel.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/GoodFavorOfExcel.java new file mode 100644 index 00000000..f8e20c5b --- /dev/null +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/GoodFavorOfExcel.java @@ -0,0 +1,15 @@ +package com.baiye.util; + +import lombok.Data; + +@Data +public class GoodFavorOfExcel { + + + + /** + * 时间 + */ + private String imei; + +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/constant/SecretConstant.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/constant/SecretConstant.java index a00086a7..e3878b01 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/constant/SecretConstant.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/constant/SecretConstant.java @@ -17,6 +17,15 @@ public class SecretConstant { public static final String IS_BLACK_URL = "https://bl.hzdaba.cn/v5/Accounts/dbby_hangzhoubaiyehl/Bigdata/IsBlacklist"; + + + /** + * 在线解析黑名单 + */ + public static final String IS_BLACK_ONLINE_URL = "https://bl.hzdaba.cn/v2/Accounts/baiyekeji_label/Bigdata/IsBlacklist"; + + + /** * yuyou sign */ diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/IsOnlineBlackResponse.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/IsOnlineBlackResponse.java new file mode 100644 index 00000000..1788f93b --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/IsOnlineBlackResponse.java @@ -0,0 +1,35 @@ +package com.baiye.module.service.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; + +/** + * @author Enzo + * @date : 2023/4/3 + */ +@Getter +@Setter +@AllArgsConstructor +public class IsOnlineBlackResponse { + + @JsonProperty("forbid") + private String forbid; + + @JsonProperty("reason") + private String reason; + + @JsonProperty("from") + private String from; + + @JsonProperty("to") + private String to; + + @JsonProperty("reqid") + private String reqid; + + @JsonProperty("result") + private String result; + +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/DmpCallbackServiceImpl.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/DmpCallbackServiceImpl.java index 75a09308..8e238723 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/DmpCallbackServiceImpl.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/DmpCallbackServiceImpl.java @@ -147,8 +147,9 @@ public class DmpCallbackServiceImpl implements DmpCallbackService { taskId, List tagList, List decryptList) { // 请求黑名单 List isNotblackList = IsBlackUtil.getNotblackList(decryptList); + List onLineNotblackList = IsBlackUtil.getOnLineNotblackList(isNotblackList); // 将imei转为线索 - Integer saveNumer = clueService.saveClue(tagList, isNotblackList, + Integer saveNumer = clueService.saveClue(tagList, onLineNotblackList, byTaskName.getTaskId(), byTaskName.getUserId(), DefaultNumberConstants.FOUR_NUMBER); // 修改任务总条数 Integer taskNum = clueTalkRepository.findTaskNum(taskId); diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/util/IsBlackUtil.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/util/IsBlackUtil.java index f76fb28a..4cd2813c 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/util/IsBlackUtil.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/util/IsBlackUtil.java @@ -10,8 +10,10 @@ import com.baiye.model.enums.ResponseCode; import com.baiye.module.constant.SecretConstant; import com.baiye.module.service.dto.IsBlackListDTO; import com.baiye.module.service.dto.IsBlackResponse; +import com.baiye.module.service.dto.IsOnlineBlackResponse; import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.propertyeditors.CustomBooleanEditor; import java.util.HashMap; import java.util.List; @@ -61,4 +63,37 @@ public class IsBlackUtil { } return isNotblackList; } + + + public static List getOnLineNotblackList(List decryptList) { + List list = Lists.newArrayList(); + for (String string : decryptList) { + IsOnlineBlackResponse response = isOnlineBlackResponse(string); + if (ObjectUtil.isNotNull(response) && StringUtils.isNotBlank(response.getResult())) { + if (response.getForbid().equalsIgnoreCase(CustomBooleanEditor.VALUE_0)) { + list.add(response.getFrom()); + } + } + } + return list; + } + + + public static IsOnlineBlackResponse isOnlineBlackResponse(String string) { + Map paramMap = new HashMap<>(DefaultNumberConstants.EIGHT_NUMBER); + paramMap.put("answer_freq", "L0"); + paramMap.put("callee", string); + paramMap.put("caller", string); + paramMap.put("cute_forbid", "0"); + paramMap.put("freq", "L6"); + paramMap.put("local_level", "0"); + paramMap.put("resource", "2"); + //链式构建请求 + String result = HttpRequest.post(SecretConstant.IS_BLACK_ONLINE_URL).form(paramMap).timeout(20000).execute().body(); + if (result.contains("success")) { + return JSONUtil.toBean(result, IsOnlineBlackResponse.class); + } + return null; + } + }