project.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package admin
  2. import (
  3. "fmt"
  4. "github.com/shopspring/decimal"
  5. "server/dao"
  6. "server/model/common/request"
  7. )
  8. type ProjectService struct{}
  9. func (ps *ProjectService) QueryProjectList(info request.SearchProject) (list interface{}, total int64, err error) {
  10. limit := info.PageInfo.PageSize
  11. offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
  12. project, total, err := dao.QueryProjectList(limit, offset, info.State, info.Name, info.Time)
  13. return project, total, err
  14. }
  15. func (ps *ProjectService) QueryProjectByCode(code string) (project dao.Project, err error) {
  16. project, err = dao.QueryProjectByCode(code)
  17. if err != nil {
  18. return
  19. }
  20. files, err := dao.QueryFilesByCode(code)
  21. if err != nil {
  22. return
  23. }
  24. project.Files = files
  25. return project, err
  26. }
  27. func (ps *ProjectService) QueryAllProject() ([]dao.Project, error) {
  28. return dao.QueryAllProject()
  29. }
  30. func (ps *ProjectService) QueryProjectsInfo() (sum decimal.Decimal, totalProject, completeProject, unCompleteProject int, err error) {
  31. projects, err := dao.QueryAllProject()
  32. if err != nil {
  33. return
  34. }
  35. for _, project := range projects {
  36. totalProject++
  37. if project.State == 3 {
  38. completeProject++
  39. }
  40. sum = sum.Add(project.Price)
  41. }
  42. fmt.Printf("%y", sum)
  43. unCompleteProject = totalProject - completeProject
  44. return
  45. }
  46. func (ps *ProjectService) QueryWorkingHours(code string) ([]dao.ProjectWorkingHours, error) {
  47. return dao.QueryWorkingHours(code)
  48. }
  49. func (ps *ProjectService) QueryCollections(code string) ([]dao.Collection, error) {
  50. return dao.QueryCollection(code)
  51. }
  52. func (ps *ProjectService) CreateProject(project dao.Project) error {
  53. return project.CreateProject()
  54. }
  55. func (ps *ProjectService) CreateProjectFile(projectFile dao.ProjectFile) error {
  56. return projectFile.CreateFile()
  57. }
  58. func (ps *ProjectService) CreateOrUpdateWorkingHours(workingHours dao.ProjectWorkingHours) error {
  59. // 查询是否已有工时
  60. hours, err := dao.QueryWorkingHoursByCode(workingHours.ProjectCode, workingHours.People)
  61. if err != nil { // 创建时没有id 判断是创建还是修改
  62. // 新增工时+已有工时
  63. zongHours := hours.Days + workingHours.Days
  64. workingHours.Days = zongHours
  65. err = workingHours.UpdateWorkingHours()
  66. return err
  67. } else {
  68. err := workingHours.CreateWorkingHours()
  69. if err != nil {
  70. return err
  71. }
  72. return err
  73. }
  74. }
  75. func (ps *ProjectService) CreateCollection(collection dao.Collection) error {
  76. return collection.CreateCollection()
  77. }
  78. func (ps *ProjectService) UpdateProject(project dao.Project) error {
  79. return project.UpdateProject()
  80. }
  81. func (ps *ProjectService) UpdateWorkingHours(workingHours dao.ProjectWorkingHours) error {
  82. return workingHours.UpdateWorkingHours()
  83. }
  84. func (ps *ProjectService) UpdateCollection(collection dao.Collection) error {
  85. return collection.UpdateCollection()
  86. }
  87. func (ps *ProjectService) DeleteProject(code string) error {
  88. return dao.DeleteProject(code)
  89. }
  90. func (ps *ProjectService) DeleteProjectFile(id uint) error {
  91. return dao.DeleteFile(id)
  92. }
  93. func (ps *ProjectService) DeleteWorkingHours(workingHours dao.ProjectWorkingHours) error {
  94. return workingHours.DeleteWorkingHours()
  95. }
  96. func (ps *ProjectService) DeleteCollection(collection dao.Collection) error {
  97. return collection.DeleteCollection()
  98. }