Blame view

utils/utils.go 1.02 KB
3592dfd3   zhangqijia   重构models, 索引唯一索引
1
2
3
4
5
6
7
  package utils
  
  import (
  	"reflect"
  	"strings"
  )
  
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
8
  func GetSchemaType(schema interface{}) reflect.Type  {
1584eb4b   zhangqijia   修复创建唯一索引的bug
9
10
11
12
  	s := reflect.TypeOf(schema)
  	if s.Kind() == reflect.Ptr {
  		s = reflect.TypeOf(schema).Elem()
  	}
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
13
14
  	return s
  }
1584eb4b   zhangqijia   修复创建唯一索引的bug
15
  
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
16
17
  func GetCollName(schema interface{}) string {
  	return strings.ToLower(GetSchemaType(schema).Name())
1584eb4b   zhangqijia   修复创建唯一索引的bug
18
  }
3592dfd3   zhangqijia   重构models, 索引唯一索引
19
  
1584eb4b   zhangqijia   修复创建唯一索引的bug
20
  func GetPriKey(schema interface{}) string {
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
21
22
  	s := GetSchemaType(schema)
  
1584eb4b   zhangqijia   修复创建唯一索引的bug
23
24
25
26
27
28
29
30
31
32
33
  	var pri string
  	for i := 0; i < s.NumField(); i++ {
  		if s.Field(i).Tag.Get("pri") == "1" {
  			pri = strings.ToLower(s.Field(i).Name)
  			break
  		}
  	}
  	return pri
  }
  
  func FindIndex(schema interface{}) (string, []string){
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
34
  	s := GetSchemaType(schema)
1584eb4b   zhangqijia   修复创建唯一索引的bug
35
36
  
  	var index []string
3592dfd3   zhangqijia   重构models, 索引唯一索引
37
38
39
40
41
42
  	for i := 0; i < s.NumField(); i++ {
  		if s.Field(i).Tag.Get("index") != "" {
  			js := strings.Split(s.Field(i).Tag.Get("json"), ",")
  			if len(js) == 0 {
  				continue
  			}
1584eb4b   zhangqijia   修复创建唯一索引的bug
43
  			index = append(index, js[0])
3592dfd3   zhangqijia   重构models, 索引唯一索引
44
45
  		}
  	}
1584eb4b   zhangqijia   修复创建唯一索引的bug
46
  	return strings.ToLower(s.Name()), index
11abbdea   zhangqijia   csv 读取加载
47
48
49
50
51
52
53
54
55
  }
  
  func GetIdxBySlice(s []interface{}, i interface{}) (int){
  	for idx, v := range s {
  		if v ==  i {
  			return idx
  		}
  	}
  	return -1
3592dfd3   zhangqijia   重构models, 索引唯一索引
56
  }