Administrator
2025-05-27 32d38feada2a84606b14016abcddf34ec8fe9e3e
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -14,6 +14,8 @@
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.*;
import cc.mrbird.febs.mall.vo.*;
import cc.mrbird.febs.mall.vo.memberLevel.ApiLabelInfoVo;
import cc.mrbird.febs.mall.vo.memberLevel.ApiMemberLabelVo;
import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
import cc.mrbird.febs.pay.service.IXcxPayService;
import cc.mrbird.febs.pay.util.MD5;
@@ -90,6 +92,8 @@
    private final MallDoctorMapper mallDoctorMapper;
    private final HappyMemberLevelMapper happyMemberLevelMapper;
    private final IApiMallMemberWalletService mallMemberWalletService;
    private final HappyMemberLabelRecordMapper happyMemberLabelRecordMapper;
    private final HappyMemberLabelMapper happyMemberLabelMapper;
    @Value("${spring.profiles.active}")
@@ -271,7 +275,7 @@
        HappyMemberLevel happyMemberLevel = happyMemberLevelMapper.selectOne(
                new LambdaQueryWrapper<HappyMemberLevel>()
                        .select(HappyMemberLevel::getName)
                        .select(HappyMemberLevel::getName,  HappyMemberLevel::getIconPng)
                        .eq(HappyMemberLevel::getCode, mallMember.getDirector())
        );
        if(happyMemberLevel != null){
@@ -323,6 +327,31 @@
        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);
    }
@@ -704,9 +733,29 @@
                    //分销员的邀请码赠送优惠卷
                    if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
                        GetCouponDto getCouponDto = new GetCouponDto();
                        getCouponDto.setInviteId(apiXcxLoginDto.getInviteId());
                        scanCoupon(getCouponDto);
                        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())) {
@@ -1611,8 +1660,6 @@
        if(apiMemberNewGiftSettingVo.getState() == 1 && apiMemberNewGiftSettingVo.getOpenState() == 1){
            mallMember.setNewGift(1);
            mallMember.setLastLoginTime(new Date());
            this.baseMapper.updateById(mallMember);
            BigDecimal prizeScore = new BigDecimal(StrUtil.isBlank(apiNewGiftSettingDto.getPrizeScore()) ? "0" : apiNewGiftSettingDto.getPrizeScore())
                    .setScale(0, RoundingMode.HALF_DOWN);
@@ -1664,11 +1711,48 @@
            }
        }
        mallMember.setLastLoginTime(new Date());
        this.baseMapper.updateById(mallMember);
//        this.baseMapper.updateLastLoginTime(memberId,new Date());
        return new FebsResponse().success().data(apiMemberNewGiftSettingVo);
    }
    @Override
    public FebsResponse getLabelList() {
        // 获取当前登录用户的ID
        Long memberId = LoginUserUtil.getLoginUser().getId();
        ArrayList<ApiMemberLabelVo> apiMemberLabelVos = new ArrayList<>();
        List<HappyMemberLabelRecord> happyMemberLabelRecords = happyMemberLabelRecordMapper.selectList(
                new LambdaQueryWrapper<HappyMemberLabelRecord>()
                        .eq(HappyMemberLabelRecord::getMemberId,memberId)
        );
        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)
                            .in(HappyMemberLabel::getId, collect)
            );
            if(CollUtil.isNotEmpty(happyMemberLabels)){
                for (HappyMemberLabel happyMemberLabel : happyMemberLabels) {
                    ApiMemberLabelVo apiMemberLabelVo = new ApiMemberLabelVo();
                    apiMemberLabelVo.setName(happyMemberLabel.getName());
                    apiMemberLabelVo.setContent(happyMemberLabel.getContent());
                    apiMemberLabelVo.setHeaderPng(happyMemberLabel.getHeaderPng());
                    apiMemberLabelVo.setIconPng(happyMemberLabel.getIconPng());
                    apiMemberLabelVos.add(apiMemberLabelVo);
                }
            }
        }
        return new FebsResponse().success().data(apiMemberLabelVos);
    }
//    public static void main(String[] args) {
//        Long userld = 16425L;
//        String shopAccount = "爱和美医疗";