From 210828d1a6947596fe00ab30fcd8725c6714dde4 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 02 一月 2025 21:04:16 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java |  152 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 109 insertions(+), 43 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 727cb36..c0480f9 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
@@ -312,7 +312,7 @@
 			appUser.setTotalDistributionAmount(BigDecimal.ZERO);
 			appUser.setBalance(BigDecimal.ZERO);
 			//新用户才能奖励积分,老用户注销重新注册没有
-			AppUser old = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, registerAccount.getPhone()).eq(AppUser::getDelFlag, 0));
+			long old = this.count(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("获取积分设置失败");
@@ -322,14 +322,17 @@
 				throw new RuntimeException("积分设置不存在");
 			}
 			Integer regisPoint = pointSetting.getRegisPoint();
-			if(null == old){
-				Integer regisPoint1 = regisPoint;
+			if(0 == old){
+				Integer regisPoint1 = 0;
 				//计算可用积分比例
 				if(1 == pointSetting.getGetRegisPointOpen()){
-					regisPoint1 = new BigDecimal(regisPoint1).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue();
+					regisPoint1 = new BigDecimal(regisPoint).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue();
 				}
 				appUser.setLavePoint(regisPoint);
 				appUser.setAvailablePoint(regisPoint1);
+				if(null != pointSetting && 1 == pointSetting.getGetRegisPointGift()){
+					appUser.setTransferablePoint(regisPoint1);
+				}
 				appUser.setTotalRegisterPoint(regisPoint);
 				appUser.setTotalPoint(regisPoint);
 			}
@@ -352,7 +355,7 @@
 			}
 			this.save(appUser);
 			//增加积分变动记录
-			if(null == old && regisPoint > 0){
+			if(0 == old && regisPoint > 0){
 				//构建积分流水记录
 				UserPoint userPoint = new UserPoint();
 				userPoint.setType(7);
@@ -363,15 +366,22 @@
 				userPoint.setAppUserId(appUser.getId());
 				userPointService.save(userPoint);
 			}
+			//变更等级
+			vipUpgrade(appUser.getId());
+
 			//拉新分佣
-			if(null != appUser2){
+			if(0 == old && null != appUser2){
+				pointSetting = pointSettingClient.getPointSetting(appUser2.getVipId()).getData();
 				Integer newPoint = pointSetting.getNewPoint();
-				Integer newPoint1 = newPoint;
-				if(1 == pointSetting.getGetRegisPointOpen()){
-					newPoint1 = new BigDecimal(newPoint1).multiply(pointSetting.getGetRegisPoint().divide(new BigDecimal(100))).intValue();
+				Integer newPoint1 = 0;
+				if(1 == pointSetting.getGetNewPointOpen()){
+					newPoint1 = new BigDecimal(newPoint).multiply(pointSetting.getGetNewPoint().divide(new BigDecimal(100))).intValue();
 				}
 				appUser2.setLavePoint(appUser2.getLavePoint() + newPoint);
 				appUser2.setAvailablePoint(appUser2.getAvailablePoint() + newPoint1);
+				if(null != pointSetting && 1 == pointSetting.getGetNewPointGift()){
+					appUser2.setTransferablePoint(appUser2.getTransferablePoint() + newPoint1);
+				}
 				appUser2.setTotalInvitePoint(appUser2.getTotalInvitePoint() + newPoint);
 				appUser2.setTotalPoint(appUser2.getTotalPoint() + newPoint);
 				this.updateById(appUser2);
@@ -385,13 +395,16 @@
 					userPoint.setAppUserId(appUser2.getId());
 					userPointService.save(userPoint);
 				}
-				//处理会员等级
+				//变更等级
 				vipUpgrade(appUser2.getId());
 				
 				if(null != appUser2.getInviteUserId()){
 					AppUser appUser3 = this.getById(appUser2.getInviteUserId());
 					appUser3.setLavePoint(appUser3.getLavePoint() + newPoint);
 					appUser3.setAvailablePoint(appUser3.getAvailablePoint() + newPoint1);
+					if(null != pointSetting && 1 == pointSetting.getGetRegisPointGift()){
+						appUser3.setTransferablePoint(appUser3.getTransferablePoint() + newPoint1);
+					}
 					appUser3.setTotalInvitePoint(appUser3.getTotalInvitePoint() + newPoint);
 					appUser3.setTotalPoint(appUser3.getTotalPoint() + newPoint);
 					this.updateById(appUser3);
@@ -405,7 +418,7 @@
 						userPoint.setAppUserId(appUser3.getId());
 						userPointService.save(userPoint);
 					}
-					//处理会员等级
+					//变更等级
 					vipUpgrade(appUser3.getId());
 				}
 			}
@@ -415,32 +428,6 @@
 			weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.TRIAL, filePath + fileName);
 			appUser.setQrCode(accessPath + fileName);
 			this.updateById(appUser);
