Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
browser-backend
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
browser-backend
Commits
1c2ad25b
Commit
1c2ad25b
authored
Oct 13, 2024
by
chenchao.deng
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/feat/V1.1' into feat/V1.1
parents
7011f116
9fe946c6
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
151 additions
and
50 deletions
+151
-50
Vendor.java
.../java/com/edgec/browserbackend/browser/domain/Vendor.java
+1
-0
BrowserTask.java
...va/com/edgec/browserbackend/browser/task/BrowserTask.java
+61
-3
IpvClient.java
...gec/browserbackend/common/client/ipvClient/IpvClient.java
+28
-12
RegionMappingEnum.java
.../edgec/browserbackend/common/enums/RegionMappingEnum.java
+17
-7
IpvCliestTest.java
src/test/java/com/edgec/browserbackend/IpvCliestTest.java
+44
-28
No files found.
src/main/java/com/edgec/browserbackend/browser/domain/Vendor.java
View file @
1c2ad25b
...
...
@@ -15,6 +15,7 @@ public enum Vendor {
aws
(
"亚马逊云"
),
awscn
(
"亚马逊中国"
),
tencent
(
"腾讯云"
),
isp
(
"住宅"
),
/**
* 本地ip,即 ip 地址没有设置任何代理
...
...
src/main/java/com/edgec/browserbackend/browser/task/BrowserTask.java
View file @
1c2ad25b
...
...
@@ -34,6 +34,7 @@ import com.edgec.browserbackend.common.client.AliEcsClient;
import
com.edgec.browserbackend.common.client.TenCentEcsClient
;
import
com.edgec.browserbackend.common.client.ipvClient.IpvClient
;
import
com.edgec.browserbackend.common.client.ipvClient.dto.AppInstanceOpenReq
;
import
com.edgec.browserbackend.common.client.ipvClient.dto.AppInstanceResp
;
import
com.edgec.browserbackend.common.client.ipvClient.dto.AppOrderResp
;
import
com.edgec.browserbackend.common.client.ipvClient.dto.OpenParam
;
import
com.edgec.browserbackend.common.commons.utils.NotifyUtils
;
...
...
@@ -264,10 +265,30 @@ public class BrowserTask {
cloudPlatformOrderRepository
.
save
(
cloudPlatformOrder
);
result
=
true
;
}
}
else
if
(
ipResource
.
getVendorCn
().
equals
(
"ipipv"
)){
}
else
if
(
ipResource
.
getVendorCn
().
equals
(
"住宅"
)){
//获取住宅 region映射
String
ispRegion
=
RegionMappingEnum
.
getIspRegion
(
ipResource
.
getRegion
());
if
(
StringUtils
.
isEmpty
(
ispRegion
))
{
log
.
error
(
"buyIpNewTasks-购买ip error:查询不到ipipv映射住宅api-region:{}"
,
ipResource
.
getRegion
());
return
;
}
//静态住宅ip
String
unit
=
ipResource
.
getUnit
().
equals
(
"week"
)
?
"2"
:
"3"
;
//AppOrderResp appOrderResp = IpvClient.instanceOpen();
int
unit
=
ipResource
.
getUnit
().
equals
(
"week"
)
?
2
:
3
;
AppOrderResp
appOrderResp
=
IpvClient
.
instanceOpen
(
cloudPlatformOrder
.
getOrderNo
(),
ipResource
.
getOwner
(),
unit
,
ipResource
.
getPeriod
(),
ispRegion
);
if
(
Objects
.
nonNull
(
appOrderResp
)
&&
StringUtils
.
isNotEmpty
(
appOrderResp
.
getOrderNo
()))
{
cloudPlatformOrder
.
setPlatformOrderId
(
appOrderResp
.
getOrderNo
());
cloudPlatformOrder
.
setPlatformType
(
"isp"
);
cloudPlatformOrder
.
setRegionId
(
ispRegion
);
cloudPlatformOrder
.
setRetryCount
(
0
);
ipResource
.
setStatus
(
3
);
ipResourceRepository
.
save
(
ipResource
);
cloudPlatformOrderRepository
.
save
(
cloudPlatformOrder
);
result
=
true
;
}
}
/**
...
...
@@ -561,6 +582,43 @@ public class BrowserTask {
}
}
}
else
if
(
"isp"
.
equals
(
cloudPlatformOrder
.
getPlatformType
())){
AppOrderResp
order
=
IpvClient
.
getOrder
(
cloudPlatformOrder
.
getPlatformOrderId
());
if
(
order
.
getStatus
()
!=
3
)
{
//订单还没有处理完成
return
;
}
if
(
Objects
.
nonNull
(
order
.
getInstances
()))
{
//判断是否重复购买
AppInstanceResp
appInstanceResp
=
order
.
getInstances
().
get
(
0
);
if
(
appInstanceResp
.
getStatus
()
==
3
)
{
//包年包月 更新ip状态
ipResource
.
setAddr
(
appInstanceResp
.
getIp
());
ipResource
.
setStatus
(
0
);
ipResource
.
setPort
(
Collections
.
singletonList
(
String
.
valueOf
(
appInstanceResp
.
getPort
())));
ipResource
.
setProxyUsername
(
appInstanceResp
.
getUsername
());
ipResource
.
setPassword
(
appInstanceResp
.
getPwd
());
ipResource
.
setValidTime
(
appInstanceResp
.
getUserExpired
());
if
(
StringUtils
.
isNotBlank
(
ipResource
.
getRegion
())
&&
region
.
contains
(
ipResource
.
getRegion
()))
{
ipResource
.
setProxyUsername
(
ipResource
.
getAddr
());
ipResource
.
setProxyPassword
(
genRandom
(
3
,
12
));
ipResource
.
setSpecialLine
(
true
);
}
ipResourceRepository
.
save
(
ipResource
);
IpHistory
ipHistory
=
new
IpHistory
();
ipHistory
.
setIpNo
(
ipResource
.
getAddr
());
ipHistory
.
setPlatformType
(
cloudPlatformOrder
.
getPlatformType
());
ipHistory
.
setPurchasedTime
(
Instant
.
now
().
toEpochMilli
());
ipHistoryRepository
.
save
(
ipHistory
);
return
;
}
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
...
...
src/main/java/com/edgec/browserbackend/common/client/ipvClient/IpvClient.java
View file @
1c2ad25b
...
...
@@ -93,12 +93,7 @@ public class IpvClient {
return
resp
;
}
public
AppOrderResp
getOrder
(
AppGetOrderReq
req
)
throws
Exception
{
byte
[]
params
=
JSON
.
toJSONBytes
(
req
);
byte
[]
res
=
post
(
GET_ORDER_URI
,
params
);
AppOrderResp
resp
=
JSON
.
parseObject
(
new
String
(
res
),
AppOrderResp
.
class
);
return
resp
;
}
public
List
<
AppInstanceResp
>
getInstance
(
AppGetInstanceReq
req
)
throws
Exception
{
byte
[]
params
=
JSON
.
toJSONBytes
(
req
);
...
...
@@ -115,19 +110,26 @@ public class IpvClient {
return
list
;
}
public
static
AppOrderResp
instanceOpen
(
String
orderNo
,
String
owner
,
String
username
,
String
password
,
CloudPlatformConfig
config
)
{
/**
* @Author SN150021
* @Description //购买ip
* @Date 2024/10/8 14:24
**/
public
static
AppOrderResp
instanceOpen
(
String
orderNo
,
String
owner
,
int
unit
,
Integer
cycleTimes
,
String
productNo
)
{
AppOrderResp
resp
=
null
;
try
{
AppInstanceOpenReq
req
=
new
AppInstanceOpenReq
();
req
.
setAppOrderNo
(
orderNo
);
List
<
OpenParam
>
params
=
new
ArrayList
<>();
OpenParam
param
=
new
OpenParam
();
//购买数量 (实例个数) 默认 1
param
.
setCount
(
1
);
param
.
setProductNo
(
config
.
getTemplateId
());
param
.
setUnit
(
1
);
param
.
setDuration
(
10
);
param
.
setFlow
(
1
);
param
.
setCycleTimes
(
1
);
param
.
setProductNo
(
productNo
);
param
.
setUnit
(
unit
);
param
.
setDuration
(
1
);
param
.
setCycleTimes
(
cycleTimes
);
params
.
add
(
param
);
req
.
setParams
(
params
);
byte
[]
params1
=
JSON
.
toJSONBytes
(
req
);
byte
[]
res
=
post
(
INSTANCE_OPEN_URI
,
params1
);
resp
=
JSON
.
parseObject
(
new
String
(
res
),
AppOrderResp
.
class
);
...
...
@@ -138,6 +140,20 @@ public class IpvClient {
return
resp
;
}
/**
* @Author SN150021
* @Description //查询订单
* @Date 2024/10/8 14:24
**/
public
static
AppOrderResp
getOrder
(
String
orderNo
)
throws
Exception
{
AppGetOrderReq
req
=
new
AppGetOrderReq
();
req
.
setOrderNo
(
orderNo
);
byte
[]
params
=
JSON
.
toJSONBytes
(
req
);
byte
[]
res
=
post
(
GET_ORDER_URI
,
params
);
AppOrderResp
resp
=
JSON
.
parseObject
(
new
String
(
res
),
AppOrderResp
.
class
);
return
resp
;
}
public
AppOrderResp
instanceRenew
(
AppInstanceRenewReq
req
)
throws
Exception
{
byte
[]
params
=
JSON
.
toJSONBytes
(
req
);
byte
[]
res
=
post
(
INSTANCE_RENEW_URI
,
params
);
...
...
src/main/java/com/edgec/browserbackend/common/enums/RegionMappingEnum.java
View file @
1c2ad25b
...
...
@@ -50,13 +50,13 @@ public enum RegionMappingEnum {
MANILA
(
"manila"
,
"菲律宾-马尼拉"
,
"ap-southeast-6"
,
""
,
"ipideash_606"
),
SEOUL
(
"seoul"
,
"韩国-首尔"
,
"ap-northeast-2"
,
"ap-seoul"
,
"ipideash_621"
),
TW
(
"taiwan"
,
"中国-台湾"
,
""
,
""
,
"ipideash_592"
),
LSWJS
(
"las
iweijiasi
"
,
"美国-拉斯维加斯"
,
""
,
""
,
"ipideash_592"
),
NY
(
"n
iuyue
"
,
"美国-纽约"
,
""
,
""
,
"ipideash_590"
),
LSG
(
"l
uoshanji
"
,
"美国-洛杉矶"
,
""
,
""
,
"ipideash_615"
),
MAM
(
"m
a
iami"
,
"美国-迈阿密"
,
""
,
""
,
"ipideash_595"
),
HSD
(
"
huashendu
n"
,
"美国-华盛顿"
,
""
,
""
,
"ipideash_613"
),
LSWJS
(
"las
vegas
"
,
"美国-拉斯维加斯"
,
""
,
""
,
"ipideash_592"
),
NY
(
"n
ewyork
"
,
"美国-纽约"
,
""
,
""
,
"ipideash_590"
),
LSG
(
"l
osangeles
"
,
"美国-洛杉矶"
,
""
,
""
,
"ipideash_615"
),
MAM
(
"miami"
,
"美国-迈阿密"
,
""
,
""
,
"ipideash_595"
),
HSD
(
"
washingto
n"
,
"美国-华盛顿"
,
""
,
""
,
"ipideash_613"
),
CAN
(
"canada"
,
"加拿大"
,
""
,
""
,
"ipideash_603"
),
YN
(
"
yuenan
"
,
"越南"
,
""
,
""
,
"ipideash_619"
),
YN
(
"
vietnam
"
,
"越南"
,
""
,
""
,
"ipideash_619"
),
;
...
...
@@ -69,7 +69,7 @@ public enum RegionMappingEnum {
private
final
String
tenCentRegionApi
;
//腾讯云地区api
private
final
String
i
pipvRegionApi
;
//ipipv RegionA
pi
private
final
String
i
spRegionApi
;
//住宅ip a
pi
public
static
RegionMappingEnum
getByRegion
(
String
type
)
{
...
...
@@ -142,4 +142,14 @@ public enum RegionMappingEnum {
}
return
tenCentResion
;
}
public
static
String
getIspRegion
(
String
region
)
{
String
tenCentResion
=
""
;
RegionMappingEnum
byRegion
=
getByRegion
(
region
);
if
(
Objects
.
isNull
(
byRegion
)){
return
tenCentResion
;
}
tenCentResion
=
byRegion
.
getIspRegionApi
();
return
tenCentResion
;
}
}
src/test/java/com/edgec/browserbackend/IpvCliestTest.java
View file @
1c2ad25b
package
com
.
edgec
.
browserbackend
;
import
com.alibaba.fastjson.JSON
;
import
com.edgec.browserbackend.common.client.ipvClient.IpvClient
;
import
com.edgec.browserbackend.common.client.ipvClient.dto.*
;
import
io.micrometer.core.instrument.util.JsonUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
net.minidev.json.JSONUtil
;
import
org.assertj.core.util.Lists
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
...
...
@@ -19,7 +23,7 @@ public class IpvCliestTest {
String
endPoint
=
"https://sandbox.ipipv.com"
;
String
appKey
=
"AK20240923090940"
;
String
appSecret
=
"zd7js60suebep2hkiane59g6v9j8jezv"
;
ipv
=
n
ull
;
ipv
=
n
ew
IpvClient
()
;
}
@Test
...
...
@@ -38,8 +42,9 @@ public class IpvCliestTest {
@Test
void
testGetProductStock
()
throws
Exception
{
AppProductSyncReq
req
=
new
AppProductSyncReq
();
req
.
setProxyType
(
Lists
.
newArrayList
(
103
));
List
<
AppProductSyncResp
>
resp
=
ipv
.
getProductStock
(
req
);
System
.
out
.
println
(
resp
);
System
.
out
.
println
(
JSON
.
toJSONString
(
resp
)
);
}
@Test
...
...
@@ -66,10 +71,41 @@ public class IpvCliestTest {
//param.setAppUsername();
params
.
add
(
param
);
req
.
setParams
(
params
);
//AppOrderResp resp = ipv.instanceOpen(req);
// System.out.println(resp);
AppOrderResp
appOrderResp
=
IpvClient
.
instanceOpen
(
"test00012213"
,
"111223"
,
4
,
2
,
"ipideash_619"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
appOrderResp
));
}
@Test
void
testGetOrder
()
throws
Exception
{
AppGetOrderReq
req
=
new
AppGetOrderReq
();
req
.
setOrderNo
(
"D20241009112841659606"
);
AppOrderResp
resp
=
IpvClient
.
getOrder
(
"C20241008141433048384"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
resp
));
}
@Test
void
testinstanceRelease
()
throws
Exception
{
AppInstanceReleaseReq
req
=
new
AppInstanceReleaseReq
();
req
.
setOrderNo
(
"R20241009112657386808"
);
req
.
setInstances
(
Lists
.
newArrayList
(
"c_gz7bdmvrvns6qea"
));
AppInstanceReleaseResp
resp
=
ipv
.
instanceRelease
(
req
);
System
.
out
.
println
(
JSON
.
toJSONString
(
resp
));
}
@Test
void
testInstanceRenew
()
throws
Exception
{
AppInstanceRenewReq
req
=
new
AppInstanceRenewReq
();
req
.
setAppOrderNo
(
"test0002"
);
Instance
instance
=
new
Instance
();
instance
.
setInstanceNo
(
"c_gz7bdmvrvns6qea"
);
instance
.
setDuration
(
1
);
req
.
setInstances
(
Lists
.
newArrayList
(
instance
));
AppOrderResp
resp
=
ipv
.
instanceRenew
(
req
);
System
.
out
.
println
(
JSON
.
toJSONString
(
resp
));
}
@Test
void
testAddIpWhiteList
()
throws
Exception
{
AppAddIpWhiteListReq
req3
=
new
AppAddIpWhiteListReq
();
...
...
@@ -136,35 +172,15 @@ public class IpvCliestTest {
@Test
void
testgetInstance
()
throws
Exception
{
AppGetInstanceReq
req
=
new
AppGetInstanceReq
();
req
.
setInstances
(
null
);
req
.
setInstances
(
Lists
.
newArrayList
(
"c_gz7bdmvrvns6qea"
)
);
List
<
AppInstanceResp
>
resp
=
ipv
.
getInstance
(
req
);
System
.
out
.
println
(
resp
);
System
.
out
.
println
(
JSON
.
toJSONString
(
resp
)
);
}
@Test
void
testInstanceRenew
()
throws
Exception
{
AppInstanceOpenReq
req
=
new
AppInstanceOpenReq
();
req
.
setAppOrderNo
(
"01"
);
//AppOrderResp resp = ipv.instanceOpen(req);
//System.out.println(resp);
}
@Test
void
testGetOrder
()
throws
Exception
{
AppGetOrderReq
req
=
new
AppGetOrderReq
();
req
.
setOrderNo
(
"1234"
);
AppOrderResp
resp
=
ipv
.
getOrder
(
req
);
System
.
out
.
println
(
resp
);
}
@Test
void
testinstanceRelease
()
throws
Exception
{
AppInstanceReleaseReq
req
=
new
AppInstanceReleaseReq
();
req
.
setOrderNo
(
"1234"
);
req
.
setInstances
(
null
);
AppInstanceReleaseResp
resp
=
ipv
.
instanceRelease
(
req
);
System
.
out
.
println
(
resp
);
}
@Test
void
testproductAreaList
()
throws
Exception
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment