package model import ( "database/sql/driver" "encoding/json" "github.com/fonchain_enterprise/fonchain-approval/api/approval" "gorm.io/plugin/soft_delete" "time" ) type CopyUser struct { ID uint64 Name string IsViewed uint64 } type CopyUsers []CopyUser // DepartmentApprovalSetting 部门抄送人设置 type DepartmentApprovalSetting struct { ID uint64 `gorm:"primaryKey;column:id" json:"id"` // ID DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除标记 CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 DepartmentID uint64 `gorm:"column:department_id" json:"departmentId"` // 绑定的部门ID CopyUsers CopyUsers `gorm:"column:copy_users" json:"copyUsers"` // 抄送人 ApproverID uint64 `gorm:"column:approver_id" json:"approverId"` // 审批人ID ApproverName string `gorm:"column:approver_name" json:"approverName"` // 审批人名称 Domain string `gorm:"column:domain" json:"domain"` // 环境env } // TableName get sql table name.获取数据库表名 func (m *DepartmentApprovalSetting) TableName() string { return "department_approval_setting" } type JSON json.RawMessage func (j *CopyUsers) Scan(src interface{}) error { return json.Unmarshal(src.([]byte), j) } func (j CopyUsers) Value() (driver.Value, error) { v, err := json.Marshal(j) return string(v), err } func FormatCopyUsers(copyUsers []*approval.CopyUser) CopyUsers { var res CopyUsers // copyer for _, copyUser := range copyUsers { temp := CopyUser{ ID: copyUser.ID, Name: copyUser.Name, } res = append(res, temp) } return res } func FormatToResponse(copyUsers CopyUsers) []*approval.CopyUser { var res []*approval.CopyUser for _, copyUser := range copyUsers { temp := &approval.CopyUser{ ID: copyUser.ID, Name: copyUser.Name, } res = append(res, temp) } return res } // DepartmentApprovalSettingColumns get sql column name.获取数据库列名 var DepartmentApprovalSettingColumns = struct { ID string DeletedAt string CreatedAt string UpdatedAt string DepartmentID string CopyUsers string ApproverID string ApproverName string Domain string }{ ID: "id", DeletedAt: "deleted_at", CreatedAt: "created_at", UpdatedAt: "updated_at", DepartmentID: "department_id", CopyUsers: "copy_users", ApproverID: "approver_id", ApproverName: "approver_name", Domain: "domain", }