From eb5d7885fa9e4bd20c0827eec9b4cdd48c47b509 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 07 一月 2025 09:11:20 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java |  167 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 146 insertions(+), 21 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 c0480f9..c584e72 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
@@ -3,18 +3,13 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.account.api.model.AppUserShop;
-import com.ruoyi.account.api.model.UserChangeLog;
-import com.ruoyi.account.api.model.UserPoint;
+import com.ruoyi.account.api.model.*;
 import com.ruoyi.account.mapper.AppUserMapper;
-import com.ruoyi.account.api.model.AppUser;
-import com.ruoyi.account.service.AppUserService;
-import com.ruoyi.account.service.AppUserShopService;
-import com.ruoyi.account.service.UserChangeLogService;
-import com.ruoyi.account.service.UserPointService;
+import com.ruoyi.account.service.*;
 import com.ruoyi.account.util.SMSUtil;
 import com.ruoyi.account.util.tencentMap.TencentMapUtil;
 import com.ruoyi.account.util.weChat.EnvVersion;
@@ -25,14 +20,8 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.service.TokenService;
-import com.ruoyi.other.api.domain.PointSetting;
-import com.ruoyi.other.api.domain.Region;
-import com.ruoyi.other.api.domain.Shop;
-import com.ruoyi.other.api.domain.VipSetting;
-import com.ruoyi.other.api.feignClient.PointSettingClient;
-import com.ruoyi.other.api.feignClient.RegionClient;
-import com.ruoyi.other.api.feignClient.ShopClient;
-import com.ruoyi.other.api.feignClient.VipSettingClient;
+import com.ruoyi.other.api.domain.*;
+import com.ruoyi.other.api.feignClient.*;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
 import com.ruoyi.system.api.model.LoginUser;
@@ -105,6 +94,12 @@
 	
 	@Resource
 	private RegionClient regionClient;
