fonchain-approval-fork/pkg/serializer/approval.go
gy 130a73bf70 feat 多级审批
feat 审批类型
2022-08-16 18:45:28 +08:00

78 lines
1.9 KiB
Go

package serializer
import (
"github.com/fonchain_enterprise/fonchain-approval/api/approval"
"github.com/fonchain_enterprise/fonchain-approval/pkg/model"
)
//BuildApproval 处理单个detail返回
func BuildApproval(entity *model.Approval, userId uint64) *approval.CreateRequest {
var work *approval.Work
var show *approval.Show
var exhibition *approval.Exhibition
var bundle *approval.Bundle
var workFlows []*approval.WorkFlow
isViewed := false
canApproval := false
copyUsers := model.FormatToResponse(entity.CopyUsers)
for _, cu := range copyUsers {
if userId != 0 && cu.ID == userId && cu.IsViewed == true {
isViewed = true
}
}
for _, tt := range entity.ApprovalWorkFlows {
temp := &approval.WorkFlow{
ID: tt.ID,
UserID: tt.UserId,
Name: tt.Name,
Level: uint64(tt.Level),
Status: uint64(tt.Status),
Reply: tt.Reply,
OperatedAt: entity.CreatedAt.Format("2006-01-02 15:04:05"),
}
workFlows = append(workFlows, temp)
}
if entity.Status == model.StatusDoing && entity.NowUserId == userId {
canApproval = true
}
response := &approval.CreateRequest{
ID: entity.ID,
Domain: *entity.Domain,
Status: approval.StatusType(uint64(entity.Status)),
Type: entity.Type,
CopyUsers: copyUsers,
SubmitterID: entity.SubmitterID,
SubmitterName: entity.SubmitterName,
Content: entity.Content,
IsViewed: isViewed,
CanApproval: canApproval,
WorkFlows: workFlows,
Reply: entity.Reply,
Work: work,
Show: show,
Exhibition: exhibition,
Bundle: bundle,
}
_ = entity.SetResContent(response)
return response
}
//BuildApprovals 处理单个detail返回
func BuildApprovals(list []*model.Approval, userId uint64) (details []*approval.CreateRequest) {
for _, item := range list {
temp := BuildApproval(item, userId)
details = append(details, temp)
}
return details
}