公会-h5邀请-注册填资料中的国家选项跟随邀请人

This commit is contained in:
khalil
2025-07-31 18:58:42 +08:00
committed by khalil
parent 91aaf377a9
commit fea6a99b80
4 changed files with 64 additions and 9 deletions

View File

@@ -0,0 +1,15 @@
package com.accompany.business.service.guild;
import com.accompany.business.model.guild.GuildH5InviteRecord;
import com.accompany.business.mybatismapper.guild.GuildH5InviteRecordMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class GuildH5InviteRecordService extends ServiceImpl<GuildH5InviteRecordMapper, GuildH5InviteRecord> {
public GuildH5InviteRecord getByEmail(String email) {
return lambdaQuery().eq(GuildH5InviteRecord::getEmail, email).one();
}
}

View File

@@ -5,14 +5,12 @@ import com.accompany.business.model.guild.BdInfo;
import com.accompany.business.model.guild.GuildApply;
import com.accompany.business.model.guild.GuildH5InviteRecord;
import com.accompany.business.model.guild.GuildMember;
import com.accompany.business.mybatismapper.guild.GuildH5InviteRecordMapper;
import com.accompany.business.param.GuildH5ApplyParam;
import com.accompany.business.service.user.UsersService;
import com.accompany.common.constant.Constant;
import com.accompany.common.status.BusiStatus;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.model.Users;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -30,7 +28,7 @@ import java.util.Date;
public class GuildH5InviteService {
@Autowired
private GuildH5InviteRecordMapper recordMapper;
private GuildH5InviteRecordService recordService;
@Autowired
private GuildService guildService;
@Autowired
@@ -70,8 +68,7 @@ public class GuildH5InviteService {
throw new ServiceException(BusiStatus.PARAMETERILLEGAL);
}
GuildH5InviteRecord record = recordMapper.selectOne(Wrappers.<GuildH5InviteRecord>lambdaQuery()
.eq(GuildH5InviteRecord::getEmail, emailAddress));
GuildH5InviteRecord record = recordService.getByEmail(emailAddress);
if (null != record){
throw new ServiceException(BusiStatus.SERVERERROR);
}
@@ -103,7 +100,7 @@ public class GuildH5InviteService {
record.setInviterUid(inviterUid);
record.setPartitionId(guildMember.getPartitionId());
record.setCreateTime(new Date());
recordMapper.insert(record);
recordService.save(record);
}
}
@@ -136,7 +133,7 @@ public class GuildH5InviteService {
record.setIdCard(guildApplyParam.getIdCard());
record.setInviteErbanNo(guildApplyParam.getInviteErbanNo());
record.setInviteCheck(guildApplyParam.getInviteCheck());
recordMapper.insert(record);
recordService.save(record);
}
}

View File

