| | |
| | | @Resource |
| | | private BalanceChangeRecordService balanceChangeRecordService; |
| | | @Resource |
| | | private BalanceChangeRecordCopyService balanceChangeRecordCopyService; |
| | | @Resource |
| | | private UserChangeLogService userChangeLogService; |
| | | @Resource |
| | | private RedisService redisService; |
| | |
| | | } |
| | | return allSubordinates; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取门店作为服务商的所有用户 |
| | | * @param shopId |
| | | * @return |
| | | */ |
| | | public Set<Long> getShopServerUser(Integer shopId){ |
| | | Shop shop = shopClient.getShopById(shopId).getData(); |
| | | List<Shop> shopList = shopClient.getAllShop().getData(); |
| | | List<Long> appUserIds = shopList.stream().map(Shop::getAppUserId).collect(Collectors.toList()); |
| | | Long appUserId = shop.getAppUserId(); |
| | | //所有未开店的用户 |
| | | List<AppUser> list = appUserService.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0) |
| | | .ne(AppUser::getStatus, 3).notIn(AppUser::getId, appUserIds)); |
| | | Set<Long> ids = new HashSet<>(); |
| | | getShopServerUser(appUserId, list, ids); |
| | | return ids; |
| | | } |
| | | |
| | | |
| | | |
| | | public void getShopServerUser(Long appUserId, List<AppUser> appUserList, Set<Long> ids){ |
| | | List<AppUser> collect = appUserList.stream().filter(s->s.getInviteUserId().equals(appUserId)).collect(Collectors.toList()); |
| | | if(collect.size() == 0){ |
| | | return; |
| | | } |
| | | Set<Long> appUserSet = collect.stream().map(AppUser::getId).collect(Collectors.toSet()); |
| | | if(ids.containsAll(appUserSet)){ |
| | | return; |
| | | } |
| | | ids.addAll(appUserSet); |
| | | for (AppUser appUser : collect) { |
| | | getShopServerUser(appUser.getId(), appUserList, ids); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | Integer shopId = data.getObjectId(); |
| | | List<Order> orders = orderClient.getRedeemedOrdersByShop(shopId).getData(); |
| | | List<Long> userIds = orders.stream().map(Order::getAppUserId).collect(Collectors.toList()); |
| | | //门店作为服务商的用户 |
| | | Set<Long> shopServerUser = getShopServerUser(shopId); |
| | | userIds.addAll(shopServerUser); |
| | | queryWrapper.in(!CollectionUtils.isEmpty(userIds), "id", userIds) |
| | | .like(StringUtils.isNotEmpty( appUser.getName()),"name", appUser.getName()); |
| | | } |
| | |
| | | appUser.setExcludeStatus(3); |
| | | IPage<AppUser> appuserPage = appUserService.getAppuserPage(pageNum, pageSize, appUser, shopId, userId); |
| | | for (AppUser record : appuserPage.getRecords()) { |
| | | List<AppUserGiveawayTemporary> list = appUserGiveawayTemporaryService.list(new LambdaQueryWrapper<AppUserGiveawayTemporary>().eq(AppUserGiveawayTemporary::getAppUserId, record.getId())); |
| | | int sum = list.stream().mapToInt(AppUserGiveawayTemporary::getTotalPoint).sum(); |
| | | if (record.getInviteUserId() != null) { |
| | | AppUser byId1 = appUserService.getById(record.getInviteUserId()); |
| | | if (byId1!=null) { |
| | |
| | | record.setShopName(shop1.getName()); |
| | | record.setShopId(shop1.getId()); |
| | | } |
| | | record.setTotalPoint(record.getUserTotalPoint()); |
| | | record.setTotalPoint(record.getUserTotalPoint() + sum); |
| | | } |
| | | return R.ok(appuserPage); |
| | | } |
| | |
| | | for (Order datum : listR.getData()) { |
| | | userIds.add(datum.getAppUserId()); |
| | | } |
| | | Set<Long> shopServerUser = getShopServerUser(objectId); |
| | | userIds.addAll(shopServerUser); |
| | | } |
| | | IPage<AppUser> appuserPage = appUserService.getAppuserPage1(pageCurr, pageSize, appUser, objectId, userIds); |
| | | IPage<AppUser> appuserPage = appUserService.getAppuserPage1(pageCurr, pageSize, appUser, userIds); |
| | | return R.ok(appuserPage); |
| | | } |
| | | |
| | |
| | | Integer shopId = data.getObjectId(); |
| | | List<Order> orders = orderClient.getRedeemedOrdersByShop(shopId).getData(); |
| | | List<Long> userIds = orders.stream().map(Order::getAppUserId).collect(Collectors.toList()); |
| | | Set<Long> shopServerUser = getShopServerUser(shopId); |
| | | userIds.addAll(shopServerUser); |
| | | if(userIds.size() == 0){ |
| | | userIds.add(-1L); |
| | | } |
| | | queryWrapper.in(!CollectionUtils.isEmpty(userIds), "id", userIds); // userIds 不为空时,查询 id 在 userIds 中 |
| | | } |
| | | queryWrapper.eq("del_flag", 0); |
| | |
| | | public R<UserStatisticsDetail> statisticsDetail(@ApiParam(value = "用户id") Long userId) { |
| | | Long userid = tokenService.getLoginUser().getUserid(); |
| | | SysUser data = sysUserClient.getSysUser(userid).getData(); |
| | | Integer shopId = null; |
| | | Set<Long> userIds = null; |
| | | Integer shopId = 0; |
| | | Set<Long> userIds = new HashSet<>(); |
| | | if(null != userId){ |
| | | userIds = new HashSet<>(); |
| | | userIds.add(userId); |
| | |
| | | shopId = data.getObjectId(); |
| | | if(null == userId){ |
| | | userIds = orderClient.getAppUserByShoppingShop(shopId).getData(); |
| | | Set<Long> shopServerUser = getShopServerUser(shopId); |
| | | userIds.addAll(shopServerUser); |
| | | }else{ |
| | | userIds = new HashSet<>(); |
| | | userIds.add(userId); |
| | | } |
| | | |
| | | } |
| | | UserStatisticsDetail userStatisticsDetail = appUserMapper.getUserStatisticsDetail(shopId, userIds); |
| | | UserStatisticsDetail userStatisticsDetail = appUserMapper.getUserStatisticsDetail(null, userIds); |
| | | List<Order> orderList = orderClient.getOrderByAppUserIdsAndWriteOffShop(shopId, userIds).getData(); |
| | | BigDecimal shopAmount = orderList.stream().map(Order::getPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | userStatisticsDetail.setShopAmount(shopAmount); |
| | | return R.ok(userStatisticsDetail); |
| | | } |
| | | |
| | |
| | | queryWrapper.in(BalanceChangeRecord::getAppUserId, appUserIds); |
| | | } |
| | | List<BalanceChangeRecord> list = balanceChangeRecordService.list(queryWrapper); |
| | | for (BalanceChangeRecord balanceChangeRecord : list) { |
| | | balanceChangeRecord.setChangeAmount(balanceChangeRecord.getChangeAmount().multiply(new BigDecimal(balanceChangeRecord.getChangeDirection()))); |
| | | } |
| | | |
| | | LambdaQueryWrapper<BalanceChangeRecordCopy> queryWrapper1 = new LambdaQueryWrapper<BalanceChangeRecordCopy>() |
| | | .between(BalanceChangeRecordCopy::getCreateTime, date, date.plusDays(1)) |
| | | .eq(BalanceChangeRecordCopy::getChangeType, 4) |
| | | .eq(BalanceChangeRecordCopy::getVipId, i); |
| | | if(sysUser.getRoleType() == 2){ |
| | | Integer objectId = sysUser.getObjectId(); |
| | | List<AppUser> list1 = appUserService.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getShopId, objectId).eq(AppUser::getDelFlag, 0).ne(AppUser::getStatus, 1)); |
| | | List<Long> appUserIds = list1.stream().map(AppUser::getId).collect(Collectors.toList()); |
| | | Set<Long> data = orderClient.getAppUserByShoppingShop(objectId).getData(); |
| | | if(null != data){ |
| | | appUserIds.addAll(data); |
| | | } |
| | | if(appUserIds.size() == 0){ |
| | | appUserIds.add(-1L); |
| | | } |
| | | queryWrapper1.in(BalanceChangeRecordCopy::getAppUserId, appUserIds); |
| | | } |
| | | List<BalanceChangeRecordCopy> list2 = balanceChangeRecordCopyService.list(queryWrapper1); |
| | | for (BalanceChangeRecordCopy balanceChangeRecordCopy : list2) { |
| | | BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); |
| | | BeanUtils.copyProperties(balanceChangeRecordCopy, balanceChangeRecord); |
| | | balanceChangeRecord.setChangeAmount(balanceChangeRecord.getChangeAmount().multiply(new BigDecimal(balanceChangeRecord.getChangeDirection()))); |
| | | list.add(balanceChangeRecord); |
| | | } |
| | | |
| | | BigDecimal reduce = list.stream().map(BalanceChangeRecord::getChangeAmount).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | String dateKey = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); |
| | | dailyVipCommissions.computeIfAbsent(dateKey, k -> new HashMap<>()) |