-			
-			//查询当前注册的手机号是都和门店管理员手机号相同
-			Shop shop = shopClient.getShopByPhone(registerAccount.getPhone()).getData();
-			if(null != shop){
-				//添加门店用户关系数据
-				AppUserShop appUserShop = appUserShopService.getOne(new LambdaQueryWrapper<AppUserShop>().eq(AppUserShop::getAppUserId, appUser.getId()).eq(AppUserShop::getShopId, shop.getId()));
-				if(null == appUserShop){
-					appUserShop = new AppUserShop();
-					appUserShop.setShopId(shop.getId());
-					appUserShop.setAppUserId(appUser.getId());
-					appUserShopService.save(appUserShop);
-					//添加管理后台账号
-					SysUser user = new SysUser();
-					user.setDeptId(1L);
-					user.setUserName(appUser.getName());
-					user.setNickName(appUser.getName());
-					user.setPhonenumber(appUser.getPhone());
-					user.setAvatar(appUser.getAvatar());
-					user.setStatus("0");
-					user.setDelFlag("0");
-					user.setRoleType(2);
-					user.setObjectId(shop.getId());
-					user.setAppUserId(appUser.getId());
-					sysUserClient.saveShopUser(user);
-				}
-			}
 		}
 		LoginVo loginVo = new LoginVo();
 		loginVo.setSkipPage(1);
@@ -466,6 +453,37 @@
 		Integer vipId = appUser.getVipId();
 		//钻石会员
 		VipSetting vipSetting3 = vipSettingClient.getVipSetting(3).getData();
+		//消费积分满足升级
+		if(1 == vipSetting3.getVipLevelUpShopRole() && appUser.getShopPoint() >= vipSetting3.getVipLevelUpShop() && appUser.getVipId() < 3){
+			appUser.setVipId(3);
+			this.updateById(appUser);
+			//添加等级变化记录
+			UserChangeLog userChangeLog = new UserChangeLog();
+			userChangeLog.setDelFlag(0);
+			userChangeLog.setCreateTime(LocalDateTime.now());
+			userChangeLog.setAppUserId(appUser.getId());
+			userChangeLog.setBeforeVipId(vipId);
+			userChangeLog.setAfterVipId(appUser.getVipId());
+			userChangeLog.setChangeType(1);
+			userChangeLogService.save(userChangeLog);
+			return;
+		}
+		//返佣积分满足升级
+		if(1 == vipSetting3.getVipLevelUpShareRole() && appUser.getSharePoint() >= vipSetting3.getVipLevelUpShare() && appUser.getVipId() < 3){
+			appUser.setVipId(3);
+			this.updateById(appUser);
+			//添加等级变化记录
+			UserChangeLog userChangeLog = new UserChangeLog();
+			userChangeLog.setDelFlag(0);
+			userChangeLog.setCreateTime(LocalDateTime.now());
+			userChangeLog.setAppUserId(appUser.getId());
+			userChangeLog.setBeforeVipId(vipId);
+			userChangeLog.setAfterVipId(appUser.getVipId());
+			userChangeLog.setChangeType(1);
+			userChangeLogService.save(userChangeLog);
+			return;
+		}
+		//下级人数满足升级
 		Integer vipLevelUpNumRole = vipSetting3.getVipLevelUpNumRole();
 		Integer vipDirectNum = vipSetting3.getVipDirectNum();
 		Integer vipTeamNum = vipSetting3.getVipTeamNum();
@@ -490,8 +508,40 @@
 				return;
 			}
 		}
+
 		//黄金会员
 		VipSetting vipSetting2 = vipSettingClient.getVipSetting(2).getData();
+		//消费积分满足升级
+		if(1 == vipSetting2.getVipLevelUpShopRole() && appUser.getShopPoint() >= vipSetting2.getVipLevelUpShop() && appUser.getVipId() < 2){
+			appUser.setVipId(2);
+			this.updateById(appUser);
+			//添加等级变化记录
+			UserChangeLog userChangeLog = new UserChangeLog();
+			userChangeLog.setDelFlag(0);
+			userChangeLog.setCreateTime(LocalDateTime.now());
+			userChangeLog.setAppUserId(appUser.getId());
+			userChangeLog.setBeforeVipId(vipId);
+			userChangeLog.setAfterVipId(appUser.getVipId());
+			userChangeLog.setChangeType(1);
+			userChangeLogService.save(userChangeLog);
+			return;
+		}
+		//返佣积分满足升级
+		if(1 == vipSetting2.getVipLevelUpShareRole() && appUser.getSharePoint() >= vipSetting2.getVipLevelUpShare() && appUser.getVipId() < 2){
+			appUser.setVipId(2);
+			this.updateById(appUser);
+			//添加等级变化记录
+			UserChangeLog userChangeLog = new UserChangeLog();
+			userChangeLog.setDelFlag(0);
+			userChangeLog.setCreateTime(LocalDateTime.now());
+			userChangeLog.setAppUserId(appUser.getId());
+			userChangeLog.setBeforeVipId(vipId);
+			userChangeLog.setAfterVipId(appUser.getVipId());
+			userChangeLog.setChangeType(1);
+			userChangeLogService.save(userChangeLog);
+			return;
+		}
+		//下级人数满足升级
 		vipLevelUpNumRole = vipSetting2.getVipLevelUpNumRole();
 		vipDirectNum = vipSetting2.getVipDirectNum();
 		vipTeamNum = vipSetting2.getVipTeamNum();
