From 20bf12dc209329b29ac96d01efabaa3a0ff30cb2 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期日, 26 一月 2025 17:27:31 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/qijisheng --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 173 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 101 insertions(+), 72 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 d89af69..fd99cb2 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 @@ -1,6 +1,7 @@ package com.ruoyi.account.controller; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -57,8 +58,7 @@ @RestController @RequestMapping("/app-user") public class AppUserController extends BaseController { - - + @Resource private TokenService tokenService; @Resource @@ -92,6 +92,8 @@ private UserCancellationLogService userCancellationLogService; @Resource private BalanceChangeRecordService balanceChangeRecordService; + @Resource + private UserChangeLogService userChangeLogService; @ResponseBody @@ -114,6 +116,17 @@ public AppUser getAppUserById(@RequestParam("id") Long id) { return appUserService.getById(id); } + + @PostMapping("/getBaseUserById") + public R<Map<String, Object>> getBaseUserById(@RequestParam("id") Long id) { + AppUser appUser = appUserService.getById(id); + Map<String, Object> map = new HashMap<>(); + map.put("id", appUser.getId()); + map.put("name", appUser.getName()); + map.put("phone", appUser.getPhone()); + return R.ok(map); + } + @ResponseBody @PostMapping("/editAppUserById") @@ -531,7 +544,7 @@ DangerInfoDto dangerInfoDto = new DangerInfoDto(); BeanUtils.copyProperties(data, dangerInfoDto); List<UserPoint> list1 = userPointService.lambdaQuery().eq(UserPoint::getAppUserId,id).eq(UserPoint::getType, 1).ge(UserPoint::getCreateTime, now.minusDays(data.getKeepBuyDay())).list(); - List<UserPoint> list2 = userPointService.lambdaQuery().eq(UserPoint::getAppUserId,id).eq(UserPoint::getType, 9).ge(UserPoint::getCreateTime, now.minusDays(data.getKeepBuyDay())).list(); + List<UserPoint> list2 = userPointService.lambdaQuery().eq(UserPoint::getAppUserId,id).eq(UserPoint::getType, 2).ge(UserPoint::getCreateTime, now.minusDays(data.getKeepBuyDay())).list(); List<UserPoint> list3 = userPointService.lambdaQuery().eq(UserPoint::getAppUserId,id).eq(UserPoint::getType, 8).ge(UserPoint::getCreateTime, now.minusDays(data.getKeepBuyDay())).list(); Integer userKeepBuyPoint = 0; for (UserPoint userPoint : list1) { @@ -565,6 +578,27 @@ userChangeLog.setChangeType(0); userChangeLogService.save(userChangeLog); appUser.setVipId(appUser.getVipId() - 1); + appUser.setIsDanger(0); + //检查是否达标,不达标继续标红 + VipSetting vipSetting = vipSettingClient.getVipSetting(appUser.getVipId()).getData(); + //消费积分 + List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) <= create_time")); + int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum(); + if(sum < vipSetting.getKeepBuyPoint()){ + appUser.setIsDanger(1); + } + //返佣积分 + list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) <= create_time")); + sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum(); + if(sum < vipSetting.getKeepSharePoint()){ + appUser.setIsDanger(1); + } + //门店业绩 + list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) <= create_time")); + sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum(); + if(sum < vipSetting.getKeepShopPoint()){ + appUser.setIsDanger(1); + } appUserService.updateById(appUser); return R.ok(); } @@ -631,8 +665,7 @@ @GetMapping("/detail") @ApiOperation(value = "用户列表-详情", tags = {"管理后台"}) - public R<AppUser> detail(Long id,Integer shopId) { - + public R<AppUser> detail(Long id, Integer shopId) { Long userid = tokenService.getLoginUser().getUserid(); SysUser sysUser = sysUserClient.getSysUser(userid).getData(); AppUser byId = appUserService.getById(id); @@ -665,7 +698,13 @@ List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, id).list(); byId.setBottomUsers(list); //消费总金额 - R<List<Order>> orderR = remoteOrderGoodsClient.byShopIdAndUserId(id,shopId); + if(null == shopId || 1 == sysUser.getRoleType()){ + shopId = -1; + } + if(null == shopId && 2 == sysUser.getRoleType()){ + shopId = sysUser.getObjectId(); + } + R<List<Order>> orderR = remoteOrderGoodsClient.byUserId(id, shopId); List<Order> orderList = orderR.getData(); if (!CollectionUtils.isEmpty(orderList)){ BigDecimal paymentAmount = orderList.stream().map(Order::getPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add); @@ -676,8 +715,7 @@ return R.ok(byId); } - @Resource - private UserChangeLogService userChangeLogService; + @GetMapping("/change/vip") @ApiOperation(value = "用户列表-修改会员等级", tags = {"管理后台"}) @@ -715,7 +753,10 @@ public R<List<Order>> orders(Long id) { Long userid = tokenService.getLoginUser().getUserid(); SysUser sysUser = sysUserClient.getSysUser(userid).getData(); - Integer shopId = sysUser.getObjectId(); + Integer shopId = -1; + if(sysUser.getRoleType() == 2){ + shopId = sysUser.getObjectId(); + } R<List<Order>> listR = remoteOrderGoodsClient.byUserId(id,shopId); return R.ok(listR.getData()); @@ -810,8 +851,6 @@ if (cd.getStartTime().isAfter(cd.getEndTime())) { return R.fail("开始时间不能大于结束时间"); } - - Map<String, Map<Integer, BigDecimal>> dailyVipCommissions = new TreeMap<>(); getDatesBetween(cd.getStartTime(), cd.getEndTime()).forEach(date -> { for (int i = 1; i < 8; i++){ @@ -846,6 +885,15 @@ }); + R<Map<String, BigDecimal>> shopStatistics = shopClient.getShopStatistics(); + Map<String, BigDecimal> data = shopStatistics.getData(); + BigDecimal totalServiceFee = BigDecimal.ZERO; + BigDecimal totalUserCommission = BigDecimal.ZERO; + if (data != null){ + totalServiceFee = data.get("serverGiveawayMoney"); + totalUserCommission = data.get("giveawayMoney"); + } + BigDecimal totalCommission = BigDecimal.ZERO; BigDecimal totalNormalCommission = BigDecimal.ZERO; @@ -861,47 +909,50 @@ BigDecimal totalPartnerCommission = BigDecimal.ZERO; - List<AppUser> allAppUserList = appUserService.list(); - for (AppUser appUser : allAppUserList) { - BigDecimal totalDistributionAmount = appUser.getTotalDistributionAmount(); - totalCommission = totalCommission.add(totalDistributionAmount); - if (appUser.getVipId() == 1){ - totalNormalCommission = totalNormalCommission.add(totalDistributionAmount); - } - if (appUser.getVipId() == 2){ - totalGoldCommission = totalGoldCommission.add(totalDistributionAmount); - } - if (appUser.getVipId() == 3){ - totalDiamondCommission = totalDiamondCommission.add(totalDistributionAmount); - } - if (appUser.getVipId() == 4){ - totalAgentCommission = totalAgentCommission.add(totalDistributionAmount); - } - if (appUser.getVipId() == 5){ - totalSuperAgentCommission = totalSuperAgentCommission.add(totalDistributionAmount); - } - if (appUser.getVipId() == 6){ - totalTopAgentCommission = totalTopAgentCommission.add(totalDistributionAmount); - } - if (appUser.getVipId() == 7){ - totalPartnerCommission = totalPartnerCommission.add(totalDistributionAmount); - } + Set<String> keySet = dailyVipCommissions.keySet(); + List<CommissionDate> commissionDateList = new ArrayList<>(); + for (String key : keySet) { + CommissionDate commissionDate = new CommissionDate(); + commissionDate.setDate(key); + Map<Integer, BigDecimal> dailyCommissions = dailyVipCommissions.get(key); + commissionDate.setNormalCommission(dailyCommissions.getOrDefault(1, BigDecimal.ZERO)); + totalNormalCommission = totalNormalCommission.add(dailyCommissions.getOrDefault(1, BigDecimal.ZERO)); + + commissionDate.setGoldCommission(dailyCommissions.getOrDefault(2, BigDecimal.ZERO)); + totalGoldCommission = totalGoldCommission.add(dailyCommissions.getOrDefault(2, BigDecimal.ZERO)); + + commissionDate.setDiamondCommission(dailyCommissions.getOrDefault(3, BigDecimal.ZERO)); + totalDiamondCommission = totalDiamondCommission.add(dailyCommissions.getOrDefault(3, BigDecimal.ZERO)); + + commissionDate.setAgentCommission(dailyCommissions.getOrDefault(4, BigDecimal.ZERO)); + totalAgentCommission = totalAgentCommission.add(dailyCommissions.getOrDefault(4, BigDecimal.ZERO)); + + commissionDate.setSuperAgentCommission(dailyCommissions.getOrDefault(5, BigDecimal.ZERO)); + totalSuperAgentCommission = totalSuperAgentCommission.add(dailyCommissions.getOrDefault(5, BigDecimal.ZERO)); + + commissionDate.setTopAgentCommission(dailyCommissions.getOrDefault(6, BigDecimal.ZERO)); + totalTopAgentCommission = totalTopAgentCommission.add(dailyCommissions.getOrDefault(6, BigDecimal.ZERO)); + + commissionDate.setPartnerCommission(dailyCommissions.getOrDefault(7, BigDecimal.ZERO)); + totalPartnerCommission = totalPartnerCommission.add(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); + + commissionDate.setServiceChargeCommission(dailyCommissions.getOrDefault(10, BigDecimal.ZERO)); + commissionDate.setAssociatedUserCommission(dailyCommissions.getOrDefault(8, BigDecimal.ZERO)); + commissionDate.setBindLowerLevelStoresCommission(dailyCommissions.getOrDefault(9, BigDecimal.ZERO)); + commissionDateList.add(commissionDate); } - R<Map<String, BigDecimal>> shopStatistics = shopClient.getShopStatistics(); - Map<String, BigDecimal> data = shopStatistics.getData(); - BigDecimal totalServiceFee = BigDecimal.ZERO; - BigDecimal totalUserCommission = BigDecimal.ZERO; - if (data != null){ - totalServiceFee = data.get("serverGiveawayMoney"); - totalUserCommission = data.get("lowerLevelGiveawayMoney"); - } + CommissionDetail commissionDetail = new CommissionDetail(); - commissionDetail.setTotalCommission(totalCommission); commissionDetail.setTotalServiceFee(totalServiceFee); commissionDetail.setTotalUserCommission(totalUserCommission); - commissionDetail.setTotalNormalCommission(totalNormalCommission); commissionDetail.setTotalGoldCommission(totalGoldCommission); commissionDetail.setTotalDiamondCommission(totalDiamondCommission); @@ -909,31 +960,9 @@ commissionDetail.setTotalSuperAgentCommission(totalSuperAgentCommission); commissionDetail.setTotalTopAgentCommission(totalTopAgentCommission); commissionDetail.setTotalPartnerCommission(totalPartnerCommission); - - - 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); - - commissionDate.setServiceChargeCommission(dailyCommissions.getOrDefault(10, BigDecimal.ZERO)); - commissionDate.setAssociatedUserCommission(dailyCommissions.getOrDefault(8, BigDecimal.ZERO)); - commissionDate.setBindLowerLevelStoresCommission(dailyCommissions.getOrDefault(9, BigDecimal.ZERO)); - return commissionDate; - }) - .collect(Collectors.toList()); - + totalCommission = totalNormalCommission.add(totalGoldCommission).add(totalDiamondCommission).add(totalAgentCommission) + .add(totalSuperAgentCommission).add(totalTopAgentCommission).add(totalPartnerCommission); + commissionDetail.setTotalCommission(totalCommission); commissionDetail.setCommissionDateList(commissionDateList); return R.ok(commissionDetail); @@ -990,7 +1019,7 @@ * 检查会员降级 * @param appUserId */ - @PostMapping("/app-user/vipDemotion") + @PostMapping("/vipDemotion") public void vipDemotion(@RequestParam("appUserId") Long appUserId){ appUserService.vipDemotion(appUserId); } -- Gitblit v1.7.1