Browse Source

红娘直播任务

master
张彭杰 2 weeks ago
parent
commit
90dd0c6911
4 changed files with 82 additions and 1 deletions
  1. 16
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/gmpi/entity/GuildMemberProfitItem.java
  2. 13
      dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/gmpi/event/GuildMemberProfitItemCreatedEvent.java
  3. 49
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/gmpi/GuildMemberProfitItemEventHandler.java
  4. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/gmpi/GuildMemberProfitItemAggregate.java

16
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/gmpi/entity/GuildMemberProfitItem.java

@ -38,4 +38,20 @@ public class GuildMemberProfitItem extends Entity<GuildMemberProfitItem> {
@ApiModelProperty("收益记录ID") @ApiModelProperty("收益记录ID")
private Long revenueRewardRecordId; private Long revenueRewardRecordId;
public static GuildMemberProfitItem build(Long guildId,
Long userId,
LiveMatchmakerTypeEnum matchmakerType,
TradeTypeEnum tradeType,
BigDecimal earnings,
Long revenueRewardRecordId) {
GuildMemberProfitItem entity = new GuildMemberProfitItem();
entity.setGuildId(guildId);
entity.setUserId(userId);
entity.setMatchmakerType(matchmakerType);
entity.setTradeType(tradeType);
entity.setEarnings(earnings);
entity.setRevenueRewardRecordId(revenueRewardRecordId);
return entity;
}
} }

13
dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/gmpi/event/GuildMemberProfitItemCreatedEvent.java

@ -0,0 +1,13 @@
package com.qniao.dam.domian.aggregate.gmpi.event;
import com.qniao.domain.BaseDomainEvent;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class GuildMemberProfitItemCreatedEvent extends BaseDomainEvent {
private Long id;
}

49
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/gmpi/GuildMemberProfitItemEventHandler.java

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

5
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/gmpi/GuildMemberProfitItemAggregate.java

@ -2,6 +2,8 @@ package com.qniao.dam.domain.aggregate.gmpi;
import com.qniao.dam.domain.aggregate.gmpi.entity.GuildMemberProfitItem; import com.qniao.dam.domain.aggregate.gmpi.entity.GuildMemberProfitItem;
import com.qniao.dam.domain.aggregate.gmpi.repository.GuildMemberProfitItemRepository; import com.qniao.dam.domain.aggregate.gmpi.repository.GuildMemberProfitItemRepository;
import com.qniao.dam.domian.aggregate.gmpi.event.GuildMemberProfitItemCreatedEvent;
import com.qniao.domain.BaseDomainEvent;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -17,8 +19,9 @@ public class GuildMemberProfitItemAggregate {
@Resource @Resource
private GuildMemberProfitItemRepository repository; private GuildMemberProfitItemRepository repository;
public void create(GuildMemberProfitItem entity) {
public BaseDomainEvent create(GuildMemberProfitItem entity) {
repository.save(entity); repository.save(entity);
return new GuildMemberProfitItemCreatedEvent(entity.getId());
} }
public void edit(GuildMemberProfitItem entity) { public void edit(GuildMemberProfitItem entity) {

Loading…
Cancel
Save