puzhibing
2025-01-07 eb5d7885fa9e4bd20c0827eec9b4cdd48c47b509
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;
   /**
@@ -366,6 +361,26 @@
            userPoint.setCreateTime(LocalDateTime.now());
            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());
@@ -716,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);