Commit 85756f9e authored by renjie's avatar renjie

自有ip

parent ba6e1584
...@@ -21,7 +21,7 @@ public class IpResource implements Serializable { ...@@ -21,7 +21,7 @@ public class IpResource implements Serializable {
private String vendorCn; private String vendorCn;
private String region; private String region;
private String regionCn; private String regionCn;
//0:正常, 1:已过期, 2:即将过期, 3:正在分配, 4:未使用, 5:已失效, 6:未分配 //0:正常, 1:已过期, 2:即将过期, 3:正在分配, 4:未使用, 5:已失效, 6:未分配, 7:未缴费
private int status; private int status;
private List<String> port; private List<String> port;
private long purchasedTime; private long purchasedTime;
......
...@@ -2,5 +2,6 @@ package com.edgec.browserbackend.browser.domain; ...@@ -2,5 +2,6 @@ package com.edgec.browserbackend.browser.domain;
public enum IpType { public enum IpType {
LOCAL, LOCAL,
VENDOR; VENDOR,
OWN;
} }
...@@ -6,7 +6,7 @@ package com.edgec.browserbackend.browser.domain; ...@@ -6,7 +6,7 @@ package com.edgec.browserbackend.browser.domain;
* @CreateTime 2020/3/12 4:01 下午 * @CreateTime 2020/3/12 4:01 下午
**/ **/
public enum Vendor { public enum Vendor {
aliyun("阿里云"), JDCLOUD("京东云"), aws("亚马逊云"), awscn("亚马逊中国"), tencent("腾讯云"), local("本地"); aliyun("阿里云"), JDCLOUD("京东云"), aws("亚马逊云"), awscn("亚马逊中国"), tencent("腾讯云"), local("本地"), own("自有");
private String value; private String value;
......
...@@ -29,6 +29,8 @@ public class IpResourceRequestDto { ...@@ -29,6 +29,8 @@ public class IpResourceRequestDto {
private int ipkeptperiod = 7; private int ipkeptperiod = 7;
private String startscript = ""; private String startscript = "";
//自有IP需要传proxy的账号
private String account;
private String password; private String password;
private String instanceSpecKey; private String instanceSpecKey;
private String imageKey; private String imageKey;
...@@ -196,4 +198,12 @@ public class IpResourceRequestDto { ...@@ -196,4 +198,12 @@ public class IpResourceRequestDto {
public void setShopId(String shopId) { public void setShopId(String shopId) {
this.shopId = shopId; this.shopId = shopId;
} }
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
} }
...@@ -174,7 +174,11 @@ public class IpResourceServiceImpl implements IpResourceService { ...@@ -174,7 +174,11 @@ public class IpResourceServiceImpl implements IpResourceService {
throw new ClientRequestException(BrowserErrorCode.INFORMATIONNOTCOMPELETE); throw new ClientRequestException(BrowserErrorCode.INFORMATIONNOTCOMPELETE);
if (ipResourceRequestDto.getRegionCn() == null) if (ipResourceRequestDto.getRegionCn() == null)
throw new ClientRequestException(BrowserErrorCode.INFORMATIONNOTCOMPELETE); throw new ClientRequestException(BrowserErrorCode.INFORMATIONNOTCOMPELETE);
List<String> vendorPrices = priceList.get(ipResourceRequestDto.getRegionCn()); List<String> vendorPrices;
if (!ipResourceRequestDto.getVendor().equals("own"))
vendorPrices = priceList.get(ipResourceRequestDto.getRegionCn());
else
vendorPrices = priceList.get("自有");
String price = vendorPrices.stream() String price = vendorPrices.stream()
.filter(x -> Vendor.valueOf(ipResourceRequestDto.getVendor()).getValue().equals(x.substring(0, x.indexOf("-")))) .filter(x -> Vendor.valueOf(ipResourceRequestDto.getVendor()).getValue().equals(x.substring(0, x.indexOf("-"))))
.map(x -> x.substring(x.lastIndexOf("-") + 1)).collect(Collectors.joining()); .map(x -> x.substring(x.lastIndexOf("-") + 1)).collect(Collectors.joining());
...@@ -195,7 +199,31 @@ public class IpResourceServiceImpl implements IpResourceService { ...@@ -195,7 +199,31 @@ public class IpResourceServiceImpl implements IpResourceService {
for (int i = 0; i < ipResourceRequestDto.getAmount(); i++) { for (int i = 0; i < ipResourceRequestDto.getAmount(); i++) {
IpResource ipResource = new IpResource(); IpResource ipResource = new IpResource();
if (!ipResourceRequestDto.getVendor().equals("local")) { if (ipResourceRequestDto.getVendor().equals("local")) {
ipResource.setAddr("本地Ip未使用");
ipResource.setIpType(IpType.LOCAL);
ipResource.setVendor(Vendor.valueOf(ipResourceRequestDto.getVendor()));
ipResource.setVendorCn("本地");
ipResource.setStatus(4);
ipResource.setUsername(USERNAME);
if (ipResourceRequestDto.getUnit().equals("week"))
ipResource.setValidTime(Instant.now().atZone(ZoneOffset.UTC).plusWeeks(ipResourceRequestDto.getPeriod()).toInstant().toEpochMilli());
else
ipResource.setValidTime(Instant.now().atZone(ZoneOffset.UTC).plusMonths(ipResourceRequestDto.getPeriod()).toInstant().toEpochMilli());
} else if (ipResourceRequestDto.getVendor().equals("own")) {
if (ipResourceRequestDto.getAddr() == null || ipResourceRequestDto.getAddr().size() == 0)
throw new ClientRequestException(BrowserErrorCode.INFORMATIONNOTCOMPELETE);
ipResource.setAddr(ipResourceRequestDto.getAddr().get(0));
ipResource.setIpType(IpType.OWN);
ipResource.setVendor(Vendor.valueOf(ipResourceRequestDto.getVendor()));
ipResource.setVendorCn("自有");
ipResource.setStatus(4);
ipResource.setUsername(ipResourceRequestDto.getAccount());
if (ipResourceRequestDto.getUnit().equals("week"))
ipResource.setValidTime(Instant.now().atZone(ZoneOffset.UTC).plusWeeks(ipResourceRequestDto.getPeriod()).toInstant().toEpochMilli());
else
ipResource.setValidTime(Instant.now().atZone(ZoneOffset.UTC).plusMonths(ipResourceRequestDto.getPeriod()).toInstant().toEpochMilli());
} else {
ipResource.setAddr(""); ipResource.setAddr("");
ipResource.setIpType(IpType.VENDOR); ipResource.setIpType(IpType.VENDOR);
ipResource.setVendor(Vendor.valueOf(ipResourceRequestDto.getVendor())); ipResource.setVendor(Vendor.valueOf(ipResourceRequestDto.getVendor()));
...@@ -212,20 +240,10 @@ public class IpResourceServiceImpl implements IpResourceService { ...@@ -212,20 +240,10 @@ public class IpResourceServiceImpl implements IpResourceService {
} }
ipResource.setStatus(6); ipResource.setStatus(6);
ipResource.setValidTime(Instant.now().plusSeconds(3600*24*30).toEpochMilli()); ipResource.setValidTime(Instant.now().plusSeconds(3600*24*30).toEpochMilli());
} else { ipResource.setUsername(USERNAME);
ipResource.setAddr("本地Ip未使用");
ipResource.setIpType(IpType.LOCAL);
ipResource.setVendor(Vendor.valueOf(ipResourceRequestDto.getVendor()));
ipResource.setVendorCn("本地");
ipResource.setStatus(4);
if (ipResourceRequestDto.getUnit().equals("week"))
ipResource.setValidTime(Instant.now().atZone(ZoneOffset.UTC).plusWeeks(ipResourceRequestDto.getPeriod()).toInstant().toEpochMilli());
else
ipResource.setValidTime(Instant.now().atZone(ZoneOffset.UTC).plusMonths(ipResourceRequestDto.getPeriod()).toInstant().toEpochMilli());
} }
ipResource.setPurchasedTime(Instant.now().toEpochMilli()); ipResource.setPurchasedTime(Instant.now().toEpochMilli());
ipResource.setPort(port); ipResource.setPort(port);
ipResource.setUsername(USERNAME);
if (account.getParent() != null) if (account.getParent() != null)
ipResource.setUserParent(account.getParent()); ipResource.setUserParent(account.getParent());
ipResource.setRegion(ipResourceRequestDto.getRegion()); ipResource.setRegion(ipResourceRequestDto.getRegion());
...@@ -243,8 +261,10 @@ public class IpResourceServiceImpl implements IpResourceService { ...@@ -243,8 +261,10 @@ public class IpResourceServiceImpl implements IpResourceService {
ipIds.add(ipResource1.getId()); ipIds.add(ipResource1.getId());
} }
if (!ipResourceRequestDto.getVendor().equals("own")) {
IpChargeRequestDto ipChargeRequestDto = buildIpChargeRequestDto(ipResourceRequestDto, 1, ipResourceRequestDto.getPayMethod()); IpChargeRequestDto ipChargeRequestDto = buildIpChargeRequestDto(ipResourceRequestDto, 1, ipResourceRequestDto.getPayMethod());
accountService.chargeByMoney(username, newprice * ipChargeRequestDto.getAmount() * ipChargeRequestDto.getPeriod(), ipChargeRequestDto); accountService.chargeByMoney(username, newprice * ipChargeRequestDto.getAmount() * ipChargeRequestDto.getPeriod(), ipChargeRequestDto);
}
if (ipResourceRequestDto.getShopId() != null) { if (ipResourceRequestDto.getShopId() != null) {
ShopRequestDto shopRequestDto = new ShopRequestDto(); ShopRequestDto shopRequestDto = new ShopRequestDto();
......
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