package util

import (
	"bytes"
	"io/ioutil"

	"golang.org/x/text/encoding/simplifiedchinese"
	"golang.org/x/text/transform"
)

type Arr []string

func (a Arr) Len() int { return len(a) }
func (a Arr) Less(i, j int) bool {
	tmp1, _ := UTF82GBK(a[i])
	tmp2, _ := UTF82GBK(a[j])
	tmp2Len := len(tmp2)
	for idx, chr := range tmp1 {
		if idx > tmp2Len-1 {
			return false
		}
		if chr != tmp2[idx] {
			return chr < tmp2[idx]
		}
	}
	return true
}
func (a Arr) Swap(i, j int) { a[i], a[j] = a[j], a[i] }

func UTF82GBK(src string) ([]byte, error) {
	GB18030 := simplifiedchinese.All[0]
	return ioutil.ReadAll(transform.NewReader(bytes.NewReader([]byte(src)), GB18030.NewEncoder()))
}

// func main() {
// 	tmp := Arr{"项目名称", "winner", "省份", "项目编号", "城市", "公告二级", "区县", "项目规模 ", "项目范围", "预算", "中标金额", "采购单位", "采购联系人 ", "中标电话 ", "中标地址 ", "竣工日期 ", "工期时长 ", "工期单位 ", "项目周期（服务周期） ", "评审专家 ", "招标文件购买金额 ", "投标保证金-是否支持保函", "ppp项目", "是否支持保函", "标的物", "多包", "中标候选人"}
// 	sort.Sort(tmp)
// 	fmt.Println(tmp)
// }
