123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- 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
- }
|