Administrator
19 hours ago b012ab5e4fa5a4c7698867d0d9db601be111cc1d
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -1,5 +1,14 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.ai.entity.AiCompany;
import cc.mrbird.febs.ai.entity.AiCompanyMemberApply;
import cc.mrbird.febs.ai.entity.AiMember;
import cc.mrbird.febs.ai.enumerates.AiCommonEnum;
import cc.mrbird.febs.ai.mapper.AiCompanyMapper;
import cc.mrbird.febs.ai.mapper.AiCompanyMemberApplyMapper;
import cc.mrbird.febs.ai.mapper.AiMemberMapper;
import cc.mrbird.febs.ai.service.AiMemberService;
import cc.mrbird.febs.ai.utils.UUID;
import cc.mrbird.febs.common.configure.FebsConfigure;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.enumerates.*;
@@ -67,6 +76,8 @@
@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;
    private final RedisUtils redisUtils;
@@ -100,6 +111,8 @@
    private final HappyMemberLabelRecordMapper happyMemberLabelRecordMapper;
    private final HappyMemberLabelMapper happyMemberLabelMapper;
    private final FebsConfigure febsConfigure;
    private final AiMemberService aiMemberService;
    private final AiCompanyMemberApplyMapper aiCompanyMemberApplyMapper;
    @Value("${spring.profiles.active}")
