package budget import ( "zhiyuan/pkg/db" "github.com/gin-gonic/gin" ) type Header struct { ID int64 `json:"id" prop:"add:false"` QuoteId int64 `json:"quoteId" type:"int" prop:"add" search:"="` TableId int64 `json:"tableId" type:"int" prop:"add" search:"="` Name string `json:"name" label:"名称值" type:"string" prop:"add edit" search:"like"` Value string `json:"value" label:"计算值" type:"string" prop:"edit"` OrderAt int64 `json:"order_at" prop:"add:false select:false"` DeletedAt int64 `json:"deleted_at" prop:"add:false select:false"` CreatedAt int64 `json:"created_at" prop:"add:false select:false"` UpdatedAt int64 `json:"updated_at" prop:"add:false select:false"` db.BaseModel } func (Header) TableName() string { return "zy_budget_header" } func (Header) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool { return true } func (Header) OnePrivilege(c *gin.Context, id int64) bool { return true } func (Header) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error { return nil } func (Header) EditPrivilege(c *gin.Context, id int64, data map[string]interface{}, post map[string]interface{}) error { return nil } func (Header) DelPrivilege(c *gin.Context, id int64) error { return nil } func (Header) OrderField() string { return "order_at" } func (Header) Page() bool { return false } func (Header) Count() bool { return false } func (model Header) GetID() int64 { return model.ID } func (model Header) GetProp(name string) (string, bool) { return "", false } func (model Header) GetSubs() *[]QuoteData { return nil } func (model Header) GetName() string { return model.Name } func (model Header) GetHeaders() *[]QuoteData { return nil } func (model Header) GetItem() *Item { return nil } func (model Header) GetValue() string { return model.Value } func (model Header) GetQuote() *Quote { return nil } func (model Header) GetTable() *Table { return nil } func (model Header) GetHeader() *Header { return &model } func (model Header) GetModule() *Module { return nil } func (model Header) GetGroup() *Group { return nil } func (model Header) GetRow() *Row { return nil } func (model Header) GetMyItem() *Item { return nil } func CopyHeaders(datas []QuoteData, quoteId int64, tableId int64, order int64) error { for i, data := range datas { _, err := data.GetHeader().Copy(quoteId, tableId, order+int64(len(datas)-i)) if err != nil { return err } } return nil } func findHeaders(tableId int64, list []Header) []QuoteData { headers := make([]QuoteData, 0) for _, v := range list { if v.TableId == tableId { headers = append(headers, v) } } return headers } func (model Header) Copy(quoteId int64, tableId int64, order int64) (int64, error) { id, err := db.InsertModel(db.Type(model), map[string]interface{}{ "quoteId": quoteId, "tableId": tableId, "name": model.Name, "value": model.Value, "order_at": order, }) if err != nil { return 0, err } return id, nil }