代码拉取完成,页面将自动刷新
package enums
import (
"bytes"
"fmt"
"gitee.com/xlizy/common-go/base/models"
"gitee.com/xlizy/common-go/utils/json"
"reflect"
"strconv"
)
type BaseValEnum struct {
Enum string `json:"enum"`
Val int `json:"val"`
Des string `json:"des"`
}
func SelectOptions[T any](enums []T) []models.SelectOptions {
res := make([]models.SelectOptions, 0)
for _, enumVal := range enums {
b := reflect.ValueOf(enumVal).MethodByName("MarshalJSON").Call(nil)[0]
be := BaseValEnum{}
json.ToObj(fmt.Sprintf("%s", b), &be)
res = append(res, models.SelectOptions{Value: be.Val, Desc: be.Des})
}
return res
}
func JsonObj(val int, enum string, des string) ([]byte, error) {
var buf bytes.Buffer
str := "{\"val\":" + strconv.Itoa(val) + ",\"enum\":\"" + enum + "\",\"des\":\"" + des + "\"}"
//_, err := buf.WriteString(json.ToJsonStr(BaseValEnum{Val: val, Enum: enum, Des: des}))
_, err := buf.WriteString(str)
return buf.Bytes(), err
}
func BE(val any) BaseValEnum {
b := reflect.ValueOf(val).MethodByName("MarshalJSON").Call(nil)[0]
be := BaseValEnum{}
json.ToObj(fmt.Sprintf("%s", b), &be)
return be
}
func UnmarshalEnum(value []byte) int {
valueStr := string(value)
val, err := strconv.Atoi(valueStr)
if err != nil {
bve := BaseValEnum{}
json.ToObj(string(value), &bve)
return bve.Val
} else {
return val
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。