@@ -276,18 +289,42 @@
        MallMember mallMember = this.baseMapper.selectById(id);
        MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember);
        HappyMemberLevel happyMemberLevel = happyMemberLevelMapper.selectOne(
                new LambdaQueryWrapper<HappyMemberLevel>()
                        .select(HappyMemberLevel::getName,  HappyMemberLevel::getIconPng)
                        .eq(HappyMemberLevel::getCode, mallMember.getDirector())
        );
        if(happyMemberLevel != null){
            mallMemberVo.setLevelName(happyMemberLevel.getName());
            mallMemberVo.setLevelNamePng(happyMemberLevel.getIconPng());
        if (StrUtil.isNotEmpty(mallMember.getCompanyId())){
            AiCompany aiCompany = aiCompanyMapper.selectById(mallMember.getCompanyId());
            mallMemberVo.setCompanyName(aiCompany.getName());
            mallMemberVo.setCompanyCode(aiCompany.getCode());
        }
        List<AiCompanyMemberApply> aiCompanyMemberApplies = aiCompanyMemberApplyMapper.selectList(
                Wrappers.lambdaQuery(AiCompanyMemberApply.class)
                        .eq(AiCompanyMemberApply::getMemberId, mallMemberVo.getMemberUuid())
                        .in(AiCompanyMemberApply::getState, Arrays.asList(0, 1))
        );
        if (CollUtil.isEmpty(aiCompanyMemberApplies)){
            mallMemberVo.setCompanyApplyState(0);
        }else{
            List<AiCompanyMemberApply> aiCompanyMemberApplyList = aiCompanyMemberApplyMapper.selectList(
                    Wrappers.lambdaQuery(AiCompanyMemberApply.class)
                            .eq(AiCompanyMemberApply::getMemberId, mallMemberVo.getMemberUuid())
                            .eq(AiCompanyMemberApply::getState, 0)
            );
            if (CollUtil.isNotEmpty(aiCompanyMemberApplyList)){
                mallMemberVo.setCompanyApplyState(2);
            }else{
                mallMemberVo.setCompanyApplyState(1);
            }
        }
//        HappyMemberLevel happyMemberLevel = happyMemberLevelMapper.selectOne(
//                new LambdaQueryWrapper<HappyMemberLevel>()
//                        .select(HappyMemberLevel::getName,  HappyMemberLevel::getIconPng)
//                        .eq(HappyMemberLevel::getCode, mallMember.getDirector())
//        );
//        if(happyMemberLevel != null){
//            mallMemberVo.setLevelName(happyMemberLevel.getName());
//            mallMemberVo.setLevelNamePng(happyMemberLevel.getIconPng());
//        }
        if(StrUtil.isNotEmpty(mallMember.getReferrerId())){
            MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId());
            if (referMember != null) {
@@ -300,64 +337,64 @@
            mallMemberVo.setIsTeamLeader(1);
        }
        if (StrUtil.isNotBlank(mallMember.getTradePassword())) {
            mallMemberVo.setHasTradePwd(1);
        }
        MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(id);
        if (payment != null) {
            mallMemberVo.setHasPayment(1);
        }
        MemberCollectionListDto memberCollectionListDto = new MemberCollectionListDto();
        memberCollectionListDto.setPageNow(1);
        memberCollectionListDto.setPageSize(10);
        List<CollectionListVo> collectionList = mallMemberCollectionService.findMemberCollectionList(memberCollectionListDto);
        mallMemberVo.setCollectionCnt(CollUtil.isNotEmpty(collectionList) ? collectionList.size() : 0);
        MemberFootprintListDto memberFootprintListDto = new MemberFootprintListDto();
        memberFootprintListDto.setPageNow(1);
        memberFootprintListDto.setPageSize(10);
        List<FootprintListVo> footprintList = mallMemberFootprintService.findMemberFootprintList(memberFootprintListDto);
        mallMemberVo.setFootprintCnt(CollUtil.isNotEmpty(footprintList) ? footprintList.size() : 0);
        List<MallMember> mallMembers = this.baseMapper.selectByRefererId(mallMember.getInviteId());
        mallMemberVo.setChildCnt(CollUtil.isNotEmpty(mallMembers) ? mallMembers.size() : 0);
        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
        MallVipConfig mallVipConfig = mallVipConfigMapper.selectVipConfigByCode(mallMember.getLevel());
        mallMemberVo.setVipInfo(mallVipConfig);
        mallMemberVo.setBalance(wallet.getBalance());
        mallMemberVo.setScore(wallet.getScore());
        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
//        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
        List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList(
                new LambdaQueryWrapper<HappyMemberLabelRecord>()
                        .eq(HappyMemberLabelRecord::getMemberId, id)
                        .orderByDesc(HappyMemberLabelRecord::getId)
                .last("limit 5")
        );
        if(CollUtil.isNotEmpty(happyMemberLabelRecords)){
            Set<Long> collect = happyMemberLabelRecords.stream().map(HappyMemberLabelRecord::getLabelId).collect(Collectors.toSet());
            List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList(
                    new LambdaQueryWrapper<HappyMemberLabel>()
                            .select(HappyMemberLabel::getIconPng,  HappyMemberLabel::getName)
                            .in(HappyMemberLabel::getId, collect)
            );
            if(CollUtil.isNotEmpty(happyMemberLabels)){
                ArrayList<ApiLabelInfoVo> apiMemberLabelVos = new ArrayList<>();
                for (HappyMemberLabel happyMemberLabel : happyMemberLabels) {
                    ApiLabelInfoVo apiLabelInfoVo = new ApiLabelInfoVo();
                    apiLabelInfoVo.setIconPng(happyMemberLabel.getIconPng());
                    apiLabelInfoVo.setName(happyMemberLabel.getName());
                    apiMemberLabelVos.add(apiLabelInfoVo);
                }
                mallMemberVo.setLabelList(apiMemberLabelVos);
            }
        }
//        if (StrUtil.isNotBlank(mallMember.getTradePassword())) {
//            mallMemberVo.setHasTradePwd(1);
//        }
//
//        MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(id);
//        if (payment != null) {
//            mallMemberVo.setHasPayment(1);
//        }
//
//        MemberCollectionListDto memberCollectionListDto = new MemberCollectionListDto();
//        memberCollectionListDto.setPageNow(1);
//        memberCollectionListDto.setPageSize(10);
//        List<CollectionListVo> collectionList = mallMemberCollectionService.findMemberCollectionList(memberCollectionListDto);
//        mallMemberVo.setCollectionCnt(CollUtil.isNotEmpty(collectionList) ? collectionList.size() : 0);
//
//        MemberFootprintListDto memberFootprintListDto = new MemberFootprintListDto();
//        memberFootprintListDto.setPageNow(1);
//        memberFootprintListDto.setPageSize(10);
//        List<FootprintListVo> footprintList = mallMemberFootprintService.findMemberFootprintList(memberFootprintListDto);
//        mallMemberVo.setFootprintCnt(CollUtil.isNotEmpty(footprintList) ? footprintList.size() : 0);
//
//        List<MallMember> mallMembers = this.baseMapper.selectByRefererId(mallMember.getInviteId());
//        mallMemberVo.setChildCnt(CollUtil.isNotEmpty(mallMembers) ? mallMembers.size() : 0);
//
//        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
//
//        MallVipConfig mallVipConfig = mallVipConfigMapper.selectVipConfigByCode(mallMember.getLevel());
//
//        mallMemberVo.setVipInfo(mallVipConfig);
//        mallMemberVo.setBalance(wallet.getBalance());
//        mallMemberVo.setScore(wallet.getScore());
//        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
////        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
//
//        List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList(
//                new LambdaQueryWrapper<HappyMemberLabelRecord>()
//                        .eq(HappyMemberLabelRecord::getMemberId, id)
//                        .orderByDesc(HappyMemberLabelRecord::getId)
//                .last("limit 5")
//        );
//        if(CollUtil.isNotEmpty(happyMemberLabelRecords)){
//            Set<Long> collect = happyMemberLabelRecords.stream().map(HappyMemberLabelRecord::getLabelId).collect(Collectors.toSet());
//            List<HappyMemberLabel> happyMemberLabels = happyMemberLabelMapper.selectList(
//                    new LambdaQueryWrapper<HappyMemberLabel>()
//                            .select(HappyMemberLabel::getIconPng,  HappyMemberLabel::getName)
//                            .in(HappyMemberLabel::getId, collect)
//            );
//            if(CollUtil.isNotEmpty(happyMemberLabels)){
//                ArrayList<ApiLabelInfoVo> apiMemberLabelVos = new ArrayList<>();
//                for (HappyMemberLabel happyMemberLabel : happyMemberLabels) {
//                    ApiLabelInfoVo apiLabelInfoVo = new ApiLabelInfoVo();
//                    apiLabelInfoVo.setIconPng(happyMemberLabel.getIconPng());
//                    apiLabelInfoVo.setName(happyMemberLabel.getName());
//                    apiMemberLabelVos.add(apiLabelInfoVo);
//                }
//                mallMemberVo.setLabelList(apiMemberLabelVos);
//            }
//        }
        return new FebsResponse().success().data(mallMemberVo);
    }
