作者 陈志颖

feat:添加用户rest服务

1 package factory 1 package factory
  2 +
  3 +import (
  4 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service"
  5 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/domain_service"
  6 +)
  7 +
  8 +func CreateUserService(options map[string]interface{}) (service.UserService, error) {
  9 + return domain_service.NewUserService()
  10 +}
1 package domain_service 1 package domain_service
2 2
3 import ( 3 import (
  4 + "encoding/json"
4 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" 5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
  6 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/service_gateway/adaptor"
5 ) 7 )
6 8
7 type UserService struct { 9 type UserService struct {
8 } 10 }
9 11
  12 +// ReferrerFrom 获取推荐人
10 func (service *UserService) ReferrerFrom(companyId int64, orgId int64, userId int64) (*domain.Referrer, error) { 13 func (service *UserService) ReferrerFrom(companyId int64, orgId int64, userId int64) (*domain.Referrer, error) {
11 - return nil, nil 14 + var returnData *domain.Referrer
  15 + if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
  16 + return nil, err
  17 + } else {
  18 + if referrer, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Referrer"); err != nil {
  19 + return nil, err
  20 + } else {
  21 + err := json.Unmarshal(referrer.([]byte), returnData)
  22 + if err != nil {
  23 + return nil, err
  24 + }
  25 + return returnData, nil
  26 + }
  27 + }
12 } 28 }
13 29
  30 +// UndertakerFrom 获取承接人
14 func (service *UserService) UndertakerFrom(companyId int64, orgId int64, userId int64) (*domain.Undertaker, error) { 31 func (service *UserService) UndertakerFrom(companyId int64, orgId int64, userId int64) (*domain.Undertaker, error) {
15 - return nil, nil 32 + var returnData *domain.Undertaker
  33 + if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
  34 + return nil, err
  35 + } else {
  36 + if referrer, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Undertaker"); err != nil {
  37 + return nil, err
  38 + } else {
  39 + err := json.Unmarshal(referrer.([]byte), returnData)
  40 + if err != nil {
  41 + return nil, err
  42 + }
  43 + return returnData, nil
  44 + }
  45 + }
16 } 46 }
17 47
  48 +// RelevantFrom 获取相关人
18 func (service *UserService) RelevantFrom(companyId int64, orgId int64, userId int64) (*domain.Relevant, error) { 49 func (service *UserService) RelevantFrom(companyId int64, orgId int64, userId int64) (*domain.Relevant, error) {
19 - return nil, nil 50 + var returnData *domain.Relevant
  51 + if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
  52 + return nil, err
  53 + } else {
  54 + if referrer, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Relevant"); err != nil {
  55 + return nil, err
  56 + } else {
  57 + err := json.Unmarshal(referrer.([]byte), returnData)
  58 + if err != nil {
  59 + return nil, err
  60 + }
  61 + return returnData, nil
  62 + }
  63 + }
20 } 64 }
21 65
  66 +// SalesmanFrom 获取业务员
22 func (service *UserService) SalesmanFrom(companyId int64, orgId int64, userId int64) (*domain.Salesman, error) { 67 func (service *UserService) SalesmanFrom(companyId int64, orgId int64, userId int64) (*domain.Salesman, error) {
23 - return nil, nil 68 + var returnData *domain.Salesman
  69 + if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
  70 + return nil, err
  71 + } else {
  72 + if referrer, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Salesman"); err != nil {
  73 + return nil, err
  74 + } else {
  75 + err := json.Unmarshal(referrer.([]byte), returnData)
  76 + if err != nil {
  77 + return nil, err
  78 + }
  79 + return returnData, nil
  80 + }
  81 + }
24 } 82 }
25 83
  84 +// OperatorFrom 获取操作人
