48 lines
2.2 KiB
Go
48 lines
2.2 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
"github.com/fonchain_enterprise/fonchain-approval-fork/api/approval"
|
|
"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
|
|
}
|