gorm mysql bool字段处理
·
表字段 bit(1)
package basemodel
import (
"database/sql/driver"
"fmt"
"strconv"
)
type BitField bool
func (t *BitField) MarshalJSON() ([]byte, error) {
var value bool
if *t {
value = true
} else {
value = false
}
return []byte(strconv.FormatBool(value)), nil
}
func (t *BitField) UnmarshalJSON(data []byte) error {
if string(data) == "null" {
return nil
}
b, _ := strconv.ParseBool(string(data))
if b {
*t = true
} else {
*t = false
}
return nil
}
func (t *BitField) Value() (driver.Value, error) {
if *t {
return true, nil
}
return false, nil
}
func (t *BitField) Scan(v interface{}) error {
value, ok := v.([]byte)
if ok {
if value[0] == 0x01 {
*t = true
} else {
*t = false
}
return nil
}
return fmt.Errorf("can not convert %v to timestamp", v)
}
使用
type DepartmentParams struct {
/* */
Id *int32 `gorm:"column:id;type:int(11);PRIMARY_KEY;comment:''" json:"id"`
/* 编码 */
Code *string `gorm:"column:code;type:varchar(32);comment:'编码';default:\'none\'" json:"code"`
/* 部门名称 */
Name *string `gorm:"column:name;type:varchar(32);comment:'部门名称'" json:"name"`
/* */
ParentId *int32 `gorm:"column:parent_id;type:int(11);comment:''" json:"parent_id"`
/* */
DepPath *string `gorm:"column:dep_path;type:varchar(255);comment:''" json:"dep_path"`
/* */
Enabled *basemodel.BitField `gorm:"column:enabled;type:bit(1);comment:''" json:"enabled"`
/* */
IsParent *int8 `gorm:"column:is_parent;type:tinyint(1);comment:'';default:0" json:"is_parent"`
/* 负责人 */
MngrId *int32 `gorm:"column:mngr_id;type:int(11);comment:'负责人';default:0" json:"mngr_id"`
/* 0-部门 1-班组 */
Type *int32 `gorm:"column:type;type:int(11);comment:'0-部门 1-班组';default:0" json:"type"`
}更多推荐



所有评论(0)