12 changed files with 196 additions and 19 deletions
Split 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