project_pay.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package service
  2. import (
  3. "context"
  4. "youngee_b_api/db"
  5. "youngee_b_api/model/http_model"
  6. "github.com/sirupsen/logrus"
  7. )
  8. var ProjectPay *projectPay
  9. type projectPay struct {
  10. }
  11. func (*projectPay) Pay(ctx context.Context, projectPay http_model.ProjectPayRequest, enterpriseID string) (*int64, error) {
  12. // 修改企业账户金额
  13. balance, err := db.UpdateEnterpriseBalance(ctx, enterpriseID, 0, -projectPay.PaySum, projectPay.PaySum)
  14. if err != nil {
  15. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateEnterpriseBalance error,err:%+v", err)
  16. return nil, err
  17. }
  18. // 修改项目状态为执行中
  19. err = db.UpdateProjectStatus(ctx, projectPay.ProjectID, 9)
  20. if err != nil {
  21. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateEnterpriseBalance error,err:%+v", err)
  22. return nil, err
  23. }
  24. // 插入支付记录
  25. recordId, err1 := db.CreatePayRecord(ctx, enterpriseID, projectPay.PaySum, *balance, 2, projectPay.ProjectID)
  26. if err1 != nil {
  27. logrus.WithContext(ctx).Errorf("[projectPay service] call CreatePayRecord error,err:%+v", err)
  28. return nil, err1
  29. }
  30. // 支付更新任务状态
  31. project, err2 := db.GetProjectDetail(ctx, projectPay.ProjectID)
  32. if err2 != nil {
  33. logrus.WithContext(ctx).Errorf("[project service] call GetPorjectDetail error,err:%+v", err)
  34. return nil, err2
  35. }
  36. err = db.UpdateTaskSelectAtByProjectId(ctx, projectPay.ProjectID, 2)
  37. if err != nil {
  38. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  39. return nil, err
  40. }
  41. if project.ProjectForm != 4 {
  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. } else {
  48. if project.ContentType == 1 {
  49. err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 9) //修改为待传初稿
  50. if err != nil {
  51. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  52. return nil, err
  53. }
  54. } else {
  55. err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 7) //修改为待传脚本
  56. if err != nil {
  57. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  58. return nil, err
  59. }
  60. }
  61. }
  62. return recordId, nil
  63. }