package service import ( "context" "errors" "fmt" "github.com/fonchain_enterprise/fonchain-approval-fork/pkg/e" "github.com/fonchain_enterprise/fonchain-approval-fork/pkg/model" "gorm.io/gorm" ) func (a *ApprovalProvider) UpdateApprovalOAUUID(_ context.Context, in *approval.UpdateApprovalOAUUIDReq) (*approval.UpdateApprovalOAUUIDResponse, error) { response := &approval.UpdateApprovalOAUUIDResponse{} approvalOA := new(model.ApprovalOA) result := model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Find(&approvalOA) if result.Error != nil { if result.Error != gorm.ErrRecordNotFound { return response, errors.New(e.GetMsg(e.ApprovalIsNotExist)) } return response, result.Error } if model.GetOaType(in.ApplyType) == "leave" { approvalOA.Leave.UUID = in.UUID fmt.Println("oa apply UUID is :", in.UUID) fmt.Println("approvalOA UUID is :", approvalOA.Leave.UUID) model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leave", approvalOA.Leave) } else if model.GetOaType(in.ApplyType) == "outWork" { approvalOA.OutWork.UUID = in.UUID model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("out_work", approvalOA.OutWork) } else if model.GetOaType(in.ApplyType) == "makeUp" { approvalOA.MakeUp.UUID = in.UUID model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("make_up", approvalOA.MakeUp) } else if model.GetOaType(in.ApplyType) == "turnover" { approvalOA.Turnover.UUID = in.UUID model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("turnover", approvalOA.Turnover) } else if model.GetOaType(in.ApplyType) == "overTime" { approvalOA.OverTime.UUID = in.UUID model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("over_time", approvalOA.OverTime) } else if model.GetOaType(in.ApplyType) == "leaveApply" { approvalOA.LeaveApply.UUID = in.UUID model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leave_apply", approvalOA.LeaveApply) } return response, nil }