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
7da93612
Commit
7da93612
authored
Aug 17, 2024
by
chenchao.deng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
购买定时任务优化 +浏览器参数配置
parent
f38384e0
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
123 additions
and
6 deletions
+123
-6
CloudPlatformOrder.java
...gec/browserbackend/browser/domain/CloudPlatformOrder.java
+2
-0
IpHistory.java
...va/com/edgec/browserbackend/browser/domain/IpHistory.java
+30
-0
PlatformOptions.java
.../edgec/browserbackend/browser/domain/PlatformOptions.java
+2
-0
IpHistoryRepository.java
...rowserbackend/browser/repository/IpHistoryRepository.java
+19
-0
PlatformOptionsRepository.java
...backend/browser/repository/PlatformOptionsRepository.java
+1
-1
IpResourceServiceImpl.java
...erbackend/browser/service/Impl/IpResourceServiceImpl.java
+1
-1
BrowserTask.java
...va/com/edgec/browserbackend/browser/task/BrowserTask.java
+0
-0
ExpireSoonWarn.java
...com/edgec/browserbackend/browser/task/ExpireSoonWarn.java
+20
-1
AliEcsClient.java
.../com/edgec/browserbackend/common/client/AliEcsClient.java
+34
-0
ipOptions.json
src/main/resources/ipOptions.json
+0
-0
BrowserBackendApplicationTests.java
.../edgec/browserbackend/BrowserBackendApplicationTests.java
+14
-3
No files found.
src/main/java/com/edgec/browserbackend/browser/domain/CloudPlatformOrder.java
View file @
7da93612
...
...
@@ -33,4 +33,6 @@ public class CloudPlatformOrder {
private
String
platformType
;
//云平台类型
private
Integer
retryCount
;
//重试次数
}
src/main/java/com/edgec/browserbackend/browser/domain/IpHistory.java
0 → 100644
View file @
7da93612
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
/**
* 分配ip历史记录表
*
* @Author: Chen
* @Date: 2024/08/14
*/
@Getter
@Setter
@NoArgsConstructor
@Document
(
collection
=
"ipHistory"
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
IpHistory
{
@Id
private
String
id
;
private
String
ipNo
;
//ipNo
private
String
platformType
;
//云平台类型
private
long
purchasedTime
;
}
src/main/java/com/edgec/browserbackend/browser/domain/PlatformOptions.java
View file @
7da93612
...
...
@@ -21,6 +21,8 @@ public class PlatformOptions {
private
int
weight
;
private
int
platformType
;
private
boolean
deleted
;
private
Map
<
String
,
String
>
subPlatform
;
...
...
src/main/java/com/edgec/browserbackend/browser/repository/IpHistoryRepository.java
0 → 100644
View file @
7da93612
package
com
.
edgec
.
browserbackend
.
browser
.
repository
;
import
com.edgec.browserbackend.browser.domain.CloudPlatformConfig
;
import
com.edgec.browserbackend.browser.domain.IpHistory
;
import
com.edgec.browserbackend.browser.domain.Shop
;
import
java.util.List
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
/**
* @Description //购买ip记录 repository
* @Date 2024年8月1日
* @Author Chen
**/
public
interface
IpHistoryRepository
extends
MongoRepository
<
IpHistory
,
String
>
{
List
<
IpHistory
>
findByIpNoAndPurchasedTimeAfter
(
String
ipNo
,
long
purchasedTime
);
}
src/main/java/com/edgec/browserbackend/browser/repository/PlatformOptionsRepository.java
View file @
7da93612
...
...
@@ -13,5 +13,5 @@ import java.util.List;
public
interface
PlatformOptionsRepository
extends
MongoRepository
<
PlatformOptions
,
String
>,
PlatformOptionsRepositoryCustom
{
List
<
PlatformOptions
>
findAllByOrderByWeightDesc
();
List
<
PlatformOptions
>
findAllByDeletedIsNotOrderByWeightDesc
(
boolean
b
);
List
<
PlatformOptions
>
findAllByDeletedIsNotOrderBy
PlatformTypeAsc
WeightDesc
(
boolean
b
);
}
src/main/java/com/edgec/browserbackend/browser/service/Impl/IpResourceServiceImpl.java
View file @
7da93612
...
...
@@ -766,7 +766,7 @@ public class IpResourceServiceImpl implements IpResourceService {
@Override
public
List
<
PlatformOptions
>
getPlatformOptions
()
{
try
{
List
<
PlatformOptions
>
platformOptions
=
platformOptionsRepository
.
findAllByDeletedIsNotOrderByWeightDesc
(
true
);
List
<
PlatformOptions
>
platformOptions
=
platformOptionsRepository
.
findAllByDeletedIsNotOrderBy
PlatformTypeAsc
WeightDesc
(
true
);
// Collections.sort(platformOptions, Comparator.comparing(PlatformOptions::getWeight).reversed());
return
platformOptions
;
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/edgec/browserbackend/browser/task/BrowserTask.java
View file @
7da93612
This diff is collapsed.
Click to expand it.
src/main/java/com/edgec/browserbackend/browser/task/ExpireSoonWarn.java
View file @
7da93612
...
...
@@ -9,6 +9,7 @@ import com.edgec.browserbackend.browser.repository.IpResourceRepository;
import
com.edgec.browserbackend.common.commons.error.ClientRequestException
;
import
com.edgec.browserbackend.common.commons.utils.SmsUtils
;
import
net.javacrumbs.shedlock.core.SchedulerLock
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
...
...
@@ -32,6 +33,7 @@ public class ExpireSoonWarn {
@SchedulerLock
(
name
=
"ExpireSoonWarnsendMessages"
,
lockAtMostForString
=
"PT600S"
,
lockAtLeastForString
=
"PT600S"
)
public
void
sendMessages
()
{
this
.
sendExpiredIpAccount
(
0
);
this
.
sendExpiredIpAccount
(
3
);
this
.
sendExpiredIpAccount
(
7
);
}
...
...
@@ -52,7 +54,24 @@ public class ExpireSoonWarn {
if
(
ipResources
!=
null
&&
ipResources
.
size
()
>
0
)
{
Map
<
String
,
List
<
IpResource
>>
map
=
ipResources
.
stream
().
collect
(
Collectors
.
groupingBy
(
IpResource:
:
getOwner
));
for
(
String
key
:
map
.
keySet
())
{
sendToAccount
(
key
,
day
,
map
.
get
(
key
).
size
(),
map
.
get
(
key
).
stream
().
map
(
x
->
x
.
getAddr
()).
collect
(
Collectors
.
toList
()));
if
(
day
==
7
)
{
List
<
String
>
mouth
=
map
.
get
(
key
).
stream
()
.
filter
(
item
->
item
.
getUnit
().
equals
(
"mouth"
))
.
map
(
IpResource:
:
getAddr
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
mouth
)){
sendToAccount
(
key
,
day
,
map
.
get
(
key
).
size
(),
mouth
);
}
}
else
if
(
day
==
3
){
List
<
String
>
mouth
=
map
.
get
(
key
).
stream
()
.
filter
(
item
->
item
.
getUnit
().
equals
(
"week"
))
.
map
(
IpResource:
:
getAddr
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
mouth
)){
sendToAccount
(
key
,
day
,
map
.
get
(
key
).
size
(),
mouth
);
}
}
else
{
sendToAccount
(
key
,
day
,
map
.
get
(
key
).
size
(),
map
.
get
(
key
).
stream
().
map
(
x
->
x
.
getAddr
()).
collect
(
Collectors
.
toList
()));
}
}
}
}
...
...
src/main/java/com/edgec/browserbackend/common/client/AliEcsClient.java
View file @
7da93612
...
...
@@ -8,6 +8,8 @@ import com.aliyun.sdk.service.ecs20140526.models.DeleteInstanceRequest;
import
com.aliyun.sdk.service.ecs20140526.models.DeleteInstanceResponse
;
import
com.aliyun.sdk.service.ecs20140526.models.DescribeInstancesRequest
;
import
com.aliyun.sdk.service.ecs20140526.models.DescribeInstancesResponse
;
import
com.aliyun.sdk.service.ecs20140526.models.ModifyInstanceChargeTypeRequest
;
import
com.aliyun.sdk.service.ecs20140526.models.ModifyInstanceChargeTypeResponse
;
import
com.aliyun.sdk.service.ecs20140526.models.RenewInstanceRequest
;
import
com.aliyun.sdk.service.ecs20140526.models.RenewInstanceResponse
;
import
com.aliyun.sdk.service.ecs20140526.models.RunInstancesRequest
;
...
...
@@ -180,4 +182,36 @@ public class AliEcsClient {
return
resp
;
}
/**
* 将按量改为包年包月
*/
public
static
ModifyInstanceChargeTypeResponse
modifyInstanceChargeType
(
String
owner
,
String
periodUnit
,
int
period
,
String
regionId
,
String
instanceId
)
{
AsyncClient
client
=
createClient
(
regionId
);
ModifyInstanceChargeTypeResponse
modifyInstanceChargeTypeResponse
=
null
;
try
{
String
instanceIds
=
String
.
format
(
"[\"%s\"]"
,
instanceId
);
ModifyInstanceChargeTypeRequest
modifyInstanceChargeTypeRequest
=
ModifyInstanceChargeTypeRequest
.
builder
()
.
instanceIds
(
instanceIds
)
.
regionId
(
regionId
)
.
instanceChargeType
(
"PrePaid"
)
.
periodUnit
(
periodUnit
)
.
period
(
period
)
.
build
();
log
.
info
(
"调用aliEcs将实例由量改为包年包月,入参:owner:{},regionId:{},periodUnit:{},period:{}, instanceId{}"
,
owner
,
regionId
,
periodUnit
,
period
,
instanceId
);
CompletableFuture
<
ModifyInstanceChargeTypeResponse
>
response
=
client
.
modifyInstanceChargeType
(
modifyInstanceChargeTypeRequest
);
modifyInstanceChargeTypeResponse
=
response
.
get
();
log
.
info
(
"调用aliEcs将实例由量改为包年包月,响应参数:owner:{},response:{}"
,
owner
,
JSON
.
toJSON
(
modifyInstanceChargeTypeResponse
));
}
catch
(
Exception
e
)
{
log
.
error
(
"fail to aliEcs modifyInstanceChargeType {}"
,
e
.
getMessage
());
}
finally
{
client
.
close
();
}
return
modifyInstanceChargeTypeResponse
;
}
}
src/main/resources/ipOptions.json
View file @
7da93612
This diff is collapsed.
Click to expand it.
src/test/java/com/edgec/browserbackend/BrowserBackendApplicationTests.java
View file @
7da93612
package
com
.
edgec
.
browserbackend
;
import
com.alibaba.fastjson.JSONObject
;
import
com.aliyun.sdk.service.ecs20140526.models.DeleteInstanceResponse
;
import
com.edgec.browserbackend.account.domain.UserBalance
;
import
com.edgec.browserbackend.account.repository.UserBalanceRepository
;
import
com.edgec.browserbackend.account.service.SmsUtils
;
import
com.edgec.browserbackend.browser.domain.CloudPlatformConfig
;
import
com.edgec.browserbackend.browser.domain.IpHistory
;
import
com.edgec.browserbackend.browser.repository.CloudPlatformConfigRepository
;
import
com.edgec.browserbackend.browser.repository.IpHistoryRepository
;
import
com.edgec.browserbackend.browser.task.BrowserTask
;
import
com.edgec.browserbackend.common.client.AliEcsClient
;
import
com.edgec.browserbackend.common.commons.utils.SmsUtils
;
import
com.edgec.browserbackend.common.utils.Aes
;
import
java.time.Instant
;
import
javax.annotation.Resource
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
...
...
@@ -40,12 +44,19 @@ class BrowserBackendApplicationTests {
//browserTask.queryIpNewTasks();
//AliEcsClient.runInstances("111","ceshi11","2222",config);
//AliEcsClient.getDescribeInstances("测试","i-wz9hf0i13xj6h904k14p","cn-shenzhen");
DeleteInstanceResponse
response
=
AliEcsClient
.
deleteInstance
(
"测试"
,
"i-j6ciop90gd68yg5n0sqo"
,
"cn-hongkong"
);
DeleteInstanceResponse
response
=
AliEcsClient
.
deleteInstance
(
"测试"
,
"i-j6cd9fujd6we3dzk8z9e"
,
"cn-hongkong"
);
//AliEcsClient.modifyInstanceChargeType("18711016574","Week",1,"cn-hongkong", "i-j6cd9fujd6we3dzk8z9e");
}
@Resource
private
IpHistoryRepository
ipHistoryRepository
;
@Test
void
test3
()
throws
Exception
{
SmsUtils
.
sendSmsOTP
(
"18711016574"
);
JSONObject
param
=
new
JSONObject
();
param
.
put
(
"day"
,
"7"
);
param
.
put
(
"amount"
,
"5"
);
SmsUtils
.
sendIpSms
(
"18711016574"
,
SmsUtils
.
SmsTemplateCode
.
IPWILLEXPIRE_EXPIRE
,
param
);
}
}
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