Browse Source

红娘直播任务

master
张彭杰 2 weeks ago
parent
commit
e668c9a747
7 changed files with 84 additions and 9 deletions
  1. 33
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/gmdp/GuildMemberDailyProfitEventHandler.java
  2. 17
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/gmdp/GuildMemberDailyProfitApplicationService.java
  3. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/GuildMemberDailyProfitTask.java
  4. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/gmdp/GuildMemberDailyProfitDao.java
  5. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/GuildMemberDailyProfitQueryService.java
  6. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/gmdp/impl/GuildMemberDailyProfitQueryServiceImpl.java
  7. 15
      dating-agency-mall-server/src/main/resources/mapper/gmdp/GuildMemberDailyProfitDao.xml

33
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);
}
}
}

17
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<GuildMemberDailyProfit> list = guildMemberDailyProfitQueryService.stat(startTime, endTime);
List<GuildMemberDailyProfit> 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);
}
}
}

2
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("工会成员今日收益统计任务开始");

10
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<GuildMemberDailyProfit> {
List<GuildMemberDailyProfit> stat(@Param("startTime") LocalDateTime startTime,
@Param("endTime") LocalDateTime endTime);
List<GuildMemberDailyProfit> 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);
}

4
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<GuildMemberDailyProfit> stat(LocalDateTime startTime, LocalDateTime endTime);
List<GuildMemberDailyProfit> statAll(LocalDateTime startTime, LocalDateTime endTime);
GuildMemberDailyProfit stat(Long guildId, Long userId, LocalDateTime startTime, LocalDateTime endTime);
}

12
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<GuildMemberDailyProfit> stat(LocalDateTime startTime, LocalDateTime endTime) {
return guildMemberDailyProfitDao.stat(startTime, endTime);
public List<GuildMemberDailyProfit> 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);
}
}

15
dating-agency-mall-server/src/main/resources/mapper/gmdp/GuildMemberDailyProfitDao.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.gmdp.GuildMemberDailyProfitDao">
<select id="stat" resultType="com.qniao.dam.domain.aggregate.gmdp.entity.GuildMemberDailyProfit">
<select id="statAll" resultType="com.qniao.dam.domain.aggregate.gmdp.entity.GuildMemberDailyProfit">
SELECT
guild_id,
user_id,
@ -13,4 +13,17 @@
GROUP BY guild_id,user_id
</select>
<select id="stat" resultType="com.qniao.dam.domain.aggregate.gmdp.entity.GuildMemberDailyProfit">
SELECT guild_id,
user_id,
SUM(earnings) as earnings
from da_guild_member_profit_item
where is_delete = 0
and guild_id = #{guildId}
and user_id = #{userId}
and create_time BETWEEN #{startTime} and #{endTime}
GROUP BY guild_id, user_id
limit 1
</select>
</mapper>
Loading…
Cancel
Save