@@ -728,9 +765,29 @@
                    }
                    this.baseMapper.insert(mallMember);
                    AiMember aiMember = new AiMember();
                    aiMember.setId(UUID.getSimpleUUIDString());
                    if (StrUtil.isNotEmpty(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);
                    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);
@@ -796,6 +853,7 @@
    }
    @Override
    @Transactional
    public FebsResponse xcxSaveInfo(ApiXcxSaveInfoDto apiXcxSaveInfoDto) {
        log.info("name={},phone={},avatar={},sex={}",
                apiXcxSaveInfoDto.getNickName(),apiXcxSaveInfoDto.getPhone(),apiXcxSaveInfoDto.getAvatarUrl(),apiXcxSaveInfoDto.getGender());
@@ -822,14 +880,50 @@
            mallMember.setBirthday(apiXcxSaveInfoDto.getBirthday());
        }
        List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
        if (StrUtil.isBlank(mallMember.getLevel()) && CollUtil.isNotEmpty(configs)) {
            MallVipConfig mallVipConfig = configs.get(0);
            mallMember.setLevel(mallVipConfig.getCode());
//        List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
//        if (StrUtil.isBlank(mallMember.getLevel()) && CollUtil.isNotEmpty(configs)) {
//            MallVipConfig mallVipConfig = configs.get(0);
//            mallMember.setLevel(mallVipConfig.getCode());
//        }
        if(ObjectUtil.isNotEmpty(apiXcxSaveInfoDto.getGender())){
            mallMember.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男");
        }
        mallMember.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男");
        String memberUuid = mallMember.getMemberUuid();
        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();
                AiCompanyMemberApply aiCompanyMemberApply = new AiCompanyMemberApply();
                aiCompanyMemberApply.setMemberId(memberUuid);
                aiCompanyMemberApply.setCompanyCode(aiCompany.getCode());
                aiCompanyMemberApply.setCompanyName(aiCompany.getName());
                aiCompanyMemberApply.setState(0);
                aiCompanyMemberApply.setCreatedTime(new Date());
                aiCompanyMemberApplyMapper.insert(aiCompanyMemberApply);
            }
        }
//        mallMember.setCompanyId(companyId);
        this.baseMapper.updateById(mallMember);
//        AiMember aiMember = aiMemberService.getById(memberUuid);
//        if (ObjectUtil.isNotEmpty(aiMember) && StrUtil.isNotEmpty(mallMember.getCompanyId())){
//            aiMemberService.update(null,
//                    Wrappers.lambdaUpdate(AiMember.class)
//                    .set(AiMember::getCompanyId, mallMember.getCompanyId())
//                    .eq(AiMember::getId, aiMember.getId())
//                    );
//        }
//        //完善信息赠送新人礼
//        if (StrUtil.isNotBlank(mallMember.getPhone()) && mallMember.getNewGift() == 0) {
@@ -2058,6 +2152,13 @@
        Long labelId = dto.getLabelId();
        Long insureMemberId = dto.getMemberId();
        List<HappyMemberLabelRecord> happyMemberLabelRecords1 = happyMemberLabelRecordMapper.selectList(Wrappers.lambdaQuery(HappyMemberLabelRecord.class)
                .eq(HappyMemberLabelRecord::getMemberId, insureMemberId)
        );
        if(CollUtil.isNotEmpty(happyMemberLabelRecords1)){
            throw new FebsException("该用户不能重复加入");
        }
        HappyMemberLabel happyMemberLabel = happyMemberLabelMapper.selectById(labelId);
        if(ObjectUtil.isEmpty(happyMemberLabel)){
            throw new FebsException("会员标签不存在");