Commit 3ccbca33 authored by renjie's avatar renjie

admin接口修改

parent 2c26a3a6
package com.edgec.browserbackend.account.dto;
import com.edgec.browserbackend.account.domain.UserBalance;
public class UserUsedDto {
UserBalance userBalance;
String promotionCode;
public String getPromotionCode() {
return promotionCode;
}
public void setPromotionCode(String promotionCode) {
this.promotionCode = promotionCode;
}
public UserBalance getUserBalance() {
return userBalance;
}
public void setUserBalance(UserBalance userBalance) {
this.userBalance = userBalance;
}
}
......@@ -4,6 +4,7 @@ import com.edgec.browserbackend.account.domain.*;
import com.edgec.browserbackend.account.dto.BillQueryResultDto;
import com.edgec.browserbackend.account.dto.IpCountQueryResultDto;
import com.edgec.browserbackend.account.dto.PromotionQueryResultDto;
import com.edgec.browserbackend.account.dto.UserUsedDto;
import com.edgec.browserbackend.browser.domain.IpResource;
import com.edgec.browserbackend.browser.dto.IpResourceDto;
import org.springframework.data.domain.Page;
......@@ -66,5 +67,5 @@ public interface AdministratorService {
File getProxyConfig();
Page<UserBalance> getAllUserUsed(Pageable pageable);
Page<UserUsedDto> getAllUserUsed(Pageable pageable);
}
package com.edgec.browserbackend.account.service.impl;
import com.edgec.browserbackend.account.domain.*;
import com.edgec.browserbackend.account.dto.AccountPromotionDto;
import com.edgec.browserbackend.account.dto.BillQueryResultDto;
import com.edgec.browserbackend.account.dto.IpCountQueryResultDto;
import com.edgec.browserbackend.account.dto.PromotionQueryResultDto;
import com.edgec.browserbackend.account.dto.*;
import com.edgec.browserbackend.account.exception.AccountErrorCode;
import com.edgec.browserbackend.account.repository.*;
import com.edgec.browserbackend.account.service.AdministratorService;
......@@ -36,6 +33,7 @@ import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Collectors;
@Service
......@@ -454,11 +452,21 @@ public class AdministratorServiceImpl implements AdministratorService {
promotion.setCommission(promotion.getCommission() + x.getPromotion().getCommission());
double secondCommission = 0;
ipCount.addAndGet(ipResourceRepository.countAllByOwnerAndIsDeletedAndValidTimeGreaterThan(x.getName(), false, Instant.now().toEpochMilli()));
List<Account> children = accountRepository.findByParent(x.getName());
if (children != null && children.size() > 0) {
ipCount.addAndGet(ipResourceRepository.countAllByOwnerInAndIsDeletedAndValidTimeGreaterThan(children.stream().map(Account::getName).collect(Collectors.toList()), false, Instant.now().toEpochMilli()));
}
if (finalAccount.getPromotion().isSale() && x.getParent() == null) {
List<Account> secondPromotes = accountRepository.findByPromotionCodeAndParentIsNull(x.getPromotion().getCode());
if (secondPromotes != null && secondPromotes.size() > 0) {
for (Account secondPromote : secondPromotes) {
ipCount.addAndGet(ipResourceRepository.countAllByOwnerAndIsDeletedAndValidTimeGreaterThan(secondPromote.getName(), false, Instant.now().toEpochMilli()));
if (finalAccount.getPromotion().isSale()) {
ipCount.addAndGet(ipResourceRepository.countAllByOwnerAndIsDeletedAndValidTimeGreaterThan(secondPromote.getName(), false, Instant.now().toEpochMilli()));
List<Account> secondChildren = accountRepository.findByParent(secondPromote.getName());
if (children != null && children.size() > 0) {
ipCount.addAndGet(ipResourceRepository.countAllByOwnerInAndIsDeletedAndValidTimeGreaterThan(secondChildren.stream().map(Account::getName).collect(Collectors.toList()), false, Instant.now().toEpochMilli()));
}
}
List<UserPrePaidBilling> userPrePaidBillings1 = userPrePaidBillingRepository.findByAdministratorAndPayMethodInAndTimestampBetween(secondPromote.getName(), Arrays.asList(1,2,3), dateTime1.getTime(), dateTime2.getTime());
if (userPrePaidBillings1 != null && userPrePaidBillings1.size() > 0)
secondCommission += userPrePaidBillings1.stream().mapToDouble(UserPrePaidBilling::getTotal).sum();
......@@ -514,9 +522,21 @@ public class AdministratorServiceImpl implements AdministratorService {
}
@Override
public Page<UserBalance> getAllUserUsed(Pageable pageable) {
public Page<UserUsedDto> getAllUserUsed(Pageable pageable) {
Page<UserBalance> userBalances = userBalanceRepository.findAllOrderByUsedDesc(pageable);
return userBalances;
List<UserBalance> userBalanceList = userBalances.toList();
List<UserUsedDto> userUsedDtos = new ArrayList<>();
if (userBalanceList != null && userBalanceList.size() > 0) {
userBalanceList.forEach(x -> {
UserUsedDto userUsedDto = new UserUsedDto();
Account account = accountRepository.findByName(x.getUsername());
userUsedDto.setPromotionCode(account.getPromotionCode());
userUsedDto.setUserBalance(x);
userUsedDtos.add(userUsedDto);
});
}
Page<UserUsedDto> userUsedDtopage = new PageImpl<>(userUsedDtos, pageable, userBalances.getTotalElements());
return userUsedDtopage;
}
}
......
......@@ -50,5 +50,6 @@ public interface IpResourceRepository extends MongoRepository<IpResource, String
long countAllByIsDeletedAndValidTimeGreaterThan(boolean isDeleted, long time);
long countAllByOwnerAndIsDeletedAndValidTimeGreaterThan(String username, boolean isDeleted, long time);
long countAllByOwnerInAndIsDeletedAndValidTimeGreaterThan(List<String> username, boolean isDeleted, long time);
long countAllByOwner(String username);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment