package main import ( "log" "reflect" "sort" "time" ) var DateTimeSelect = []string{"bidopentime", "bidendtime", "signaturedate", "comeintime"} // 项目中的字段 var FIELDS = []string{ "area", "city", "district", "projectname", "projectcode", "buyer", "buyerclass", "buyerperson", "buyertel", //"winner", //"winnerperson", //"winnertel", "agency", "agencyperson", "agencytel", "budget", "bidamount", "tagname", "tagname_2", "tagname_3", } // 招标信息字段 var INFOFIELDS = []string{ "projectname", "projectcode", "title", "publishtime", "comeintime", "bidopentime", "toptype", "subtype", "buyer", "buyerclass", "agency", "agencyperson", "agencytel", "winner", "winnertel", "winnerperson", "budget", "bidamount", "buyerperson", "buyertel", "area", "city", "district", } var bidstatus = map[string]string{ "预告": "预告", "中标": "中标", "成交": "成交", "废标": "废标", "流标": "流标", "合同": "合同", } var bidtype = map[string]string{ "招标": "招标", "邀标": "邀标", "询价": "询价", "单一": "单一", "竞价": "竞价", "竞谈": "竞谈", } func Duplicate(a interface{}) (ret []interface{}) { va := reflect.ValueOf(a) for i := 0; i < va.Len(); i++ { if i > 0 && reflect.DeepEqual(va.Index(i-1).Interface(), va.Index(i).Interface()) { continue } ret = append(ret, va.Index(i).Interface()) } return ret } // 二分字符串查找 func BinarySearch(s []string, k string) int { sort.Strings(s) lo, hi := 0, len(s)-1 for lo <= hi { m := (lo + hi) >> 1 if s[m] < k { lo = m + 1 } else if s[m] > k { hi = m - 1 } else { return m } } return -1 } // 从数组中删除元素 func deleteSlice(arr []string, v, stype string) []string { for k, v1 := range arr { if v1 == v { ts := time.Now().Unix() arr = append(arr[:k], arr[k+1:]...) rt := time.Now().Unix() - ts if rt > 0 { log.Println("deleteSlice", stype, rt, v, len(arr)) } return arr } } return arr }