From 9b51a95fa8bc9b3a86108c6900e17fc55f8db467 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 19 May 2025 17:02:07 +0800 Subject: [PATCH] refactor(vip): 优化积分和返佣计算逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 41 insertions(+), 5 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..7761620 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 @@ -275,12 +275,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 +655,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 +700,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 +776,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 +932,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,13 +1584,31 @@ @Override public FebsResponse newGiftEvent() { + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + + ApiMemberNewGiftSettingVo apiMemberNewGiftSettingVo = new ApiMemberNewGiftSettingVo(); + + MallMember mallMember = this.baseMapper.selectById(memberId); + Date lastLoginTime = mallMember.getLastLoginTime(); + if(lastLoginTime == null){ + apiMemberNewGiftSettingVo.setOpenState(1); + } + if(lastLoginTime != null){ + Date now = new Date(); + long between = DateUtil.between(lastLoginTime, now, DateUnit.DAY); + if(between > 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()); @@ -1587,6 +1621,8 @@ apiMemberNewGiftSettingVo.setCouponName(coupons.get(0).getName()); } + this.baseMapper.updateLastLoginTime(memberId,new Date()); + return new FebsResponse().success().data(apiMemberNewGiftSettingVo); } -- Gitblit v1.9.1