package service import ( "context" "fmt" "youngee_m_api/db" "youngee_m_api/model/http_model" "github.com/sirupsen/logrus" ) var ProjectPay *projectPay type projectPay struct { } func (*projectPay) Pay(ctx context.Context, projectPay http_model.ProjectPayRequest, enterpriseID string) (*int64, error) { // 修改企业账户金额 balance, err := db.UpdateEnterpriseBalance(ctx, enterpriseID, 0, -projectPay.PaySum, projectPay.PaySum) if err != nil { logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateEnterpriseBalance error,err:%+v", err) return nil, err } // 修改项目状态为执行中 err = db.UpdateProjectStatus(ctx, projectPay.ProjectID, 9) if err != nil { logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateEnterpriseBalance error,err:%+v", err) return nil, err } // 插入支付记录 recordId, err1 := db.CreatePayRecord(ctx, enterpriseID, projectPay.PaySum, *balance, 2, projectPay.ProjectID) if err1 != nil { logrus.WithContext(ctx).Errorf("[projectPay service] call CreatePayRecord error,err:%+v", err) return nil, err1 } // 支付更新任务状态 _, err2 := db.GetProjectDetail(ctx, projectPay.ProjectID) if err2 != nil { logrus.WithContext(ctx).Errorf("[project service] call GetPorjectDetail error,err:%+v", err) return nil, err2 } err = db.UpdateTaskSelectAtByProjectId(ctx, projectPay.ProjectID, 2) if err != nil { logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err) return nil, err } err = db.UpdateTaskStageByProjectId(ctx, projectPay.ProjectID, 2, 4) if err != nil { logrus.WithContext(ctx).Errorf("[projectPay service] call UpdateTaskStatusPaying error,err:%+v", err) return nil, err } // 插入消息-任务申请成功 taskIds, err := db.GetTaskIds(ctx, projectPay.ProjectID) // 获取任务id列表 if err != nil { logrus.WithContext(ctx).Errorf("[projectPay service] call GetTaskIds error,err:%+v", err) return nil, err } fmt.Printf("taskIds: %+v", taskIds) for _, taskId := range taskIds { err = db.CreateMessageByTaskId(ctx, 1, 1, taskId) // 插入消息 if err != nil { logrus.WithContext(ctx).Errorf("[projectPay service] call CreateMessageByTaskId error,err:%+v", err) return nil, err } } return recordId, nil }