2025-03-21 11:05:42 +08:00

84 lines
1.4 KiB
Go

package util
import (
"net/url"
"strconv"
"time"
"github.com/jackc/pgx/v5/pgtype"
)
func DefaultStartTimeAndEndTime(start string, end string) (string, string) {
if len(start) == 0 {
start = "2000-01-01 00:00:00"
}
if len(end) == 0 {
end = time.Now().Add(time.Hour * 24).Format(time.DateTime)
}
return start, end
}
func DefaultString(values url.Values, key, defaultValue string) string {
v := values.Get(key)
if len(v) == 0 {
return defaultValue
}
return v
}
func DefaultInt(values url.Values, key string, defaultValue int) int {
v := values.Get(key)
if len(v) == 0 {
return defaultValue
}
i, err := strconv.Atoi(v)
if err != nil {
return defaultValue
}
return i
}
func ConvertInt16(value string, defaultValue int16) int16 {
i, err := strconv.Atoi(value)
if err != nil {
return defaultValue
}
return int16(i)
}
func ConvertInt32(value string, defaultValue int32) int32 {
i, err := strconv.Atoi(value)
if err != nil {
return defaultValue
}
return int32(i)
}
func ConvertBool(value string, defaultValue bool) bool {
b, err := strconv.ParseBool(value)
if err != nil {
return defaultValue
}
return b
}
func ConvertInt[T int | int16 | int32 | int64](value string, defaultValue T) T {
i, err := strconv.Atoi(value)
if err != nil {
return defaultValue
}
return T(i)
}
func PgtypeNumericToFloat64(num pgtype.Numeric) float64 {
f1, _ := num.Float64Value()
f2, _ := f1.Value()
return f2.(float64)
}