Administrator
2025-05-21 47d361e7b318ca3d5ef7abfb9544305a5a7ba980
refactor(mall): 重构小程序登录优惠卷赠送逻辑

- 移除自动登录成功后赠送优惠卷的逻辑
- 在注册新用户时,增加邀请码赠送优惠卷的功能
- 优化了优惠卷领取的判断条件,避免重复领取
1 files modified
34 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 34 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -701,6 +701,33 @@
                    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);
                                }
                            }
                        }
                    }
                } else {
                    if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) {
                        throw new FebsException("账号已停用");
@@ -726,13 +753,6 @@
            authInfo.put("appid", xcxProperties.getXcxAppid());
            authInfo.put("member", mallMember);
            authInfo.put("rasToken", generateAsaToken(token));
            //分销员的邀请码赠送优惠卷
            if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
                GetCouponDto getCouponDto = new GetCouponDto();
                getCouponDto.setInviteId(apiXcxLoginDto.getInviteId());
                scanCoupon(getCouponDto);
            }
            febsResponse.success().data(authInfo);
        } else {
            return febsResponse.fail().message("自动登录失败");