BD管理-英语区BD绑定
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.accompany.admin.service.family;
|
||||
|
||||
import com.accompany.admin.model.AdminUser;
|
||||
import com.accompany.admin.service.guild.BdInfoAdminService;
|
||||
import com.accompany.admin.service.guild.GuildApplyAdminService;
|
||||
import com.accompany.admin.service.system.AdminUserService;
|
||||
import com.accompany.admin.vo.family.FamilyAdminVo;
|
||||
@@ -12,6 +13,8 @@ import com.accompany.business.message.NewGuildMessage;
|
||||
import com.accompany.business.model.family.*;
|
||||
import com.accompany.business.service.UploadAvatarService;
|
||||
import com.accompany.business.service.family.*;
|
||||
import com.accompany.business.service.guild.BdGuildService;
|
||||
import com.accompany.business.service.guild.BdInfoService;
|
||||
import com.accompany.business.service.room.FamilyMemberRoomMicRecordService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.business.vo.family.FamilyMemberAdminVo;
|
||||
@@ -74,6 +77,8 @@ public class FamilyManageAdminService {
|
||||
private AdminUserService adminUserService;
|
||||
@Autowired
|
||||
private UploadAvatarService uploadAvatarService;
|
||||
@Autowired
|
||||
private BdInfoAdminService bdInfoAdminService;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void createFamily(Long erbanNo, String referrer, Long inviteErbanNo) {
|
||||
@@ -137,7 +142,9 @@ public class FamilyManageAdminService {
|
||||
|
||||
applicationContext.publishEvent(new FamilyMemberStatusChangeEvent(familyMember));
|
||||
|
||||
bdInfoAdminService.bindBdFamily(family, inviteUid);
|
||||
familyMessageService.sendCreateSysMsgToFamilyOwner(family.getOwnerUid(), family.getName());
|
||||
|
||||
}
|
||||
|
||||
public void updateFamily(Integer id, String name,
|
||||
@@ -540,6 +547,8 @@ public class FamilyManageAdminService {
|
||||
|
||||
familyMemberService.dismissMemberByFamilyId(family.getId(), now);
|
||||
|
||||
bdInfoAdminService.inValidBdGuildByGuild(family.getId());
|
||||
|
||||
for (FamilyMember member: familyMemberList){
|
||||
member.setEnable(Boolean.FALSE);
|
||||
applicationContext.publishEvent(new FamilyMemberStatusChangeEvent(member));
|
||||
|
@@ -4,6 +4,7 @@ package com.accompany.admin.service.guild;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.admin.service.system.AdminUserService;
|
||||
import com.accompany.business.model.UserInviteFissionRecord;
|
||||
import com.accompany.business.model.family.Family;
|
||||
import com.accompany.business.model.guild.BdGuild;
|
||||
import com.accompany.business.model.guild.BdInfo;
|
||||
import com.accompany.business.model.guild.Guild;
|
||||
@@ -224,6 +225,37 @@ public class BdInfoAdminService {
|
||||
.ifPresent(validBdInfo -> saveBdGuild(guild, validBdInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 绑定BD,优先填入邀请人,然后才是邀请码邀请人
|
||||
* @param guild
|
||||
* @param inviteUid
|
||||
*/
|
||||
public void bindBdFamily(Family family, Long inviteUid) {
|
||||
if (family == null || family.getId() == null) {
|
||||
log.info("bindBdGuild error, guild null");
|
||||
return;
|
||||
}
|
||||
// 1. 尝试用 inviteUid 绑定,成功则直接返回
|
||||
boolean isBoundByInviteUid = Optional.ofNullable(inviteUid)
|
||||
.map(bdInfoService::getValidByUid)
|
||||
.map(validBdInfo -> {
|
||||
saveBdFamily(family, validBdInfo);
|
||||
return true; // 标记绑定成功
|
||||
})
|
||||
.orElse(false);
|
||||
|
||||
if (isBoundByInviteUid) {
|
||||
return; // 已绑定,直接结束
|
||||
}
|
||||
|
||||
// 2. 尝试用 ownerUid 的 inviterUid 绑定
|
||||
Optional.ofNullable(family.getOwnerUid())
|
||||
.map(userInviteFissionRecordService::getByUid)
|
||||
.map(UserInviteFissionRecord::getInviterUid)
|
||||
.map(bdInfoService::getValidByUid)
|
||||
.ifPresent(validBdInfo -> saveBdFamily(family, validBdInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存 BdGuild
|
||||
*/
|
||||
@@ -249,6 +281,31 @@ public class BdInfoAdminService {
|
||||
bdGuildService.save(bdGuild);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存 BdGuild
|
||||
*/
|
||||
private void saveBdFamily(Family family, BdInfo bdInfo) {
|
||||
BdGuild validByGuildAndBd = bdGuildService.getValidByGuildAndBd(bdInfo.getId(), family.getId());
|
||||
if (validByGuildAndBd != null) {
|
||||
log.info("bindBdGuild error, bdGuild exist");
|
||||
return;
|
||||
}
|
||||
Users users = usersService.getUsersByUid(family.getOwnerUid());
|
||||
Users bdUser = usersService.getUsersByUid(bdInfo.getUid());
|
||||
if (!users.getPartitionId().equals(bdUser.getPartitionId())) {
|
||||
log.info("bindBdGuild error, partitionId not equal,guild:{},bd:{}",
|
||||
JSONObject.toJSONString(family), JSONObject.toJSONString(bdInfo));
|
||||
return;
|
||||
}
|
||||
BdGuild bdGuild = new BdGuild();
|
||||
bdGuild.setGuildId(family.getId());
|
||||
bdGuild.setPartitionId(users.getPartitionId());
|
||||
bdGuild.setBdId(bdInfo.getId());
|
||||
bdGuild.setCreateTime(new Date());
|
||||
bdGuild.setStatus(Constant.status.valid);
|
||||
bdGuildService.save(bdGuild);
|
||||
}
|
||||
|
||||
public void inValidBdGuildByGuild(Integer guildId) {
|
||||
bdGuildService.inValidByGuildId(guildId);
|
||||
}
|
||||
|
Reference in New Issue
Block a user