26 func (service *UserService) OperatorFrom(companyId int64, orgId int64, userId int64) (*domain.User, error) { 85 func (service *UserService) OperatorFrom(companyId int64, orgId int64, userId int64) (*domain.User, error) {
27 - return nil, nil 86 + var returnData *domain.User
  87 + if userAdaptor, err := adaptor.NewUserAdaptor(); err != nil {
  88 + return nil, err
  89 + } else {
  90 + if referrer, err := userAdaptor.ToParticipator(companyId, orgId, userId, "Operator"); err != nil {
  91 + return nil, err
  92 + } else {
  93 + err := json.Unmarshal(referrer.([]byte), returnData)
  94 + if err != nil {
  95 + return nil, err
  96 + }
  97 + return returnData, nil
  98 + }
  99 + }
28 } 100 }
29 101
30 func (service *UserService) UserInMenu(companyId int64, orgId int64, userId int64, code string) (bool, error) { 102 func (service *UserService) UserInMenu(companyId int64, orgId int64, userId int64, code string) (bool, error) {
@@ -11,42 +11,45 @@ type UserAdaptor struct { @@ -11,42 +11,45 @@ type UserAdaptor struct {
11 func (adaptor *UserAdaptor) ToParticipator(companyId int64, orgId int64, userId int64, aRoleName string) (interface{}, error) { 11 func (adaptor *UserAdaptor) ToParticipator(companyId int64, orgId int64, userId int64, aRoleName string) (interface{}, error) {
12 userServiceGateway := service_gateway.NewHttplibUserServiceGateway() 12 userServiceGateway := service_gateway.NewHttplibUserServiceGateway()
13 response, err := userServiceGateway.GetUser(companyId, orgId, userId) 13 response, err := userServiceGateway.GetUser(companyId, orgId, userId)
14 - userTranslator := &translator.UserTranslator{}  
15 if err != nil { 14 if err != nil {
16 - return struct{}{}, err 15 + return map[string]interface{}{}, err
17 } 16 }
18 - if response["code"] == 200 {  
19 - switch aRoleName {  
20 - case "Relevant":  
21 - relevant, err := userTranslator.ToRelevantFromRepresentation(response)  
22 - if err != nil {  
23 - return struct{}{}, err 17 + if userTranslator, err := translator.NewUserTranslator(); err != nil {
  18 + return map[string]interface{}{}, err
  19 + } else {
  20 + if response["code"] == 200 {
  21 + switch aRoleName {
  22 + case "Relevant":
  23 + relevant, err := userTranslator.ToRelevantFromRepresentation(response)
  24 + if err != nil {
  25 + return map[string]interface{}{}, err
  26 + }
  27 + return relevant, nil
  28 + case "Referrer":
  29 + referrer, err := userTranslator.ToReferrerFromRepresentation(response)
  30 + if err != nil {
  31 + return struct{}{}, err
  32 + }
  33 + return referrer, nil
  34 + case "Salesman":
  35 + salesman, err := userTranslator.ToSalesmanFromRepresentation(response)
  36 + if err != nil {
  37 + return struct{}{}, nil
  38 + }
  39 + return salesman, nil
  40 + case "Undertaker":
  41 + undertaker, err := userTranslator.ToUndertakerFromRepresentation(response)
  42 + if err != nil {
  43 + return struct{}{}, nil
  44 + }
  45 + return undertaker, nil
  46 + case "Operator":
  47 + operator, err := userTranslator.ToOperatorFromRepresentation(response)
  48 + if err != nil {
  49 + return struct{}{}, nil
  50 + }
  51 + return operator, nil
24 } 52 }
25 - return relevant, nil  
26 - case "Referrer":  
27 - referrer, err := userTranslator.ToReferrerFromRepresentation(response)  
28 - if err != nil {  
29 - return struct{}{}, err  
30 - }  
31 - return referrer, nil  
32 - case "Salesman":  
33 - salesman, err := userTranslator.ToSalesmanFromRepresentation(response)  
34 - if err != nil {  
35 - return struct{}{}, nil  
36 - }  
37 - return salesman, nil  
38 - case "Undertaker":  
39 - undertaker, err := userTranslator.ToUndertakerFromRepresentation(response)  
40 - if err != nil {  
41 - return struct{}{}, nil  
42 - }  
43 - return undertaker, nil  
44 - case "Operator":  
45 - operator, err := userTranslator.ToOperatorFromRepresentation(response)  
46 - if err != nil {  
47 - return struct{}{}, nil  
48 - }  
49 - return operator, nil  
50 } 53 }
51 } 54 }
52 return struct{}{}, nil 55 return struct{}{}, nil
@@ -59,3 +62,7 @@ func (adaptor *UserAdaptor) UserInMenu() { @@ -59,3 +62,7 @@ func (adaptor *UserAdaptor) UserInMenu() {
59 func (adaptor *UserAdaptor) UserInOrganization() { 62 func (adaptor *UserAdaptor) UserInOrganization() {
60 63
61 } 64 }
  65 +
  66 +func NewUserAdaptor() (*UserAdaptor, error) {
  67 + return &UserAdaptor{}, nil
  68 +}
@@ -18,9 +18,15 @@ func (serviceGateway *HttplibUserServiceGateway) GetUser(companyId int64, orgId @@ -18,9 +18,15 @@ func (serviceGateway *HttplibUserServiceGateway) GetUser(companyId int64, orgId
18 request := serviceGateway.createRequest(url, "get") 18 request := serviceGateway.createRequest(url, "get")
19 options := make(map[string]interface{}) 19 options := make(map[string]interface{})
20 options["uid"] = uid 20 options["uid"] = uid
21 - request.JSONBody(options) 21 + _, err1 := request.JSONBody(options)
  22 + if err1 != nil {
  23 + return nil, err1
  24 + }
22 response := make(map[string]interface{}) 25 response := make(map[string]interface{})
23 - request.ToJSON(&response) 26 + err2 := request.ToJSON(&response)
  27 + if err2 != nil {
  28 + return nil, err2
  29 + }
24 data, err := serviceGateway.responseHandle(response) 30 data, err := serviceGateway.responseHandle(response)
25 return data, err 31 return data, err
26 } 32 }
@@ -32,9 +38,15 @@ func (serviceGateway *HttplibUserServiceGateway) GetCompany(companyId int64) (ma @@ -32,9 +38,15 @@ func (serviceGateway *HttplibUserServiceGateway) GetCompany(companyId int64) (ma
32 request := serviceGateway.createRequest(url, "get") 38 request := serviceGateway.createRequest(url, "get")
33 options := make(map[string]interface{}) 39 options := make(map[string]interface{})
34 options["companyId"] = companyId 40 options["companyId"] = companyId
35 - request.JSONBody(options) 41 + _, err1 := request.JSONBody(options)
  42 + if err1 != nil {
  43 + return nil, err1
  44 + }
36 response := make(map[string]interface{}) 45 response := make(map[string]interface{})
37 - request.ToJSON(&response) 46 + err2 := request.ToJSON(&response)
  47 + if err2 != nil {
  48 + return nil, err2
  49 + }
38 data, err := serviceGateway.responseHandle(response) 50 data, err := serviceGateway.responseHandle(response)
39 return data, err 51 return data, err
40 } 52 }
@@ -47,9 +59,15 @@ func (serviceGateway *HttplibUserServiceGateway) GetOrganization(companyId int64 @@ -47,9 +59,15 @@ func (serviceGateway *HttplibUserServiceGateway) GetOrganization(companyId int64
47 request := serviceGateway.createRequest(url, "get") 59 request := serviceGateway.createRequest(url, "get")
48 options := make(map[string]interface{}) 60 options := make(map[string]interface{})
49 options["orgId"] = organizationId 61 options["orgId"] = organizationId
50 - request.JSONBody(options) 62 + _, err1 := request.JSONBody(options)
  63 + if err1 != nil {
  64 + return nil, err1
  65 + }
51 response := make(map[string]interface{}) 66 response := make(map[string]interface{})
52 - request.ToJSON(&response) 67 + err2 := request.ToJSON(&response)
  68 + if err2 != nil {
  69 + return nil, err2
  70 + }
53 data, err := serviceGateway.responseHandle(response) 71 data, err := serviceGateway.responseHandle(response)
54 return data, err 72 return data, err
55 } 73 }
@@ -60,9 +78,15 @@ func (serviceGateway *HttplibUserServiceGateway) UserInMenu(companyId int64, use @@ -60,9 +78,15 @@ func (serviceGateway *HttplibUserServiceGateway) UserInMenu(companyId int64, use
60 request := serviceGateway.createRequest(url, "get") 78 request := serviceGateway.createRequest(url, "get")
61 options := make(map[string]interface{}) 79 options := make(map[string]interface{})
62 options["code"] = menuCode 80 options["code"] = menuCode
63 - request.JSONBody(options) 81 + _, err1 := request.JSONBody(options)
  82 + if err1 != nil {
  83 + return nil, err1
  84 + }
64 response := make(map[string]interface{}) 85 response := make(map[string]interface{})
65 - request.ToJSON(&response) 86 + err2 := request.ToJSON(&response)
  87 + if err2 != nil {
  88 + return nil, err2
  89 + }
66 data, err := serviceGateway.responseHandle(response) 90 data, err := serviceGateway.responseHandle(response)
67 return data, err 91 return data, err
68 } 92 }
@@ -73,9 +97,15 @@ func (serviceGateway *HttplibUserServiceGateway) UserInOrganization(companyId in @@ -73,9 +97,15 @@ func (serviceGateway *HttplibUserServiceGateway) UserInOrganization(companyId in
73 request := serviceGateway.createRequest(url, "get") 97 request := serviceGateway.createRequest(url, "get")
74 options := make(map[string]interface{}) 98 options := make(map[string]interface{})
75 options["orgId"] = orgId 99 options["orgId"] = orgId
76 - request.JSONBody(options) 100 + _, err1 := request.JSONBody(options)
  101 + if err1 != nil {
  102 + return nil, err1
  103 + }
77 response := make(map[string]interface{}) 104 response := make(map[string]interface{})
78 - request.ToJSON(&response) 105 + err2 := request.ToJSON(&response)
  106 + if err2 != nil {
  107 + return nil, err2
  108 + }
79 data, err := serviceGateway.responseHandle(response) 109 data, err := serviceGateway.responseHandle(response)
80 return data, err 110 return data, err
81 } 111 }
@@ -78,3 +78,7 @@ func (translator *UserTranslator) ToOperatorFromRepresentation(data map[string]i @@ -78,3 +78,7 @@ func (translator *UserTranslator) ToOperatorFromRepresentation(data map[string]i
78 Company: nil, 78 Company: nil,
79 }, nil 79 }, nil
80 } 80 }
  81 +
  82 +func NewUserTranslator() (*UserTranslator, error) {
  83 + return &UserTranslator{}, nil
  84 +}