package main

import (
	"fmt"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	"github.com/bwmarrin/snowflake"
	"net"
	"os"
	"service/bizcommon/util"
	"service/library/configcenter"
	"service/library/redis"
	"strconv"
	"strings"
)

type A struct {
	Mid int `json:"mid"`
}
type B struct {
	Mid int `json:"mid"`
}

type C struct {
	*A `json:"*_a"`
	*B
}

func main() {
	numbers := []float64{12.9, 99.9}

	for _, number := range numbers {
		rounded := util.RoundUp(number)
		fmt.Printf("%.1f -> %d\n", number, rounded)
	}

	return

	c := C{
		A: &A{Mid: 111},
		B: &B{Mid: 222},
	}
	fmt.Println(util.ToJson(c))
	return

	//fmt.Println(util.StringToMd5(""))

	i, _ := strconv.ParseInt("1734551562589581312"[:13], 10, 64)
	fmt.Println(i)

	n, _ := snowflake.NewNode(6)
	fmt.Println(n.Generate().Time())

	fmt.Println(GetIp())
}

func GetIp() string {
	addrs, err := net.InterfaceAddrs()
	if err != nil {
		fmt.Println(err)
		return "127.0.0.1"
	}
	retIp := ""
	for _, address := range addrs {
		// 检查ip地址判断是否回环地址
		if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
			if ipnet.IP.To4() != nil {
				ip := ipnet.IP.String()
				if strings.HasPrefix(ip, "172.") {
					retIp = ip
					break
				}
			}
		}
	}
	return retIp
}
func UploadImage() {
	// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
	// yourAccessKeyId以及yourAccessKeySecret分别填写从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
	// yourSecurityToken填写从STS服务获取的安全令牌(SecurityToken)。
	client, err := oss.New(
		"https://oss-cn-beijing.aliyuncs.com",
		"LTAI5tAkZof9AYoVzRGirqjo",
		"dcSV0hceaoes3Xb5gCWfrrV8hvjAMj",
	)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 填写存储空间名称,例如examplebucket。
	bucket, err := client.Bucket("wishpal-media")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	fmt.Println(bucket.BucketName)

	// put
	absPath := "/Users/erwin/Desktop/banner.png"
	//bytes, err := ioutil.ReadFile(absPath)
	//if err != nil {
	//	fmt.Println("Error:", err)
	//	os.Exit(-1)
	//}

	key := "test/raw/banner"
	err = bucket.PutObjectFromFile(key, absPath)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}

func ConnRedis() {
	cfg := &configcenter.RedisConfig{
		Uri:         "",
		Password:    "",
		MaxActive:   0,
		MaxIdle:     0,
		IdleTimeout: 0,
		Prefix:      "tttaaa",
	}
	cli, err := redis.NewRedisClient(cfg)
	if err != nil {
		fmt.Printf("err: %v", err)
		return
	}
	cli.Set("jack", "1", 60*5)
}