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
14a2b1ad
Commit
14a2b1ad
authored
Sep 27, 2020
by
xuxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vps分配bug修复
parent
153dfc20
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
43 additions
and
12 deletions
+43
-12
VpsController.java
...dgec/browserbackend/browser/controller/VpsController.java
+8
-2
UserVpsRepositoryCustom.java
...erbackend/browser/repository/UserVpsRepositoryCustom.java
+1
-1
UserVpsRepositoryCustomImpl.java
...ckend/browser/repository/UserVpsRepositoryCustomImpl.java
+27
-4
VpsServiceImpl.java
...c/browserbackend/browser/service/Impl/VpsServiceImpl.java
+6
-4
VpsService.java
.../com/edgec/browserbackend/browser/service/VpsService.java
+1
-1
No files found.
src/main/java/com/edgec/browserbackend/browser/controller/VpsController.java
View file @
14a2b1ad
...
...
@@ -90,8 +90,14 @@ public class VpsController {
@PostMapping
(
"/assign"
)
public
ResultDto
assignVpsList
(
Principal
principal
,
@RequestBody
AssignVpsDto
assignVpsDto
)
{
ResultDto
resultDto
=
new
ResultDto
();
vpsService
.
assignVpsList
(
principal
.
getName
(),
assignVpsDto
);
resultDto
.
setStatus
(
0
);
List
<
String
>
list
=
vpsService
.
assignVpsList
(
principal
.
getName
(),
assignVpsDto
);
if
(
list
.
isEmpty
())
{
resultDto
.
setStatus
(
0
);
}
else
{
resultDto
.
setStatus
(-
1
);
resultDto
.
setData
(
list
);
}
return
resultDto
;
}
...
...
src/main/java/com/edgec/browserbackend/browser/repository/UserVpsRepositoryCustom.java
View file @
14a2b1ad
...
...
@@ -10,5 +10,5 @@ import java.util.List;
public
interface
UserVpsRepositoryCustom
{
boolean
deleteVpsIdOfUserVpsList
(
String
id
,
String
vpsId
);
boolean
updateAll
(
List
<
String
>
userIds
,
List
<
String
>
vpsIds
);
List
<
String
>
updateAll
(
List
<
String
>
userIds
,
List
<
String
>
vpsIds
);
}
src/main/java/com/edgec/browserbackend/browser/repository/UserVpsRepositoryCustomImpl.java
View file @
14a2b1ad
package
com
.
edgec
.
browserbackend
.
browser
.
repository
;
import
com.edgec.browserbackend.browser.dto.UserVpsDto
;
import
com.mongodb.bulk.BulkWriteResult
;
import
com.mongodb.client.result.UpdateResult
;
import
org.bson.Document
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.BulkOperations
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.BasicQuery
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.data.util.Pair
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
static
org
.
springframework
.
data
.
mongodb
.
core
.
query
.
Criteria
.
where
;
...
...
@@ -33,13 +39,30 @@ public class UserVpsRepositoryCustomImpl implements UserVpsRepositoryCustom {
}
@Override
public
boolean
updateAll
(
List
<
String
>
userIds
,
List
<
String
>
vpsIds
)
{
Document
doc
=
new
Document
();
public
List
<
String
>
updateAll
(
List
<
String
>
userIds
,
List
<
String
>
vpsIds
)
{
/*
Document doc = new Document();
BasicQuery basicQuery = new BasicQuery(doc);
basicQuery.addCriteria(where("_id").in(userIds));
Update update = new Update();
update.addToSet("vpsIdList").each(vpsIds);
UpdateResult
result
=
mongoTemplate
.
upsert
(
basicQuery
,
update
,
UserVpsDto
.
class
);
return
result
.
getModifiedCount
()
==
userIds
.
size
();
UpdateResult result = mongoTemplate.updateMulti(basicQuery, update, UserVpsDto.class);*/
List
<
Pair
<
Query
,
Update
>>
updateList
=
new
ArrayList
<>(
userIds
.
size
());
userIds
.
forEach
(
userId
->
{
Document
doc
=
new
Document
();
BasicQuery
basicQuery
=
new
BasicQuery
(
doc
);
basicQuery
.
addCriteria
(
where
(
"_id"
).
is
(
userId
));
Update
update
=
new
Update
();
update
.
addToSet
(
"vpsIdList"
).
each
(
vpsIds
);
Pair
<
Query
,
Update
>
updatePair
=
Pair
.
of
(
basicQuery
,
update
);
updateList
.
add
(
updatePair
);
});
BulkOperations
operations
=
mongoTemplate
.
bulkOps
(
BulkOperations
.
BulkMode
.
UNORDERED
,
UserVpsDto
.
class
);
BulkWriteResult
result
=
operations
.
upsert
(
updateList
).
execute
();
List
<
String
>
collect
=
result
.
getUpserts
().
stream
().
map
(
x
->
x
.
getId
().
asString
().
getValue
()).
collect
(
Collectors
.
toList
());
userIds
.
removeAll
(
collect
);
return
userIds
;
}
}
src/main/java/com/edgec/browserbackend/browser/service/Impl/VpsServiceImpl.java
View file @
14a2b1ad
...
...
@@ -165,7 +165,7 @@ public class VpsServiceImpl implements VpsService {
}
@Override
public
void
assignVpsList
(
String
userId
,
AssignVpsDto
assignVpsDto
)
{
public
List
<
String
>
assignVpsList
(
String
userId
,
AssignVpsDto
assignVpsDto
)
{
Optional
<
Account
>
byId
=
accountRepository
.
findById
(
userId
);
String
parent
=
null
;
if
(
byId
.
isPresent
())
{
...
...
@@ -192,10 +192,12 @@ public class VpsServiceImpl implements VpsService {
);
}
boolean
b
=
userVpsRepository
.
updateAll
(
assignVpsDto
.
getUserIds
(),
assignVpsDto
.
getVpsIds
());
if
(!
b
)
{
log
.
error
(
"批量分配给用户 {} vps类别 {} 失败"
,
assignVpsDto
.
getUserIds
()
,
assignVpsDto
.
getVpsIds
());
List
<
String
>
list
=
userVpsRepository
.
updateAll
(
assignVpsDto
.
getUserIds
(),
assignVpsDto
.
getVpsIds
());
if
(!
list
.
isEmpty
()
)
{
log
.
error
(
"批量分配给用户 {} vps类别 {} 失败"
,
list
,
assignVpsDto
.
getVpsIds
());
}
return
list
;
}
@Override
...
...
src/main/java/com/edgec/browserbackend/browser/service/VpsService.java
View file @
14a2b1ad
...
...
@@ -23,7 +23,7 @@ public interface VpsService {
Page
<
Vps
>
queryPage
(
String
user
,
Pageable
pageable
);
void
assignVpsList
(
String
userId
,
AssignVpsDto
assignVpsDto
);
List
<
String
>
assignVpsList
(
String
userId
,
AssignVpsDto
assignVpsDto
);
List
<
String
>
queryAssignUserList
(
String
user
,
String
vpsId
);
}
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