From 2c99eb1b27b9fbad752aaeab8783399af32514e6 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 15 一月 2025 21:00:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 95 insertions(+), 4 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 384a27e..7567718 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
@@ -10,6 +10,7 @@
import com.ruoyi.account.api.model.*;
import com.ruoyi.account.mapper.AppUserMapper;
import com.ruoyi.account.service.*;
+import com.ruoyi.account.util.GeodesyUtil;
import com.ruoyi.account.util.SMSUtil;
import com.ruoyi.account.util.payment.PaymentUtil;
import com.ruoyi.account.util.payment.model.CloseOrderResult;
@@ -21,6 +22,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.redis.annotation.DistributedLock;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.*;
@@ -177,7 +179,8 @@
}
//查询用户是否注册,没有注册则跳转到注册页面
- AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, mobileLogin.getPhone()).ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0));
+ AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, mobileLogin.getPhone())
+ .ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0));
if(null == appUser){
LoginVo loginVo = new LoginVo();
loginVo.setSkipPage(2);
@@ -198,8 +201,7 @@
loginUser.setUsername(appUser.getName());
Map<String, Object> tokenApplet = tokenService.createTokenApplet(loginUser);
loginVo.setToken(tokenApplet.get("access_token").toString());
- loginVo.setFailureTime(Long.valueOf(tokenApplet.get("expires_in").toString()));
-
+ loginVo.setFailureTime(Long.valueOf(tokenApplet.get("expires_in").toString()));
appUser.setLastLoginTime(LocalDateTime.now());
this.updateById(appUser);
return R.ok(loginVo);
@@ -606,7 +608,85 @@
}
}
-
+ /**
+ * 处理会员降级
+ * @param appUserId
+ */
+ @Override
+ public void vipDemotion(Long appUserId) {
+ AppUser appUser = this.getById(appUserId);
+ Integer vipId = appUser.getVipId();
+ //黄金会员
+ 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(0);
+ 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(0);
+ userChangeLogService.save(userChangeLog);
+ return;
+ }
+ //下级人数满足升级
+ Integer vipLevelUpNumRole = vipSetting2.getVipLevelUpNumRole();
+ Integer vipDirectNum = vipSetting2.getVipDirectNum();
+ Integer vipTeamNum = vipSetting2.getVipTeamNum();
+ if(1 == vipLevelUpNumRole && appUser.getVipId() > 2){
+ //查询直推用户达到X人或者团队人数达到X人后,可升级
+ //直推用户数
+ long count = this.count(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1).eq(AppUser::getInviteUserId, appUserId));
+ //团队用户数
+ List<AppUser> subordinate = getSubordinate(appUserId);
+ if(vipDirectNum <= count || vipTeamNum <= subordinate.size()){
+ 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(0);
+ userChangeLogService.save(userChangeLog);
+ return;
+ }
+ }
+ if(appUser.getVipId() > 2){
+ appUser.setVipId(1);
+ 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(0);
+ userChangeLogService.save(userChangeLog);
+ }
+ }
/**
* 递归查询顶级推广人
@@ -713,7 +793,18 @@
nearbyReferrerVo.setVip("合伙人");
break;
}
+
+ String latitude = nearbyReferrerVo.getLatitude();
+ String longitude = nearbyReferrerVo.getLongitude();
+ Double wgs84 = GeodesyUtil.getDistance(longitude + "," + latitude, nearbyReferrer.getLongitude() + "," + nearbyReferrer.getLatitude()).get("WGS84");
+ nearbyReferrerVo.setDistance(wgs84);
}
+ list.sort(new Comparator<NearbyReferrerVo>() {
+ @Override
+ public int compare(NearbyReferrerVo o1, NearbyReferrerVo o2) {
+ return o1.getDistance().compareTo(o2.getDistance());
+ }
+ });
return pageInfo.setRecords(list);
}
return null;
--
Gitblit v1.7.1