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
f8c68a35
Commit
f8c68a35
authored
May 15, 2020
by
renjie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-zrj' into 'staging'
admin统计ip See merge request
!122
parents
73a23124
aecbafb3
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
143 additions
and
2 deletions
+143
-2
IpCountQueryResultDto.java
...gec/browserbackend/account/dto/IpCountQueryResultDto.java
+19
-0
PromotionQueryResultDto.java
...c/browserbackend/account/dto/PromotionQueryResultDto.java
+9
-0
AdministratorServiceImpl.java
...ackend/account/service/impl/AdministratorServiceImpl.java
+27
-2
IpCountRecord.java
...om/edgec/browserbackend/browser/domain/IpCountRecord.java
+43
-0
IpCountRecordRepository.java
...erbackend/browser/repository/IpCountRecordRepository.java
+8
-0
BrowserTask.java
...va/com/edgec/browserbackend/browser/task/BrowserTask.java
+37
-0
No files found.
src/main/java/com/edgec/browserbackend/account/dto/IpCountQueryResultDto.java
View file @
f8c68a35
...
...
@@ -4,6 +4,9 @@ public class IpCountQueryResultDto {
long
IpCount_using
;
long
IpCount_all
;
long
IpCount_yesterday_using
;
long
IpCount_yesterday_all
;
public
long
getIpCount_all
()
{
return
IpCount_all
;
}
...
...
@@ -19,4 +22,20 @@ public class IpCountQueryResultDto {
public
void
setIpCount_using
(
long
ipCount_using
)
{
IpCount_using
=
ipCount_using
;
}
public
long
getIpCount_yesterday_all
()
{
return
IpCount_yesterday_all
;
}
public
void
setIpCount_yesterday_all
(
long
ipCount_yesterday_all
)
{
IpCount_yesterday_all
=
ipCount_yesterday_all
;
}
public
long
getIpCount_yesterday_using
()
{
return
IpCount_yesterday_using
;
}
public
void
setIpCount_yesterday_using
(
long
ipCount_yesterday_using
)
{
IpCount_yesterday_using
=
ipCount_yesterday_using
;
}
}
src/main/java/com/edgec/browserbackend/account/dto/PromotionQueryResultDto.java
View file @
f8c68a35
...
...
@@ -7,6 +7,7 @@ import org.springframework.data.domain.Page;
public
class
PromotionQueryResultDto
{
private
String
username
;
private
String
code
;
private
long
ipCount
;
Page
<
AccountPromotionDto
>
users
;
Promotion
promotion
;
...
...
@@ -50,4 +51,12 @@ public class PromotionQueryResultDto {
public
void
setUsers
(
Page
<
AccountPromotionDto
>
users
)
{
this
.
users
=
users
;
}
public
long
getIpCount
()
{
return
ipCount
;
}
public
void
setIpCount
(
long
ipCount
)
{
this
.
ipCount
=
ipCount
;
}
}
src/main/java/com/edgec/browserbackend/account/service/impl/AdministratorServiceImpl.java
View file @
f8c68a35
...
...
@@ -10,11 +10,12 @@ import com.edgec.browserbackend.account.repository.*;
import
com.edgec.browserbackend.account.service.AdministratorService
;
import
com.edgec.browserbackend.auth.service.UserService
;
import
com.edgec.browserbackend.browser.ErrorCode.BrowserErrorCode
;
import
com.edgec.browserbackend.browser.domain.IpCountRecord
;
import
com.edgec.browserbackend.browser.domain.ProxyConfig
;
import
com.edgec.browserbackend.browser.repository.IpCountRecordRepository
;
import
com.edgec.browserbackend.browser.repository.IpResourceRepository
;
import
com.edgec.browserbackend.browser.repository.ProxyConfigRepository
;
import
com.edgec.browserbackend.common.commons.error.ClientRequestException
;
import
com.edgec.browserbackend.common.commons.utils.DateConverter
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -29,9 +30,12 @@ import org.springframework.stereotype.Service;
import
java.io.File
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.time.Instant
;
import
java.time.ZoneOffset
;
import
java.time.ZonedDateTime
;
import
java.time.temporal.ChronoUnit
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicLong
;
@Service
...
...
@@ -67,6 +71,9 @@ public class AdministratorServiceImpl implements AdministratorService {
@Autowired
private
ProxyConfigRepository
proxyConfigRepository
;
@Autowired
private
IpCountRecordRepository
ipCountRecordRepository
;
@Override
public
Administrator
createAdministrator
(
Administrator
administrator
)
{
Administrator
administrator1
=
new
Administrator
();
...
...
@@ -379,12 +386,27 @@ public class AdministratorServiceImpl implements AdministratorService {
long
ipcount_all
=
ipResourceRepository
.
count
();
ipCountQueryResultDto
.
setIpCount_using
(
ipcount_using
);
ipCountQueryResultDto
.
setIpCount_all
(
ipcount_all
);
IpCountRecord
ipCountRecord
=
ipCountRecordRepository
.
findFirstByUsernameAndTimestampBetween
(
"all"
,
Instant
.
now
().
minus
(
1
,
ChronoUnit
.
DAYS
).
toEpochMilli
(),
Instant
.
now
().
toEpochMilli
());
if
(
ipCountRecord
!=
null
)
{
ipCountQueryResultDto
.
setIpCount_all
(
ipCountRecord
.
getIp_all
());
ipCountQueryResultDto
.
setIpCount_using
(
ipCountRecord
.
getIp_using
());
}
}
else
{
long
ipcount_using
=
ipResourceRepository
.
countAllByOwnerAndIsDeleted
(
username
,
false
);
long
ipcount_all
=
ipResourceRepository
.
countAllByOwner
(
username
);
ipCountQueryResultDto
.
setIpCount_using
(
ipcount_using
);
ipCountQueryResultDto
.
setIpCount_all
(
ipcount_all
);
IpCountRecord
ipCountRecord
=
ipCountRecordRepository
.
findFirstByUsernameAndTimestampBetween
(
username
,
Instant
.
now
().
minus
(
1
,
ChronoUnit
.
DAYS
).
toEpochMilli
(),
Instant
.
now
().
toEpochMilli
());
if
(
ipCountRecord
!=
null
)
{
ipCountQueryResultDto
.
setIpCount_all
(
ipCountRecord
.
getIp_all
());
ipCountQueryResultDto
.
setIpCount_using
(
ipCountRecord
.
getIp_using
());
}
}
return
ipCountQueryResultDto
;
}
...
...
@@ -420,6 +442,7 @@ public class AdministratorServiceImpl implements AdministratorService {
List
<
Account
>
accounts
=
accountRepository
.
findAllBySignupDateBetweenAndPromotionCodeAndParentIsNull
(
dateTime1
,
dateTime2
,
account
.
getPromotion
().
getCode
());
Promotion
promotion
=
new
Promotion
();
Account
finalAccount
=
account
;
AtomicLong
ipCount
=
new
AtomicLong
();
if
(
accounts
!=
null
&&
accounts
.
size
()
>
0
)
{
accounts
.
forEach
(
x
->
{
promotion
.
setInvitedUsers
(
promotion
.
getInvitedUsers
()
+
1
);
...
...
@@ -430,10 +453,12 @@ public class AdministratorServiceImpl implements AdministratorService {
promotion
.
setTotalCommission
(
promotion
.
getTotalCommission
()
+
(
int
)
totalCommission
);
promotion
.
setCommission
(
promotion
.
getCommission
()
+
x
.
getPromotion
().
getCommission
());
double
secondCommission
=
0
;
ipCount
.
addAndGet
(
ipResourceRepository
.
countAllByOwnerAndIsDeleted
(
x
.
getName
(),
false
));
if
(
finalAccount
.
getPromotion
().
isSale
()
&&
x
.
getParent
()
==
null
)
{
List
<
Account
>
secondPromotes
=
accountRepository
.
findByPromotionCodeAndParentIsNull
(
x
.
getPromotion
().
getCode
());
if
(
secondPromotes
!=
null
&&
secondPromotes
.
size
()
>
0
)
{
for
(
Account
secondPromote
:
secondPromotes
)
{
ipCount
.
addAndGet
(
ipResourceRepository
.
countAllByOwnerAndIsDeleted
(
secondPromote
.
getName
(),
false
));
List
<
UserPrePaidBilling
>
userPrePaidBillings1
=
userPrePaidBillingRepository
.
findByAdministratorAndPayMethodInAndTimestampBetween
(
secondPromote
.
getName
(),
Arrays
.
asList
(
1
,
2
,
3
),
dateTime1
.
getTime
(),
dateTime2
.
getTime
());
if
(
userPrePaidBillings1
!=
null
&&
userPrePaidBillings1
.
size
()
>
0
)
secondCommission
+=
userPrePaidBillings1
.
stream
().
mapToDouble
(
UserPrePaidBilling:
:
getTotal
).
sum
();
...
...
@@ -450,7 +475,7 @@ public class AdministratorServiceImpl implements AdministratorService {
});
}
promotionQueryResultDto
.
setPromotion
(
promotion
);
promotionQueryResultDto
.
setIpCount
(
ipCount
.
get
());
return
promotionQueryResultDto
;
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
...
...
src/main/java/com/edgec/browserbackend/browser/domain/IpCountRecord.java
0 → 100644
View file @
f8c68a35
package
com
.
edgec
.
browserbackend
.
browser
.
domain
;
import
org.springframework.data.mongodb.core.mapping.Document
;
@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
;
}
public
void
setIp_using
(
long
ip_using
)
{
this
.
ip_using
=
ip_using
;
}
public
long
getTimestamp
()
{
return
timestamp
;
}
public
void
setTimestamp
(
long
timestamp
)
{
this
.
timestamp
=
timestamp
;
}
}
src/main/java/com/edgec/browserbackend/browser/repository/IpCountRecordRepository.java
0 → 100644
View file @
f8c68a35
package
com
.
edgec
.
browserbackend
.
browser
.
repository
;
import
com.edgec.browserbackend.browser.domain.IpCountRecord
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
public
interface
IpCountRecordRepository
extends
MongoRepository
<
IpCountRecord
,
String
>
{
IpCountRecord
findFirstByUsernameAndTimestampBetween
(
String
username
,
long
begin
,
long
end
);
}
src/main/java/com/edgec/browserbackend/browser/task/BrowserTask.java
View file @
f8c68a35
package
com
.
edgec
.
browserbackend
.
browser
.
task
;
import
com.alibaba.fastjson.JSONObject
;
import
com.edgec.browserbackend.account.domain.Account
;
import
com.edgec.browserbackend.account.domain.IpChargeRequestDto
;
import
com.edgec.browserbackend.account.domain.QueryIpUrlList
;
import
com.edgec.browserbackend.account.repository.AccountRepository
;
import
com.edgec.browserbackend.account.repository.QueryIpUrlListRepository
;
import
com.edgec.browserbackend.account.service.AccountService
;
import
com.edgec.browserbackend.browser.domain.IpCountRecord
;
import
com.edgec.browserbackend.browser.domain.IpResource
;
import
com.edgec.browserbackend.browser.domain.IpType
;
import
com.edgec.browserbackend.browser.dto.IpBuyResultDto
;
import
com.edgec.browserbackend.browser.dto.IpInfoResultDto
;
import
com.edgec.browserbackend.browser.dto.ShopRequestDto
;
import
com.edgec.browserbackend.browser.repository.IpCountRecordRepository
;
import
com.edgec.browserbackend.browser.repository.IpResourceRepository
;
import
com.edgec.browserbackend.browser.service.IpAndShopService
;
import
com.edgec.browserbackend.common.commons.utils.NotifyUtils
;
...
...
@@ -62,6 +66,12 @@ public class BrowserTask {
@Autowired
private
QueryIpUrlListRepository
queryIpUrlListRepository
;
@Autowired
private
IpCountRecordRepository
ipCountRecordRepository
;
@Autowired
private
AccountRepository
accountRepository
;
@Value
(
"${spring.profiles.active}"
)
private
String
profiles
;
...
...
@@ -278,6 +288,33 @@ public class BrowserTask {
}
}
@Scheduled
(
cron
=
"0 0 0 * * ?"
)
public
void
countIp
()
{
List
<
Account
>
accounts
=
accountRepository
.
findAll
();
try
{
accounts
.
forEach
(
x
->
{
IpCountRecord
ipCountRecord
=
new
IpCountRecord
();
ipCountRecord
.
setUsername
(
x
.
getName
());
ipCountRecord
.
setTimestamp
(
Instant
.
now
().
toEpochMilli
());
long
ipcount_using
=
ipResourceRepository
.
countAllByOwnerAndIsDeleted
(
x
.
getName
(),
false
);
long
ipcount_all
=
ipResourceRepository
.
countAllByOwner
(
x
.
getName
());
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
());
long
ipcount_using
=
ipResourceRepository
.
countAllByIsDeleted
(
false
);
long
ipcount_all
=
ipResourceRepository
.
count
();
ipCountRecord
.
setIp_using
(
ipcount_using
);
ipCountRecord
.
setIp_all
(
ipcount_all
);
ipCountRecordRepository
.
save
(
ipCountRecord
);
}
catch
(
Exception
e
)
{
log
.
error
(
"统计IpCount error"
,
e
);
}
}
public
static
class
HttpClientutils
{
static
OkHttpClient
.
Builder
builder
=
new
OkHttpClient
.
Builder
();
...
...
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