project_pay.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package service
  2. import (
  3. "context"
  4. "youngee_b_api/db"
  5. "youngee_b_api/model/http_model"
  6. "github.com/issue9/conv"
  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 int64) (*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, conv.MustInt64(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, conv.MustInt64(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, conv.MustInt64(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. if project.ProjectForm != 4 {
  38. err = db.UpdateTaskStage(ctx, conv.MustInt64(projectPay.ProjectID), 2, 5)
  39. if err != nil {
  40. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  41. return nil, err
  42. }
  43. } else {
  44. if project.ContentType == 1 {
  45. err = db.UpdateTaskStage(ctx, conv.MustInt64(projectPay.ProjectID), 2, 11) //修改为待传初稿
  46. if err != nil {
  47. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  48. return nil, err
  49. }
  50. } else {
  51. err = db.UpdateTaskStage(ctx, conv.MustInt64(projectPay.ProjectID), 2, 8) //修改为待传脚本
  52. if err != nil {
  53. logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err)
  54. return nil, err
  55. }
  56. }
  57. }
  58. return recordId, nil
  59. }