作者 郑周

新建项目逻辑补充

@@ -15,3 +15,12 @@ func (in *QueryCycleCommand) Valid(validation *validation.Validation) { @@ -15,3 +15,12 @@ func (in *QueryCycleCommand) Valid(validation *validation.Validation) {
15 return 15 return
16 } 16 }
17 } 17 }
  18 +
  19 +type StatisticCycleProjectUserCommand struct {
  20 + CompanyId int64 `cname:"公司ID" json:"companyId"`
  21 + CycleId int64 `cname:"周期ID" json:"cycleId,string"`
  22 +}
  23 +
  24 +func (in *StatisticCycleProjectUserCommand) Valid(*validation.Validation) {
  25 +
  26 +}
@@ -280,3 +280,51 @@ func (rs *EvaluationCycleService) List(in *command.QueryCycleCommand) (interface @@ -280,3 +280,51 @@ func (rs *EvaluationCycleService) List(in *command.QueryCycleCommand) (interface
280 } 280 }
281 return tool_funs.SimpleWrapGridMap(total, cycles), nil 281 return tool_funs.SimpleWrapGridMap(total, cycles), nil
282 } 282 }
  283 +
  284 +func (rs *EvaluationCycleService) StatisticCycleUser(in *command.StatisticCycleProjectUserCommand) (interface{}, error) {
  285 + transactionContext, err := factory.ValidateStartTransaction(in)
  286 + if err != nil {
  287 + return nil, err
  288 + }
  289 + defer func() {
  290 + transactionContext.RollbackTransaction()
  291 + }()
  292 + projectRepository := factory.CreateEvaluationProjectRepository(map[string]interface{}{"transactionContext": transactionContext})
  293 + _, projects, err := projectRepository.Find(tool_funs.SimpleStructToMap(in), "linkNodes")
  294 + if err != nil {
  295 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  296 + }
  297 +
  298 + userIds := make([]int64, 0)
  299 + userIdMap := map[int64]int64{}
  300 + for i := range projects {
  301 + project := projects[i]
  302 + for j := range project.Recipients {
  303 + userId, _ := strconv.ParseInt(project.Recipients[j], 10, 64)
  304 + userIdMap[userId] = userId
  305 + }
  306 + }
  307 + for _, v := range userIdMap {
  308 + userIds = append(userIds, v)
  309 + }
  310 +
  311 + userTotal := 0
  312 + departmentTotal := 0
  313 + if len(userIds) > 0 {
  314 + userRepository := factory.CreateUserRepository(map[string]interface{}{"transactionContext": transactionContext})
  315 + _, users, _ := userRepository.Find(map[string]interface{}{"ids": userIds, "limit": len(userIds)})
  316 + departmentIdMap := map[int]int{}
  317 + for i := range users {
  318 + for _, v := range users[i].DepartmentId {
  319 + departmentIdMap[v] = v
  320 + }
  321 + }
  322 + userTotal = len(users)
  323 + departmentTotal = len(departmentIdMap)
  324 + }
  325 +
  326 + if err := transactionContext.CommitTransaction(); err != nil {
  327 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  328 + }
  329 + return map[string]interface{}{"userTotal": userTotal, "departmentTotal": departmentTotal}, nil
  330 +}
