luodangjia
2024-12-19 60f70f7409ec1ece8905e088fb43e0cb0258a70b
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -6,6 +6,7 @@
import com.ruoyi.account.api.model.UserCancellationLog;
import com.ruoyi.account.api.model.UserCoupon;
import com.ruoyi.account.api.model.UserSignRecord;
import com.ruoyi.account.mapper.AppUserMapper;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.UserCancellationLogService;
import com.ruoyi.account.service.UserCouponService;
@@ -34,6 +35,7 @@
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@@ -74,6 +76,8 @@
   private UserPointService userPointService;
   @Resource
   private VipSettingService vipSettingService;
   @Resource
   private AppUserMapper appUserMapper;
   @ResponseBody
@@ -420,6 +424,7 @@
   }
   @GetMapping("/danger/info")
   @ApiOperation(value = "用户列表-保级条件详情", tags = {"管理后台"})
   public R<DangerInfoDto> dangerinfo(Long id)
@@ -480,6 +485,52 @@
      appUserService.updateById(byId);
      return R.ok();
   }
   @GetMapping("/select")
   @ApiOperation(value = "用户列表-查询绑定人", tags = {"管理后台"})
   public R<AppUser> select(String phone)
   {
      AppUser byId = appUserService.lambdaQuery().eq(AppUser::getPhone,phone).one();
      if (byId==null){
         return R.fail("搜索失败,手机号错误。");
      }
      return R.ok(byId);
   }
   @GetMapping("/change/bind")
   @ApiOperation(value = "用户列表-更换绑定人", tags = {"管理后台"})
   public R<AppUser> select(Long id,Long inviteId)
   {
      AppUser byId = appUserService.getById(id);
      byId.setInviteUserId(inviteId);
      byId.setTopInviteId(getTop(inviteId));
      appUserService.updateById(byId);
      return R.ok();
   }
   @GetMapping("/change/shop")
   @ApiOperation(value = "用户列表-更换门店", tags = {"管理后台"})
   public R<AppUser> shop(Long id,Long shopId)
   {
      AppUser byId = appUserService.getById(id);
      byId.setShopId(shopId);
      appUserService.updateById(byId);
      return R.ok();
   }
   public  Long getTop(Long inviteId){
      AppUser byId = appUserService.getById(inviteId);
      if (byId!=null){
         return getTop(byId.getInviteUserId());
      }else {
         return inviteId;
      }
   }
   @Resource
   private ShopClient shopClient;
   @Resource
@@ -514,8 +565,35 @@
      if (lastOrder.getData()!=null){
         byId.setLastOrderTime(lastOrder.getData().getCreateTime());
      }
      //消费总金额
      return R.ok(byId);
   }
   @Resource
   private UserChangeLogService userChangeLogService;
   @GetMapping("/change/vip")
   @ApiOperation(value = "用户列表-修改会员等级", tags = {"管理后台"})
   public R<Page<AppUser>> changevip(Long id,Integer vipId)
   {
      AppUser byId = appUserService.getById(id);
      UserChangeLog userChangeLog = new UserChangeLog();
      userChangeLog.setCreateTime(LocalDateTime.now());
      userChangeLog.setAppUserId(byId.getId());
      userChangeLog.setBeforeVipId(byId.getVipId());
      userChangeLog.setAfterVipId(vipId);
      if (userChangeLog.getBeforeVipId()>userChangeLog.getAfterVipId()) {
         userChangeLog.setChangeType(0);
      }else {
         userChangeLog.setChangeType(1);
      }
      userChangeLogService.save(userChangeLog);
      byId.setVipId(vipId);
      appUserService.updateById(byId);
      return R.ok();
   }
   @GetMapping("/bottom")
   @ApiOperation(value = "用户列表-绑定下级列表", tags = {"管理后台"})
   public R<Page<AppUser>> bottom(Long id,Integer pageNum,Integer pageSize)
@@ -557,5 +635,25 @@
      return R.ok(appUser);
   }
   /**
    * 用户统计
    */
   @GetMapping("/statistics")
   @ApiOperation(value = "用户统计",tags = {"管理后台-首页统计-用户统计"})
   public R<UserStatistics> statistics() {
      UserStatistics userStatistics = appUserMapper.getUserStatistics();
      return R.ok(userStatistics);
   }
   /**
    * 用户统计详情
    */
   @GetMapping("/statistics/detail")
   @ApiOperation(value = "用户统计详情",tags = {"管理后台-首页统计-用户统计详情"})
   public R<UserStatisticsDetail> statisticsDetail(String userName) {
      UserStatisticsDetail userStatisticsDetail = appUserMapper.getUserStatisticsDetail(userName);
      return R.ok(userStatisticsDetail);
   }
}