+
+	@Resource
+	private CouponInfoClient couponInfoClient;
+
+	@Resource
+	private UserCouponService userCouponService;
 
 
 	/**
@@ -330,6 +325,7 @@
 				}
 				appUser.setLavePoint(regisPoint);
 				appUser.setAvailablePoint(regisPoint1);
+				appUser.setTotalAvailablePoint(regisPoint1);
 				if(null != pointSetting && 1 == pointSetting.getGetRegisPointGift()){
 					appUser.setTransferablePoint(regisPoint1);
 				}
@@ -366,6 +362,26 @@
 				userPoint.setAppUserId(appUser.getId());
 				userPointService.save(userPoint);
 			}
+			//获取优惠券
+			if(0 == old){
+				List<CouponInfo> list = couponInfoClient.getCouponInfoByPersonType(4).getData();
+				for (CouponInfo couponInfo : list) {
+					UserCoupon userCoupon = new UserCoupon();
+					userCoupon.setDelFlag(0);
+					userCoupon.setCreateTime(LocalDateTime.now());
+					userCoupon.setAppUserId(appUser.getId());
+					userCoupon.setCouponId(couponInfo.getId());
+					LocalDateTime start = couponInfo.getPeriodStartTime().atTime(0, 0, 0);
+					LocalDateTime end = couponInfo.getPeriodEndTime().atTime(23, 59, 59);
+					if(couponInfo.getPeriodType() == 2){
+						start = LocalDateTime.now();
+						end = start.plusDays(couponInfo.getPeriodDays());
+					}
+					userCoupon.setStartTime(start);
+					userCoupon.setEndTime(end);
+					userCouponService.save(userCoupon);
+				}
+			}
 			//变更等级
 			vipUpgrade(appUser.getId());
 
@@ -379,6 +395,7 @@
 				}
 				appUser2.setLavePoint(appUser2.getLavePoint() + newPoint);
 				appUser2.setAvailablePoint(appUser2.getAvailablePoint() + newPoint1);
+				appUser2.setTotalAvailablePoint(appUser2.getTotalAvailablePoint() + newPoint1);
 				if(null != pointSetting && 1 == pointSetting.getGetNewPointGift()){
 					appUser2.setTransferablePoint(appUser2.getTransferablePoint() + newPoint1);
 				}
@@ -402,6 +419,7 @@
 					AppUser appUser3 = this.getById(appUser2.getInviteUserId());
 					appUser3.setLavePoint(appUser3.getLavePoint() + newPoint);
 					appUser3.setAvailablePoint(appUser3.getAvailablePoint() + newPoint1);
+					appUser3.setTotalAvailablePoint(appUser3.getTotalAvailablePoint() + newPoint1);
 					if(null != pointSetting && 1 == pointSetting.getGetRegisPointGift()){
 						appUser3.setTransferablePoint(appUser3.getTransferablePoint() + newPoint1);
 					}
@@ -713,14 +731,14 @@
 		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 ADDDATE(create_time,INTERVAL " + vipCancelDay + " DAY) <= now()"));
 		for (AppUser appUser : list) {
-			appUser.setInviteUserId(null);
-			appUser.setShopId(null);
-			this.updateById(appUser);
+			UpdateWrapper<AppUser> updateWrapper = new UpdateWrapper<>();
+			updateWrapper.set("invite_user_id", null).set("shop_id", null).eq("id", appUser.getId());
+			this.update(updateWrapper);
 		}
 		
 		//可更换推广人
-		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 ADDDATE(create_time,INTERVAL " + vipChangeDay + " DAY) <= now()"));
+		list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getChangePromoter, 0)
+				.eq(AppUser::getStatus, 1).last(" and ADDDATE(ifnull(last_shop_time, create_time),INTERVAL " + vipChangeDay + " DAY) <= now()"));
 		for (AppUser appUser : list) {
 			appUser.setChangePromoter(1);
 			this.updateById(appUser);
@@ -755,6 +773,7 @@
 					appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint);
 					appUser.setLavePoint(appUser.getLavePoint() + hourPoint);
 					appUser.setAvailablePoint(appUser.getAvailablePoint() + hourPoint1);
+					appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + hourPoint1);
 					if(null != pointSetting && 1 == pointSetting.getWorkPointGift()){
 						appUser.setTransferablePoint(appUser.getTransferablePoint() + hourPoint1);
 					}
@@ -796,4 +815,110 @@
 
 		return appUserMapper.getAppuserPage1(new Page<>(pageNum, pageSize), appUser,objectId,userIds);
 	}
+	
+	
+	/**
+	 * 降级检测
+	 */
+	@Override
+	public void demotionDetection() {
+		//代理
+		List<AppUser> appUserList = new ArrayList<>();
+		VipSetting vipSetting = vipSettingClient.getVipSetting(5).getData();
+		List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 5).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
+		for (AppUser appUser : list) {
+			//消费积分
+			List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
+			int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
+			if(sum < vipSetting.getKeepBuyPoint()){
+				appUser.setIsDanger(1);
+				appUserList.add(appUser);
+				continue;
+			}
+			//返佣积分
+			list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
+			sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
+			if(sum < vipSetting.getKeepSharePoint()){
+				appUser.setIsDanger(1);
+				appUserList.add(appUser);
+				continue;
+			}
+			//门店业绩
+			list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
+			sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
+			if(sum < vipSetting.getKeepShopPoint()){
+				appUser.setIsDanger(1);
+				appUserList.add(appUser);
+			}
+		}
+		if(appUserList.size() > 0){
+			this.updateBatchById(appUserList);
+		}
+		
+		//总代
+		appUserList = new ArrayList<>();
+		vipSetting = vipSettingClient.getVipSetting(6).getData();
+		list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 6).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
+		for (AppUser appUser : list) {
+			//消费积分
+			List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
+			int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
+			if(sum < vipSetting.getKeepBuyPoint()){
+				appUser.setIsDanger(1);
+				appUserList.add(appUser);
+				continue;
+			}
+			//返佣积分
+			list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
+			sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
+			if(sum < vipSetting.getKeepSharePoint()){
+				appUser.setIsDanger(1);
+				appUserList.add(appUser);
+				continue;
+			}
+			//门店业绩
+			list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
+			sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
+			if(sum < vipSetting.getKeepShopPoint()){
+				appUser.setIsDanger(1);
+				appUserList.add(appUser);
+			}
+		}
+		if(appUserList.size() > 0){
+			this.updateBatchById(appUserList);
+		}
+		
+		//合伙人
+		appUserList = new ArrayList<>();
+		vipSetting = vipSettingClient.getVipSetting(7).getData();
+		list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 7).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
+		for (AppUser appUser : list) {
+			//消费积分
+			List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
+			int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
+			if(sum < vipSetting.getKeepBuyPoint()){
+				appUser.setIsDanger(1);
+				appUserList.add(appUser);
+				continue;
+			}
+			//返佣积分
+			list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
+			sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
+			if(sum < vipSetting.getKeepSharePoint()){
+				appUser.setIsDanger(1);
+				appUserList.add(appUser);
+				continue;
+			}
+			//门店业绩
+			list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
+			sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
+			if(sum < vipSetting.getKeepShopPoint()){
+				appUser.setIsDanger(1);
+				appUserList.add(appUser);
+			}
+		}
+		if(appUserList.size() > 0){
+			this.updateBatchById(appUserList);
+		}
+	}
 }

--
Gitblit v1.7.1