16 changed files with 318 additions and 1 deletions
Split View
Diff Options
-
50dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/rpaw/entity/RafflePrizeActivityWinning.java
-
30dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/matchmaker/event/MatchmakerFranchiseFeeRewardEvent.java
-
2dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/UserAcquireMatchmakerJoinRecommendRewardDto.java
-
4dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/reward/user/request/UserAcquireMatchmakerJoinRecommendRewardDto.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/rpa/user/RafflePrizeActivityUserQueryController.java
-
52dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/rpa/RafflePrizeActivityEventHandler.java
-
17dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java
-
26dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpaw/RafflePrizeActivityWinningApplicationService.java
-
31dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpaw/RafflePrizeActivityWinningAggregate.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/rpaw/repository/RafflePrizeActivityWinningRepository.java
-
12dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/rpaw/RafflePrizeActivityWinningDao.java
-
41dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeActivityWinningRepositoryImpl.java
-
4dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpa/RafflePrizeActivityQueryService.java
-
17dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpa/impl/RafflePrizeActivityQueryServiceImpl.java
-
5dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpaw/RafflePrizeActivityWinningQueryService.java
-
9dating-agency-mall-server/src/main/java/com/qniao/dam/query/rpaw/impl/RafflePrizeActivityWinningQueryServiceImpl.java
@ -0,0 +1,50 @@ |
|||
package com.qniao.dam.domain.aggregate.rpaw.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.qniao.dam.domian.aggregate.rpa.constant.RafflePrizeActivityConditionEnum; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import com.qniao.domain.Entity; |
|||
|
|||
import java.time.LocalDateTime; |
|||
|
|||
/** |
|||
* 抽奖活动中奖信息 |
|||
* |
|||
* @date 2025/01/14 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("da_raffle_prize_activity_winning") |
|||
public class RafflePrizeActivityWinning extends Entity<RafflePrizeActivityWinning> { |
|||
|
|||
@ApiModelProperty("抽奖奖品活动标识") |
|||
private Long rafflePrizeActivityId; |
|||
|
|||
@ApiModelProperty("参加条件") |
|||
private RafflePrizeActivityConditionEnum rafflePrizeActivityCondition; |
|||
|
|||
@ApiModelProperty("中奖人") |
|||
private Long userId; |
|||
|
|||
@ApiModelProperty("中奖人手机") |
|||
private String phone; |
|||
|
|||
@ApiModelProperty("中奖产品") |
|||
private String rafflePrizeConfigName; |
|||
|
|||
@ApiModelProperty("是否抽奖") |
|||
private Boolean isDraw; |
|||
|
|||
@ApiModelProperty("抽奖时间") |
|||
private LocalDateTime drawTime; |
|||
|
|||
@ApiModelProperty("最高奖励") |
|||
private String maxReward; |
|||
|
|||
@ApiModelProperty("备注") |
|||
private String remark; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
package com.qniao.dam.domian.aggregate.matchmaker.event; |
|||
|
|||
import com.qniao.dau.domian.aggregate.matchmaker.constant.MatchmakerLevelEnum; |
|||
import com.qniao.domain.BaseDomainEvent; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
public class MatchmakerFranchiseFeeRewardEvent extends BaseDomainEvent { |
|||
|
|||
@ApiModelProperty("发起邀请红娘") |
|||
private Long matchmakerId; |
|||
|
|||
@ApiModelProperty("加盟费") |
|||
private BigDecimal franchiseFee; |
|||
|
|||
@ApiModelProperty("留存加盟费") |
|||
private BigDecimal stayFranchiseFee; |
|||
|
|||
@ApiModelProperty("被邀请用户名称") |
|||
private String receiveUserName; |
|||
|
|||
@ApiModelProperty("入驻红娘级别") |
|||
private MatchmakerLevelEnum receiveLevel; |
|||
|
|||
@ApiModelProperty("关联ID") |
|||
private Long associateId; |
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
package com.qniao.dam.application.handler.rpa; |
|||
|
|||
import com.google.common.eventbus.Subscribe; |
|||
import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivity; |
|||
import com.qniao.dam.domain.aggregate.rpaw.entity.RafflePrizeActivityWinning; |
|||
import com.qniao.dam.domian.aggregate.matchmaker.event.MatchmakerFranchiseFeeRewardEvent; |
|||
import com.qniao.dam.domian.aggregate.rpa.constant.RafflePrizeActivityConditionEnum; |
|||
import com.qniao.dam.infrastructure.persistent.dao.domain.MatchmakerDao; |
|||
import com.qniao.dam.query.rpa.RafflePrizeActivityQueryService; |
|||
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker; |
|||
import com.qniao.domain.BaseApplicationService; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.Objects; |
|||
|
|||
@Component |
|||
@Slf4j |
|||
public class RafflePrizeActivityEventHandler extends BaseApplicationService { |
|||
|
|||
@Resource |
|||
private RafflePrizeActivityQueryService rafflePrizeActivityQueryService; |
|||
@Resource |
|||
private MatchmakerDao matchmakerDao; |
|||
|
|||
/** |
|||
* 红娘邀请入驻奖励事件 |
|||
* |
|||
* @param event 红娘邀请入驻奖励事件 |
|||
*/ |
|||
@Subscribe |
|||
private void handle(MatchmakerFranchiseFeeRewardEvent event) { |
|||
try { |
|||
RafflePrizeActivity rafflePrizeActivity = rafflePrizeActivityQueryService.queryEnableBy(RafflePrizeActivityConditionEnum.MATCHMAKER_JOIN_RECOMMEND); |
|||
if (Objects.nonNull(rafflePrizeActivity)) { |
|||
Matchmaker matchmaker = matchmakerDao.selectById(event.getMatchmakerId()); |
|||
//满足抽奖活动,获得抽奖资格 |
|||
RafflePrizeActivityWinning winning = new RafflePrizeActivityWinning(); |
|||
winning.setRafflePrizeActivityId(rafflePrizeActivity.getId()); |
|||
winning.setRafflePrizeActivityCondition(rafflePrizeActivity.getCondition()); |
|||
winning.setUserId(matchmaker.getUserId()); |
|||
winning.setPhone(matchmaker.getPhone()); |
|||
winning.setIsDraw(false); |
|||
winning.setMaxReward(event.getStayFranchiseFee().stripTrailingZeros().toPlainString()); |
|||
winning.setRemark(matchmaker.getType().getDesc() + matchmaker.getName() + "邀请" + event.getReceiveLevel().getDesc() + event.getReceiveUserName() + "加盟,加盟费" + event.getFranchiseFee()); |
|||
} |
|||
} catch (Exception e) { |
|||
log.error("红娘邀请入驻奖励事件处理异常", e); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,26 @@ |
|||
package com.qniao.dam.application.service.rpaw; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpaw.RafflePrizeActivityWinningAggregate; |
|||
import com.qniao.dam.domain.aggregate.rpaw.entity.RafflePrizeActivityWinning; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Service |
|||
public class RafflePrizeActivityWinningApplicationService { |
|||
|
|||
@Resource |
|||
private RafflePrizeActivityWinningAggregate rafflePrizeActivityWinningAggregate; |
|||
|
|||
public void create(RafflePrizeActivityWinning rafflePrizeActivityWinning) { |
|||
rafflePrizeActivityWinningAggregate.create(rafflePrizeActivityWinning); |
|||
} |
|||
|
|||
public void edit(RafflePrizeActivityWinning rafflePrizeActivityWinning) { |
|||
rafflePrizeActivityWinningAggregate.edit(rafflePrizeActivityWinning); |
|||
} |
|||
|
|||
public void delete(Long id) { |
|||
rafflePrizeActivityWinningAggregate.delete(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
package com.qniao.dam.domain.aggregate.rpaw; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpaw.entity.RafflePrizeActivityWinning; |
|||
import com.qniao.dam.domain.aggregate.rpaw.repository.RafflePrizeActivityWinningRepository; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
/** |
|||
* 抽奖活动中奖信息 |
|||
* |
|||
* @date 2025/01/14 |
|||
*/ |
|||
@Service |
|||
public class RafflePrizeActivityWinningAggregate { |
|||
|
|||
@Resource |
|||
private RafflePrizeActivityWinningRepository repository; |
|||
|
|||
public void create(RafflePrizeActivityWinning entity) { |
|||
repository.save(entity); |
|||
} |
|||
|
|||
public void edit(RafflePrizeActivityWinning entity) { |
|||
repository.save(entity); |
|||
} |
|||
|
|||
public void delete(Long id) { |
|||
repository.delete(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.domain.aggregate.rpaw.repository; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpaw.entity.RafflePrizeActivityWinning; |
|||
import com.qniao.domain.Repository; |
|||
|
|||
/** |
|||
* 抽奖活动中奖信息 |
|||
* |
|||
* @date 2025/01/14 |
|||
*/ |
|||
public interface RafflePrizeActivityWinningRepository extends Repository<RafflePrizeActivityWinning, Long> { |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.rpaw; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.qniao.dam.domain.aggregate.rpaw.entity.RafflePrizeActivityWinning; |
|||
|
|||
/** |
|||
* 抽奖活动中奖信息 |
|||
* |
|||
* @date 2025/01/14 |
|||
*/ |
|||
public interface RafflePrizeActivityWinningDao extends BaseMapper<RafflePrizeActivityWinning> { |
|||
} |
|||
@ -0,0 +1,41 @@ |
|||
package com.qniao.dam.infrastructure.persistent.repository.impl; |
|||
|
|||
import com.qniao.dam.domain.aggregate.rpaw.entity.RafflePrizeActivityWinning; |
|||
import com.qniao.dam.domain.aggregate.rpaw.repository.RafflePrizeActivityWinningRepository; |
|||
import com.qniao.dam.infrastructure.persistent.dao.rpaw.RafflePrizeActivityWinningDao; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.Objects; |
|||
|
|||
/** |
|||
* 抽奖活动中奖信息 |
|||
* |
|||
* @date 2025/01/14 |
|||
*/ |
|||
@Service |
|||
public class RafflePrizeActivityWinningRepositoryImpl implements RafflePrizeActivityWinningRepository { |
|||
|
|||
@Resource |
|||
private RafflePrizeActivityWinningDao dao; |
|||
|
|||
@Override |
|||
public RafflePrizeActivityWinning load(Long id) { |
|||
return dao.selectById(id); |
|||
} |
|||
|
|||
@Override |
|||
public Long save(RafflePrizeActivityWinning entity) { |
|||
if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) { |
|||
dao.insert(entity); |
|||
} else { |
|||
dao.updateById(entity); |
|||
} |
|||
return entity.getId(); |
|||
} |
|||
|
|||
@Override |
|||
public void delete(Long id) { |
|||
dao.deleteById(id); |
|||
} |
|||
} |
|||
@ -0,0 +1,5 @@ |
|||
package com.qniao.dam.query.rpaw; |
|||
|
|||
public interface RafflePrizeActivityWinningQueryService { |
|||
|
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
package com.qniao.dam.query.rpaw.impl; |
|||
|
|||
import com.qniao.dam.query.rpaw.RafflePrizeActivityWinningQueryService; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
@Service |
|||
public class RafflePrizeActivityWinningQueryServiceImpl implements RafflePrizeActivityWinningQueryService { |
|||
|
|||
} |
|||
Write
Preview
Loading…
Cancel
Save