From 3347f782016986a32ad70b805fcca8ea8247f001 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 27 十二月 2024 11:25:54 +0800 Subject: [PATCH] 修改分佣逻辑 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 88 ++++++++++++++++++++++++-------------------- 1 files changed, 48 insertions(+), 40 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java index 95e4182..d62eefe 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java @@ -311,6 +311,8 @@ appUser.setTotalRedPacketAmount(BigDecimal.ZERO); appUser.setTotalDistributionAmount(BigDecimal.ZERO); appUser.setBalance(BigDecimal.ZERO); + //新用户才能奖励积分,老用户注销重新注册没有 + AppUser old = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, registerAccount.getPhone()).eq(AppUser::getDelFlag, 0)); R<PointSetting> pointSettingR = pointSettingClient.getPointSetting(1); if (R.isError(pointSettingR)){ throw new RuntimeException("获取积分设置失败"); @@ -319,14 +321,18 @@ if (pointSetting == null){ throw new RuntimeException("积分设置不存在"); } - Integer getRegisPoint = pointSetting.getGetRegisPoint(); - Integer getRegisPoint1 = getRegisPoint; - //计算可用积分比例 - if(1 == pointSetting.getGetRegisPointOpen()){ - getRegisPoint1 = getRegisPoint1 * (100 - pointSetting.getGetRegisPoint()); + Integer regisPoint = pointSetting.getRegisPoint(); + if(null == old){ + Integer regisPoint1 = regisPoint; + //计算可用积分比例 + if(1 == pointSetting.getGetRegisPointOpen()){ + regisPoint1 = new BigDecimal(regisPoint1).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue(); + } + appUser.setLavePoint(regisPoint); + appUser.setAvailablePoint(regisPoint1); + appUser.setTotalRegisterPoint(regisPoint); + appUser.setTotalPoint(regisPoint); } - appUser.setLavePoint(getRegisPoint1); - appUser.setTotalPoint(getRegisPoint); //根据平台的配置未达标,则标注为可修改推广人 appUser.setChangePromoter(0); appUser.setLongitude(registerAccount.getLongitude()); @@ -346,26 +352,48 @@ } this.save(appUser); //增加积分变动记录 - if(getRegisPoint1 > 0){ + if(null == old && regisPoint > 0){ //构建积分流水记录 UserPoint userPoint = new UserPoint(); - userPoint.setType(10); + userPoint.setType(7); userPoint.setHistoricalPoint(0); - userPoint.setVariablePoint(getRegisPoint1); + userPoint.setVariablePoint(regisPoint); userPoint.setBalance(appUser.getLavePoint()); userPoint.setCreateTime(LocalDateTime.now()); userPoint.setAppUserId(appUser.getId()); userPointService.save(userPoint); } + //拉新分佣 + if(null != appUser2){ + Integer newPoint = pointSetting.getNewPoint(); + Integer newPoint1 = newPoint; + if(1 == pointSetting.getGetRegisPointOpen()){ + newPoint1 = new BigDecimal(newPoint1).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue(); + } + appUser2.setLavePoint(appUser2.getLavePoint() + newPoint); + appUser2.setAvailablePoint(appUser2.getAvailablePoint() + newPoint1); + appUser2.setTotalInvitePoint(appUser2.getTotalInvitePoint() + newPoint); + appUser2.setTotalPoint(appUser2.getTotalPoint() + newPoint); + this.updateById(appUser2); + if(newPoint > 0){ + UserPoint userPoint = new UserPoint(); + userPoint.setType(3); + userPoint.setHistoricalPoint(appUser2.getLavePoint() - newPoint); + userPoint.setVariablePoint(newPoint); + userPoint.setBalance(appUser2.getLavePoint()); + userPoint.setCreateTime(LocalDateTime.now()); + userPoint.setAppUserId(appUser2.getId()); + userPointService.save(userPoint); + } + //处理会员等级 + vipUpgrade(appUser2.getId()); + } + //获取微信推广二维码 String fileName = UUID.randomUUID() + ".jpg"; - weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.DEVELOP, filePath + fileName); + weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.TRIAL, filePath + fileName); appUser.setQrCode(accessPath + fileName); this.updateById(appUser); - //直推用户检查是否满足升级条件 - if(null != appUser.getInviteUserId()){ - vipUpgrade(appUser.getInviteUserId()); - } //查询当前注册的手机号是都和门店管理员手机号相同 Shop shop = shopClient.getShopByPhone(registerAccount.getPhone()).getData(); @@ -413,28 +441,6 @@ */ public void vipUpgrade(Long id){ AppUser appUser = this.getById(id); - Integer lavePoint = appUser.getLavePoint(); - //计算积分 - PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData(); - Integer newPoint = pointSetting.getNewPoint(); - Integer newPoint1 = newPoint; - if(null != pointSetting && 1 == pointSetting.getGetNewPointOpen()){ - newPoint1 = newPoint1 * (100 - pointSetting.getGetNewPoint()); - } - appUser.setLavePoint(appUser.getLavePoint() + newPoint1); - appUser.setTotalPoint(appUser.getTotalPoint() + newPoint); - //记录积分变动 - if(newPoint1 > 0){ - //构建积分流水记录 - UserPoint userPoint = new UserPoint(); - userPoint.setType(3); - userPoint.setHistoricalPoint(lavePoint); - userPoint.setVariablePoint(newPoint1); - userPoint.setBalance(appUser.getLavePoint()); - userPoint.setCreateTime(LocalDateTime.now()); - userPoint.setAppUserId(appUser.getId()); - userPointService.save(userPoint); - } Integer vipId = appUser.getVipId(); //钻石会员 VipSetting vipSetting3 = vipSettingClient.getVipSetting(3).getData(); @@ -660,15 +666,17 @@ int hourPoint = pointSetting.getHourPoint().intValue(); int hourPoint1 = hourPoint; if(1 == pointSetting.getWorkPointOpen()){ - hourPoint1 = hourPoint1 * (100 - pointSetting.getWorkPoint()); + hourPoint1 = new BigDecimal(hourPoint1).multiply(pointSetting.getWorkPoint().divide(new BigDecimal(100))).intValue(); } Integer lavePoint = appUser.getLavePoint(); appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint); - appUser.setLavePoint(appUser.getLavePoint() + hourPoint1); + appUser.setLavePoint(appUser.getLavePoint() + hourPoint); + appUser.setAvailablePoint(appUser.getAvailablePoint() + hourPoint1); + appUser.setTotalHourPoint(appUser.getTotalHourPoint() + hourPoint); this.updateById(appUser); //添加积分变动记录 UserPoint userPoint = new UserPoint(); - userPoint.setType(9); + userPoint.setType(6); userPoint.setHistoricalPoint(lavePoint); userPoint.setVariablePoint(hourPoint); userPoint.setBalance(appUser.getLavePoint()); -- Gitblit v1.7.1