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
4a022416
Commit
4a022416
authored
Jun 21, 2020
by
jim
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
5abd5ff7
2a7e3083
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
58 changed files
with
549 additions
and
1349 deletions
+549
-1349
Account.java
...java/com/edgec/browserbackend/account/domain/Account.java
+25
-206
AccountRepository.java
.../browserbackend/account/repository/AccountRepository.java
+3
-2
AccountServiceImpl.java
...owserbackend/account/service/impl/AccountServiceImpl.java
+0
-0
AdministratorServiceImpl.java
...ackend/account/service/impl/AdministratorServiceImpl.java
+0
-0
PaymentServiceImpl.java
...owserbackend/account/service/impl/PaymentServiceImpl.java
+12
-17
UserLackMoneyServiceImpl.java
...ackend/account/service/impl/UserLackMoneyServiceImpl.java
+3
-1
AccountServicePool.java
...dgec/browserbackend/account/utils/AccountServicePool.java
+5
-2
OAuthResponseExceptionTranslator.java
...backend/auth/config/OAuthResponseExceptionTranslator.java
+1
-2
ResourceServerConfiguration.java
...owserbackend/auth/config/ResourceServerConfiguration.java
+1
-7
AuthErrorHandler.java
...dgec/browserbackend/auth/controller/AuthErrorHandler.java
+1
-0
MongoOAuth2AccessToken.java
...wserbackend/auth/domain/mongo/MongoOAuth2AccessToken.java
+6
-36
MongoOAuth2RefreshToken.java
...serbackend/auth/domain/mongo/MongoOAuth2RefreshToken.java
+6
-22
IpControlloer.java
...dgec/browserbackend/browser/controller/IpControlloer.java
+6
-0
ShopController.java
...gec/browserbackend/browser/controller/ShopController.java
+5
-2
BindHistory.java
.../com/edgec/browserbackend/browser/domain/BindHistory.java
+2
-37
Group.java
...n/java/com/edgec/browserbackend/browser/domain/Group.java
+28
-36
IpCountRecord.java
...om/edgec/browserbackend/browser/domain/IpCountRecord.java
+6
-32
IpOptions.java
...va/com/edgec/browserbackend/browser/domain/IpOptions.java
+5
-30
IpResource.java
...a/com/edgec/browserbackend/browser/domain/IpResource.java
+12
-262
IpSummary.java
...va/com/edgec/browserbackend/browser/domain/IpSummary.java
+19
-31
IpType.java
.../java/com/edgec/browserbackend/browser/domain/IpType.java
+11
-0
OperationHistory.java
...edgec/browserbackend/browser/domain/OperationHistory.java
+19
-71
PlatformOptions.java
.../edgec/browserbackend/browser/domain/PlatformOptions.java
+5
-18
ProxyConfig.java
.../com/edgec/browserbackend/browser/domain/ProxyConfig.java
+4
-16
Shop.java
...in/java/com/edgec/browserbackend/browser/domain/Shop.java
+81
-113
ShopSummary.java
.../com/edgec/browserbackend/browser/domain/ShopSummary.java
+21
-31
SpecialLine.java
.../com/edgec/browserbackend/browser/domain/SpecialLine.java
+27
-49
UserShop.java
...ava/com/edgec/browserbackend/browser/domain/UserShop.java
+13
-46
Vendor.java
.../java/com/edgec/browserbackend/browser/domain/Vendor.java
+21
-3
IpFilterDto.java
...ava/com/edgec/browserbackend/browser/dto/IpFilterDto.java
+11
-21
IpListRequestDto.java
...om/edgec/browserbackend/browser/dto/IpListRequestDto.java
+5
-3
PageInfo.java
...n/java/com/edgec/browserbackend/browser/dto/PageInfo.java
+7
-24
ShopFilterDto.java
...a/com/edgec/browserbackend/browser/dto/ShopFilterDto.java
+10
-29
ShopStringResultDto.java
...edgec/browserbackend/browser/dto/ShopStringResultDto.java
+3
-8
IpResourceRepositoryCustomImpl.java
...nd/browser/repository/IpResourceRepositoryCustomImpl.java
+11
-29
GroupServiceImpl.java
...browserbackend/browser/service/Impl/GroupServiceImpl.java
+4
-4
IpAndShopServiceImpl.java
...serbackend/browser/service/Impl/IpAndShopServiceImpl.java
+37
-26
IpResourceServiceImpl.java
...erbackend/browser/service/Impl/IpResourceServiceImpl.java
+0
-0
ShopServiceImpl.java
.../browserbackend/browser/service/Impl/ShopServiceImpl.java
+0
-0
BrowserTask.java
...va/com/edgec/browserbackend/browser/task/BrowserTask.java
+16
-21
ExpireSoonWarn.java
...com/edgec/browserbackend/browser/task/ExpireSoonWarn.java
+3
-1
PaymentTask.java
...va/com/edgec/browserbackend/browser/task/PaymentTask.java
+1
-1
KafkaUtils.java
...edgec/browserbackend/common/commons/kafka/KafkaUtils.java
+1
-0
CommonStringUtils.java
...rowserbackend/common/commons/utils/CommonStringUtils.java
+9
-8
Pair.java
...a/com/edgec/browserbackend/common/commons/utils/Pair.java
+1
-0
PriorityThreadPoolExecutor.java
...kend/common/commons/utils/PriorityThreadPoolExecutor.java
+1
-0
RemoteShellExecutor.java
...wserbackend/common/commons/utils/RemoteShellExecutor.java
+18
-14
TimestampUtils.java
...c/browserbackend/common/commons/utils/TimestampUtils.java
+1
-0
UUIDGenerator.java
...ec/browserbackend/common/commons/utils/UUIDGenerator.java
+1
-0
InstanceStatus.java
.../edgec/browserbackend/common/constant/InstanceStatus.java
+1
-0
SpecialUsers.java
...om/edgec/browserbackend/common/constant/SpecialUsers.java
+12
-33
BaseResponse.java
...ava/com/edgec/browserbackend/common/dto/BaseResponse.java
+4
-34
Result.java
...main/java/com/edgec/browserbackend/common/dto/Result.java
+1
-0
Aes.java
src/main/java/com/edgec/browserbackend/common/utils/Aes.java
+13
-3
JsonUtils.java
...java/com/edgec/browserbackend/common/utils/JsonUtils.java
+12
-6
PollerUtils.java
...va/com/edgec/browserbackend/common/utils/PollerUtils.java
+2
-1
ThreadPoolUtils.java
...om/edgec/browserbackend/common/utils/ThreadPoolUtils.java
+4
-6
Trans.java
...ain/java/com/edgec/browserbackend/common/utils/Trans.java
+12
-5
No files found.
src/main/java/com/edgec/browserbackend/account/domain/Account.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
account
.
domain
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
org.hibernate.validator.constraints.Length
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
@NoArgsConstructor
@Getter
@Setter
@Document
(
collection
=
"accounts"
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
Account
{
/**
* 账户id
*/
@Id
private
String
name
;
/**
* 父账户
*/
private
String
parent
;
//子用户使用
/**
* 子用户使用的密码
*/
private
String
password
;
private
Date
lastSeen
;
...
...
@@ -44,6 +58,13 @@ public class Account {
private
boolean
allowedToCreateSubUser
=
false
;
/**
* 操作与权重
* <p>
* 下载 cookie:1
* 上传 cookie:2
* 店铺管理(增删改店铺、绑定与解绑ip):4
*/
private
int
permission
=
-
1
;
private
Promotion
promotion
;
...
...
@@ -64,24 +85,8 @@ public class Account {
private
List
<
String
>
queryIpUrlList
=
new
ArrayList
<>();
public
Date
getSignupDate
()
{
return
signupDate
;
}
public
void
setSignupDate
(
Date
signupDate
)
{
this
.
signupDate
=
signupDate
;
}
public
boolean
isPrePaid
()
{
return
isPrePaid
;
}
public
void
setPrePaid
(
boolean
prePaid
)
{
isPrePaid
=
prePaid
;
}
public
Account
()
{
}
@Length
(
min
=
0
,
max
=
20000
)
private
String
note
;
public
Account
(
AccountDto
account
)
{
this
.
setName
(
account
.
getName
());
...
...
@@ -94,191 +99,5 @@ public class Account {
this
.
setWhiteList
(
account
.
getWhiteList
());
}
public
String
getEmail
()
{
return
email
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
String
getCompanyName
()
{
return
companyName
;
}
public
void
setCompanyName
(
String
companyName
)
{
this
.
companyName
=
companyName
;
}
public
String
getJobTitle
()
{
return
jobTitle
;
}
public
void
setJobTitle
(
String
jobTitle
)
{
this
.
jobTitle
=
jobTitle
;
}
public
String
getPhoneNumber
()
{
return
phoneNumber
;
}
public
void
setPhoneNumber
(
String
phoneNumber
)
{
this
.
phoneNumber
=
phoneNumber
;
}
@Length
(
min
=
0
,
max
=
20000
)
private
String
note
;
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
Date
getLastSeen
()
{
return
lastSeen
;
}
public
void
setLastSeen
(
Date
lastSeen
)
{
this
.
lastSeen
=
lastSeen
;
}
public
String
getNote
()
{
return
note
;
}
public
void
setNote
(
String
note
)
{
this
.
note
=
note
;
}
public
String
getParent
()
{
return
parent
;
}
public
void
setParent
(
String
parent
)
{
this
.
parent
=
parent
;
}
public
boolean
isAllowedToCreateSubUser
()
{
return
allowedToCreateSubUser
;
}
public
void
setAllowedToCreateSubUser
(
boolean
allowedToCreateSubUser
)
{
this
.
allowedToCreateSubUser
=
allowedToCreateSubUser
;
}
public
String
getLockReason
()
{
return
lockReason
;
}
public
void
setLockReason
(
String
lockReason
)
{
this
.
lockReason
=
lockReason
;
}
public
String
getToken
()
{
return
token
;
}
public
void
setToken
(
String
token
)
{
this
.
token
=
token
;
}
public
int
getPermission
()
{
return
permission
;
}
public
void
setPermission
(
int
permission
)
{
this
.
permission
=
permission
;
}
public
List
<
String
>
getWhiteList
()
{
return
whiteList
;
}
public
void
setWhiteList
(
List
<
String
>
whiteList
)
{
this
.
whiteList
=
whiteList
;
}
public
int
getChildCount
()
{
return
childCount
;
}
public
void
setChildCount
(
int
childCount
)
{
this
.
childCount
=
childCount
;
}
public
int
getGroupCount
()
{
return
groupCount
;
}
public
void
setGroupCount
(
int
groupCount
)
{
this
.
groupCount
=
groupCount
;
}
public
int
getShopCount
()
{
return
shopCount
;
}
public
void
setShopCount
(
int
shopCount
)
{
this
.
shopCount
=
shopCount
;
}
public
Promotion
getPromotion
()
{
return
promotion
;
}
public
void
setPromotion
(
Promotion
promotion
)
{
this
.
promotion
=
promotion
;
}
public
String
getNickname
()
{
return
nickname
;
}
public
void
setNickname
(
String
nickname
)
{
this
.
nickname
=
nickname
;
}
public
String
getComment
()
{
return
comment
;
}
public
void
setComment
(
String
comment
)
{
this
.
comment
=
comment
;
}
public
List
<
String
>
getQueryIpUrlList
()
{
return
queryIpUrlList
;
}
public
void
setQueryIpUrlList
(
List
<
String
>
queryIpUrlList
)
{
this
.
queryIpUrlList
=
queryIpUrlList
;
}
public
int
getAuthorized
()
{
return
authorized
;
}
public
void
setAuthorized
(
int
authorized
)
{
this
.
authorized
=
authorized
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getPromotionCode
()
{
return
promotionCode
;
}
public
void
setPromotionCode
(
String
promotionCode
)
{
this
.
promotionCode
=
promotionCode
;
}
}
src/main/java/com/edgec/browserbackend/account/repository/AccountRepository.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
account
.
repository
;
import
com.edgec.browserbackend.account.domain.Account
;
import
com.edgec.browserbackend.browser.dto.PageInfo
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
...
...
@@ -9,11 +8,12 @@ import org.springframework.stereotype.Repository;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Optional
;
@Repository
public
interface
AccountRepository
extends
MongoRepository
<
Account
,
String
>,
AccountRepositoryCustom
{
Account
findByName
(
String
name
);
Optional
<
Account
>
findByName
(
String
name
);
Account
findByEmail
(
String
email
);
...
...
@@ -37,6 +37,7 @@ public interface AccountRepository extends MongoRepository<Account, String>, Acc
Page
<
Account
>
findAllBySignupDateBetweenAndParentIsNullAndAuthorized
(
Pageable
pageable
,
Date
startDate
,
Date
endDate
,
int
authorized
);
@Override
Page
<
Account
>
findAll
(
Pageable
pageable
);
List
<
Account
>
findByNameIn
(
List
<
String
>
names
);
...
...
src/main/java/com/edgec/browserbackend/account/service/impl/AccountServiceImpl.java
View file @
4a022416
This diff is collapsed.
Click to expand it.
src/main/java/com/edgec/browserbackend/account/service/impl/AdministratorServiceImpl.java
View file @
4a022416
This diff is collapsed.
Click to expand it.
src/main/java/com/edgec/browserbackend/account/service/impl/PaymentServiceImpl.java
View file @
4a022416
...
...
@@ -4,21 +4,18 @@ import com.alibaba.fastjson.JSONObject;
import
com.alipay.api.AlipayClient
;
import
com.alipay.api.DefaultAlipayClient
;
import
com.alipay.api.request.AlipayFundTransToaccountTransferRequest
;
import
com.alipay.api.request.AlipayFundTransUniTransferRequest
;
import
com.alipay.api.request.AlipayTradePagePayRequest
;
import
com.alipay.api.request.AlipayTradeQueryRequest
;
import
com.alipay.api.response.AlipayFundTransToaccountTransferResponse
;
import
com.alipay.api.response.AlipayFundTransUniTransferResponse
;
import
com.alipay.api.response.AlipayTradePagePayResponse
;
import
com.alipay.api.response.AlipayTradeQueryResponse
;
import
com.edgec.browserbackend.account.controller.AccountController
;
import
com.edgec.browserbackend.account.domain.*
;
import
com.edgec.browserbackend.account.exception.AccountErrorCode
;
import
com.edgec.browserbackend.account.repository.*
;
import
com.edgec.browserbackend.account.service.AccountService
;
import
com.edgec.browserbackend.account.service.PaymentService
;
import
com.edgec.browserbackend.account.controller.AccountController
;
import
com.edgec.browserbackend.account.domain.*
;
import
com.edgec.browserbackend.account.service.SmsUtils
;
import
com.edgec.browserbackend.account.service.UserPrePaidBillingService
;
import
com.edgec.browserbackend.alipay.AlipayConfig
;
import
com.edgec.browserbackend.alipay.CloudamAlipayConfig
;
import
com.edgec.browserbackend.alipay.VpsAlipayConfig
;
...
...
@@ -32,10 +29,8 @@ import org.apache.commons.lang3.StringUtils;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.stereotype.Service
;
import
javax.swing.text.Document
;
import
java.text.SimpleDateFormat
;
import
java.time.Instant
;
import
java.time.YearMonth
;
...
...
@@ -176,12 +171,12 @@ public class PaymentServiceImpl implements PaymentService {
if
(
chargeType
==
0
)
{
UserPrePaidBilling
bill
=
new
UserPrePaidBilling
();
Account
account
=
accountRepository
.
findByName
(
byTradeNo
.
getUsername
());
Account
account
=
accountRepository
.
findByName
(
byTradeNo
.
getUsername
())
.
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
))
;
if
(
account
!=
null
&&
account
.
getParent
()
!=
null
)
bill
.
setAdministrator
(
account
.
getParent
());
else
bill
.
setAdministrator
(
account
.
getName
());
bill
.
setTradeNo
(
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
new
Date
())+
SmsUtils
.
createRandom
(
true
,
4
));
bill
.
setTradeNo
(
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
new
Date
())
+
SmsUtils
.
createRandom
(
true
,
4
));
bill
.
setChargeType
(
0
);
bill
.
setAmount
(
0
);
bill
.
setUnit
(
null
);
...
...
@@ -308,12 +303,12 @@ public class PaymentServiceImpl implements PaymentService {
if
(
chargeType
==
0
)
{
UserPrePaidBilling
bill
=
new
UserPrePaidBilling
();
Account
account
=
accountRepository
.
findByName
(
byTradeNo
.
getUsername
());
Account
account
=
accountRepository
.
findByName
(
byTradeNo
.
getUsername
())
.
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
))
;
if
(
account
!=
null
&&
account
.
getParent
()
!=
null
)
bill
.
setAdministrator
(
account
.
getParent
());
else
bill
.
setAdministrator
(
account
.
getName
());
bill
.
setTradeNo
(
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
new
Date
())+
SmsUtils
.
createRandom
(
true
,
4
));
bill
.
setTradeNo
(
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
new
Date
())
+
SmsUtils
.
createRandom
(
true
,
4
));
bill
.
setChargeType
(
0
);
bill
.
setAmount
(
0
);
bill
.
setUnit
(
null
);
...
...
@@ -365,7 +360,7 @@ public class PaymentServiceImpl implements PaymentService {
public
String
alipayPutPayOrder
(
String
username
,
int
amount
,
String
by
)
{
Account
byName
=
accountService
.
findByName
(
username
);
if
(
byName
==
null
)
if
(
byName
==
null
)
throw
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
,
"account does not exist: "
+
username
);
if
(
byName
.
getPermission
()
<
4
)
throw
new
ClientRequestException
(
AccountErrorCode
.
NOPERMISSION
,
"account does not have permission: "
+
username
);
...
...
@@ -483,12 +478,12 @@ public class PaymentServiceImpl implements PaymentService {
UserBalance
userBalance
=
userBalanceRepository
.
findById
(
username
).
orElse
(
null
);
UserPrePaidBilling
bill
=
new
UserPrePaidBilling
();
Account
account
=
accountRepository
.
findByName
(
username
);
Account
account
=
accountRepository
.
findByName
(
username
)
.
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
))
;
if
(
account
!=
null
&&
account
.
getParent
()
!=
null
)
bill
.
setAdministrator
(
account
.
getParent
());
else
bill
.
setAdministrator
(
account
.
getName
());
bill
.
setTradeNo
(
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
new
Date
())+
SmsUtils
.
createRandom
(
true
,
4
));
bill
.
setTradeNo
(
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
new
Date
())
+
SmsUtils
.
createRandom
(
true
,
4
));
bill
.
setChargeType
(
0
);
bill
.
setAmount
(
0
);
bill
.
setUnit
(
null
);
...
...
@@ -645,7 +640,7 @@ public class PaymentServiceImpl implements PaymentService {
if
(
response
==
null
)
throw
new
ClientRequestException
(
BrowserErrorCode
.
UNKNOWN
);
if
(
response
.
isSuccess
())
{
if
(
response
.
isSuccess
())
{
internalOrder
.
setSucceed
(
true
);
userWithdrawRepository
.
save
(
internalOrder
);
...
...
@@ -654,7 +649,7 @@ public class PaymentServiceImpl implements PaymentService {
bill
.
setAdministrator
(
byName
.
getParent
());
else
bill
.
setAdministrator
(
byName
.
getName
());
bill
.
setTradeNo
(
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
new
Date
())+
SmsUtils
.
createRandom
(
true
,
4
));
bill
.
setTradeNo
(
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
).
format
(
new
Date
())
+
SmsUtils
.
createRandom
(
true
,
4
));
bill
.
setChargeType
(
4
);
bill
.
setAmount
(
0
);
bill
.
setUnit
(
null
);
...
...
@@ -675,7 +670,7 @@ public class PaymentServiceImpl implements PaymentService {
userPrePaidBillingRepository
.
save
(
bill
);
return
true
;
}
else
{
}
else
{
byName
.
getPromotion
().
setAllGift
(
byName
.
getPromotion
().
getAllGift
()
+
amount
);
byName
.
getPromotion
().
setWithdrawn
(
byName
.
getPromotion
().
getWithdrawn
()
-
amount
);
accountRepository
.
save
(
byName
);
...
...
src/main/java/com/edgec/browserbackend/account/service/impl/UserLackMoneyServiceImpl.java
View file @
4a022416
...
...
@@ -2,9 +2,11 @@ package com.edgec.browserbackend.account.service.impl;
import
com.alibaba.fastjson.JSONObject
;
import
com.edgec.browserbackend.account.domain.*
;
import
com.edgec.browserbackend.account.exception.AccountErrorCode
;
import
com.edgec.browserbackend.account.repository.AccountRepository
;
import
com.edgec.browserbackend.account.repository.UserLackMoneyRepository
;
import
com.edgec.browserbackend.account.service.UserLackMoneyService
;
import
com.edgec.browserbackend.common.commons.error.ClientRequestException
;
import
com.edgec.browserbackend.common.commons.utils.SmsUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -45,7 +47,7 @@ public class UserLackMoneyServiceImpl implements UserLackMoneyService {
//发送短信提醒
if
(
totalUnpaid
>
0
&&
ifMessageRemind
)
{
Account
account
=
repository
.
findByName
(
username
);
Account
account
=
repository
.
findByName
(
username
)
.
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
))
;
String
telephone
=
account
.
getPhoneNumber
();
JSONObject
param
=
new
JSONObject
();
param
.
put
(
"billsamount"
,
billsAmount
);
...
...
src/main/java/com/edgec/browserbackend/account/utils/AccountServicePool.java
View file @
4a022416
...
...
@@ -8,13 +8,16 @@ public class AccountServicePool {
private
static
final
int
POOL_COUNT
=
10
;
public
static
final
ExecutorService
taskPool
=
Executors
.
newFixedThreadPool
(
POOL_COUNT
,
new
ThreadFactory
()
{
public
static
final
ExecutorService
taskPool
=
Executors
.
newFixedThreadPool
(
POOL_COUNT
,
new
ThreadFactory
()
{
int
count
=
1
;
@Override
public
Thread
newThread
(
Runnable
runnable
)
{
return
new
Thread
(
runnable
,
"account-service-pool"
+
count
++);
}
});
}
);
}
src/main/java/com/edgec/browserbackend/auth/config/OAuthResponseExceptionTranslator.java
View file @
4a022416
...
...
@@ -36,8 +36,7 @@ public class OAuthResponseExceptionTranslator extends DefaultWebResponseExceptio
headers
.
set
(
"WWW-Authenticate"
,
String
.
format
(
"%s %s"
,
OAuth2AccessToken
.
BEARER_TYPE
,
e
.
getSummary
()));
}
ResponseEntity
<
OAuth2Exception
>
response
=
new
ResponseEntity
<
OAuth2Exception
>(
ex
,
headers
,
HttpStatus
.
valueOf
(
status
));
ResponseEntity
<
OAuth2Exception
>
response
=
new
ResponseEntity
<
OAuth2Exception
>(
ex
,
headers
,
HttpStatus
.
valueOf
(
status
));
return
response
;
}
...
...
src/main/java/com/edgec/browserbackend/auth/config/ResourceServerConfiguration.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
auth
.
config
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity
;
import
org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer
;
...
...
@@ -13,14 +9,12 @@ import org.springframework.security.oauth2.config.annotation.web.configuration.R
@EnableResourceServer
public
class
ResourceServerConfiguration
extends
ResourceServerConfigurerAdapter
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
ResourceServerConfiguration
.
class
);
@Override
public
void
configure
(
HttpSecurity
http
)
throws
Exception
{
http
.
authorizeRequests
()
.
antMatchers
(
"/oauth/**"
).
permitAll
()
.
antMatchers
(
"/shop/**"
,
"/ip/**"
,
"/group/**"
,
"/0xadministrator/**"
,
"/user/**"
,
"/history/**"
).
authenticated
()
.
antMatchers
(
"/shop/**"
,
"/ip/**"
,
"/group/**"
,
"/0xadministrator/**"
,
"/user/**"
,
"/history/**"
).
authenticated
()
.
and
()
//关闭跨站请求防护
.
csrf
().
disable
();
...
...
src/main/java/com/edgec/browserbackend/auth/controller/AuthErrorHandler.java
View file @
4a022416
...
...
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
import
org.springframework.web.context.request.WebRequest
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
;
@Deprecated
@ControllerAdvice
public
class
AuthErrorHandler
extends
ResponseEntityExceptionHandler
{
...
...
src/main/java/com/edgec/browserbackend/auth/domain/mongo/MongoOAuth2AccessToken.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
auth
.
domain
.
mongo
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.annotation.PersistenceConstructor
;
import
org.springframework.data.mongodb.core.mapping.Document
;
...
...
@@ -8,6 +11,9 @@ import java.time.Instant;
import
java.util.Arrays
;
import
java.util.Objects
;
@NoArgsConstructor
@Getter
@Setter
@Document
public
class
MongoOAuth2AccessToken
{
...
...
@@ -21,8 +27,6 @@ public class MongoOAuth2AccessToken {
private
String
refreshToken
;
private
long
createdAt
;
public
MongoOAuth2AccessToken
()
{
}
@PersistenceConstructor
public
MongoOAuth2AccessToken
(
final
String
tokenId
,
...
...
@@ -42,33 +46,6 @@ public class MongoOAuth2AccessToken {
this
.
createdAt
=
Instant
.
now
().
toEpochMilli
();
}
public
String
getTokenId
()
{
return
tokenId
;
}
public
byte
[]
getToken
()
{
return
token
;
}
public
String
getAuthenticationId
()
{
return
authenticationId
;
}
public
String
getUsername
()
{
return
username
;
}
public
String
getClientId
()
{
return
clientId
;
}
public
byte
[]
getAuthentication
()
{
return
authentication
;
}
public
String
getRefreshToken
()
{
return
refreshToken
;
}
@Override
public
int
hashCode
()
{
...
...
@@ -100,11 +77,4 @@ public class MongoOAuth2AccessToken {
'}'
;
}
public
long
getCreatedAt
()
{
return
createdAt
;
}
public
void
setCreatedAt
(
long
createdAt
)
{
this
.
createdAt
=
createdAt
;
}
}
src/main/java/com/edgec/browserbackend/auth/domain/mongo/MongoOAuth2RefreshToken.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
auth
.
domain
.
mongo
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
org.apache.commons.lang3.builder.EqualsBuilder
;
import
org.apache.commons.lang3.builder.HashCodeBuilder
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
...
...
@@ -9,6 +12,9 @@ import org.springframework.data.mongodb.core.mapping.Document;
import
java.time.Instant
;
@Getter
@Setter
@NoArgsConstructor
@Document
public
class
MongoOAuth2RefreshToken
{
...
...
@@ -18,8 +24,6 @@ public class MongoOAuth2RefreshToken {
private
byte
[]
authentication
;
private
long
createdAt
;
public
MongoOAuth2RefreshToken
()
{
}
@PersistenceConstructor
public
MongoOAuth2RefreshToken
(
final
String
tokenId
,
...
...
@@ -31,18 +35,6 @@ public class MongoOAuth2RefreshToken {
this
.
createdAt
=
Instant
.
now
().
toEpochMilli
();
}
public
String
getTokenId
()
{
return
tokenId
;
}
public
byte
[]
getToken
()
{
return
token
;
}
public
byte
[]
getAuthentication
()
{
return
authentication
;
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
...
...
@@ -75,12 +67,4 @@ public class MongoOAuth2RefreshToken {
.
append
(
"authentication"
,
authentication
)
.
toString
();
}
public
long
getCreatedAt
()
{
return
createdAt
;
}
public
void
setCreatedAt
(
long
createdAt
)
{
this
.
createdAt
=
createdAt
;
}
}
src/main/java/com/edgec/browserbackend/browser/controller/IpControlloer.java
View file @
4a022416
...
...
@@ -27,6 +27,9 @@ public class IpControlloer {
@Autowired
private
IpResourceService
ipResourceService
;
/**
* 购买IP资源
*/
@RequestMapping
(
value
=
"/buy"
,
method
=
RequestMethod
.
POST
)
public
ResultDto
buyIp
(
Principal
principal
,
@RequestBody
IpResourceRequestDto
ipResourceRequestDto
)
{
ResultDto
resultDto
=
new
ResultDto
();
...
...
@@ -72,6 +75,9 @@ public class IpControlloer {
return
resultDto
;
}
/**
* 删除指定IP资源
*/
@RequestMapping
(
value
=
"/del"
,
method
=
RequestMethod
.
POST
)
public
ResultDto
deleteIp
(
Principal
principal
,
@RequestBody
IpResourceRequestDto
ipResourceRequestDto
)
{
ResultDto
resultDto
=
new
ResultDto
();
...
...
src/main/java/com/edgec/browserbackend/browser/controller/ShopController.java
View file @
4a022416
...
...
@@ -34,7 +34,7 @@ public class ShopController {
@Autowired
private
IpAndShopService
ipAndShopService
;
@
RequestMapping
(
value
=
"/add"
,
method
=
RequestMethod
.
POST
)
@
PostMapping
(
"/add"
)
public
ResultDto
addShop
(
Principal
principal
,
@RequestBody
ShopResultDto
shopResultDto
)
{
ResultDto
resultDto
=
new
ResultDto
();
try
{
...
...
@@ -48,7 +48,7 @@ public class ShopController {
return
resultDto
;
}
@
RequestMapping
(
value
=
"/multiadd"
,
method
=
RequestMethod
.
POST
)
@
PostMapping
(
"/multiadd"
)
public
ResultDto
addShops
(
Principal
principal
,
@RequestParam
(
"file"
)
MultipartFile
file
)
{
ResultDto
resultDto
=
new
ResultDto
();
String
name
=
file
.
getOriginalFilename
();
...
...
@@ -123,6 +123,9 @@ public class ShopController {
return
resultDto
;
}
/**
* 移动店铺 到 分组
*/
@RequestMapping
(
value
=
"/transfer"
,
method
=
RequestMethod
.
POST
)
public
ResultDto
transferShop
(
Principal
principal
,
@RequestBody
ShopRequestDto
shopRequestDto
)
{
ResultDto
resultDto
=
new
ResultDto
();
...
...
src/main/java/com/edgec/browserbackend/browser/domain/BindHistory.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
java.io.Serializable
;
import
java.util.StringTokenizer
;
import
lombok.Data
;
@Data
public
class
BindHistory
{
private
String
shopName
;
private
String
ip
;
private
String
platform
;
private
String
unbindTime
;
public
BindHistory
(){
}
public
String
getShopName
()
{
return
shopName
;
}
public
void
setShopName
(
String
shopName
)
{
this
.
shopName
=
shopName
;
}
public
String
getIp
()
{
return
ip
;
}
public
void
setPlatform
(
String
platform
)
{
this
.
platform
=
platform
;
}
public
String
getPlatform
()
{
return
platform
;
}
public
void
setIp
(
String
ip
)
{
this
.
ip
=
ip
;
}
public
String
getUnbindTime
()
{
return
unbindTime
;
}
public
void
setUnbindTime
(
String
unbindTime
)
{
this
.
unbindTime
=
unbindTime
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/Group.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
org.apache.commons.lang3.StringUtils
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
org.springframework.util.StringUtils
;
import
java.util.List
;
@Getter
@Setter
@Document
(
collection
=
"groups"
)
public
class
Group
{
/**
* 组 id
*/
@Id
private
String
id
;
/**
* 组名
*/
private
String
name
;
/**
* 组创建者
*/
private
String
owner
;
/**
* 组详情
*/
private
String
details
;
public
void
of
(
Group
group
){
if
(
StringUtils
.
isNotBlank
(
group
.
getId
()))
public
void
of
(
Group
group
)
{
if
(
!
StringUtils
.
isEmpty
(
group
.
getId
()))
{
this
.
setId
(
group
.
getId
());
if
(
StringUtils
.
isNotBlank
(
group
.
getOwner
()))
this
.
setOwner
(
group
.
getOwner
());
if
(
StringUtils
.
isNotBlank
(
group
.
getDetails
()))
this
.
setDetails
(
group
.
getDetails
());
if
(
StringUtils
.
isNotBlank
(
group
.
getName
()))
this
.
setName
(
group
.
getName
());
}
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getOwner
()
{
return
owner
;
}
public
void
setOwner
(
String
owner
)
{
this
.
owner
=
owner
;
}
public
String
getName
()
{
return
name
;
if
(!
StringUtils
.
isEmpty
(
group
.
getOwner
()))
{
this
.
setOwner
(
group
.
getOwner
());
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
if
(!
StringUtils
.
isEmpty
(
group
.
getDetails
())
)
{
this
.
setDetails
(
group
.
getDetails
())
;
}
public
String
getDetails
(
)
{
return
details
;
if
(!
StringUtils
.
isEmpty
(
group
.
getName
())
)
{
this
.
setName
(
group
.
getName
())
;
}
public
void
setDetails
(
String
details
)
{
this
.
details
=
details
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/IpCountRecord.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
lombok.Data
;
import
org.springframework.data.mongodb.core.mapping.Document
;
@Data
@Document
(
collection
=
"ipcountrecord"
)
public
class
IpCountRecord
{
private
String
username
;
private
long
timestamp
;
private
long
ip_using
;
private
long
ip_all
;
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
}
public
long
getIp_all
()
{
return
ip_all
;
}
public
void
setIp_all
(
long
ip_all
)
{
this
.
ip_all
=
ip_all
;
}
public
long
getIp_using
()
{
return
ip_using
;
}
private
String
username
;
public
void
setIp_using
(
long
ip_using
)
{
this
.
ip_using
=
ip_using
;
}
private
long
timestamp
;
public
long
getTimestamp
()
{
return
timestamp
;
}
private
long
ip_using
;
public
void
setTimestamp
(
long
timestamp
)
{
this
.
timestamp
=
timestamp
;
}
private
long
ip_all
;
}
src/main/java/com/edgec/browserbackend/browser/domain/IpOptions.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
...
...
@@ -11,6 +13,9 @@ import java.util.Map;
* @Author jason
* @CreateTime 2020/3/12 10:30 上午
**/
@Getter
@Setter
@Document
(
"ipOptions"
)
public
class
IpOptions
{
...
...
@@ -25,35 +30,5 @@ public class IpOptions {
private
List
<
String
>
ipDurations
;
public
List
<
String
>
getIpDurations
()
{
return
ipDurations
;
}
public
void
setIpDurations
(
List
<
String
>
ipDurations
)
{
this
.
ipDurations
=
ipDurations
;
}
public
Map
<
String
,
List
<
String
>>
getIpPlatForm
()
{
return
ipPlatForm
;
}
public
void
setIpPlatForm
(
Map
<
String
,
List
<
String
>>
ipPlatForm
)
{
this
.
ipPlatForm
=
ipPlatForm
;
}
public
Map
<
String
,
List
<
String
>>
getIpRegion
()
{
return
ipRegion
;
}
public
void
setIpRegion
(
Map
<
String
,
List
<
String
>>
ipRegion
)
{
this
.
ipRegion
=
ipRegion
;
}
public
Map
<
String
,
Map
<
String
,
List
<
String
>>>
getSupportedPlatForm
()
{
return
supportedPlatForm
;
}
public
void
setSupportedPlatForm
(
Map
<
String
,
Map
<
String
,
List
<
String
>>>
supportedPlatForm
)
{
this
.
supportedPlatForm
=
supportedPlatForm
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/IpResource.java
View file @
4a022416
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
;
...
...
@@ -9,6 +12,9 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.Objects
;
@Getter
@Setter
@NoArgsConstructor
@Document
(
collection
=
"ipresource"
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
IpResource
implements
Serializable
{
...
...
@@ -53,270 +59,14 @@ public class IpResource implements Serializable {
private
String
unit
;
private
int
period
;
public
IpResource
()
{
}
public
String
getDetails
()
{
return
details
;
}
public
void
setDetails
(
String
details
)
{
this
.
details
=
details
;
}
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getRegion
()
{
return
region
;
}
public
void
setRegion
(
String
region
)
{
this
.
region
=
region
;
}
public
String
getRegionCn
()
{
return
regionCn
;
}
public
void
setRegionCn
(
String
regionCn
)
{
this
.
regionCn
=
regionCn
;
}
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
IpType
getIpType
()
{
return
ipType
;
}
public
void
setIpType
(
IpType
ipType
)
{
this
.
ipType
=
ipType
;
}
public
List
<
BindHistory
>
getBindHistory
()
{
return
bindHistory
;
}
public
void
setBindHistory
(
List
<
BindHistory
>
bindHistory
)
{
this
.
bindHistory
=
bindHistory
;
}
public
long
getPurchasedTime
()
{
return
purchasedTime
;
}
public
void
setPurchasedTime
(
long
purchasedTime
)
{
this
.
purchasedTime
=
purchasedTime
;
}
public
long
getValidTime
()
{
return
validTime
;
}
public
void
setValidTime
(
long
validTime
)
{
this
.
validTime
=
validTime
;
}
public
Vendor
getVendor
()
{
return
vendor
;
}
public
void
setVendor
(
Vendor
vendor
)
{
this
.
vendor
=
vendor
;
}
public
boolean
isDeleted
()
{
return
isDeleted
;
}
public
void
setDeleted
(
boolean
deleted
)
{
isDeleted
=
deleted
;
}
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
}
public
List
<
String
>
getPort
()
{
return
port
;
}
public
void
setPort
(
List
<
String
>
port
)
{
this
.
port
=
port
;
}
public
String
getAddr
()
{
return
addr
;
}
public
void
setAddr
(
String
addr
)
{
this
.
addr
=
addr
;
}
public
String
getUserParent
()
{
return
userParent
;
}
public
void
setUserParent
(
String
userParent
)
{
this
.
userParent
=
userParent
;
}
public
List
<
String
>
getProtocol
()
{
return
protocol
;
}
public
void
setProtocol
(
List
<
String
>
protocol
)
{
this
.
protocol
=
protocol
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getOwner
()
{
return
owner
;
}
public
void
setOwner
(
String
owner
)
{
this
.
owner
=
owner
;
}
public
boolean
isLocked
()
{
return
isLocked
;
}
public
void
setLocked
(
boolean
locked
)
{
isLocked
=
locked
;
}
public
long
getLockTimestamp
()
{
return
lockTimestamp
;
}
public
void
setLockTimestamp
(
long
lockTimestamp
)
{
this
.
lockTimestamp
=
lockTimestamp
;
}
public
String
getUnit
()
{
return
unit
;
}
public
void
setUnit
(
String
unit
)
{
this
.
unit
=
unit
;
}
public
int
getPeriod
()
{
return
period
;
}
public
void
setPeriod
(
int
period
)
{
this
.
period
=
period
;
}
public
double
getPrice
()
{
return
price
;
}
public
void
setPrice
(
double
price
)
{
this
.
price
=
price
;
}
public
List
<
String
>
getShopIds
()
{
return
shopIds
;
}
public
void
setShopIds
(
List
<
String
>
shopIds
)
{
this
.
shopIds
=
shopIds
;
}
public
String
getVendorCn
()
{
return
vendorCn
;
}
public
void
setVendorCn
(
String
vendorCn
)
{
this
.
vendorCn
=
vendorCn
;
}
public
String
getProxyPassword
()
{
return
proxyPassword
;
}
public
void
setProxyPassword
(
String
proxyPassword
)
{
this
.
proxyPassword
=
proxyPassword
;
}
public
String
getProxyUsername
()
{
return
proxyUsername
;
}
public
void
setProxyUsername
(
String
proxyUsername
)
{
this
.
proxyUsername
=
proxyUsername
;
}
public
boolean
isSpecialLine
()
{
return
specialLine
;
}
public
void
setSpecialLine
(
boolean
specialLine
)
{
this
.
specialLine
=
specialLine
;
}
public
long
getHealthLockTimestamp
()
{
return
healthLockTimestamp
;
}
public
void
setHealthLockTimestamp
(
long
healthLockTimestamp
)
{
this
.
healthLockTimestamp
=
healthLockTimestamp
;
}
public
boolean
isUsingSpecialLine
()
{
return
usingSpecialLine
;
}
public
void
setUsingSpecialLine
(
boolean
usingSpecialLine
)
{
this
.
usingSpecialLine
=
usingSpecialLine
;
}
public
boolean
isBind
()
{
return
bind
;
}
public
void
setBind
(
boolean
bind
)
{
this
.
bind
=
bind
;
}
public
String
getShopId
()
{
return
shopId
;
}
public
void
setShopId
(
String
shopId
)
{
this
.
shopId
=
shopId
;
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(!(
o
instanceof
IpResource
))
return
false
;
if
(
this
==
o
)
{
return
true
;
}
if
(!(
o
instanceof
IpResource
))
{
return
false
;
}
IpResource
that
=
(
IpResource
)
o
;
return
Objects
.
equals
(
getId
(),
that
.
getId
());
}
...
...
src/main/java/com/edgec/browserbackend/browser/domain/IpSummary.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
public
class
IpSummary
{
private
int
total
;
private
int
unbind
;
private
int
willExpire
;
private
int
expired
;
public
int
getExpired
()
{
return
expired
;
}
import
lombok.Data
;
public
void
setExpired
(
int
expired
)
{
this
.
expired
=
expired
;
}
public
int
getTotal
()
{
return
total
;
}
@Data
public
class
IpSummary
{
public
void
setTotal
(
int
total
)
{
this
.
total
=
total
;
}
/**
* ip 总数
*/
private
int
total
;
public
int
getUnbind
()
{
return
unbind
;
}
/**
* 未绑定 ip 数
*/
private
int
unbind
;
public
void
setUnbind
(
int
unbind
)
{
this
.
unbind
=
unbind
;
}
/**
* 将要过期的 ip 数
*/
private
int
willExpire
;
public
int
getWillExpire
()
{
return
willExpire
;
}
/**
* 已过期的 ip 数
*/
private
int
expired
;
public
void
setWillExpire
(
int
willExpire
)
{
this
.
willExpire
=
willExpire
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/IpType.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
public
enum
IpType
{
/**
* 本地ip,即 ip 地址没有设置任何代理
*/
LOCAL
,
/**
* ip代理
*/
VENDOR
,
/**
* 自有ip,即该ip不是从我们系统购买的
*/
OWN
;
}
src/main/java/com/edgec/browserbackend/browser/domain/OperationHistory.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
com.edgec.browserbackend.browser.dto.OperationHistoryDto
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
...
...
@@ -8,6 +11,9 @@ import java.time.LocalDateTime;
import
java.time.ZoneOffset
;
import
java.time.format.DateTimeFormatter
;
@Getter
@Setter
@NoArgsConstructor
@Document
(
collection
=
"operationhistory"
)
public
class
OperationHistory
{
@Id
...
...
@@ -20,89 +26,31 @@ public class OperationHistory {
private
long
operationTime
;
private
String
administrator
;
public
OperationHistory
()
{
}
public
OperationHistory
(
OperationHistoryDto
operationHistoryDto
)
{
if
(
operationHistoryDto
.
getAccount
()
!=
null
)
if
(
operationHistoryDto
.
getAccount
()
!=
null
)
{
this
.
username
=
operationHistoryDto
.
getAccount
();
if
(
operationHistoryDto
.
getNickname
()
!=
null
)
this
.
nickname
=
operationHistoryDto
.
getNickname
();
if
(
operationHistoryDto
.
getLoginIp
()
!=
null
)
this
.
loginIp
=
operationHistoryDto
.
getLoginIp
();
if
(
operationHistoryDto
.
getLoginPlace
()
!=
null
)
this
.
loginPlace
=
operationHistoryDto
.
getLoginPlace
();
if
(
operationHistoryDto
.
getOperation
()
!=
null
)
this
.
operation
=
operationHistoryDto
.
getOperation
();
if
(
operationHistoryDto
.
getOperationTime
()
!=
null
)
{
DateTimeFormatter
format
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
);
LocalDateTime
localDateTime
=
LocalDateTime
.
parse
(
operationHistoryDto
.
getOperationTime
(),
format
);
this
.
operationTime
=
localDateTime
.
toInstant
(
ZoneOffset
.
UTC
).
toEpochMilli
();
}
}
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
}
public
long
getOperationTime
()
{
return
operationTime
;
}
public
void
setOperationTime
(
long
operationTime
)
{
this
.
operationTime
=
operationTime
;
}
public
String
getLoginIp
()
{
return
loginIp
;
}
public
void
setLoginIp
(
String
loginIp
)
{
this
.
loginIp
=
loginIp
;
}
public
String
getLoginPlace
()
{
return
loginPlace
;
}
public
void
setLoginPlace
(
String
loginPlace
)
{
this
.
loginPlace
=
loginPlace
;
}
public
String
getNickname
()
{
return
nickname
;
if
(
operationHistoryDto
.
getNickname
()
!=
null
)
{
this
.
nickname
=
operationHistoryDto
.
getNickname
();
}
public
void
setNickname
(
String
nickname
)
{
this
.
nickname
=
nickname
;
if
(
operationHistoryDto
.
getLoginIp
()
!=
null
)
{
this
.
loginIp
=
operationHistoryDto
.
getLoginIp
()
;
}
public
String
getOperation
(
)
{
return
operation
;
if
(
operationHistoryDto
.
getLoginPlace
()
!=
null
)
{
this
.
loginPlace
=
operationHistoryDto
.
getLoginPlace
()
;
}
public
void
setOperation
(
String
operation
)
{
this
.
operation
=
operation
;
if
(
operationHistoryDto
.
getOperation
()
!=
null
)
{
this
.
operation
=
operationHistoryDto
.
getOperation
()
;
}
public
String
getAdministrator
()
{
return
administrator
;
if
(
operationHistoryDto
.
getOperationTime
()
!=
null
)
{
DateTimeFormatter
format
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
);
LocalDateTime
localDateTime
=
LocalDateTime
.
parse
(
operationHistoryDto
.
getOperationTime
(),
format
);
this
.
operationTime
=
localDateTime
.
toInstant
(
ZoneOffset
.
UTC
).
toEpochMilli
();
}
public
void
setAdministrator
(
String
administrator
)
{
this
.
administrator
=
administrator
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/PlatformOptions.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
org.springframework.data.annotation.Id
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -11,26 +11,13 @@ import java.util.Map;
* @Author jason
* @CreateTime 2020/3/12 11:44 上午
**/
@Getter
@Setter
@Document
(
"platformoptions"
)
public
class
PlatformOptions
{
private
String
platform
;
private
Map
<
String
,
String
>
subPlatform
;
public
Map
<
String
,
String
>
getSubPlatform
()
{
return
subPlatform
;
}
public
void
setPlatform
(
String
platform
)
{
this
.
platform
=
platform
;
}
public
String
getPlatform
()
{
return
platform
;
}
public
void
setSubPlatform
(
Map
<
String
,
String
>
subPlatform
)
{
this
.
subPlatform
=
subPlatform
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/ProxyConfig.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.data.mongodb.core.mapping.Document
;
@Getter
@Setter
@Document
(
collection
=
"proxyconfig"
)
public
class
ProxyConfig
{
private
long
timestamp
;
private
String
configFileId
;
public
long
getTimestamp
()
{
return
timestamp
;
}
public
void
setConfigFileId
(
String
configFileId
)
{
this
.
configFileId
=
configFileId
;
}
public
String
getConfigFileId
()
{
return
configFileId
;
}
public
void
setTimestamp
(
long
timestamp
)
{
this
.
timestamp
=
timestamp
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/Shop.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
com.alibaba.fastjson.JSONObject
;
import
com.edgec.browserbackend.browser.dto.ShopResultDto
;
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
;
@Getter
@Setter
@NoArgsConstructor
@Document
(
collection
=
"shop"
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
Shop
{
/**
* 商铺 id
*/
@Id
private
String
shopId
;
/**
* 商铺名称
*/
private
String
shopName
;
/**
* 商铺拥有者,谁创建谁拥有
*/
private
String
owner
;
/**
* 商铺 id
*/
private
TransferStatus
transferStatus
;
/**
* 商铺url
*/
private
String
shopUrl
;
/**
* 商铺所在的平台
*/
private
String
shopPlatform
;
/**
* 商铺账号
*/
private
String
shopAccount
;
/**
* 商铺密码
*/
private
String
shopPassword
;
/**
* 商铺平台(操作系统 + 浏览器版本)
*/
private
String
shopUA
;
/**
* 商铺的 cookie 信息
*/
private
String
shopCookie
;
/**
* 商铺创建时间
*/
private
long
createTime
;
public
Shop
(){
/**
* 创建店铺使用
*/
public
Shop
of
(
ShopResultDto
shopResultDto
)
{
if
(
shopResultDto
.
getShopUrl
()
!=
null
)
{
this
.
setShopUrl
(
shopResultDto
.
getShopUrl
());
}
if
(
shopResultDto
.
getOwner
()
!=
null
)
{
this
.
setOwner
(
shopResultDto
.
getOwner
());
}
if
(
shopResultDto
.
getShopPlatform
()
!=
null
)
{
this
.
setShopPlatform
(
shopResultDto
.
getShopPlatform
());
}
if
(
shopResultDto
.
getShopName
()
!=
null
)
{
this
.
setShopName
(
shopResultDto
.
getShopName
());
}
if
(
shopResultDto
.
getTransferStatus
()
!=
null
)
{
this
.
setTransferStatus
(
shopResultDto
.
getTransferStatus
());
}
if
(
shopResultDto
.
getShopAccount
()
!=
null
)
{
this
.
setShopAccount
(
shopResultDto
.
getShopAccount
());
}
if
(
shopResultDto
.
getShopPassword
()
!=
null
)
{
this
.
setShopPassword
(
shopResultDto
.
getShopPassword
());
}
if
(
shopResultDto
.
getShopUA
()
!=
null
)
{
this
.
setShopUA
(
shopResultDto
.
getShopUA
());
}
if
(
shopResultDto
.
getShopCookie
()
!=
null
)
{
this
.
setShopCookie
(
shopResultDto
.
getShopCookie
());
}
if
(
shopResultDto
.
getCreateTime
()
!=
0
)
{
this
.
setCreateTime
(
shopResultDto
.
getCreateTime
());
}
//创建店铺使用
public
Shop
of
(
ShopResultDto
shop
)
{
if
(
shop
.
getShopUrl
()
!=
null
)
this
.
setShopUrl
(
shop
.
getShopUrl
());
if
(
shop
.
getOwner
()
!=
null
)
this
.
setOwner
(
shop
.
getOwner
());
if
(
shop
.
getShopPlatform
()
!=
null
)
this
.
setShopPlatform
(
shop
.
getShopPlatform
());
if
(
shop
.
getShopName
()
!=
null
)
this
.
setShopName
(
shop
.
getShopName
());
if
(
shop
.
getTransferStatus
()
!=
null
)
this
.
setTransferStatus
(
shop
.
getTransferStatus
());
if
(
shop
.
getShopAccount
()
!=
null
)
this
.
setShopAccount
(
shop
.
getShopAccount
());
if
(
shop
.
getShopPassword
()
!=
null
)
this
.
setShopPassword
(
shop
.
getShopPassword
());
if
(
shop
.
getShopUA
()
!=
null
)
this
.
setShopUA
(
shop
.
getShopUA
());
if
(
shop
.
getShopCookie
()
!=
null
)
this
.
setShopCookie
(
shop
.
getShopCookie
());
if
(
shop
.
getCreateTime
()
!=
0
)
this
.
setCreateTime
(
shop
.
getCreateTime
());
return
this
;
}
...
...
@@ -83,95 +139,7 @@ public class Shop {
this
.
setShopCookie
(
shop
.
getShopCookie
());
if
(
shop
.
getCreateTime
()
!=
0
)
this
.
setCreateTime
(
shop
.
getCreateTime
());
return
this
;
}
public
String
getShopId
()
{
return
shopId
;
}
public
String
getShopUrl
()
{
return
shopUrl
;
}
public
String
getOwner
()
{
return
owner
;
}
public
String
getShopPlatform
()
{
return
shopPlatform
;
}
public
String
getShopName
()
{
return
shopName
;
}
public
TransferStatus
getTransferStatus
()
{
return
transferStatus
;
}
public
void
setShopId
(
String
shopId
)
{
this
.
shopId
=
shopId
;
}
public
void
setShopUrl
(
String
shopUrl
)
{
this
.
shopUrl
=
shopUrl
;
}
public
void
setOwner
(
String
owner
)
{
this
.
owner
=
owner
;
}
public
void
setShopPlatform
(
String
shopPlatform
)
{
this
.
shopPlatform
=
shopPlatform
;
}
public
void
setShopName
(
String
shopName
)
{
this
.
shopName
=
shopName
;
}
public
void
setTransferStatus
(
TransferStatus
transferStatus
)
{
this
.
transferStatus
=
transferStatus
;
}
public
String
getShopAccount
()
{
return
shopAccount
;
}
public
void
setShopAccount
(
String
shopAccount
)
{
this
.
shopAccount
=
shopAccount
;
}
public
String
getShopPassword
()
{
return
shopPassword
;
}
public
void
setShopPassword
(
String
shopPassword
)
{
this
.
shopPassword
=
shopPassword
;
}
public
String
getShopCookie
()
{
return
shopCookie
;
}
public
void
setShopCookie
(
String
shopCookie
)
{
this
.
shopCookie
=
shopCookie
;
}
public
String
getShopUA
()
{
return
shopUA
;
}
public
void
setShopUA
(
String
shopUA
)
{
this
.
shopUA
=
shopUA
;
}
public
long
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
long
createTime
)
{
this
.
createTime
=
createTime
;
return
this
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/ShopSummary.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
public
class
ShopSummary
{
private
int
total
;
private
int
unbind
;
private
int
willExpire
;
private
int
expired
;
public
int
getExpired
()
{
return
expired
;
}
public
void
setExpired
(
int
expired
)
{
this
.
expired
=
expired
;
}
import
lombok.Getter
;
import
lombok.Setter
;
public
int
getTotal
()
{
return
total
;
}
public
void
setTotal
(
int
total
)
{
this
.
total
=
total
;
}
@Getter
@Setter
public
class
ShopSummary
{
public
int
getUnbind
()
{
return
unbind
;
}
/**
* 商铺 总数
*/
private
int
total
;
public
void
setUnbind
(
int
unbind
)
{
this
.
unbind
=
unbind
;
}
/**
* 未绑定商铺数
*/
private
int
unbind
;
public
int
getWillExpire
()
{
return
willExpire
;
}
/**
* 即将过期商铺数
*/
private
int
willExpire
;
public
void
setWillExpire
(
int
willExpire
)
{
this
.
willExpire
=
willExpire
;
}
/**
* 已过期商铺数
*/
private
int
expired
;
}
src/main/java/com/edgec/browserbackend/browser/domain/SpecialLine.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.util.List
;
@Getter
@Setter
@Document
(
"specialline"
)
public
class
SpecialLine
{
/**
* 专线 id
*/
@Id
private
String
Id
;
/**
* 专线 ip
*/
private
String
ip
;
private
List
<
String
>
proxyProtocol
;
//专线使用的协议
private
List
<
String
>
proxyPort
;
//专线使用的端口
private
String
username
;
//专线代理服务器用户名
private
String
password
;
//专线代理服务器密码
public
String
getIp
()
{
return
ip
;
}
public
void
setIp
(
String
ip
)
{
this
.
ip
=
ip
;
}
public
String
getId
()
{
return
Id
;
}
public
void
setId
(
String
id
)
{
Id
=
id
;
}
public
List
<
String
>
getProxyProtocol
()
{
return
proxyProtocol
;
}
public
void
setProxyProtocol
(
List
<
String
>
proxyProtocol
)
{
this
.
proxyProtocol
=
proxyProtocol
;
}
public
List
<
String
>
getProxyPort
()
{
return
proxyPort
;
}
public
void
setProxyPort
(
List
<
String
>
proxyPort
)
{
this
.
proxyPort
=
proxyPort
;
}
/**
* 专线使用的协议
*/
private
List
<
String
>
proxyProtocol
;
public
String
getPassword
()
{
return
password
;
}
/**
* 专线使用的端口
*/
private
List
<
String
>
proxyPort
;
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
/**
* 专线代理服务器用户名
*/
private
String
username
;
public
String
getUsername
()
{
return
username
;
}
/**
* 专线代理服务器密码
*/
private
String
password
;
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/UserShop.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.util.List
;
/**
* @author cloudam
* 这是一个中间表,关联 user 、shop、 group 表
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Document
(
collection
=
"usershop"
)
public
class
UserShop
{
...
...
@@ -17,56 +27,13 @@ public class UserShop {
private
String
groupId
;
public
UserShop
(){
}
public
UserShop
(
String
username
,
String
shopId
)
{
this
.
username
=
username
;
this
.
shopId
=
shopId
;
}
public
UserShop
(
String
username
,
String
shopId
,
String
groupId
)
{
this
.
username
=
username
;
this
.
shopId
=
shopId
;
this
.
groupId
=
groupId
;
}
public
UserShop
(
String
username
,
String
shopId
,
String
groupId
,
String
ipId
)
{
this
.
username
=
username
;
this
.
shopId
=
shopId
;
this
.
groupId
=
groupId
;
}
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
}
public
String
getShopId
()
{
return
shopId
;
}
public
void
setShopId
(
String
shopId
)
{
this
.
shopId
=
shopId
;
}
public
String
getGroupId
()
{
return
groupId
;
}
public
void
setGroupId
(
String
groupId
)
{
this
(
username
,
shopId
);
this
.
groupId
=
groupId
;
}
}
src/main/java/com/edgec/browserbackend/browser/domain/Vendor.java
View file @
4a022416
...
...
@@ -4,13 +4,31 @@ package com.edgec.browserbackend.browser.domain;
* @Desc
* @Author jason
* @CreateTime 2020/3/12 4:01 下午
*
*
/
*/
public
enum
Vendor
{
aliyun
(
"阿里云"
),
JDCLOUD
(
"京东云"
),
aws
(
"亚马逊云"
),
awscn
(
"亚马逊中国"
),
tencent
(
"腾讯云"
),
local
(
"本地"
),
own
(
"自有"
);
/**
* 本平台提供的代理ip
*/
aliyun
(
"阿里云"
),
JDCLOUD
(
"京东云"
),
aws
(
"亚马逊云"
),
awscn
(
"亚马逊中国"
),
tencent
(
"腾讯云"
),
/**
* 本地ip,即 ip 地址没有设置任何代理
*/
local
(
"本地"
),
/**
* 用户自己已经拥有的代理ip
*/
own
(
"自有"
);
private
String
value
;
private
Vendor
(
String
value
)
{
Vendor
(
String
value
)
{
this
.
value
=
value
;
}
...
...
src/main/java/com/edgec/browserbackend/browser/dto/IpFilterDto.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.apache.commons.lang3.StringUtils
;
@Getter
@Setter
public
class
IpFilterDto
{
String
region
;
String
addr
;
String
vendor
;
public
String
getAddr
()
{
return
addr
;
}
public
void
setAddr
(
String
addr
)
{
this
.
addr
=
addr
;
}
public
String
getRegion
()
{
return
region
;
public
boolean
isEmpty
()
{
boolean
flag
=
false
;
if
(
StringUtils
.
isEmpty
(
region
)
&&
StringUtils
.
isEmpty
(
addr
)
&&
StringUtils
.
isEmpty
(
vendor
))
{
flag
=
true
;
}
public
void
setRegion
(
String
region
)
{
this
.
region
=
region
;
}
public
String
getVendor
()
{
return
vendor
;
}
public
void
setVendor
(
String
vendor
)
{
this
.
vendor
=
vendor
;
return
flag
;
}
}
src/main/java/com/edgec/browserbackend/browser/dto/IpListRequestDto.java
View file @
4a022416
...
...
@@ -2,12 +2,14 @@ package com.edgec.browserbackend.browser.dto;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
java.util.ArrayList
;
import
java.util.List
;
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
IpListRequestDto
{
/**
* 1: 全部; 2: 即将过期 ; 3: 已过期; 4: 未绑定; 5: 已分配
*/
private
int
groupType
;
private
int
page
;
private
int
amount
;
private
IpFilterDto
filter
;
...
...
src/main/java/com/edgec/browserbackend/browser/dto/PageInfo.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
PageInfo
{
int
currentPage
;
int
totalPages
;
int
totalItems
;
public
int
getCurrentPage
()
{
return
currentPage
;
}
public
void
setCurrentPage
(
int
currentPage
)
{
this
.
currentPage
=
currentPage
;
}
public
int
getTotalPages
()
{
return
totalPages
;
}
public
void
setTotalPages
(
int
totalPage
)
{
this
.
totalPages
=
totalPage
;
}
public
int
getTotalItems
()
{
return
totalItems
;
}
public
void
setTotalItems
(
int
totalItems
)
{
this
.
totalItems
=
totalItems
;
}
}
src/main/java/com/edgec/browserbackend/browser/dto/ShopFilterDto.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
dto
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.apache.commons.lang3.StringUtils
;
@Getter
@Setter
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
ShopFilterDto
{
private
String
shopName
;
...
...
@@ -9,35 +14,11 @@ public class ShopFilterDto {
private
String
shopAccount
;
private
int
bindIp
;
public
String
getShopAccount
()
{
return
shopAccount
;
public
boolean
isEmpty
()
{
boolean
flag
=
false
;
if
(
StringUtils
.
isEmpty
(
shopName
)
&&
StringUtils
.
isEmpty
(
IpRegion
)
&&
StringUtils
.
isEmpty
(
shopAccount
))
{
flag
=
true
;
}
public
void
setShopAccount
(
String
shopAccount
)
{
this
.
shopAccount
=
shopAccount
;
}
public
String
getIpRegion
()
{
return
IpRegion
;
}
public
void
setIpRegion
(
String
ipRegion
)
{
IpRegion
=
ipRegion
;
}
public
String
getShopName
()
{
return
shopName
;
}
public
void
setShopName
(
String
shopName
)
{
this
.
shopName
=
shopName
;
}
public
int
getBindIp
()
{
return
bindIp
;
}
public
void
setBindIp
(
int
bindIp
)
{
this
.
bindIp
=
bindIp
;
return
flag
;
}
}
src/main/java/com/edgec/browserbackend/browser/dto/ShopStringResultDto.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
browser
.
dto
;
import
lombok.Data
;
@Data
public
class
ShopStringResultDto
{
String
id
;
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
}
src/main/java/com/edgec/browserbackend/browser/repository/IpResourceRepositoryCustomImpl.java
View file @
4a022416
...
...
@@ -58,34 +58,11 @@ public class IpResourceRepositoryCustomImpl implements IpResourceRepositoryCusto
@Override
public
boolean
healthLock
(
IpResource
ipResource
)
{
Document
doc
=
new
Document
();
BasicQuery
basicQuery
=
new
BasicQuery
(
doc
);
Criteria
criteria
=
new
Criteria
();
criteria
.
orOperator
(
where
(
"id"
).
is
(
ipResource
.
getId
()).
and
(
"isLocked"
).
is
(
false
).
and
(
"status"
).
is
(
ipResource
.
getStatus
()).
and
(
"isDeleted"
).
is
(
false
),
where
(
"healthLockTimestamp"
).
lte
(
Instant
.
now
().
minusSeconds
(
300
).
toEpochMilli
()).
and
(
"status"
).
is
(
ipResource
.
getStatus
()).
and
(
"isDeleted"
).
is
(
false
));
basicQuery
.
addCriteria
(
criteria
);
Update
update
=
new
Update
();
update
.
set
(
"isLocked"
,
true
).
set
(
"healthLockTimestamp"
,
Instant
.
now
().
toEpochMilli
());
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
basicQuery
,
update
,
IpResource
.
class
);
if
(
result
.
getModifiedCount
()
<
1
)
return
false
;
else
return
true
;
}
@Override
public
boolean
unLockHealth
(
String
id
)
{
Document
doc
=
new
Document
();
BasicQuery
basicQuery
=
new
BasicQuery
(
doc
);
basicQuery
.
addCriteria
(
where
(
"id"
).
is
(
id
));
Update
update
=
new
Update
();
update
.
set
(
"isLocked"
,
false
).
set
(
"healthLockTimestamp"
,
Instant
.
now
().
toEpochMilli
());
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
basicQuery
,
update
,
IpResource
.
class
);
if
(
result
.
getModifiedCount
()
<
1
)
return
false
;
else
return
true
;
}
...
...
@@ -112,7 +89,7 @@ public class IpResourceRepositoryCustomImpl implements IpResourceRepositoryCusto
MatchOperation
match
=
Aggregation
.
match
(
matchCriteria
);
SampleOperation
sample
=
Aggregation
.
sample
(
10
0
);
SampleOperation
sample
=
Aggregation
.
sample
(
2
0
);
AggregationResults
<
IpResource
>
results
=
mongoTemplate
.
aggregate
(
Aggregation
.
newAggregation
(
match
,
sample
),
IpResource
.
class
,
IpResource
.
class
);
List
<
IpResource
>
mappedResults
=
results
.
getMappedResults
();
...
...
@@ -136,10 +113,10 @@ public class IpResourceRepositoryCustomImpl implements IpResourceRepositoryCusto
}
@Override
public
boolean
deleteShopId
(
String
i
pI
d
,
String
shopId
,
BindHistory
bindHistory
)
{
public
boolean
deleteShopId
(
String
id
,
String
shopId
,
BindHistory
bindHistory
)
{
Document
doc
=
new
Document
();
BasicQuery
basicQuery
=
new
BasicQuery
(
doc
);
basicQuery
.
addCriteria
(
where
(
"id"
).
is
(
i
pI
d
).
and
(
"isDeleted"
).
is
(
false
));
basicQuery
.
addCriteria
(
where
(
"id"
).
is
(
id
).
and
(
"isDeleted"
).
is
(
false
));
Update
update
=
new
Update
();
update
.
pull
(
"shopIds"
,
shopId
).
push
(
"bindhistory"
,
bindHistory
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
basicQuery
,
update
,
IpResource
.
class
);
...
...
@@ -186,18 +163,23 @@ public class IpResourceRepositoryCustomImpl implements IpResourceRepositoryCusto
UnwindOperation
unwind
=
Aggregation
.
unwind
(
"shopIds"
);
MatchOperation
matchshopId
=
Aggregation
.
match
(
where
(
"shopIds"
).
in
(
shopIds
));
List
<
IpResourceUnwindResultDto
>
ipResourceUnwindResultDtos
=
mongoTemplate
.
aggregate
(
Aggregation
.
newAggregation
(
matchOperation
,
unwind
,
matchshopId
),
IpResource
.
class
,
IpResourceUnwindResultDto
.
class
).
getMappedResults
();
Aggregation
.
newAggregation
(
matchOperation
,
unwind
,
matchshopId
),
IpResource
.
class
,
IpResourceUnwindResultDto
.
class
).
getMappedResults
();
if
(
ipResourceUnwindResultDtos
.
isEmpty
())
{
return
new
ArrayList
<>();
}
HashMap
<
String
,
IpResource
>
ipResourceHashMap
=
new
HashMap
<>();
ipResourceUnwindResultDtos
.
forEach
(
x
->
{
ipResourceUnwindResultDtos
.
forEach
(
x
->
{
if
(
ipResourceHashMap
.
containsKey
(
x
.
getId
()))
{
ipResourceHashMap
.
get
(
x
.
getId
()).
getShopIds
().
add
(
x
.
getShopId
());
}
else
{
ipResourceHashMap
.
put
(
x
.
getId
(),
x
.
toResource
());
}
});
}
);
List
<
IpResource
>
result
=
new
ArrayList
<>();
Set
<
Map
.
Entry
<
String
,
IpResource
>>
entry
=
ipResourceHashMap
.
entrySet
();
for
(
Map
.
Entry
<
String
,
IpResource
>
e
:
entry
)
{
...
...
src/main/java/com/edgec/browserbackend/browser/service/Impl/GroupServiceImpl.java
View file @
4a022416
...
...
@@ -37,7 +37,7 @@ public class GroupServiceImpl implements GroupService {
public
String
addGroup
(
String
username
,
String
groupName
)
{
if
(
StringUtils
.
isBlank
(
username
)
||
StringUtils
.
isBlank
(
groupName
))
throw
new
ClientRequestException
(
BrowserErrorCode
.
INFORMATIONNOTCOMPELETE
);
Account
account
=
accountRepository
.
findByName
(
username
);
Account
account
=
accountRepository
.
findByName
(
username
)
.
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
))
;
if
(
account
==
null
)
throw
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
);
if
(
account
.
getGroupCount
()
>=
100
)
...
...
@@ -79,14 +79,14 @@ public class GroupServiceImpl implements GroupService {
public
void
deleteGroup
(
String
username
,
String
groupId
)
{
if
(
StringUtils
.
isBlank
(
username
)
||
StringUtils
.
isBlank
(
groupId
))
throw
new
ClientRequestException
(
BrowserErrorCode
.
INFORMATIONNOTCOMPELETE
);
Account
account
=
accountRepository
.
findByName
(
username
);
Account
account
=
accountRepository
.
findByName
(
username
)
.
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
))
;
if
(
account
==
null
)
throw
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
);
try
{
userShopRepository
.
updateGroupId
(
groupId
,
null
);
groupRepository
.
deleteById
(
groupId
);
//可以优化
account
.
setGroupCount
(
account
.
getGroupCount
()
-
1
);
account
.
setGroupCount
(
account
.
getGroupCount
()
-
1
);
accountRepository
.
save
(
account
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"fail to delete group"
,
e
.
getMessage
());
...
...
@@ -106,7 +106,7 @@ public class GroupServiceImpl implements GroupService {
groups
.
stream
().
forEach
(
x
->
{
groupDtos
.
add
(
new
GroupDto
(
x
.
getId
(),
x
.
getName
(),
x
.
getDetails
()));
});
}
catch
(
Exception
e
){
}
catch
(
Exception
e
)
{
logger
.
error
(
"fail to delete group"
,
e
.
getMessage
());
throw
new
ClientRequestException
(
BrowserErrorCode
.
UNKNOWN
);
}
...
...
src/main/java/com/edgec/browserbackend/browser/service/Impl/IpAndShopServiceImpl.java
View file @
4a022416
...
...
@@ -44,10 +44,7 @@ public class IpAndShopServiceImpl implements IpAndShopService {
@Override
public
void
bindShop
(
String
username
,
ShopRequestDto
shopRequestDto
)
{
// 1. 根据id 来获取账户
Account
account
=
accountRepository
.
findByName
(
username
);
if
(
account
==
null
)
{
throw
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
);
}
Account
account
=
accountRepository
.
findByName
(
username
).
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
));
String
shopId
=
shopRequestDto
.
getShopId
();
// 2.获取当前账户下指定的商铺
...
...
@@ -62,10 +59,10 @@ public class IpAndShopServiceImpl implements IpAndShopService {
IpResource
ipResource
=
null
;
if
(
StringUtils
.
isNotBlank
(
shopRequestDto
.
getIpAddr
()))
{
ipResource
=
ipResourceRepository
.
findByAddrAndIsDeleted
(
shopRequestDto
.
getIpAddr
(),
false
);
}
else
if
(
StringUtils
.
isNotBlank
(
shopRequestDto
.
getIpId
()))
{
}
if
(
StringUtils
.
isNotBlank
(
shopRequestDto
.
getIpId
()))
{
ipResource
=
ipResourceRepository
.
findByIdAndIsDeleted
(
shopRequestDto
.
getIpId
(),
false
);
}
if
(
ipResource
==
null
)
{
throw
new
ClientRequestException
(
BrowserErrorCode
.
IPNOTEXIST
);
}
...
...
@@ -87,40 +84,56 @@ public class IpAndShopServiceImpl implements IpAndShopService {
@Override
public
void
unBindShop
(
String
username
,
ShopRequestDto
shopRequestDto
)
{
String
shopId
=
null
;
if
(
StringUtils
.
isNotBlank
(
shopRequestDto
.
getShopId
()))
shopId
=
shopRequestDto
.
getShopId
();
Account
account
=
accountRepository
.
findByName
(
username
);
if
(
account
==
null
)
{
throw
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
);
}
UserShop
userShop
=
userShopRepository
.
findByUsernameAndShopId
(
username
,
shopId
);
if
(
account
.
getPermission
()
<
4
||
userShop
==
null
)
{
// 1. 检查当前账户是否存在,是否具备操作权限
Account
account
=
accountRepository
.
findByName
(
username
).
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
));
if
(
account
.
getPermission
()
<
4
)
{
throw
new
ClientRequestException
(
AccountErrorCode
.
NOPERMISSION
);
}
Shop
shop
=
shopRepository
.
findById
(
shopId
).
orElse
(
null
);
if
(
shop
==
null
)
String
shopId
=
shopRequestDto
.
getShopId
();
// 2. 查找当前用户是否已经绑定商铺 以及 关联商铺的绑定 (一个商铺可以被多个用户持有)
UserShop
userShop
=
userShopRepository
.
findByUsernameAndShopId
(
username
,
shopId
);
if
(
userShop
==
null
)
{
throw
new
ClientRequestException
(
BrowserErrorCode
.
SHOPNOTEXIST
);
}
// 3. 查找商铺信息
Shop
shop
=
shopRepository
.
findById
(
shopId
).
orElseThrow
(()
->
new
ClientRequestException
(
BrowserErrorCode
.
SHOPNOTEXIST
));
// 4. 查找当前商铺绑定的 ip 资源是否存在
IpResource
ipResource
=
null
;
if
(
StringUtils
.
isNotBlank
(
shopRequestDto
.
getIpAddr
()))
{
ipResource
=
ipResourceRepository
.
findByAddrAndIsDeleted
(
shopRequestDto
.
getIpAddr
(),
false
);
}
else
if
(
StringUtils
.
isNotBlank
(
shopRequestDto
.
getIpId
()))
{
}
if
(
StringUtils
.
isNotBlank
(
shopRequestDto
.
getIpId
()))
{
ipResource
=
ipResourceRepository
.
findByIdAndIsDeleted
(
shopRequestDto
.
getIpId
(),
false
);
}
if
(
ipResource
==
null
)
if
(
ipResource
==
null
)
{
throw
new
ClientRequestException
(
BrowserErrorCode
.
IPNOTEXIST
);
if
(
ipResource
.
getShopIds
()
==
null
&&
!
ipResource
.
getShopIds
().
contains
(
shop
.
getShopId
()))
}
// 5. 若存在,ip资源是否绑定了该店铺(一个ip资源可以被多个店铺绑定)
if
(
ipResource
.
getShopIds
()
==
null
&&
!
ipResource
.
getShopIds
().
contains
(
shop
.
getShopId
()))
{
throw
new
ClientRequestException
(
BrowserErrorCode
.
IPNOTBINDTOSHOP
);
try
{
}
// 封装 ip 资源绑定的历史信息
BindHistory
bindHistory
=
new
BindHistory
();
bindHistory
.
setIp
(
ipResource
.
getAddr
());
bindHistory
.
setPlatform
(
shop
.
getShopPlatform
());
bindHistory
.
setShopName
(
shop
.
getShopName
());
bindHistory
.
setUnbindTime
(
ZonedDateTime
.
now
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
try
{
// 6. IP资源解除绑定的店铺并更新ip资源的绑定历史
ipResourceRepository
.
deleteShopId
(
ipResource
.
getId
(),
shopId
,
bindHistory
);
// 7. 更新 ip 资源的绑定状态为 未绑定
IpResource
newIp
=
ipResourceRepository
.
findById
(
ipResource
.
getId
()).
orElse
(
null
);
if
(
newIp
.
getShopIds
()
==
null
||
newIp
.
getShopIds
().
size
()
==
0
)
if
(
newIp
.
getShopIds
()
==
null
||
!
newIp
.
getShopIds
().
contains
(
shopId
))
{
ipResourceRepository
.
updateBind
(
ipResource
.
getId
(),
false
);
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"fail to unbind"
,
e
.
getMessage
());
throw
new
ClientRequestException
(
BrowserErrorCode
.
UNKNOWN
);
...
...
@@ -132,10 +145,8 @@ public class IpAndShopServiceImpl implements IpAndShopService {
List
<
String
>
shopIds
=
null
;
if
(
shopRequestDto
.
getShopIds
()
!=
null
&&
shopRequestDto
.
getShopIds
().
size
()
>
0
)
shopIds
=
shopRequestDto
.
getShopIds
();
Account
account
=
accountRepository
.
findByName
(
username
);
if
(
account
==
null
)
{
throw
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
);
}
Account
account
=
accountRepository
.
findByName
(
username
).
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
));
IpResource
ipResource
=
null
;
if
(
StringUtils
.
isNotBlank
(
shopRequestDto
.
getIpAddr
()))
{
ipResource
=
ipResourceRepository
.
findByAddrAndIsDeleted
(
shopRequestDto
.
getIpAddr
(),
false
);
...
...
src/main/java/com/edgec/browserbackend/browser/service/Impl/IpResourceServiceImpl.java
View file @
4a022416
This diff is collapsed.
Click to expand it.
src/main/java/com/edgec/browserbackend/browser/service/Impl/ShopServiceImpl.java
View file @
4a022416
This diff is collapsed.
Click to expand it.
src/main/java/com/edgec/browserbackend/browser/task/BrowserTask.java
View file @
4a022416
...
...
@@ -110,7 +110,9 @@ public class BrowserTask {
List
<
CompletableFuture
>
futureList
=
new
ArrayList
<>();
for
(
IpResource
ipResource
:
ipResources
)
{
long
start
=
System
.
currentTimeMillis
();
CompletableFuture
future
=
CompletableFuture
.
runAsync
(()
->
{
CompletableFuture
future
=
CompletableFuture
.
runAsync
(
()
->
{
if
(
ipResourceRepository
.
lockTask
(
ipResource
))
{
try
{
boolean
result
=
false
;
...
...
@@ -182,7 +184,10 @@ public class BrowserTask {
}
}
}
},
ThreadPoolUtils
.
buyIpTasksPool
);
},
ThreadPoolUtils
.
buyIpTasksPool
);
futureList
.
add
(
future
);
}
CompletableFuture
.
allOf
(
futureList
.
toArray
(
new
CompletableFuture
[
0
])).
join
();
...
...
@@ -195,7 +200,8 @@ public class BrowserTask {
List
<
IpResource
>
ipResources
=
ipResourceRepository
.
sampleTasks
(
3
,
time
);
for
(
IpResource
ipResource
:
ipResources
)
{
long
start
=
System
.
currentTimeMillis
();
CompletableFuture
.
runAsync
(()
->
{
CompletableFuture
.
runAsync
(
()
->
{
if
(
ipResourceRepository
.
lockTask
(
ipResource
))
{
try
{
log
.
error
(
"test"
);
...
...
@@ -226,7 +232,9 @@ public class BrowserTask {
}
}
}
},
ThreadPoolUtils
.
queryIpTasksPool
);
},
ThreadPoolUtils
.
queryIpTasksPool
);
}
}
...
...
@@ -310,7 +318,8 @@ public class BrowserTask {
public
void
countIp
()
{
List
<
Account
>
accounts
=
accountRepository
.
findAll
();
try
{
accounts
.
forEach
(
x
->
{
accounts
.
forEach
(
x
->
{
IpCountRecord
ipCountRecord
=
new
IpCountRecord
();
ipCountRecord
.
setUsername
(
x
.
getName
());
ipCountRecord
.
setTimestamp
(
Instant
.
now
().
toEpochMilli
());
...
...
@@ -319,7 +328,8 @@ public class BrowserTask {
ipCountRecord
.
setIp_all
(
ipcount_all
);
ipCountRecord
.
setIp_using
(
ipcount_using
);
ipCountRecordRepository
.
save
(
ipCountRecord
);
});
}
);
IpCountRecord
ipCountRecord
=
new
IpCountRecord
();
ipCountRecord
.
setUsername
(
"all"
);
ipCountRecord
.
setTimestamp
(
Instant
.
now
().
toEpochMilli
());
...
...
@@ -371,20 +381,5 @@ public class BrowserTask {
response
.
close
();
return
rs
;
}
}
public
static
void
main
(
String
[]
args
)
throws
IOException
{
List
<
QueryIpUrlList
>
queryIpUrlLists
=
new
ArrayList
<>();
queryIpUrlLists
.
add
(
new
QueryIpUrlList
(
"1"
,
"baidu"
));
queryIpUrlLists
.
add
(
new
QueryIpUrlList
(
"2"
,
"google"
));
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
System
.
out
.
println
(
getNextUrl
(
queryIpUrlLists
,
i
).
getUrl
());
}
}
}
src/main/java/com/edgec/browserbackend/browser/task/ExpireSoonWarn.java
View file @
4a022416
...
...
@@ -2,9 +2,11 @@ package com.edgec.browserbackend.browser.task;
import
com.alibaba.fastjson.JSONObject
;
import
com.edgec.browserbackend.account.domain.Account
;
import
com.edgec.browserbackend.account.exception.AccountErrorCode
;
import
com.edgec.browserbackend.account.repository.AccountRepository
;
import
com.edgec.browserbackend.browser.domain.IpResource
;
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.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -56,7 +58,7 @@ public class ExpireSoonWarn {
}
private
void
sendToAccount
(
String
username
,
int
day
,
int
amount
,
List
<
String
>
ips
)
{
Account
account
=
accountRepository
.
findByName
(
username
);
Account
account
=
accountRepository
.
findByName
(
username
)
.
orElseThrow
(()
->
new
ClientRequestException
(
AccountErrorCode
.
NAMENOTEXIST
))
;
JSONObject
param
=
new
JSONObject
();
param
.
put
(
"day"
,
day
);
param
.
put
(
"amount"
,
amount
);
...
...
src/main/java/com/edgec/browserbackend/browser/task/PaymentTask.java
View file @
4a022416
...
...
@@ -29,7 +29,7 @@ public class PaymentTask {
@Scheduled
(
fixedDelay
=
60000
)
public
void
checkPayments
()
{
long
now
=
new
Date
().
getTime
();
long
now
=
System
.
currentTimeMillis
();
Date
date_5min
=
new
Date
(
now
-
5
*
60
*
1000
);
Date
date_10min
=
new
Date
(
now
-
10
*
60
*
1000
);
List
<
UserPayment
>
unfinishedPayments
=
userPaymentRepository
.
findAllByPaymentDateBetweenAndSucceed
(
...
...
src/main/java/com/edgec/browserbackend/common/commons/kafka/KafkaUtils.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
common
.
commons
.
kafka
;
@Deprecated
public
final
class
KafkaUtils
{
public
static
final
String
TOPIC_NAME_C3_MINIONS
=
"tp.minions.c3"
;
...
...
src/main/java/com/edgec/browserbackend/common/commons/utils/CommonStringUtils.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
common
.
commons
.
utils
;
@Deprecated
public
class
CommonStringUtils
{
public
static
int
getLongestCommonSubstring
(
String
a
,
String
b
)
{
...
...
@@ -10,16 +11,16 @@ public class CommonStringUtils {
int
[][]
dp
=
new
int
[
m
][
n
];
for
(
int
i
=
0
;
i
<
m
;
i
++)
{
for
(
int
j
=
0
;
j
<
n
;
j
++)
{
if
(
a
.
charAt
(
i
)
==
b
.
charAt
(
j
))
{
if
(
i
==
0
||
j
==
0
)
{
dp
[
i
][
j
]
=
1
;
}
else
{
dp
[
i
][
j
]
=
dp
[
i
-
1
][
j
-
1
]+
1
;
for
(
int
i
=
0
;
i
<
m
;
i
++)
{
for
(
int
j
=
0
;
j
<
n
;
j
++)
{
if
(
a
.
charAt
(
i
)
==
b
.
charAt
(
j
))
{
if
(
i
==
0
||
j
==
0
)
{
dp
[
i
][
j
]
=
1
;
}
else
{
dp
[
i
][
j
]
=
dp
[
i
-
1
][
j
-
1
]
+
1
;
}
if
(
max
<
dp
[
i
][
j
])
if
(
max
<
dp
[
i
][
j
])
max
=
dp
[
i
][
j
];
}
...
...
src/main/java/com/edgec/browserbackend/common/commons/utils/Pair.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
common
.
commons
.
utils
;
@Deprecated
public
final
class
Pair
<
S
,
T
>
{
private
S
first
;
...
...
src/main/java/com/edgec/browserbackend/common/commons/utils/PriorityThreadPoolExecutor.java
View file @
4a022416
...
...
@@ -3,6 +3,7 @@ package com.edgec.browserbackend.common.commons.utils;
import
java.util.Comparator
;
import
java.util.concurrent.*
;
@Deprecated
public
class
PriorityThreadPoolExecutor
extends
ThreadPoolExecutor
{
private
Comparator
comparator
;
...
...
src/main/java/com/edgec/browserbackend/common/commons/utils/RemoteShellExecutor.java
View file @
4a022416
...
...
@@ -9,16 +9,23 @@ import java.io.*;
import
java.nio.charset.Charset
;
import
java.nio.charset.StandardCharsets
;
@Deprecated
public
class
RemoteShellExecutor
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
RemoteShellExecutor
.
class
);
private
Connection
conn
;
/** 远程机器IP */
/**
* 远程机器IP
*/
private
String
ip
;
/** 用户名 */
/**
* 用户名
*/
private
String
osUsername
;
/** 密码 */
/**
* 密码
*/
private
String
password
;
private
String
charset
=
Charset
.
defaultCharset
().
toString
();
...
...
@@ -33,6 +40,7 @@ public class RemoteShellExecutor {
/**
* 登录
*
* @return
* @throws IOException
*/
...
...
@@ -182,18 +190,16 @@ public class RemoteShellExecutor {
// 6. 关闭输入流
out
.
close
();
// 7. 等待,除非1.连接关闭;2.输出数据传送完毕;3.进程状态为退出;4.超时
session
.
waitForCondition
(
ChannelCondition
.
CLOSED
|
ChannelCondition
.
EOF
|
ChannelCondition
.
EXIT_STATUS
,
30000
);
session
.
waitForCondition
(
ChannelCondition
.
CLOSED
|
ChannelCondition
.
EOF
|
ChannelCondition
.
EXIT_STATUS
,
30000
);
logger
.
error
(
"Here is the output from stdout:"
);
while
(
true
)
{
while
(
true
)
{
String
line
=
stdoutReader
.
readLine
();
if
(
line
==
null
)
break
;
System
.
out
.
println
(
line
);
}
logger
.
error
(
"Here is the output from stderr:"
);
while
(
true
)
{
while
(
true
)
{
String
line
=
stderrReader
.
readLine
();
if
(
line
==
null
)
break
;
...
...
@@ -253,18 +259,16 @@ public class RemoteShellExecutor {
scpOutputStream
.
flush
();
scpOutputStream
.
close
();
session
.
waitForCondition
(
ChannelCondition
.
CLOSED
|
ChannelCondition
.
EOF
|
ChannelCondition
.
EXIT_STATUS
,
30000
);
session
.
waitForCondition
(
ChannelCondition
.
CLOSED
|
ChannelCondition
.
EOF
|
ChannelCondition
.
EXIT_STATUS
,
30000
);
logger
.
error
(
"Here is the output from stdout:"
);
while
(
true
)
{
while
(
true
)
{
String
line
=
stdoutReader
.
readLine
();
if
(
line
==
null
)
break
;
System
.
out
.
println
(
line
);
}
logger
.
error
(
"Here is the output from stderr:"
);
while
(
true
)
{
while
(
true
)
{
String
line
=
stderrReader
.
readLine
();
if
(
line
==
null
)
break
;
...
...
@@ -278,7 +282,7 @@ public class RemoteShellExecutor {
}
catch
(
IOException
e
)
{
logger
.
error
(
e
.
getMessage
());
throw
new
Exception
(
"登录远程机器失败"
+
ip
);
}
finally
{
}
finally
{
if
(
conn
!=
null
)
{
conn
.
close
();
}
...
...
src/main/java/com/edgec/browserbackend/common/commons/utils/TimestampUtils.java
View file @
4a022416
...
...
@@ -10,6 +10,7 @@ import java.time.ZonedDateTime;
import
java.time.temporal.ChronoUnit
;
import
java.util.Iterator
;
@Deprecated
public
class
TimestampUtils
{
...
...
src/main/java/com/edgec/browserbackend/common/commons/utils/UUIDGenerator.java
View file @
4a022416
...
...
@@ -2,6 +2,7 @@ package com.edgec.browserbackend.common.commons.utils;
import
java.util.UUID
;
@Deprecated
public
class
UUIDGenerator
{
public
static
String
gen
(
Boolean
withoutDashes
)
{
return
withoutDashes
?
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
)
...
...
src/main/java/com/edgec/browserbackend/common/constant/InstanceStatus.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
common
.
constant
;
@Deprecated
public
interface
InstanceStatus
{
String
STOPPING
=
"Stopping"
;
...
...
src/main/java/com/edgec/browserbackend/common/constant/SpecialUsers.java
View file @
4a022416
...
...
@@ -5,51 +5,31 @@ import java.lang.reflect.Modifier;
import
java.util.HashSet
;
import
java.util.Set
;
@Deprecated
public
class
SpecialUsers
{
public
static
final
Set
<
String
>
CLOUDAM_USERS
=
new
HashSet
<>();
public
static
final
String
VPS_CLOUD_ACCOUNT_NAME
=
"vpsclient"
;
public
static
final
String
CVM_CLOUD_ACCOUNT_NAME
=
"cvmclient"
;
public
static
final
String
C3_ECC_ACCOUNT_NAME
=
"eccclient"
;
// 电商云集群
public
static
final
String
C3_IP_ACCOUNT_NAME
=
"c3ipclient"
;
//c3 ip云
public
static
final
String
SUPERBROWSER
=
"superbrowser"
;
public
static
final
String
ECOMMERCEBROWSER
=
"ecommercebrowser"
;
public
static
final
String
JKBROWSER
=
"jkbrowser"
;
/**
* 电商云集群
*/
public
static
final
String
C3_ECC_ACCOUNT_NAME
=
"eccclient"
;
/**
* c3 ip云
*/
public
static
final
String
C3_IP_ACCOUNT_NAME
=
"c3ipclient"
;
public
static
final
String
SUPER_BROWSER
=
"superbrowser"
;
public
static
final
String
ECOMMERCE_BROWSER
=
"ecommercebrowser"
;
//新增用户名写在上边
public
static
void
main
(
String
[]
args
)
{
for
(
String
cloudamUser
:
CLOUDAM_USERS
)
{
System
.
out
.
println
(
cloudamUser
);
}
}
public
static
final
String
JK_BROWSER
=
"jkbrowser"
;
static
{
Field
[]
fields
=
SpecialUsers
.
class
.
getFields
();
...
...
@@ -69,5 +49,4 @@ public class SpecialUsers {
}
}
}
src/main/java/com/edgec/browserbackend/common/dto/BaseResponse.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
common
.
dto
;
import
lombok.Data
;
@Deprecated
@Data
public
class
BaseResponse
<
T
>
{
private
String
requestId
;
...
...
@@ -7,38 +11,4 @@ public class BaseResponse<T> {
private
String
message
;
private
T
data
;
public
String
getRequestId
()
{
return
requestId
;
}
public
void
setRequestId
(
String
requestId
)
{
this
.
requestId
=
requestId
;
}
public
Result
getResult
()
{
return
result
;
}
public
void
setResult
(
Result
result
)
{
this
.
result
=
result
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
T
getData
()
{
return
data
;
}
public
void
setData
(
T
data
)
{
this
.
data
=
data
;
}
}
src/main/java/com/edgec/browserbackend/common/dto/Result.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
common
.
dto
;
@Deprecated
public
enum
Result
{
SUCCESS
,
...
...
src/main/java/com/edgec/browserbackend/common/utils/Aes.java
View file @
4a022416
...
...
@@ -10,11 +10,20 @@ import javax.crypto.spec.SecretKeySpec;
import
java.math.BigInteger
;
import
java.util.Base64
;
/**
* @author cloudam
* aes加解密工具类
*/
public
class
Aes
{
//密钥 (需要前端和后端保持一致)
/**
* 密钥 (需要前端和后端保持一致)
*/
private
static
final
String
KEY
=
"iefWFOAjfwefnWEI"
;
//算法
/**
* 算法
*/
private
static
final
String
ALGORITHMSTR
=
"AES/ECB/PKCS5Padding"
;
/**
...
...
@@ -144,6 +153,7 @@ public class Aes {
}
private
static
final
BCryptPasswordEncoder
encoder
=
new
BCryptPasswordEncoder
();
/**
* 测试
*/
...
...
src/main/java/com/edgec/browserbackend/common/utils/JsonUtils.java
View file @
4a022416
...
...
@@ -16,11 +16,16 @@ import java.beans.PropertyDescriptor;
import
java.io.IOException
;
import
java.io.StringWriter
;
import
java.lang.reflect.Method
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* Json工具类
*/
@Deprecated
public
class
JsonUtils
{
private
static
final
ObjectMapper
mapper
=
new
ObjectMapper
();
...
...
@@ -53,12 +58,12 @@ public class JsonUtils {
}
@SuppressWarnings
(
"unchecked"
)
public
static
HashMap
<
String
,
String
>
toBeanStr
(
String
json
)
{
public
static
HashMap
<
String
,
String
>
toBeanStr
(
String
json
)
{
return
toBean
(
json
,
HashMap
.
class
);
}
@SuppressWarnings
(
"unchecked"
)
public
static
<
T
>
T
toBean
(
String
json
,
TypeReference
<
T
>
tr
){
public
static
<
T
>
T
toBean
(
String
json
,
TypeReference
<
T
>
tr
)
{
try
{
T
bean
=
(
T
)
mapper
.
readValue
(
json
,
tr
);
return
bean
;
...
...
@@ -129,9 +134,9 @@ public class JsonUtils {
/**
* json字符串转换为List
*/
public
static
<
T
>
List
<
T
>
json2ListBean
(
String
json
,
Class
<
T
>
cls
)
{
JSONArray
jArray
=
JSONArray
.
parseArray
(
json
);
List
<
T
>
collection
=
jArray
.
toJavaList
(
cls
);
public
static
<
T
>
List
<
T
>
json2ListBean
(
String
json
,
Class
<
T
>
cls
)
{
JSONArray
jArray
=
JSONArray
.
parseArray
(
json
);
List
<
T
>
collection
=
jArray
.
toJavaList
(
cls
);
return
collection
;
}
}
\ No newline at end of file
src/main/java/com/edgec/browserbackend/common/utils/PollerUtils.java
View file @
4a022416
...
...
@@ -2,6 +2,7 @@ package com.edgec.browserbackend.common.utils;
import
java.time.Instant
;
@Deprecated
public
class
PollerUtils
{
public
static
void
poll
(
int
timeoutInSeconds
,
int
intervalInSeconds
,
Evaluator
evaluator
)
{
...
...
@@ -12,7 +13,7 @@ public class PollerUtils {
while
(!
result
)
{
long
end
=
Instant
.
now
().
toEpochMilli
();
if
((
end
-
start
)
>
timeoutInSeconds
*
1000
)
if
((
end
-
start
)
>
timeoutInSeconds
*
1000
)
return
;
try
{
Thread
.
sleep
(
intervalInSeconds
*
1000
);
...
...
src/main/java/com/edgec/browserbackend/common/utils/ThreadPoolUtils.java
View file @
4a022416
package
com
.
edgec
.
browserbackend
.
common
.
utils
;
import
com.edgec.browserbackend.common.commons.utils.PriorityThreadPoolExecutor
;
import
com.edgec.browserbackend.common.commons.utils.UniquePriorityBlockingQueue
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.concurrent.*
;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.ThreadFactory
;
public
abstract
class
ThreadPoolUtils
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
ThreadPoolUtils
.
class
);
public
static
final
BlockingQueue
<
Runnable
>
schedulerQueue
=
new
UniquePriorityBlockingQueue
<>(
50
);
...
...
src/main/java/com/edgec/browserbackend/common/utils/Trans.java
View file @
4a022416
...
...
@@ -21,11 +21,18 @@ import java.io.IOException;
public
class
Trans
{
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Trans
.
class
);
static
int
timeout
=
10
*
1000
;
// 以秒为单位
private
static
String
specialHost
=
"39.108.183.128"
;
private
static
int
specialPort
=
20008
;
/**
* 以秒为单位
*/
static
int
timeout
=
10
*
1000
;
private
static
final
String
SPECIAL_HOST
=
"39.108.183.128"
;
private
static
final
int
SPECIAL_PORT
=
20008
;
private
String
host
;
private
int
port
;
private
String
username
;
private
String
password
;
...
...
@@ -37,8 +44,8 @@ public class Trans {
}
public
Trans
(
String
username
,
String
password
)
{
this
.
host
=
specialHost
;
this
.
port
=
specialPort
;
this
.
host
=
SPECIAL_HOST
;
this
.
port
=
SPECIAL_PORT
;
this
.
password
=
password
;
this
.
username
=
username
;
}
...
...
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