Commit 0dd7193e authored by renjie's avatar renjie

ip接口

修改shop接口
parent 3b90dd11
......@@ -71,7 +71,7 @@ public class ShopController {
public ResultDto deleteShop(Principal principal, @RequestBody ShopRequestDto shopRequestDto) {
ResultDto resultDto = new ResultDto();
try {
shopService.deleteShop(principal.getName(), shopRequestDto.getId());
shopService.deleteShop(principal.getName(), shopRequestDto.getShopId());
resultDto.setStatus(0);
}catch (ClientRequestException e) {
resultDto.setStatus(-1);
......@@ -87,7 +87,7 @@ public class ShopController {
public ResultDto bindShop(Principal principal, @RequestBody ShopRequestDto shopRequestDto) {
ResultDto resultDto = new ResultDto();
try {
shopService.bindShop(principal.getName(), shopRequestDto.getId(), shopRequestDto.getIpAddr());
shopService.bindShop(principal.getName(), shopRequestDto.getShopId(), shopRequestDto.getIpAddr());
resultDto.setStatus(0);
}catch (ClientRequestException e) {
resultDto.setStatus(-1);
......@@ -103,7 +103,7 @@ public class ShopController {
public ResultDto unBindShop(Principal principal, @RequestBody ShopRequestDto shopRequestDto) {
ResultDto resultDto = new ResultDto();
try {
shopService.unBindShop(principal.getName(), shopRequestDto.getId(), shopRequestDto.getIpAddr());
shopService.unBindShop(principal.getName(), shopRequestDto.getShopId(), shopRequestDto.getIpAddr());
resultDto.setStatus(0);
}catch (ClientRequestException e) {
resultDto.setStatus(-1);
......
package com.edgec.browserbackend.browser.dto;
public class IpInfoResultDto {
private String username;
private long createdWhen;
private long validTill;
private String status;
private String eipIPAddr;
private String region;
private String errorCode;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
public String getErrorCode() {
return errorCode;
}
public void setStatus(String status) {
this.status = status;
}
public long getCreatedWhen() {
return createdWhen;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public long getValidTill() {
return validTill;
}
public void setValidTill(long validTill) {
this.validTill = validTill;
}
public String getEipIPAddr() {
return eipIPAddr;
}
public void setCreatedWhen(long createdWhen) {
this.createdWhen = createdWhen;
}
public String getStatus() {
return status;
}
public void setEipIPAddr(String eipIPAddr) {
this.eipIPAddr = eipIPAddr;
}
}
......@@ -7,8 +7,6 @@ import java.util.List;
@JsonIgnoreProperties(ignoreUnknown = true)
public class ShopRequestDto {
private String id;
private String shopId;
private String shopName;
......@@ -33,14 +31,6 @@ public class ShopRequestDto {
private FilterDto filter;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getIpAddr() {
return ipAddr;
}
......
......@@ -4,26 +4,24 @@ import com.edgec.browserbackend.account.domain.Account;
import com.edgec.browserbackend.account.repository.AccountRepository;
import com.edgec.browserbackend.browser.ErrorCode.BrowserErrorCode;
import com.edgec.browserbackend.browser.domain.IpResource;
import com.edgec.browserbackend.browser.dto.FilterDto;
import com.edgec.browserbackend.browser.dto.IpBuyResultDto;
import com.edgec.browserbackend.browser.dto.IpResourceDto;
import com.edgec.browserbackend.browser.dto.IpResourceRequestDto;
import com.edgec.browserbackend.browser.dto.*;
import com.edgec.browserbackend.browser.repository.IpResourceRepository;
import com.edgec.browserbackend.browser.service.IpResourceService;
import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class IpResourceServiceImpl implements IpResourceService {
......@@ -31,7 +29,7 @@ public class IpResourceServiceImpl implements IpResourceService {
private final Logger logger = LoggerFactory.getLogger(IpResourceServiceImpl.class);
private static String CLOUDAMURL = "https://www.cloudam.cn";
private static String TESTURL = "https://112.74.13.2";
private static String TESTURL = "http://112.74.13.2";
@Autowired
private AccountRepository accountRepository;
......@@ -39,34 +37,61 @@ public class IpResourceServiceImpl implements IpResourceService {
@Autowired
private IpResourceRepository ipResourceRepository;
public HttpHeaders buildHeader() {
public HttpHeaders buildPostHeader() {
HttpHeaders header = new HttpHeaders();
header.setContentType(MediaType.APPLICATION_JSON);
header.setBearerAuth("5aFM6ntBcLDD8e8PGMXBybx1UsWYYWvQ0jKOal28XoMhaz7gJyxX5GtayPcY6vec");
return header;
}
@Override
public IpResource getIpResourceByIpAddr(String ipAddr) {
IpResource ipResource = ipResourceRepository.findByAddrAndIsDeleted(ipAddr, false);
if (ipResource == null)
throw new ClientRequestException(BrowserErrorCode.IPNOTEXIST);
return ipResource;
public HttpHeaders buildGetHeader() {
HttpHeaders headers = new HttpHeaders();
headers.setBearerAuth("5aFM6ntBcLDD8e8PGMXBybx1UsWYYWvQ0jKOal28XoMhaz7gJyxX5GtayPcY6vec");
return headers;
}
@Override
public IpBuyResultDto buyIp(String username, IpResourceRequestDto ipResourceRequestDto) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders header = buildHeader();
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
map.add("username", "superbrowser");
map.add("name", ipResourceRequestDto.getName());
map.add("region", ipResourceRequestDto.getRegion());
map.add("provider", ipResourceRequestDto.getVendor());
map.add("unit", ipResourceRequestDto.getUnit());
map.add("amount", String.valueOf(ipResourceRequestDto.getAmount()));
HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(map, header);
IpBuyResultDto ipBuyResultDto = restTemplate.postForObject(TESTURL + "/intelligroup/ipresources?accountId={username}", httpEntity, IpBuyResultDto.class);
HttpHeaders header = buildPostHeader();
HashMap<String, Object> map = new HashMap<>();
map.put("name", ipResourceRequestDto.getName());
map.put("region", ipResourceRequestDto.getRegion());
map.put("period", String.valueOf(ipResourceRequestDto.getPeriod()));
map.put("provider", ipResourceRequestDto.getVendor());
map.put("unit", ipResourceRequestDto.getUnit());
map.put("amount", String.valueOf(ipResourceRequestDto.getAmount()));
map.put("instanceSpecKey", String.valueOf(ipResourceRequestDto.getInstanceSpecKey()));
HttpEntity<Map<String, Object>> httpEntity = new HttpEntity<>(map, header);
IpBuyResultDto ipBuyResultDto = null;
try {
ipBuyResultDto = restTemplate.postForObject(TESTURL + "/intelligroup/ipresources?accountId=superbrowser", httpEntity, IpBuyResultDto.class);
} catch (Exception e) {
logger.error("fail to post request", e.getMessage());
logger.error(e.getMessage());
throw new ClientRequestException(BrowserErrorCode.INFORMATIONNOTCOMPELETE);
}
try {
if (ipBuyResultDto != null && ipBuyResultDto.getIplist() != null && ipBuyResultDto.getIplist().size() < 1) {
ipBuyResultDto.getIplist().forEach(x -> {
IpInfoResultDto ipInfoResultDto = new IpInfoResultDto();
Map<String, String> params = new HashMap<String, String>();
params.put("accountId", "superbrowser");
params.put("ip", x.getIp());
HttpHeaders headers = buildGetHeader();
HttpEntity<Map<String, String>> entity = new HttpEntity<>(params, headers);
ResponseEntity<String> result = restTemplate.exchange(TESTURL + "/ecc/ipinfo?accountId={accountId}&ip={ip}", HttpMethod.GET, entity, String.class);
if (ipInfoResultDto != null && StringUtils.isBlank(ipInfoResultDto.getErrorCode())) {
IpResource ipResource = new IpResource();
}
});
}
} catch (Exception e) {
logger.error("fail to post request", e.getMessage());
logger.error(e.getMessage());
throw new ClientRequestException(BrowserErrorCode.UNKNOWN);
}
return ipBuyResultDto;
}
......
......@@ -18,6 +18,7 @@ import com.edgec.browserbackend.browser.repository.ShopRepository;
import com.edgec.browserbackend.browser.repository.UserShopRepository;
import com.edgec.browserbackend.browser.service.ShopService;
import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import com.edgec.browserbackend.common.commons.error.ErrorCode;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -98,6 +99,9 @@ public class ShopServiceImpl implements ShopService {
if (account == null) {
throw new ClientRequestException(AccountErrorCode.NAMENOTEXIST);
}
if (shopDto == null || StringUtils.isBlank(shopDto.getShopId())) {
throw new ClientRequestException(AccountErrorCode.OTHERS);
}
UserShop userShop = userShopRepository.findByUsernameAndShopId(username, shopDto.getShopId());
if (account.getPermission() < 4 || userShop == null) {
throw new ClientRequestException(AccountErrorCode.NOPERMISSION);
......@@ -121,6 +125,10 @@ public class ShopServiceImpl implements ShopService {
if (account == null) {
throw new ClientRequestException(AccountErrorCode.NAMENOTEXIST);
}
if (shopId == null) {
throw new ClientRequestException(AccountErrorCode.OTHERS);
}
logger.error(username, shopId);
UserShop userShop = userShopRepository.findByUsernameAndShopId(username, shopId);
if (account.getPermission() < 4 || userShop == null) {
throw new ClientRequestException(AccountErrorCode.NOPERMISSION);
......@@ -278,8 +286,13 @@ public class ShopServiceImpl implements ShopService {
throw new ClientRequestException(AccountErrorCode.NOPERMISSION);
}
List<String> shopIds = new ArrayList<>();
shopIds = userShopRepository.findByUsernameAndGroupId(username, groupId).stream().
if (groupId.equals("-1")) {
shopIds = userShopRepository.findByUsername(username).stream().
map(x -> x.getShopId()).collect(Collectors.toList());
} else {
shopIds = userShopRepository.findByUsernameAndGroupId(username, groupId).stream().
map(x -> x.getShopId()).collect(Collectors.toList());
}
Page<Shop> shops;
if (filterDto != null && StringUtils.isNotBlank(filterDto.getIpRegion()))
shops = shopRepository.findByShopIdInAndIpRegionLike(shopIds, filterDto.getIpRegion(), pageable);
......
......@@ -10,8 +10,6 @@ import java.util.List;
public interface IpResourceService {
IpResource getIpResourceByIpAddr(String ipAddr);
IpBuyResultDto buyIp(String username, IpResourceRequestDto ipResourceRequestDto);
void renewIp(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