luodangjia
2024-12-19 60f70f7409ec1ece8905e088fb43e0cb0258a70b
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -1,6 +1,16 @@
package com.ruoyi.account.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.account.api.model.AppUser;
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;
import com.ruoyi.account.service.UserSignRecordService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.api.model.*;
@@ -25,6 +35,7 @@
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@@ -65,6 +76,8 @@
   private UserPointService userPointService;
   @Resource
   private VipSettingService vipSettingService;
   @Resource
   private AppUserMapper appUserMapper;
   @ResponseBody
@@ -73,6 +86,10 @@
   public R<LoginVo> mobileLogin(@RequestBody MobileLogin mobileLogin){
      return appUserService.mobileLogin(mobileLogin);
   }
   @ResponseBody
@@ -174,9 +191,6 @@
   public R<AppUser> info(){
      Long userId = tokenService.getLoginUserApplet().getUserid();
      AppUser user = appUserService.getById(userId);
      return R.ok(user);
   }
   @Resource
@@ -348,6 +362,34 @@
      appUserService.onlineRecord();
      return R.ok();
   }
   /**
    * 根据用户名称模糊搜索用户列表
    * @param name
    * @return
    */
   @PostMapping("/getAppUserByName")
   public R<List<AppUser>> getAppUserByName(@RequestParam("name") String name){
      List<AppUser> list = appUserService.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1)
            .like(AppUser::getName, name));
      return R.ok(list);
   }
   /**
    * 根据用户电话模糊搜索用户列表
    * @param phone
    * @return
    */
   @PostMapping("/getAppUserByPhone")
   public R<List<AppUser>> getAppUserByPhone(@RequestParam("phone") String phone){
      List<AppUser> list = appUserService.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1)
            .like(AppUser::getPhone, phone));
      return R.ok(list);
   }
   /**
    * 获取用户列表
@@ -361,6 +403,27 @@
      IPage<AppUser> appuserPage = appUserService.getAppuserPage(pageNum, pageSize, appUser);
      return R.ok(appuserPage);
   }
   @GetMapping("/shop/getAppuserPage")
   @ApiOperation(value = "用户列表", tags = {"门店后台"})
   public R<IPage<AppUser>> shopGetAppuserPage(@ApiParam("页码") @RequestParam Integer pageNum,
                                 @ApiParam("每一页数据大小") Integer pageSize,
                                 AppUser appUser)
   {
      Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
      List<Long> userIds = new ArrayList<>();
      userIds.add(-1L);
      //获取在该本店下单的用户ids
      R<List<Order>> listR = remoteOrderGoodsClient.byShopId(objectId);
      for (Order datum : listR.getData()) {
         userIds.add(datum.getAppUserId());
      }
      IPage<AppUser> appuserPage = appUserService.getAppuserPage1(pageNum, pageSize, appUser,objectId,userIds);
      return R.ok(appuserPage);
   }
   @GetMapping("/danger/info")
   @ApiOperation(value = "用户列表-保级条件详情", tags = {"管理后台"})
@@ -422,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
@@ -456,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)
@@ -468,16 +604,20 @@
   }
   @GetMapping("/orders")
   @ApiOperation(value = "用户列表-订单列表", tags = {"管理后台"})
   public R<List<Order>> orders(Long id)
   {
      R<List<Order>> listR = remoteOrderGoodsClient.byUserId(id);
      return R.ok(listR.getData());
   @GetMapping("/getAppUserByPhone")
   public R<AppUser> getAppUserByPhone(String phone){
      AppUser appUser = appUserService.lambdaQuery().eq(AppUser::getPhone, phone).one();
      return R.ok(appUser);
   }
   @GetMapping("/listByIds")
@@ -485,6 +625,35 @@
      List<AppUser> appUsers = appUserService.listByIds(ids);
      return appUsers;
   }
   @PostMapping("/getAppUserByPhone1")
   public R<AppUser> getAppUserByPhone1(@RequestParam("phone") String phone){
      AppUser appUser = appUserService.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1)
            .eq(AppUser::getPhone, phone));
      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);
   }
}