project_pay.go 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package service
  2. import (
  3. "context"
  4. "fmt"
  5. "youngee_b_api/db"
  6. "youngee_b_api/model/http_model"
  7. "github.com/sirupsen/logrus"
  8. )
  9. var ProjectPay *projectPay
  10. type projectPay struct {
  11. }
  12. func (*projectPay) Pay(ctx context.Context, projectPay http_model.ProjectPayRequest, enterpriseID string) (*int64, error) {
  13. // 修改企业账户金额
  14. balance, err := db.UpdateEnterpriseBalance(ctx, enterpriseID, 0, -projectPay.PaySum, projectPay.PaySum)
  15. if err != nil {
  16. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateEnterpriseBalance error,err:%+v", err)
  17. return nil, err
  18. }
  19. // 修改项目状态为执行中
  20. err = db.UpdateProjectStatus(ctx, projectPay.ProjectID, 9)
  21. if err != nil {
  22. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateEnterpriseBalance error,err:%+v", err)
  23. return nil, err
  24. }
  25. // 插入支付记录
  26. recordId, err1 := db.CreatePayRecord(ctx, enterpriseID, projectPay.PaySum, *balance, 2, projectPay.ProjectID)
  27. if err1 != nil {
  28. logrus.WithContext(ctx).Errorf("[projectPay service] call CreatePayRecord error,err:%+v", err)
  29. return nil, err1
  30. }
  31. // 支付更新任务状态
  32. //_, err2 := db.GetProjectDetail(ctx, projectPay.ProjectID)
  33. //if err2 != nil {
  34. // logrus.WithContext(ctx).Errorf("[project service] call GetPorjectDetail error,err:%+v", err)
  35. // return nil, err2
  36. //}
  37. err = db.UpdateTaskSelectAtByProjectId(ctx, projectPay.ProjectID, 2)
  38. if err != nil {
  39. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  40. return nil, err
  41. }
  42. err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 4)
  43. if err != nil {
  44. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  45. return nil, err
  46. }
  47. //if project.ProjectForm != 4 {
  48. // err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 4)
  49. // if err != nil {
  50. // logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  51. // return nil, err
  52. // }
  53. //} else {
  54. // if project.ContentType == 1 {
  55. // err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 9) //修改为待传初稿
  56. // if err != nil {
  57. // logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  58. // return nil, err
  59. // }
  60. // } else {
  61. // err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 7) //修改为待传脚本
  62. // if err != nil {
  63. // logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  64. // return nil, err
  65. // }
  66. // }
  67. //}
  68. // 插入消息-任务申请成功
  69. taskIds, err := db.GetTaskIds(ctx, projectPay.ProjectID) // 获取任务id列表
  70. if err != nil {
  71. logrus.WithContext(ctx).Errorf("[projectPay service] call GetTaskIds error,err:%+v", err)
  72. return nil, err
  73. }
  74. fmt.Printf("taskIds: %+v", taskIds)
  75. for _, taskId := range taskIds {
  76. err = db.CreateMessageByTaskId(ctx, 1, 1, taskId) // 插入消息
  77. if err != nil {
  78. logrus.WithContext(ctx).Errorf("[projectPay service] call CreateMessageByTaskId error,err:%+v", err)
  79. return nil, err
  80. }
  81. }
  82. return recordId, nil
  83. }