From b22df417e0bc423c788b013feaad686531d69eed Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 08 一月 2025 09:51:37 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 191 ++++++++++++++++++++++++++++++----------------- 1 files changed, 122 insertions(+), 69 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..ccb48b3 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,9 +16,9 @@ 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.RemoteOrderGoodsClient; import com.ruoyi.order.model.Order; @@ -34,6 +34,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 +46,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 +81,10 @@ private VipSettingService vipSettingService; @Resource private AppUserMapper appUserMapper; + @Resource + private ShopClient shopClient; + @Resource + private RemoteOrderGoodsClient remoteOrderGoodsClient; @ResponseBody @@ -97,7 +103,6 @@ } - @ResponseBody @PostMapping("/getAppUserById") public AppUser getAppUserById(@RequestParam("id") Long id) { return appUserService.getById(id); @@ -202,8 +207,8 @@ userCancellationLog.setAppUserId(user.getId()); userCancellationLog.setVipId(user.getVipId()); userCancellationLogService.save(userCancellationLog); - - + user.setStatus(3); + appUserService.updateById(user); return R.ok(); } @@ -230,15 +235,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 +277,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 +287,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); @@ -391,12 +395,26 @@ @ApiParam("每一页数据大小") Integer pageSize, AppUser appUser) { IPage<AppUser> appuserPage = appUserService.getAppuserPage(pageNum, pageSize, appUser); + 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 +426,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 +468,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 +502,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 +520,8 @@ } - @Resource - private ShopClient shopClient; - @Resource - private RemoteOrderGoodsClient remoteOrderGoodsClient; + + @GetMapping("/detail") @ApiOperation(value = "用户列表-详情", tags = {"管理后台"}) @@ -538,13 +544,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 +602,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 +612,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); } @@ -643,16 +654,24 @@ 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(); + for (Shop shop : data) { + totalServiceFee = totalServiceFee.add(shop.getServerGiveawayMoney()); + totalUserCommission = totalUserCommission.add(shop.getGiveawayMoney()); } CommissionDetail commissionDetail = new CommissionDetail(); @@ -668,34 +687,68 @@ 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); + +// commissionDate.setServiceChargeCommission(); +// commissionDate.setAssociatedUserCommission(); +// commissionDate.setBindLowerLevelStoresCommission(); + 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