department_users_dto.go
1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package dto
import (
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_user"
)
type DepartmentUsersDto struct {
Departments []*Department `json:"departments"`
}
type Department struct {
DepartmentID int64 `json:"departmentId,string"`
DepartmentName string `json:"departmentName"`
Users []User `json:"users"`
}
type User struct {
UserID int `json:"userId,string"`
UserCode string `json:"userCode"`
UserInfo map[string]interface{} `json:"userInfo"`
}
func (dto *DepartmentUsersDto) LoadDto(subDepartment *allied_creation_user.DataOrgGetSubDepartment, userSearch *allied_creation_user.DataUserSearch) error {
var mapDepartment = make(map[int64]*Department)
mapDepartment[-1] = &Department{
DepartmentID: -1,
DepartmentName: "共创部门",
Users: make([]User, 0),
}
dto.Departments = append(dto.Departments, mapDepartment[-1])
for i := range subDepartment.Orgs {
org := subDepartment.Orgs[i]
dep := &Department{
DepartmentID: int64(org.OrgID),
DepartmentName: org.OrgName,
Users: make([]User, 0),
}
dto.Departments = append(dto.Departments, dep)
mapDepartment[dep.DepartmentID] = dep
}
for i := range userSearch.Users {
user := userSearch.Users[i]
u := User{
UserID: user.UserId,
UserCode: user.UserCode,
UserInfo: map[string]interface{}{
"userName": user.UserInfo.UserName,
"phone": user.UserInfo.Phone,
},
}
if (user.UserType & domain.UserTypeCooperation) > 0 {
mapDepartment[-1].Users = append(mapDepartment[-1].Users, u)
continue
}
if v, ok := mapDepartment[int64(user.Department.DepartmentId)]; ok {
v.Users = append(v.Users, u)
}
}
return nil
}