作者 陈志颖

feat:共创项目增加共创模式

@@ -5,7 +5,6 @@ import ( @@ -5,7 +5,6 @@ import (
5 "github.com/linmadan/egglib-go/core/application" 5 "github.com/linmadan/egglib-go/core/application"
6 "github.com/linmadan/egglib-go/utils/tool_funs" 6 "github.com/linmadan/egglib-go/utils/tool_funs"
7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationProject/command" 7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationProject/command"
8 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationProject/dto"  
9 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationProject/query" 8 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationProject/query"
10 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/factory" 9 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/factory"
11 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" 10 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
@@ -119,39 +118,57 @@ func (cooperationProjectService *CooperationProjectService) CreateCooperationPro @@ -119,39 +118,57 @@ func (cooperationProjectService *CooperationProjectService) CreateCooperationPro
119 organization = data 118 organization = data
120 } 119 }
121 120
122 - newCooperationProject := &domain.CooperationProject{  
123 - CooperationProjectNumber: createCooperationProjectCommand.CooperationModeNumber,  
124 - CooperationProjectName: createCooperationProjectCommand.CooperationProjectName,  
125 - CooperationProjectUndertakerTypes: createCooperationProjectCommand.CooperationProjectUndertakerTypes,  
126 - CooperationProjectSponsor: sponsor,  
127 - CooperationProjectPublisher: publisher,  
128 - CooperationProjectDescription: createCooperationProjectCommand.CooperationProjectDescription,  
129 - CooperationProjectPublishTime: time.Now(),  
130 - Company: company,  
131 - Department: organization.ToDepartment(),  
132 - Org: organization,  
133 - Operator: operator,  
134 - OperateTime: time.Now(),  
135 - Status: 0,  
136 - UpdatedAt: time.Time{},  
137 - DeletedAt: time.Time{},  
138 - CreatedAt: time.Now(),  
139 - }  
140 - var cooperationProjectRepository domain.CooperationProjectRepository  
141 - if value, err := factory.CreateCooperationProjectRepository(map[string]interface{}{ 121 + // 查找共创模式
  122 + var cooperationModeRepository domain.CooperationModeRepository
  123 + if value, err := factory.CreateCooperationModeRepository(map[string]interface{}{
142 "transactionContext": transactionContext, 124 "transactionContext": transactionContext,
143 }); err != nil { 125 }); err != nil {
144 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 126 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
145 } else { 127 } else {
146 - cooperationProjectRepository = value 128 + cooperationModeRepository = value
147 } 129 }
148 - if cooperationProject, err := cooperationProjectRepository.Save(newCooperationProject); err != nil { 130 + cooperationMode, err := cooperationModeRepository.FindOne(map[string]interface{}{"cooperationModeNumber": createCooperationProjectCommand.CooperationModeNumber})
  131 + if err != nil {
149 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 132 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  133 + }
  134 + if cooperationMode == nil {
  135 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", createCooperationProjectCommand.CooperationModeNumber))
150 } else { 136 } else {
151 - if err := transactionContext.CommitTransaction(); err != nil {  
152 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 137 + newCooperationProject := &domain.CooperationProject{
  138 + CooperationProjectNumber: createCooperationProjectCommand.CooperationModeNumber,
  139 + CooperationProjectName: createCooperationProjectCommand.CooperationProjectName,
  140 + CooperationProjectUndertakerTypes: createCooperationProjectCommand.CooperationProjectUndertakerTypes,
  141 + CooperationProjectSponsor: sponsor,
  142 + CooperationMode: cooperationMode,
  143 + CooperationProjectPublisher: publisher,
  144 + CooperationProjectDescription: createCooperationProjectCommand.CooperationProjectDescription,
  145 + CooperationProjectPublishTime: time.Now(),
  146 + Company: company,
  147 + Department: organization.ToDepartment(),
  148 + Org: organization,
  149 + Operator: operator,
  150 + OperateTime: time.Now(),
  151 + Status: 0,
  152 + UpdatedAt: time.Time{},
  153 + DeletedAt: time.Time{},
  154 + CreatedAt: time.Now(),
  155 + }
  156 + var cooperationProjectRepository domain.CooperationProjectRepository
  157 + if value, err := factory.CreateCooperationProjectRepository(map[string]interface{}{
  158 + "transactionContext": transactionContext,
  159 + }); err != nil {
  160 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  161 + } else {
  162 + cooperationProjectRepository = value
  163 + }
  164 + if cooperationProject, err := cooperationProjectRepository.Save(newCooperationProject); err != nil {
  165 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  166 + } else {
  167 + if err := transactionContext.CommitTransaction(); err != nil {
  168 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  169 + }
  170 + return cooperationProject, nil
153 } 171 }
154 - return cooperationProject, nil  
155 } 172 }
156 } 173 }
157 174
@@ -192,7 +209,7 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec @@ -192,7 +209,7 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec
192 } 209 }
193 } 210 }
194 211
195 -// ListCooperationProject 返回共创项目服务列表 212 +// ListCooperationProject 返回共创项目列表
196 func (cooperationProjectService *CooperationProjectService) ListCooperationProject(listCooperationProjectQuery *query.ListCooperationProjectQuery) (interface{}, error) { 213 func (cooperationProjectService *CooperationProjectService) ListCooperationProject(listCooperationProjectQuery *query.ListCooperationProjectQuery) (interface{}, error) {
197 if err := listCooperationProjectQuery.ValidateQuery(); err != nil { 214 if err := listCooperationProjectQuery.ValidateQuery(); err != nil {
198 return nil, application.ThrowError(application.ARG_ERROR, err.Error()) 215 return nil, application.ThrowError(application.ARG_ERROR, err.Error())
@@ -218,7 +235,6 @@ func (cooperationProjectService *CooperationProjectService) ListCooperationProje @@ -218,7 +235,6 @@ func (cooperationProjectService *CooperationProjectService) ListCooperationProje
218 if count, cooperationProjects, err := cooperationProjectRepository.Find(tool_funs.SimpleStructToMap(listCooperationProjectQuery)); err != nil { 235 if count, cooperationProjects, err := cooperationProjectRepository.Find(tool_funs.SimpleStructToMap(listCooperationProjectQuery)); err != nil {
219 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 236 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
220 } else { 237 } else {
221 -  
222 //var cooperationModeRepository domain.CooperationModeRepository 238 //var cooperationModeRepository domain.CooperationModeRepository
223 //if value, err := factory.CreateCooperationProjectRepository(map[string]interface{}{ 239 //if value, err := factory.CreateCooperationProjectRepository(map[string]interface{}{
224 // "transactionContext": transactionContext, 240 // "transactionContext": transactionContext,
@@ -237,22 +253,23 @@ func (cooperationProjectService *CooperationProjectService) ListCooperationProje @@ -237,22 +253,23 @@ func (cooperationProjectService *CooperationProjectService) ListCooperationProje
237 // } 253 // }
238 //} 254 //}
239 // 255 //
240 - var res []*dto.CooperationProjectsDto  
241 - for i := range cooperationProjects {  
242 - p := cooperationProjects[i]  
243 - tp := &dto.CooperationProjectsDto{}  
244 - tp.LoadDto(p, &domain.CooperationMode{})  
245 - res = append(res, tp)  
246 - }  
247 - 256 + //var res []*dto.CooperationProjectsDto
  257 + //for i := range cooperationProjects {
  258 + // p := cooperationProjects[i]
  259 + // tp := &dto.CooperationProjectsDto{}
  260 + // tp.LoadDto(p, &domain.CooperationMode{})
  261 + // res = append(res, tp)
  262 + //}
248 if err := transactionContext.CommitTransaction(); err != nil { 263 if err := transactionContext.CommitTransaction(); err != nil {
249 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 264 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
250 } 265 }
251 return map[string]interface{}{ 266 return map[string]interface{}{
252 //"grid": map[string]interface{}{ 267 //"grid": map[string]interface{}{
253 - "total": count,  
254 - "list": res, 268 + //"total": count,
  269 + //"list": res,
255 //}, 270 //},
  271 + "list": cooperationProjects,
  272 + "total": count,
256 }, nil 273 }, nil
257 } 274 }
258 } 275 }
@@ -18,6 +18,8 @@ type CooperationProject struct { @@ -18,6 +18,8 @@ type CooperationProject struct {
18 CooperationProjectPublisher *User `json:"cooperationProjectPublisher"` 18 CooperationProjectPublisher *User `json:"cooperationProjectPublisher"`
19 // 共创项目发起人 19 // 共创项目发起人
20 CooperationProjectSponsor *User `json:"cooperationProjectSponsor"` 20 CooperationProjectSponsor *User `json:"cooperationProjectSponsor"`
  21 + // 共创模式
  22 + CooperationMode *CooperationMode `json:"cooperationMode"`
21 // 共创项目发起部门 23 // 共创项目发起部门
22 Department *Department `json:"department"` 24 Department *Department `json:"department"`
23 // 共创项目承接对象,1员工,2共创用户,3公开,可以多选 25 // 共创项目承接对象,1员工,2共创用户,3公开,可以多选
@@ -21,6 +21,8 @@ type CooperationProject struct { @@ -21,6 +21,8 @@ type CooperationProject struct {
21 CooperationProjectPublisher *domain.User `comment:"共创项目发布人"` 21 CooperationProjectPublisher *domain.User `comment:"共创项目发布人"`
22 // 共创项目发起人 22 // 共创项目发起人
23 CooperationProjectSponsor *domain.User `comment:"共创项目发起人"` 23 CooperationProjectSponsor *domain.User `comment:"共创项目发起人"`
  24 + // 共创模式编码
  25 + CooperationModeNumber string `comment:"共创模式编号"`
24 // 共创项目发起部门 26 // 共创项目发起部门
25 Department *domain.Department `comment:"共创项目发起部门"` 27 Department *domain.Department `comment:"共创项目发起部门"`
26 // 共创项目承接对象,1员工,2共创用户,3公开,可以多选 28 // 共创项目承接对象,1员工,2共创用户,3公开,可以多选
@@ -5,15 +5,31 @@ import ( @@ -5,15 +5,31 @@ import (
5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models" 5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/pg/models"
6 ) 6 )
7 7
8 -func TransformToCooperationProjectDomainModelFromPgModels(cooperationProjectModel *models.CooperationProject) (*domain.CooperationProject, error) { 8 +func TransformToCooperationProjectDomainModelFromPgModels(
  9 + cooperationProjectModel *models.CooperationProject,
  10 + cooperationMode *models.CooperationMode) (*domain.CooperationProject, error) {
9 return &domain.CooperationProject{ 11 return &domain.CooperationProject{
10 - CooperationProjectId: cooperationProjectModel.CooperationProjectId,  
11 - CooperationProjectNumber: cooperationProjectModel.CooperationProjectNumber,  
12 - CooperationProjectDescription: cooperationProjectModel.CooperationProjectDescription,  
13 - CooperationProjectName: cooperationProjectModel.CooperationProjectName,  
14 - CooperationProjectPublishTime: cooperationProjectModel.CooperationProjectPublishTime,  
15 - CooperationProjectPublisher: cooperationProjectModel.CooperationProjectPublisher,  
16 - CooperationProjectSponsor: cooperationProjectModel.CooperationProjectSponsor, 12 + CooperationProjectId: cooperationProjectModel.CooperationProjectId,
  13 + CooperationProjectNumber: cooperationProjectModel.CooperationProjectNumber,
  14 + CooperationProjectDescription: cooperationProjectModel.CooperationProjectDescription,
  15 + CooperationProjectName: cooperationProjectModel.CooperationProjectName,
  16 + CooperationProjectPublishTime: cooperationProjectModel.CooperationProjectPublishTime,
  17 + CooperationProjectPublisher: cooperationProjectModel.CooperationProjectPublisher,
  18 + CooperationProjectSponsor: cooperationProjectModel.CooperationProjectSponsor,
  19 + CooperationMode: &domain.CooperationMode{
  20 + CooperationModeId: cooperationMode.CooperationModeId,
  21 + CooperationModeNumber: cooperationMode.CooperationModeNumber,
  22 + CooperationModeName: cooperationMode.CooperationModeName,
  23 + Status: cooperationMode.Status,
  24 + Org: cooperationMode.Org,
  25 + Company: cooperationMode.Company,
  26 + Remarks: cooperationMode.Remarks,
  27 + Operator: cooperationMode.Operator,
  28 + OperateTime: cooperationMode.OperateTime,
  29 + UpdatedAt: cooperationMode.UpdatedAt,
  30 + DeletedAt: cooperationMode.DeletedAt,
  31 + CreatedAt: cooperationMode.CreatedAt,
  32 + },
17 Department: cooperationProjectModel.Department, 33 Department: cooperationProjectModel.Department,
18 CooperationProjectUndertakerTypes: cooperationProjectModel.CooperationProjectUndertakerTypes, 34 CooperationProjectUndertakerTypes: cooperationProjectModel.CooperationProjectUndertakerTypes,
19 Org: cooperationProjectModel.Org, 35 Org: cooperationProjectModel.Org,
@@ -34,6 +34,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain. @@ -34,6 +34,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain.
34 "cooperation_project_publish_time", 34 "cooperation_project_publish_time",
35 "cooperation_project_publisher", 35 "cooperation_project_publisher",
36 "cooperation_project_sponsor", 36 "cooperation_project_sponsor",
  37 + "cooperation_mode_number",
37 "department", 38 "department",
38 "cooperation_project_undertaker_types", 39 "cooperation_project_undertaker_types",
39 "org", 40 "org",
@@ -67,6 +68,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain. @@ -67,6 +68,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain.
67 &cooperationProject.CooperationProjectPublishTime, 68 &cooperationProject.CooperationProjectPublishTime,
68 &cooperationProject.CooperationProjectPublisher, 69 &cooperationProject.CooperationProjectPublisher,
69 &cooperationProject.CooperationProjectSponsor, 70 &cooperationProject.CooperationProjectSponsor,
  71 + &cooperationProject.CooperationMode.CooperationModeNumber,
70 &cooperationProject.Department, 72 &cooperationProject.Department,
71 pg.Array(&cooperationProject.CooperationProjectUndertakerTypes), 73 pg.Array(&cooperationProject.CooperationProjectUndertakerTypes),
72 &cooperationProject.Org, 74 &cooperationProject.Org,
@@ -86,6 +88,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain. @@ -86,6 +88,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain.
86 cooperationProject.CooperationProjectPublishTime, 88 cooperationProject.CooperationProjectPublishTime,
87 cooperationProject.CooperationProjectPublisher, 89 cooperationProject.CooperationProjectPublisher,
88 cooperationProject.CooperationProjectSponsor, 90 cooperationProject.CooperationProjectSponsor,
  91 + cooperationProject.CooperationMode.CooperationModeNumber,
89 cooperationProject.Department, 92 cooperationProject.Department,
90 pg.Array(cooperationProject.CooperationProjectUndertakerTypes), 93 pg.Array(cooperationProject.CooperationProjectUndertakerTypes),
91 cooperationProject.Org, 94 cooperationProject.Org,
@@ -109,6 +112,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain. @@ -109,6 +112,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain.
109 &cooperationProject.CooperationProjectPublishTime, 112 &cooperationProject.CooperationProjectPublishTime,
110 &cooperationProject.CooperationProjectPublisher, 113 &cooperationProject.CooperationProjectPublisher,
111 &cooperationProject.CooperationProjectSponsor, 114 &cooperationProject.CooperationProjectSponsor,
  115 + &cooperationProject.CooperationMode.CooperationModeNumber,
112 &cooperationProject.Department, 116 &cooperationProject.Department,
113 pg.Array(&cooperationProject.CooperationProjectUndertakerTypes), 117 pg.Array(&cooperationProject.CooperationProjectUndertakerTypes),
114 &cooperationProject.Org, 118 &cooperationProject.Org,
@@ -128,6 +132,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain. @@ -128,6 +132,7 @@ func (repository *CooperationProjectRepository) Save(cooperationProject *domain.
128 cooperationProject.CooperationProjectPublishTime, 132 cooperationProject.CooperationProjectPublishTime,
129 cooperationProject.CooperationProjectPublisher, 133 cooperationProject.CooperationProjectPublisher,
130 cooperationProject.CooperationProjectSponsor, 134 cooperationProject.CooperationProjectSponsor,
  135 + cooperationProject.CooperationMode.CooperationModeNumber,
131 cooperationProject.Department, 136 cooperationProject.Department,
132 pg.Array(cooperationProject.CooperationProjectUndertakerTypes), 137 pg.Array(cooperationProject.CooperationProjectUndertakerTypes),
133 cooperationProject.Org, 138 cooperationProject.Org,
@@ -171,7 +176,13 @@ func (repository *CooperationProjectRepository) FindOne(queryOptions map[string] @@ -171,7 +176,13 @@ func (repository *CooperationProjectRepository) FindOne(queryOptions map[string]
171 if cooperationProjectModel.CooperationProjectId == 0 { 176 if cooperationProjectModel.CooperationProjectId == 0 {
172 return nil, nil 177 return nil, nil
173 } else { 178 } else {
174 - return transform.TransformToCooperationProjectDomainModelFromPgModels(cooperationProjectModel) 179 + // 获取共创模式
  180 + cooperationModeModel := new(models.CooperationMode)
  181 + cooperationModeQuery := tx.Model(cooperationModeModel)
  182 + if err := cooperationModeQuery.Where("cooperation_mode_number = ?", cooperationProjectModel.CooperationModeNumber).First(); err != nil {
  183 + return nil, err
  184 + }
  185 + return transform.TransformToCooperationProjectDomainModelFromPgModels(cooperationProjectModel, cooperationModeModel)
175 } 186 }
176 } 187 }
177 188
@@ -186,7 +197,13 @@ func (repository *CooperationProjectRepository) Find(queryOptions map[string]int @@ -186,7 +197,13 @@ func (repository *CooperationProjectRepository) Find(queryOptions map[string]int
186 return 0, cooperationProjects, err 197 return 0, cooperationProjects, err
187 } else { 198 } else {
188 for _, cooperationProjectModel := range cooperationProjectModels { 199 for _, cooperationProjectModel := range cooperationProjectModels {
189 - if cooperationProject, err := transform.TransformToCooperationProjectDomainModelFromPgModels(cooperationProjectModel); err != nil { 200 + // 获取共创模式
  201 + cooperationModeModel := new(models.CooperationMode)
  202 + cooperationModeQuery := tx.Model(cooperationModeModel)
  203 + if err := cooperationModeQuery.Where("cooperation_mode_number = ?", cooperationProjectModel.CooperationModeNumber).First(); err != nil {
  204 + return 0, nil, err
  205 + }
  206 + if cooperationProject, err := transform.TransformToCooperationProjectDomainModelFromPgModels(cooperationProjectModel, cooperationModeModel); err != nil {
190 return 0, cooperationProjects, err 207 return 0, cooperationProjects, err
191 } else { 208 } else {
192 cooperationProjects = append(cooperationProjects, cooperationProject) 209 cooperationProjects = append(cooperationProjects, cooperationProject)