From c3d3732cb9a4ecd0f74f48f58b18d3e22608d876 Mon Sep 17 00:00:00 2001 From: bynt <13586541001@163.com> Date: Thu, 3 Aug 2023 15:10:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=94=B9=E4=B8=BA=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=85=91=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baiye/http/InterfaceExchangeResponse.java | 18 +++ .../baiye/modules/platform/domain/Clue.java | 2 +- .../impl/DeliveryRecordServiceImpl.java | 2 +- .../com/baiye/model}/dto/SetCallBackDTO.java | 2 +- .../java/com/baiye/model/entity/BaseClue.java | 6 +- .../config/properties/GenderProperties.java | 22 +++ .../controller/InterfaceConfigController.java | 46 +++++++ .../java/com/baiye/module/entity/Clue.java | 2 +- .../module/service/GenderRecordService.java | 25 ++++ .../module/service/dto/ExchangeGenderDTO.java | 43 ++++++ .../service/impl/GenderRecordServiceImpl.java | 125 +++++++++++++++++- .../com/baiye/task/GenderConversionTask.java | 53 ++++---- .../src/main/resources/application.yml | 6 + 13 files changed, 312 insertions(+), 40 deletions(-) create mode 100644 ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/http/InterfaceExchangeResponse.java rename {ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service => ad-platform-pojo/src/main/java/com/baiye/model}/dto/SetCallBackDTO.java (89%) create mode 100644 ad-platform-services/ad-platform-source/src/main/java/com/baiye/config/properties/GenderProperties.java create mode 100644 ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/InterfaceConfigController.java create mode 100644 ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/ExchangeGenderDTO.java diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/http/InterfaceExchangeResponse.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/http/InterfaceExchangeResponse.java new file mode 100644 index 00000000..3e2d7d8c --- /dev/null +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/http/InterfaceExchangeResponse.java @@ -0,0 +1,18 @@ +package com.baiye.http; + +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Enzo + * @date 2023-8-2 + */ +@Data +@NoArgsConstructor +public class InterfaceExchangeResponse { + private String reqId; + + private Boolean result; + + private String reason; +} diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/Clue.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/Clue.java index 0ea22b67..26f3a4bc 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/Clue.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/Clue.java @@ -32,7 +32,7 @@ public class Clue extends BaseClue { @ApiModelProperty(value = "性别") @Column(name = "gender") - private Integer gender = DefaultNumberConstants.ZERO_NUMBER; + private Integer gender = DefaultNumberConstants.MINUS_TWO_NUMBER; @ApiModelProperty(value = "线索分配人") @Transient diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DeliveryRecordServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DeliveryRecordServiceImpl.java index a30c0ef9..2e6840dc 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DeliveryRecordServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DeliveryRecordServiceImpl.java @@ -8,12 +8,12 @@ import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.baiye.config.properties.ExchangeProperties; import com.baiye.constant.DefaultNumberConstants; +import com.baiye.model.dto.SetCallBackDTO; import com.baiye.modules.platform.domain.DeliveryRecord; import com.baiye.modules.platform.repository.DeliveryRecordRepository; import com.baiye.modules.platform.service.DeliveryRecordService; import com.baiye.modules.platform.service.dto.ExchangeStripsDTO; import com.baiye.modules.platform.service.dto.ImeiDTO; -import com.baiye.modules.platform.service.dto.SetCallBackDTO; import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/dto/SetCallBackDTO.java b/ad-platform-pojo/src/main/java/com/baiye/model/dto/SetCallBackDTO.java similarity index 89% rename from ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/dto/SetCallBackDTO.java rename to ad-platform-pojo/src/main/java/com/baiye/model/dto/SetCallBackDTO.java index 9250c2a4..f8c4dad5 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/dto/SetCallBackDTO.java +++ b/ad-platform-pojo/src/main/java/com/baiye/model/dto/SetCallBackDTO.java @@ -1,4 +1,4 @@ -package com.baiye.modules.platform.service.dto; +package com.baiye.model.dto; import com.google.gson.annotations.SerializedName; import lombok.Builder; diff --git a/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseClue.java b/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseClue.java index cc0f7558..72550444 100644 --- a/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseClue.java +++ b/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseClue.java @@ -1,6 +1,5 @@ package com.baiye.model.entity; -import com.baiye.constant.DefaultNumberConstants; import com.baiye.util.JpaConverterAes; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -8,7 +7,10 @@ import org.hibernate.annotations.CreationTimestamp; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; -import javax.persistence.*; +import javax.persistence.Column; +import javax.persistence.Convert; +import javax.persistence.EntityListeners; +import javax.persistence.MappedSuperclass; import java.io.Serializable; diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/config/properties/GenderProperties.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/config/properties/GenderProperties.java new file mode 100644 index 00000000..495f1883 --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/config/properties/GenderProperties.java @@ -0,0 +1,22 @@ +package com.baiye.config.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * @author Enzo + * @date : 2022/10/18 + */ +@Data +@Configuration +@ConfigurationProperties(prefix = "gender") +public class GenderProperties { + + private String orgCode; + + private String callbackUrl; + + private String submitUrl; + +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/InterfaceConfigController.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/InterfaceConfigController.java new file mode 100644 index 00000000..c0405ae1 --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/InterfaceConfigController.java @@ -0,0 +1,46 @@ +package com.baiye.module.controller; + +/** + * @author Enzo + * @date : 2023/8/2 + */ + +import com.baiye.annotation.Inner; +import com.baiye.http.CommonResponse; +import com.baiye.module.service.GenderRecordService; +import com.baiye.module.service.dto.InterfaceResponseDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * @author Enzo + * @date : 2023/6/12 + */ +@Api(tags = "性别兑换") +@Slf4j +@RestController +@RequestMapping(value = "/gender/exchange/v1") +@AllArgsConstructor +public class InterfaceConfigController { + + private GenderRecordService genderRecordService; + + @Inner(value = false) + @ApiOperation(value = "设置回调接口") + @GetMapping("/set/url") + public CommonResponse queryNotApproved(String url){ + return CommonResponse.createBySuccess(genderRecordService.setCallBackUrl(url)); + } + + @ApiOperation(value = "兑换接口回调") + @PostMapping("/callback") + public CommonResponse queryNotApproved(@RequestBody @Validated InterfaceResponseDTO interfaceResponseDTO){ + log.info("================ The receiving batch number is {} ================", interfaceResponseDTO.getBatchId()); + return genderRecordService.resourceCallback(interfaceResponseDTO); + } + +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/Clue.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/Clue.java index 36b19d97..4fa7e68d 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/Clue.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/Clue.java @@ -75,5 +75,5 @@ public class Clue extends BaseClue { @ApiModelProperty(value = "性别") @Column(name = "gender") - private Integer gender = DefaultNumberConstants.ZERO_NUMBER; + private Integer gender = DefaultNumberConstants.MINUS_TWO_NUMBER; } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/GenderRecordService.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/GenderRecordService.java index ff6219b4..c396c69d 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/GenderRecordService.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/GenderRecordService.java @@ -1,6 +1,10 @@ package com.baiye.module.service; +import com.baiye.http.CommonResponse; import com.baiye.module.entity.DeliveryGender; +import com.baiye.module.service.dto.InterfaceResponseDTO; + +import java.util.List; /** * @author Enzo @@ -39,4 +43,25 @@ public interface GenderRecordService { * @return */ Boolean updateStatusByTaskName(DeliveryGender taskName); + + /** + * 批次号兑换 + * @param stringList + * @return + */ + Boolean sendInterfaceByTaskName(List stringList); + + /** + * 设置回调参数 + * @param url + * @return + */ + Boolean setCallBackUrl(String url); + + /** + * 接收回调参数 + * @param interfaceResponseDTO + * @return + */ + CommonResponse resourceCallback(InterfaceResponseDTO interfaceResponseDTO); } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/ExchangeGenderDTO.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/ExchangeGenderDTO.java new file mode 100644 index 00000000..3bd13030 --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/ExchangeGenderDTO.java @@ -0,0 +1,43 @@ +package com.baiye.module.service.dto; + +import com.google.gson.annotations.SerializedName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author Enzo + * @date : 2023/5/9 + */ +@Data +@Builder +public class ExchangeGenderDTO implements Serializable { + + @SerializedName("req_id") + private String reqId; + + @ApiModelProperty("批次号") + @SerializedName("batch_id") + private String batchId; + + @SerializedName("org_code") + private String orgCode; + + + @SerializedName("level") + private Integer level = 0; + + + @SerializedName("datas") + private List datas; + + @lombok.Data + public static class Data { + @SerializedName("data") + private String data; + } + +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/GenderRecordServiceImpl.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/GenderRecordServiceImpl.java index def08e76..41f679c3 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/GenderRecordServiceImpl.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/GenderRecordServiceImpl.java @@ -1,18 +1,40 @@ package com.baiye.module.service.impl; +import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.text.StrPool; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.baiye.config.properties.GenderProperties; +import com.baiye.constant.AdPlatFormConstants; import com.baiye.constant.DefaultNumberConstants; +import com.baiye.enums.MailRequestEnum; +import com.baiye.http.CommonResponse; +import com.baiye.http.InterfaceExchangeResponse; +import com.baiye.http.ResponseCode; +import com.baiye.model.dto.SetCallBackDTO; import com.baiye.module.dao.DeliveryGenderRepository; -import com.baiye.module.dao.DeliveryRecordRepository; import com.baiye.module.entity.DeliveryGender; -import com.baiye.module.entity.DeliveryRecord; -import com.baiye.module.service.DeliveryRecordService; +import com.baiye.module.service.ClueService; import com.baiye.module.service.GenderRecordService; +import com.baiye.module.service.dto.ExchangeGenderDTO; +import com.baiye.module.service.dto.InterfaceResponseDTO; +import com.baiye.util.AESUtils; +import com.baiye.util.RedisUtils; +import com.baiye.util.ValidationUtil; +import com.google.common.base.Splitter; +import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; /** * @author Enzo @@ -23,8 +45,16 @@ import java.util.List; @RequiredArgsConstructor public class GenderRecordServiceImpl implements GenderRecordService { + private final DeliveryGenderRepository deliveryGenderRepository; + private final GenderProperties genderProperties; + + private final ClueService clueService; + + private final RedisUtils redisUtils; + + @Override public DeliveryGender findByTaskName(String taskName) { // 防止重复提交数据 @@ -41,7 +71,6 @@ public class GenderRecordServiceImpl implements GenderRecordService { @Override public Boolean saveDeliveryRecord(String taskImeiName, Integer num, Integer type) { - DeliveryGender deliveryRecord = new DeliveryGender(); deliveryRecord.setNum(num); deliveryRecord.setType(type); @@ -54,4 +83,92 @@ public class GenderRecordServiceImpl implements GenderRecordService { public Boolean updateStatusByTaskName(DeliveryGender taskName) { return deliveryGenderRepository.save(taskName).getId() != null; } + + @Override + public Boolean sendInterfaceByTaskName(List stringList) { + // 每次1000 数据 + List> partition = Lists.partition(stringList, DefaultNumberConstants.ONE_THOUSAND); + for (List list : partition) { + String sendTaskName = redisUtils.acquisitionBatch(MailRequestEnum.GG.getCacheName()); + List dataList = Lists.newArrayList(); + list.forEach(encipherDTO -> { + ExchangeGenderDTO.Data data = new ExchangeGenderDTO.Data(); + data.setData(Base64.encode(encipherDTO)); + dataList.add(data); + }); + String randomString = RandomUtil.randomString(DefaultNumberConstants.TWELVE_NUMBER); + ExchangeGenderDTO build = ExchangeGenderDTO.builder().batchId(sendTaskName).reqId(randomString).level + (DefaultNumberConstants.ZERO_NUMBER).orgCode(genderProperties.getOrgCode()).datas(dataList).build(); + String post = HttpUtil.post(genderProperties.getSubmitUrl(), JSONUtil.toJsonStr(build)); + InterfaceExchangeResponse bean = JSONUtil.toBean(post, InterfaceExchangeResponse.class); + if (ObjectUtil.isNotNull(bean) && Boolean.FALSE.equals(bean.getResult())){ + return Boolean.FALSE; + } + this.saveDeliveryRecord(sendTaskName, list.size(), DefaultNumberConstants.ONE_NUMBER); + log.info("============ the submit result as {} =========", JSONUtil.toJsonStr(post)); + } + return Boolean.TRUE; + } + + @Override + public Boolean setCallBackUrl(String url) { + SetCallBackDTO build = SetCallBackDTO.builder().callBackUrl(url).reqId + (RandomUtil.randomString(DefaultNumberConstants.TEN_NUMBER)).orgCode + (genderProperties.getOrgCode()).build(); + String post = HttpUtil.post(genderProperties.getCallbackUrl(), JSONUtil.toJsonStr(build)); + if (post.contains("true")) { + return Boolean.TRUE; + } + return Boolean.FALSE; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResponse resourceCallback(InterfaceResponseDTO interfaceResponseDTO) { + String reqId = interfaceResponseDTO.getReqId(); + String batchId = interfaceResponseDTO.getBatchId(); + // 拆解批次号 + if (StringUtils.isNotBlank(batchId)) { + batchId = batchId.substring(DefaultNumberConstants.ZERO_NUMBER, batchId.lastIndexOf(StrPool.DASHED)); + } + List dataList = interfaceResponseDTO.getDatas(); + Object objCache = redisUtils.get(reqId); + if (ObjectUtil.isNotNull(objCache)) { + return CommonResponse.createByErrorCodeMessage + (ResponseCode.BATCH_NUMBER_EXIST_OR_SEND.getCode(), + ResponseCode.BATCH_NUMBER_REPEAT_TRANSMISSION.getDesc()); + } + // 设置五分钟缓存 + redisUtils.set(reqId, reqId, DefaultNumberConstants.TEN_NUMBER, TimeUnit.MINUTES); + DeliveryGender byTaskName = this.findByTaskName(batchId); + if (ObjectUtil.isNotNull(byTaskName) && + byTaskName.getStatus() == DefaultNumberConstants.ZERO_NUMBER) { + // 异步执行任务 + CompletableFuture.runAsync(() -> updateGenderByData(dataList)); + Boolean result = this.updateStatusByTaskName(DefaultNumberConstants.ONE_NUMBER, batchId); + log.info("================= change delivery record {} result as {} =================", batchId, result); + return CommonResponse.createBySuccess(); + } + return CommonResponse.createByErrorCodeMessage + (ResponseCode.BATCH_NUMBER_EXIST_OR_SEND.getCode(), + ResponseCode.BATCH_NUMBER_REPEAT_TRANSMISSION.getDesc()); + } + + + private void updateGenderByData(List dataList ) { + for (InterfaceResponseDTO.Data data : dataList) { + if (StringUtils.isNotBlank(data.getData())) { + List stringList = Splitter.on(StrPool.COMMA).trimResults() + .omitEmptyStrings().splitToList(Base64.decodeStr(data.getData())); + String decrypt = AESUtils.dbDecrypt + (AdPlatFormConstants.AES_PASSWORD, stringList.get(DefaultNumberConstants.ZERO_NUMBER)); + + String numInteger = stringList.get(DefaultNumberConstants.ONE_NUMBER); + // 修改gender + clueService.updateGenderByZid(AESUtils.encrypt + (decrypt, AdPlatFormConstants.AD_PLATFORM), ValidationUtil.isInteger(numInteger) + ? Integer.parseInt(numInteger) : DefaultNumberConstants.FOUR_NUMBER); + } + } + } } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/GenderConversionTask.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/GenderConversionTask.java index c38faaa3..1a982963 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/GenderConversionTask.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/GenderConversionTask.java @@ -11,13 +11,12 @@ import cn.hutool.core.util.ObjectUtil; import com.baiye.config.properties.DeliveryProperties; import com.baiye.constant.AdPlatFormConstants; import com.baiye.constant.DefaultNumberConstants; -import com.baiye.enums.MailRequestEnum; import com.baiye.module.entity.DeliveryGender; import com.baiye.module.service.ClueService; import com.baiye.module.service.GenderRecordService; import com.baiye.module.service.dto.QueryClueDTO; import com.baiye.util.*; -import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -53,16 +52,15 @@ public class GenderConversionTask { private final DeliveryProperties deliveryProperties; private final GenderRecordService genderRecordService; - - @Scheduled(cron = "0 0/20 0-6 * * ? ") + // @Scheduled(cron = "0 0/20 0-6 * * ? ") @Transactional(rollbackFor = Exception.class) public void exchangeResource() { - String fileUrl = deliveryProperties.getFileUrl(); // 单次查询10000 List> resourceList = clueService.queryUnconvertedResource - (DefaultNumberConstants.ZERO_NUMBER, DefaultNumberConstants.TEN_THOUSAND); - if (resourceList.size() > DefaultNumberConstants.ONE_THOUSAND && CollUtil.isNotEmpty(resourceList)) { + (DefaultNumberConstants.MINUS_TWO_NUMBER, DefaultNumberConstants.TEN_THOUSAND); + if (CollUtil.isNotEmpty(resourceList) && resourceList.size() > DefaultNumberConstants.ONE_HUNDRED) { + // 对应转换 List list = Convert.toList(QueryClueDTO.class, resourceList); // 第一id @@ -77,20 +75,21 @@ public class GenderConversionTask { AESUtils.dbEncrypt(AdPlatFormConstants.AES_PASSWORD, decrypt) : CharSequenceUtil.EMPTY; }).filter(StringUtils::isNotBlank).distinct() .collect(Collectors.toList()); - String taskImeiName = redisUtils.acquisitionBatch(MailRequestEnum.GG.getCacheName()); - String file = fileUrl.concat(StrPool.SLASH).concat(taskImeiName); - // 压缩文件并发送 - FileAndGenderUtil.zipFileAndSendGenderMail(stringList, file, taskImeiName, deliveryProperties); - clueService.updateGenderById(DefaultNumberConstants.FOUR_NUMBER, DefaultNumberConstants.ZERO_NUMBER, firstId, lastId); - genderRecordService.saveDeliveryRecord(taskImeiName, list.size(), DefaultNumberConstants.ONE_NUMBER); + Boolean sendResult = genderRecordService.sendInterfaceByTaskName(stringList); + if (Boolean.TRUE.equals(sendResult)) { + clueService.updateGenderById(DefaultNumberConstants.FOUR_NUMBER, DefaultNumberConstants.MINUS_TWO_NUMBER, firstId, lastId); + } log.info("============== the save num as {} first id {} last id {} ================", stringList.size(), firstId, lastId); } } + /** + * @date 2023-8-2 + * Example Modify an email as an interface + */ @SneakyThrows - @Scheduled(cron = "0 0/10 0-6 * * ? ") - @Transactional(rollbackFor = Exception.class) + @Deprecated public void receiveMail() { // 获取邮件内容 List list = MailUtil.readMailByIMAP @@ -113,9 +112,7 @@ public class GenderConversionTask { && !byTaskName.getTaskNumStr().contains(taskName)) { List taskNumStr = byTaskName.getTaskNumStr(); taskNumStr.add(taskName); - log.info("================ the gender mail taskName as {} ==============", taskName); - List zidList = Lists.newArrayList(); - List genderList = Lists.newArrayList(); + log.info("================ the gender mail taskName as {} ==============", taskName); CsvReader reader = CsvUtil.getReader(); // 解析附件内容并保存文件 String path = MailUtil.saveAttachMent @@ -129,21 +126,17 @@ public class GenderConversionTask { (file.listFiles())[DefaultNumberConstants.ZERO_NUMBER]; // 解析文件 CsvData data = reader.read(parseFile); - // csv通配 - data.getRows().forEach(clue -> { - zidList.add(AESUtils.dbDecrypt - (AdPlatFormConstants.AES_PASSWORD, clue.get(DefaultNumberConstants.ZERO_NUMBER))); - genderList.add(clue.get(DefaultNumberConstants.ONE_NUMBER)); - }); + Map hashMap = Maps.newHashMap(); - for (int i = 0; i < zidList.size(); i++) { - String genderType = genderList.get(i); - String letterToNum = zidList.get(i); - if (MobileUtil.checkPhone(letterToNum)) { + // csv通配 + data.getRows().forEach(clue -> hashMap.put(AESUtils.dbDecrypt(AdPlatFormConstants.AES_PASSWORD, + clue.get(DefaultNumberConstants.ZERO_NUMBER)), clue.get(DefaultNumberConstants.ONE_NUMBER))); + for (Map.Entry entry : hashMap.entrySet()) { + if (MobileUtil.checkPhone(entry.getKey())) { // 修改gender clueService.updateGenderByZid(AESUtils.encrypt - (letterToNum, AdPlatFormConstants.AD_PLATFORM), ValidationUtil.isInteger(genderType) - ? Integer.parseInt(genderType) + DefaultNumberConstants.ONE_NUMBER : DefaultNumberConstants.FOUR_NUMBER); + (entry.getKey(), AdPlatFormConstants.AD_PLATFORM), ValidationUtil.isInteger(entry.getValue()) + ? Integer.parseInt(entry.getValue()): DefaultNumberConstants.FOUR_NUMBER); } } byTaskName.setStatus(DefaultNumberConstants.ONE_NUMBER); diff --git a/ad-platform-services/ad-platform-source/src/main/resources/application.yml b/ad-platform-services/ad-platform-source/src/main/resources/application.yml index c110496d..145c87c0 100644 --- a/ad-platform-services/ad-platform-source/src/main/resources/application.yml +++ b/ad-platform-services/ad-platform-source/src/main/resources/application.yml @@ -50,6 +50,7 @@ security: - /oauth/check_token - /open/v1/form/add - /dmp/v1/exchange/callback + - /gender/exchange/v1/callback #hutool雪花算法 snowflake: @@ -65,3 +66,8 @@ ribbon: ConnectTimeout: 3000 #建立连接之后,读取响应资源超时时间 ReadTimeout: 3000 + +gender: + orgCode: org_bywx + submitUrl: http://proxy.hzdaba.cn:58899/pub/wx/submit + callbackUrl: http://proxy.hzdaba.cn:58899/pub/wx/set