@@ -513,6 +563,7 @@
 				userChangeLog.setAfterVipId(appUser.getVipId());
 				userChangeLog.setChangeType(1);
 				userChangeLogService.save(userChangeLog);
+				return;
 			}
 		}
 	}
@@ -563,8 +614,18 @@
 			if(collect.size() == 0){
 				return result;
 			}else{
-				result.addAll(collect);
-				List<Long> collect1 = collect.stream().map(AppUser::getId).collect(Collectors.toList());
+				List<Long> collect2 = result.stream().map(AppUser::getId).collect(Collectors.toList());
+				List<AppUser> list1 = new ArrayList<>();
+				for (AppUser appUser : collect) {
+					if(!collect2.contains(appUser.getId())){
+						list1.add(appUser);
+					}
+				}
+				if(list1.size() == 0){
+					return result;
+				}
+				result.addAll(list1);
+				List<Long> collect1 = list1.stream().map(AppUser::getId).collect(Collectors.toList());
 				idss.addAll(collect1);
 			}
 		}
@@ -650,7 +711,7 @@
 		Integer vipCancelDay = vipSetting.getVipCancelDay();
 		Integer vipChangeDay = vipSetting.getVipChangeDay();
 		List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 1).eq(AppUser::getDelFlag, 0).isNotNull(AppUser::getInviteUserId)
-				.eq(AppUser::getStatus, 1).last(" and (UNIX_TIMESTAMP(create_time) + " + vipCancelDay + ") <= UNIX_TIMESTAMP()"));
+				.eq(AppUser::getStatus, 1).last(" and ADDDATE(create_time,INTERVAL " + vipCancelDay + " DAY) <= now()"));
 		for (AppUser appUser : list) {
 			appUser.setInviteUserId(null);
 			appUser.setShopId(null);
@@ -659,7 +720,7 @@
 		
 		//可更换推广人
 		list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getChangePromoter, 0)
-				.isNull(AppUser::getLastShopTime).eq(AppUser::getStatus, 1).last(" and (UNIX_TIMESTAMP(create_time) + " + vipCancelDay + ") <= UNIX_TIMESTAMP()"));
+				.isNull(AppUser::getLastShopTime).eq(AppUser::getStatus, 1).last(" and ADDDATE(create_time,INTERVAL " + vipChangeDay + " DAY) <= now()"));
 		for (AppUser appUser : list) {
 			appUser.setChangePromoter(1);
 			this.updateById(appUser);
@@ -686,14 +747,17 @@
 				PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
 				if(null != pointSetting){
 					int hourPoint = pointSetting.getHourPoint().intValue();
-					int hourPoint1 = hourPoint;
+					int hourPoint1 = 0;
 					if(1 == pointSetting.getWorkPointOpen()){
-						hourPoint1 = new BigDecimal(hourPoint1).multiply(pointSetting.getWorkPoint().divide(new BigDecimal(100))).intValue();
+						hourPoint1 = new BigDecimal(hourPoint).multiply(pointSetting.getWorkPoint().divide(new BigDecimal(100))).intValue();
 					}
 					Integer lavePoint = appUser.getLavePoint();
 					appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint);
 					appUser.setLavePoint(appUser.getLavePoint() + hourPoint);
 					appUser.setAvailablePoint(appUser.getAvailablePoint() + hourPoint1);
+					if(null != pointSetting && 1 == pointSetting.getWorkPointGift()){
+						appUser.setTransferablePoint(appUser.getTransferablePoint() + hourPoint1);
+					}
 					appUser.setTotalHourPoint(appUser.getTotalHourPoint() + hourPoint);
 					this.updateById(appUser);
 					//添加积分变动记录
@@ -705,6 +769,8 @@
 					userPoint.setCreateTime(LocalDateTime.now());
 					userPoint.setAppUserId(appUser.getId());
 					userPointService.save(userPoint);
+					//变更等级
+					vipUpgrade(appUser.getId());
 				}
 			}else{
 				redisService.setCacheObject("ONLINE_" + userid, duration, 15L, TimeUnit.MINUTES);

--
Gitblit v1.7.1