Commit 0b50e2d7 authored by renjie's avatar renjie

增加定时器

单个ip查询接口
parent 5f588c7c
......@@ -152,4 +152,20 @@ public class IpControlloer {
}
return resultDto;
}
@RequestMapping(value = "/detail", method = RequestMethod.POST)
public ResultDto queryIpDetail(Principal principal, @RequestBody IpResourceRequestDto ipResourceRequestDto) {
ResultDto resultDto = new ResultDto();
try {
resultDto.setData(ipResourceService.queryIp(principal.getName(), ipResourceRequestDto));
resultDto.setStatus(0);
} catch (Exception e) {
resultDto.setStatus(-1);
Map<String, Object> statusInfo = new HashMap<>();
statusInfo.put("code", 80001);
statusInfo.put("message", e.getMessage());
resultDto.setStatusInfo(statusInfo);
}
return resultDto;
}
}
......@@ -15,6 +15,7 @@ import com.edgec.browserbackend.browser.repository.*;
import com.edgec.browserbackend.browser.service.IpResourceService;
import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import com.edgec.browserbackend.common.utils.FileUtil;
import com.edgec.browserbackend.common.utils.PollerUtils;
import com.edgec.browserbackend.common.utils.ThreadPoolUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
......@@ -232,6 +233,7 @@ public class IpResourceServiceImpl implements IpResourceService {
if (!ipResourceRequestDto.getVendor().equals("local")) {
CompletableFuture.runAsync(() -> {
PollerUtils.poll(300, 15, () -> {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
......@@ -259,12 +261,13 @@ public class IpResourceServiceImpl implements IpResourceService {
ipBuyResultDto = restTemplate.postForObject(URL + "/intelligroup/ipresources?accountId=browser", httpEntity, IpBuyResultDto.class);
if (StringUtils.isNotBlank(ipBuyResultDto.getErrorCode())) {
IpChargeRequestDto ipChargeRequestDto = buildIpChargeRequestDto(ipResourceRequestDto, 3, 0);
accountService.chargeByMoney(username, -newprice*ipChargeRequestDto.getAmount(), ipChargeRequestDto);
for (IpResourceDto ipResourceDto:ipResourceDtos) {
accountService.chargeByMoney(username, -newprice * ipChargeRequestDto.getAmount(), ipChargeRequestDto);
for (IpResourceDto ipResourceDto : ipResourceDtos) {
ipResourceRepository.deleteById(ipResourceDto.getId());
}
logger.error("fail to buy ip");
logger.error(ipBuyResultDto.getErrorCode());
return false;
}
if (ipBuyResultDto != null && ipBuyResultDto.getIplist() != null && ipBuyResultDto.getIplist().size() >= 1) {
AtomicInteger index = new AtomicInteger();
......@@ -283,7 +286,7 @@ public class IpResourceServiceImpl implements IpResourceService {
});
if (ipBuyResultDto.getIplist().size() < ipResourceDtos.size()) {
IpChargeRequestDto ipChargeRequestDto = buildIpChargeRequestDto(ipResourceRequestDto, 3, 0);
accountService.chargeByMoney(username, -newprice*(ipResourceDtos.size() - ipBuyResultDto.getIplist().size()), ipChargeRequestDto);
accountService.chargeByMoney(username, -newprice * (ipResourceDtos.size() - ipBuyResultDto.getIplist().size()), ipChargeRequestDto);
for (IpResourceDto ipResourceDto : ipResourceDtos) {
IpResource ipResource = ipResourceRepository.findById(ipResourceDto.getId()).orElse(null);
if (ipResource != null && StringUtils.isBlank(ipResource.getAddr())) {
......@@ -294,9 +297,12 @@ public class IpResourceServiceImpl implements IpResourceService {
}
ipTransaction.setStatus(1);
ipTransactionRepository.save(ipTransaction);
return true;
} catch (Exception e) {
logger.error(e.getMessage());
return false;
}
});
}, ThreadPoolUtils.taskExecutorPool);
} else {
ipTransaction.setStatus(1);
......@@ -706,4 +712,56 @@ public class IpResourceServiceImpl implements IpResourceService {
}
return false;
}
@Override
public IpResourceDto queryIp(String username, IpResourceRequestDto ipResourceRequestDto) {
Account account = accountRepository.findByName(username);
if (account == null)
throw new ClientRequestException(AccountErrorCode.NAMENOTEXIST);
IpResource ipResource = null;
if (ipResourceRequestDto.getAddr() != null && ipResourceRequestDto.getAddr().size() > 0)
ipResource = ipResourceRepository.findByAddrAndIsDeleted(ipResourceRequestDto.getAddr().get(0), false);
else if (ipResourceRequestDto.getIpId() != null && ipResourceRequestDto.getIpId().size() > 0)
ipResource = ipResourceRepository.findByIdAndIsDeleted(ipResourceRequestDto.getIpId().get(0), false);
else {
throw new ClientRequestException(BrowserErrorCode.INFORMATIONNOTCOMPELETE);
}
if (ipResource == null)
throw new ClientRequestException(BrowserErrorCode.IPNOTEXIST);
ShopDto shopDto;
if (ipResource.getShopId() == null) {
shopDto = new ShopDto();
} else {
Shop shop = shopRepository.findById(ipResource.getShopId()).orElse(null);
if (shop != null)
shopDto = new ShopDto(shop);
else
shopDto = new ShopDto();
}
if (StringUtils.isNotBlank(ipResource.getAddr())) {
if (ipResource.getValidTime() <= Instant.now().plusSeconds(60 * 60 * 24 * 7).toEpochMilli() && ipResource.getValidTime() > Instant.now().toEpochMilli()) {
ipResource.setStatus(2);
ipResourceRepository.save(ipResource);
} else if (ipResource.getValidTime() <= Instant.now().minusSeconds(60 * 60 * 24 * 7).toEpochMilli()) {
if (ipResource.getIpType() == IpType.VENDOR) {
deleteIp(username, ipResourceRequestDto);
} else {
deleteIp(username, ipResourceRequestDto);
}
} else if (ipResource.getValidTime() <= Instant.now().toEpochMilli()) {
ipResource.setStatus(1);
ipResourceRepository.save(ipResource);
} else {
if (ipResource.getStatus() != 4 && ipResource.getStatus() != 5) {
ipResource.setStatus(0);
ipResourceRepository.save(ipResource);
}
}
}
IpResourceDto ipResourceDto = new IpResourceDto(ipResource, shopDto, true);
return ipResourceDto;
}
}
......@@ -28,4 +28,6 @@ public interface IpResourceService {
void updateIp(String username, IpResourceUpdateDto ipResourceUpdateDto);
boolean queryIpExist(String username, IpResourceUpdateDto ipResourceUpdateDto);
IpResourceDto queryIp(String username, IpResourceRequestDto ipResourceRequestDto);
}
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