12 changed files with 196 additions and 19 deletions
Unified View
Diff Options
-
2dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/SubTaskTypeEnum.java
-
8dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/utc/entity/UserSubTaskComplete.java
-
20dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/utc/entity/UserTaskComplete.java
-
21dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/utc/event/UserEffectiveLiveDurationCommittedMQ.java
-
85dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/utc/UserTaskCompleteEventHandler.java
-
4dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java
-
2dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqQueue.java
-
24dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/UserTaskCompleteRepositoryImpl.java
-
5dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/TaskTemplateQueryService.java
-
13dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/impl/TaskTemplateQueryServiceImpl.java
-
11dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/UserTaskCompleteQueryService.java
-
20dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/impl/UserTaskCompleteQueryServiceImpl.java
@ -0,0 +1,21 @@ |
|||||
|
package com.qniao.dam.domian.aggregate.utc.event; |
||||
|
|
||||
|
import com.qniao.dam.domian.aggregate.tasktemplate.constant.SubTaskTypeEnum; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
@Data |
||||
|
public class UserEffectiveLiveDurationCommittedMQ implements Serializable { |
||||
|
|
||||
|
@ApiModelProperty("用户标识") |
||||
|
private Long userId; |
||||
|
|
||||
|
@ApiModelProperty("子任务类型") |
||||
|
private SubTaskTypeEnum subTaskType; |
||||
|
|
||||
|
@ApiModelProperty("提交次数") |
||||
|
private Integer commitCount; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,85 @@ |
|||||
|
package com.qniao.dam.application.handler.utc; |
||||
|
|
||||
|
import cn.hutool.core.lang.Tuple; |
||||
|
import com.qniao.dam.domain.aggregate.tasktemplate.entity.SubTaskTemplate; |
||||
|
import com.qniao.dam.domain.aggregate.tasktemplate.entity.TaskTemplate; |
||||
|
import com.qniao.dam.domain.aggregate.utc.entity.UserSubTaskComplete; |
||||
|
import com.qniao.dam.domain.aggregate.utc.entity.UserTaskComplete; |
||||
|
import com.qniao.dam.domian.aggregate.tasktemplate.constant.SubTaskTypeEnum; |
||||
|
import com.qniao.dam.domian.aggregate.tasktemplate.constant.TaskGroupEnum; |
||||
|
import com.qniao.dam.domian.aggregate.tasktemplate.constant.TaskStageEnum; |
||||
|
import com.qniao.dam.domian.aggregate.tasktemplate.constant.TaskTypeEnum; |
||||
|
import com.qniao.dam.domian.aggregate.utc.event.UserEffectiveLiveDurationCommittedMQ; |
||||
|
import com.qniao.dam.infrastructure.constant.MqExchange; |
||||
|
import com.qniao.dam.infrastructure.constant.MqQueue; |
||||
|
import com.qniao.dam.query.livematchmaker.LiveMatchmakerQueryService; |
||||
|
import com.qniao.dam.query.tasktemplate.TaskTemplateQueryService; |
||||
|
import com.qniao.dam.query.utc.UserTaskCompleteQueryService; |
||||
|
import com.qniao.dau.domain.aggregate.livematchmaker.entity.LiveMatchmaker; |
||||
|
import com.qniao.domain.BaseApplicationService; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.amqp.core.ExchangeTypes; |
||||
|
import org.springframework.amqp.rabbit.annotation.Exchange; |
||||
|
import org.springframework.amqp.rabbit.annotation.Queue; |
||||
|
import org.springframework.amqp.rabbit.annotation.QueueBinding; |
||||
|
import org.springframework.amqp.rabbit.annotation.RabbitListener; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import java.util.Collections; |
||||
|
import java.util.List; |
||||
|
import java.util.Objects; |
||||
|
|
||||
|
@Component |
||||
|
@Slf4j |
||||
|
public class UserTaskCompleteEventHandler extends BaseApplicationService { |
||||
|
|
||||
|
@Resource |
||||
|
private LiveMatchmakerQueryService liveMatchmakerQueryService; |
||||
|
@Resource |
||||
|
private TaskTemplateQueryService taskTemplateQueryService; |
||||
|
@Resource |
||||
|
private UserTaskCompleteQueryService userTaskCompleteQueryService; |
||||
|
|
||||
|
@RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.USER_SUB_TASK_COMMITTED), |
||||
|
exchange = @Exchange(value = MqExchange.USER_SUB_TASK_COMMITTED, |
||||
|
type = ExchangeTypes.FANOUT))) |
||||
|
public void handle(UserEffectiveLiveDurationCommittedMQ mq) { |
||||
|
try { |
||||
|
synchronized (mq.getUserId().toString().intern()) { |
||||
|
LiveMatchmaker liveMatchmaker = liveMatchmakerQueryService.queryByUserId(mq.getUserId()); |
||||
|
if (Objects.nonNull(liveMatchmaker)) { |
||||
|
TaskGroupEnum taskGroup = liveMatchmakerQueryService.getTaskGroup(liveMatchmaker); |
||||
|
TaskStageEnum stageCode = TaskStageEnum.count(liveMatchmaker.getCreateTime().toLocalDate()); |
||||
|
//查询任务模板 放redis |
||||
|
TaskTemplate taskTemplate = taskTemplateQueryService.queryBy(taskGroup, TaskTypeEnum.DAILY_TASK, stageCode); |
||||
|
if (Objects.nonNull(taskTemplate)) { |
||||
|
List<SubTaskTemplate> subTaskTemplateList = taskTemplateQueryService.getSubList(taskTemplate.getId()); |
||||
|
for (SubTaskTemplate subTaskTemplate : subTaskTemplateList) { |
||||
|
if (subTaskTemplate.getSubTaskType().equals(mq.getSubTaskType())) { |
||||
|
//存在子任务 |
||||
|
Tuple tuple = taskTemplateQueryService.getTaskDate(TaskTypeEnum.DAILY_TASK); |
||||
|
UserTaskComplete userTaskComplete = userTaskCompleteQueryService.queryBy(mq.getUserId(), taskTemplate.getId(), tuple.get(0), tuple.get(1)); |
||||
|
if (Objects.isNull(userTaskComplete)) { |
||||
|
userTaskComplete = UserTaskComplete.init(mq.getUserId(), taskTemplate.getId(), tuple.get(0), tuple.get(1)); |
||||
|
UserSubTaskComplete userSubTaskComplete = UserSubTaskComplete.init(subTaskTemplate.getId()); |
||||
|
userTaskComplete.setInsertSubList(Collections.singletonList(userSubTaskComplete)); |
||||
|
} else { |
||||
|
if (!userTaskComplete.getCompleteStatus()) { |
||||
|
UserSubTaskComplete userSubTaskComplete = userTaskCompleteQueryService.querySubBy(userTaskComplete.getId(), subTaskTemplate.getId()); |
||||
|
//todo |
||||
|
} |
||||
|
} |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} catch (Exception e) { |
||||
|
log.error("直播时长任务提交事件处理异常", e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save