diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/gmdp/GuildMemberDailyProfitEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/gmdp/GuildMemberDailyProfitEventHandler.java new file mode 100644 index 0000000..c3717ae --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/gmdp/GuildMemberDailyProfitEventHandler.java @@ -0,0 +1,33 @@ +package com.qniao.dam.application.handler.gmdp; + +import com.google.common.eventbus.Subscribe; +import com.qniao.dam.application.service.gmdp.GuildMemberDailyProfitApplicationService; +import com.qniao.dam.domain.aggregate.gmpi.entity.GuildMemberProfitItem; +import com.qniao.dam.domian.aggregate.gmpi.event.GuildMemberProfitItemCreatedEvent; +import com.qniao.dam.infrastructure.persistent.dao.gmpi.GuildMemberProfitItemDao; +import com.qniao.domain.BaseApplicationService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +@Slf4j +public class GuildMemberDailyProfitEventHandler extends BaseApplicationService { + + @Resource + private GuildMemberProfitItemDao guildMemberProfitItemDao; + @Resource + private GuildMemberDailyProfitApplicationService guildMemberDailyProfitApplicationService; + + @Subscribe + private void handle(GuildMemberProfitItemCreatedEvent event) { + try { + GuildMemberProfitItem profitItem = guildMemberProfitItemDao.selectById(event.getId()); + guildMemberDailyProfitApplicationService.stat(profitItem.getGuildId(), profitItem.getUserId(), profitItem.getCreateTime().toLocalDate()); + } catch (Exception e) { + log.error("工会成员收益已创建事件异常", e); + } + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/gmdp/GuildMemberDailyProfitApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/gmdp/GuildMemberDailyProfitApplicationService.java index 89a020b..e4e6962 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/gmdp/GuildMemberDailyProfitApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/gmdp/GuildMemberDailyProfitApplicationService.java @@ -24,7 +24,7 @@ public class GuildMemberDailyProfitApplicationService { public void statAll(LocalDate statDate) { LocalDateTime startTime = statDate.atStartOfDay(); LocalDateTime endTime = statDate.atTime(23, 59, 59); - List list = guildMemberDailyProfitQueryService.stat(startTime, endTime); + List list = guildMemberDailyProfitQueryService.statAll(startTime, endTime); if (CollUtil.isNotEmpty(list)) { for (GuildMemberDailyProfit dailyProfit : list) { GuildMemberDailyProfit existDailyProfit = guildMemberDailyProfitQueryService.queryBy(dailyProfit.getGuildId(), dailyProfit.getUserId(), statDate); @@ -36,4 +36,19 @@ public class GuildMemberDailyProfitApplicationService { } } } + + public void stat(Long guildId, + Long userId, + LocalDate statDate) { + GuildMemberDailyProfit dailyProfit = guildMemberDailyProfitQueryService.stat(guildId, userId, statDate.atStartOfDay(), statDate.atTime(23, 59, 59)); + if (Objects.nonNull(dailyProfit)) { + GuildMemberDailyProfit existDailyProfit = guildMemberDailyProfitQueryService.queryBy(dailyProfit.getGuildId(), dailyProfit.getUserId(), + statDate); + if (Objects.nonNull(existDailyProfit)) { + dailyProfit.setId(existDailyProfit.getId()); + } + dailyProfit.setStatDate(statDate); + guildMemberDailyProfitAggregate.edit(dailyProfit); + } + } } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/GuildMemberDailyProfitTask.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/GuildMemberDailyProfitTask.java index 41a3422..5d23c02 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/GuildMemberDailyProfitTask.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/GuildMemberDailyProfitTask.java @@ -15,7 +15,7 @@ public class GuildMemberDailyProfitTask { @Resource private GuildMemberDailyProfitApplicationService guildMemberDailyProfitApplicationService; - @Scheduled(cron = "0 * * * * *") + @Scheduled(cron = "0 0 * * * *") public void handle1() { try { log.error("工会成员今日收益统计任务开始"); diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/gmdp/GuildMemberDailyProfitDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/gmdp/GuildMemberDailyProfitDao.java index c99275d..cfdbc94 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/gmdp/GuildMemberDailyProfitDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/gmdp/GuildMemberDailyProfitDao.java @@ -13,6 +13,12 @@ import java.util.List; * @date 2026/04/30 */ public interface GuildMemberDailyProfitDao extends BaseMapper { - List stat(@Param("startTime") LocalDateTime startTime, - @Param("endTime") LocalDateTime endTime); + List statAll(@Param("startTime") LocalDateTime startTime, + @Param("endTime") LocalDateTime endTime); + + GuildMemberDailyProfit stat(@Param("guildId") Long guildId, + @Param("userId") Long userId, + @Param("startTime") LocalDateTime startTime, + @Param("endTime") LocalDateTime endTime); + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/GuildMemberDailyProfitQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/GuildMemberDailyProfitQueryService.java index 0b19040..56c973f 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/GuildMemberDailyProfitQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/GuildMemberDailyProfitQueryService.java @@ -10,5 +10,7 @@ public interface GuildMemberDailyProfitQueryService { GuildMemberDailyProfit queryBy(Long guildId, Long userId, LocalDate statDate); - List stat(LocalDateTime startTime, LocalDateTime endTime); + List statAll(LocalDateTime startTime, LocalDateTime endTime); + + GuildMemberDailyProfit stat(Long guildId, Long userId, LocalDateTime startTime, LocalDateTime endTime); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/impl/GuildMemberDailyProfitQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/impl/GuildMemberDailyProfitQueryServiceImpl.java index 5789faf..5917cde 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/impl/GuildMemberDailyProfitQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/impl/GuildMemberDailyProfitQueryServiceImpl.java @@ -9,7 +9,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.Collections; import java.util.List; @Service @@ -28,7 +27,14 @@ public class GuildMemberDailyProfitQueryServiceImpl implements GuildMemberDailyP } @Override - public List stat(LocalDateTime startTime, LocalDateTime endTime) { - return guildMemberDailyProfitDao.stat(startTime, endTime); + public List statAll(LocalDateTime startTime, LocalDateTime endTime) { + return guildMemberDailyProfitDao.statAll(startTime, endTime); } + + @Override + public GuildMemberDailyProfit stat(Long guildId, Long userId, + LocalDateTime startTime, LocalDateTime endTime) { + return guildMemberDailyProfitDao.stat(guildId, userId, startTime, endTime); + } + } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/resources/mapper/gmdp/GuildMemberDailyProfitDao.xml b/dating-agency-mall-server/src/main/resources/mapper/gmdp/GuildMemberDailyProfitDao.xml index a6af84b..35018fc 100644 --- a/dating-agency-mall-server/src/main/resources/mapper/gmdp/GuildMemberDailyProfitDao.xml +++ b/dating-agency-mall-server/src/main/resources/mapper/gmdp/GuildMemberDailyProfitDao.xml @@ -2,7 +2,7 @@ - SELECT guild_id, user_id, @@ -13,4 +13,17 @@ GROUP BY guild_id,user_id + + \ No newline at end of file