|
|
|
@ -0,0 +1,49 @@ |
|
|
|
package com.qniao.dam.application.handler.gmpi; |
|
|
|
|
|
|
|
import com.google.common.eventbus.Subscribe; |
|
|
|
import com.qniao.dam.domain.aggregate.gmpi.GuildMemberProfitItemAggregate; |
|
|
|
import com.qniao.dam.domain.aggregate.gmpi.entity.GuildMemberProfitItem; |
|
|
|
import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; |
|
|
|
import com.qniao.dam.domian.aggregate.revenuereward.event.RevenueRewardRecordCreatedEvent; |
|
|
|
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.RevenueRewardDao; |
|
|
|
import com.qniao.dam.query.livematchmaker.LiveMatchmakerQueryService; |
|
|
|
import com.qniao.dau.domain.aggregate.livematchmaker.entity.LiveMatchmaker; |
|
|
|
import com.qniao.domain.BaseApplicationService; |
|
|
|
import com.qniao.domain.BaseDomainEvent; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
@Component |
|
|
|
@Slf4j |
|
|
|
public class GuildMemberProfitItemEventHandler extends BaseApplicationService { |
|
|
|
|
|
|
|
@Resource |
|
|
|
private RevenueRewardDao revenueRewardDao; |
|
|
|
@Resource |
|
|
|
private LiveMatchmakerQueryService liveMatchmakerQueryService; |
|
|
|
@Resource |
|
|
|
private GuildMemberProfitItemAggregate guildMemberProfitItemAggregate; |
|
|
|
|
|
|
|
@Subscribe |
|
|
|
private void handle(RevenueRewardRecordCreatedEvent event) { |
|
|
|
try { |
|
|
|
RevenueReward revenueReward = revenueRewardDao.selectById(event.getRevenueRewardId()); |
|
|
|
if (IdentityTypeEnum.INDIVIDUAL.equals(revenueReward.getIdentityType())) { |
|
|
|
LiveMatchmaker liveMatchmaker = liveMatchmakerQueryService.queryByUserId(revenueReward.getUserId()); |
|
|
|
if (Objects.nonNull(liveMatchmaker) && Objects.nonNull(liveMatchmaker.getGuildId())) { |
|
|
|
GuildMemberProfitItem item = GuildMemberProfitItem.build(liveMatchmaker.getGuildId(), liveMatchmaker.getUserId(), |
|
|
|
liveMatchmaker.getType(), event.getTradeType(), event.getRevenue(), event.getId()); |
|
|
|
BaseDomainEvent guildMemberProfitItemEvent = guildMemberProfitItemAggregate.create(item); |
|
|
|
this.sendEvent(guildMemberProfitItemEvent); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("收益明细记录已创建事件处理异常", e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |