project_pay.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. project, 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. if project.ProjectForm != 4 {
  43. err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 4)
  44. if err != nil {
  45. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  46. return nil, err
  47. }
  48. } else {
  49. if project.ContentType == 1 {
  50. err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 9) //修改为待传初稿
  51. if err != nil {
  52. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  53. return nil, err
  54. }
  55. } else {
  56. err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 7) //修改为待传脚本
  57. if err != nil {
  58. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  59. return nil, err
  60. }
  61. }
  62. }
  63. // 插入消息-任务申请成功
  64. taskIds, err := db.GetTaskIds(ctx, projectPay.ProjectID) // 获取任务id列表
  65. if err != nil {
  66. logrus.WithContext(ctx).Errorf("[projectPay service] call GetTaskIds error,err:%+v", err)
  67. return nil, err
  68. }
  69. fmt.Printf("taskIds: %+v", taskIds)
  70. for _, taskId := range taskIds {
  71. err = db.CreateMessageByTaskId(ctx, 1, 1, taskId) // 插入消息
  72. if err != nil {
  73. logrus.WithContext(ctx).Errorf("[projectPay service] call CreateMessageByTaskId error,err:%+v", err)
  74. return nil, err
  75. }
  76. }
  77. return recordId, nil
  78. }