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 }