@@ -2,25 +2,19 @@ package command @@ -2,25 +2,19 @@ package command
2 2
3 import ( 3 import (
4 "github.com/beego/beego/v2/core/validation" 4 "github.com/beego/beego/v2/core/validation"
5 - "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"  
6 ) 5 )
7 6
8 -type StateProjectCommand struct {  
9 - Id int64 `cname:"项目ID" json:"id,string" valid:"Required"`  
10 - State int `cname:"项目状态" json:"state"` 7 +type ActivateProjectCommand struct {
  8 + Id int64 `cname:"项目ID" json:"id,string" valid:"Required"`
11 } 9 }
12 10
13 type CopyProjectCommand struct { 11 type CopyProjectCommand struct {
14 - Id int64 `cname:"模板ID" json:"id,string" valid:"Required"` 12 + CreatorId int64 `cname:"创建人ID" json:"creatorId"`
  13 + Id int64 `cname:"模板ID" json:"id,string" valid:"Required"`
15 } 14 }
16 15
17 -func (in *StateProjectCommand) Valid(validation *validation.Validation) {  
18 - switch in.State {  
19 - case domain.ProjectStateWaitConfig, domain.ProjectStateWaitActive, domain.ProjectStateEnable, domain.ProjectStateDisable:  
20 - default:  
21 - validation.SetError("state", "状态设置错误")  
22 - return  
23 - } 16 +func (in *ActivateProjectCommand) Valid(validation *validation.Validation) {
  17 +
24 } 18 }
25 19
26 func (in *CopyProjectCommand) Valid(*validation.Validation) { 20 func (in *CopyProjectCommand) Valid(*validation.Validation) {
@@ -18,12 +18,3 @@ func (in *QueryProjectCommand) Valid(validation *validation.Validation) { @@ -18,12 +18,3 @@ func (in *QueryProjectCommand) Valid(validation *validation.Validation) {
18 return 18 return
19 } 19 }
20 } 20 }
21 -  
22 -type StatisticCycleProjectUserCommand struct {  
23 - CompanyId int64 `cname:"公司ID" json:"companyId"`  
24 - CycleId int64 `cname:"周期ID" json:"cycleId,string"`  
25 -}  
26 -  
27 -func (in *StatisticCycleProjectUserCommand) Valid(*validation.Validation) {  
28 -  
29 -}  
@@ -2,7 +2,7 @@ package command @@ -2,7 +2,7 @@ package command
2 2
3 import ( 3 import (
4 "github.com/beego/beego/v2/core/validation" 4 "github.com/beego/beego/v2/core/validation"
5 - "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" 5 + "time"
6 ) 6 )
7 7
8 type UpdateProjectCommand struct { 8 type UpdateProjectCommand struct {
@@ -17,22 +17,25 @@ type UpdateProjectCommand struct { @@ -17,22 +17,25 @@ type UpdateProjectCommand struct {
17 } 17 }
18 18
19 type UpdateProjectTemplateCommand struct { 19 type UpdateProjectTemplateCommand struct {
  20 + CompanyId int64 `cname:"公司ID" json:"companyId"`
  21 + CycleId int64 `cname:"周期ID" json:"cycleId,string" valid:"Required"`
  22 + Id int64 `cname:"项目ID" json:"id,string" valid:"Required"`
  23 + TemplateId int64 `cname:"模板ID" json:"templateId,string"`
  24 + Recipients []string `cname:"被评估人ID" json:"recipients"`
  25 + TimeStart *time.Time `cname:"自评起始时间" json:"timeStart" valid:"Required"`
  26 + TimeEnd *time.Time `cname:"自评截止时间" json:"timeEnd" valid:"Required"`
  27 + KpiCycle int `cname:"评估周期" json:"kpiCycle" valid:"Required"`
  28 + KpiResultStart *time.Time `cname:"绩效结果开始查看时间" json:"kpiResultStart"`
  29 + Activate int `cname:"启动项目" json:"activate"`
  30 +}
  31 +
  32 +type CheckRecipientCommand struct {
20 CompanyId int64 `cname:"公司ID" json:"companyId"` 33 CompanyId int64 `cname:"公司ID" json:"companyId"`
21 CycleId int64 `cname:"周期ID" json:"cycleId,string" valid:"Required"` 34 CycleId int64 `cname:"周期ID" json:"cycleId,string" valid:"Required"`
22 Id int64 `cname:"项目ID" json:"id,string" valid:"Required"` 35 Id int64 `cname:"项目ID" json:"id,string" valid:"Required"`
23 - TemplateId int64 `cname:"模板ID" json:"templateId,string"`  
24 Recipients []string `cname:"被评估人ID" json:"recipients"` 36 Recipients []string `cname:"被评估人ID" json:"recipients"`
25 } 37 }
26 38
27 -type UpdateProjectTemplateNodeCommand struct {  
28 - CompanyId int64 `cname:"公司ID" json:"companyId"`  
29 - CycleId int64 `cname:"周期ID" json:"cycleId,string" valid:"Required"`  
30 - Id int64 `cname:"项目ID" json:"id,string" valid:"Required"`  
31 - TemplateId int64 `cname:"模板ID" json:"templateId,string" valid:"Required"`  
32 - LinkNodes []*domain.LinkNode `cname:"评估流程" json:"linkNodes"`  
33 - Activate int `cname:"启动项目" json:"activate"`  
34 -}  
35 -  
36 func (in *UpdateProjectCommand) Valid(validation *validation.Validation) { 39 func (in *UpdateProjectCommand) Valid(validation *validation.Validation) {
37 if len(in.Name) > 40 { 40 if len(in.Name) > 40 {
38 validation.SetError("name", "项目名称最大长度40个字符") 41 validation.SetError("name", "项目名称最大长度40个字符")
@@ -46,10 +49,3 @@ func (in *UpdateProjectTemplateCommand) Valid(validation *validation.Validation) @@ -46,10 +49,3 @@ func (in *UpdateProjectTemplateCommand) Valid(validation *validation.Validation)
46 return 49 return
47 } 50 }
48 } 51 }
49 -  
50 -func (in *UpdateProjectTemplateNodeCommand) Valid(validation *validation.Validation) {  
51 - if len(in.LinkNodes) == 0 {  
52 - validation.SetError("linkNodes", "请添加评估流程")  
53 - return  
54 - }  
55 -}  
@@ -55,10 +55,19 @@ func (rs *EvaluationProjectService) Create(in *command.CreateProjectCommand) (in @@ -55,10 +55,19 @@ func (rs *EvaluationProjectService) Create(in *command.CreateProjectCommand) (in
55 if err != nil { 55 if err != nil {
56 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 56 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
57 } 57 }
  58 +
  59 + projectAdapter := &adapter.EvaluationProjectAdapter{}
  60 + projectAdapter.EvaluationProject = project
  61 + if len(project.PmpIds) > 0 {
  62 + userRepository := factory.CreateUserRepository(map[string]interface{}{"transactionContext": transactionContext})
  63 + _, users, _ := userRepository.Find(map[string]interface{}{"ids": project.PmpIds, "limit": len(project.PmpIds)})
  64 + projectAdapter.TransformPmpAdapter(users)
  65 + }
  66 +
58 if err := transactionContext.CommitTransaction(); err != nil { 67 if err := transactionContext.CommitTransaction(); err != nil {
59 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 68 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
60 } 69 }
61 - return project, nil 70 + return projectAdapter, nil
62 71
63 } 72 }
64 73
@@ -96,10 +105,19 @@ func (rs *EvaluationProjectService) Update(in *command.UpdateProjectCommand) (in @@ -96,10 +105,19 @@ func (rs *EvaluationProjectService) Update(in *command.UpdateProjectCommand) (in
96 if err != nil { 105 if err != nil {
97 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 106 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
98 } 107 }
  108 +
  109 + projectAdapter := &adapter.EvaluationProjectAdapter{}
  110 + projectAdapter.EvaluationProject = project
  111 + if len(project.PmpIds) > 0 {
  112 + userRepository := factory.CreateUserRepository(map[string]interface{}{"transactionContext": transactionContext})
  113 + _, users, _ := userRepository.Find(map[string]interface{}{"ids": project.PmpIds, "limit": len(project.PmpIds)})
  114 + projectAdapter.TransformPmpAdapter(users)
  115 + }
  116 +
99 if err := transactionContext.CommitTransaction(); err != nil { 117 if err := transactionContext.CommitTransaction(); err != nil {
100 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 118 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
101 } 119 }
102 - return project, nil 120 + return projectAdapter, nil
103 } 121 }
104 122
105 func (rs *EvaluationProjectService) UpdateTemplate(in *command.UpdateProjectTemplateCommand) (interface{}, error) { 123 func (rs *EvaluationProjectService) UpdateTemplate(in *command.UpdateProjectTemplateCommand) (interface{}, error) {
@@ -145,48 +163,33 @@ func (rs *EvaluationProjectService) UpdateTemplate(in *command.UpdateProjectTemp @@ -145,48 +163,33 @@ func (rs *EvaluationProjectService) UpdateTemplate(in *command.UpdateProjectTemp
145 if err != nil { 163 if err != nil {
146 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 164 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
147 } 165 }
148 - cycleTemplate, err := cycleTemplateRepository.FindOne(map[string]interface{}{"id": in.TemplateId, "includeDeleted": true})  
149 - if err != nil {  
150 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())  
151 - }  
152 -  
153 - project.Recipients = in.Recipients  
154 - project.Template = cycleTemplate.Template  
155 -  
156 - project, err = projectRepository.Insert(project)  
157 - if err != nil {  
158 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())  
159 - }  
160 - if err := transactionContext.CommitTransaction(); err != nil {  
161 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
162 - }  
163 - return project, nil  
164 -}  
165 166
166 -func (rs *EvaluationProjectService) UpdateTemplateNode(in *command.UpdateProjectTemplateNodeCommand) (interface{}, error) {  
167 - transactionContext, err := factory.ValidateStartTransaction(in)  
168 - if err != nil {  
169 - return nil, err  
170 - }  
171 - defer func() {  
172 - transactionContext.RollbackTransaction()  
173 - }()  
174 -  
175 - projectRepository := factory.CreateEvaluationProjectRepository(map[string]interface{}{"transactionContext": transactionContext})  
176 -  
177 - project, err := projectRepository.FindOne(map[string]interface{}{"id": in.Id}) 167 + cycleTemplate, err := cycleTemplateRepository.FindOne(map[string]interface{}{"id": in.TemplateId, "includeDeleted": true})
178 if err != nil { 168 if err != nil {
179 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 169 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
180 } 170 }
181 171
182 // FIXME 启动时,需要激活定时任务 172 // FIXME 启动时,需要激活定时任务
183 if in.Activate == 1 { 173 if in.Activate == 1 {
  174 + if len(in.Recipients) == 0 {
  175 + return nil, application.ThrowError(application.BUSINESS_ERROR, "请添加被评估人")
  176 + }
184 project.State = domain.ProjectStateEnable 177 project.State = domain.ProjectStateEnable
185 } 178 }
186 - for i := range in.LinkNodes {  
187 - project.Template.LinkNodes[i].TimeStart = in.LinkNodes[i].TimeStart  
188 - project.Template.LinkNodes[i].TimeEnd = in.LinkNodes[i].TimeEnd  
189 - project.Template.LinkNodes[i].KpiCycle = in.LinkNodes[i].KpiCycle 179 +
  180 + project.Recipients = in.Recipients
  181 + project.Template = cycleTemplate.Template
  182 + for i := range project.Template.LinkNodes {
  183 + node := project.Template.LinkNodes[i]
  184 + node.KpiCycle = in.KpiCycle // 设置周期
  185 + if node.Type == domain.LinkNodeViewResult {
  186 + if in.KpiResultStart != nil {
  187 + node.TimeStart = in.KpiResultStart
  188 + }
  189 + } else {
  190 + node.TimeStart = in.TimeStart
  191 + node.TimeEnd = in.TimeEnd
  192 + }
190 } 193 }
191 194
192 project, err = projectRepository.Insert(project) 195 project, err = projectRepository.Insert(project)
@@ -290,7 +293,7 @@ func (rs *EvaluationProjectService) List(in *command.QueryProjectCommand) (inter @@ -290,7 +293,7 @@ func (rs *EvaluationProjectService) List(in *command.QueryProjectCommand) (inter
290 return tool_funs.SimpleWrapGridMap(total, projectAdapters), nil 293 return tool_funs.SimpleWrapGridMap(total, projectAdapters), nil
291 } 294 }
292 295
293 -func (rs *EvaluationProjectService) State(in *command.StateProjectCommand) (interface{}, error) { 296 +func (rs *EvaluationProjectService) Activate(in *command.ActivateProjectCommand) (interface{}, error) {
294 transactionContext, err := factory.ValidateStartTransaction(in) 297 transactionContext, err := factory.ValidateStartTransaction(in)
295 if err != nil { 298 if err != nil {
296 return nil, err 299 return nil, err
@@ -300,13 +303,20 @@ func (rs *EvaluationProjectService) State(in *command.StateProjectCommand) (inte @@ -300,13 +303,20 @@ func (rs *EvaluationProjectService) State(in *command.StateProjectCommand) (inte
300 }() 303 }()
301 304
302 projectRepository := factory.CreateEvaluationProjectRepository(map[string]interface{}{"transactionContext": transactionContext}) 305 projectRepository := factory.CreateEvaluationProjectRepository(map[string]interface{}{"transactionContext": transactionContext})
303 -  
304 project, err := projectRepository.FindOne(map[string]interface{}{"id": in.Id}) 306 project, err := projectRepository.FindOne(map[string]interface{}{"id": in.Id})
305 if err != nil { 307 if err != nil {
306 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 308 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
307 } 309 }
308 310
309 - project.State = in.State 311 + if project.Template == nil {
  312 + return nil, application.ThrowError(application.BUSINESS_ERROR, "请添加评估模板")
  313 + }
  314 +
  315 + if len(project.Recipients) == 0 {
  316 + return nil, application.ThrowError(application.BUSINESS_ERROR, "请添加被评估人")
  317 + }
  318 +
  319 + project.State = domain.TemplateStateEnable
310 project, err = projectRepository.Insert(project) 320 project, err = projectRepository.Insert(project)
311 if err != nil { 321 if err != nil {
312 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 322 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
@@ -332,6 +342,10 @@ func (rs *EvaluationProjectService) Copy(in *command.CopyProjectCommand) (interf @@ -332,6 +342,10 @@ func (rs *EvaluationProjectService) Copy(in *command.CopyProjectCommand) (interf
332 } 342 }
333 // ID重置 343 // ID重置
334 project.Id = 0 344 project.Id = 0
  345 + project.Name = project.Name + " 副本"
  346 + project.CreatorId = in.CreatorId
  347 + project.Recipients = make([]string, 0) // 重置被评估人
  348 +
335 // 如果拷贝已经启用的模板,默认先设置为待启用 349 // 如果拷贝已经启用的模板,默认先设置为待启用
336 if project.State == domain.ProjectStateEnable { 350 if project.State == domain.ProjectStateEnable {
337 project.State = domain.ProjectStateWaitActive 351 project.State = domain.ProjectStateWaitActive
@@ -346,7 +360,7 @@ func (rs *EvaluationProjectService) Copy(in *command.CopyProjectCommand) (interf @@ -346,7 +360,7 @@ func (rs *EvaluationProjectService) Copy(in *command.CopyProjectCommand) (interf
346 return project, nil 360 return project, nil
347 } 361 }
348 362
349 -func (rs *EvaluationProjectService) StatisticCycleUser(in *command.StatisticCycleProjectUserCommand) (interface{}, error) { 363 +func (rs *EvaluationProjectService) CheckRecipients(in *command.CheckRecipientCommand) (interface{}, error) {
350 transactionContext, err := factory.ValidateStartTransaction(in) 364 transactionContext, err := factory.ValidateStartTransaction(in)
351 if err != nil { 365 if err != nil {
352 return nil, err 366 return nil, err
@@ -354,42 +368,41 @@ func (rs *EvaluationProjectService) StatisticCycleUser(in *command.StatisticCycl @@ -354,42 +368,41 @@ func (rs *EvaluationProjectService) StatisticCycleUser(in *command.StatisticCycl
354 defer func() { 368 defer func() {
355 transactionContext.RollbackTransaction() 369 transactionContext.RollbackTransaction()
356 }() 370 }()
  371 +
357 projectRepository := factory.CreateEvaluationProjectRepository(map[string]interface{}{"transactionContext": transactionContext}) 372 projectRepository := factory.CreateEvaluationProjectRepository(map[string]interface{}{"transactionContext": transactionContext})
358 - _, projects, err := projectRepository.Find(tool_funs.SimpleStructToMap(in), "linkNodes") 373 +
  374 + _, projects, err := projectRepository.Find(map[string]interface{}{"companyId": in.CompanyId, "cycleId": in.CycleId}, "linkNodes")
359 if err != nil { 375 if err != nil {
360 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 376 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
361 } 377 }
362 378
363 - userIds := make([]int64, 0)  
364 - userIdMap := map[int64]int64{} 379 + // 周期内的所有项目,员工不能重复被评估
  380 + rids := map[string]bool{}
365 for i := range projects { 381 for i := range projects {
366 - project := projects[i]  
367 - for j := range project.Recipients {  
368 - userId, _ := strconv.ParseInt(project.Recipients[j], 10, 64)  
369 - userIdMap[userId] = userId 382 + // 排除当前项目
  383 + if in.Id != projects[i].Id {
  384 + ids := projects[i].Recipients
  385 + for j := range ids {
  386 + rids[ids[j]] = true
  387 + }
370 } 388 }
371 } 389 }
372 - for _, v := range userIdMap {  
373 - userIds = append(userIds, v)  
374 - }  
375 -  
376 - userTotal := 0  
377 - departmentTotal := 0  
378 - if len(userIds) > 0 {  
379 - userRepository := factory.CreateUserRepository(map[string]interface{}{"transactionContext": transactionContext})  
380 - _, users, _ := userRepository.Find(map[string]interface{}{"ids": userIds, "limit": len(userIds)})  
381 - departmentIdMap := map[int]int{}  
382 - for i := range users {  
383 - for _, v := range users[i].DepartmentId {  
384 - departmentIdMap[v] = v  
385 - } 390 + repeatNum := 0
  391 + for i := range in.Recipients {
  392 + id := in.Recipients[i]
  393 + if _, ok := rids[id]; ok {
  394 + repeatNum++
386 } 395 }
387 - userTotal = len(users)  
388 - departmentTotal = len(departmentIdMap)  
389 } 396 }
  397 + //if repeatNum > 0 {
  398 + // return nil, application.ThrowError(application.BUSINESS_ERROR, fmt.Sprintf("有%d人已经在本周期其他项目内,需要将他们移除", repeatNum))
  399 + //}
390 400
  401 + if err != nil {
  402 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  403 + }
391 if err := transactionContext.CommitTransaction(); err != nil { 404 if err := transactionContext.CommitTransaction(); err != nil {
392 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 405 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
393 } 406 }
394 - return map[string]interface{}{"userTotal": userTotal, "departmentTotal": departmentTotal}, nil 407 + return repeatNum, nil
395 } 408 }
@@ -72,7 +72,18 @@ func (controller *CycleController) ListCycle() { @@ -72,7 +72,18 @@ func (controller *CycleController) ListCycle() {
72 } 72 }
73 ua := middlewares.GetUser(controller.Ctx) 73 ua := middlewares.GetUser(controller.Ctx)
74 in.CompanyId = ua.CompanyId 74 in.CompanyId = ua.CompanyId
75 - //in.CompanyId = middlewares.GetCompanyId(controller.Ctx)  
76 controller.Response(ruService.List(in)) 75 controller.Response(ruService.List(in))
77 } 76 }
78 } 77 }
  78 +
  79 +func (controller *CycleController) StatisticCycleUser() {
  80 + ruService := service.NewEvaluationCycleService()
  81 + in := &command.StatisticCycleProjectUserCommand{}
  82 + if err := controller.Unmarshal(in); err != nil {
  83 + controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error()))
  84 + } else {
  85 + ua := middlewares.GetUser(controller.Ctx)
  86 + in.CompanyId = ua.CompanyId
  87 + controller.Response(ruService.StatisticCycleUser(in))
  88 + }
  89 +}
@@ -53,19 +53,6 @@ func (controller *ProjectController) UpdateProjectForTemplate() { @@ -53,19 +53,6 @@ func (controller *ProjectController) UpdateProjectForTemplate() {
53 } 53 }
54 } 54 }
55 55
56 -func (controller *ProjectController) UpdateProjectForTemplateNode() {  
57 - ruService := service.NewEvaluationProjectService()  
58 - in := &command.UpdateProjectTemplateNodeCommand{}  
59 - if err := controller.Unmarshal(in); err != nil {  
60 - controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error()))  
61 - } else {  
62 - ua := middlewares.GetUser(controller.Ctx)  
63 - in.CompanyId = ua.CompanyId  
64 - //in.CompanyId = middlewares.GetCompanyId(controller.Ctx)  
65 - controller.Response(ruService.UpdateTemplateNode(in))  
66 - }  
67 -}  
68 -  
69 func (controller *ProjectController) GetProject() { 56 func (controller *ProjectController) GetProject() {
70 ruService := service.NewEvaluationProjectService() 57 ruService := service.NewEvaluationProjectService()
71 in := &command.GetProjectCommand{} 58 in := &command.GetProjectCommand{}
@@ -106,11 +93,11 @@ func (controller *ProjectController) ListProject() { @@ -106,11 +93,11 @@ func (controller *ProjectController) ListProject() {
106 93
107 func (controller *ProjectController) StateProject() { 94 func (controller *ProjectController) StateProject() {
108 ruService := service.NewEvaluationProjectService() 95 ruService := service.NewEvaluationProjectService()
109 - in := &command.StateProjectCommand{} 96 + in := &command.ActivateProjectCommand{}
110 if err := controller.Unmarshal(in); err != nil { 97 if err := controller.Unmarshal(in); err != nil {
111 controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) 98 controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error()))
112 } else { 99 } else {
113 - controller.Response(ruService.State(in)) 100 + controller.Response(ruService.Activate(in))
114 } 101 }
115 } 102 }
116 103
@@ -120,19 +107,20 @@ func (controller *ProjectController) CopyProject() { @@ -120,19 +107,20 @@ func (controller *ProjectController) CopyProject() {
120 if err := controller.Unmarshal(in); err != nil { 107 if err := controller.Unmarshal(in); err != nil {
121 controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) 108 controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error()))
122 } else { 109 } else {
  110 + ua := middlewares.GetUser(controller.Ctx)
  111 + in.CreatorId = ua.UserId
123 controller.Response(ruService.Copy(in)) 112 controller.Response(ruService.Copy(in))
124 } 113 }
125 } 114 }
126 115
127 -func (controller *ProjectController) StatisticCycleUser() { 116 +func (controller *ProjectController) CheckRecipients() {
128 ruService := service.NewEvaluationProjectService() 117 ruService := service.NewEvaluationProjectService()
129 - in := &command.StatisticCycleProjectUserCommand{} 118 + in := &command.CheckRecipientCommand{}
130 if err := controller.Unmarshal(in); err != nil { 119 if err := controller.Unmarshal(in); err != nil {
131 controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) 120 controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error()))
132 } else { 121 } else {
133 ua := middlewares.GetUser(controller.Ctx) 122 ua := middlewares.GetUser(controller.Ctx)
134 in.CompanyId = ua.CompanyId 123 in.CompanyId = ua.CompanyId
135 - //in.CompanyId = middlewares.GetCompanyId(controller.Ctx)  
136 - controller.Response(ruService.StatisticCycleUser(in)) 124 + controller.Response(ruService.CheckRecipients(in))
137 } 125 }
138 } 126 }
@@ -15,6 +15,7 @@ func init() { @@ -15,6 +15,7 @@ func init() {
15 web.NSRouter("/", &controllers.CycleController{}, "Delete:RemoveCycle"), 15 web.NSRouter("/", &controllers.CycleController{}, "Delete:RemoveCycle"),
16 web.NSRouter("/:Id", &controllers.CycleController{}, "Get:GetCycle"), 16 web.NSRouter("/:Id", &controllers.CycleController{}, "Get:GetCycle"),
17 web.NSRouter("/list", &controllers.CycleController{}, "Post:ListCycle"), 17 web.NSRouter("/list", &controllers.CycleController{}, "Post:ListCycle"),
  18 + web.NSRouter("/statistic", &controllers.CycleController{}, "Post:StatisticCycleUser"),
18 ) 19 )
19 web.AddNamespace(ns) 20 web.AddNamespace(ns)
20 } 21 }
  1 +package routers
  2 +
  3 +import (
  4 + "github.com/beego/beego/v2/server/web"
  5 + "github.com/linmadan/egglib-go/web/beego/filters"
  6 + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/beego/controllers"
  7 + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/beego/middlewares"
  8 +)
  9 +
  10 +func init() {
  11 + ns := web.NewNamespace("/v1/evaluation-project",
  12 + web.NSBefore(filters.AllowCors(), middlewares.CheckAdminToken()),
  13 + web.NSRouter("/", &controllers.ProjectController{}, "Post:CreateProject"),
  14 + web.NSRouter("/", &controllers.ProjectController{}, "Put:UpdateProject"),
  15 + web.NSRouter("/", &controllers.ProjectController{}, "Delete:RemoveProject"),
  16 + web.NSRouter("/:Id", &controllers.ProjectController{}, "Get:GetProject"),
  17 + web.NSRouter("/list", &controllers.ProjectController{}, "Post:ListProject"),
  18 + web.NSRouter("/detail", &controllers.ProjectController{}, "Put:UpdateProjectForTemplate"),
  19 + web.NSRouter("/check-recipients", &controllers.ProjectController{}, "Post:CheckRecipients"),
  20 + web.NSRouter("/copy", &controllers.ProjectController{}, "Post:CopyProject"),
  21 + )
  22 + web.AddNamespace(ns)
  23 +}