pay.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package service
  2. import (
  3. "context"
  4. "github.com/sirupsen/logrus"
  5. "youngee_m_api/db"
  6. "youngee_m_api/model/http_model"
  7. )
  8. var Pay *pay
  9. type pay struct {
  10. }
  11. func (*pay) GetPaysum(ctx context.Context, project http_model.PaySumRequest) (*http_model.PaySumResponce, error) {
  12. projectId := project.ProjectId
  13. tasks, err := db.GetTaskList(ctx, projectId)
  14. if err != nil {
  15. logrus.Infof("[GetPayTasklist] fail,err:%+v", err)
  16. return nil, err
  17. }
  18. recruitStrategy, err := db.GetRecruitStrategyByProjectId(ctx, projectId)
  19. if err != nil {
  20. logrus.Infof("[GetPayTasklist] fail,err:%+v", err)
  21. return nil, err
  22. }
  23. payMap := make(map[int]float64)
  24. for _, v := range recruitStrategy {
  25. payMap[int(v.StrategyID)] = 0
  26. }
  27. PaySum := http_model.PaySumResponce{}
  28. if tasks != nil {
  29. for _, task := range tasks {
  30. payMap[task.StrategyId] += task.AllPayment
  31. }
  32. for k, v := range payMap {
  33. ps := http_model.PaySum{StrategyId: k, AllPayment: v}
  34. PaySum.PaySum = append(PaySum.PaySum, ps)
  35. }
  36. }
  37. return &PaySum, nil
  38. }