Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mytime
Project
Project
Details
Activity
Releases
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
Narendar Vakiti
mytime
Commits
bfd0ed71
Commit
bfd0ed71
authored
Jul 24, 2018
by
Vijay Chaitanya
Committed by
rbonthala-nisum-com
Jul 24, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Mt 98 domain changes (#47)
* update code changes * changes done for saving with Id and Name
parent
0152d951
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
86 additions
and
30 deletions
+86
-30
Domains.java
src/main/java/com/nisum/mytime/model/Domains.java
+1
-1
DomainRepo.java
src/main/java/com/nisum/mytime/repository/DomainRepo.java
+1
-1
DomainServiceImpl.java
...main/java/com/nisum/mytime/service/DomainServiceImpl.java
+84
-28
No files found.
src/main/java/com/nisum/mytime/model/Domains.java
View file @
bfd0ed71
...
...
@@ -27,7 +27,7 @@ public class Domains implements Serializable {
private
ObjectId
id
;
private
String
domainId
;
private
String
domainName
;
private
String
account
Name
;
private
String
account
Id
;
private
String
status
;
List
<
String
>
deliveryManagers
;
}
src/main/java/com/nisum/mytime/repository/DomainRepo.java
View file @
bfd0ed71
...
...
@@ -5,6 +5,6 @@ import com.nisum.mytime.model.Domains;
public
interface
DomainRepo
extends
MongoRepository
<
Domains
,
String
>
{
List
<
Domains
>
findByDomainNameAndAccount
Name
(
String
domianName
,
String
accountName
);
List
<
Domains
>
findByDomainNameAndAccount
Id
(
String
domianName
,
String
accountId
);
}
\ No newline at end of file
src/main/java/com/nisum/mytime/service/DomainServiceImpl.java
View file @
bfd0ed71
...
...
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
...
...
@@ -15,6 +16,7 @@ import org.springframework.util.StringUtils;
import
com.mongodb.WriteResult
;
import
com.nisum.mytime.exception.handler.MyTimeException
;
import
com.nisum.mytime.model.AccountInfo
;
import
com.nisum.mytime.model.Domains
;
import
com.nisum.mytime.model.EmployeeRoles
;
import
com.nisum.mytime.repository.DomainRepo
;
...
...
@@ -49,7 +51,7 @@ public class DomainServiceImpl implements DomainService {
@Override
public
String
addDomains
(
Domains
d
)
throws
MyTimeException
{
String
response
=
null
;
List
<
Domains
>
domainList
=
domainRepo
.
findByDomainNameAndAccount
Name
(
d
.
getDomainName
(),
d
.
getAccountName
());
List
<
Domains
>
domainList
=
domainRepo
.
findByDomainNameAndAccount
Id
(
d
.
getDomainName
(),
d
.
getAccountId
());
if
(
domainList
.
size
()>
0
)
{
response
=
"Domain already exists"
;
...
...
@@ -77,20 +79,26 @@ public class DomainServiceImpl implements DomainService {
domainList
=
domainRepo
.
findAll
();
updatedDomainList
=
new
ArrayList
<>();
Map
<
String
,
String
>
accountMap
=
new
HashMap
<
String
,
String
>();
for
(
Domains
domain
:
domainList
)
{
HashMap
<
Object
,
Object
>
domainMap
=
new
HashMap
<>();
domainMap
.
put
(
MyTimeUtils
.
ID
,
domain
.
getId
());
domainMap
.
put
(
MyTimeUtils
.
DOMAIN_ID
,
domain
.
getDomainId
());
domainMap
.
put
(
MyTimeUtils
.
DOMAIN_NAME
,
domain
.
getDomainName
());
domainMap
.
put
(
MyTimeUtils
.
ACCOUNT_NAME
,
domain
.
getAccountName
());
domainMap
.
put
(
MyTimeUtils
.
STATUS
,
domain
.
getStatus
());
updatedEmployeeList
=
new
ArrayList
<>();
List
<
String
>
employeeIds
=
domain
.
getDeliveryManagers
();
String
accountId
=
domain
.
getAccountId
();
Query
accountInfoQuery
=
new
Query
(
Criteria
.
where
(
"accountId"
).
in
(
accountId
));
List
<
AccountInfo
>
accountList
=
mongoTemplate
.
find
(
accountInfoQuery
,
AccountInfo
.
class
);
accountMap
.
put
(
"Account Id"
,
accountId
);
accountMap
.
put
(
"Account Name"
,
accountList
.
get
(
0
).
getAccountName
());
domainMap
.
put
(
"AccountInfo"
,
accountMap
);
Query
query
=
new
Query
(
Criteria
.
where
(
MyTimeUtils
.
EMPLOYEE_ID
).
in
(
employeeIds
));
updatedEmployeeList
=
new
ArrayList
<>();
List
<
String
>
employeeIds
=
domain
.
getDeliveryManagers
();
Query
query
=
new
Query
(
Criteria
.
where
(
MyTimeUtils
.
EMPLOYEE_ID
).
in
(
employeeIds
));
List
<
EmployeeRoles
>
employeeRoles
=
mongoTemplate
.
find
(
query
,
EmployeeRoles
.
class
);
for
(
EmployeeRoles
employeesRole
:
employeeRoles
){
HashMap
<
String
,
String
>
employeeMap
=
new
HashMap
<>();
employeeMap
.
put
(
MyTimeUtils
.
EMPLOYEE_ID
,
employeesRole
.
getEmployeeId
());
...
...
@@ -98,6 +106,7 @@ public class DomainServiceImpl implements DomainService {
updatedEmployeeList
.
add
(
employeeMap
);
}
domainMap
.
put
(
MyTimeUtils
.
DELIVERY_MANAGERS
,
updatedEmployeeList
);
updatedDomainList
.
add
(
domainMap
);
}
return
updatedDomainList
;
...
...
@@ -105,31 +114,48 @@ public class DomainServiceImpl implements DomainService {
@Override
public
String
updateDomain
(
Domains
d
)
throws
MyTimeException
{
String
response
=
null
;
List
<
String
>
domEmpIds
=
new
ArrayList
<
String
>();
List
<
String
>
updatedEmpIds
=
new
ArrayList
<
String
>();
domainList
=
domainRepo
.
findAll
();
String
roleId
=
roleInfoService
.
getRole
(
MyTimeUtils
.
DOMAIN
);
for
(
Domains
domain
:
domainList
)
{
List
<
String
>
employeeIds
=
domain
.
getDeliveryManagers
();
for
(
String
eIds:
employeeIds
)
domEmpIds
.
add
(
eIds
);
}
d
.
setStatus
(
MyTimeUtils
.
ACTIVE
);
domainRepo
.
save
(
d
);
Query
selectedDomainQuery
=
new
Query
(
Criteria
.
where
(
MyTimeUtils
.
DOMAIN_ID
).
in
(
d
.
getDomainId
()).
and
(
MyTimeUtils
.
STATUS
).
in
(
MyTimeUtils
.
ACTIVE
)
);
List
<
Domains
>
selectedDomain
=
mongoTemplate
.
find
(
selectedDomainQuery
,
Domains
.
class
);
for
(
String
empId
:
selectedDomain
.
get
(
0
).
getDeliveryManagers
())
{
int
occurrences
=
Collections
.
frequency
(
domEmpIds
,
empId
);
if
(
occurrences
==
0
)
{
//roleMappingService.saveUniqueEmployeeAndRole(empId, roleId);
updatedEmpIds
.
add
(
empId
);
}
}
roleMappingService
.
saveUniqueEmployeeAndRole
(
updatedEmpIds
,
roleId
);
String
response
=
null
;
List
<
String
>
deliveryManagersListFromUser
=
null
;
List
<
String
>
deliveryManagersListFromDb
=
null
;
List
<
String
>
managersAddedByUser
=
null
;
List
<
String
>
managersDeletedByUser
=
null
;
Map
<
String
,
Integer
>
managersDomainCount
=
new
HashMap
<
String
,
Integer
>();
Domains
domainDetailsFromDb
=
getDomainById
(
d
.
getDomainId
());
deliveryManagersListFromUser
=
d
.
getDeliveryManagers
();
if
(
null
!=
domainDetailsFromDb
)
deliveryManagersListFromDb
=
domainDetailsFromDb
.
getDeliveryManagers
();
managersAddedByUser
=
getAddedManagersList
(
deliveryManagersListFromDb
,
deliveryManagersListFromUser
);
managersDeletedByUser
=
getDeletedManagersList
(
deliveryManagersListFromDb
,
deliveryManagersListFromUser
);
domainList
=
domainRepo
.
findAll
();
String
roleId
=
roleInfoService
.
getRole
(
MyTimeUtils
.
DOMAIN
);
for
(
Domains
domain
:
domainList
)
{
List
<
String
>
employeeIds
=
domain
.
getDeliveryManagers
();
for
(
String
eId
:
employeeIds
)
{
if
(
managersDomainCount
.
get
(
eId
)!=
null
)
managersDomainCount
.
put
(
eId
,
managersDomainCount
.
get
(
eId
)+
1
);
else
managersDomainCount
.
put
(
eId
,
1
);
}
}
for
(
String
managerId
:
managersDeletedByUser
)
{
if
(
managersDomainCount
.
get
(
managerId
)==
1
)
{
// Call service to delete manager
roleMappingService
.
deleteRole
(
managerId
,
roleId
);
}
}
d
.
setStatus
(
MyTimeUtils
.
ACTIVE
);
domainRepo
.
save
(
d
);
roleMappingService
.
saveUniqueEmployeeAndRole
(
managersAddedByUser
,
roleId
);
return
response
;
}
@Override
public
WriteResult
deleteDomain
(
String
id
)
throws
MyTimeException
{
List
<
String
>
domEmpIds
=
new
ArrayList
<
String
>();
...
...
@@ -155,4 +181,34 @@ public class DomainServiceImpl implements DomainService {
update
.
set
(
MyTimeUtils
.
STATUS
,
MyTimeUtils
.
IN_ACTIVE
);
return
mongoTemplate
.
upsert
(
selectedDomainQuery
,
update
,
Domains
.
class
);
}
//Custom methods
private
Domains
getDomainById
(
String
id
)
{
Query
selectedDomainQuery
=
new
Query
(
Criteria
.
where
(
MyTimeUtils
.
DOMAIN_ID
).
in
(
id
).
and
(
MyTimeUtils
.
STATUS
).
in
(
MyTimeUtils
.
ACTIVE
)
);
List
<
Domains
>
selectedDomain
=
mongoTemplate
.
find
(
selectedDomainQuery
,
Domains
.
class
);
if
(
selectedDomain
.
size
()==
1
)
return
selectedDomain
.
get
(
0
);
return
null
;
}
private
List
<
String
>
getAddedManagersList
(
List
<
String
>
fromDb
,
List
<
String
>
fromUser
)
{
List
<
String
>
addedManagers
=
new
ArrayList
<
String
>();
if
(
fromDb
!=
null
)
for
(
String
managerFromUser
:
fromUser
)
{
if
(!
fromDb
.
contains
(
managerFromUser
))
addedManagers
.
add
(
managerFromUser
);
}
return
addedManagers
;
}
private
List
<
String
>
getDeletedManagersList
(
List
<
String
>
fromDb
,
List
<
String
>
fromUser
)
{
List
<
String
>
deletedManager
=
new
ArrayList
<
String
>();
if
(
fromDb
!=
null
)
for
(
String
managerFromDb
:
fromDb
)
{
if
(!
fromUser
.
contains
(
managerFromDb
))
deletedManager
.
add
(
managerFromDb
);
}
return
deletedManager
;
}
}
\ No newline at end of file
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