@@ -11,6 +11,7 @@ import com.accompany.business.model.HallMember;
import com.accompany.business.model.PrivatePhoto;
import com.accompany.business.model.UserFrozenRecord;
import com.accompany.business.model.UserRoomCard;
import com.accompany.business.model.guild.GuildH5InviteRecord;
import com.accompany.business.mybatismapper.UserFrozenRecordMapper;
import com.accompany.business.mybatismapper.UsersMapperExpend;
import com.accompany.business.param.UserParam;
@@ -19,6 +20,7 @@ import com.accompany.business.service.UploadAvatarService;
import com.accompany.business.service.UserRoomCardService;
import com.accompany.business.service.car.CarportService;
import com.accompany.business.service.dfa.DfaService;
import com.accompany.business.service.guild.GuildH5InviteRecordService;
import com.accompany.business.service.hall.HallService;
import com.accompany.business.service.headwear.HeadwearService;
import com.accompany.business.service.level.LevelService;
@@ -74,6 +76,7 @@ import com.accompany.email.service.EmailService;
import com.accompany.payment.service.RechargeUserService;
import com.accompany.sms.service.SmsService;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
@@ -165,6 +168,8 @@ public class UsersService extends BaseService {
private UploadAvatarService uploadAvatarService;
@Autowired
private UserConfigService userConfigService;
@Autowired
private GuildH5InviteRecordService guildH5InviteRecordService;
public Users getUsersByUid(Long uid) {
if (uid == null) {
@@ -550,7 +555,7 @@ public class UsersService extends BaseService {
users.setLastLoginIp(account.getRegisterIp());
users.setLastLoginRegion(regionService.getRegion(account.getRegisterIp()));
users.setPartitionId(selectPartitionId(users, account.getRegisterIp()));
users.setPartitionId(selectPartitionId(users, account.getRegisterIp(), account.getEmail()));
logger.info("saveOrUpdateUserByUidV2 users before insert {}", JSONObject.toJSONString(users));
usersMapper.insertSelective(users);
@@ -595,7 +600,16 @@ public class UsersService extends BaseService {
return userVo;
}
private Integer selectPartitionId(Users users, String registerIp) {
private Integer selectPartitionId(Users users, String registerIp, String email) {
//公会h5邀请
if (StringUtils.isNotBlank(email)){
GuildH5InviteRecord guildH5InviteRecord = guildH5InviteRecordService.getByEmail(email);
if (null != guildH5InviteRecord){
Users inviterUser = getNotNullUsersByUid(guildH5InviteRecord.getInviterUid());
return inviterUser.getPartitionId();
}
}
if (null != users.getRegionId()){
RegionInfo regionInfo = regionInfoService.getById(users.getRegionId());
if (null == regionInfo){

View File

@@ -1,13 +1,19 @@
package com.accompany.business.controller.region;
import com.accompany.business.common.BaseController;
import com.accompany.business.model.guild.GuildH5InviteRecord;
import com.accompany.business.service.guild.GuildH5InviteRecordService;
import com.accompany.business.service.user.UsersService;
import com.accompany.common.annotation.Authorization;
import com.accompany.common.result.BusiResult;
import com.accompany.common.status.BusiStatus;
import com.accompany.common.utils.IPUtils;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.model.Account;
import com.accompany.core.model.RegionInfo;
import com.accompany.core.model.Users;
import com.accompany.core.service.account.AccountService;
import com.accompany.core.service.region.RegionInfoService;
import com.accompany.core.service.region.RegionNetworkSearchService;
import com.accompany.core.vo.RegionInfoVo;
@@ -36,12 +42,35 @@ public class RegionInfoController extends BaseController {
private RegionNetworkSearchService regionNetworkSearchService;
@Autowired
private RegionInfoService service;
@Autowired
private AccountService accountService;
@Autowired
private GuildH5InviteRecordService guildH5InviteRecordService;
@Autowired
private UsersService usersService;
@ApiOperation("获取地区列表")
@GetMapping("/listAll")
public BusiResult<List<RegionInfoVo>> listAll(HttpServletRequest request) {
Long uid = getUid(request);
List<RegionInfoVo> regionInfos = service.getAllList();
if (!CollectionUtils.isEmpty(regionInfos)) {
//公会h5邀请优先
Account account = accountService.getById(uid);
if (null != account && StringUtils.hasText(account.getEmail())){
GuildH5InviteRecord inviteRecord = guildH5InviteRecordService.getByEmail(account.getEmail());
if (null != inviteRecord && null != inviteRecord.getInviterUid()){
Users inviterUser = usersService.getNotNullUsersByUid(inviteRecord.getInviterUid());
if (null != inviterUser.getRegionId()){
List<RegionInfoVo> inviterRegionInfoVos = regionInfos.stream()
.filter(regionInfo -> regionInfo.getId().equals(inviterUser.getRegionId()))
.peek(regionInfo -> regionInfo.setChecked(Boolean.TRUE))
.toList();
return BusiResult.success(inviterRegionInfoVos);
}
}
}
String ip = IPUtils.getRealIpAddress(request);
RegionNetworkVo regionNetworkVo = regionNetworkSearchService.networkSearch(ip);
String countryCode = StringUtils.hasText(regionNetworkVo.getCountryCode()) ? regionNetworkVo.getCountryCode() : "";