github.com/unionj-cloud/go-doudou@v1.3.8-0.20221011095552-0088008e5b31/cmd/internal/svc/testdata/vo/vo.go (about)

     1  package vo
     2  
     3  import "encoding/json"
     4  
     5  //go:generate go-doudou name --file $GOFILE -o
     6  
     7  // 筛选条件
     8  type PageFilter struct {
     9  	// 真实姓名,前缀匹配
    10  	Name string
    11  	// 所属部门ID
    12  	Dept int
    13  }
    14  
    15  //排序条件
    16  type Order struct {
    17  	Col  string
    18  	Sort string
    19  }
    20  
    21  type Page struct {
    22  	// 排序规则
    23  	Orders []Order
    24  	// 页码
    25  	PageNo int
    26  	// 每页行数
    27  	Size int
    28  	User UserVo
    29  }
    30  
    31  // 分页筛选条件
    32  type PageQuery struct {
    33  	Filter PageFilter
    34  	Page   Page
    35  }
    36  
    37  type PageRet struct {
    38  	Items    interface{}
    39  	PageNo   int
    40  	PageSize int
    41  	Total    int
    42  	HasNext  bool
    43  }
    44  
    45  type UserVo struct {
    46  	Id    int
    47  	Name  string
    48  	Phone string
    49  	Dept  string
    50  }
    51  
    52  type KeyboardLayout int
    53  
    54  const (
    55  	UNKNOWN KeyboardLayout = iota
    56  	QWERTZ
    57  	AZERTY
    58  	QWERTY
    59  )
    60  
    61  func (k *KeyboardLayout) StringSetter(value string) {
    62  	switch value {
    63  	case "UNKNOWN":
    64  		*k = UNKNOWN
    65  	case "QWERTY":
    66  		*k = QWERTY
    67  	case "QWERTZ":
    68  		*k = QWERTZ
    69  	case "AZERTY":
    70  		*k = AZERTY
    71  	default:
    72  		*k = UNKNOWN
    73  	}
    74  }
    75  
    76  func (k *KeyboardLayout) StringGetter() string {
    77  	switch *k {
    78  	case UNKNOWN:
    79  		return "UNKNOWN"
    80  	case QWERTY:
    81  		return "QWERTY"
    82  	case QWERTZ:
    83  		return "QWERTZ"
    84  	case AZERTY:
    85  		return "AZERTY"
    86  	default:
    87  		return "UNKNOWN"
    88  	}
    89  }
    90  
    91  func (k *KeyboardLayout) UnmarshalJSON(bytes []byte) error {
    92  	var _k string
    93  	err := json.Unmarshal(bytes, &_k)
    94  	if err != nil {
    95  		return err
    96  	}
    97  	k.StringSetter(_k)
    98  	return nil
    99  }
   100  
   101  func (k KeyboardLayout) MarshalJSON() ([]byte, error) {
   102  	return json.Marshal(k.StringGetter())
   103  }