Administrator
15 hours ago c3b9c74950118654a39e1ed8ef42a1c83abc3bb6
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -1,8 +1,11 @@
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;
@@ -109,6 +112,7 @@
    private final HappyMemberLabelMapper happyMemberLabelMapper;
    private final FebsConfigure febsConfigure;
    private final AiMemberService aiMemberService;
    private final AiCompanyMemberApplyMapper aiCompanyMemberApplyMapper;
    @Value("${spring.profiles.active}")
@@ -285,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) {
@@ -309,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);
    }
@@ -761,37 +789,37 @@
                    mallMember.setInviteId(inviteId);
                    mallMember.setName("新用户"+inviteId);
                    this.baseMapper.updateById(mallMember);
                    MallMemberWallet wallet = new MallMemberWallet();
                    wallet.setBalance(BigDecimal.ZERO);
                    wallet.setMemberId(mallMember.getId());
                    mallMemberWalletMapper.insert(wallet);
//                    MallMemberWallet wallet = new MallMemberWallet();
//                    wallet.setBalance(BigDecimal.ZERO);
//                    wallet.setMemberId(mallMember.getId());
//                    mallMemberWalletMapper.insert(wallet);
                    //分销员的邀请码赠送优惠卷
                    if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
                        String couponUUID = IdUtil.simpleUUID();
                        //通过邀请人信息,获取能领取的优惠卷信息
                        MallMember refMember = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId());
                        if(ObjectUtil.isNotEmpty(refMember)){
                            SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(refMember.getId());
                            if(ObjectUtil.isNotEmpty(salemanCoupon)){
                                Long couponId = salemanCoupon.getCouponId();
                                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(mallMember.getId(), couponId);
                                if(CollUtil.isEmpty(mallMemberCoupons)){
                                    //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
                                    MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
                                    MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
                                    mallMemberCoupon.setCouponId(couponId);
                                    mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
                                    mallMemberCoupon.setMemberId(mallMember.getId());
                                    mallMemberCoupon.setCouponUuid(couponUUID);
                                    mallMemberCoupon.setInviteId(refMember.getInviteId());
                                    mallMemberCoupon.setState(1);
                                    mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
                                    mallMemberCouponMapper.insert(mallMemberCoupon);
                                }
                            }
                        }
                    }
//                    if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
//                        String couponUUID = IdUtil.simpleUUID();
//                        //通过邀请人信息,获取能领取的优惠卷信息
//                        MallMember refMember = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId());
//                        if(ObjectUtil.isNotEmpty(refMember)){
//                            SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(refMember.getId());
//                            if(ObjectUtil.isNotEmpty(salemanCoupon)){
//                                Long couponId = salemanCoupon.getCouponId();
//                                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(mallMember.getId(), couponId);
//                                if(CollUtil.isEmpty(mallMemberCoupons)){
//                                    //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
//                                    MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
//                                    MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
//                                    mallMemberCoupon.setCouponId(couponId);
//                                    mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
//                                    mallMemberCoupon.setMemberId(mallMember.getId());
//                                    mallMemberCoupon.setCouponUuid(couponUUID);
//                                    mallMemberCoupon.setInviteId(refMember.getInviteId());
//                                    mallMemberCoupon.setState(1);
//                                    mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
//                                    mallMemberCouponMapper.insert(mallMemberCoupon);
//                                }
//                            }
//                        }
//                    }
                } else {
                    if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) {
                        throw new FebsException("账号已停用");
@@ -825,6 +853,7 @@
    }
    @Override
    @Transactional
    public FebsResponse xcxSaveInfo(ApiXcxSaveInfoDto apiXcxSaveInfoDto) {
        log.info("name={},phone={},avatar={},sex={}",
                apiXcxSaveInfoDto.getNickName(),apiXcxSaveInfoDto.getPhone(),apiXcxSaveInfoDto.getAvatarUrl(),apiXcxSaveInfoDto.getGender());
@@ -851,38 +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() ? "女" : "男");
        }
        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)){
                mallMember.setCompanyId(aiCompany.getId());
                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);
        String memberUuid = mallMember.getMemberUuid();
        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())
                    );
        }
//        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) {