From 92559d400749c8383792979187f529a5ff881a0e Mon Sep 17 00:00:00 2001 From: bynt Date: Mon, 5 Jun 2023 09:42:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=91=E9=80=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/baiye/enums/MailRequestEnum.java | 2 +- .../repository/DeliveryRecordRepository.java | 26 +++++++++++++++++++ .../service/DeliveryRecordService.java | 10 +++++++ .../impl/DeliveryRecordServiceImpl.java | 8 +++++- .../com/baiye/timed/DeliveryBalanceTask.java | 16 +++++++----- .../baiye/service/WeightRandomStrategyX.java | 3 +++ 6 files changed, 57 insertions(+), 8 deletions(-) diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/enums/MailRequestEnum.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/enums/MailRequestEnum.java index 2f2560a6..ad2b61b9 100644 --- a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/enums/MailRequestEnum.java +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/enums/MailRequestEnum.java @@ -19,7 +19,7 @@ public enum MailRequestEnum { /** * 性别 */ - GG("GG", "dmp::gender::"), + GG("GG", "mail::gender::"), /** diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/repository/DeliveryRecordRepository.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/repository/DeliveryRecordRepository.java index 9733bd8a..7b977ef1 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/repository/DeliveryRecordRepository.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/repository/DeliveryRecordRepository.java @@ -33,4 +33,30 @@ public interface DeliveryRecordRepository extends */ @Query("select sum(d.num) from DeliveryRecord d where d.createTime >= ?1 and d.status = ?2 and d.userId = ?3") Integer queryNumberByDateAndUser(DateTime dateTime, Integer status, Long userId); + + /** + * 统计今天数量 + * + * @param userId + * @param beginTime + * @param endTime + * @param num + * @return + */ + @Query("select count(t) from TaskImei t where userId = ?1 and status = ?4 and updateTime between ?2 and ?3") + Integer countByUserId(Long userId, DateTime beginTime, DateTime endTime, Integer num); + + + + /** + * 根据时间以及用户查询数量 + * + * @param dateTime + * @param time + * @param userId + * @return + */ + @Query("select sum(d.num) from DeliveryRecord d where d.userId = ?3 and d.createTime between ?1 and ?2 ") + Integer queryNumberByDateAndUser(DateTime dateTime, DateTime time, Long userId); + } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/DeliveryRecordService.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/DeliveryRecordService.java index 85c113e0..f1ef6d4b 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/DeliveryRecordService.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/DeliveryRecordService.java @@ -53,4 +53,14 @@ public interface DeliveryRecordService { * @return */ Boolean exchangeByInterFace(List imeiDTOList, String taskImeiName, String publicKey, String privateKey); + + /** + * 统计今天发送的量 + * + * @param userId + * @param beginOfDay + * @param endOfDay + * @return + */ + Integer countByUserIdAndDate(Long userId, DateTime beginOfDay, DateTime endOfDay); } 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 869ca43a..48aa6342 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 @@ -28,7 +28,7 @@ public class DeliveryRecordServiceImpl implements DeliveryRecordService { @Override public Long saveDeliveryRecord(String filePath, String taskName, - Integer num, Long taskId, Long userId, Integer type, Integer exchangeType, Long downId) { + Integer num, Long taskId, Long userId, Integer type, Integer exchangeType, Long downId) { DeliveryRecord deliveryRecord = new DeliveryRecord(); deliveryRecord.setNum(num); deliveryRecord.setType(type); @@ -69,4 +69,10 @@ public class DeliveryRecordServiceImpl implements DeliveryRecordService { HttpUtil.post("https://www.baidu.com/", JSONUtil.toJsonStr(stripsDTO)); return Boolean.TRUE; } + + @Override + public Integer countByUserIdAndDate(Long userId, DateTime beginOfDay, DateTime dateTime) { + Integer num = deliveryRecordRepository.queryNumberByDateAndUser(beginOfDay, dateTime, userId); + return num != null ? num : DefaultNumberConstants.ZERO_NUMBER; + } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java index b8ace84e..03506131 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java @@ -109,12 +109,16 @@ public class DeliveryBalanceTask { && dmpLimitNum > DefaultNumberConstants.ZERO_NUMBER) { DateTime now = DateUtil.date(); // 统计今天数量 - Integer count = taskImeiService.countByUserIdAndDate - (userId, DateUtil.beginOfDay(now), DateUtil.endOfDay(now), DefaultNumberConstants.ONE_NUMBER); - downList = CollUtil.sub(list, count >= - dmpLimitNum ? DefaultNumberConstants.ZERO_NUMBER : dmpLimitNum, list.size()); - list = CollUtil.sub(list, DefaultNumberConstants.ZERO_NUMBER, - count >= dmpLimitNum ? DefaultNumberConstants.ZERO_NUMBER : dmpLimitNum); + Integer count = deliveryRecordService.countByUserIdAndDate(userId, DateUtil.beginOfDay(now), DateUtil.endOfDay(now)); + int sum = count + list.size(); + // 下载统计 + downList = CollUtil.sub(list, sum >= dmpLimitNum + ? DefaultNumberConstants.ZERO_NUMBER : list.size(), dmpLimitNum > sum + ? list.size() : sum - dmpLimitNum); + // 发送统计 + list = CollUtil.sub(list, sum >= dmpLimitNum + ? Math.min(sum - dmpLimitNum, list.size()) + : DefaultNumberConstants.ZERO_NUMBER, list.size()); } // 最大数量不能大于剩余数量 if (list.size() >= channelCustom.getSurplusNum()) { diff --git a/ad-platform-services/ad-platform-service/src/main/java/com/baiye/service/WeightRandomStrategyX.java b/ad-platform-services/ad-platform-service/src/main/java/com/baiye/service/WeightRandomStrategyX.java index 108be740..7b51ec62 100644 --- a/ad-platform-services/ad-platform-service/src/main/java/com/baiye/service/WeightRandomStrategyX.java +++ b/ad-platform-services/ad-platform-service/src/main/java/com/baiye/service/WeightRandomStrategyX.java @@ -5,6 +5,8 @@ package com.baiye.service; * @date : 2021/12/17 */ +import cn.hutool.core.collection.CollUtil; +import com.baiye.constant.DefaultNumberConstants; import com.google.common.collect.Lists; import org.apache.commons.lang3.tuple.Pair; @@ -40,6 +42,7 @@ public class WeightRandomStrategyX { public static void main(String[] args) { List list = Lists.newArrayList("a", "b", "c", "d", "e", "f", "7"); + List sub = CollUtil.sub(list, 10, 7); List> lists = averageAssign(list, 3); }