From ddf3f19408fb311734218aaaa5edb49c5134b1eb Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 08 一月 2025 21:14:36 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 250 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 172 insertions(+), 78 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java index 0f6ad49..981af18 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java @@ -16,10 +16,11 @@ import com.ruoyi.account.api.model.*; import com.ruoyi.account.dto.DangerInfoDto; import com.ruoyi.account.service.*; +import com.ruoyi.account.util.ObsUploadUtil; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.bean.BeanUtils; -import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.feignClient.OrderClient; import com.ruoyi.order.feignClient.RemoteOrderGoodsClient; import com.ruoyi.order.model.Order; import com.ruoyi.other.api.domain.Shop; @@ -27,6 +28,8 @@ import com.ruoyi.other.api.feignClient.ShopClient; import com.ruoyi.other.api.feignClient.StoreClient; import com.ruoyi.other.api.feignClient.VipSettingClient; +import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.feignClient.SysUserClient; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -34,6 +37,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.io.IOException; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; @@ -45,6 +49,7 @@ import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.page.TableDataInfo; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; /** * <p> @@ -79,6 +84,14 @@ private VipSettingService vipSettingService; @Resource private AppUserMapper appUserMapper; + @Resource + private ShopClient shopClient; + @Resource + private RemoteOrderGoodsClient remoteOrderGoodsClient; + @Resource + private SysUserClient sysUserClient; + @Resource + private OrderClient orderClient; @ResponseBody @@ -97,7 +110,6 @@ } - @ResponseBody @PostMapping("/getAppUserById") public AppUser getAppUserById(@RequestParam("id") Long id) { return appUserService.getById(id); @@ -202,8 +214,8 @@ userCancellationLog.setAppUserId(user.getId()); userCancellationLog.setVipId(user.getVipId()); userCancellationLogService.save(userCancellationLog); - - + user.setStatus(3); + appUserService.updateById(user); return R.ok(); } @@ -230,15 +242,15 @@ user.setTopUser(byId); } //获取绑定下级列表 - List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, user.getInviteUserId()).list(); + List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, user.getId()).list(); for (AppUser appUser : list) { - Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getTopInviteId, 1).count(); - Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getTopInviteId, userId).count(); - Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getTopInviteId, userId).count(); - Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getTopInviteId, userId).count(); - Long count5 = appUserService.lambdaQuery().eq(AppUser::getVipId, 5).eq(AppUser::getTopInviteId, userId).count(); - Long count6 = appUserService.lambdaQuery().eq(AppUser::getVipId, 6).eq(AppUser::getTopInviteId, userId).count(); - Long count7 = appUserService.lambdaQuery().eq(AppUser::getVipId, 7).eq(AppUser::getTopInviteId, userId).count(); + Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, appUser.getId()).count(); + Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, appUser.getId()).count(); + Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, appUser.getId()).count(); + Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, appUser.getId()).count(); + Long count5 = appUserService.lambdaQuery().eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, appUser.getId()).count(); + Long count6 = appUserService.lambdaQuery().eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, appUser.getId()).count(); + Long count7 = appUserService.lambdaQuery().eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, appUser.getId()).count(); appUser.setCount1(count1); appUser.setCount2(count2); appUser.setCount3(count3); @@ -272,7 +284,6 @@ @GetMapping("/index") @ApiOperation(value = "个人中心首页", tags = {"小程序-个人中心首页"}) public R<AppUser> index() { - System.err.println("=-===="); Long userId = tokenService.getLoginUserApplet().getUserid(); //当前用户信息 AppUser user = appUserService.getById(userId); @@ -283,18 +294,18 @@ } //当前绑定门店的店铺信息 if (user.getShopId() != null) { - R<Shop> storeById = storeClient.getStoreById(user.getShopId()); + R<Shop> storeById = shopClient.getShopById(user.getShopId()); if (storeById.getData() != null) { user.setShopName(storeById.getData().getName()); } } - Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getTopInviteId, 1).count(); - Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getTopInviteId, userId).count(); - Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getTopInviteId, userId).count(); - Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getTopInviteId, userId).count(); - Long count5 = appUserService.lambdaQuery().eq(AppUser::getVipId, 5).eq(AppUser::getTopInviteId, userId).count(); - Long count6 = appUserService.lambdaQuery().eq(AppUser::getVipId, 6).eq(AppUser::getTopInviteId, userId).count(); - Long count7 = appUserService.lambdaQuery().eq(AppUser::getVipId, 7).eq(AppUser::getTopInviteId, userId).count(); + Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count(); + Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count(); + Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count(); + Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count(); + Long count5 = appUserService.lambdaQuery().eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count(); + Long count6 = appUserService.lambdaQuery().eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count(); + Long count7 = appUserService.lambdaQuery().eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count(); user.setCount1(count1); user.setCount2(count2); user.setCount3(count3); @@ -390,13 +401,35 @@ public R<IPage<AppUser>> getAppuserPage(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("每一页数据大小") Integer pageSize, AppUser appUser) { - IPage<AppUser> appuserPage = appUserService.getAppuserPage(pageNum, pageSize, appUser); + Long userid = tokenService.getLoginUser().getUserid(); + SysUser sysUser = sysUserClient.getSysUser(userid).getData(); + Integer shopId = null; + Set<Long> userId = null; + if(sysUser.getRoleType() == 2){ + shopId = sysUser.getObjectId(); + userId = orderClient.getAppUserByShoppingShop(shopId).getData(); + } + IPage<AppUser> appuserPage = appUserService.getAppuserPage(pageNum, pageSize, appUser, shopId, userId); + for (AppUser record : appuserPage.getRecords()) { + if (record.getInviteUserId() != null) { + AppUser byId1 = appUserService.getById(record.getInviteUserId()); + if (byId1!=null) { + record.setInviteUserName(byId1.getName()); + } + } + if (record.getShopId()!=null){ + R<Shop> shopById = shopClient.getShopById(record.getShopId()); + if (shopById.getData()!=null){ + record.setShopName(shopById.getData().getName()); + } + } + } return R.ok(appuserPage); } @GetMapping("/shop/getAppuserPage") @ApiOperation(value = "用户列表", tags = {"门店后台"}) - public R<IPage<AppUser>> shopGetAppuserPage(@ApiParam("页码") @RequestParam Integer pageNum, + public R<IPage<AppUser>> shopGetAppuserPage(@ApiParam("页码") @RequestParam Integer pageCurr, @ApiParam("每一页数据大小") Integer pageSize, AppUser appUser) { Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId(); @@ -408,7 +441,7 @@ for (Order datum : listR.getData()) { userIds.add(datum.getAppUserId()); } - IPage<AppUser> appuserPage = appUserService.getAppuserPage1(pageNum, pageSize, appUser, objectId, userIds); + IPage<AppUser> appuserPage = appUserService.getAppuserPage1(pageCurr, pageSize, appUser, objectId, userIds); return R.ok(appuserPage); } @@ -450,16 +483,6 @@ AppUser byId = appUserService.getById(id); byId.setVipId(byId.getVipId() - 1); appUserService.updateById(byId); - //执行降级标记代码 - new Thread(new Runnable() { - @Override - public void run() { - { - vipSettingService.downUsers(); - } - } - } - ).start(); return R.ok(); } @@ -494,7 +517,7 @@ @GetMapping("/change/shop") @ApiOperation(value = "用户列表-更换门店", tags = {"管理后台"}) - public R<AppUser> shop(Long id, Long shopId) { + public R<AppUser> shop(Long id, Integer shopId) { AppUser byId = appUserService.getById(id); byId.setShopId(shopId); appUserService.updateById(byId); @@ -512,10 +535,8 @@ } - @Resource - private ShopClient shopClient; - @Resource - private RemoteOrderGoodsClient remoteOrderGoodsClient; + + @GetMapping("/detail") @ApiOperation(value = "用户列表-详情", tags = {"管理后台"}) @@ -538,13 +559,15 @@ //推广人 if (byId.getInviteUserId() != null) { AppUser byId1 = appUserService.getById(byId.getInviteUserId()); - byId1.setInviteUserName(byId1.getInviteUserName()); + byId.setInviteUserName(byId1.getName()); } //最后下单时间 R<Order> lastOrder = remoteOrderGoodsClient.getLastOrder(id); if (lastOrder.getData() != null) { byId.setLastOrderTime(lastOrder.getData().getCreateTime()); } + List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, id).list(); + byId.setBottomUsers(list); //消费总金额 return R.ok(byId); } @@ -594,6 +617,9 @@ @GetMapping("/listByIds") List<AppUser> listByIds(@RequestParam("ids") List<Long> ids) { + if(ids.size() == 0){ + return new ArrayList<>(); + } List<AppUser> appUsers = appUserService.listByIds(ids); return appUsers; } @@ -601,7 +627,7 @@ @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) + AppUser appUser = appUserService.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).ne(AppUser::getStatus, 3) .eq(AppUser::getPhone, phone)); return R.ok(appUser); } @@ -612,7 +638,15 @@ @GetMapping("/statistics") @ApiOperation(value = "用户统计", tags = {"管理后台-首页统计-用户统计"}) public R<UserStatistics> statistics() { - UserStatistics userStatistics = appUserMapper.getUserStatistics(); + Long userid = tokenService.getLoginUser().getUserid(); + SysUser data = sysUserClient.getSysUser(userid).getData(); + Integer shopId = null; + Set<Long> userId = null; + if(data.getRoleType() == 2){ + shopId = data.getObjectId(); + userId = orderClient.getAppUserByShoppingShop(shopId).getData(); + } + UserStatistics userStatistics = appUserMapper.getUserStatistics(shopId, userId); return R.ok(userStatistics); } @@ -622,7 +656,24 @@ @GetMapping("/statistics/detail") @ApiOperation(value = "用户统计详情", tags = {"管理后台-首页统计-用户统计详情"}) public R<UserStatisticsDetail> statisticsDetail(@ApiParam(value = "用户id") Long userId) { - UserStatisticsDetail userStatisticsDetail = appUserMapper.getUserStatisticsDetail(userId); + Long userid = tokenService.getLoginUser().getUserid(); + SysUser data = sysUserClient.getSysUser(userid).getData(); + Integer shopId = null; + Set<Long> userIds = null; + if(null != userId){ + userIds = new HashSet<>(); + userIds.add(userId); + } + if(data.getRoleType() == 2){ + shopId = data.getObjectId(); + if(null == userId){ + userIds = orderClient.getAppUserByShoppingShop(shopId).getData(); + }else{ + userIds = new HashSet<>(); + userIds.add(userId); + } + } + UserStatisticsDetail userStatisticsDetail = appUserMapper.getUserStatisticsDetail(shopId, userIds); return R.ok(userStatisticsDetail); } @@ -632,27 +683,41 @@ */ @GetMapping("/commissionDetail") @ApiOperation(value = "分佣统计", tags = "管理后台-首页统计") - public R<CommissionDetail> commissionDetail(BalanceChangeRecord balanceChangeRecord) { - List<AppUser> appUserList = Optional.ofNullable(appUserService.list()).orElse(Collections.emptyList()); - + public R<CommissionDetail> commissionDetail() { + Long userid = tokenService.getLoginUser().getUserid(); + SysUser sysUser = sysUserClient.getSysUser(userid).getData(); + LambdaQueryWrapper<AppUser> queryWrapper = new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0); + if(sysUser.getRoleType() == 2){ + queryWrapper.eq(AppUser::getShopId, sysUser.getObjectId()); + } + List<AppUser> appUserList = appUserService.list(queryWrapper); if (appUserList.isEmpty()) { return R.ok(new CommissionDetail()); } - BigDecimal totalCommission = BigDecimal.ZERO; BigDecimal totalServiceFee = BigDecimal.ZERO; BigDecimal totalUserCommission = BigDecimal.ZERO; Map<Integer, BigDecimal> vipCommissions = new HashMap<>(); - + Map<String, Map<Integer, BigDecimal>> dailyVipCommissions = new HashMap<>(); for (AppUser appUser : appUserList) { - totalCommission = totalCommission.add(Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO)); - totalServiceFee = totalServiceFee.add(Optional.ofNullable(appUser.getShopServiceFee()).orElse(BigDecimal.ZERO)); - totalUserCommission = totalUserCommission.add(Optional.ofNullable(appUser.getShopCommission()).orElse(BigDecimal.ZERO)); - + BigDecimal distributionAmount = Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO); + totalCommission = totalCommission.add(distributionAmount); Integer vipId = appUser.getVipId(); if (vipId != null && vipId >= 1 && vipId <= 7) { - vipCommissions.merge(vipId, Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO), BigDecimal::add); + vipCommissions.merge(vipId, distributionAmount, BigDecimal::add); + + String dateKey = appUser.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + dailyVipCommissions.computeIfAbsent(dateKey, k -> new HashMap<>()) + .merge(vipId, distributionAmount, BigDecimal::add); } + } + List<Shop> data = shopClient.getAllShop().getData(); + if(sysUser.getRoleType() == 2){ + data = Arrays.asList(shopClient.getShopById(sysUser.getObjectId()).getData()); + } + for (Shop shop : data) { + totalServiceFee = totalServiceFee.add(shop.getServerGiveawayMoney()); + totalUserCommission = totalUserCommission.add(shop.getGiveawayMoney()); } CommissionDetail commissionDetail = new CommissionDetail(); @@ -668,34 +733,63 @@ commissionDetail.setTotalTopAgentCommission(vipCommissions.getOrDefault(6, BigDecimal.ZERO)); commissionDetail.setTotalPartnerCommission(vipCommissions.getOrDefault(7, BigDecimal.ZERO)); - Map<String, List<AppUser>> map = appUserList.stream().collect(Collectors.groupingBy(item -> item.getCreateTime() - .format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))); - List<CommissionDate> commissionDateList = new ArrayList<>(); - map.forEach((key, value) -> { + List<CommissionDate> commissionDateList = dailyVipCommissions.entrySet().stream() + .map(entry -> { + CommissionDate commissionDate = new CommissionDate(); + commissionDate.setDate(entry.getKey()); + Map<Integer, BigDecimal> dailyCommissions = entry.getValue(); + commissionDate.setNormalCommission(dailyCommissions.getOrDefault(1, BigDecimal.ZERO)); + commissionDate.setGoldCommission(dailyCommissions.getOrDefault(2, BigDecimal.ZERO)); + commissionDate.setDiamondCommission(dailyCommissions.getOrDefault(3, BigDecimal.ZERO)); + commissionDate.setAgentCommission(dailyCommissions.getOrDefault(4, BigDecimal.ZERO)); + commissionDate.setSuperAgentCommission(dailyCommissions.getOrDefault(5, BigDecimal.ZERO)); + commissionDate.setTopAgentCommission(dailyCommissions.getOrDefault(6, BigDecimal.ZERO)); + commissionDate.setPartnerCommission(dailyCommissions.getOrDefault(7, BigDecimal.ZERO)); + BigDecimal add = commissionDate.getNormalCommission().add(commissionDate.getGoldCommission()).add(commissionDate.getDiamondCommission()).add(commissionDate.getAgentCommission()) + .add(commissionDate.getSuperAgentCommission()).add(commissionDate.getTopAgentCommission()).add(commissionDate.getPartnerCommission()); + commissionDate.setTotalCommission(add); + return commissionDate; + }) + .collect(Collectors.toList()); - Map<Integer, BigDecimal> vipCommissions2 = new HashMap<>(); - for (AppUser appUser : appUserList) { - Integer vipId = appUser.getVipId(); - if (vipId != null && vipId >= 1 && vipId <= 7) { - vipCommissions2.merge(vipId, Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO), BigDecimal::add); - } - } - CommissionDate commissionDate = new CommissionDate(); - commissionDate.setDate(key); - commissionDate.setNormalCommission(vipCommissions2.getOrDefault(1, BigDecimal.ZERO)); - commissionDate.setGoldCommission(vipCommissions2.getOrDefault(2, BigDecimal.ZERO)); - commissionDate.setDiamondCommission(vipCommissions2.getOrDefault(3, BigDecimal.ZERO)); - commissionDate.setAgentCommission(vipCommissions2.getOrDefault(4, BigDecimal.ZERO)); - commissionDate.setSuperAgentCommission(vipCommissions2.getOrDefault(5, BigDecimal.ZERO)); - commissionDate.setAgentCommission(vipCommissions2.getOrDefault(6, BigDecimal.ZERO)); - commissionDate.setPartnerCommission(vipCommissions2.getOrDefault(7, BigDecimal.ZERO)); - commissionDateList.add(commissionDate); - }); commissionDetail.setCommissionDateList(commissionDateList); - return R.ok(commissionDetail); } - - + + + /** + * 上传图片 + * @param file + * @return + */ + @PostMapping("/upload") + public String upload(MultipartFile file){ + String s = null; + try { + s = ObsUploadUtil.obsUpload(file); + } catch (IOException e) { + throw new RuntimeException(e); + } + return s; + } + + + /** + * 检查会员等级变更 + * @param appUserId + */ + @PostMapping("/vipUpgrade") + public void vipUpgrade(@RequestParam("appUserId") Long appUserId){ + appUserService.vipUpgrade(appUserId); + } + + + /** + * 用户降级检测 + */ + @PostMapping("/demotionDetection") + public void demotionDetection(){ + appUserService.demotionDetection(); + } } -- Gitblit v1.7.1