From c99b27b5d7f63b7c9ebe0ed682a82d28c238453a Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 20 May 2025 11:49:42 +0800 Subject: [PATCH] feat(mall): 新增新人礼功能 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 99 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 87 insertions(+), 12 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 879af4e..84e81b0 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 @@ -89,6 +89,7 @@ private final MallStoreMemberMapper mallStoreMemberMapper; private final MallDoctorMapper mallDoctorMapper; private final HappyMemberLevelMapper happyMemberLevelMapper; + private final IApiMallMemberWalletService mallMemberWalletService; @Value("${spring.profiles.active}") @@ -275,12 +276,18 @@ ); 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) { mallMemberVo.setReferrerName(referMember.getName()); } + } + if(mallMember.getStoreMaster() == 0){ + mallMemberVo.setIsTeamLeader(2); + }else{ + mallMemberVo.setIsTeamLeader(1); } if (StrUtil.isNotBlank(mallMember.getTradePassword())) { @@ -649,6 +656,7 @@ mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL); mallMember.setOpenId(openId); mallMember.setSessionKey(sessionKey); + mallMember.setTradePassword(SecureUtil.md5("123456")); if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) { MallMember member = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId()); @@ -693,6 +701,13 @@ wallet.setBalance(BigDecimal.ZERO); wallet.setMemberId(mallMember.getId()); mallMemberWalletMapper.insert(wallet); + + //分销员的邀请码赠送优惠卷 + if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) { + GetCouponDto getCouponDto = new GetCouponDto(); + getCouponDto.setInviteId(apiXcxLoginDto.getInviteId()); + scanCoupon(getCouponDto); + } } else { if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) { throw new FebsException("账号已停用"); @@ -762,7 +777,7 @@ this.baseMapper.updateById(mallMember); //完善信息赠送新人礼 - if (StrUtil.isBlank(mallMember.getLevel())) { + if (StrUtil.isNotBlank(mallMember.getPhone())) { DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( CommonDictionaryEnum.NEW_GIFT_SETTING.getType(), CommonDictionaryEnum.NEW_GIFT_SETTING.getCode() @@ -918,10 +933,12 @@ mallMoneyFlowService.addMoneyFlow( memberId, amount, - MoneyFlowTypeEnum.RECHARGE.getValue(), + ScoreFlowTypeEnum.RECHARGE_ING.getValue(), rechargeNo, FlowTypeEnum.BALANCE.getValue(), - "余额充值",1); + StrUtil.format(ScoreFlowTypeEnum.RECHARGE_ING.getDesc(),amount), + 1 + ); String wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData); String payResultStr = brandWCPayRequestData.getPrepay_id(); @@ -1568,25 +1585,83 @@ @Override public FebsResponse newGiftEvent() { + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + + ApiMemberNewGiftSettingVo apiMemberNewGiftSettingVo = new ApiMemberNewGiftSettingVo(); + + MallMember mallMember = this.baseMapper.selectById(memberId); + + Integer newGift = mallMember.getNewGift(); + if(newGift == 0){ + apiMemberNewGiftSettingVo.setOpenState(1); + }else{ + apiMemberNewGiftSettingVo.setOpenState(0); + } + DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( CommonDictionaryEnum.NEW_GIFT_SETTING.getType(), CommonDictionaryEnum.NEW_GIFT_SETTING.getCode() ); ApiNewGiftSettingDto apiNewGiftSettingDto = JSONObject.parseObject(dic.getValue(), ApiNewGiftSettingDto.class); - - ApiMemberNewGiftSettingVo apiMemberNewGiftSettingVo = new ApiMemberNewGiftSettingVo(); apiMemberNewGiftSettingVo.setState(apiNewGiftSettingDto.getState()); - apiMemberNewGiftSettingVo.setPrizeScore(apiNewGiftSettingDto.getPrizeScore()); + if(apiMemberNewGiftSettingVo.getState() == 1 && apiMemberNewGiftSettingVo.getOpenState() == 1){ + mallMember.setNewGift(1); + mallMember.setLastLoginTime(new Date()); + this.baseMapper.updateById(mallMember); - LambdaQueryWrapper<MallGoodsCoupon> query = new LambdaQueryWrapper<>(); - query.eq(MallGoodsCoupon::getId, apiNewGiftSettingDto.getCouponId()) - .eq(MallGoodsCoupon::getState, 2); - List<MallGoodsCoupon> coupons = mallGoodsCouponMapper.selectList(query); - if(CollUtil.isNotEmpty(coupons)){ - apiMemberNewGiftSettingVo.setCouponName(coupons.get(0).getName()); + BigDecimal prizeScore = new BigDecimal(StrUtil.isBlank(apiNewGiftSettingDto.getPrizeScore()) ? "0" : apiNewGiftSettingDto.getPrizeScore()) + .setScale(0, RoundingMode.HALF_DOWN); + + if(prizeScore.compareTo(BigDecimal.ZERO) > 0){ + mallMoneyFlowService.addMoneyFlow( + memberId, + prizeScore, + ScoreFlowTypeEnum.NEW_GIFT_PRIZE_SCORE.getValue(), + MallUtils.getOrderNum(), + FlowTypeEnum.PRIZE_SCORE.getValue(), + StrUtil.format( ScoreFlowTypeEnum.NEW_GIFT_PRIZE_SCORE.getDesc(),prizeScore), + 2); + mallMemberWalletService.add(prizeScore,memberId , "prizeScore"); + + apiMemberNewGiftSettingVo.setPrizeScore(prizeScore); + } + + String couponUUID = IdUtil.simpleUUID(); + if(ObjectUtil.isNotEmpty(apiNewGiftSettingDto.getCouponId())){ + Long couponId = apiNewGiftSettingDto.getCouponId(); + MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId); + List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(memberId, couponId); + if(CollUtil.isEmpty(mallMemberCoupons)){ + //商品优惠卷如果绑定了,那么当前登陆者获取一张卷 + MallMemberCoupon mallMemberCoupon = new MallMemberCoupon(); + mallMemberCoupon.setCouponId(couponId); + mallMemberCoupon.setCouponName(mallGoodsCoupon.getName()); + mallMemberCoupon.setMemberId(memberId); + mallMemberCoupon.setCouponUuid(couponUUID); + mallMemberCoupon.setInviteId(mallMember.getInviteId()); + mallMemberCoupon.setState(1); + mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay())); + mallMemberCouponMapper.insert(mallMemberCoupon); + + mallMoneyFlowService.addMoneyFlow( + memberId, + BigDecimal.ONE, + ScoreFlowTypeEnum.NEW_GIFT_COUPON.getValue(), + MallUtils.getOrderNum(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format( ScoreFlowTypeEnum.NEW_GIFT_COUPON.getDesc(),mallGoodsCoupon.getName()), + 2); + + apiMemberNewGiftSettingVo.setCouponName(mallGoodsCoupon.getName()); + } + } + } +// this.baseMapper.updateLastLoginTime(memberId,new Date()); + return new FebsResponse().success().data(apiMemberNewGiftSettingVo); } -- Gitblit v1.9.1