邀请活动-补填邀请码

This commit is contained in:
khalil
2024-03-13 20:07:16 +08:00
parent 5e139cfde2
commit 0d07758146
4 changed files with 66 additions and 1 deletions

View File

@@ -11,6 +11,7 @@ import com.accompany.admin.params.flowteam.TeamMemberEditParams;
import com.accompany.admin.params.flowteam.TeamMemberQueryParams;
import com.accompany.admin.util.InviteCodeUtil;
import com.accompany.admin.vo.flowteam.*;
import com.accompany.business.event.RefillUserInviteCodeEvent;
import com.accompany.business.model.RoomInviteCode;
import com.accompany.business.model.UserInviteCode;
import com.accompany.business.service.room.RoomInviteCodeService;
@@ -670,6 +671,8 @@ public class FlowTeamService {
usersBaseService.updateUser(userForUpdate);
// 绑定用户与引流团队成员的邀请关系
flowTeamMemberInviteUserBizService.saveFlowTeamMemberInviteUser(user.getInviteCode(), user.getUid(), FlowTeamConstant.UserSourceType.REPAIR);
applicationContext.publishEvent(new RefillUserInviteCodeEvent(userForUpdate));
}
/**

View File

@@ -0,0 +1,14 @@
package com.accompany.business.event;
import org.springframework.context.ApplicationEvent;
public class RefillUserInviteCodeEvent extends ApplicationEvent {
/**
* 构造方法 补填邀请码
* @param source
*/
public RefillUserInviteCodeEvent(Object source) {
super(source);
}
}

View File

@@ -0,0 +1,37 @@
package com.accompany.business.event.listener;
import com.accompany.business.event.RefillUserInviteCodeEvent;
import com.accompany.business.service.user.UserInviteFissionService;
import com.accompany.core.model.Users;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
@Slf4j
public class InviteFissionRefillInviteListener implements ApplicationListener<RefillUserInviteCodeEvent> {
@Autowired
private UserInviteFissionService service;
@Async
@Override
public void onApplicationEvent(RefillUserInviteCodeEvent event) {
Users user = (Users) event.getSource();
Long inviter = user.getInviteUid();
if (null == inviter){
return;
}
Long uid = user.getUid();
Date createTime = new Date();
//todo 同一设备号,手机号,实名身份
service.refillBound(uid, inviter, createTime);
}
}

View File

@@ -42,6 +42,13 @@ public class UserInviteFissionService {
public void bound(Long uid, Long inviterUid, Date createTime) {
InviteFissionActConfig config = getConfig();
refillBound(config, uid, inviterUid, createTime);
sendInviteReward(config, uid, inviterUid, createTime);
}
public void refillBound(InviteFissionActConfig config, Long uid, Long inviterUid, Date createTime) {
if (!inActTime(createTime, config)){
return;
}
@@ -54,8 +61,11 @@ public class UserInviteFissionService {
log.info("[邀请裂变活动]-绑定 uid {} 与 直接邀请人 inviterUid {} 绑定邀请关系, 间接邀请人 indirectUid {} 绑定时间 {}",
uid, inviterUid, indirectUid, DateTimeUtil.convertDate(createTime));
}
sendInviteReward(config, uid, inviterUid, createTime);
public void refillBound(Long uid, Long inviterUid, Date createTime) {
InviteFissionActConfig config = getConfig();
refillBound(config, uid, inviterUid, createTime);
}
private void sendInviteReward(InviteFissionActConfig config, Long uid, Long inviterUid, Date createTime){
@@ -279,4 +289,5 @@ public class UserInviteFissionService {
}
return JSON.parseObject(configStr, InviteFissionActConfig.class);
}
}