package calc import ( "zhiyuan/pkg/db" "github.com/gin-gonic/gin" ) type Property struct { ID int64 `json:"id" prop:"add:false"` CalcId int64 `json:"calcId" type:"int" prop:"add" search:"="` ItemId int64 `json:"itemId" type:"int" prop:"add" search:"="` Name string `json:"name" label:"属性名称" type:"string" prop:"add edit" search:"like"` Type int64 `json:"type" label:"属性类型" type:"int" prop:"add edit" search:"="` DataType string `json:"data_type" label:"数据类型" type:"string" prop:"add edit" search:"="` Value string `json:"value" label:"属性值" type:"string" prop:"edit" search:"="` Unit string `json:"unit" label:"单位" type:"string" prop:"edit" search:"="` State int64 `json:"state" label:"状态" type:"int" prop:"edit" default:"0"` 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 (Property) TableName() string { return "zy_calc_property" } func (Property) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool { return true } func (Property) OnePrivilege(c *gin.Context, id int64) bool { return true } func (Property) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error { return nil } func (Property) EditPrivilege(c *gin.Context, id int64, data map[string]interface{}, post map[string]interface{}) error { return nil } func (Property) DelPrivilege(c *gin.Context, id int64) error { return nil } func (Property) OrderField() string { return "order_at" } func (Property) Page() bool { return true } func (Property) Count() bool { return true } func findProps(itemId int64, list []Property) []Property { props := make([]Property, 0) for _, v := range list { if v.ItemId == itemId { props = append(props, v) } } return props } func CopyPropertys(props []Property, calcId int64, itemId int64, order int64) error { for i, prop := range props { _, err := prop.Copy(prop.Name, calcId, itemId, order+int64(len(props)-i)) if err != nil { return err } } return nil } func (model Property) Copy(name string, calcId int64, itemId int64, order int64) (int64, error) { id, err := db.InsertModel(db.Type(model), map[string]interface{}{ "calcId": calcId, "itemId": itemId, "name": name, "type": model.Type, "data_type": model.DataType, "value": model.Value, "unit": model.Unit, "state": model.State, "order_at": order, }) if err != nil { return 0, err } return id, nil }