Blame view

utils/utils.go 967 Bytes
3592dfd3   zhangqijia   重构models, 索引唯一索引
1
2
3
4
5
6
7
  package utils
  
  import (
  	"reflect"
  	"strings"
  )
  
1584eb4b   zhangqijia   修复创建唯一索引的bug
8
9
10
11
12
13
14
15
  func GetCollName(schema interface{}) string {
  	s := reflect.TypeOf(schema)
  	if s.Kind() == reflect.Ptr {
  		s = reflect.TypeOf(schema).Elem()
  	}
  
  	return strings.ToLower(s.Name())
  }
3592dfd3   zhangqijia   重构models, 索引唯一索引
16
  
1584eb4b   zhangqijia   修复创建唯一索引的bug
17
  func GetPriKey(schema interface{}) string {
3592dfd3   zhangqijia   重构models, 索引唯一索引
18
  	s := reflect.TypeOf(schema)
1584eb4b   zhangqijia   修复创建唯一索引的bug
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  	if s.Kind() == reflect.Ptr {
  		s = reflect.TypeOf(schema).Elem()
  	}
  	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){
  	s := reflect.TypeOf(schema)
  	if s.Kind() == reflect.Ptr {
  		s = reflect.TypeOf(schema).Elem()
  	}
  
  	var index []string
3592dfd3   zhangqijia   重构models, 索引唯一索引
39
40
41
42
43
44
  	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
45
  			index = append(index, js[0])
3592dfd3   zhangqijia   重构models, 索引唯一索引
46
47
  		}
  	}
1584eb4b   zhangqijia   修复创建唯一索引的bug
48
  	return strings.ToLower(s.Name()), index
3592dfd3   zhangqijia   重构models, 索引唯一索引
49
  }