|
@@ -10,6 +10,7 @@ import ( |
|
@@ -10,6 +10,7 @@ import ( |
|
10
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/factory"
|
10
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/factory"
|
|
11
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
|
11
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
|
|
12
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service"
|
12
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service"
|
|
|
|
13
|
+ "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/dao"
|
|
13
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils"
|
14
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils"
|
|
14
|
"strconv"
|
15
|
"strconv"
|
|
15
|
"time"
|
16
|
"time"
|
|
@@ -53,14 +54,6 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
@@ -53,14 +54,6 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
53
|
userService = value
|
54
|
userService = value
|
|
54
|
}
|
55
|
}
|
|
55
|
|
56
|
|
|
56
|
- // 获取申请人
|
|
|
|
57
|
- var applicant *domain.User
|
|
|
|
58
|
- if data, err := userService.UserFrom(applyForCooperationCommand.CompanyId, applyForCooperationCommand.OrgId, applyForCooperationCommand.UserId); err != nil {
|
|
|
|
59
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取申请人失败")
|
|
|
|
60
|
- } else {
|
|
|
|
61
|
- applicant = data
|
|
|
|
62
|
- }
|
|
|
|
63
|
-
|
|
|
|
64
|
// 公司REST服务初始化
|
57
|
// 公司REST服务初始化
|
|
65
|
var companyService service.CompanyService
|
58
|
var companyService service.CompanyService
|
|
66
|
if value, err := factory.CreateCompanyService(map[string]interface{}{}); err != nil {
|
59
|
if value, err := factory.CreateCompanyService(map[string]interface{}{}); err != nil {
|
|
@@ -69,14 +62,6 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
@@ -69,14 +62,6 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
69
|
companyService = value
|
62
|
companyService = value
|
|
70
|
}
|
63
|
}
|
|
71
|
|
64
|
|
|
72
|
- // 获取公司信息
|
|
|
|
73
|
- var company *domain.Company
|
|
|
|
74
|
- if data, err := companyService.CompanyFrom(applyForCooperationCommand.CompanyId); err != nil {
|
|
|
|
75
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取公司信息失败")
|
|
|
|
76
|
- } else {
|
|
|
|
77
|
- company = data
|
|
|
|
78
|
- }
|
|
|
|
79
|
-
|
|
|
|
80
|
// 组织机构REST服务初始化
|
65
|
// 组织机构REST服务初始化
|
|
81
|
var organizationService service.OrgService
|
66
|
var organizationService service.OrgService
|
|
82
|
if value, err := factory.CreateOrganizationService(map[string]interface{}{}); err != nil {
|
67
|
if value, err := factory.CreateOrganizationService(map[string]interface{}{}); err != nil {
|
|
@@ -85,12 +70,24 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
@@ -85,12 +70,24 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
85
|
organizationService = value
|
70
|
organizationService = value
|
|
86
|
}
|
71
|
}
|
|
87
|
|
72
|
|
|
88
|
- // 获取组织机构信息
|
|
|
|
89
|
- var organization *domain.Org
|
|
|
|
90
|
- if data, err := organizationService.OrgFrom(applyForCooperationCommand.CompanyId, applyForCooperationCommand.OrgId); err != nil {
|
|
|
|
91
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取组织机构数据失败")
|
73
|
+ // 共创申请仓储初始化
|
|
|
|
74
|
+ var cooperationApplicationRepository domain.CooperationApplicationRepository
|
|
|
|
75
|
+ if value, err := factory.CreateCooperationApplicationRepository(map[string]interface{}{
|
|
|
|
76
|
+ "transactionContext": transactionContext,
|
|
|
|
77
|
+ }); err != nil {
|
|
|
|
78
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
92
|
} else {
|
79
|
} else {
|
|
93
|
- organization = data
|
80
|
+ cooperationApplicationRepository = value
|
|
|
|
81
|
+ }
|
|
|
|
82
|
+
|
|
|
|
83
|
+ // 共创申请DAO初始化
|
|
|
|
84
|
+ var cooperationApplicationDao *dao.CooperationApplicationDao
|
|
|
|
85
|
+ if value, err := factory.CreateCooperationApplicationDao(map[string]interface{}{
|
|
|
|
86
|
+ "transactionContext": transactionContext,
|
|
|
|
87
|
+ }); err != nil {
|
|
|
|
88
|
+ return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
|
89
|
+ } else {
|
|
|
|
90
|
+ cooperationApplicationDao = value
|
|
94
|
}
|
91
|
}
|
|
95
|
|
92
|
|
|
96
|
// 获取共创项目
|
93
|
// 获取共创项目
|
|
@@ -102,11 +99,76 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
@@ -102,11 +99,76 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
102
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", strconv.FormatInt(applyForCooperationCommand.CooperationProjectId, 10)))
|
99
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", strconv.FormatInt(applyForCooperationCommand.CooperationProjectId, 10)))
|
|
103
|
}
|
100
|
}
|
|
104
|
|
101
|
|
|
|
|
102
|
+ var newCooperationApplication *domain.CooperationApplication
|
|
|
|
103
|
+
|
|
|
|
104
|
+ if applyForCooperationCommand.CompanyId == 0 && applyForCooperationCommand.OrgId == 0 && applyForCooperationCommand.UserId == 0 { // 游客操作
|
|
|
|
105
|
+ // TODO 获取申请人信息
|
|
|
|
106
|
+
|
|
105
|
// TODO 校验:同一个用户,不能多次申请同一个项目
|
107
|
// TODO 校验:同一个用户,不能多次申请同一个项目
|
|
106
|
|
108
|
|
|
107
|
// TODO 校验:判断用户类型是否属于承接对象
|
109
|
// TODO 校验:判断用户类型是否属于承接对象
|
|
|
|
110
|
+ //if !utils.IsContain(cooperationProject.CooperationProjectUndertakerTypes, applicant.UserType) {
|
|
|
|
111
|
+ // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "抱歉,您不属于当前项目的承接对象")
|
|
|
|
112
|
+ //}
|
|
108
|
|
113
|
|
|
109
|
- newCooperationApplication := &domain.CooperationApplication{
|
114
|
+ newCooperationApplication = &domain.CooperationApplication{
|
|
|
|
115
|
+ CooperationApplicationApplicant: nil, // TODO 获取游客(申请人)信息
|
|
|
|
116
|
+ CooperationApplicationAttachment: applyForCooperationCommand.CooperationApplicationAttachment,
|
|
|
|
117
|
+ CooperationApplicationDescription: applyForCooperationCommand.CooperationApplicationDescription,
|
|
|
|
118
|
+ CooperationApplicationStatus: 1,
|
|
|
|
119
|
+ CooperationApplicationVerifier: nil,
|
|
|
|
120
|
+ CooperationApplicationVerifyDescription: "",
|
|
|
|
121
|
+ CooperationApplicationVerifyTime: time.Time{},
|
|
|
|
122
|
+ CooperationApplyTime: time.Now(),
|
|
|
|
123
|
+ CooperationProject: cooperationProject,
|
|
|
|
124
|
+ Org: cooperationProject.Org,
|
|
|
|
125
|
+ IsCanceled: 1,
|
|
|
|
126
|
+ Company: cooperationProject.Company,
|
|
|
|
127
|
+ CreatedAt: time.Now(),
|
|
|
|
128
|
+ DeletedAt: time.Time{},
|
|
|
|
129
|
+ UpdatedAt: time.Time{},
|
|
|
|
130
|
+ }
|
|
|
|
131
|
+ } else {
|
|
|
|
132
|
+ // 获取申请人
|
|
|
|
133
|
+ var applicant *domain.User
|
|
|
|
134
|
+ if data, err := userService.UserFrom(applyForCooperationCommand.CompanyId, applyForCooperationCommand.OrgId, applyForCooperationCommand.UserId); err != nil {
|
|
|
|
135
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取申请人失败")
|
|
|
|
136
|
+ } else {
|
|
|
|
137
|
+ applicant = data
|
|
|
|
138
|
+ }
|
|
|
|
139
|
+
|
|
|
|
140
|
+ // 获取公司信息
|
|
|
|
141
|
+ var company *domain.Company
|
|
|
|
142
|
+ if data, err := companyService.CompanyFrom(applyForCooperationCommand.CompanyId); err != nil {
|
|
|
|
143
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取公司信息失败")
|
|
|
|
144
|
+ } else {
|
|
|
|
145
|
+ company = data
|
|
|
|
146
|
+ }
|
|
|
|
147
|
+
|
|
|
|
148
|
+ // 获取组织机构信息
|
|
|
|
149
|
+ var organization *domain.Org
|
|
|
|
150
|
+ if data, err := organizationService.OrgFrom(applyForCooperationCommand.CompanyId, applyForCooperationCommand.OrgId); err != nil {
|
|
|
|
151
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取组织机构数据失败")
|
|
|
|
152
|
+ } else {
|
|
|
|
153
|
+ organization = data
|
|
|
|
154
|
+ }
|
|
|
|
155
|
+
|
|
|
|
156
|
+ // 校验:同一个用户,不能多次申请同一个项目
|
|
|
|
157
|
+ applicationExist, _ := cooperationApplicationDao.CheckApplicationExist(map[string]interface{}{
|
|
|
|
158
|
+ "companyId": applyForCooperationCommand.CompanyId,
|
|
|
|
159
|
+ "orgId": applyForCooperationCommand.OrgId,
|
|
|
|
160
|
+ "cooperationApplicationId": cooperationProject.CooperationProjectId,
|
|
|
|
161
|
+ })
|
|
|
|
162
|
+ if applicationExist {
|
|
|
|
163
|
+ return nil, application.ThrowError(application.TRANSACTION_ERROR, "抱歉,您已经申请过该项目")
|
|
|
|
164
|
+ }
|
|
|
|
165
|
+
|
|
|
|
166
|
+ // 校验:判断用户类型是否属于承接对象
|
|
|
|
167
|
+ if !utils.IsContain(cooperationProject.CooperationProjectUndertakerTypes, applicant.UserType) {
|
|
|
|
168
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "抱歉,您不属于当前项目的承接对象")
|
|
|
|
169
|
+ }
|
|
|
|
170
|
+
|
|
|
|
171
|
+ newCooperationApplication = &domain.CooperationApplication{
|
|
110
|
CooperationApplicationApplicant: applicant,
|
172
|
CooperationApplicationApplicant: applicant,
|
|
111
|
CooperationApplicationAttachment: applyForCooperationCommand.CooperationApplicationAttachment,
|
173
|
CooperationApplicationAttachment: applyForCooperationCommand.CooperationApplicationAttachment,
|
|
112
|
CooperationApplicationDescription: applyForCooperationCommand.CooperationApplicationDescription,
|
174
|
CooperationApplicationDescription: applyForCooperationCommand.CooperationApplicationDescription,
|
|
@@ -123,15 +185,9 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
@@ -123,15 +185,9 @@ func (cooperationApplicationService *CooperationApplicationService) ApplyForCoop |
|
123
|
DeletedAt: time.Time{},
|
185
|
DeletedAt: time.Time{},
|
|
124
|
UpdatedAt: time.Time{},
|
186
|
UpdatedAt: time.Time{},
|
|
125
|
}
|
187
|
}
|
|
126
|
-
|
|
|
|
127
|
- var cooperationApplicationRepository domain.CooperationApplicationRepository
|
|
|
|
128
|
- if value, err := factory.CreateCooperationApplicationRepository(map[string]interface{}{
|
|
|
|
129
|
- "transactionContext": transactionContext,
|
|
|
|
130
|
- }); err != nil {
|
|
|
|
131
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
|
132
|
- } else {
|
|
|
|
133
|
- cooperationApplicationRepository = value
|
|
|
|
134
|
}
|
188
|
}
|
|
|
|
189
|
+
|
|
|
|
190
|
+ // 保存共创申请
|
|
135
|
if cooperationApplication, err := cooperationApplicationRepository.Save(newCooperationApplication); err != nil {
|
191
|
if cooperationApplication, err := cooperationApplicationRepository.Save(newCooperationApplication); err != nil {
|
|
136
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
192
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
137
|
} else {
|
193
|
} else {
|