From 8657f3758fa1acef3445f82b82f81fdba5e0c1db Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 25 Sep 2025 11:29:00 +0800 Subject: [PATCH] feat(member): 更新会员公司ID逻辑 - 从API DTO中提取公司ID - 验证并转换公司编码为内部ID - 设置会员关联的公司ID - 优化公司信息查询逻辑 - 修复公司ID更新问题 - 确保会员信息正确绑定公司关系 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 37 ++++++++++++++++++++++++++++++++++--- 1 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index e67b607..ead6ef1 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -1,6 +1,8 @@ package cc.mrbird.febs.mall.service.impl; +import cc.mrbird.febs.ai.entity.AiCompany; import cc.mrbird.febs.ai.entity.AiMember; +import cc.mrbird.febs.ai.mapper.AiCompanyMapper; import cc.mrbird.febs.ai.mapper.AiMemberMapper; import cc.mrbird.febs.ai.service.AiMemberService; import cc.mrbird.febs.ai.utils.UUID; @@ -71,6 +73,7 @@ @RequiredArgsConstructor public class ApiMallMemberServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements IApiMallMemberService { + private final AiCompanyMapper aiCompanyMapper; private final AiMemberMapper aiMemberMapper; private final MallMemberWalletMapper mallMemberWalletMapper; private final ICommonService commonService; @@ -737,7 +740,14 @@ AiMember aiMember = new AiMember(); aiMember.setId(UUID.getSimpleUUIDString()); if (StrUtil.isNotEmpty(apiXcxLoginDto.getCompanyId())){ - aiMember.setCompanyId(apiXcxLoginDto.getCompanyId()); + AiCompany aiCompany = aiCompanyMapper.selectOne( + Wrappers.lambdaQuery(AiCompany.class) + .eq(AiCompany::getCode, apiXcxLoginDto.getCompanyId()) + .last("limit 1") + ); + if (ObjectUtil.isNotEmpty(aiCompany)){ + aiMember.setCompanyId(aiCompany.getId()); + } } aiMember.setCreatedTime(new Date()); aiMemberMapper.insert(aiMember); @@ -745,7 +755,11 @@ mallMember = this.baseMapper.selectMemberByOpenId(openId); String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId()); mallMember.setMemberUuid(aiMember.getId()); + if (StrUtil.isNotEmpty(aiMember.getCompanyId())){ + mallMember.setCompanyId(aiMember.getCompanyId()); + } mallMember.setInviteId(inviteId); + mallMember.setName("新用户"+inviteId); this.baseMapper.updateById(mallMember); MallMemberWallet wallet = new MallMemberWallet(); wallet.setBalance(BigDecimal.ZERO); @@ -811,6 +825,7 @@ } @Override + @Transactional public FebsResponse xcxSaveInfo(ApiXcxSaveInfoDto apiXcxSaveInfoDto) { log.info("name={},phone={},avatar={},sex={}", apiXcxSaveInfoDto.getNickName(),apiXcxSaveInfoDto.getPhone(),apiXcxSaveInfoDto.getAvatarUrl(),apiXcxSaveInfoDto.getGender()); @@ -846,14 +861,30 @@ if(ObjectUtil.isNotEmpty(apiXcxSaveInfoDto.getGender())){ mallMember.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男"); } + + String companyId = apiXcxSaveInfoDto.getCompanyId(); + if(ObjectUtil.isNotEmpty(apiXcxSaveInfoDto.getCompanyId())){ + AiCompany aiCompany = aiCompanyMapper.selectOne( + Wrappers.lambdaQuery(AiCompany.class) + .eq(AiCompany::getCode, apiXcxSaveInfoDto.getCompanyId()) + .last("limit 1") + ); + if (ObjectUtil.isEmpty(aiCompany)){ + throw new FebsException("公司编码不存在"); + } + if (ObjectUtil.isNotEmpty(aiCompany)){ + companyId = aiCompany.getId(); + } + } + mallMember.setCompanyId(companyId); this.baseMapper.updateById(mallMember); String memberUuid = mallMember.getMemberUuid(); AiMember aiMember = aiMemberService.getById(memberUuid); - if (ObjectUtil.isNotEmpty(aiMember) && StrUtil.isNotEmpty(apiXcxSaveInfoDto.getCompanyId())){ + if (ObjectUtil.isNotEmpty(aiMember) && StrUtil.isNotEmpty(mallMember.getCompanyId())){ aiMemberService.update(null, Wrappers.lambdaUpdate(AiMember.class) - .set(AiMember::getCompanyId, aiMember.getCompanyId()) + .set(AiMember::getCompanyId, mallMember.getCompanyId()) .eq(AiMember::getId, aiMember.getId()) ); } -- Gitblit v1.9.1