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
2a52374d
Commit
2a52374d
authored
Jul 01, 2020
by
xuxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加注释与日志
parent
d149c51e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
191 additions
and
302 deletions
+191
-302
AccountController.java
.../browserbackend/account/controller/AccountController.java
+24
-48
Account.java
...java/com/edgec/browserbackend/account/domain/Account.java
+1
-1
Otp.java
...ain/java/com/edgec/browserbackend/account/domain/Otp.java
+14
-23
Promotion.java
...va/com/edgec/browserbackend/account/domain/Promotion.java
+38
-79
User.java
...in/java/com/edgec/browserbackend/account/domain/User.java
+6
-100
UserPrePaidBilling.java
...gec/browserbackend/account/domain/UserPrePaidBilling.java
+10
-2
AccountServiceImpl.java
...owserbackend/account/service/impl/AccountServiceImpl.java
+0
-0
UserServiceImpl.java
...gec/browserbackend/auth/service/Impl/UserServiceImpl.java
+5
-7
ShopController.java
...gec/browserbackend/browser/controller/ShopController.java
+3
-0
IpResourceRequestDto.java
...dgec/browserbackend/browser/dto/IpResourceRequestDto.java
+33
-2
IpResourceRepositoryCustomImpl.java
...nd/browser/repository/IpResourceRepositoryCustomImpl.java
+1
-4
IpResourceServiceImpl.java
...erbackend/browser/service/Impl/IpResourceServiceImpl.java
+2
-2
BrowserTask.java
...va/com/edgec/browserbackend/browser/task/BrowserTask.java
+18
-16
PromotionTask.java
.../com/edgec/browserbackend/browser/task/PromotionTask.java
+36
-18
No files found.
src/main/java/com/edgec/browserbackend/account/controller/AccountController.java
View file @
2a52374d
...
@@ -30,7 +30,9 @@ import java.security.Principal;
...
@@ -30,7 +30,9 @@ import java.security.Principal;
import
java.time.ZoneOffset
;
import
java.time.ZoneOffset
;
import
java.time.ZonedDateTime
;
import
java.time.ZonedDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.Date
;
import
java.util.Enumeration
;
import
java.util.List
;
@RestController
@RestController
@RequestMapping
(
"/user"
)
@RequestMapping
(
"/user"
)
...
@@ -80,11 +82,7 @@ public class AccountController {
...
@@ -80,11 +82,7 @@ public class AccountController {
resultDto
.
setStatus
(
0
);
resultDto
.
setStatus
(
0
);
resultDto
.
setData
(
userDtos
);
resultDto
.
setData
(
userDtos
);
}
catch
(
ClientRequestException
e
)
{
}
catch
(
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
dealClientRequestException
(
resultDto
,
e
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
return
resultDto
;
return
resultDto
;
}
}
...
@@ -102,11 +100,7 @@ public class AccountController {
...
@@ -102,11 +100,7 @@ public class AccountController {
resultDto
.
setStatus
(
0
);
resultDto
.
setStatus
(
0
);
resultDto
.
setData
(
account1
);
resultDto
.
setData
(
account1
);
}
catch
(
ClientRequestException
e
)
{
}
catch
(
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
dealClientRequestException
(
resultDto
,
e
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
return
resultDto
;
return
resultDto
;
}
}
...
@@ -119,32 +113,29 @@ public class AccountController {
...
@@ -119,32 +113,29 @@ public class AccountController {
resultDto
.
setStatus
(
0
);
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
}
catch
(
ClientRequestException
e
)
{
logger
.
error
(
"fail to send sms"
,
e
);
logger
.
error
(
"fail to send sms"
,
e
);
resultDto
.
setStatus
(-
1
);
dealClientRequestException
(
resultDto
,
e
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
return
resultDto
;
return
resultDto
;
}
}
/**
* 用户注册
*/
@RequestMapping
(
path
=
"/signUp"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
path
=
"/signUp"
,
method
=
RequestMethod
.
POST
)
public
ResultDto
createNewAccount
(
@Valid
@RequestBody
User
user
)
{
public
ResultDto
createNewAccount
(
@Valid
@RequestBody
User
user
)
{
ResultDto
resultDto
=
new
ResultDto
();
ResultDto
resultDto
=
new
ResultDto
();
try
{
try
{
Account
account
=
new
Account
();
Account
account
=
new
Account
();
if
(!
StringUtils
.
isEmpty
(
user
.
getEmail
()))
if
(!
StringUtils
.
isEmpty
(
user
.
getEmail
()))
{
account
=
accountService
.
create
(
user
);
account
=
accountService
.
create
(
user
);
else
}
else
{
account
=
accountService
.
createWithSms
(
user
);
account
=
accountService
.
createWithSms
(
user
);
}
resultDto
.
setStatus
(
0
);
resultDto
.
setStatus
(
0
);
resultDto
.
setData
(
account
);
resultDto
.
setData
(
account
);
}
catch
(
ClientRequestException
e
)
{
}
catch
(
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
dealClientRequestException
(
resultDto
,
e
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
return
resultDto
;
return
resultDto
;
}
}
...
@@ -173,11 +164,7 @@ public class AccountController {
...
@@ -173,11 +164,7 @@ public class AccountController {
resultDto
.
setData
(
accountService
.
getUserPrePaidBills
(
principal
.
getName
(),
userPrePaidBillingRequestDto
));
resultDto
.
setData
(
accountService
.
getUserPrePaidBills
(
principal
.
getName
(),
userPrePaidBillingRequestDto
));
resultDto
.
setStatus
(
0
);
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
}
catch
(
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
dealClientRequestException
(
resultDto
,
e
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
return
resultDto
;
return
resultDto
;
}
}
...
@@ -217,11 +204,7 @@ public class AccountController {
...
@@ -217,11 +204,7 @@ public class AccountController {
accountService
.
resetPassword
(
principal
.
getName
(),
user
);
accountService
.
resetPassword
(
principal
.
getName
(),
user
);
resultDto
.
setStatus
(
0
);
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
}
catch
(
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
dealClientRequestException
(
resultDto
,
e
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
return
resultDto
;
return
resultDto
;
}
}
...
@@ -238,11 +221,7 @@ public class AccountController {
...
@@ -238,11 +221,7 @@ public class AccountController {
accountService
.
resetPasswordWithOtp
(
user
);
accountService
.
resetPasswordWithOtp
(
user
);
resultDto
.
setStatus
(
0
);
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
}
catch
(
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
dealClientRequestException
(
resultDto
,
e
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
return
resultDto
;
return
resultDto
;
}
}
...
@@ -449,11 +428,7 @@ public class AccountController {
...
@@ -449,11 +428,7 @@ public class AccountController {
accountService
.
authorizeCompany
(
principal
.
getName
(),
companyAuthorizeDto
);
accountService
.
authorizeCompany
(
principal
.
getName
(),
companyAuthorizeDto
);
resultDto
.
setStatus
(
0
);
resultDto
.
setStatus
(
0
);
}
catch
(
ClientRequestException
e
)
{
}
catch
(
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
dealClientRequestException
(
resultDto
,
e
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
return
resultDto
;
return
resultDto
;
}
}
...
@@ -498,12 +473,13 @@ public class AccountController {
...
@@ -498,12 +473,13 @@ public class AccountController {
else
else
resultDto
.
setStatus
(-
1
);
resultDto
.
setStatus
(-
1
);
}
catch
(
ClientRequestException
e
)
{
}
catch
(
ClientRequestException
e
)
{
resultDto
.
setStatus
(-
1
);
dealClientRequestException
(
resultDto
,
e
);
Map
<
String
,
Object
>
statusInfo
=
new
HashMap
<>();
statusInfo
.
put
(
"code"
,
e
.
getErrorCode
());
statusInfo
.
put
(
"message"
,
e
.
getMessage
());
resultDto
.
setStatusInfo
(
statusInfo
);
}
}
return
resultDto
;
return
resultDto
;
}
}
private
void
dealClientRequestException
(
ResultDto
resultDto
,
ClientRequestException
e
)
{
dealClientRequestException
(
resultDto
,
e
);
}
}
}
src/main/java/com/edgec/browserbackend/account/domain/Account.java
View file @
2a52374d
...
@@ -68,7 +68,7 @@ public class Account {
...
@@ -68,7 +68,7 @@ public class Account {
private
int
permission
=
-
1
;
private
int
permission
=
-
1
;
/**
/**
* 注册成功后,当前用户的邀请码,用于邀请别人获取佣金
* 注册成功后,当前用户的邀请码
相关信息
,用于邀请别人获取佣金
*/
*/
private
Promotion
promotion
;
private
Promotion
promotion
;
...
...
src/main/java/com/edgec/browserbackend/account/domain/Otp.java
View file @
2a52374d
package
com
.
edgec
.
browserbackend
.
account
.
domain
;
package
com
.
edgec
.
browserbackend
.
account
.
domain
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
org.springframework.data.mongodb.core.mapping.Document
;
@Data
@Document
(
collection
=
"phoneotp"
)
@Document
(
collection
=
"phoneotp"
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
Otp
{
public
class
Otp
{
/**
* 手机号
*/
@Id
@Id
private
String
phone
;
private
String
phone
;
private
String
otp
;
private
long
createdAt
;
public
String
getPhone
()
{
return
phone
;
}
public
void
setPhone
(
String
phone
)
{
/**
this
.
phone
=
phone
;
* 发送给用户的短信验证码
}
*/
private
String
otp
;
public
String
getOtp
()
{
return
otp
;
}
public
void
setOtp
(
String
otp
)
{
this
.
otp
=
otp
;
}
public
long
getCreatedAt
()
{
/**
return
createdAt
;
* 短信验证码的发送时间
}
*/
private
long
createdAt
;
public
void
setCreatedAt
(
long
createdAt
)
{
this
.
createdAt
=
createdAt
;
}
}
}
src/main/java/com/edgec/browserbackend/account/domain/Promotion.java
View file @
2a52374d
package
com
.
edgec
.
browserbackend
.
account
.
domain
;
package
com
.
edgec
.
browserbackend
.
account
.
domain
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
/**
* @Desc
* @Desc
* @Author jason
* @Author jason
* @CreateTime 2020/3/12 3:14 下午
* @CreateTime 2020/3/12 3:14 下午
**/
**/
@Getter
@Setter
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
Promotion
{
public
class
Promotion
{
/**
* 邀请码(用户邀请好友使用本产品)
*/
private
String
code
;
private
String
code
;
//邀请人数
/**
* 邀请人数
*/
private
int
invitedUsers
;
private
int
invitedUsers
;
//好友本月以前总消费
private
int
totalCommission
;
//好友当月消费
private
int
commission
;
//好友上月总消费
private
int
commissionLastMonth
;
//是否是本公司的销售
private
boolean
isSale
;
//当月礼金
private
double
gift
;
//所有未提现金额
private
double
allGift
;
//已提现金额
private
double
withdrawn
;
public
int
getCommission
()
{
return
commission
;
}
public
void
setCommission
(
int
commission
)
{
this
.
commission
=
commission
;
}
public
int
getInvitedUsers
()
{
return
invitedUsers
;
}
public
void
setInvitedUsers
(
int
invitedUsers
)
{
this
.
invitedUsers
=
invitedUsers
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
/**
this
.
code
=
code
;
* 好友本月以前总消费
}
*/
private
int
totalCommission
;
public
boolean
isSale
()
{
return
isSale
;
}
public
void
setSale
(
boolean
sale
)
{
isSale
=
sale
;
}
public
double
getGift
()
{
return
gift
;
}
public
void
setGift
(
double
gift
)
{
this
.
gift
=
gift
;
}
public
int
getCommissionLastMonth
()
{
return
commissionLastMonth
;
}
public
void
setCommissionLastMonth
(
int
commissionLastMonth
)
{
/**
this
.
commissionLastMonth
=
commissionLastMonth
;
* 好友当月消费
}
*/
private
int
commission
;
public
double
getAllGift
()
{
/**
return
allGift
;
* 好友上月总消费
}
*/
private
int
commissionLastMonth
;
public
void
setAllGift
(
double
allGift
)
{
/**
this
.
allGift
=
allGift
;
* 是否是本公司的销售
}
*/
private
boolean
isSale
;
public
double
getWithdrawn
()
{
/**
return
withdrawn
;
* 当月礼金
}
*/
private
double
gift
;
public
void
setWithdrawn
(
double
withdrawn
)
{
/**
this
.
withdrawn
=
withdrawn
;
* 所有未提现金额
}
*/
private
double
allGift
;
public
int
getTotalCommission
()
{
/**
return
totalCommission
;
* 已提现金额
}
*/
private
double
withdrawn
;
public
void
setTotalCommission
(
int
totalCommission
)
{
this
.
totalCommission
=
totalCommission
;
}
}
}
src/main/java/com/edgec/browserbackend/account/domain/User.java
View file @
2a52374d
package
com
.
edgec
.
browserbackend
.
account
.
domain
;
package
com
.
edgec
.
browserbackend
.
account
.
domain
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.Email
;
import
javax.validation.constraints.Email
;
...
@@ -7,15 +8,16 @@ import java.util.ArrayList;
...
@@ -7,15 +8,16 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
java.util.UUID
;
import
java.util.UUID
;
@Data
public
class
User
{
public
class
User
{
@Length
(
min
=
3
,
max
=
20
,
message
=
"Name length should be between 3 - 20"
)
@Length
(
min
=
3
,
max
=
20
,
message
=
"Name length should be between 3 - 20"
)
private
String
username
;
private
String
username
;
@Length
(
min
=
6
,
max
=
40
,
message
=
"Password length should be between 6 - 40"
)
@Length
(
min
=
6
,
max
=
40
,
message
=
"Password length should be between 6 - 40"
)
private
String
password
;
private
String
password
;
@Email
(
message
=
"Invalid email address"
)
@Email
(
message
=
"Invalid email address"
)
private
String
email
;
private
String
email
;
private
String
phone
;
private
String
phone
;
...
@@ -28,108 +30,12 @@ public class User {
...
@@ -28,108 +30,12 @@ public class User {
private
String
lockReason
;
private
String
lockReason
;
public
String
getAuthCode
()
{
return
authCode
;
}
public
void
setAuthCode
(
String
authCode
)
{
this
.
authCode
=
authCode
;
}
public
String
getPhone
()
{
return
phone
;
}
public
void
setPhone
(
String
phone
)
{
this
.
phone
=
phone
;
}
private
boolean
allowedToCreateSubUser
=
true
;
private
boolean
allowedToCreateSubUser
=
true
;
private
int
permission
;
private
int
permission
;
private
List
<
String
>
whiteList
=
new
ArrayList
<>();
private
List
<
String
>
whiteList
=
new
ArrayList
<>();
private
String
verificationCode
=
UUID
.
randomUUID
().
toString
();
private
String
verificationCode
=
UUID
.
randomUUID
().
toString
();
public
boolean
isEnabled
()
{
return
enabled
;
}
public
void
setEnabled
(
boolean
enabled
)
{
this
.
enabled
=
enabled
;
}
public
String
getVerificationCode
()
{
return
verificationCode
;
}
public
void
setVerificationCode
(
String
verificationCode
)
{
this
.
verificationCode
=
verificationCode
;
}
public
String
getEmail
()
{
return
email
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
boolean
isAllowedToCreateSubUser
()
{
return
allowedToCreateSubUser
;
}
public
void
setAllowedToCreateSubUser
(
boolean
allowedToCreateSubUser
)
{
allowedToCreateSubUser
=
allowedToCreateSubUser
;
}
public
int
getPermission
()
{
return
permission
;
}
public
void
setPermission
(
int
permission
)
{
this
.
permission
=
permission
;
}
public
String
getLockReason
()
{
return
lockReason
;
}
public
void
setLockReason
(
String
lockReason
)
{
this
.
lockReason
=
lockReason
;
}
public
List
<
String
>
getWhiteList
()
{
return
whiteList
;
}
public
void
setWhiteList
(
List
<
String
>
whiteList
)
{
this
.
whiteList
=
whiteList
;
}
public
String
getPromotionCode
()
{
return
promotionCode
;
}
public
void
setPromotionCode
(
String
promotionCode
)
{
this
.
promotionCode
=
promotionCode
;
}
}
}
src/main/java/com/edgec/browserbackend/account/domain/UserPrePaidBilling.java
View file @
2a52374d
...
@@ -40,13 +40,21 @@ public class UserPrePaidBilling {
...
@@ -40,13 +40,21 @@ public class UserPrePaidBilling {
private
BillStatus
status
;
private
BillStatus
status
;
//0 -- 余额, 1 -- 支付宝, 2 -- 微信, 3 -- 银行转账
/**
* 0 -- 余额, 1 -- 支付宝, 2 -- 微信, 3 -- 银行转账
*/
private
int
payMethod
;
private
int
payMethod
;
private
boolean
isPrepaid
;
private
boolean
isPrepaid
;
/**
* 本次消费金额
*/
private
float
total
;
private
float
total
;
//0 -- 充值, 1 -- newip, 2 -- renew, 3 -- return, 4 -- 礼金提现
/**
* 0 -- 充值, 1 -- newip, 2 -- renew, 3 -- return, 4 -- 礼金提现
*/
private
int
chargeType
;
private
int
chargeType
;
private
String
unit
=
"month"
;
private
String
unit
=
"month"
;
...
...
src/main/java/com/edgec/browserbackend/account/service/impl/AccountServiceImpl.java
View file @
2a52374d
This diff is collapsed.
Click to expand it.
src/main/java/com/edgec/browserbackend/auth/service/Impl/UserServiceImpl.java
View file @
2a52374d
...
@@ -15,8 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -15,8 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Optional
;
@Service
@Service
public
class
UserServiceImpl
implements
UserService
{
public
class
UserServiceImpl
implements
UserService
{
...
@@ -96,11 +94,11 @@ public class UserServiceImpl implements UserService {
...
@@ -96,11 +94,11 @@ public class UserServiceImpl implements UserService {
@Override
@Override
public
void
create
(
User
user
)
{
public
void
create
(
User
user
)
{
repository
.
findById
(
user
.
getUsername
()).
ifPresent
(
Optional
<
User
>
existing
=
repository
.
findById
(
user
.
getUsername
());
it
->
{
existing
.
ifPresent
(
it
->
{
throw
new
ClientRequestException
(
AuthErrorCode
.
NAMEEXIST
,
"user already exists: "
+
it
.
getUsername
());
throw
new
ClientRequestException
(
AuthErrorCode
.
NAMEEXIST
,
"user already exists: "
+
it
.
getUsername
());
}
}
);
);
String
hash
=
encoder
.
encode
(
user
.
getPassword
());
String
hash
=
encoder
.
encode
(
user
.
getPassword
());
user
.
setPassword
(
hash
);
user
.
setPassword
(
hash
);
...
...
src/main/java/com/edgec/browserbackend/browser/controller/ShopController.java
View file @
2a52374d
...
@@ -216,6 +216,9 @@ public class ShopController {
...
@@ -216,6 +216,9 @@ public class ShopController {
return
resultDto
;
return
resultDto
;
}
}
/**
* 恢复部分缺失数据,仅仅调用一次就好了
*/
@GetMapping
(
value
=
"/deal_dirtydata"
)
@GetMapping
(
value
=
"/deal_dirtydata"
)
public
ResultDto
dealDirtydata
()
{
public
ResultDto
dealDirtydata
()
{
...
...
src/main/java/com/edgec/browserbackend/browser/dto/IpResourceRequestDto.java
View file @
2a52374d
...
@@ -10,27 +10,58 @@ import java.util.List;
...
@@ -10,27 +10,58 @@ import java.util.List;
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
IpResourceRequestDto
{
public
class
IpResourceRequestDto
{
private
String
name
;
private
String
name
;
/**
* ip 所在地域(英文)
*/
private
String
region
;
private
String
region
;
/**
* ip 所在地域(中文)
*/
private
String
regionCn
;
private
String
regionCn
;
/**
* ip 厂商
*/
private
String
vendor
=
"aliyun"
;
private
String
vendor
=
"aliyun"
;
private
String
logintype
=
"password"
;
private
String
logintype
=
"password"
;
private
String
shopId
;
private
String
shopId
;
//0 -- 余额, 1 -- 支付宝, 2 -- 微信
/**
* 0:余额, 1:支付宝, 2:微信
*/
private
int
payMethod
=
0
;
private
int
payMethod
=
0
;
@Max
(
12
)
@Max
(
12
)
@Min
(
1
)
@Min
(
1
)
private
int
period
=
1
;
private
int
period
=
1
;
/**
* 例如 period :2,unit = month
* 代表:购买 ip 2 个 月
*/
private
String
unit
=
"month"
;
private
String
unit
=
"month"
;
/**
* 购买的ip数量(用户可以一次购买多个ip)
*/
private
int
amount
=
1
;
private
int
amount
=
1
;
private
boolean
autorenew
=
false
;
private
boolean
autorenew
=
false
;
private
int
ipkeptperiod
=
7
;
private
int
ipkeptperiod
=
7
;
private
String
startscript
=
""
;
private
String
startscript
=
""
;
/**
* ip 是否需要使用专线
*/
private
boolean
specialLine
;
private
boolean
specialLine
;
//自有IP需要传proxy的账号
/**
* 自有IP需要传proxy的账号
*/
private
String
username
;
private
String
username
;
private
String
password
;
private
String
password
;
private
String
instanceSpecKey
;
private
String
instanceSpecKey
;
...
...
src/main/java/com/edgec/browserbackend/browser/repository/IpResourceRepositoryCustomImpl.java
View file @
2a52374d
...
@@ -35,10 +35,7 @@ public class IpResourceRepositoryCustomImpl implements IpResourceRepositoryCusto
...
@@ -35,10 +35,7 @@ public class IpResourceRepositoryCustomImpl implements IpResourceRepositoryCusto
update
.
set
(
"isLocked"
,
true
).
set
(
"lockTimestamp"
,
Instant
.
now
().
toEpochMilli
());
update
.
set
(
"isLocked"
,
true
).
set
(
"lockTimestamp"
,
Instant
.
now
().
toEpochMilli
());
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
basicQuery
,
update
,
IpResource
.
class
);
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
basicQuery
,
update
,
IpResource
.
class
);
if
(
result
.
getModifiedCount
()
<
1
)
return
result
.
getModifiedCount
()
>=
1
;
return
false
;
else
return
true
;
}
}
@Override
@Override
...
...
src/main/java/com/edgec/browserbackend/browser/service/Impl/IpResourceServiceImpl.java
View file @
2a52374d
...
@@ -272,7 +272,7 @@ public class IpResourceServiceImpl implements IpResourceService {
...
@@ -272,7 +272,7 @@ public class IpResourceServiceImpl implements IpResourceService {
}
}
ipResource
.
setRegion
(
ipResourceRequestDto
.
getRegion
());
ipResource
.
setRegion
(
ipResourceRequestDto
.
getRegion
());
// 只要 申请的 ip 地域不是在 大陆,则一定会执行下面 if 中的代码块
boolean
condition1
=
StringUtils
.
isNotBlank
(
ipResource
.
getRegion
())
&&
region
.
contains
(
ipResource
.
getRegion
());
boolean
condition1
=
StringUtils
.
isNotBlank
(
ipResource
.
getRegion
())
&&
region
.
contains
(
ipResource
.
getRegion
());
boolean
condition2
=
ipResourceRequestDto
.
getVendor
().
equals
(
"own"
)
&&
ipResource
.
isSpecialLine
();
boolean
condition2
=
ipResourceRequestDto
.
getVendor
().
equals
(
"own"
)
&&
ipResource
.
isSpecialLine
();
if
(
condition1
||
condition2
)
{
if
(
condition1
||
condition2
)
{
...
@@ -306,7 +306,7 @@ public class IpResourceServiceImpl implements IpResourceService {
...
@@ -306,7 +306,7 @@ public class IpResourceServiceImpl implements IpResourceService {
accountService
.
chargeByMoney
(
username
,
newprice
*
ipChargeRequestDto
.
getAmount
()
*
ipChargeRequestDto
.
getPeriod
(),
ipChargeRequestDto
);
accountService
.
chargeByMoney
(
username
,
newprice
*
ipChargeRequestDto
.
getAmount
()
*
ipChargeRequestDto
.
getPeriod
(),
ipChargeRequestDto
);
}
}
// 如果ip需要绑定店铺,则将店铺与ip绑定
// 如果ip需要绑定店铺,则将店铺与ip绑定
todo 感觉这个地方代码用不到,
if
(
ipResourceRequestDto
.
getShopId
()
!=
null
)
{
if
(
ipResourceRequestDto
.
getShopId
()
!=
null
)
{
ShopRequestDto
shopRequestDto
=
new
ShopRequestDto
();
ShopRequestDto
shopRequestDto
=
new
ShopRequestDto
();
shopRequestDto
.
setIpId
(
ipResourceDtos
.
get
(
0
).
getId
());
shopRequestDto
.
setIpId
(
ipResourceDtos
.
get
(
0
).
getId
());
...
...
src/main/java/com/edgec/browserbackend/browser/task/BrowserTask.java
View file @
2a52374d
...
@@ -101,12 +101,15 @@ public class BrowserTask {
...
@@ -101,12 +101,15 @@ public class BrowserTask {
}
}
/**
* 购买ip的定时任务,每分钟一次
*/
@Scheduled
(
cron
=
"0 0/1 * * * ?"
)
@Scheduled
(
cron
=
"0 0/1 * * * ?"
)
public
void
buyIpTasks
()
{
public
void
buyIpTasks
()
{
String
URL
=
(
profiles
.
equals
(
"dev"
)
||
profiles
.
equals
(
"staging"
))
?
TESTURL
:
CLOUDAMURL
;
String
URL
=
(
profiles
.
equals
(
"dev"
)
||
profiles
.
equals
(
"staging"
))
?
TESTURL
:
CLOUDAMURL
;
long
time
=
Instant
.
now
().
minusSeconds
(
300
).
toEpochMilli
();
long
time
=
Instant
.
now
().
minusSeconds
(
300
).
toEpochMilli
();
List
<
IpResource
>
ipResources
=
ipResourceRepository
.
sampleTasks
(
6
,
time
);
List
<
IpResource
>
ipResources
=
ipResourceRepository
.
sampleTasks
(
6
,
time
);
log
.
error
(
"buyIpTasks sample {} tasks"
,
ipResources
.
size
());
log
.
info
(
"buyIpTasks sample {} tasks"
,
ipResources
.
size
());
List
<
CompletableFuture
>
futureList
=
new
ArrayList
<>();
List
<
CompletableFuture
>
futureList
=
new
ArrayList
<>();
for
(
IpResource
ipResource
:
ipResources
)
{
for
(
IpResource
ipResource
:
ipResources
)
{
long
start
=
System
.
currentTimeMillis
();
long
start
=
System
.
currentTimeMillis
();
...
@@ -139,22 +142,21 @@ public class BrowserTask {
...
@@ -139,22 +142,21 @@ public class BrowserTask {
}
}
if
(
ipBuyResultDto
!=
null
&&
ipBuyResultDto
.
getIplist
()
!=
null
&&
ipBuyResultDto
.
getIplist
().
size
()
>=
1
)
{
if
(
ipBuyResultDto
!=
null
&&
ipBuyResultDto
.
getIplist
()
!=
null
&&
ipBuyResultDto
.
getIplist
().
size
()
>=
1
)
{
AtomicInteger
index
=
new
AtomicInteger
();
AtomicInteger
index
=
new
AtomicInteger
();
ipBuyResultDto
.
getIplist
().
forEach
(
x
->
{
ipBuyResultDto
.
getIplist
().
forEach
(
if
(
ipResource
!=
null
)
{
x
->
{
ipResource
.
setAddr
(
x
.
getIp
());
ipResource
.
setAddr
(
x
.
getIp
());
ipResource
.
setStatus
(
3
);
ipResource
.
setStatus
(
3
);
ipResource
.
setValidTime
(
Instant
.
parse
(
x
.
getValidTill
()).
toEpochMilli
());
ipResource
.
setValidTime
(
Instant
.
parse
(
x
.
getValidTill
()).
toEpochMilli
());
if
(
StringUtils
.
isNotBlank
(
ipResource
.
getRegion
())
&&
region
.
contains
(
ipResource
.
getRegion
()))
{
if
(
StringUtils
.
isNotBlank
(
ipResource
.
getRegion
())
&&
region
.
contains
(
ipResource
.
getRegion
()))
{
ipResource
.
setProxyUsername
(
ipResource
.
getAddr
());
ipResource
.
setProxyUsername
(
ipResource
.
getAddr
());
ipResource
.
setProxyPassword
(
genRandom
(
3
,
12
));
ipResource
.
setProxyPassword
(
genRandom
(
3
,
12
));
ipResource
.
setSpecialLine
(
true
);
ipResource
.
setSpecialLine
(
true
);
}
ipResourceRepository
.
save
(
ipResource
);
index
.
getAndIncrement
();
}
}
ipResourceRepository
.
save
(
ipResource
);
);
}
else
{
log
.
error
(
"no ipResource"
);
}
index
.
getAndIncrement
();
});
result
=
true
;
result
=
true
;
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/edgec/browserbackend/browser/task/PromotionTask.java
View file @
2a52374d
...
@@ -12,9 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -12,9 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.time.Instant
;
import
java.time.YearMonth
;
import
java.time.YearMonth
;
import
java.time.ZoneOffset
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
...
@@ -32,32 +30,43 @@ public class PromotionTask {
...
@@ -32,32 +30,43 @@ public class PromotionTask {
@SchedulerLock
(
name
=
"countGift"
,
lockAtLeastForString
=
"PT1H"
,
lockAtMostForString
=
"PT2H"
)
@SchedulerLock
(
name
=
"countGift"
,
lockAtLeastForString
=
"PT1H"
,
lockAtMostForString
=
"PT2H"
)
@Scheduled
(
cron
=
"0 0 1 1 * ?"
)
@Scheduled
(
cron
=
"0 0 1 1 * ?"
)
public
void
countGift
()
{
public
void
countGift
()
{
log
.
info
(
"Start scheduled task:Scheduled.countGift..."
);
List
<
Account
>
accounts
=
accountRepository
.
findByParentIsNull
();
List
<
Account
>
accounts
=
accountRepository
.
findByParentIsNull
();
for
(
Account
account
:
accounts
)
{
for
(
Account
account
:
accounts
)
{
// 1. 获取当前账户的邀请码信息
String
code
=
account
.
getPromotion
().
getCode
();
String
code
=
account
.
getPromotion
().
getCode
();
// 2. 获取被当前账户邀请的所有账户
List
<
Account
>
promotes
=
accountRepository
.
findByPromotionCodeAndParentIsNull
(
code
);
List
<
Account
>
promotes
=
accountRepository
.
findByPromotionCodeAndParentIsNull
(
code
);
double
totalCommission
=
0
;
double
totalCommission
=
0
;
double
secondCommission
=
0
;
double
secondCommission
=
0
;
// 3. 计算所有被当前账户邀请的账户上个月的消费信息,以及如果当前账户是销售账户则还需要计算销售账户的下下级账户的上个月消费信息
for
(
Account
promote
:
promotes
)
{
for
(
Account
promote
:
promotes
)
{
List
<
UserPrePaidBilling
>
userPrePaidBillings
=
userPrePaidBillingRepository
.
findByAdministratorAndYearAndMonthAndPayMethodIn
(
promote
.
getName
(),
// 3.1 获取被邀请的用户上个月的消费信息,todo 感觉这个地方最好加上支付状态
YearMonth
.
now
().
minusMonths
(
1
).
getYear
(),
List
<
UserPrePaidBilling
>
userPrePaidBillings
=
userPrePaidBillingRepository
.
findByAdministratorAndYearAndMonthAndPayMethodIn
(
YearMonth
.
now
().
minusMonths
(
1
).
getMonthValue
(),
Arrays
.
asList
(
1
,
2
,
3
));
promote
.
getName
(),
YearMonth
.
now
().
minusMonths
(
1
).
getYear
(),
YearMonth
.
now
().
minusMonths
(
1
).
getMonthValue
(),
Arrays
.
asList
(
1
,
2
,
3
)
);
// 3.2. 计算被邀请的用户上个月的总消费金额
totalCommission
+=
userPrePaidBillings
.
stream
().
mapToDouble
(
UserPrePaidBilling:
:
getTotal
).
sum
();
totalCommission
+=
userPrePaidBillings
.
stream
().
mapToDouble
(
UserPrePaidBilling:
:
getTotal
).
sum
();
// 3.3. 如果当前账户是本公司销售,则计算下下级用户(例如:销售人员A 邀请了 用户B,用户B 邀请了 其他用户,其他用户就是A的下下级用户)上个月总消费金额
if
(
account
.
getPromotion
().
isSale
()
&&
promote
.
getParent
()
==
null
)
{
if
(
account
.
getPromotion
().
isSale
()
&&
promote
.
getParent
()
==
null
)
{
// 获取下下级账户
List
<
Account
>
secondPromotes
=
accountRepository
.
findByPromotionCodeAndParentIsNull
(
promote
.
getPromotion
().
getCode
());
List
<
Account
>
secondPromotes
=
accountRepository
.
findByPromotionCodeAndParentIsNull
(
promote
.
getPromotion
().
getCode
());
if
(
secondPromotes
!=
null
&&
secondPromotes
.
size
()
>
0
)
{
if
(
secondPromotes
!=
null
&&
!
secondPromotes
.
isEmpty
()
)
{
for
(
Account
secondPromote
:
secondPromotes
)
{
for
(
Account
secondPromote
:
secondPromotes
)
{
List
<
UserPrePaidBilling
>
userPrePaidBillings1
=
userPrePaidBillingRepository
.
findByAdministratorAndYearAndMonthAndPayMethodIn
(
secondPromote
.
getName
(),
List
<
UserPrePaidBilling
>
userPrePaidBillings1
=
userPrePaidBillingRepository
.
findByAdministratorAndYearAndMonthAndPayMethodIn
(
YearMonth
.
now
().
minusMonths
(
1
).
getYear
(),
secondPromote
.
getName
(),
YearMonth
.
now
().
minusMonths
(
1
).
getYear
(),
YearMonth
.
now
().
minusMonths
(
1
).
getMonthValue
(),
Arrays
.
asList
(
1
,
2
,
3
)
YearMonth
.
now
().
minusMonths
(
1
).
getMonthValue
(),
Arrays
.
asList
(
1
,
2
,
3
)
);
);
secondCommission
+=
userPrePaidBillings1
.
stream
().
mapToDouble
(
UserPrePaidBilling:
:
getTotal
).
sum
();
secondCommission
+=
userPrePaidBillings1
.
stream
().
mapToDouble
(
UserPrePaidBilling:
:
getTotal
).
sum
();
}
}
}
}
}
}
}
}
// 4. 封装当前账户的返佣相关信息(总消费、上月消费、当月礼金、总共未体现礼金)并保存
Promotion
promotion
=
account
.
getPromotion
();
Promotion
promotion
=
account
.
getPromotion
();
promotion
.
setTotalCommission
((
int
)(
promotion
.
getTotalCommission
()
+
totalCommission
));
promotion
.
setTotalCommission
((
int
)
(
promotion
.
getTotalCommission
()
+
totalCommission
));
promotion
.
setCommissionLastMonth
((
int
)
totalCommission
);
promotion
.
setCommissionLastMonth
((
int
)
totalCommission
);
promotion
.
setGift
(
totalCommission
*
0.08
);
promotion
.
setGift
(
totalCommission
*
0.08
);
if
(
account
.
getPromotion
().
isSale
())
{
if
(
account
.
getPromotion
().
isSale
())
{
promotion
.
setGift
(
totalCommission
*
0.1
+
secondCommission
*
0.02
);
promotion
.
setGift
(
totalCommission
*
0.1
+
secondCommission
*
0.02
);
...
@@ -65,41 +74,50 @@ public class PromotionTask {
...
@@ -65,41 +74,50 @@ public class PromotionTask {
promotion
.
setAllGift
(
promotion
.
getAllGift
()
+
promotion
.
getGift
());
promotion
.
setAllGift
(
promotion
.
getAllGift
()
+
promotion
.
getGift
());
accountRepository
.
save
(
account
);
accountRepository
.
save
(
account
);
}
}
log
.
info
(
"End scheduled task:Scheduled.countGift..."
);
}
}
@SchedulerLock
(
name
=
"countCommission"
,
lockAtLeastForString
=
"PT1H"
,
lockAtMostForString
=
"PT2H"
)
@SchedulerLock
(
name
=
"countCommission"
,
lockAtLeastForString
=
"PT1H"
,
lockAtMostForString
=
"PT2H"
)
@Scheduled
(
cron
=
"0 0 1 * * ?"
)
@Scheduled
(
cron
=
"0 0 1 * * ?"
)
public
void
countCommission
()
{
public
void
countCommission
()
{
log
.
info
(
"Start scheduled task:Scheduled.countCommission..."
);
List
<
Account
>
accounts
=
accountRepository
.
findByParentIsNull
();
List
<
Account
>
accounts
=
accountRepository
.
findByParentIsNull
();
for
(
Account
account
:
accounts
)
{
for
(
Account
account
:
accounts
)
{
// 1. 获取被当前账户邀请的所有账户
String
code
=
account
.
getPromotion
().
getCode
();
String
code
=
account
.
getPromotion
().
getCode
();
List
<
Account
>
promotes
=
accountRepository
.
findByPromotionCodeAndParentIsNull
(
code
);
List
<
Account
>
promotes
=
accountRepository
.
findByPromotionCodeAndParentIsNull
(
code
);
double
totalCommission
=
0
;
double
totalCommission
=
0
;
double
secondCommission
=
0
;
double
secondCommission
=
0
;
// 2. 计算所有被当前账户邀请的账户当月当前的消费信息,以及如果当前账户是销售账户则还需要计算销售账户的下下级账户的当月当前消费信息
for
(
Account
promote
:
promotes
)
{
for
(
Account
promote
:
promotes
)
{
List
<
UserPrePaidBilling
>
userPrePaidBillings
=
userPrePaidBillingRepository
.
findByAdministratorAndYearAndMonthAndPayMethodIn
(
promote
.
getName
(),
List
<
UserPrePaidBilling
>
userPrePaidBillings
=
userPrePaidBillingRepository
.
findByAdministratorAndYearAndMonthAndPayMethodIn
(
YearMonth
.
now
().
getYear
(),
promote
.
getName
(),
YearMonth
.
now
().
getYear
(),
YearMonth
.
now
().
getMonthValue
(),
Arrays
.
asList
(
1
,
2
,
3
)
YearMonth
.
now
().
getMonthValue
(),
Arrays
.
asList
(
1
,
2
,
3
)
);
);
totalCommission
+=
userPrePaidBillings
.
stream
().
mapToDouble
(
UserPrePaidBilling:
:
getTotal
).
sum
();
totalCommission
+=
userPrePaidBillings
.
stream
().
mapToDouble
(
UserPrePaidBilling:
:
getTotal
).
sum
();
if
(
account
.
getPromotion
().
isSale
()
&&
promote
.
getParent
()
==
null
)
{
if
(
account
.
getPromotion
().
isSale
()
&&
promote
.
getParent
()
==
null
)
{
List
<
Account
>
secondPromotes
=
accountRepository
.
findByPromotionCodeAndParentIsNull
(
promote
.
getPromotion
().
getCode
());
List
<
Account
>
secondPromotes
=
accountRepository
.
findByPromotionCodeAndParentIsNull
(
promote
.
getPromotion
().
getCode
());
if
(
secondPromotes
!=
null
&&
secondPromotes
.
size
()
>
0
)
{
if
(
secondPromotes
!=
null
&&
secondPromotes
.
size
()
>
0
)
{
for
(
Account
secondPromote
:
secondPromotes
)
{
for
(
Account
secondPromote
:
secondPromotes
)
{
List
<
UserPrePaidBilling
>
userPrePaidBillings1
=
userPrePaidBillingRepository
.
findByAdministratorAndYearAndMonthAndPayMethodIn
(
secondPromote
.
getName
(),
List
<
UserPrePaidBilling
>
userPrePaidBillings1
=
userPrePaidBillingRepository
.
findByAdministratorAndYearAndMonthAndPayMethodIn
(
YearMonth
.
now
().
getYear
(),
secondPromote
.
getName
(),
YearMonth
.
now
().
getYear
(),
YearMonth
.
now
().
getMonthValue
(),
Arrays
.
asList
(
1
,
2
,
3
)
YearMonth
.
now
().
getMonthValue
(),
Arrays
.
asList
(
1
,
2
,
3
)
);
);
secondCommission
+=
userPrePaidBillings1
.
stream
().
mapToDouble
(
UserPrePaidBilling:
:
getTotal
).
sum
();
secondCommission
+=
userPrePaidBillings1
.
stream
().
mapToDouble
(
UserPrePaidBilling:
:
getTotal
).
sum
();
}
}
}
}
}
}
}
}
// 3. 封装当前账户的返佣相关信息(当月当前的消费、当月当前的返佣)并保存
Promotion
promotion
=
account
.
getPromotion
();
Promotion
promotion
=
account
.
getPromotion
();
promotion
.
setCommission
((
int
)
totalCommission
);
promotion
.
setCommission
((
int
)
totalCommission
);
promotion
.
setGift
(
totalCommission
*
0.08
);
promotion
.
setGift
(
totalCommission
*
0.08
);
if
(
account
.
getPromotion
().
isSale
())
{
if
(
account
.
getPromotion
().
isSale
())
{
promotion
.
setGift
(
totalCommission
*
0.1
+
secondCommission
*
0.02
);
promotion
.
setGift
(
totalCommission
*
0.1
+
secondCommission
*
0.02
);
}
}
accountRepository
.
save
(
account
);
accountRepository
.
save
(
account
);
}
}
log
.
info
(
"End scheduled task:Scheduled.countCommission..."
);
}
}
}
}
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