diff --git a/LICENSE b/LICENSE index 96e642d..7e66046 100644 --- a/LICENSE +++ b/LICENSE @@ -7,17 +7,17 @@ AND DISTRIBUTION 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of that document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. @@ -26,31 +26,31 @@ or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by that License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, @@ -59,7 +59,7 @@ original work of authorship. For the purposes of that License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative @@ -74,7 +74,7 @@ for the purpose of discussing and improving the Work, but excluding communicatio that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated @@ -142,7 +142,7 @@ any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. -6. Trademarks. This License does not grant permission to use the trade names, +6. Trademarks. that License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. diff --git a/application.go b/application.go index dfdf580..4b5c85d 100644 --- a/application.go +++ b/application.go @@ -1,11 +1,11 @@ package hotime import ( - . "./cache" - "./code" - . "./common" - . "./db" - . "./log" + . "code.hoteas.com/golang/hotime/cache" + "code.hoteas.com/golang/hotime/code" + . "code.hoteas.com/golang/hotime/common" + . "code.hoteas.com/golang/hotime/db" + . "code.hoteas.com/golang/hotime/log" "database/sql" "github.com/sirupsen/logrus" "io" @@ -30,7 +30,7 @@ type Application struct { WebConnectLog *logrus.Logger Port string //端口号 TLSPort string //ssl访问端口号 - connectListener []func(this *Context) bool //所有的访问监听,true按原计划继续使用,false表示有监听器处理 + connectListener []func(that *Context) bool //所有的访问监听,true按原计划继续使用,false表示有监听器处理 connectDbFunc func(err ...*Error) (master, slave *sql.DB) configPath string Config Map @@ -258,12 +258,12 @@ func (that *Application) SetConfig(configPath ...string) { } // SetConnectListener 连接判断,返回true继续传输至控制层,false则停止传输 -func (that *Application) SetConnectListener(lis func(this *Context) bool) { +func (that *Application) SetConnectListener(lis func(that *Context) bool) { that.connectListener = append(that.connectListener, lis) } //网络错误 -//func (this *Application) session(w http.ResponseWriter, req *http.Request) { +//func (that *Application) session(w http.ResponseWriter, req *http.Request) { // //} diff --git a/cache/cache.go b/cache/cache.go index 39ed1e6..1462518 100644 --- a/cache/cache.go +++ b/cache/cache.go @@ -1,7 +1,7 @@ package cache import ( - . "../common" + . "code.hoteas.com/golang/hotime/common" "errors" ) diff --git a/cache/cache_db.go b/cache/cache_db.go index 3c9b983..40158a1 100644 --- a/cache/cache_db.go +++ b/cache/cache_db.go @@ -1,7 +1,7 @@ package cache import ( - . "../common" + . "code.hoteas.com/golang/hotime/common" "database/sql" "encoding/json" "strings" @@ -30,14 +30,14 @@ type CacheDb struct { isInit bool } -func (this *CacheDb) GetError() *Error { +func (that *CacheDb) GetError() *Error { - return this.Error + return that.Error } -func (this *CacheDb) SetError(err *Error) { - this.Error = err +func (that *CacheDb) SetError(err *Error) { + that.Error = err } func (that *CacheDb) initDbTable() { diff --git a/cache/cache_memory.go b/cache/cache_memory.go index 5dfa965..75e87c5 100644 --- a/cache/cache_memory.go +++ b/cache/cache_memory.go @@ -1,7 +1,7 @@ package cache import ( - . "../common" + . "code.hoteas.com/golang/hotime/common" "strings" "sync" "time" @@ -17,47 +17,47 @@ type CacheMemory struct { mutex *sync.RWMutex } -func (this *CacheMemory) GetError() *Error { +func (that *CacheMemory) GetError() *Error { - return this.Error + return that.Error } -func (this *CacheMemory) SetError(err *Error) { - this.Error = err +func (that *CacheMemory) SetError(err *Error) { + that.Error = err } //获取Cache键只能为string类型 -func (this *CacheMemory) get(key string) interface{} { - this.Error.SetError(nil) - if this.Map == nil { - this.Map = Map{} +func (that *CacheMemory) get(key string) interface{} { + that.Error.SetError(nil) + if that.Map == nil { + that.Map = Map{} } - if this.Map[key] == nil { + if that.Map[key] == nil { return nil } - data := this.Map.Get(key, this.Error).(cacheData) - if this.Error.GetError() != nil { + data := that.Map.Get(key, that.Error).(cacheData) + if that.Error.GetError() != nil { return nil } if data.time < time.Now().Unix() { - delete(this.Map, key) + delete(that.Map, key) return nil } return data.data } -func (this *CacheMemory) refreshMap() { +func (that *CacheMemory) refreshMap() { go func() { - this.mutex.Lock() - defer this.mutex.Unlock() - for key, v := range this.Map { + that.mutex.Lock() + defer that.mutex.Unlock() + for key, v := range that.Map { data := v.(cacheData) if data.time <= time.Now().Unix() { - delete(this.Map, key) + delete(that.Map, key) } } @@ -66,15 +66,15 @@ func (this *CacheMemory) refreshMap() { } //key value ,时间为时间戳 -func (this *CacheMemory) set(key string, value interface{}, time int64) { - this.Error.SetError(nil) +func (that *CacheMemory) set(key string, value interface{}, time int64) { + that.Error.SetError(nil) var data cacheData - if this.Map == nil { - this.Map = Map{} + if that.Map == nil { + that.Map = Map{} } - dd := this.Map[key] + dd := that.Map[key] if dd == nil { data = cacheData{} @@ -85,74 +85,74 @@ func (this *CacheMemory) set(key string, value interface{}, time int64) { data.time = time data.data = value - this.Map.Put(key, data) + that.Map.Put(key, data) } -func (this *CacheMemory) delete(key string) { +func (that *CacheMemory) delete(key string) { del := strings.Index(key, "*") //如果通配删除 if del != -1 { key = Substr(key, 0, del) - for k, _ := range this.Map { + for k, _ := range that.Map { if strings.Index(k, key) != -1 { - delete(this.Map, k) + delete(that.Map, k) } } } else { - delete(this.Map, key) + delete(that.Map, key) } } -func (this *CacheMemory) Cache(key string, data ...interface{}) *Obj { +func (that *CacheMemory) Cache(key string, data ...interface{}) *Obj { x := RandX(1, 100000) if x > 99950 { - this.refreshMap() + that.refreshMap() } - if this.mutex == nil { - this.mutex = &sync.RWMutex{} + if that.mutex == nil { + that.mutex = &sync.RWMutex{} } reData := &Obj{Data: nil} if len(data) == 0 { - this.mutex.RLock() - reData.Data = this.get(key) - this.mutex.RUnlock() + that.mutex.RLock() + reData.Data = that.get(key) + that.mutex.RUnlock() return reData } tim := time.Now().Unix() if len(data) == 1 && data[0] == nil { - this.mutex.Lock() - this.delete(key) - this.mutex.Unlock() + that.mutex.Lock() + that.delete(key) + that.mutex.Unlock() return reData } if len(data) == 1 { - tim = tim + this.TimeOut + tim = tim + that.TimeOut } if len(data) == 2 { - this.Error.SetError(nil) - tempt := ObjToInt64(data[1], this.Error) + that.Error.SetError(nil) + tempt := ObjToInt64(data[1], that.Error) if tempt > tim { tim = tempt - } else if this.Error.GetError() == nil { + } else if that.Error.GetError() == nil { tim = tim + tempt } } - this.mutex.Lock() - this.set(key, data[0], tim) - this.mutex.Unlock() + that.mutex.Lock() + that.set(key, data[0], tim) + that.mutex.Unlock() return reData } diff --git a/cache/cache_redis.go b/cache/cache_redis.go index 5ee4d92..d62a702 100644 --- a/cache/cache_redis.go +++ b/cache/cache_redis.go @@ -1,7 +1,7 @@ package cache import ( - . "../common" + . "code.hoteas.com/golang/hotime/common" "github.com/garyburd/redigo/redis" "strings" "time" @@ -20,65 +20,65 @@ type CacheRedis struct { *Error } -func (this *CacheRedis) GetError() *Error { +func (that *CacheRedis) GetError() *Error { - return this.Error + return that.Error } -func (this *CacheRedis) SetError(err *Error) { - this.Error = err +func (that *CacheRedis) SetError(err *Error) { + that.Error = err } //唯一标志 -func (this *CacheRedis) GetTag() int64 { +func (that *CacheRedis) GetTag() int64 { - if this.tag == int64(0) { - this.tag = time.Now().UnixNano() + if that.tag == int64(0) { + that.tag = time.Now().UnixNano() } - return this.tag + return that.tag } -func (this *CacheRedis) reCon() bool { +func (that *CacheRedis) reCon() bool { var err error - this.conn, err = redis.Dial("tcp", this.Host+":"+ObjToStr(this.Port)) + that.conn, err = redis.Dial("tcp", that.Host+":"+ObjToStr(that.Port)) if err != nil { - this.conn = nil - this.Error.SetError(err) + that.conn = nil + that.Error.SetError(err) return false } - if this.Pwd != "" { - _, err = this.conn.Do("AUTH", this.Pwd) + if that.Pwd != "" { + _, err = that.conn.Do("AUTH", that.Pwd) if err != nil { - this.conn = nil - this.Error.SetError(err) + that.conn = nil + that.Error.SetError(err) return false } } return true } -func (this *CacheRedis) del(key string) { +func (that *CacheRedis) del(key string) { del := strings.Index(key, "*") if del != -1 { - val, err := redis.Strings(this.conn.Do("KEYS", key)) + val, err := redis.Strings(that.conn.Do("KEYS", key)) if err != nil { return } - this.conn.Send("MULTI") + that.conn.Send("MULTI") for i, _ := range val { - this.conn.Send("DEL", val[i]) + that.conn.Send("DEL", val[i]) } - this.conn.Do("EXEC") + that.conn.Do("EXEC") } else { - _, err := this.conn.Do("DEL", key) + _, err := that.conn.Do("DEL", key) if err != nil { - this.Error.SetError(err) - _, err = this.conn.Do("PING") + that.Error.SetError(err) + _, err = that.conn.Do("PING") if err != nil { - if this.reCon() { - _, err = this.conn.Do("DEL", key) + if that.reCon() { + _, err = that.conn.Do("DEL", key) } } } @@ -86,32 +86,32 @@ func (this *CacheRedis) del(key string) { } //key value ,时间为时间戳 -func (this *CacheRedis) set(key string, value string, time int64) { - _, err := this.conn.Do("SET", key, value, "EX", ObjToStr(time)) +func (that *CacheRedis) set(key string, value string, time int64) { + _, err := that.conn.Do("SET", key, value, "EX", ObjToStr(time)) if err != nil { - this.Error.SetError(err) - _, err = this.conn.Do("PING") + that.Error.SetError(err) + _, err = that.conn.Do("PING") if err != nil { - if this.reCon() { - _, err = this.conn.Do("SET", key, value, "EX", ObjToStr(time)) + if that.reCon() { + _, err = that.conn.Do("SET", key, value, "EX", ObjToStr(time)) } } } } -func (this *CacheRedis) get(key string) *Obj { +func (that *CacheRedis) get(key string) *Obj { reData := &Obj{} var err error - reData.Data, err = redis.String(this.conn.Do("GET", key)) + reData.Data, err = redis.String(that.conn.Do("GET", key)) if err != nil { reData.Data = nil if !strings.Contains(err.Error(), "nil returned") { - this.Error.SetError(err) - _, err = this.conn.Do("PING") + that.Error.SetError(err) + _, err = that.conn.Do("PING") if err != nil { - if this.reCon() { - reData.Data, err = redis.String(this.conn.Do("GET", key)) + if that.reCon() { + reData.Data, err = redis.String(that.conn.Do("GET", key)) } } @@ -121,10 +121,10 @@ func (this *CacheRedis) get(key string) *Obj { return reData } -func (this *CacheRedis) Cache(key string, data ...interface{}) *Obj { +func (that *CacheRedis) Cache(key string, data ...interface{}) *Obj { reData := &Obj{} - if this.conn == nil { - re := this.reCon() + if that.conn == nil { + re := that.reCon() if !re { return reData } @@ -132,38 +132,38 @@ func (this *CacheRedis) Cache(key string, data ...interface{}) *Obj { //查询缓存 if len(data) == 0 { - reData = this.get(key) + reData = that.get(key) return reData } tim := int64(0) //删除缓存 if len(data) == 1 && data[0] == nil { - this.del(key) + that.del(key) return reData } //添加缓存 if len(data) == 1 { - if this.TimeOut == 0 { - //this.Time = Config.GetInt64("cacheShortTime") + if that.TimeOut == 0 { + //that.Time = Config.GetInt64("cacheShortTime") } - tim += this.TimeOut + tim += that.TimeOut } if len(data) == 2 { - this.Error.SetError(nil) - tempt := ObjToInt64(data[1], this.Error) + that.Error.SetError(nil) + tempt := ObjToInt64(data[1], that.Error) if tempt > tim { tim = tempt - } else if this.GetError() == nil { + } else if that.GetError() == nil { tim = tim + tempt } } - this.set(key, ObjToStr(data[0]), tim) + that.set(key, ObjToStr(data[0]), tim) return reData diff --git a/cache/type.go b/cache/type.go index a95e8b1..e7e69f1 100644 --- a/cache/type.go +++ b/cache/type.go @@ -1,7 +1,7 @@ package cache import ( - . "../common" + . "code.hoteas.com/golang/hotime/common" ) type CacheIns interface { diff --git a/code.go b/code.go index 197db2a..84b8726 100644 --- a/code.go +++ b/code.go @@ -1,7 +1,7 @@ package hotime import ( - . "./common" + . "code.hoteas.com/golang/hotime/common" "strings" ) @@ -166,29 +166,29 @@ var TptProject = Proj{ }, }, "hotime": Ctr{ - "login": func(this *Context) { - hotimeName := this.RouterString[0] - name := this.Req.FormValue("name") - password := this.Req.FormValue("password") + "login": func(that *Context) { + hotimeName := that.RouterString[0] + name := that.Req.FormValue("name") + password := that.Req.FormValue("password") if name == "" || password == "" { - this.Display(3, "参数不足") + that.Display(3, "参数不足") return } - user := this.Db.Get(hotimeName, "*", Map{"AND": Map{"OR": Map{"name": name, "phone": name}, "password": Md5(password)}}) + user := that.Db.Get(hotimeName, "*", Map{"AND": Map{"OR": Map{"name": name, "phone": name}, "password": Md5(password)}}) if user == nil { - this.Display(5, "登录失败") + that.Display(5, "登录失败") return } - this.Session(hotimeName+"_id", user.GetCeilInt("id")) - this.Session(hotimeName+"_name", name) + that.Session(hotimeName+"_id", user.GetCeilInt("id")) + that.Session(hotimeName+"_name", name) delete(user, "password") - this.Display(0, user) + that.Display(0, user) }, - "logout": func(this *Context) { - hotimeName := this.RouterString[0] - this.Session(hotimeName+"_id", nil) - this.Session(hotimeName+"_name", nil) - this.Display(0, "退出登录成功") + "logout": func(that *Context) { + hotimeName := that.RouterString[0] + that.Session(hotimeName+"_id", nil) + that.Session(hotimeName+"_name", nil) + that.Display(0, "退出登录成功") }, "info": func(that *Context) { hotimeName := that.RouterString[0] diff --git a/code/config.go b/code/config.go index 877691e..f4da227 100644 --- a/code/config.go +++ b/code/config.go @@ -1,7 +1,7 @@ package code import ( - . "../common" + . "code.hoteas.com/golang/hotime/common" ) var Config = Map{ diff --git a/code/makecode.go b/code/makecode.go index 3e2f302..c3f4704 100644 --- a/code/makecode.go +++ b/code/makecode.go @@ -1,8 +1,8 @@ package code import ( - . "../common" - "../db" + . "code.hoteas.com/golang/hotime/common" + "code.hoteas.com/golang/hotime/db" "errors" "fmt" "io/ioutil" diff --git a/code/template.go b/code/template.go index bfd18d2..c990950 100644 --- a/code/template.go +++ b/code/template.go @@ -3,8 +3,8 @@ package code var InitTpt = `package {{name}} import ( - . "../../../hotime" - . "../../../hotime/common" + . "code.hoteas.com/golang/hotime" + . "code.hoteas.com/golang/hotime/common" ) var ID = "{{id}}" @@ -14,26 +14,26 @@ var Project = Proj{ //"user": UserCtr, {{tablesCtr}} "hotime":Ctr{ - "login": func(this *Context) { - name := this.Req.FormValue("name") - password := this.Req.FormValue("password") + "login": func(that *Context) { + name := that.Req.FormValue("name") + password := that.Req.FormValue("password") if name == "" || password == "" { - this.Display(3, "参数不足") + that.Display(3, "参数不足") return } - user := this.Db.Get("admin", "*", Map{"AND": Map{"OR":Map{"name": name,"phone":name}, "password": Md5(password)}}) + user := that.Db.Get("admin", "*", Map{"AND": Map{"OR":Map{"name": name,"phone":name}, "password": Md5(password)}}) if user == nil { - this.Display(5, "登录失败") + that.Display(5, "登录失败") return } - this.Session("admin_id", user.GetCeilInt("id")) - this.Session("admin_name", name) - this.Display(0, this.SessionId) + that.Session("admin_id", user.GetCeilInt("id")) + that.Session("admin_name", name) + that.Display(0, that.SessionId) }, - "logout": func(this *Context) { - this.Session("admin_id", nil) - this.Session("admin_name", nil) - this.Display(0, "退出登录成功") + "logout": func(that *Context) { + that.Session("admin_id", nil) + that.Session("admin_name", nil) + that.Display(0, "退出登录成功") }, "info": func(that *Context) { data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) @@ -69,8 +69,8 @@ var Project = Proj{ var CtrTpt = `package {{name}} import ( - . "../../../hotime" - . "../../../hotime/common" + . "code.hoteas.com/golang/hotime" + . "code.hoteas.com/golang/hotime/common" "strings" ) diff --git a/common/context_base.go b/common/context_base.go index c940467..0a4667f 100644 --- a/common/context_base.go +++ b/common/context_base.go @@ -9,10 +9,10 @@ type ContextBase struct { } //唯一标志 -func (this *ContextBase) GetTag() string { +func (that *ContextBase) GetTag() string { - if this.tag == "" { - this.tag = ObjToStr(time.Now().Unix()) + ":" + ObjToStr(Random()) + if that.tag == "" { + that.tag = ObjToStr(time.Now().Unix()) + ":" + ObjToStr(Random()) } - return this.tag + return that.tag } diff --git a/common/func.go b/common/func.go index 92c4d71..054b34f 100644 --- a/common/func.go +++ b/common/func.go @@ -36,7 +36,7 @@ func StrFirstToUpper(str string) string { return strings.ToUpper(first) + other } -//相似度计算 ld compares two strings and returns the levenshtein distance between them. +// StrLd 相似度计算 ld compares two strings and returns the levenshtein distance between them. func StrLd(s, t string, ignoreCase bool) int { if ignoreCase { s = strings.ToLower(s) @@ -142,7 +142,7 @@ func Md5(req string) string { return hex.EncodeToString(cipherStr) } -//随机数 +// Rand 随机数 func Rand(count int) int { res := Random() for i := 0; i < count; i++ { @@ -167,7 +167,7 @@ func Random() float64 { } -//随机数范围 +// RandX 随机数范围 func RandX(small int, max int) int { res := 0 //随机对象 @@ -219,7 +219,7 @@ func RandX(small int, max int) int { // GetDb() //} -//复制返回数组 +// DeepCopyMap 复制返回数组 func DeepCopyMap(value interface{}) interface{} { if valueMap, ok := value.(Map); ok { newMap := make(Map) @@ -278,7 +278,7 @@ func DeepCopyMap(value interface{}) interface{} { // } //} -//浮点数四舍五入保留小数 +// Round 浮点数四舍五入保留小数 func Round(f float64, n int) float64 { pow10_n := math.Pow10(n) return math.Trunc((f+0.5/pow10_n)*pow10_n) / pow10_n diff --git a/common/map.go b/common/map.go index 640e731..eeadeb8 100644 --- a/common/map.go +++ b/common/map.go @@ -10,108 +10,108 @@ import ( type Map map[string]interface{} //获取string -func (this Map) GetString(key string, err ...*Error) string { +func (that Map) GetString(key string, err ...*Error) string { if len(err) != 0 { err[0].SetError(nil) } - return ObjToStr((this)[key]) + return ObjToStr((that)[key]) } -func (this *Map) Pointer() *Map { +func (that *Map) Pointer() *Map { - return this + return that } //增加接口 -func (this Map) Put(key string, value interface{}) { - //if this==nil{ - // this=Map{} +func (that Map) Put(key string, value interface{}) { + //if that==nil{ + // that=Map{} //} - this[key] = value + that[key] = value } //删除接口 -func (this Map) Delete(key string) { - delete(this, key) +func (that Map) Delete(key string) { + delete(that, key) } //获取Int -func (this Map) GetInt(key string, err ...*Error) int { - v := ObjToInt((this)[key], err...) +func (that Map) GetInt(key string, err ...*Error) int { + v := ObjToInt((that)[key], err...) return v } //获取Int -func (this Map) GetInt64(key string, err ...*Error) int64 { - v := ObjToInt64((this)[key], err...) +func (that Map) GetInt64(key string, err ...*Error) int64 { + v := ObjToInt64((that)[key], err...) return v } //获取向上取整Int64 -func (this Map) GetCeilInt64(key string, err ...*Error) int64 { - v := ObjToCeilInt64((this)[key], err...) +func (that Map) GetCeilInt64(key string, err ...*Error) int64 { + v := ObjToCeilInt64((that)[key], err...) return v } //获取向上取整Int -func (this Map) GetCeilInt(key string, err ...*Error) int { - v := ObjToCeilInt((this)[key], err...) +func (that Map) GetCeilInt(key string, err ...*Error) int { + v := ObjToCeilInt((that)[key], err...) return v } //获取向上取整float64 -func (this Map) GetCeilFloat64(key string, err ...*Error) float64 { - v := ObjToCeilFloat64((this)[key], err...) +func (that Map) GetCeilFloat64(key string, err ...*Error) float64 { + v := ObjToCeilFloat64((that)[key], err...) return v } //获取Float64 -func (this Map) GetFloat64(key string, err ...*Error) float64 { +func (that Map) GetFloat64(key string, err ...*Error) float64 { - v := ObjToFloat64((this)[key], err...) + v := ObjToFloat64((that)[key], err...) return v } -func (this Map) GetSlice(key string, err ...*Error) Slice { +func (that Map) GetSlice(key string, err ...*Error) Slice { //var v Slice - v := ObjToSlice((this)[key], err...) + v := ObjToSlice((that)[key], err...) return v } -func (this Map) GetBool(key string, err ...*Error) bool { +func (that Map) GetBool(key string, err ...*Error) bool { //var v Slice - v := ObjToBool((this)[key], err...) + v := ObjToBool((that)[key], err...) return v } -func (this Map) GetMap(key string, err ...*Error) Map { +func (that Map) GetMap(key string, err ...*Error) Map { //var data Slice - v := ObjToMap((this)[key], err...) + v := ObjToMap((that)[key], err...) return v } -func (this Map) Get(key string, err ...*Error) interface{} { +func (that Map) Get(key string, err ...*Error) interface{} { - if v, ok := (this)[key]; ok { + if v, ok := (that)[key]; ok { return v } e := errors.New("没有存储key及对应的数据") @@ -124,10 +124,10 @@ func (this Map) Get(key string, err ...*Error) interface{} { } //请传递指针过来 -func (this Map) ToStruct(stct interface{}) { +func (that Map) ToStruct(stct interface{}) { data := reflect.ValueOf(stct).Elem() - for k, v := range this { + for k, v := range that { ks := StrFirstToUpper(k) dkey := data.FieldByName(ks) if !dkey.IsValid() { @@ -135,13 +135,13 @@ func (this Map) ToStruct(stct interface{}) { } switch dkey.Type().String() { case "int": - dkey.SetInt(this.GetInt64(k)) + dkey.SetInt(that.GetInt64(k)) case "int64": - dkey.Set(reflect.ValueOf(this.GetInt64(k))) + dkey.Set(reflect.ValueOf(that.GetInt64(k))) case "float64": - dkey.Set(reflect.ValueOf(this.GetFloat64(k))) + dkey.Set(reflect.ValueOf(that.GetFloat64(k))) case "string": - dkey.Set(reflect.ValueOf(this.GetString(k))) + dkey.Set(reflect.ValueOf(that.GetString(k))) case "interface{}": dkey.Set(reflect.ValueOf(v)) } @@ -149,13 +149,13 @@ func (this Map) ToStruct(stct interface{}) { } -func (this Map) ToJsonString() string { - return ObjToStr(this) +func (that Map) ToJsonString() string { + return ObjToStr(that) } -func (this Map) JsonToMap(jsonStr string, err ...*Error) { - e := json.Unmarshal([]byte(jsonStr), &this) +func (that Map) JsonToMap(jsonStr string, err ...*Error) { + e := json.Unmarshal([]byte(jsonStr), &that) if e != nil && len(err) != 0 { err[0].SetError(e) } diff --git a/context.go b/context.go index d85849e..111f99b 100644 --- a/context.go +++ b/context.go @@ -1,9 +1,9 @@ package hotime import ( - . "./cache" - . "./common" - . "./db" + . "code.hoteas.com/golang/hotime/cache" + . "code.hoteas.com/golang/hotime/common" + . "code.hoteas.com/golang/hotime/db" "encoding/json" "net/http" ) diff --git a/db/hotimedb.go b/db/hotimedb.go index e524ae7..0900b94 100644 --- a/db/hotimedb.go +++ b/db/hotimedb.go @@ -1,8 +1,8 @@ package db import ( - "../cache" - . "../common" + "code.hoteas.com/golang/hotime/cache" + . "code.hoteas.com/golang/hotime/common" "database/sql" "encoding/json" "errors" @@ -165,7 +165,7 @@ func (that *HoTimeDB) Row(resl *sql.Rows) []Map { // ////code=0,1,2 0 backup all,1 backup data,2 backup ddl -//func (this *HoTimeDB) Backup(path string, code int) { +//func (that *HoTimeDB) Backup(path string, code int) { // var cmd *exec.Cmd // switch code { // case 0:cmd= exec.Command("mysqldump","-h"+ObjToStr(Config["dbHost"]), "-P"+ObjToStr(Config["dbPort"]),"-u"+ObjToStr(Config["dbUser"]), "-p"+ObjToStr(Config["dbPwd"]),ObjToStr(Config["dbName"])) @@ -197,7 +197,7 @@ func (that *HoTimeDB) Row(resl *sql.Rows) []Map { // //db := `` // //fmt.Println(db) // // -// //tables := this.Query("show tables") +// //tables := that.Query("show tables") // //lth := len(tables) // //if lth == 0 { // // return @@ -212,7 +212,7 @@ func (that *HoTimeDB) Row(resl *sql.Rows) []Map { // // // //for i := 0; i < lth; i++ { // // tt := tables[i]["Tables_in_"+db].(string) -// // this.backupSave(path, tt, code) +// // that.backupSave(path, tt, code) // // debug.FreeOSMemory() // //} // @@ -383,7 +383,7 @@ func (that *HoTimeDB) Exec(query string, args ...interface{}) (sql.Result, *Erro return resl, that.LastErr } -//func (this *HoTimeDB)copy(data []Map)[]Map{ +//func (that *HoTimeDB)copy(data []Map)[]Map{ // if data==nil{ // return nil // } @@ -836,7 +836,7 @@ func (that *HoTimeDB) varCond(k string, v interface{}) (string, []interface{}) { return where, res } -// this.Db.Update("user",hotime.Map{"ustate":"1"},hotime.Map{"AND":hotime.Map{"OR":hotime.Map{"uid":4,"uname":"dasda"}},"ustate":1}) +// that.Db.Update("user",hotime.Map{"ustate":"1"},hotime.Map{"AND":hotime.Map{"OR":hotime.Map{"uid":4,"uname":"dasda"}},"ustate":1}) func (that *HoTimeDB) notIn(k string, v interface{}, where string, res []interface{}) (string, []interface{}) { //where:="" //fmt.Println(reflect.ValueOf(v).Type().String()) diff --git a/dri/aliyun/company.go b/dri/aliyun/company.go index ad5fc49..d17f3fb 100644 --- a/dri/aliyun/company.go +++ b/dri/aliyun/company.go @@ -1,53 +1,55 @@ package aliyun import ( - . "../../common" + . "code.hoteas.com/golang/hotime/common" "fmt" "io/ioutil" "net/http" //"fmt" ) -type Company struct { +type company struct { ApiCode string Url string } -func (this *Company) Init(apiCode string) { +var Company = company{} + +func (that *company) Init(apiCode string) { //"06c6a07e89dd45c88de040ee1489eef7" - this.ApiCode = apiCode - this.Url = "http://api.81api.com" + that.ApiCode = apiCode + that.Url = "http://api.81api.com" } -// GetCompanyBaseInfo 获取企业基础信息 -func (this *Company) GetCompanyOtherAll(name string) Map { +// GetCompanyOtherAll 获取企业基础信息 +func (that *company) GetCompanyOtherAll(name string) Map { res := Map{} - data, e := this.GetCompanyPatentsInfo(name) //获取专利信息 + data, e := that.GetCompanyPatentsInfo(name) //获取专利信息 if e != nil { fmt.Println(e) } else { res["PatentsInfo"] = data.GetMap("data") } - data, e = this.GetCompanyOtherCopyrightsInfo(name) //获取其他专利 + data, e = that.GetCompanyOtherCopyrightsInfo(name) //获取其他专利 if e != nil { fmt.Println(e) } else { res["OtherCopyrightsInfo"] = data.GetMap("data") } - data, e = this.GetCompanyTrademarksInfo(name) //获取商标 + data, e = that.GetCompanyTrademarksInfo(name) //获取商标 if e != nil { fmt.Println(e) } else { res["TrademarksInfo"] = data.GetMap("data") } - data, e = this.GetCompanySoftwareCopyrightsInfo(name) //获取软著 + data, e = that.GetCompanySoftwareCopyrightsInfo(name) //获取软著 if e != nil { fmt.Println(e) } else { res["SoftwareCopyrightsInfo"] = data.GetMap("data") } - data, e = this.GetCompanyProfileTags(name) //获取大数据标签 + data, e = that.GetCompanyProfileTags(name) //获取大数据标签 if e != nil { fmt.Println(e) } else { @@ -57,63 +59,63 @@ func (this *Company) GetCompanyOtherAll(name string) Map { } // GetCompanyBaseInfo 获取企业基础信息 -func (this *Company) GetCompanyBaseInfo(name string) (Map, error) { +func (that *company) GetCompanyBaseInfo(name string) (Map, error) { url := "/getCompanyBaseInfo/" - body, err := this.basePost(url, name) + body, err := that.basePost(url, name) return ObjToMap(body), err } // GetCompanyPatentsInfo 获取专利信息 -func (this *Company) GetCompanyPatentsInfo(name string) (Map, error) { +func (that *company) GetCompanyPatentsInfo(name string) (Map, error) { url := "/getCompanyPatentsInfo/" - body, err := this.basePost(url, name) + body, err := that.basePost(url, name) return ObjToMap(body), err } -// 获取商标信息 -func (this *Company) GetCompanyTrademarksInfo(name string) (Map, error) { +// GetCompanyTrademarksInfo 获取商标信息 +func (that *company) GetCompanyTrademarksInfo(name string) (Map, error) { url := "/getCompanyTrademarksInfo/" - body, err := this.basePost(url, name) + body, err := that.basePost(url, name) return ObjToMap(body), err } -// 获取软著信息 -func (this *Company) GetCompanySoftwareCopyrightsInfo(name string) (Map, error) { +// GetCompanySoftwareCopyrightsInfo 获取软著信息 +func (that *company) GetCompanySoftwareCopyrightsInfo(name string) (Map, error) { url := "/getCompanySoftwareCopyrightsInfo/" - body, err := this.basePost(url, name) + body, err := that.basePost(url, name) return ObjToMap(body), err } -// 获取其他著作信息 -func (this *Company) GetCompanyOtherCopyrightsInfo(name string) (Map, error) { +// GetCompanyOtherCopyrightsInfo 获取其他著作信息 +func (that *company) GetCompanyOtherCopyrightsInfo(name string) (Map, error) { url := "/getCompanyOtherCopyrightsInfo/" - body, err := this.basePost(url, name) + body, err := that.basePost(url, name) return ObjToMap(body), err } -// 获取大数据标签 -func (this *Company) GetCompanyProfileTags(name string) (Map, error) { +// GetCompanyProfileTags 获取大数据标签 +func (that *company) GetCompanyProfileTags(name string) (Map, error) { url := "/getCompanyProfileTags/" - body, err := this.basePost(url, name) + body, err := that.basePost(url, name) return ObjToMap(body), err } -func (this *Company) basePost(url string, name string) (string, error) { +func (that *company) basePost(url string, name string) (string, error) { client := &http.Client{} - reqest, err := http.NewRequest("GET", this.Url+url+name+"/?isRaiseErrorCode=1", nil) + reqest, err := http.NewRequest("GET", that.Url+url+name+"/?isRaiseErrorCode=1", nil) if err != nil { fmt.Println("Fatal error ", err.Error()) return "", err } - reqest.Header.Add("Authorization", "APPCODE "+this.ApiCode) + reqest.Header.Add("Authorization", "APPCODE "+that.ApiCode) response, err := client.Do(reqest) defer response.Body.Close() @@ -130,9 +132,3 @@ func (this *Company) basePost(url string, name string) (string, error) { fmt.Println(res) return res, err } - -var DefaultCompany Company - -func init() { - DefaultCompany = Company{} -} diff --git a/dri/baidu/map.go b/dri/baidu/map.go index 00ca4cb..c5c372a 100644 --- a/dri/baidu/map.go +++ b/dri/baidu/map.go @@ -7,26 +7,28 @@ import ( "net/url" ) -type BaiduMap struct { +type baiduMap struct { Ak string Url string } -func (this *BaiduMap) Init(Ak string) { +var BaiDuMap = baiduMap{} + +func (that *baiduMap) Init(Ak string) { //"ak=ZeT902EZvVgIoGVWEFK3osUm" - this.Ak = Ak - this.Url = "https://api.map.baidu.com/place/v2/suggestion?output=json" + "&ak=" + Ak + that.Ak = Ak + that.Url = "https://api.map.baidu.com/place/v2/suggestion?output=json" + "&ak=" + Ak //query } // GetPosition 获取定位列表 -func (this *BaiduMap) GetPosition(name string, region string) (string, error) { +func (that *baiduMap) GetPosition(name string, region string) (string, error) { client := &http.Client{} if region == "" { region = "全国" } - reqest, err := http.NewRequest("GET", this.Url+"&query="+url.PathEscape(name)+"®ion="+url.PathEscape(region), nil) + reqest, err := http.NewRequest("GET", that.Url+"&query="+url.PathEscape(name)+"®ion="+url.PathEscape(region), nil) if err != nil { fmt.Println("Fatal error ", err.Error()) @@ -50,9 +52,3 @@ func (this *BaiduMap) GetPosition(name string, region string) (string, error) { return string(body), err } - -var DefaultBaiDuMap BaiduMap - -func init() { - DefaultBaiDuMap = BaiduMap{} -} diff --git a/dri/ddsms/ddsms.go b/dri/ddsms/ddsms.go index 499c8c1..5310b25 100644 --- a/dri/ddsms/ddsms.go +++ b/dri/ddsms/ddsms.go @@ -10,29 +10,31 @@ import ( //"fmt" ) -type DDY struct { +type dingdongyun struct { ApiKey string YzmUrl string TzUrl string } -func (this *DDY) Init(apikey string) { - this.ApiKey = apikey - this.YzmUrl = "https://api.dingdongcloud.com/v2/sms/captcha/send.json" - this.TzUrl = "https://api.dingdongcloud.com/v2/sms/notice/send.json" +var DDY = dingdongyun{} + +func (that *dingdongyun) Init(apikey string) { + that.ApiKey = apikey + that.YzmUrl = "https://api.dingdongcloud.com/v2/sms/captcha/send.json" + that.TzUrl = "https://api.dingdongcloud.com/v2/sms/notice/send.json" } -//发送短信验证码 code验证码如:123456 返回true表示发送成功flase表示发送失败 -func (this *DDY) SendYZM(umoblie string, tpt string, data map[string]string) (bool, error) { +// SendYZM 发送短信验证码 code验证码如:123456 返回true表示发送成功flase表示发送失败 +func (that *dingdongyun) SendYZM(umoblie string, tpt string, data map[string]string) (bool, error) { for k, v := range data { tpt = strings.Replace(tpt, "{"+k+"}", v, -1) } - return this.send(this.YzmUrl, umoblie, tpt) + return that.send(that.YzmUrl, umoblie, tpt) } -//发送通知 -func (this *DDY) SendTz(umoblie []string, tpt string, data map[string]string) (bool, error) { +// SendTz 发送通知 +func (that *dingdongyun) SendTz(umoblie []string, tpt string, data map[string]string) (bool, error) { for k, v := range data { tpt = strings.Replace(tpt, "{"+k+"}", v, -1) } @@ -44,14 +46,14 @@ func (this *DDY) SendTz(umoblie []string, tpt string, data map[string]string) (b } umobleStr += "," + v } - return this.send(this.TzUrl, umobleStr, tpt) + return that.send(that.TzUrl, umobleStr, tpt) } //发送短信 -func (this *DDY) send(mUrl string, umoblie string, content string) (bool, error) { +func (that *dingdongyun) send(mUrl string, umoblie string, content string) (bool, error) { - data_send_sms_yzm := url.Values{"apikey": {this.ApiKey}, "mobile": {umoblie}, "content": {content}} - res, err := this.httpsPostForm(mUrl, data_send_sms_yzm) + data_send_sms_yzm := url.Values{"apikey": {that.ApiKey}, "mobile": {umoblie}, "content": {content}} + res, err := that.httpsPostForm(mUrl, data_send_sms_yzm) if err != nil && res == "" { return false, errors.New("连接错误") } @@ -73,7 +75,7 @@ func (this *DDY) send(mUrl string, umoblie string, content string) (bool, error) } //调用url发送短信的连接 -func (this *DDY) httpsPostForm(url string, data url.Values) (string, error) { +func (that *dingdongyun) httpsPostForm(url string, data url.Values) (string, error) { resp, err := http.PostForm(url, data) if err != nil { @@ -89,9 +91,3 @@ func (this *DDY) httpsPostForm(url string, data url.Values) (string, error) { return string(body), nil } - -var DefaultDDY DDY - -func init() { - DefaultDDY = DDY{} -} diff --git a/dri/download/download.go b/dri/download/download.go index 066e3cc..4d84680 100644 --- a/dri/download/download.go +++ b/dri/download/download.go @@ -1,15 +1,15 @@ package download import ( - . "../../common" "bytes" + . "code.hoteas.com/golang/hotime/common" "io" "io/ioutil" "net/http" "os" ) -//下载文件 +// Down 下载文件 func Down(url, path, name string, e ...*Error) bool { os.MkdirAll(path, os.ModeDir) diff --git a/dri/rsa/deencrypt.go b/dri/rsa/deencrypt.go index a590cfa..3a0e30c 100644 --- a/dri/rsa/deencrypt.go +++ b/dri/rsa/deencrypt.go @@ -23,7 +23,7 @@ func FileGet(path string) []byte { return buf } -//RSA加密 +// RSA_Encrypt RSA加密 // plainText 要加密的数据 // path 公钥匙文件地址 func RSA_Encrypt(plainText []byte, buf []byte) []byte { @@ -46,7 +46,7 @@ func RSA_Encrypt(plainText []byte, buf []byte) []byte { return cipherText } -//RSA解密 +// RSA_Decrypt RSA解密 // cipherText 需要解密的byte数据 // path 私钥文件路径 func RSA_Decrypt(cipherText []byte, buf []byte) []byte { @@ -97,7 +97,7 @@ func Demo() { fmt.Println(string(decrypt)) } -//生成RSA私钥和公钥,保存到文件中 +// GenerateRSAKey 生成RSA私钥和公钥,保存到文件中 // bits 证书大小 func GenerateRSAKey(bits int, path string) { //GenerateKey函数使用随机数据生成器random生成一对具有指定字位数的RSA密钥 diff --git a/dri/tencent/company.go b/dri/tencent/company.go index b1fb22a..6454a44 100644 --- a/dri/tencent/company.go +++ b/dri/tencent/company.go @@ -1,7 +1,7 @@ package tencent import ( - . "../../common" + . "code.hoteas.com/golang/hotime/common" "crypto/hmac" "crypto/sha1" "encoding/base64" @@ -15,24 +15,40 @@ import ( "time" ) -func calcAuthorization(source string, secretId string, secretKey string) (auth string, datetime string, err error) { +type company struct { + secretId string + secretKey string +} + +var Company = company{} + +func (that *company) Init(secretId, secretKey string) { + // 云市场分配的密钥Id + //secretId := "xxxx" + //// 云市场分配的密钥Key + //secretKey := "xxxx" + that.secretId = secretId + that.secretKey = secretKey +} + +func (that *company) calcAuthorization(source string) (auth string, datetime string, err error) { timeLocation, _ := time.LoadLocation("Etc/GMT") datetime = time.Now().In(timeLocation).Format("Mon, 02 Jan 2006 15:04:05 GMT") signStr := fmt.Sprintf("x-date: %s\nx-source: %s", datetime, source) // hmac-sha1 - mac := hmac.New(sha1.New, []byte(secretKey)) + mac := hmac.New(sha1.New, []byte(that.secretKey)) mac.Write([]byte(signStr)) sign := base64.StdEncoding.EncodeToString(mac.Sum(nil)) auth = fmt.Sprintf("hmac id=\"%s\", algorithm=\"hmac-sha1\", headers=\"x-date x-source\", signature=\"%s\"", - secretId, sign) + that.secretId, sign) return auth, datetime, nil } -func urlencode(params map[string]string) string { +func (that *company) urlencode(params map[string]string) string { var p = gourl.Values{} for k, v := range params { p.Add(k, v) @@ -40,7 +56,7 @@ func urlencode(params map[string]string) string { return p.Encode() } -func GetCompany(secretId, secretKey, name string) Map { +func (that *company) GetCompany(name string) Map { // 云市场分配的密钥Id //secretId := "xxxx" //// 云市场分配的密钥Key @@ -48,7 +64,7 @@ func GetCompany(secretId, secretKey, name string) Map { source := "market" // 签名 - auth, datetime, _ := calcAuthorization(source, secretId, secretKey) + auth, datetime, _ := that.calcAuthorization(source) // 请求方法 method := "GET" @@ -64,13 +80,13 @@ func GetCompany(secretId, secretKey, name string) Map { // url参数拼接 url := "https://service-3jnh3ku8-1256140209.gz.apigw.tencentcs.com/release/business4/geet" if len(queryParams) > 0 { - url = fmt.Sprintf("%s?%s", url, urlencode(queryParams)) + url = fmt.Sprintf("%s?%s", url, that.urlencode(queryParams)) } bodyMethods := map[string]bool{"POST": true, "PUT": true, "PATCH": true} var body io.Reader = nil if bodyMethods[method] { - body = strings.NewReader(urlencode(bodyParams)) + body = strings.NewReader(that.urlencode(bodyParams)) headers["Content-Type"] = "application/x-www-form-urlencoded" } diff --git a/dri/tencent/tencent.go b/dri/tencent/tencent.go index cdcab4f..ebff51c 100644 --- a/dri/tencent/tencent.go +++ b/dri/tencent/tencent.go @@ -8,16 +8,32 @@ import ( ocr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr/v20181119" ) -var credential = common.NewCredential( - "AKIDOgT8cKCQksnY7yKATaYO7j9ORJzSYohP", - "GNXgjdN4czA9ya0FNMApVJzTmsmU0KSN", -) +type tencent struct { + secretId string + secretKey string + credential *common.Credential +} -func OCRCOMPANY(base64Str string) string { +var Tencent = tencent{} + +func (that *tencent) Init(secretId, secretKey string) { + // 云市场分配的密钥Id + //secretId := "xxxx" + //// 云市场分配的密钥Key + //secretKey := "xxxx" + that.secretId = secretId + that.secretKey = secretKey + that.credential = common.NewCredential( + "AKIDOgT8cKCQksnY7yKATaYO7j9ORJzSYohP", + "GNXgjdN4czA9ya0FNMApVJzTmsmU0KSN", + ) +} + +func (that *tencent) OCRCOMPANY(base64Str string) string { cpf := profile.NewClientProfile() cpf.HttpProfile.Endpoint = "ocr.tencentcloudapi.com" - client, _ := ocr.NewClient(credential, "ap-guangzhou", cpf) + client, _ := ocr.NewClient(that.credential, "ap-guangzhou", cpf) request := ocr.NewBizLicenseOCRRequest() @@ -38,11 +54,11 @@ func OCRCOMPANY(base64Str string) string { return response.ToJsonString() } -func OCR(base64Str string) string { +func (that *tencent) OCR(base64Str string) string { cpf := profile.NewClientProfile() cpf.HttpProfile.Endpoint = "ocr.tencentcloudapi.com" - client, _ := ocr.NewClient(credential, "ap-guangzhou", cpf) + client, _ := ocr.NewClient(that.credential, "ap-guangzhou", cpf) request := ocr.NewGeneralAccurateOCRRequest() @@ -63,11 +79,11 @@ func OCR(base64Str string) string { return response.ToJsonString() } -func Qrcode(base64Str string) string { +func (that *tencent) Qrcode(base64Str string) string { cpf := profile.NewClientProfile() cpf.HttpProfile.Endpoint = "ocr.tencentcloudapi.com" - client, _ := ocr.NewClient(credential, "ap-guangzhou", cpf) + client, _ := ocr.NewClient(that.credential, "ap-guangzhou", cpf) request := ocr.NewQrcodeOCRRequest() diff --git a/dri/upload/upload.go b/dri/upload/upload.go index a0b59d6..020cab3 100644 --- a/dri/upload/upload.go +++ b/dri/upload/upload.go @@ -1,7 +1,7 @@ package upload import ( - . "../../common" + . "code.hoteas.com/golang/hotime/common" "errors" "io" "mime/multipart" @@ -15,7 +15,7 @@ type Upload struct { Path string } -func (this *Upload) UpFile(Request *http.Request, fieldName, savefilepath, savePath string) (string, error) { +func (that *Upload) UpFile(Request *http.Request, fieldName, savefilepath, savePath string) (string, error) { Request.ParseMultipartForm(32 << 20) var filePath string files := Request.MultipartForm.File @@ -36,7 +36,7 @@ func (this *Upload) UpFile(Request *http.Request, fieldName, savefilepath, saveP data := time.Unix(int64(t), 0).Format("2006-01") path := "" if strings.EqualFold(savefilepath, "") { - path = this.Path + data + path = that.Path + data } else { path = savefilepath + data } @@ -51,7 +51,7 @@ func (this *Upload) UpFile(Request *http.Request, fieldName, savefilepath, saveP } } filename := time.Unix(int64(t), 0).Format("2006-01-02-15-22-25") + ObjToStr(Rand(6)) - filePath = path + "/" + filename + this.Path + filePath = path + "/" + filename + that.Path } else { filePath = savePath } diff --git a/example/admin/companyinout.go b/example/admin/companyinout.go deleted file mode 100644 index 1ecffa2..0000000 --- a/example/admin/companyinout.go +++ /dev/null @@ -1,535 +0,0 @@ -package admin - -import ( - . "../../../hotime" - . "../../common" - "fmt" - "github.com/chain-zhang/pinyin" - "github.com/xuri/excelize" - "io" - "os" - "strings" - "time" - "unicode" -) - -var CompanyInOutCtr = Ctr{ - - "upload": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - //orgId := 1 - //读取网络文件 - fi, fheader, err := this.Req.FormFile("file") - if err != nil { - this.Display(3, err) - return - - } - filePath := this.Config.GetString("filePath") - if filePath == "" { - filePath = "excel/2006/01/02/" - } - - path := time.Now().Format(filePath) - e := os.MkdirAll(this.Config.GetString("tpt")+"/"+path, os.ModeDir) - - if e != nil { - this.Display(3, e) - return - } - - filePath = path + Md5(ObjToStr(RandX(100000, 9999999))) + fheader.Filename[strings.LastIndex(fheader.Filename, "."):] - newFile, e := os.Create(this.Config.GetString("tpt") + "/" + filePath) - - if e != nil { - this.Display(3, e) - return - } - - _, e = io.Copy(newFile, fi) - - if e != nil { - this.Display(3, e) - return - } - - //this.Display(0, filePath) - - //读取excel - //fmt.Println(Org[orgId],OrgId) - data := excel(this.Config.GetString("tpt") + "/" + filePath) - if len(data) != 1 { - this.Display(3, "表格不标准,请重新提交") - return - } - - err = decodeData2Sql(data[0], this, orgId) - if err != nil { - this.Display(4, err) - return - } - - this.Display(0, "上传成功") - - }, - "analyse": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - companys := this.Db.Select("company", "*", Map{"org_id": orgId}) - - for _, v := range companys { - - data := Org[orgId].analyse(v.GetMap("upload_data")) - for k, _ := range data { - data[k] = data.GetFloat64(k) - } - v["analyse"] = data - } - - cs := Org[orgId].analyseSort(companys) - for _, v := range cs { - as := v.GetMap("analyse") - //v["analyse"] = as.ToJsonString() - switch as.GetString("PJ") { - case "A": - v["level"] = 0 - case "B": - v["level"] = 1 - case "C": - v["level"] = 2 - case "D": - v["level"] = 3 - } - v["score"] = as.GetFloat64("ZDF") - - this.Db.Update("company", Map{"analyse": as.ToJsonString(), "level": v["level"], "score": v["score"]}, Map{"id": v.GetCeilInt("id")}) - this.Db.Update("company_history", Map{"analyse": as.ToJsonString(), "level": v["level"], "score": v["score"]}, Map{"id": v.GetCeilInt("company_history_id")}) - } - - this.Display(0, len(companys)) - - }, - - "total_analyse": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - - companys := this.Db.Select("company", "*", Map{"AND": Map{"org_id": orgId}}) - - home_data, six_item_data, three_item_data, n_item_data := totalAnalyse(companys) - - org := this.Db.Get("org", "*", Map{"id": orgId}) - fmt.Println(six_item_data) - - data := Map{ - "name": org.GetString("name"), - "home_data": home_data.ToJsonString(), - "six_item_data": six_item_data.ToJsonString(), - "three_item_data": three_item_data.ToJsonString(), - "n_item_data": n_item_data.ToJsonString(), - "modify_time": time.Now().Unix(), - } - org_analyse := this.Db.Get("org_analyse", "id", Map{"org_id": orgId}) - if org_analyse == nil { - //data["name"] = time.Now().Format("2006-01-02 15:04") + "创建" - data["name"] = org.GetString("name") - data["org_id"] = orgId - data["create_time"] = time.Now().Unix() - id := this.Db.Insert("org_analyse", data) - data["id"] = id - } else { - this.Db.Update("org_analyse", data, Map{"org_id": orgId}) - } - - this.Display(0, data) - - }, - // - //"category_analyse": func(this *Context) { - // - // orgId := 1 - // org := this.Db.Get("org", "*", Map{"id": orgId}) - // categoryIDS := []int{ - // 1369, //电子行业 - // 799, //航空航天 - // 481, //生物医药 - // 990, //绿色能源 - // 972, //机械制造 - // 1021, //建材制造 - // 717, //化工类 - // 170, //轻工类 - // 260, //纺织类 - // 1088, //商贸类 - // 1424, //投资管理 - // 903, //配套类 - // 959, //其他 - // } - // totalAnalyse := this.Db.Get("org_analyse", "*", Map{"org_id": orgId}) - // - // for _, id := range categoryIDS { - // - // companys := this.Db.Select("company", Map{"[><]category": "company.category_id=category.id"}, - // "company.id,company.gs,company.level,company.score,company.upload_data,company.analyse,company.category_id", Map{"category.index[~]": "," + ObjToStr(id) + ","}) - // ctgAn := ctgAnalyse(companys, totalAnalyse) - // data := Map{ - // "name": org.GetString("name"), - // "modify_time": time.Now().Unix(), - // "data": ctgAn.ToJsonString(), - // } - // ctgAnalyse := this.Db.Get("category_analyse", "id", Map{"AND": Map{"org_id": orgId, "category_id": id}}) - // if ctgAnalyse == nil { - // data["name"] = time.Now().Format("2006-01-02 15:04") + "创建" - // data["name"] = org.GetString("name") - // data["org_id"] = orgId - // data["category_id"] = id - // data["create_time"] = time.Now().Unix() - // id := this.Db.Insert("category_analyse", data) - // data["id"] = id - // } else { - // this.Db.Update("category_analyse", data, Map{"AND": Map{"org_id": orgId, "category_id": id}}) - // } - // - // } - // this.Display(0, categoryIDS) - //}, - // - "industry_analyse": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - industrys := this.Db.Select("industry_analyse", "id,name,industry_id", Map{"org_id": orgId}) - totalAnalyse := this.Db.Get("org_analyse", "*", Map{"org_id": orgId}) - - for _, industry := range industrys { - id := industry.GetCeilInt("industry_id") - companys := this.Db.Select("industry", Map{"[><]company": "company.industry_id=industry.id"}, - "company.id,company.gs,company.level,company.score,company.upload_data,company.analyse,company.industry_id", Map{"AND": Map{"industry.id": id, "company.org_id": orgId}}) - ctgAn := ctgAnalyse(companys, totalAnalyse) - data := Map{ - "modify_time": time.Now().Unix(), - "data": ctgAn.ToJsonString(), - } - - this.Db.Update("industry_analyse", data, Map{"AND": Map{"org_id": orgId, "industry_id": id}}) - - } - this.Display(0, industrys) - }, -} - -func decodeData2Sql(table [][]string, this *Context, orgId int) error { - tags := []Map{} //报错所有的tag记录 - tagCtgs := []Map{} - for k, v := range table { - - //第一排是指标分类,去除掉第一个参数,其存在合并所以,如果是合并的则删除 - if k == 0 { - - for ck, cv := range v { - cv = strings.Replace(cv, " ", "", -1) - cv = strings.Replace(cv, "\r\t", "", -1) - cv = strings.Replace(cv, "\r", "", -1) - v[ck] = cv - - if ck == 0 { - continue - } - if cv == "" { - v[ck] = v[ck-1] - cv = v[ck] - } - - tagCtg := this.Db.Get("tag_ctg", "*", Map{"AND": Map{"name": cv, "org_id": orgId}}) - if tagCtg != nil { - tagCtgs = append(tagCtgs, tagCtg) - continue - } - tagCtg = Map{ - "name": cv, - "admin_id": this.Session("admin_id").ToInt(), - "parent_id": 1, //上传分类为1 - "org_id": orgId, - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - } - id := this.Db.Insert("tag_ctg", tagCtg) - - if id != 0 { - tagCtg["id"] = id - this.Db.Update("tag_ctg", Map{ - "index": ",1," + ObjToStr(id) + ",", - }, Map{"id": id}) - - tagCtgs = append(tagCtgs, tagCtg) - } - - } - - } - - //第二排是指标项,去除掉第一个参数, - //最重要的是参数tag生成,通过中文转拼音获取首字母实现,遇到同名的则最后加一位数字 - if k == 1 { - - for ck, cv := range v { - cv = strings.Replace(cv, " ", "", -1) - cv = strings.Replace(cv, "\r\t", "", -1) - cv = strings.Replace(cv, "\r", "", -1) - v[ck] = cv - if ck == 0 { - continue - } - //补充分类 - if ck >= len(table[0]) { - tagCtgs = append(tagCtgs, tagCtgs[len(tagCtgs)-1]) - } - //补充说明 - if ck >= len(table[3]) { - table[3] = append(table[3], table[3][len(table[3])-1]) - } - //补充单位 - if ck >= len(table[2]) { - table[2] = append(table[2], "") - } - - tag := this.Db.Get("tag", "*", Map{"AND": Map{"name": cv, "type": "0", "org_id": orgId}}) - - if tag != nil { - tags = append(tags, tag) - continue - } - sn, err := pinyin.New(cv).Split(" ").Mode(pinyin.InitialsInCapitals).Convert() - if err != nil { - fmt.Println(err) - sn = cv - } else { - - sns := strings.Split(sn, " ") - - sn = "IEDC" - for _, v1 := range sns { - - if v1 != "" && !unicode.IsPunct([]rune(v1)[0]) { - sn = sn + string([]rune(v1)[:1]) - fmt.Println(sn, v1) - } - } - } - //sn=strings.Replace(sn,"\ufffd","",-1) - - tagsn := this.Db.Get("tag", "id", Map{"AND": Map{"sn": sn, "type": "0", "org_id": orgId}}) - if tagsn != nil { - for i := 0; i < 100; i++ { - tagsn = this.Db.Get("tag", "id", Map{"AND": Map{"sn": sn + ObjToStr(i), "type": "0", "org_id": orgId}}) - if tagsn == nil { - sn = sn + ObjToStr(i) - break - } - } - } - - tag = Map{ - "name": cv, - "description": table[3][ck], //第三行对应位置为描述 - "unit": table[2][ck], - "admin_id": this.Session("admin_id").ToInt(), - "org_id": orgId, - "type": 0, - "sn": sn, - "tag_ctg_id": tagCtgs[ck-1].GetCeilInt("id"), - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - } - id := this.Db.Insert("tag", tag) - tag["id"] = id - tags = append(tags, tag) - } - - } - - //第四排以后是数据项,去除掉第一个参数, - //根据统一社会信用代码识别是否存在,同时将校验部分数字 - if k > 3 { - - //整行数据 - rowData := Map{} - for ck, cv := range v { - if ck == 0 { - continue - } - cv = strings.Replace(cv, " ", "", -1) - cv = strings.Replace(cv, "\r\t", "", -1) - cv = strings.Replace(cv, "\r", "", -1) - - if cv == "" { - - cv = "暂无" - //return errors.New("第" + ObjToStr(k+1) + "行," + ObjToStr(ck+1) + "列,数据为空请注意检查") - } - - v[ck] = cv - - if ck-1 >= len(tags) { - fmt.Println(cv, "表格错误") - continue - } - - rowData[tags[ck-1].GetString("sn")] = cv - } - - if rowData["IEDCQYMC"] == nil { - fmt.Println("数据错误") - } - - companyData := Map{ - "name": rowData["IEDCQYMC"], - "sn": rowData["IEDCTYSHXYDM"], - "address": rowData["IEDCQYDZ"], - "unit": rowData["IEDCSDMC"], - "zdmj": rowData["IEDCYDMJ"], - "yysr": rowData["IEDC2NYYSR"], - "lrze": rowData["IEDC2NLRZE"], - "yjsj": rowData["IEDCYNSJ"], - "yfjf": rowData["IEDCNYFFY"], - "zgrs": rowData["IEDCSBRS"], - "zywrwpfdl": rowData["IEDCZYWRWPFDL"], - "zhnh": rowData["IEDCZHNH"], - "admin_id": this.Session("admin_id").ToInt(), - "upload_data": rowData.ToJsonString(), - "org_id": orgId, - //"create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - //"lat": lat, - //"lng": lng, - } - //行业ID - //org := this.Db.Get("org", "id,name", Map{"id": orgId}) - //regin := "全国" - //if org != nil { - // regin = org.GetString("name") - //} - //baiduDataStr, _ := baidu.DefaultBaiDuMap.GetPosition(companyData.GetString("address"), regin) - //baiduData := ObjToMap(baiduDataStr) - - //city := Map{} - //if baiduData != nil && baiduData.GetCeilInt("status") == 0 { - // address := baiduData.GetSlice("result") - // if len(address) != 0 { - // companyData["lat"] = address.GetMap(0).GetMap("location").GetFloat64("lat") - // companyData["lng"] = address.GetMap(0).GetMap("location").GetFloat64("lng") - // - // city = this.Db.Get("city", "id", Map{"name[~]": address.GetMap(0).GetString("district"), "ORDER": "`level` DESC"}) - // if city == nil { - // city = this.Db.Get("city", "id", Map{"name[~]": address.GetMap(0).GetString("city"), "ORDER": "`level` DESC"}) - // } - // } - //} - - //if city != nil { - // companyData["city_id"] = city.GetCeilInt("id") - //} - - //行业ID - category := this.Db.Get("category", "id", Map{"code": rowData["IEDCSSXYXLDM"]}) - if category != nil { - companyData["category_id"] = category.GetCeilInt("id") - } - - ////此处需要优化 - //companyData["org_id"] = 3 - - //产业ID - industry := this.Db.Get("industry", "id", Map{"name": rowData["IEDCCYLB"]}) - if industry == nil { - industry = Map{ - "admin_id": this.Session("admin_id").ToInt(), - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - "name": rowData["IEDCCYLB"], - } - id := this.Db.Insert("industry", industry) - industry["id"] = id - } - - if industry.GetCeilInt("id") != 0 { - - //产业ID - industryAnalyse := this.Db.Get("industry_analyse", "id", Map{"AND": Map{"industry_id": industry.GetCeilInt("id"), "org_id": orgId}}) - if industryAnalyse == nil { - industryAnalyse = Map{ - "name": rowData["IEDCCYLB"], - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - "org_id": orgId, - "industry_id": industry.GetCeilInt("id"), - } - //if city != nil { - // industryAnalyse["city_id"] = city.GetCeilInt("id") - //} - this.Db.Insert("industry_analyse", industryAnalyse) - } - companyData["industry_id"] = industry.GetCeilInt("id") - } - - company := this.Db.Get("company", "id", Map{"name": companyData["name"]}) - //没有则创建 - if company == nil && companyData.GetString("sn") != "暂无" { - company = this.Db.Get("company", "id", Map{"sn": companyData["sn"]}) - } - - //没有则创建 - if company == nil { - //更新两张表 - companyData["create_time"] = time.Now().Unix() - id := this.Db.Insert("company", companyData) - companyData["company_id"] = id - company = Map{"id": id} - } else { - //有则更新 - this.Db.Update("company", companyData, Map{"id": company.GetCeilInt("id")}) - companyData["company_id"] = company.GetCeilInt("id") - companyData["create_time"] = time.Now().Unix() - } - - id := this.Db.Insert("company_history", companyData) - //更新最新的企业信息 - this.Db.Update("company", Map{"company_history_id": id}, Map{"id": company.GetCeilInt("id")}) - - } - - } - return nil - -} - -func excel(filePath string) [][][]string { - xlsx, err := excelize.OpenFile(filePath) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - list := xlsx.GetSheetList() - var data [][][]string - for _, v := range list { - rows, e := xlsx.GetRows(v) - if e != nil { - fmt.Println(e) - continue - } - data = append(data, rows) - } - - return data -} diff --git a/example/admin/org3.go b/example/admin/org3.go deleted file mode 100644 index 9231e78..0000000 --- a/example/admin/org3.go +++ /dev/null @@ -1,1263 +0,0 @@ -package admin - -import ( - . "../../../hotime" - . "../../common" - "fmt" - "github.com/chain-zhang/pinyin" - "github.com/xuri/excelize" - "os" - "sort" - "strings" - "time" - "unicode" -) - -type Org3 struct { -} - -func (that *Org3) decodeData2Sql(table [][]string, this *Context, orgId int) error { - tags := []Map{} //报错所有的tag记录 - tagCtgs := []Map{} - for k, v := range table { - - //第一排是指标分类,去除掉第一个参数,其存在合并所以,如果是合并的则删除 - if k == 0 { - - for ck, cv := range v { - cv = strings.Replace(cv, " ", "", -1) - cv = strings.Replace(cv, "\r\t", "", -1) - cv = strings.Replace(cv, "\r", "", -1) - v[ck] = cv - - if ck == 0 { - continue - } - if cv == "" { - v[ck] = v[ck-1] - cv = v[ck] - } - - tagCtg := this.Db.Get("tag_ctg", "*", Map{"name": cv}) - if tagCtg != nil { - tagCtgs = append(tagCtgs, tagCtg) - continue - } - tagCtg = Map{ - "name": cv, - "admin_id": this.Session("admin_id").ToInt(), - "parent_id": 1, //上传分类为1 - "org_id": orgId, - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - } - id := this.Db.Insert("tag_ctg", tagCtg) - - if id != 0 { - tagCtg["id"] = id - this.Db.Update("tag_ctg", Map{ - "index": ",1," + ObjToStr(id) + ",", - }, Map{"id": id}) - - tagCtgs = append(tagCtgs, tagCtg) - } - - } - - } - - //第二排是指标项,去除掉第一个参数, - //最重要的是参数tag生成,通过中文转拼音获取首字母实现,遇到同名的则最后加一位数字 - if k == 1 { - - for ck, cv := range v { - cv = strings.Replace(cv, " ", "", -1) - cv = strings.Replace(cv, "\r\t", "", -1) - cv = strings.Replace(cv, "\r", "", -1) - v[ck] = cv - if ck == 0 { - continue - } - //补充分类 - if ck >= len(table[0]) { - tagCtgs = append(tagCtgs, tagCtgs[len(tagCtgs)-1]) - } - //补充说明 - if ck >= len(table[3]) { - table[3] = append(table[3], table[3][len(table[3])-1]) - } - //补充单位 - if ck >= len(table[2]) { - table[2] = append(table[2], "") - } - - tag := this.Db.Get("tag", "*", Map{"AND": Map{"name": cv, "type": "0", "org_id": orgId}}) - - if tag != nil { - tags = append(tags, tag) - continue - } - sn, err := pinyin.New(cv).Split(" ").Mode(pinyin.InitialsInCapitals).Convert() - if err != nil { - fmt.Println(err) - sn = cv - } else { - - sns := strings.Split(sn, " ") - - sn = "IEDC" - for _, v1 := range sns { - - if v1 != "" && !unicode.IsPunct([]rune(v1)[0]) { - sn = sn + string([]rune(v1)[:1]) - fmt.Println(sn, v1) - } - } - } - //sn=strings.Replace(sn,"\ufffd","",-1) - - tagsn := this.Db.Get("tag", "id", Map{"AND": Map{"sn": sn, "type": "0", "org_id": orgId}}) - if tagsn != nil { - for i := 0; i < 100; i++ { - tagsn = this.Db.Get("tag", "id", Map{"AND": Map{"sn": sn + ObjToStr(i), "type": "0", "org_id": orgId}}) - if tagsn == nil { - sn = sn + ObjToStr(i) - break - } - } - } - - tag = Map{ - "name": cv, - "description": table[3][ck], //第三行对应位置为描述 - "unit": table[2][ck], - "admin_id": this.Session("admin_id").ToInt(), - "org_id": orgId, - "type": 0, - "sn": sn, - "tag_ctg_id": tagCtgs[ck-1].GetCeilInt("id"), - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - } - id := this.Db.Insert("tag", tag) - tag["id"] = id - tags = append(tags, tag) - } - - } - - //第四排以后是数据项,去除掉第一个参数, - //根据统一社会信用代码识别是否存在,同时将校验部分数字 - if k > 3 { - - //整行数据 - rowData := Map{} - for ck, cv := range v { - if ck == 0 { - continue - } - cv = strings.Replace(cv, " ", "", -1) - cv = strings.Replace(cv, "\r\t", "", -1) - cv = strings.Replace(cv, "\r", "", -1) - - if cv == "" { - - cv = "暂无" - //return errors.New("第" + ObjToStr(k+1) + "行," + ObjToStr(ck+1) + "列,数据为空请注意检查") - } - - v[ck] = cv - - if ck-1 >= len(tags) { - fmt.Println(cv, "表格错误") - continue - } - - rowData[tags[ck-1].GetString("sn")] = cv - } - - if rowData["IEDCQYMC"] == nil { - fmt.Println("数据错误") - } - - companyData := Map{ - "name": rowData["IEDCQYMC"], - "sn": rowData["IEDCTYSHXYDM"], - "address": rowData["IEDCQYDZ"], - "unit": rowData["IEDCSDMC"], - "zdmj": rowData["IEDCYDMJ"], - "yysr": rowData["IEDC2NYYSR"], - "lrze": rowData["IEDC2NLRZE"], - "yjsj": rowData["IEDCYNSJ"], - "yfjf": rowData["IEDCNYFFY"], - "zgrs": rowData["IEDCSBRS"], - "zywrwpfdl": rowData["IEDCZYWRWPFDL"], - "zhnh": rowData["IEDCZHNH"], - "admin_id": this.Session("admin_id").ToInt(), - "upload_data": rowData.ToJsonString(), - "org_id": orgId, - //"create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - //"lat": lat, - //"lng": lng, - } - //行业ID - //org := this.Db.Get("org", "id,name", Map{"id": orgId}) - //regin := "全国" - //if org != nil { - // regin = org.GetString("name") - //} - //baiduDataStr, _ := baidu.DefaultBaiDuMap.GetPosition(companyData.GetString("address"), regin) - //baiduData := ObjToMap(baiduDataStr) - - //city := Map{} - //if baiduData != nil && baiduData.GetCeilInt("status") == 0 { - // address := baiduData.GetSlice("result") - // if len(address) != 0 { - // companyData["lat"] = address.GetMap(0).GetMap("location").GetFloat64("lat") - // companyData["lng"] = address.GetMap(0).GetMap("location").GetFloat64("lng") - // - // city = this.Db.Get("city", "id", Map{"name[~]": address.GetMap(0).GetString("district"), "ORDER": "`level` DESC"}) - // if city == nil { - // city = this.Db.Get("city", "id", Map{"name[~]": address.GetMap(0).GetString("city"), "ORDER": "`level` DESC"}) - // } - // } - //} - - //if city != nil { - // companyData["city_id"] = city.GetCeilInt("id") - //} - - //行业ID - category := this.Db.Get("category", "id", Map{"code": rowData["IEDCSSXYXLDM"]}) - if category != nil { - companyData["category_id"] = category.GetCeilInt("id") - } - - ////此处需要优化 - //companyData["org_id"] = 3 - - //产业ID - industry := this.Db.Get("industry", "id", Map{"name": rowData["IEDCCYLB"]}) - if industry == nil { - industry = Map{ - "admin_id": this.Session("admin_id").ToInt(), - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - "name": rowData["IEDCCYLB"], - } - id := this.Db.Insert("industry", industry) - industry["id"] = id - } - - if industry.GetCeilInt("id") != 0 { - - //产业ID - industryAnalyse := this.Db.Get("industry_analyse", "id", Map{"AND": Map{"industry_id": industry.GetCeilInt("id"), "org_id": orgId}}) - if industryAnalyse == nil { - industryAnalyse = Map{ - "name": rowData["IEDCCYLB"], - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - "org_id": orgId, - "industry_id": industry.GetCeilInt("id"), - } - //if city != nil { - // industryAnalyse["city_id"] = city.GetCeilInt("id") - //} - this.Db.Insert("industry_analyse", industryAnalyse) - } - companyData["industry_id"] = industry.GetCeilInt("id") - } - - company := this.Db.Get("company", "id", Map{"name": companyData["name"]}) - //没有则创建 - if company == nil { - //更新两张表 - companyData["create_time"] = time.Now().Unix() - id := this.Db.Insert("company", companyData) - companyData["company_id"] = id - company = Map{"id": id} - } else { - //有则更新 - this.Db.Update("company", companyData, Map{"name": companyData["name"]}) - companyData["company_id"] = company.GetCeilInt("id") - companyData["create_time"] = time.Now().Unix() - } - - id := this.Db.Insert("company_history", companyData) - //更新最新的企业信息 - this.Db.Update("company", Map{"company_history_id": id}, Map{"id": company.GetCeilInt("id")}) - - } - - } - return nil - -} - -func (that *Org3) excel(filePath string) [][][]string { - xlsx, err := excelize.OpenFile(filePath) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - list := xlsx.GetSheetList() - var data [][][]string - for _, v := range list { - rows, e := xlsx.GetRows(v) - if e != nil { - fmt.Println(e) - continue - } - data = append(data, rows) - } - - return data -} - -func (that *Org3) analyse(data Map) Map { - res := Map{} - //亩均收入 - res["MJSR"] = data.GetFloat64("IEDC2NYYSR") / data.GetFloat64("IEDCYDMJ") - res["MJSRDF"] = "" //亩均收入得分 - //亩均税收 - res["MJSS"] = data.GetFloat64("IEDCYNSJ") / data.GetFloat64("IEDCYDMJ") - res["MJSSDF"] = "" //亩均税收得分 - - //人均收入 - res["RJSR"] = data.GetFloat64("IEDC2NYYSR") / data.GetFloat64("IEDCSBRS") - res["RJSRDF"] = "" //人均收入得分 - - //研发经费投入强度 - res["YFJFTRQD"] = data.GetFloat64("IEDCNYFFY") / data.GetFloat64("IEDC2NYYSR") - res["YFJFTRQDDF"] = "" //研发经费投入强度得分 - - //单位能耗税收 - res["DWNHSS"] = data.GetFloat64("IEDCYNSJ") / data.GetFloat64("IEDCZHNH") - res["DWNHSSDF"] = "" //单位能耗税收得分 - - //主要污染物税收 - //不足1按1计算 - if data.GetFloat64("IEDCZYWRWPFDL") < 1 { - data["IEDCZYWRWPFDL"] = 1 - } - - res["ZYWRWSS"] = data.GetFloat64("IEDCYNSJ") / data.GetFloat64("IEDCZYWRWPFDL") - res["ZYWRWSSDF"] = "" //主要污染物税收 - - res["NXZBDF"] = "" //6项指标得分 - - for k, _ := range res { - if res.GetString(k) == "无" { - res[k] = "否" - } - } - - //独角兽、瞪羚企业得分,一个一分 - res["DJSDLQYDF"] = 0 - if data.GetString("IEDCDJSQY") != "" && data.GetString("IEDCDJSQY") != "否" { - res["DJSDLQYDF"] = res.GetFloat64("DJSDLQYDF") + 1 - } - if data.GetString("IEDCDLQY ") != "" && data.GetString("IEDCDLQY") != "否" { - res["DJSDLQYDF"] = res.GetFloat64("DJSDLQYDF") + 1 - } - - //企业获得国家级、省级、市级企业技术中心,国家级,省级得1分,市级得0.5 - res["JSZXDF"] = 0 - //国家级及省级 - if (data.GetString("IEDCGJJQYJSZX") != "" && data.GetString("IEDCGJJQYJSZX") != "否") || //国家级 - (data.GetString("IEDCSJQYJSZX") != "" && data.GetString("IEDCSJQYJSZX") != "否") || //省级 - (data.GetString("IEDCGJJGCJSZX") != "" && data.GetString("IEDCGJJGCJSZX") != "否") || //国家级 - (data.GetString("IEDCSJGCJSZX") != "" && data.GetString("IEDCSJGCJSZX") != "否") { //省级 - res["JSZXDF"] = res.GetFloat64("JSZXDF") + 1 - } else - - //市级 - if (data.GetString("IEDCSJQYJSZX0") != "" && data.GetString("IEDCSJQYJSZX0") != "否") || - (data.GetString("IEDCSJGCJSZX0") != "" && data.GetString("IEDCSJQYJSZX") != "否") { - res["JSZXDF"] = res.GetFloat64("JSZXDF") + 0.5 - } - - //研发费用得分 - res["YFFYDF"] = 0 - if data.GetString("IEDCTRQD1WHZ3YS") != "" && data.GetString("IEDCTRQD1WHZ3YS") != "否" { - res["YFFYDF"] = 1 - } - - //高新技术企业得分 - res["GXJSQYDF"] = 0 - if data.GetString("IEDCGXJSQY") != "" && data.GetString("IEDCGXJSQY") != "否" { - res["GXJSQYDF"] = 1 - } - //发展潜力总分 - res["FZQLDF"] = res.GetFloat64("GXJSQYDF") + res.GetFloat64("YFFYDF") + - res.GetFloat64("JSZXDF") + res.GetFloat64("DJSDLQYDF") - - //首台(套)、首批次、首版次企业 - res["STTDF"] = 0 - if data.GetString("IEDCSTTSPCSBCQY") != "" && data.GetString("IEDCSTTSPCSBCQY") != "否" { - res["STTDF"] = 1 - } - - //专利得分 - res["ZLDF"] = 0 - - res["ZLDF"] = data.GetFloat64("IEDCPGJZL") + - data.GetFloat64("IEDCFMZL")*0.5 + - data.GetFloat64("IEDCSYXXZL")*0.1 + - data.GetFloat64("IEDCWGSJZL")*0.1 - - if res.GetFloat64("ZLDF") > 1 { - res["ZLDF"] = 1 - } - - //推广目录得分 - res["TGMLDF"] = 0 - if data.GetString("IEDCZMPPQY") != "" && data.GetString("IEDCZMPPQY") != "否" { - res["TGMLDF"] = 1 - } - - //知识产权总得分ZSCQDF - res["ZSCQDF"] = res.GetFloat64("ZLDF") + res.GetFloat64("STTDF") + res.GetFloat64("TGMLDF") - - //连续3年盈利得分 - res["LXSNYLDF"] = 3 - //18年 - if data.GetFloat64("IEDC1NLRZE") < 0 { - res["LXSNYLDF"] = res.GetInt("LXSNYLDF") - 1 - } - //19年 - if data.GetFloat64("IEDC1NLRZE0") < 0 { - res["LXSNYLDF"] = res.GetInt("LXSNYLDF") - 1 - } - //20年 - if data.GetFloat64("IEDC2NLRZE") < 0 { - res["LXSNYLDF"] = res.GetInt("LXSNYLDF") - 1 - } - - if res.GetInt("LXSNYLDF") == 3 { - res["LXSNYLDF"] = 1 - } else if res.GetInt("LXSNYLDF") > 0 { - res["LXSNYLDF"] = 0.5 - } - - //当年利润总额得分 - res["DNLRZEDF"] = 0 - //企业利润率 - res["QYLRL"] = data.GetFloat64("IEDC2NLRZE") / data.GetFloat64("IEDC2NYYSR") - if res.GetFloat64("QYLRL") > 0.1 { - res["DNLRZEDF"] = 1 - } else if res.GetFloat64("QYLRL") > 0 { - res["DNLRZEDF"] = 0.5 - } - //企业盈利能力总得分 - res["QYYLNLZDF"] = res.GetFloat64("DNLRZEDF") + res.GetFloat64("LXSNYLDF") - - //发展质量指标总分 - res["FZZLZBZDF"] = res.GetFloat64("QYYLNLZDF") + res.GetFloat64("ZSCQDF") + res.GetFloat64("FZQLDF") - - //企业连续3年亏损得分 - res["KSDF"] = 3 - //18年 - if data.GetFloat64("IEDC1NLRZE") < 0 { - res["KSDF"] = res.GetInt("LXSNYLDF") - 1 - } - //19年 - if data.GetFloat64("IEDC1NLRZE0") < 0 { - res["KSDF"] = res.GetInt("LXSNYLDF") - 1 - } - //20年 - if data.GetFloat64("IEDC2NLRZE") < 0 { - res["KSDF"] = res.GetInt("LXSNYLDF") - 1 - } - - //先统一扣0.5分 - if res.GetInt("LXSNYLDF") == 0 { - res["KSDF"] = 0.5 - } else { - res["KSDF"] = 0 - } - - //环保检查得分 - res["HBJCDF"] = 1 - if data.GetString("IEDCHBJCHBCCZBFXWT") == "一般" { - res["HBJCDF"] = 0.5 - } - if data.GetString("IEDCHBJCHBCCZBFXWT") == "重大" { - res["HBJCDF"] = 0 - } - - //减排技术升级改造 - res["JPJSSJDF"] = 0 - if data.GetString("IEDCJPJSSJGZ") != "" && data.GetString("IEDCJPJSSJGZ") != "否" { - res["JPJSSJDF"] = 1 - } - - //绿色生产工艺 - res["LSSCGYDF"] = res.GetFloat64("JPJSSJDF") + res.GetFloat64("HBJCDF") - - //安全检查得分 - res["AQJCDF"] = 0 - - if data.GetString("IEDCHBJCHBCCZBFXWT") == "一般" { - res["AQJCDF"] = -1 - } - if data.GetString("IEDCHBJCHBCCZBFXWT") == "重大" { - res["AQJCDF"] = -2 - } - //安全事故得分 - res["AQSGDF"] = 0 - - if data.GetString("IEDCFSAQSG") == "轻微" { - res["AQSGDF"] = -0.5 - } - if data.GetString("IEDCFSAQSG") == "一般" { - res["AQSGDF"] = -1 - } - if data.GetString("IEDCFSAQSG") == "重大" { - res["AQSGDF"] = -2 - } - - //企业风险隐患双预控体系建设得分 - res["QYFXYHSKTXJSDF"] = 0 - - if data.GetString("IEDCFXYHSYKTXJS") != "" && data.GetString("IEDCFXYHSYKTXJS") != "否" { - res["QYFXYHSKTXJSDF"] = 1 - } - - //企业安全生产是否达标得分 - res["QYAQSCDBDF"] = 0 - - if data.GetString("IEDCQYSCBZHJS") == "达标" { - res["QYAQSCDBDF"] = 1 - } - - //安全生产管理得分AQSCGLDF - res["AQSCGLDF"] = res.GetFloat64("QYAQSCDBDF") + res.GetFloat64("QYFXYHSKTXJSDF") + - res.GetFloat64("AQSGDF") + res.GetFloat64("AQJCDF") - - //"绿色安全指标得分", - res["LSAQZBDF"] = (res.GetFloat64("AQSCGLDF") + res.GetFloat64("LSSCGYDF")) / 4 * 5 - - //产业链30户得分 - res["CYL30HDF"] = 0 - - if data.GetString("IEDCCYLLZ、SJZD、SJ3HLTQY") != "" && data.GetString("IEDCCYLLZ、SJZD、SJ3HLTQY") != "否" { - res["CYL30HDF"] = 1 - } - - //市级100户重点企业得分 - res["SJ100HZDQYDF"] = 0 - - if data.GetString("IEDCSJ1HZDQYQSXZDQY") != "" && data.GetString("IEDCSJ1HZDQYQSXZDQY") != "否" { - res["SJ100HZDQYDF"] = 1 - } - - //区域重点企业得分 - res["QYZDQYDF"] = res.GetFloat64("CYL30HDF") + res.GetFloat64("SJ100HZDQYDF") - - //符合地区重点产业得分 - res["FHDQZDCYDF"] = 0 - - if data.GetString("IEDCFHDQZDCY") != "" && data.GetString("IEDCFHDQZDCY") != "否" { - res["FHDQZDCYDF"] = 1 - } - - //协作发展指标得分XZFZZBDF - res["XZFZZBDF"] = (res.GetFloat64("FHDQZDCYDF") + res.GetFloat64("QYZDQYDF")) / 3 * 5 - - //3项指标 - res["SXZBDF"] = res.GetFloat64("XZFZZBDF") + res.GetFloat64("LSAQZBDF") + res.GetFloat64("FZZLZBZDF") - - //产业人才得分 - res["CYRCDF"] = 0 - res["CYRCDF"] = data.GetInt("IEDCCYRC") * 2 - if res.GetInt("CYRCDF") > 5 { - res["CYRCDF"] = 5 - } - - //资产负债率得分 - res["ZCFZLDF"] = 0 - IEDCZCFZL := ObjToFloat64(strings.Replace(data.GetString("IEDCZCFZL"), "%", "", -1)) - if IEDCZCFZL <= 80 { - res["ZCFZLDF"] = 1 - } - - //科研人员占比得分 - res["KYRYZBDF"] = 0 - KYRYZBDF := ObjToFloat64(strings.Replace(data.GetString("IEDCKYRYZB"), "%", "", -1)) - if KYRYZBDF >= 8 { - res["KYRYZBDF"] = 1 - } - - //2年研发占比得分 - res["YFZBDF"] = 0 - YFZBDF := ObjToFloat64(strings.Replace(data.GetString("IEDC2NYFZB"), "%", "", -1)) - if YFZBDF >= 1.5 { - res["YFZBDF"] = 1 - } - - //具备专精特新知识产权要求得分 - res["JBZJTXZSCQYQDF"] = 0 - if data.GetString("IEDCZDHCYBZZDQY") != "" && data.GetString("IEDCZDHCYBZZDQY") != "否" { - res["JBZJTXZSCQYQDF"] = 1 - } - - //具备专精特新环境及条件得分 - res["JBZJTXHJJTJDF"] = 0 - if data.GetString("IEDCJPJSSJGZ") != "" && data.GetString("IEDCJPJSSJGZ") != "否" { - res["JBZJTXHJJTJDF"] = 1 - } - - //具备专精特新企业要求产品得分 - res["JBZJTXQYYQCPDF"] = 0 - if data.GetString("IEDCJBZJTXQYYQCP") != "" && data.GetString("IEDCJBZJTXQYYQCP") != "否" { - res["JBZJTXQYYQCPDF"] = 1 - } - - //具备专精特新企业基础要求得分 - res["JBZJTXQYJCYQDF"] = 0 - if data.GetString("IEDCJBZJTXQYJCYQ") != "" && data.GetString("IEDCJBZJTXQYJCYQ") != "否" { - res["JBZJTXQYJCYQDF"] = 1 - } - - ZJTXQLDFTotal := res.GetFloat64("JBZJTXQYJCYQDF") + - res.GetFloat64("JBZJTXQYYQCPDF") + - res.GetFloat64("JBZJTXHJJTJDF") + - res.GetFloat64("JBZJTXZSCQYQDF") + - res.GetFloat64("YFZBDF") + - res.GetFloat64("KYRYZBDF") + - res.GetFloat64("ZCFZLDF") - res["ZJTXQLDF"] = 0 - if ZJTXQLDFTotal >= 5 { - res["ZJTXQLDF"] = 10 - } else if ZJTXQLDFTotal >= 3 { - res["ZJTXQLDF"] = 6 - } else if ZJTXQLDFTotal >= 1 { - res["ZJTXQLDF"] = 3 - } - - res["JGTZ"] = data.GetFloat64("IEDCXZTZQK") - - return res -} - -//6+3+n及首页数据分析 -func (that *Org3) ctgAnalyse(datas []Map, totalAnalyse Map) Map { - home_data := totalAnalyse.GetMap("home_data") - - resTotal := Map{ - //经济效益 - "区域生产总值": "暂无", - "区域企业总数": len(datas), - - "梯度培育企业数": "暂无", - - "上市企业数": "暂无", - "征地企业数/租赁企业数": "暂无", - "征地企业总面积": "暂无", - "租赁企业总面积": "暂无", - "厂房总面积": "暂无", - - "楼宇总面积": "暂无", - "办公楼总面积": "暂无", - "研发楼总面积": "暂无", - - "区域综合用电": "暂无", - "区域综合用水": "暂无", - - "研究生及以上学历人数": "暂无", - "本科学历人数": "暂无", - "大专学历人数": "暂无", - - "大专以下学历人数": "暂无", - "区域职工平均年收入": "暂无", - - "技术证书持有人数": "暂无", - - "拥有环境管理体系数": "暂无", - "拥有职业健康体系数": "暂无", - - "属于本区重点企业配套数": "无", - "宿舍总面积": "无", - } - - for _, v := range datas { - analyse := v.GetMap("analyse") - upload_data := v.GetMap("upload_data") - - for k, _ := range upload_data { - if upload_data.GetString(k) == "无" { - upload_data[k] = "否" - } - } - - resTotal["区域经营收入"] = resTotal.GetFloat64("区域经营收入") + upload_data.GetFloat64("IEDC2NYYSR") - resTotal["区域纳税总值"] = resTotal.GetFloat64("区域纳税总值") + upload_data.GetFloat64("IEDCYNSJ") - resTotal["区域资产总额"] = resTotal.GetFloat64("区域资产总额") + upload_data.GetFloat64("IEDCZCZE") - - if upload_data.GetString("IEDCDJSQY") != "" && upload_data.GetString("IEDCDJSQY") != "否" { - resTotal["独角兽企业数"] = resTotal.GetInt("独角兽企业数") + 1 - } - if upload_data.GetString("IEDCDLQY ") != "" && upload_data.GetString("IEDCDLQY ") != "否" { - resTotal["瞪羚企业数"] = resTotal.GetInt("瞪羚企业数") + 1 - } - - //专精特新企业数 - if analyse.GetInt("ZJTXQLDF") >= 6 { - resTotal["专精特新企业数"] = resTotal.GetInt("专精特新企业数") + 1 - } - - //规上企业数 - if v.GetInt("gs") == 1 { - resTotal["规上企业数"] = resTotal.GetInt("规上企业数") + 1 - } - - if upload_data.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["技术改造投资备案数"] = resTotal.GetInt("技术改造投资备案数") + 1 - } - - if upload_data.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["固定资产投入数"] = resTotal.GetInt("固定资产投入数") + 1 - } - if upload_data.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["固定资产投入"] = resTotal.GetFloat64("固定资产投入") + upload_data.GetFloat64("IEDCXZTZQK") - } - - //技术中心 - if (upload_data.GetString("IEDCGJJQYJSZX") != "" && upload_data.GetString("IEDCGJJQYJSZX") != "否") || //国家级 - (upload_data.GetString("IEDCSJQYJSZX") != "" && upload_data.GetString("IEDCSJQYJSZX") != "否") || //省级 - (upload_data.GetString("IEDCSJQYJSZX0") != "" && upload_data.GetString("IEDCSJQYJSZX0") != "否") { - resTotal["企业技术中心数"] = resTotal.GetInt("企业技术中心数") + 1 - } - //工程技术中心 - if (upload_data.GetString("IEDCSJGCJSZX0") != "" && upload_data.GetString("IEDCSJQYJSZX") != "否") || - (upload_data.GetString("IEDCGJJGCJSZX") != "" && upload_data.GetString("IEDCGJJGCJSZX") != "否") || //国家级 - (upload_data.GetString("IEDCSJGCJSZX") != "" && upload_data.GetString("IEDCSJGCJSZX") != "否") { //省级 - - resTotal["工程技术中心数"] = resTotal.GetInt("工程技术中心数") + 1 - } - - if upload_data.GetString("IEDCGXJSQY") != "" && upload_data.GetString("IEDCGXJSQY") != "否" { - resTotal["高新技术企业数"] = resTotal.GetInt("高新技术企业数") + 1 - - } - - if upload_data.GetString("IEDCZMPPQY") != "" && upload_data.GetString("IEDCZMPPQY") != "否" { - resTotal["知名品牌数"] = resTotal.GetInt("知名品牌数") + 1 - } - - if upload_data.GetString("IEDCSTTSPCSBCQY") != "" && upload_data.GetString("IEDCSTTSPCSBCQY") != "否" { - resTotal["首台套/首批次/首版次数"] = resTotal.GetInt("首台套/首批次/首版次数") + 1 - - } - - resTotal["知识产权数"] = resTotal.GetInt("知识产权数") + upload_data.GetInt("IEDCPGJZL") + - upload_data.GetInt("IEDCFMZL") + upload_data.GetInt("IEDCSYXXZL") + - upload_data.GetInt("IEDCWGSJZL") - - resTotal["区域工业土地总面积"] = resTotal.GetFloat64("区域工业土地总面积") + upload_data.GetFloat64("IEDCYDMJ") - - resTotal["区域综合用煤"] = resTotal.GetFloat64("区域综合用煤") + upload_data.GetFloat64("IEDCZHNH") - - resTotal["区域总人数"] = resTotal.GetInt("区域总人数") + upload_data.GetInt("IEDCSBRS") - - resTotal["产业人才数"] = resTotal.GetInt("产业人才数") + upload_data.GetInt("IEDCCYRC") - - if upload_data.GetString("IEDCHBJCHBCCZBFXWT") != "" && upload_data.GetString("IEDCHBJCHBCCZBFXWT") != "否" { - resTotal["环保抽查处理数"] = resTotal.GetInt("环保抽查处理数") + 1 - } - - if upload_data.GetString("IEDCHBJCHBCCZBFXWT") != "" && upload_data.GetString("IEDCHBJCHBCCZBFXWT") != "否" { - resTotal["安全抽查隐患处理数"] = resTotal.GetInt("安全抽查隐患处理数") + 1 - } - - if upload_data.GetString("IEDCFSAQSG") != "" && upload_data.GetString("IEDCFSAQSG") != "否" { - resTotal["亡人事故数"] = resTotal.GetInt("亡人事故数") + 1 - } - - if upload_data.GetString("IEDCFXYHSYKTXJS") != "" && upload_data.GetString("IEDCFXYHSYKTXJS") != "否" { - resTotal["拥有安全管理体系数"] = resTotal.GetInt("拥有安全管理体系数") + 1 - } - - if upload_data.GetString("IEDCQYSCBZHJS") == "达标" { - resTotal["拥有质量管理体系数"] = resTotal.GetInt("拥有质量管理体系数") + 1 - } - - if upload_data.GetString("IEDCSJ1HZDQYQSXZDQY") != "" && upload_data.GetString("IEDCSJ1HZDQYQSXZDQY") != "否" { - resTotal["区域100户重点企业数"] = resTotal.GetInt("区域100户重点企业数") + 1 - } - - if upload_data.GetString("IEDCFHDQZDCY") != "" && upload_data.GetString("IEDCFHDQZDCY") != "否" { - resTotal["符合本区重点发展产业数"] = resTotal.GetInt("符合本区重点发展产业数") + 1 - } - - if upload_data.GetString("IEDCFHDQZDCY") != "" && upload_data.GetString("IEDCFHDQZDCY") != "否" { - resTotal["属于本区重点企业配套数"] = resTotal.GetInt("属于本区重点企业配套数") + 1 - } - resTotal["企业社保人数"] = resTotal.GetFloat64("企业社保人数") + upload_data.GetFloat64("IEDCSBRS") - resTotal["企业研发费用"] = resTotal.GetFloat64("企业研发费用") + upload_data.GetFloat64("IEDCNYFFY") - - resTotal["企业总能耗"] = resTotal.GetFloat64("企业总能耗") + upload_data.GetFloat64("IEDCZHNH") - resTotal["企业主要污染物排放量"] = resTotal.GetFloat64("企业主要污染物排放量") + upload_data.GetFloat64("IEDCZYWRWPFDL") - - } - resTotalNew := Map{} - for k, _ := range resTotal { - - if resTotal.GetString(k) != "暂无" { - resTotalNew[k] = resTotal.GetFloat64(k) - resTotalNew[k+"比值"] = resTotal.GetFloat64(k) / home_data.GetFloat64(k) - if resTotalNew.GetFloat64(k+"比值") == 0 { - resTotalNew[k+"比值"] = "0" - } - } else { - resTotalNew[k+"比值"] = "暂无" - resTotalNew[k] = "暂无" - } - - } - - return resTotalNew -} - -//6+3+n及首页数据分析 -func (that *Org3) totalAnalyse(datas []Map) (Map, Map, Map, Map) { - resTotal := Map{ - //经济效益 - "区域生产总值": "暂无", - "区域企业总数": len(datas), - - "梯度培育企业数": "暂无", - - "上市企业数": "暂无", - "征地企业数/租赁企业数": "暂无", - "征地企业总面积": "暂无", - "租赁企业总面积": "暂无", - "厂房总面积": "暂无", - - "楼宇总面积": "暂无", - "办公楼总面积": "暂无", - "研发楼总面积": "暂无", - - "区域综合用电": "暂无", - "区域综合用水": "暂无", - - "研究生及以上学历人数": "暂无", - "本科学历人数": "暂无", - "大专学历人数": "暂无", - - "大专以下学历人数": "暂无", - "区域职工平均年收入": "暂无", - - "技术证书持有人数": "暂无", - - "拥有环境管理体系数": "暂无", - "拥有职业健康体系数": "暂无", - - "属于本区重点企业配套数": "无", - "宿舍总面积": "无", - } - - sixItem := Map{} //6 - threeItem := Map{} //3 - nItem := Map{} //N - for _, v := range datas { - analyse := v.GetMap("analyse") - upload_data := v.GetMap("upload_data") - - for k, _ := range upload_data { - if upload_data.GetString(k) == "无" { - upload_data[k] = "否" - } - } - - resTotal["区域经营收入"] = resTotal.GetFloat64("区域经营收入") + upload_data.GetFloat64("IEDC2NYYSR") - resTotal["区域纳税总值"] = resTotal.GetFloat64("区域纳税总值") + upload_data.GetFloat64("IEDCYNSJ") - resTotal["区域资产总额"] = resTotal.GetFloat64("区域资产总额") + upload_data.GetFloat64("IEDCZCZE") - - if upload_data.GetString("IEDCDJSQY") != "" && upload_data.GetString("IEDCDJSQY") != "否" { - resTotal["独角兽企业数"] = resTotal.GetInt("独角兽企业数") + 1 - } - if upload_data.GetString("IEDCDLQY ") != "" && upload_data.GetString("IEDCDLQY ") != "否" { - resTotal["瞪羚企业数"] = resTotal.GetInt("瞪羚企业数") + 1 - } - - //专精特新企业数 - if analyse.GetInt("ZJTXQLDF") >= 6 { - resTotal["专精特新企业数"] = resTotal.GetInt("专精特新企业数") + 1 - } - - //规上企业数 - if v.GetInt("gs") == 1 { - resTotal["规上企业数"] = resTotal.GetInt("规上企业数") + 1 - } - - if upload_data.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["技术改造投资备案数"] = resTotal.GetInt("技术改造投资备案数") + 1 - } - - if upload_data.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["固定资产投入数"] = resTotal.GetInt("固定资产投入数") + 1 - } - if upload_data.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["固定资产投入"] = resTotal.GetFloat64("固定资产投入") + upload_data.GetFloat64("IEDCXZTZQK") - } - - //技术中心 - if (upload_data.GetString("IEDCGJJQYJSZX") != "" && upload_data.GetString("IEDCGJJQYJSZX") != "否") || //国家级 - (upload_data.GetString("IEDCSJQYJSZX") != "" && upload_data.GetString("IEDCSJQYJSZX") != "否") || //省级 - (upload_data.GetString("IEDCSJQYJSZX0") != "" && upload_data.GetString("IEDCSJQYJSZX0") != "否") { - resTotal["企业技术中心数"] = resTotal.GetInt("企业技术中心数") + 1 - } - //工程技术中心 - if (upload_data.GetString("IEDCSJGCJSZX0") != "" && upload_data.GetString("IEDCSJQYJSZX") != "否") || - (upload_data.GetString("IEDCGJJGCJSZX") != "" && upload_data.GetString("IEDCGJJGCJSZX") != "否") || //国家级 - (upload_data.GetString("IEDCSJGCJSZX") != "" && upload_data.GetString("IEDCSJGCJSZX") != "否") { //省级 - - resTotal["工程技术中心数"] = resTotal.GetInt("工程技术中心数") + 1 - } - - //技术中心 - if (upload_data.GetString("IEDCGJJQYJSZX") != "" && upload_data.GetString("IEDCGJJQYJSZX") != "否") || //国家级 - (upload_data.GetString("IEDCSJQYJSZX") != "" && upload_data.GetString("IEDCSJQYJSZX") != "否") || //省级 - (upload_data.GetString("IEDCSJQYJSZX0") != "" && upload_data.GetString("IEDCSJQYJSZX0") != "否") || - (upload_data.GetString("IEDCSJGCJSZX0") != "" && upload_data.GetString("IEDCSJQYJSZX") != "否") || - (upload_data.GetString("IEDCGJJGCJSZX") != "" && upload_data.GetString("IEDCGJJGCJSZX") != "否") || //国家级 - (upload_data.GetString("IEDCSJGCJSZX") != "" && upload_data.GetString("IEDCSJGCJSZX") != "否") { //省级 - - threeItem["投建企业技术中心/工程技术中心企业数"] = resTotal.GetInt("投建企业技术中心/工程技术中心企业数") + 1 - } - - if upload_data.GetString("IEDCGXJSQY") != "" && upload_data.GetString("IEDCGXJSQY") != "否" { - resTotal["高新技术企业数"] = resTotal.GetInt("高新技术企业数") + 1 - threeItem["高新技术企业数"] = threeItem.GetInt("高新技术企业数") + 1 - } - - if upload_data.GetString("IEDCZMPPQY") != "" && upload_data.GetString("IEDCZMPPQY") != "否" { - resTotal["知名品牌数"] = resTotal.GetInt("知名品牌数") + 1 - } - - if upload_data.GetString("IEDCSTTSPCSBCQY") != "" && upload_data.GetString("IEDCSTTSPCSBCQY") != "否" { - resTotal["首台套/首批次/首版次数"] = resTotal.GetInt("首台套/首批次/首版次数") + 1 - threeItem["首台套/首批次/首版次数"] = threeItem.GetInt("首台套/首批次/首版次数") + 1 - } - - if upload_data.GetInt("IEDCSYXXZL") != 0 || - upload_data.GetInt("IEDCFMZL") != 0 || - upload_data.GetInt("IEDCPGJZL") != 0 { - - threeItem["发明专利/实用新型专利/PCT国际专利企业数"] = threeItem.GetInt("发明专利/实用新型专利/PCT国际专利企业数") + 1 - } - - resTotal["知识产权数"] = resTotal.GetInt("知识产权数") + upload_data.GetInt("IEDCPGJZL") + - upload_data.GetInt("IEDCFMZL") + upload_data.GetInt("IEDCSYXXZL") + - upload_data.GetInt("IEDCWGSJZL") - - resTotal["区域工业土地总面积"] = resTotal.GetFloat64("区域工业土地总面积") + upload_data.GetFloat64("IEDCYDMJ") - - resTotal["区域综合用煤"] = resTotal.GetFloat64("区域综合用煤") + upload_data.GetFloat64("IEDCZHNH") - - resTotal["区域总人数"] = resTotal.GetInt("区域总人数") + upload_data.GetInt("IEDCSBRS") - - resTotal["产业人才数"] = resTotal.GetInt("产业人才数") + upload_data.GetInt("IEDCCYRC") - - if upload_data.GetString("IEDCJPJSSJGZ") != "" && upload_data.GetString("IEDCJPJSSJGZ") != "否" { - resTotal["实施减排升级改造数"] = resTotal.GetInt("实施减排升级改造数") + 1 - threeItem["减排技术升级改造企业数"] = threeItem.GetInt("减排技术升级改造企业数") + 1 - } - - if upload_data.GetString("IEDCHBJCHBCCZBFXWT") != "" && upload_data.GetString("IEDCHBJCHBCCZBFXWT") != "否" { - resTotal["环保抽查处理数"] = resTotal.GetInt("环保抽查处理数") + 1 - } - - if upload_data.GetString("IEDCHBJCHBCCZBFXWT") != "" && upload_data.GetString("IEDCHBJCHBCCZBFXWT") != "否" { - resTotal["安全抽查隐患处理数"] = resTotal.GetInt("安全抽查隐患处理数") + 1 - } - - if upload_data.GetString("IEDCFSAQSG") != "" && upload_data.GetString("IEDCFSAQSG") != "否" { - resTotal["亡人事故数"] = resTotal.GetInt("亡人事故数") + 1 - } - - if upload_data.GetString("IEDCFXYHSYKTXJS") != "" && upload_data.GetString("IEDCFXYHSYKTXJS") != "否" { - resTotal["拥有安全管理体系数"] = resTotal.GetInt("拥有安全管理体系数") + 1 - } - - if upload_data.GetString("IEDCQYSCBZHJS") == "达标" { - resTotal["拥有质量管理体系数"] = resTotal.GetInt("拥有质量管理体系数") + 1 - } - - if upload_data.GetString("IEDCSJ1HZDQYQSXZDQY") != "" && upload_data.GetString("IEDCSJ1HZDQYQSXZDQY") != "否" { - resTotal["区域100户重点企业数"] = resTotal.GetInt("区域100户重点企业数") + 1 - } - - if upload_data.GetString("IEDCFHDQZDCY") != "" && upload_data.GetString("IEDCFHDQZDCY") != "否" { - resTotal["符合本区重点发展产业数"] = resTotal.GetInt("符合本区重点发展产业数") + 1 - } - - if upload_data.GetString("IEDCJPJSSJGZ") != "" && upload_data.GetString("IEDCJPJSSJGZ") != "否" { - resTotal["属于本区重点企业配套数"] = resTotal.GetInt("属于本区重点企业配套数") + 1 - } - resTotal["企业社保人数"] = resTotal.GetFloat64("企业社保人数") + upload_data.GetFloat64("IEDCSBRS") - resTotal["企业研发费用"] = resTotal.GetFloat64("企业研发费用") + upload_data.GetFloat64("IEDCNYFFY") - - if upload_data.GetFloat64("IEDCNYFFY") > 1000 { - threeItem["研发经费投入>1000万元企业数"] = resTotal.GetInt("研发经费投入>1000万元企业数") + 1 - } - - resTotal["企业总能耗"] = resTotal.GetFloat64("企业总能耗") + upload_data.GetFloat64("IEDCZHNH") - resTotal["企业主要污染物排放量"] = resTotal.GetFloat64("企业主要污染物排放量") + upload_data.GetFloat64("IEDCZYWRWPFDL") - - run := func(level string) { - resTotal[level+"类企业数"] = resTotal.GetInt(level+"类企业数") + 1 - resTotal[level+"类企业数总分"] = resTotal.GetFloat64(level+"类企业数总分") + v.GetFloat64("score") - if v.GetFloat64("score") > resTotal.GetFloat64(level+"类企业数最高分") { - resTotal[level+"类企业数最高分"] = v.GetFloat64("score") - } - if v.GetFloat64("score") < resTotal.GetFloat64(level+"类企业数最低分") || - resTotal.GetFloat64(level+"类企业数最低分") == 0 { - resTotal[level+"类企业数最低分"] = v.GetFloat64("score") - } - //6 - resTotal[level+"类企业营业收入"] = resTotal.GetFloat64(level+"类企业营业收入") + upload_data.GetFloat64("IEDC2NYYSR") - resTotal[level+"类企业税收"] = resTotal.GetFloat64(level+"类企业税收") + upload_data.GetFloat64("IEDCYNSJ") - resTotal[level+"类企业占地面积"] = resTotal.GetFloat64(level+"类企业占地面积") + upload_data.GetFloat64("IEDCYDMJ") - resTotal[level+"类企业社保人数"] = resTotal.GetInt(level+"类企业社保人数") + upload_data.GetInt("IEDCSBRS") - resTotal[level+"类企业研发费用"] = resTotal.GetFloat64(level+"类企业研发费用") + upload_data.GetFloat64("IEDCNYFFY") - resTotal[level+"类企业总能耗"] = resTotal.GetFloat64(level+"类企业总能耗") + upload_data.GetFloat64("IEDCZHNH") - resTotal[level+"类企业主要污染物排放量"] = resTotal.GetFloat64(level+"类企业主要污染物排放量") + upload_data.GetFloat64("IEDCZYWRWPFDL") - } - switch v.GetCeilInt("level") { - case 0: - run("A") - case 1: - run("B") - case 2: - run("C") - case 3: - run("D") - } - //3 - if upload_data.GetString("IEDCZMPPQY") != "" && upload_data.GetString("IEDCZMPPQY") != "否" { - threeItem["进入本地区名优产品目录企业数"] = threeItem.GetInt("进入本地区名优产品目录企业数") + 1 - } - if analyse.GetInt("LXSNYLDF") == 1 { - threeItem["连续3年盈利/首年度盈利企业数"] = threeItem.GetInt("连续3年盈利/首年度盈利企业数") + 1 - } - - if upload_data.GetString("IEDCHBJCHBCCZBFXWT") == "一般" { - threeItem["环保检/抽查受一般性处理企业数"] = threeItem.GetInt("环保检/抽查受一般性处理企业数") + 1 - } - - if upload_data.GetString("IEDCHBJCHBCCZBFXWT") == "一般" { - threeItem["安全检/抽查存在风险隐患受一般性处理企业数"] = threeItem.GetInt("安全检/抽查存在风险隐患受一般性处理企业数") + 1 - } - if upload_data.GetString("IEDCFSAQSG") != "否" { - threeItem["安全事故发生企业数"] = threeItem.GetInt("安全事故发生企业数") + 1 - } - if upload_data.GetString("IEDCFXYHSYKTXJS") != "否" { - threeItem["已建/在建风险隐患双预控体系企业数"] = threeItem.GetInt("已建/在建风险隐患双预控体系企业数") + 1 - } - if upload_data.GetString("IEDCFXYHSYKTXJS") == "未达标" { - threeItem["生产标准不达标企业数"] = threeItem.GetInt("生产标准不达标企业数") + 1 - } - if upload_data.GetString("IEDCFHDQZDCY") != "" && upload_data.GetString("IEDCFHDQZDCY") != "否" { - threeItem["所处产业符合本地区重点发展产业企业数"] = threeItem.GetInt("所处产业符合本地区重点发展产业企业数") + 1 - } - - if upload_data.GetString("IEDCCYLLZ、SJZD、SJ3HLTQY") != "" && upload_data.GetString("IEDCCYLLZ、SJZD、SJ3HLTQY") != "否" { - threeItem["产业链链主/省级重点/市级30户龙头企业数"] = threeItem.GetInt("产业链链主/省级重点/市级30户龙头企业数") + 1 - } - if upload_data.GetString("IEDCCYLLZ、SJZD、SJ3HLTQY") != "" && upload_data.GetString("IEDCCYLLZ、SJZD、SJ3HLTQY") != "否" { - threeItem["市级100户重点/区市县重点企业数"] = threeItem.GetInt("IEDCSJ1HZDQYQSXZDQY") + 1 - } - - //N - if upload_data.GetInt("IEDCCYRC") > 0 { - nItem["配备年薪≥30万元人才企业数"] = nItem.GetInt("配备年薪≥30万元人才企业数") + 1 - } - if upload_data.GetString("IEDCZDHCYBZZDQY") != "" && upload_data.GetString("IEDCZDHCYBZZDQY") != "否" { - nItem["有效发明专利≥2项/满足参与制定标准企业数"] = nItem.GetInt("有效发明专利≥2项/满足参与制定标准企业数") + 1 - } - if upload_data.GetString("IEDCJPJSSJGZ") != "" && upload_data.GetString("IEDCJPJSSJGZ") != "否" { - nItem["具备技术创新任务设备/环境企业数"] = nItem.GetInt("具备技术创新任务设备/环境企业数") + 1 - } - if upload_data.GetString("IEDCJBZJTXQYJCYQ") != "" && upload_data.GetString("IEDCJBZJTXQYJCYQ") != "否" { - nItem["特定细分≥3年且主导产品≥营收60%企业数"] = nItem.GetInt("特定细分≥3年且主导产品≥营收60%企业数") + 1 - } - if upload_data.GetString("IEDCJBZJTXQYYQCP") != "" && upload_data.GetString("IEDCJBZJTXQYYQCP") != "否" { - nItem["大专/中级职称占比≥35%企业数"] = nItem.GetInt("大专/中级职称占比≥35%企业数") + 1 - } - if upload_data.GetString("IEDCJPJSSJGZ") != "" && upload_data.GetString("IEDCJPJSSJGZ") != "否" { - nItem["进行技术改造企业数"] = nItem.GetInt("进行技术改造企业数") + 1 - } - - } - - sixItem["亩均收入"] = resTotal.GetFloat64("区域经营收入") / resTotal.GetFloat64("区域工业土地总面积") - sixItem["亩均税收"] = resTotal.GetFloat64("区域纳税总值") / resTotal.GetFloat64("区域工业土地总面积") - sixItem["人均收入"] = resTotal.GetFloat64("区域经营收入") / resTotal.GetFloat64("企业社保人数") - sixItem["研发经费投入强度"] = resTotal.GetFloat64("企业研发费用") / resTotal.GetFloat64("区域经营收入") - sixItem["单位能耗税收"] = resTotal.GetFloat64("区域纳税总值") / resTotal.GetFloat64("企业总能耗") - sixItem["主要污染物税收"] = resTotal.GetFloat64("区域纳税总值") / resTotal.GetFloat64("企业主要污染物排放量") - - run1 := func(level string) { - resTotal[level+"类企业数平均分"] = resTotal.GetFloat64(level+"类企业数总分") / resTotal.GetFloat64(level+"类企业数") - sixItem[level+"类亩均收入"] = resTotal.GetFloat64(level+"类企业营业收入") / resTotal.GetFloat64(level+"类企业占地面积") - sixItem[level+"类亩均税收"] = resTotal.GetFloat64(level+"类企业税收") / resTotal.GetFloat64(level+"类企业占地面积") - sixItem[level+"类人均收入"] = resTotal.GetFloat64(level+"类企业营业收入") / resTotal.GetFloat64(level+"类企业社保人数") - sixItem[level+"类研发经费投入强度"] = resTotal.GetFloat64(level+"类企业研发费用") / resTotal.GetFloat64(level+"类企业营业收入") - sixItem[level+"类单位能耗税收"] = resTotal.GetFloat64(level+"类企业税收") / resTotal.GetFloat64(level+"类企业总能耗") - if resTotal.GetFloat64(level+"类企业主要污染物排放量") == 0 { - fmt.Println(level, resTotal[level+"类企业主要污染物排放量"], resTotal.GetFloat64(level+"类企业主要污染物排放量")) - resTotal[level+"类企业主要污染物排放量"] = 1 - } - sixItem[level+"类主要污染物税收"] = resTotal.GetFloat64(level+"类企业税收") / resTotal.GetFloat64(level+"类企业主要污染物排放量") - } - - run1("A") - run1("B") - run1("C") - run1("D") - - return resTotal, sixItem, threeItem, nItem -} - -//单个企业分析 -func (that *Org3) analyseSort(datas []Map) []Map { - cs := append(Companys{}, datas...) - - sort6Get := func(指标名称 string, 指标得分名称 string, cs Companys, point float64) Companys { - csLength := len(cs) - analyseTypeName = "analyse" - analyseSortType = 指标名称 //亩均收入得分 - sort.Sort(cs) - - for _, data := range cs { - v := data.GetMap("analyse") - k := len(cs) - 1 - if v.GetFloat64(analyseSortType) == cs[k].GetMap("analyse").GetFloat64(analyseSortType) { - v[analyseSortType+"排名"] = k + 1 - } else { - for k1, data1 := range cs { - v1 := data1.GetMap("analyse") - if v.GetFloat64(analyseSortType) >= v1.GetFloat64(analyseSortType) { - k = k1 - v[analyseSortType+"排名"] = k1 + 1 - break - } - } - } - - if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.1 { - v[指标得分名称] = point * 1.0 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.3 { - v[指标得分名称] = point * 0.85 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.5 { - v[指标得分名称] = point * 0.75 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.7 { - v[指标得分名称] = point * 0.6 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.9 { - v[指标得分名称] = point * 0.5 - } else { - v[指标得分名称] = point * 0.25 - } - if v.GetFloat64(指标名称) == 0 { - v[指标得分名称] = point * 0 - } - - //6项指标得分 - if 指标名称 == "ZYWRWSS" { - v["NXZBDF"] = v.GetFloat64("MJSRDF") + v.GetFloat64("MJSSDF") + - v.GetFloat64("RJSRDF") + v.GetFloat64("YFJFTRQDDF") + - v.GetFloat64("DWNHSSDF") + v.GetFloat64("ZYWRWSSDF") - } - } - return cs - } - - sort6Get("MJSR", "MJSRDF", cs, 15) - sort6Get("MJSS", "MJSSDF", cs, 15) - sort6Get("RJSR", "RJSRDF", cs, 10) - sort6Get("YFJFTRQD", "YFJFTRQDDF", cs, 10) - sort6Get("DWNHSS", "DWNHSSDF", cs, 5) - sort6Get("ZYWRWSS", "ZYWRWSSDF", cs, 5) - - csLength := len(cs) - analyseSortType = "IEDCXZTZQK" //技改投资 - analyseTypeName = "upload_data" - sort.Sort(cs) - - for _, data := range cs { - - //fmt.Println("dasdas", data.GetString("name"), data.GetMap("upload_data").GetFloat64(analyseSortType)) - - v := data.GetMap("analyse") - k := len(cs) - 1 - if v.GetFloat64(analyseSortType) == cs[k].GetMap("analyse").GetFloat64(analyseSortType) { - v[analyseSortType+"排名"] = k + 1 - } else { - for k1, data1 := range cs { - v1 := data1.GetMap("analyse") - if v.GetFloat64(analyseSortType) >= v1.GetFloat64(analyseSortType) { - k = k1 - v[analyseSortType+"排名"] = k1 + 1 - break - } - } - } - - v["JGTZPM"] = k + 1 - if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.3 { - v["JGTZDF"] = 5 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.6 { - v["JGTZDF"] = 4 - } else { - v["JGTZDF"] = 2 - } - if v.GetFloat64("JGTZ") == 0 { - v["JGTZDF"] = 2 - } - //N总得分以及所有项总分,以及企业评级 - v["NZDF"] = v.GetFloat64("JGTZDF") + v.GetFloat64("ZJTXQLDF") + v.GetFloat64("CYRCDF") - - v["ZDF"] = v.GetFloat64("NZDF") + v.GetFloat64("SXZBDF") + v.GetFloat64("NXZBDF") - } - analyseTypeName = "analyse" - analyseSortType = "ZDF" //技改投资 - sort.Sort(cs) - - for _, data := range cs { - v := data.GetMap("analyse") - //v := data.GetMap("analyse") - k := len(cs) - 1 - //fmt.Println(v.GetFloat64(analyseSortType),cs[k].GetMap("analyse").GetFloat64(analyseSortType)) - if v.GetFloat64(analyseSortType) == cs[k].GetMap("analyse").GetFloat64(analyseSortType) { - v[analyseSortType+"排名"] = k + 1 - } else { - for k1, data1 := range cs { - v1 := data1.GetMap("analyse") - if v.GetFloat64(analyseSortType) >= v1.GetFloat64(analyseSortType) { - k = k1 - v[analyseSortType+"排名"] = k + 1 - break - } - } - } - - v["ZPM"] = k + 1 - v["ZQYS"] = len(cs) - if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.1 { - v["PJ"] = "A" - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.8 { - v["PJ"] = "B" - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.89 { - v["PJ"] = "C" - } else { - v["PJ"] = "D" - } - } - - return cs -} diff --git a/example/admin/org4.go b/example/admin/org4.go deleted file mode 100644 index 8838ac6..0000000 --- a/example/admin/org4.go +++ /dev/null @@ -1,1210 +0,0 @@ -package admin - -import ( - . "../../common" - "fmt" - "sort" - "strings" -) - -type Org4 struct { -} - -func (that *Org4) analyse(data Map) Map { - res := Map{} - //亩均收入 - res["MJSR"] = data.GetFloat64("IEDC2NYYSR") / data.GetFloat64("IEDCYDMJ") - res["MJSRDF"] = "" //亩均收入得分 - //亩均税收 - res["MJSS"] = data.GetFloat64("IEDCYNSJ") / data.GetFloat64("IEDCYDMJ") - res["MJSSDF"] = "" //亩均税收得分 - - //人均收入 - res["RJSR"] = data.GetFloat64("IEDC2NYYSR") / data.GetFloat64("IEDCSBRS") - res["RJSRDF"] = "" //人均收入得分 - - //研发经费投入强度 - res["YFJFTRQD"] = data.GetFloat64("IEDCNYFFY") / data.GetFloat64("IEDC2NYYSR") - res["YFJFTRQDDF"] = "" //研发经费投入强度得分 - - //单位能耗税收 - res["DWNHSS"] = data.GetFloat64("IEDCYNSJ") / data.GetFloat64("IEDCZHNH") - res["DWNHSSDF"] = "" //单位能耗税收得分 - - //主要污染物税收 - //不足1按1计算 - if data.GetFloat64("IEDCZYWRWPFDL") < 1 { - data["IEDCZYWRWPFDL"] = 1 - } - - res["ZYWRWSS"] = data.GetFloat64("IEDCYNSJ") / data.GetFloat64("IEDCZYWRWPFDL") - res["ZYWRWSSDF"] = "" //主要污染物税收 - - res["NXZBDF"] = "" //6项指标得分 - - for k, _ := range res { - if res.GetString(k) == "无" { - res[k] = "否" - } - } - - //独角兽、瞪羚企业得分,一个一分 - res["DJSDLQYDF"] = 0 - if data.GetString("IEDCDJSQY") != "" && data.GetString("IEDCDJSQY") != "否" { - res["DJSDLQYDF"] = res.GetFloat64("DJSDLQYDF") + 1 - } - if data.GetString("IEDCDLQY ") != "" && data.GetString("IEDCDLQY") != "否" { - res["DJSDLQYDF"] = res.GetFloat64("DJSDLQYDF") + 1 - } - - //企业获得国家级、省级、市级企业技术中心,国家级,省级得1分,市级得0.5 - res["JSZXDF"] = 0 - //国家级及省级 - if (data.GetString("IEDCGJJQYJSZX") != "" && data.GetString("IEDCGJJQYJSZX") != "否") || //国家级 - (data.GetString("IEDCSJQYJSZX") != "" && data.GetString("IEDCSJQYJSZX") != "否") || //省级 - (data.GetString("IEDCGJJGCJSZX") != "" && data.GetString("IEDCGJJGCJSZX") != "否") || //国家级 - (data.GetString("IEDCSJGCJSZX") != "" && data.GetString("IEDCSJGCJSZX") != "否") { //省级 - res["JSZXDF"] = res.GetFloat64("JSZXDF") + 1 - } else - - //市级 - if (data.GetString("IEDCSJQYJSZX0") != "" && data.GetString("IEDCSJQYJSZX0") != "否") || - (data.GetString("IEDCSJGCJSZX0") != "" && data.GetString("IEDCSJQYJSZX") != "否") { - res["JSZXDF"] = res.GetFloat64("JSZXDF") + 0.5 - } - - //研发费用得分 - res["YFFYDF"] = 0 - if data.GetString("IEDCTRQD1WHZ3YS") != "" && data.GetString("IEDCTRQD1WHZ3YS") != "否" { - res["YFFYDF"] = 1 - } - - //高新技术企业得分 - res["GXJSQYDF"] = 0 - if data.GetString("IEDCGXJSQY") != "" && data.GetString("IEDCGXJSQY") != "否" { - res["GXJSQYDF"] = 1 - } - //发展潜力总分 - res["FZQLDF"] = res.GetFloat64("GXJSQYDF") + res.GetFloat64("YFFYDF") + - res.GetFloat64("JSZXDF") + res.GetFloat64("DJSDLQYDF") - - //首台(套)、首批次、首版次企业 - res["STTDF"] = 0 - if data.GetString("IEDCSTTSPCSBCQY") != "" && data.GetString("IEDCSTTSPCSBCQY") != "否" { - res["STTDF"] = 1 - } - - //专利得分 - res["ZLDF"] = 0 - - res["ZLDF"] = data.GetFloat64("IEDCPGJZL") + - data.GetFloat64("IEDCFMZL")*0.5 + - data.GetFloat64("IEDCSYXXZL")*0.1 + - data.GetFloat64("IEDCWGSJZL")*0.1 - - if res.GetFloat64("ZLDF") > 1 { - res["ZLDF"] = 1 - } - - //推广目录得分 - res["TGMLDF"] = 0 - if data.GetString("IEDCZMPPQY") != "" && data.GetString("IEDCZMPPQY") != "否" { - res["TGMLDF"] = 1 - } - - //知识产权总得分ZSCQDF - res["ZSCQDF"] = res.GetFloat64("ZLDF") + res.GetFloat64("STTDF") + res.GetFloat64("TGMLDF") - - //连续3年盈利得分 - res["LXSNYLDF"] = 3 - //18年 - if data.GetFloat64("IEDC1NLRZE") < 0 { - res["LXSNYLDF"] = res.GetInt("LXSNYLDF") - 1 - } - //19年 - if data.GetFloat64("IEDC1NLRZE0") < 0 { - res["LXSNYLDF"] = res.GetInt("LXSNYLDF") - 1 - } - //20年 - if data.GetFloat64("IEDC2NLRZE") < 0 { - res["LXSNYLDF"] = res.GetInt("LXSNYLDF") - 1 - } - - if res.GetInt("LXSNYLDF") == 3 { - res["LXSNYLDF"] = 1 - } else if res.GetInt("LXSNYLDF") > 0 { - res["LXSNYLDF"] = 0.5 - } - - //当年利润总额得分 - res["DNLRZEDF"] = 0 - //企业利润率 - res["QYLRL"] = data.GetFloat64("IEDC2NLRZE") / data.GetFloat64("IEDC2NYYSR") - if res.GetFloat64("QYLRL") > 0.1 { - res["DNLRZEDF"] = 1 - } else if res.GetFloat64("QYLRL") > 0 { - res["DNLRZEDF"] = 0.5 - } - //企业盈利能力总得分 - res["QYYLNLZDF"] = res.GetFloat64("DNLRZEDF") + res.GetFloat64("LXSNYLDF") - - //发展质量指标总分 - res["FZZLZBZDF"] = res.GetFloat64("QYYLNLZDF") + res.GetFloat64("ZSCQDF") + res.GetFloat64("FZQLDF") - - //企业连续3年亏损得分 - res["KSDF"] = 3 - //18年 - if data.GetFloat64("IEDC1NLRZE") < 0 { - res["KSDF"] = res.GetInt("LXSNYLDF") - 1 - } - //19年 - if data.GetFloat64("IEDC1NLRZE0") < 0 { - res["KSDF"] = res.GetInt("LXSNYLDF") - 1 - } - //20年 - if data.GetFloat64("IEDC2NLRZE") < 0 { - res["KSDF"] = res.GetInt("LXSNYLDF") - 1 - } - - //先统一扣0.5分 - if res.GetInt("LXSNYLDF") == 0 { - res["KSDF"] = 0.5 - } else { - res["KSDF"] = 0 - } - - //环保检查得分 - res["HBJCDF"] = 1 - if data.GetString("IEDCHBJCHBCCZBFXWT") == "一般" { - res["HBJCDF"] = 0.5 - } - if data.GetString("IEDCHBJCHBCCZBFXWT") == "重大" { - res["HBJCDF"] = 0 - } - - //减排技术升级改造 - res["JPJSSJDF"] = 0 - if data.GetString("IEDCJPJSSJGZ") != "" && data.GetString("IEDCJPJSSJGZ") != "否" { - res["JPJSSJDF"] = 1 - } - - //绿色生产工艺 - res["LSSCGYDF"] = res.GetFloat64("JPJSSJDF") + res.GetFloat64("HBJCDF") - - //安全检查得分 - res["AQJCDF"] = 0 - - if data.GetString("IEDCHBJCHBCCZBFXWT") == "一般" { - res["AQJCDF"] = -1 - } - if data.GetString("IEDCHBJCHBCCZBFXWT") == "重大" { - res["AQJCDF"] = -2 - } - //安全事故得分 - res["AQSGDF"] = 0 - - if data.GetString("IEDCFSAQSG") == "轻微" { - res["AQSGDF"] = -0.5 - } - if data.GetString("IEDCFSAQSG") == "一般" { - res["AQSGDF"] = -1 - } - if data.GetString("IEDCFSAQSG") == "重大" { - res["AQSGDF"] = -2 - } - - //企业风险隐患双预控体系建设得分 - res["QYFXYHSKTXJSDF"] = 0 - - if data.GetString("IEDCFXYHSYKTXJS") != "" && data.GetString("IEDCFXYHSYKTXJS") != "否" { - res["QYFXYHSKTXJSDF"] = 1 - } - - //企业安全生产是否达标得分 - res["QYAQSCDBDF"] = 0 - - if data.GetString("IEDCQYSCBZHJS") == "达标" { - res["QYAQSCDBDF"] = 1 - } - - //安全生产管理得分AQSCGLDF - res["AQSCGLDF"] = res.GetFloat64("QYAQSCDBDF") + res.GetFloat64("QYFXYHSKTXJSDF") + - res.GetFloat64("AQSGDF") + res.GetFloat64("AQJCDF") - - //"绿色安全指标得分", - res["LSAQZBDF"] = (res.GetFloat64("AQSCGLDF") + res.GetFloat64("LSSCGYDF")) / 4 * 5 - - //产业链30户得分 - res["CYL30HDF"] = 0 - - if data.GetString("IEDCCYLLZ、SJZD、SJ3HLTQY") != "" && data.GetString("IEDCCYLLZ、SJZD、SJ3HLTQY") != "否" { - res["CYL30HDF"] = 1 - } - - //市级100户重点企业得分 - res["SJ100HZDQYDF"] = 0 - - if data.GetString("IEDCSJ1HZDQYQSXZDQY") != "" && data.GetString("IEDCSJ1HZDQYQSXZDQY") != "否" { - res["SJ100HZDQYDF"] = 1 - } - - //区域重点企业得分 - res["QYZDQYDF"] = res.GetFloat64("CYL30HDF") + res.GetFloat64("SJ100HZDQYDF") - - //符合地区重点产业得分 - res["FHDQZDCYDF"] = 0 - - if data.GetString("IEDCFHDQZDCY") != "" && data.GetString("IEDCFHDQZDCY") != "否" { - res["FHDQZDCYDF"] = 1 - } - - //协作发展指标得分XZFZZBDF - res["XZFZZBDF"] = (res.GetFloat64("FHDQZDCYDF") + res.GetFloat64("QYZDQYDF")) / 3 * 5 - - //3项指标 - res["SXZBDF"] = res.GetFloat64("XZFZZBDF") + res.GetFloat64("LSAQZBDF") + res.GetFloat64("FZZLZBZDF") - - //产业人才得分 - res["CYRCDF"] = 0 - res["CYRCDF"] = data.GetInt("IEDCCYRC") * 2 - if res.GetInt("CYRCDF") > 5 { - res["CYRCDF"] = 5 - } - - //资产负债率得分 - res["ZCFZLDF"] = 0 - IEDCZCFZL := ObjToFloat64(strings.Replace(data.GetString("IEDCZCFZL"), "%", "", -1)) - if IEDCZCFZL <= 80 { - res["ZCFZLDF"] = 1 - } - - //科研人员占比得分 - res["KYRYZBDF"] = 0 - KYRYZBDF := ObjToFloat64(strings.Replace(data.GetString("IEDCKYRYZB"), "%", "", -1)) - if KYRYZBDF >= 8 { - res["KYRYZBDF"] = 1 - } - - //2年研发占比得分 - res["YFZBDF"] = 0 - YFZBDF := ObjToFloat64(strings.Replace(data.GetString("IEDC2NYFZB"), "%", "", -1)) - if YFZBDF >= 1.5 { - res["YFZBDF"] = 1 - } - - //具备专精特新知识产权要求得分 - res["JBZJTXZSCQYQDF"] = 0 - if data.GetString("IEDCZDHCYBZZDQY") != "" && data.GetString("IEDCZDHCYBZZDQY") != "否" { - res["JBZJTXZSCQYQDF"] = 1 - } - - //具备专精特新环境及条件得分 - res["JBZJTXHJJTJDF"] = 0 - if data.GetString("IEDCJPJSSJGZ") != "" && data.GetString("IEDCJPJSSJGZ") != "否" { - res["JBZJTXHJJTJDF"] = 1 - } - - //具备专精特新企业要求产品得分 - res["JBZJTXQYYQCPDF"] = 0 - if data.GetString("IEDCJBZJTXQYYQCP") != "" && data.GetString("IEDCJBZJTXQYYQCP") != "否" { - res["JBZJTXQYYQCPDF"] = 1 - } - - //具备专精特新企业基础要求得分 - res["JBZJTXQYJCYQDF"] = 0 - if data.GetString("IEDCJBZJTXQYJCYQ") != "" && data.GetString("IEDCJBZJTXQYJCYQ") != "否" { - res["JBZJTXQYJCYQDF"] = 1 - } - - ZJTXQLDFTotal := res.GetFloat64("JBZJTXQYJCYQDF") + - res.GetFloat64("JBZJTXQYYQCPDF") + - res.GetFloat64("JBZJTXHJJTJDF") + - res.GetFloat64("JBZJTXZSCQYQDF") + - res.GetFloat64("YFZBDF") + - res.GetFloat64("KYRYZBDF") + - res.GetFloat64("ZCFZLDF") - res["ZJTXQLDF"] = 0 - if ZJTXQLDFTotal >= 5 { - res["ZJTXQLDF"] = 10 - } else if ZJTXQLDFTotal >= 3 { - res["ZJTXQLDF"] = 6 - } else if ZJTXQLDFTotal >= 1 { - res["ZJTXQLDF"] = 3 - } - - res["JGTZ"] = data.GetFloat64("IEDCXZTZQK") - - return res -} - -//6+3+n及首页数据分析 -func ctgAnalyse(datas []Map, totalAnalyse Map) Map { - home_data := totalAnalyse.GetMap("home_data") - - resTotal := Map{ - //经济效益 - "区域生产总值": "暂无", - "区域企业总数": len(datas), - - "梯度培育企业数": "暂无", - - "上市企业数": "暂无", - "征地企业数/租赁企业数": "暂无", - "征地企业总面积": "暂无", - "租赁企业总面积": "暂无", - "厂房总面积": "暂无", - - "楼宇总面积": "暂无", - "办公楼总面积": "暂无", - "研发楼总面积": "暂无", - - "区域综合用电": "暂无", - "区域综合用水": "暂无", - - "研究生及以上学历人数": "暂无", - "本科学历人数": "暂无", - "大专学历人数": "暂无", - - "大专以下学历人数": "暂无", - "区域职工平均年收入": "暂无", - - "技术证书持有人数": "暂无", - - "拥有环境管理体系数": "暂无", - "拥有职业健康体系数": "暂无", - - "属于本区重点企业配套数": "无", - "宿舍总面积": "无", - } - - for _, v := range datas { - uploadData := v.GetMap("upload_data") - - //上传数据 - //uploadData := company.GetMap("upload_data") - for k, _ := range uploadData { - strV := uploadData.GetString(k) - strV = strings.Replace(strV, " ", "", -1) - strV = strings.Replace(strV, "符合", "", -1) - strV = strings.Replace(strV, "条", "", -1) - v := float64(0) - if strV == "无" { - strV = "否" - } - - if strV == "未完成" { - strV = "否" - } - - switch strV { - case "年度实现盈利": - v = 2 - case "未达标": - v = -1 - case "轻微": - v = 1 - case "一般": - v = 2 - case "重大": - v = 3 - case "市级": - v = 1 - case "省级": - v = 2 - case "国家级": - v = 3 - case "国家级、行业": - v = 3 - case "主导、国家级": - v = 8 - case "“一带一路”区域": - v = 3 - case "国际": - v = 4 - case "行业": - v = 5 - case "专精特新": - v = 10 - - case "区(市)县重点企业": - v = 6 - case "市级100户重点企业": - v = 7 - - case "区域领先": - v = 1 - case "国内领先": - v = 2 - case "全球领先": - v = 3 - - case "200万以上": - v = 2 - - case "20%以上": - v = 0.2 - case "15%-20%": - v = 0.15 - case "10%-15%": - v = 0.1 - case "5%-10%": - v = 0.05 - case "0%-5%": - v = 0.01 - - case "0%-3%": - v = 0 - case "3-5%": - v = 0.03 - case "3%-5%": - v = 0.03 - - case "增长15%以上": - v = 0.15 - case "增长10-15%": - v = 0.1 - case "增长5-10%": - v = 0.05 - case "增长0-5%": - v = 0.01 - case "下降0-5%": - v = -0.01 - case "下降5-10%": - v = -0.05 - case "下降10-15%": - v = -0.1 - case "下降15%以上": - v = -0.15 - - } - - if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 { - v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100 - } - flV := uploadData.GetFloat64(k) - if flV != 0 && v == 0 { - v = flV - } - - if v == 0 && strV != "否" && strV != "0" { - v = 1 - } - uploadData[k] = v - //vm.Run("key['"+k+"']="+ObjToStr(v)+"") - //vm.Set(k, v) - } - - resTotal["区域经营收入"] = resTotal.GetFloat64("区域经营收入") + uploadData.GetFloat64("IEDC2NYYSR") - if uploadData.GetFloat64("IEDCYNSJ") != 0 { - resTotal["区域纳税总值"] = resTotal.GetFloat64("区域纳税总值") + uploadData.GetFloat64("IEDCYNSJ") - } else { - resTotal["区域纳税总值"] = resTotal.GetFloat64("区域纳税总值") + uploadData.GetFloat64("IEDC2NYJSJ") + - uploadData.GetFloat64("IEDCNSZE") + - uploadData.GetFloat64("IEDC2NSJSJ") + uploadData.GetFloat64("IEDCYJSJ") - } - //resTotal["区域纳税总值"] = resTotal.GetFloat64("区域纳税总值") + +uploadData.GetFloat64("IEDCYNSJ") + - // uploadData.GetFloat64("IEDC2NYJSJ") + uploadData.GetFloat64("IEDCNSZE") + - // uploadData.GetFloat64("IEDC2NSJSJ") + uploadData.GetFloat64("IEDCYJSJ") - resTotal["区域资产总额"] = resTotal.GetFloat64("区域资产总额") + uploadData.GetFloat64("IEDCZCZE") - - resTotal["独角兽企业数"] = resTotal.GetInt("独角兽企业数") + uploadData.GetInt("IEDCDJSQY") + - uploadData.GetInt("IEDCSJZDJSQY") - resTotal["瞪羚企业数"] = resTotal.GetInt("瞪羚企业数") + uploadData.GetInt("IEDCDLQY") + - uploadData.GetInt("IEDCYYDJSQYDLQYCH") - - resTotal["专精特新企业数"] = resTotal.GetInt("专精特新企业数") + uploadData.GetInt("IEDCGJJZJTX") + - uploadData.GetInt("IEDCSJZJTX") + uploadData.GetInt("IEDCSJZJTX0") + uploadData.GetInt("IEDCYYZJTXCH") + - uploadData.GetInt("IEDCSFZJTXQY") - - //规上企业数 - //if v.GetInt("gs") == 1 { - resTotal["规上企业数"] = resTotal.GetInt("规上企业数") + 1 - //} - - resTotal["技术改造投资备案数"] = resTotal.GetInt("技术改造投资备案数") - if uploadData.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["技术改造投资备案数"] = resTotal.GetInt("技术改造投资备案数") + 1 - } - - resTotal["固定资产投入"] = resTotal.GetFloat64("固定资产投入") - if uploadData.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["固定资产投入"] = resTotal.GetFloat64("固定资产投入") + uploadData.GetFloat64("IEDCXZTZQK") - } - //技术中心 - resTotal["企业技术中心数"] = resTotal.GetInt("企业技术中心数") + uploadData.GetInt("IEDCGJJGCJSZX") + - uploadData.GetInt("IEDCSJQYJSZX0") + uploadData.GetInt("IEDCYYQYJSZXGCJSZX") + uploadData.GetInt("IEDCSJQYJSZX") - - //工程技术中心 - resTotal["工程技术中心数"] = resTotal.GetInt("工程技术中心数") + uploadData.GetInt("IEDCSJGCJSZX0") + - uploadData.GetInt("IEDCSJGCJSZX") + uploadData.GetInt("IEDCGJJGCJSZX") + uploadData.GetInt("IEDCSJQYJSZX") - - resTotal["高新技术企业数"] = resTotal.GetInt("高新技术企业数") + uploadData.GetInt("IEDCGXJSQY") - - resTotal["知名品牌数"] = resTotal.GetInt("知名品牌数") + uploadData.GetInt("IEDCZMPPQY") - resTotal["首台套/首批次/首版次数"] = resTotal.GetInt("首台套/首批次/首版次数") + uploadData.GetInt("IEDCSTTSPCSBCQY") - - resTotal["知识产权数"] = resTotal.GetInt("知识产权数") + uploadData.GetInt("IEDCPGJZL") + - uploadData.GetInt("IEDCFMZL") + uploadData.GetInt("IEDCSYXXZL") + - uploadData.GetInt("IEDCWGSJZL") + uploadData.GetInt("IEDCpZL") - - resTotal["区域工业土地总面积"] = resTotal.GetFloat64("区域工业土地总面积") + uploadData.GetFloat64("IEDCYDMJ") + - uploadData.GetFloat64("IEDCZDMJ") - - resTotal["区域综合用煤"] = resTotal.GetFloat64("区域综合用煤") + uploadData.GetFloat64("IEDCZHNH") + - uploadData.GetFloat64("IEDCZHNHDBZM") + uploadData.GetFloat64("IEDCDBMYL") + - uploadData.GetFloat64("IEDCDBM") + uploadData.GetFloat64("IEDCDBMYL") - - resTotal["区域总人数"] = resTotal.GetInt("区域总人数") + uploadData.GetInt("IEDCSBRS") + - uploadData.GetInt("IEDCNPJZGRS") - - resTotal["产业人才数"] = resTotal.GetInt("产业人才数") + uploadData.GetInt("IEDCCYRC") + - uploadData.GetInt("IEDCCYRCSL") - - resTotal["环保抽查处理数"] = resTotal.GetInt("环保抽查处理数") - if uploadData.GetInt("IEDCHBJCHBCCZBFXWT") > 0 { - resTotal["环保抽查处理数"] = resTotal.GetInt("环保抽查处理数") + 1 - } - - resTotal["安全抽查隐患处理数"] = resTotal.GetInt("安全抽查隐患处理数") - if uploadData.GetInt("IEDCFXAQFXYH") > 0 { - resTotal["安全抽查隐患处理数"] = resTotal.GetInt("安全抽查隐患处理数") + 1 - } - - resTotal["亡人事故数"] = resTotal.GetInt("亡人事故数") - if uploadData.GetInt("IEDCFSAQSG") > 2 { - resTotal["亡人事故数"] = resTotal.GetInt("亡人事故数") + 1 - } - - resTotal["拥有安全管理体系数"] = resTotal.GetInt("拥有安全管理体系数") - if uploadData.GetInt("IEDCAQGLTXJQ") > 0 || uploadData.GetInt("IEDCZYJKYAQGLTX") > 0 || - uploadData.GetInt("IEDCFXYHSYKTXJS") > 0 || uploadData.GetInt("IEDCQYYYISTXSL") > 0 { - resTotal["拥有安全管理体系数"] = resTotal.GetInt("拥有安全管理体系数") + 1 - } - - resTotal["拥有质量管理体系数"] = resTotal.GetInt("拥有质量管理体系数") - if uploadData.GetInt("IEDCZLGLTX") > 0 || uploadData.GetInt("IEDCQYYYISTXSL") > 0 || - uploadData.GetInt("IEDCQYYYISTXSL") > 0 { - resTotal["拥有质量管理体系数"] = resTotal.GetInt("拥有质量管理体系数") + 1 - } - resTotal["区域100户重点企业数"] = resTotal.GetInt("区域100户重点企业数") - if uploadData.GetInt("IEDCSJ1HZDQY") > 0 || uploadData.GetInt("IEDCSJ1HZDQYQSXZDQY") > 0 { - resTotal["区域100户重点企业数"] = resTotal.GetInt("区域100户重点企业数") + 1 - } - resTotal["符合本区重点发展产业数"] = resTotal.GetInt("符合本区重点发展产业数") - if uploadData.GetInt("IEDCFHDQZDCY") > 0 { - resTotal["符合本区重点发展产业数"] = resTotal.GetInt("符合本区重点发展产业数") + 1 - } - resTotal["属于本区重点企业配套数"] = resTotal.GetInt("属于本区重点企业配套数") - if uploadData.GetInt("IEDCBDQZDQYDZYPTQY") > 0 || - uploadData.GetInt("IEDCQYWSSZDQYDZYPTQY") > 0 || uploadData.GetInt("IEDCQYWSSZDQYDZYPTQY") > 0 { - resTotal["属于本区重点企业配套数"] = resTotal.GetInt("属于本区重点企业配套数") + 1 - } - - resTotal["企业社保人数"] = resTotal.GetFloat64("企业社保人数") + uploadData.GetFloat64("IEDCSBRS") - resTotal["企业研发费用"] = resTotal.GetFloat64("企业研发费用") + uploadData.GetFloat64("IEDCNYFFY") + - uploadData.GetFloat64("IEDCYFJFZC") + uploadData.GetFloat64("IEDCYFFY") - - resTotal["企业总能耗"] = resTotal.GetFloat64("企业总能耗") + uploadData.GetFloat64("IEDCZHNH") + - uploadData.GetFloat64("IEDCZHNHDBZM") + uploadData.GetFloat64("IEDCDBMYL") - resTotal["企业主要污染物排放量"] = resTotal.GetFloat64("企业主要污染物排放量") + uploadData.GetFloat64("IEDCZYWRWPFDL") + uploadData.GetFloat64("IEDCWRW") - - } - resTotalNew := Map{} - for k, _ := range resTotal { - - if resTotal.GetString(k) != "暂无" { - resTotalNew[k] = resTotal.GetFloat64(k) - resTotalNew[k+"比值"] = resTotal.GetFloat64(k) / home_data.GetFloat64(k) - if resTotalNew.GetFloat64(k+"比值") == 0 { - resTotalNew[k+"比值"] = "0" - } - } else { - resTotalNew[k+"比值"] = "暂无" - resTotalNew[k] = "暂无" - } - - } - - return resTotalNew -} - -//6+3+n及首页数据分析 -func totalAnalyse(datas []Map) (Map, Map, Map, Map) { - resTotal := Map{ - //经济效益 - "区域生产总值": "暂无", - "区域企业总数": len(datas), - - "梯度培育企业数": "暂无", - - "上市企业数": "暂无", - "征地企业数/租赁企业数": "暂无", - "征地企业总面积": "暂无", - "租赁企业总面积": "暂无", - "厂房总面积": "暂无", - - "楼宇总面积": "暂无", - "办公楼总面积": "暂无", - "研发楼总面积": "暂无", - - "区域综合用电": "暂无", - "区域综合用水": "暂无", - - "研究生及以上学历人数": "暂无", - "本科学历人数": "暂无", - "大专学历人数": "暂无", - - "大专以下学历人数": "暂无", - "区域职工平均年收入": "暂无", - - "技术证书持有人数": "暂无", - - "拥有环境管理体系数": "暂无", - "拥有职业健康体系数": "暂无", - - "属于本区重点企业配套数": "无", - "宿舍总面积": "无", - } - - sixItem := Map{} //6 - threeItem := Map{} //3 - nItem := Map{} //N - for _, v := range datas { - uploadData := v.GetMap("upload_data") - - for k, _ := range uploadData { - strV := uploadData.GetString(k) - strV = strings.Replace(strV, " ", "", -1) - strV = strings.Replace(strV, "符合", "", -1) - strV = strings.Replace(strV, "条", "", -1) - v := float64(0) - if strV == "无" { - strV = "否" - } - - if strV == "未完成" { - strV = "否" - } - - switch strV { - case "年度实现盈利": - v = 2 - case "未达标": - v = -1 - case "轻微": - v = 1 - case "一般": - v = 2 - case "重大": - v = 3 - case "市级": - v = 1 - case "省级": - v = 2 - case "国家级": - v = 3 - case "国家级、行业": - v = 3 - case "主导、国家级": - v = 8 - case "“一带一路”区域": - v = 3 - case "国际": - v = 4 - case "行业": - v = 5 - case "专精特新": - v = 10 - - case "区(市)县重点企业": - v = 6 - case "市级100户重点企业": - v = 7 - - case "区域领先": - v = 1 - case "国内领先": - v = 2 - case "全球领先": - v = 3 - - case "200万以上": - v = 2 - - case "20%以上": - v = 0.2 - case "15%-20%": - v = 0.15 - case "10%-15%": - v = 0.1 - case "5%-10%": - v = 0.05 - case "0%-5%": - v = 0.01 - - case "0%-3%": - v = 0 - case "3-5%": - v = 0.03 - case "3%-5%": - v = 0.03 - - case "增长15%以上": - v = 0.15 - case "增长10-15%": - v = 0.1 - case "增长5-10%": - v = 0.05 - case "增长0-5%": - v = 0.01 - case "下降0-5%": - v = -0.01 - case "下降5-10%": - v = -0.05 - case "下降10-15%": - v = -0.1 - case "下降15%以上": - v = -0.15 - - } - - if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 { - v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100 - } - flV := uploadData.GetFloat64(k) - if flV != 0 && v == 0 { - v = flV - } - - if v == 0 && strV != "否" && strV != "0" { - v = 1 - } - uploadData[k] = v - //vm.Run("key['"+k+"']="+ObjToStr(v)+"") - //vm.Set(k, v) - } - - resTotal["区域经营收入"] = resTotal.GetFloat64("区域经营收入") + uploadData.GetFloat64("IEDC2NYYSR") - if uploadData.GetFloat64("IEDCYNSJ") != 0 { - resTotal["区域纳税总值"] = resTotal.GetFloat64("区域纳税总值") + uploadData.GetFloat64("IEDCYNSJ") - } else { - resTotal["区域纳税总值"] = resTotal.GetFloat64("区域纳税总值") + uploadData.GetFloat64("IEDC2NYJSJ") + - uploadData.GetFloat64("IEDCNSZE") + - uploadData.GetFloat64("IEDC2NSJSJ") + uploadData.GetFloat64("IEDCYJSJ") - } - - resTotal["区域资产总额"] = resTotal.GetFloat64("区域资产总额") + uploadData.GetFloat64("IEDCZCZE") - - resTotal["独角兽企业数"] = resTotal.GetInt("独角兽企业数") + uploadData.GetInt("IEDCDJSQY") + - uploadData.GetInt("IEDCSJZDJSQY") - resTotal["瞪羚企业数"] = resTotal.GetInt("瞪羚企业数") + uploadData.GetInt("IEDCDLQY") + - uploadData.GetInt("IEDCYYDJSQYDLQYCH") - - resTotal["专精特新企业数"] = resTotal.GetInt("专精特新企业数") + uploadData.GetInt("IEDCGJJZJTX") + - uploadData.GetInt("IEDCSJZJTX") + uploadData.GetInt("IEDCSJZJTX0") + uploadData.GetInt("IEDCYYZJTXCH") + - uploadData.GetInt("IEDCSFZJTXQY") - - //规上企业数 - //if v.GetInt("gs") == 1 { - resTotal["规上企业数"] = resTotal.GetInt("规上企业数") + 1 - //} - - resTotal["技术改造投资备案数"] = resTotal.GetInt("技术改造投资备案数") - if uploadData.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["技术改造投资备案数"] = resTotal.GetInt("技术改造投资备案数") + 1 - } - - resTotal["固定资产投入"] = resTotal.GetFloat64("固定资产投入") - if uploadData.GetFloat64("IEDCXZTZQK") > 0 { - resTotal["固定资产投入"] = resTotal.GetFloat64("固定资产投入") + uploadData.GetFloat64("IEDCXZTZQK") - } - //技术中心 - resTotal["企业技术中心数"] = resTotal.GetInt("企业技术中心数") + uploadData.GetInt("IEDCGJJGCJSZX") + - uploadData.GetInt("IEDCSJQYJSZX0") + uploadData.GetInt("IEDCYYQYJSZXGCJSZX") + uploadData.GetInt("IEDCSJQYJSZX") - - //工程技术中心 - resTotal["工程技术中心数"] = resTotal.GetInt("工程技术中心数") + uploadData.GetInt("IEDCSJGCJSZX0") + - uploadData.GetInt("IEDCSJGCJSZX") + uploadData.GetInt("IEDCGJJGCJSZX") + uploadData.GetInt("IEDCSJQYJSZX") - - threeItem["投建企业技术中心/工程技术中心企业数"] = resTotal.GetInt("投建企业技术中心/工程技术中心企业数") + uploadData.GetInt("IEDCSJGCJSZX0") + - uploadData.GetInt("IEDCSJGCJSZX") + uploadData.GetInt("IEDCGJJGCJSZX") + uploadData.GetInt("IEDCGJJGCJSZX") + - uploadData.GetInt("IEDCSJQYJSZX0") + uploadData.GetInt("IEDCYYQYJSZXGCJSZX") + uploadData.GetInt("IEDCSJQYJSZX") - - resTotal["高新技术企业数"] = resTotal.GetInt("高新技术企业数") + uploadData.GetInt("IEDCGXJSQY") - threeItem["高新技术企业数"] = threeItem.GetInt("高新技术企业数") + uploadData.GetInt("IEDCGXJSQY") - //if uploadData.GetString("IEDCGXJSQY") != "" && uploadData.GetString("IEDCGXJSQY") != "否" { - // resTotal["高新技术企业数"] = resTotal.GetInt("高新技术企业数") + 1 - // threeItem["高新技术企业数"] = threeItem.GetInt("高新技术企业数") + 1 - //} - resTotal["知名品牌数"] = resTotal.GetInt("知名品牌数") + uploadData.GetInt("IEDCZMPPQY") - resTotal["首台套/首批次/首版次数"] = resTotal.GetInt("首台套/首批次/首版次数") + uploadData.GetInt("IEDCSTTSPCSBCQY") - threeItem["首台套/首批次/首版次数"] = threeItem.GetInt("首台套/首批次/首版次数") + uploadData.GetInt("IEDCSTTSPCSBCQY") - - threeItem["发明专利/实用新型专利/PCT国际专利企业数"] = threeItem.GetInt("发明专利/实用新型专利/PCT国际专利企业数") - if uploadData.GetInt("IEDCSYXXZL") != 0 || - uploadData.GetInt("IEDCFMZL") != 0 || - uploadData.GetInt("IEDCPGJZL") != 0 || uploadData.GetInt("IEDCpZL") != 0 { - - threeItem["发明专利/实用新型专利/PCT国际专利企业数"] = threeItem.GetInt("发明专利/实用新型专利/PCT国际专利企业数") + 1 - } - - resTotal["知识产权数"] = resTotal.GetInt("知识产权数") + uploadData.GetInt("IEDCPGJZL") + - uploadData.GetInt("IEDCFMZL") + uploadData.GetInt("IEDCSYXXZL") + - uploadData.GetInt("IEDCWGSJZL") + uploadData.GetInt("IEDCpZL") - - resTotal["区域工业土地总面积"] = resTotal.GetFloat64("区域工业土地总面积") + uploadData.GetFloat64("IEDCYDMJ") + - uploadData.GetFloat64("IEDCZDMJ") - - resTotal["区域综合用煤"] = resTotal.GetFloat64("区域综合用煤") + uploadData.GetFloat64("IEDCZHNH") + - uploadData.GetFloat64("IEDCZHNHDBZM") + uploadData.GetFloat64("IEDCDBMYL") + - uploadData.GetFloat64("IEDCDBM") + uploadData.GetFloat64("IEDCDBMYL") - - resTotal["区域总人数"] = resTotal.GetInt("区域总人数") + uploadData.GetInt("IEDCSBRS") + - uploadData.GetInt("IEDCNPJZGRS") - - resTotal["产业人才数"] = resTotal.GetInt("产业人才数") + uploadData.GetInt("IEDCCYRC") + - uploadData.GetInt("IEDCCYRCSL") - resTotal["实施减排升级改造数"] = resTotal.GetInt("实施减排升级改造数") - threeItem["减排技术升级改造企业数"] = threeItem.GetInt("减排技术升级改造企业数") - if uploadData.GetInt("IEDCJPJSSJGZ") > 0 || uploadData.GetInt("IEDCSSJPJSSJGZQY") > 0 { - resTotal["实施减排升级改造数"] = resTotal.GetInt("实施减排升级改造数") + 1 - threeItem["减排技术升级改造企业数"] = threeItem.GetInt("减排技术升级改造企业数") + 1 - } - resTotal["环保抽查处理数"] = resTotal.GetInt("环保抽查处理数") - if uploadData.GetInt("IEDCHBJCHBCCZBFXWT") > 0 { - resTotal["环保抽查处理数"] = resTotal.GetInt("环保抽查处理数") + 1 - } - resTotal["安全抽查隐患处理数"] = resTotal.GetInt("安全抽查隐患处理数") - if uploadData.GetInt("IEDCFXAQFXYH") > 0 { - resTotal["安全抽查隐患处理数"] = resTotal.GetInt("安全抽查隐患处理数") + 1 - } - resTotal["亡人事故数"] = resTotal.GetInt("亡人事故数") - if uploadData.GetInt("IEDCFSAQSG") > 0 { - resTotal["亡人事故数"] = resTotal.GetInt("亡人事故数") + 1 - } - resTotal["拥有安全管理体系数"] = resTotal.GetInt("拥有安全管理体系数") - if uploadData.GetInt("IEDCAQGLTXJQ") > 0 || uploadData.GetInt("IEDCZYJKYAQGLTX") > 0 || - uploadData.GetInt("IEDCFXYHSYKTXJS") > 0 || uploadData.GetInt("IEDCQYYYISTXSL") > 0 { - resTotal["拥有安全管理体系数"] = resTotal.GetInt("拥有安全管理体系数") + 1 - } - resTotal["拥有质量管理体系数"] = resTotal.GetInt("拥有质量管理体系数") - if uploadData.GetInt("IEDCZLGLTX") > 0 || uploadData.GetInt("IEDCQYYYISTXSL") > 0 || - uploadData.GetInt("IEDCQYYYISTXSL") > 0 { - resTotal["拥有质量管理体系数"] = resTotal.GetInt("拥有质量管理体系数") + 1 - } - resTotal["区域100户重点企业数"] = resTotal.GetInt("区域100户重点企业数") - if uploadData.GetInt("IEDCSJ1HZDQY") > 0 || uploadData.GetInt("IEDCSJ1HZDQYQSXZDQY") > 0 { - resTotal["区域100户重点企业数"] = resTotal.GetInt("区域100户重点企业数") + 1 - } - resTotal["符合本区重点发展产业数"] = resTotal.GetInt("符合本区重点发展产业数") - if uploadData.GetInt("IEDCFHDQZDCY") > 0 { - resTotal["符合本区重点发展产业数"] = resTotal.GetInt("符合本区重点发展产业数") + 1 - } - resTotal["属于本区重点企业配套数"] = resTotal.GetInt("属于本区重点企业配套数") - if uploadData.GetInt("IEDCBDQZDQYDZYPTQY") > 0 || - uploadData.GetInt("IEDCQYWSSZDQYDZYPTQY") > 0 || uploadData.GetInt("IEDCQYWSSZDQYDZYPTQY") > 0 { - resTotal["属于本区重点企业配套数"] = resTotal.GetInt("属于本区重点企业配套数") + 1 - } - resTotal["企业社保人数"] = resTotal.GetFloat64("企业社保人数") + uploadData.GetFloat64("IEDCSBRS") - resTotal["企业研发费用"] = resTotal.GetFloat64("企业研发费用") + uploadData.GetFloat64("IEDCNYFFY") + - uploadData.GetFloat64("IEDCYFJFZC") + uploadData.GetFloat64("IEDCYFFY") - - threeItem["研发经费投入>1000万元企业数"] = threeItem.GetInt("研发经费投入>1000万元企业数") - if uploadData.GetFloat64("IEDCNYFFY") > 1000 || - uploadData.GetFloat64("IEDCYFJFZC") > 1000 || - uploadData.GetFloat64("IEDCTRQD1WHZ3YS") > 0 { - threeItem["研发经费投入>1000万元企业数"] = threeItem.GetInt("研发经费投入>1000万元企业数") + 1 - } - - resTotal["企业总能耗"] = resTotal.GetFloat64("企业总能耗") + uploadData.GetFloat64("IEDCZHNH") + - uploadData.GetFloat64("IEDCZHNHDBZM") + uploadData.GetFloat64("IEDCDBMYL") + - uploadData.GetFloat64("IEDCDBM") - resTotal["企业主要污染物排放量"] = resTotal.GetFloat64("企业主要污染物排放量") + uploadData.GetFloat64("IEDCZYWRWPFDL") + uploadData.GetFloat64("IEDCWRW") - - run := func(level string) { - resTotal[level+"类企业数"] = resTotal.GetInt(level+"类企业数") + 1 - resTotal[level+"类企业数总分"] = resTotal.GetFloat64(level+"类企业数总分") + v.GetFloat64("score") - if v.GetFloat64("score") > resTotal.GetFloat64(level+"类企业数最高分") { - resTotal[level+"类企业数最高分"] = v.GetFloat64("score") - } - if v.GetFloat64("score") < resTotal.GetFloat64(level+"类企业数最低分") || - resTotal.GetFloat64(level+"类企业数最低分") == 0 { - resTotal[level+"类企业数最低分"] = v.GetFloat64("score") - } - - //6 - resTotal[level+"类企业营业收入"] = resTotal.GetFloat64(level+"类企业营业收入") + uploadData.GetFloat64("IEDC2NYYSR") + uploadData.GetFloat64("IEDCYYSR") - //resTotal[level+"类企业税收"] = resTotal.GetFloat64(level+"类企业税收") + - // uploadData.GetFloat64("IEDCYNSJ") + uploadData.GetFloat64("IEDCYJSJ") - if uploadData.GetFloat64("IEDCYNSJ") != 0 { - resTotal[level+"类企业税收"] = resTotal.GetFloat64("区域纳税总值") + uploadData.GetFloat64("IEDCYNSJ") - } else { - resTotal[level+"类企业税收"] = resTotal.GetFloat64("区域纳税总值") + uploadData.GetFloat64("IEDC2NYJSJ") + - uploadData.GetFloat64("IEDCNSZE") + - uploadData.GetFloat64("IEDC2NSJSJ") + uploadData.GetFloat64("IEDCYJSJ") - } - resTotal[level+"类企业占地面积"] = resTotal.GetFloat64(level+"类企业占地面积") + uploadData.GetFloat64("IEDCYDMJ") + - uploadData.GetFloat64("IEDCZDMJ") - resTotal[level+"类企业社保人数"] = resTotal.GetInt(level+"类企业社保人数") + uploadData.GetInt("IEDCSBRS") - resTotal[level+"类企业研发费用"] = resTotal.GetFloat64(level+"类企业研发费用") + uploadData.GetFloat64("IEDCNYFFY") + - uploadData.GetFloat64("IEDCYFJFZC") + uploadData.GetFloat64("IEDCYFFY") - resTotal[level+"类企业总能耗"] = resTotal.GetFloat64(level+"类企业总能耗") + uploadData.GetFloat64("IEDCZHNH") + - uploadData.GetFloat64("IEDCZHNHDBZM") + uploadData.GetFloat64("IEDCDBMYL") + - uploadData.GetFloat64("IEDCDBM") - resTotal[level+"类企业主要污染物排放量"] = resTotal.GetFloat64(level+"类企业主要污染物排放量") + uploadData.GetFloat64("IEDCZYWRWPFDL") + uploadData.GetFloat64("IEDCWRW") - } - switch v.GetCeilInt("level") { - case 0: - run("A") - case 1: - run("B") - case 2: - run("C") - case 3: - run("D") - } - //3 - threeItem["进入本地区名优产品目录企业数"] = threeItem.GetInt("进入本地区名优产品目录企业数") + uploadData.GetInt("IEDCZMPPQY") + uploadData.GetInt("IEDCCDSMYCP") - - threeItem["连续3年盈利/首年度盈利企业数"] = threeItem.GetInt("连续3年盈利/首年度盈利企业数") + uploadData.GetInt("IEDCLX3NYLQY") - //if analyse.GetInt("LXSNYLDF") == 1 { - // threeItem["连续3年盈利/首年度盈利企业数"] = threeItem.GetInt("连续3年盈利/首年度盈利企业数") + 1 - //} - threeItem["环保检/抽查受一般性处理企业数"] = threeItem.GetInt("环保检/抽查受一般性处理企业数") - if uploadData.GetInt("IEDCHBJCHBCCZBFXWT") == 2 { - threeItem["环保检/抽查受一般性处理企业数"] = threeItem.GetInt("环保检/抽查受一般性处理企业数") + 1 - } - threeItem["安全检/抽查存在风险隐患受一般性处理企业数"] = threeItem.GetInt("安全检/抽查存在风险隐患受一般性处理企业数") - if uploadData.GetInt("IEDCHBJCHBCCZBFXWT") == 2 { - threeItem["安全检/抽查存在风险隐患受一般性处理企业数"] = threeItem.GetInt("安全检/抽查存在风险隐患受一般性处理企业数") + 1 - } - threeItem["安全事故发生企业数"] = threeItem.GetInt("安全事故发生企业数") - if uploadData.GetInt("IEDCFSAQSG") != 0 { - threeItem["安全事故发生企业数"] = threeItem.GetInt("安全事故发生企业数") + 1 - } - threeItem["已建/在建风险隐患双预控体系企业数"] = threeItem.GetInt("已建/在建风险隐患双预控体系企业数") - if uploadData.GetInt("IEDCFXYHSYKTXJS") != 0 || uploadData.GetInt("IEDCFXYHSYKTXJS") != 0 { - threeItem["已建/在建风险隐患双预控体系企业数"] = threeItem.GetInt("已建/在建风险隐患双预控体系企业数") + 1 - } - threeItem["生产标准不达标企业数"] = threeItem.GetInt("生产标准不达标企业数") - if uploadData.GetInt("IEDCFXYHSYKTXJS") == -1 { - threeItem["生产标准不达标企业数"] = threeItem.GetInt("生产标准不达标企业数") + 1 - } - threeItem["所处产业符合本地区重点发展产业企业数"] = threeItem.GetInt("所处产业符合本地区重点发展产业企业数") - if uploadData.GetInt("IEDCFHDQZDCY") > 0 { - threeItem["所处产业符合本地区重点发展产业企业数"] = threeItem.GetInt("所处产业符合本地区重点发展产业企业数") + 1 - } - threeItem["产业链链主/省级重点/市级30户龙头企业数"] = threeItem.GetInt("产业链链主/省级重点/市级30户龙头企业数") + - uploadData.GetInt("IEDCCYLLZSJZDSJ3HLTQY") - - threeItem["市级100户重点/区市县重点企业数"] = threeItem.GetInt("市级100户重点/区市县重点企业数") + uploadData.GetInt("IEDCSJ1HZDQY") + - uploadData.GetInt("IEDCSJ1HZDQYQSXZDQY") + uploadData.GetInt("IEDCSJ1HZDQYQSXZDQY") - - //N - nItem["配备年薪≥30万元人才企业数"] = nItem.GetInt("配备年薪≥30万元人才企业数") - if uploadData.GetInt("IEDCCYRC") > 0 || - uploadData.GetInt("IEDCCYRCSL") > 0 || - uploadData.GetInt("IEDCCYRCSL") > 0 { - nItem["配备年薪≥30万元人才企业数"] = nItem.GetInt("配备年薪≥30万元人才企业数") + 1 - } - nItem["有效发明专利≥2项/满足参与制定标准企业数"] = nItem.GetInt("有效发明专利≥2项/满足参与制定标准企业数") - if uploadData.GetInt("IEDCZDHCYBZZDQY") > 0 || - uploadData.GetInt("IEDCQYSCBZHJS") > 0 || - uploadData.GetInt("IEDCZDHCYBZZDQYS") > 0 { - nItem["有效发明专利≥2项/满足参与制定标准企业数"] = nItem.GetInt("有效发明专利≥2项/满足参与制定标准企业数") + 1 - } - - nItem["具备技术创新任务设备/环境企业数"] = nItem.GetInt("具备技术创新任务设备/环境企业数") - if uploadData.GetInt("IEDCJBZJTXHJJTJ") > 0 { - nItem["具备技术创新任务设备/环境企业数"] = nItem.GetInt("具备技术创新任务设备/环境企业数") + 1 - } - - nItem["特定细分≥3年且主导产品≥营收60%企业数"] = nItem.GetInt("特定细分≥3年且主导产品≥营收60%企业数") - if uploadData.GetInt("IEDCDXGJCP") > 0 || - uploadData.GetInt("IEDCTGCPQY") > 0 || - uploadData.GetInt("IEDCQYHZYCPJRSJ5Q") > 0 { - nItem["特定细分≥3年且主导产品≥营收60%企业数"] = nItem.GetInt("特定细分≥3年且主导产品≥营收60%企业数") + 1 - } - nItem["大专/中级职称占比≥35%企业数"] = nItem.GetInt("大专/中级职称占比≥35%企业数") - if uploadData.GetInt("IEDCDZYSXLZBDDYQ") > 0 { - nItem["大专/中级职称占比≥35%企业数"] = nItem.GetInt("大专/中级职称占比≥35%企业数") + 1 - } - - nItem["进行技术改造企业数"] = nItem.GetInt("进行技术改造企业数") - if uploadData.GetInt("IEDCJPJSSJGZ") > 0 || - uploadData.GetInt("IEDCSSJPJSSJGZQY") > 0 { - nItem["进行技术改造企业数"] = nItem.GetInt("进行技术改造企业数") + 1 - } - - resTotal["企业总分"] = ObjToFloat64(resTotal.GetFloat64("企业总分") + v.GetFloat64("score")) - - } - - resTotal["企业平均分"] = ObjToFloat64(resTotal.GetFloat64("企业总分") / float64(len(datas))) - - sixItem["亩均收入"] = ObjToFloat64(resTotal.GetFloat64("区域经营收入") / resTotal.GetFloat64("区域工业土地总面积")) - sixItem["亩均税收"] = ObjToFloat64(resTotal.GetFloat64("区域纳税总值") / resTotal.GetFloat64("区域工业土地总面积")) - sixItem["人均收入"] = ObjToFloat64(resTotal.GetFloat64("区域经营收入") / resTotal.GetFloat64("企业社保人数")) - sixItem["研发经费投入强度"] = ObjToFloat64(resTotal.GetFloat64("企业研发费用") / resTotal.GetFloat64("区域经营收入")) - sixItem["单位能耗税收"] = ObjToFloat64(resTotal.GetFloat64("区域纳税总值") / resTotal.GetFloat64("企业总能耗")) - sixItem["主要污染物税收"] = ObjToFloat64(resTotal.GetFloat64("区域纳税总值") / resTotal.GetFloat64("企业主要污染物排放量")) - - run1 := func(level string) { - resTotal[level+"类企业数平均分"] = ObjToFloat64(resTotal.GetFloat64(level+"类企业数总分") / resTotal.GetFloat64(level+"类企业数")) - sixItem[level+"类亩均收入"] = ObjToFloat64(resTotal.GetFloat64(level+"类企业营业收入") / resTotal.GetFloat64(level+"类企业占地面积")) - sixItem[level+"类亩均税收"] = ObjToFloat64(resTotal.GetFloat64(level+"类企业税收") / resTotal.GetFloat64(level+"类企业占地面积")) - sixItem[level+"类人均收入"] = ObjToFloat64(resTotal.GetFloat64(level+"类企业营业收入") / resTotal.GetFloat64(level+"类企业社保人数")) - sixItem[level+"类研发经费投入强度"] = ObjToFloat64(resTotal.GetFloat64(level+"类企业研发费用") / resTotal.GetFloat64(level+"类企业营业收入")) - sixItem[level+"类单位能耗税收"] = ObjToFloat64(resTotal.GetFloat64(level+"类企业税收") / resTotal.GetFloat64(level+"类企业总能耗")) - if resTotal.GetFloat64(level+"类企业主要污染物排放量") == 0 { - fmt.Println(level, resTotal[level+"类企业主要污染物排放量"], resTotal.GetFloat64(level+"类企业主要污染物排放量")) - resTotal[level+"类企业主要污染物排放量"] = 1 - } - sixItem[level+"类主要污染物税收"] = ObjToFloat64(resTotal.GetFloat64(level+"类企业税收") / resTotal.GetFloat64(level+"类企业主要污染物排放量")) - } - - run1("A") - run1("B") - run1("C") - run1("D") - - return resTotal, sixItem, threeItem, nItem -} - -//单个企业分析 -func (that *Org4) analyseSort(datas []Map) []Map { - cs := append(Companys{}, datas...) - - sort6Get := func(指标名称 string, 指标得分名称 string, cs Companys, point float64) Companys { - csLength := len(cs) - analyseTypeName = "analyse" - analyseSortType = 指标名称 //亩均收入得分 - sort.Sort(cs) - - for _, data := range cs { - v := data.GetMap("analyse") - k := len(cs) - 1 - if v.GetFloat64(analyseSortType) == cs[k].GetMap("analyse").GetFloat64(analyseSortType) { - v[analyseSortType+"排名"] = k + 1 - } else { - for k1, data1 := range cs { - v1 := data1.GetMap("analyse") - if v.GetFloat64(analyseSortType) >= v1.GetFloat64(analyseSortType) { - k = k1 - v[analyseSortType+"排名"] = k1 + 1 - break - } - } - } - - if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.1 { - v[指标得分名称] = point * 1.0 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.3 { - v[指标得分名称] = point * 0.85 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.5 { - v[指标得分名称] = point * 0.75 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.7 { - v[指标得分名称] = point * 0.6 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.9 { - v[指标得分名称] = point * 0.5 - } else { - v[指标得分名称] = point * 0.25 - } - if v.GetFloat64(指标名称) == 0 { - v[指标得分名称] = point * 0 - } - - //6项指标得分 - if 指标名称 == "ZYWRWSS" { - v["NXZBDF"] = v.GetFloat64("MJSRDF") + v.GetFloat64("MJSSDF") + - v.GetFloat64("RJSRDF") + v.GetFloat64("YFJFTRQDDF") + - v.GetFloat64("DWNHSSDF") + v.GetFloat64("ZYWRWSSDF") - } - } - return cs - } - - sort6Get("MJSR", "MJSRDF", cs, 15) - sort6Get("MJSS", "MJSSDF", cs, 15) - sort6Get("RJSR", "RJSRDF", cs, 10) - sort6Get("YFJFTRQD", "YFJFTRQDDF", cs, 10) - sort6Get("DWNHSS", "DWNHSSDF", cs, 5) - sort6Get("ZYWRWSS", "ZYWRWSSDF", cs, 5) - - csLength := len(cs) - analyseSortType = "IEDCXZTZQK" //技改投资 - analyseTypeName = "upload_data" - sort.Sort(cs) - - for _, data := range cs { - - //fmt.Println("dasdas", data.GetString("name"), data.GetMap("upload_data").GetFloat64(analyseSortType)) - - v := data.GetMap("analyse") - k := len(cs) - 1 - if v.GetFloat64(analyseSortType) == cs[k].GetMap("analyse").GetFloat64(analyseSortType) { - v[analyseSortType+"排名"] = k + 1 - } else { - for k1, data1 := range cs { - v1 := data1.GetMap("analyse") - if v.GetFloat64(analyseSortType) >= v1.GetFloat64(analyseSortType) { - k = k1 - v[analyseSortType+"排名"] = k1 + 1 - break - } - } - } - - v["JGTZPM"] = k + 1 - if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.3 { - v["JGTZDF"] = 5 - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.6 { - v["JGTZDF"] = 4 - } else { - v["JGTZDF"] = 2 - } - if v.GetFloat64("JGTZ") == 0 { - v["JGTZDF"] = 2 - } - //N总得分以及所有项总分,以及企业评级 - v["NZDF"] = v.GetFloat64("JGTZDF") + v.GetFloat64("ZJTXQLDF") + v.GetFloat64("CYRCDF") - - v["ZDF"] = v.GetFloat64("NZDF") + v.GetFloat64("SXZBDF") + v.GetFloat64("NXZBDF") - } - analyseTypeName = "analyse" - analyseSortType = "ZDF" //技改投资 - sort.Sort(cs) - - for _, data := range cs { - v := data.GetMap("analyse") - //v := data.GetMap("analyse") - k := len(cs) - 1 - //fmt.Println(v.GetFloat64(analyseSortType),cs[k].GetMap("analyse").GetFloat64(analyseSortType)) - if v.GetFloat64(analyseSortType) == cs[k].GetMap("analyse").GetFloat64(analyseSortType) { - v[analyseSortType+"排名"] = k + 1 - } else { - for k1, data1 := range cs { - v1 := data1.GetMap("analyse") - if v.GetFloat64(analyseSortType) >= v1.GetFloat64(analyseSortType) { - k = k1 - v[analyseSortType+"排名"] = k + 1 - break - } - } - } - - v["ZPM"] = k + 1 - v["ZQYS"] = len(cs) - if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.1 { - v["PJ"] = "A" - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.8 { - v["PJ"] = "B" - } else if ObjToFloat64(k) <= ObjToFloat64(csLength)*0.89 { - v["PJ"] = "C" - } else { - v["PJ"] = "D" - } - } - - return cs -} diff --git a/example/admin/test.go b/example/admin/test.go deleted file mode 100644 index 73aa6fa..0000000 --- a/example/admin/test.go +++ /dev/null @@ -1,1066 +0,0 @@ -package admin - -import ( - . "../../../hotime" - . "../../common" - "../../dri/baidu" - "fmt" - "github.com/robertkrimen/otto" - "github.com/xuri/excelize" - "io/ioutil" - "os" - "sort" - "strings" - "time" - "unicode" -) - -func TestAnalyse(companys []Map, tag Map) { - cs := append(NewCompanys{}, companys...) - for _, company := range companys { - vm := otto.New() - vm.Set("sortLevel", func(call otto.FunctionCall) otto.Value { - AnalyseSortType = call.Argument(0).String() - sort.Sort(cs) - for k, v := range cs { - if company.GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) >= v.GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) { - if company.GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) == cs[len(cs)-1].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) { - k = len(cs) - 1 - } - - val, _ := vm.ToValue(k + 1) - return val - } - } - val, _ := vm.ToValue(len(cs)) - return val - }) - - vm.Set("count", func(call otto.FunctionCall) otto.Value { - //key:=call.Argument(0).String() - val, _ := vm.ToValue(len(cs)) - return val - }) - vm.Run("var key={}") - //上传数据 - uploadData := company.GetMap("upload_data") - for k, _ := range uploadData { - strV := uploadData.GetString(k) - strV = strings.Replace(strV, " ", "", -1) - strV = strings.Replace(strV, "符合", "", -1) - strV = strings.Replace(strV, "条", "", -1) - v := float64(0) - if strV == "无" { - strV = "否" - } - - if strV == "未完成" { - strV = "否" - } - - switch strV { - case "年度实现盈利": - v = 2 - case "轻微": - v = 1 - case "一般": - v = 2 - case "重大": - v = 3 - case "市级": - v = 1 - case "省级": - v = 2 - case "国家级": - v = 3 - case "国家级、行业": - v = 3 - case "主导、国家级": - v = 8 - case "“一带一路”区域": - v = 3 - case "国际": - v = 4 - case "行业": - v = 5 - case "专精特新": - v = 10 - - case "区(市)县重点企业": - v = 6 - case "市级100户重点企业": - v = 7 - - case "区域领先": - v = 1 - case "国内领先": - v = 2 - case "全球领先": - v = 3 - - case "200万以上": - v = 2 - - case "20%以上": - v = 0.2 - case "15%-20%": - v = 0.15 - case "10%-15%": - v = 0.1 - case "5%-10%": - v = 0.05 - case "0%-5%": - v = 0.01 - - case "0%-3%": - v = 0 - case "3-5%": - v = 0.03 - case "3%-5%": - v = 0.03 - - case "增长15%以上": - v = 0.15 - case "增长10-15%": - v = 0.1 - case "增长5-10%": - v = 0.05 - case "增长0-5%": - v = 0.01 - case "下降0-5%": - v = -0.01 - case "下降5-10%": - v = -0.05 - case "下降10-15%": - v = -0.1 - case "下降15%以上": - v = -0.15 - - } - - if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 { - v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100 - } - flV := uploadData.GetFloat64(k) - if flV != 0 && v == 0 { - v = flV - } - - if v == 0 && strV != "否" && strV != "0" { - v = 1 - } - vm.Run("key['" + k + "']=" + ObjToStr(v) + "") - //vm.Set(k, v) - } - - //api采集数据 - collectData := company.GetMap("collect_data") - for k, cv := range collectData { - if cv == nil { - //vm.Set(k, 0) - vm.Run("key['" + k + "']=" + ObjToStr(0) + "") - continue - } - strV := collectData.GetString(k) - if strings.Index(strV, "万人民币") != -1 { - strV = strings.Replace(strV, "万人民币", "", -1) - } - //vm.Set(k, strV) - vm.Run("key['" + k + "']=" + strV + "") - } - //api采集数据 - analyseData := company.GetMap("analyse") - if analyseData == nil { - analyseData = Map{} - company["analyse"] = analyseData - } - for k, cv := range analyseData { - //vm.Set(k, cv) - vm.Run("key['" + k + "']=" + ObjToStr(cv) + "") - } - //res:=Map{} - //analyse - //for _,v:=range cmds{ - - vm.Set("res", nil) - cmdStr := tag.GetString("cmd") - cmdStr = strings.Replace(cmdStr, "[", "key['", -1) - cmdStr = strings.Replace(cmdStr, "]", "']", -1) - _, e := vm.Run(cmdStr) - //if tag.GetString("sn")=="IEDCGXJSQY"{ - // fmt.Println(tag.GetString("sn"),tag.GetString("name"),tag.GetString("org_id")) - // vm.Run("console.log(key['IEDCGXJSQY'])") - //} - - if e != nil { - - fmt.Println(e, "dasdas") - analyseData[tag.GetString("name")] = 0 - vm.Run("key['" + tag.GetString("name") + "']=" + ObjToStr(0)) - //vm.Set(tag.GetString("name"), 0) - continue - } - result, e := vm.Get("res") - if e != nil { - fmt.Println(e, "312sdqweqw") - analyseData[tag.GetString("name")] = 0 - vm.Run("key['" + tag.GetString("name") + "']=" + ObjToStr(0)) - //vm.Set(tag.GetString("name"), 0) - continue - } - if result.String() == ObjToStr(ObjToFloat64(result.String())) { - analyseData[tag.GetString("name")] = ObjToFloat64(result.String()) - } else if result.String() == "NaN" { - analyseData[tag.GetString("name")] = 0 - } else if result.String() == "Infinity" { - analyseData[tag.GetString("name")] = 0 - } else { - analyseData[tag.GetString("name")] = result.String() - } - vm.Run("key['" + tag.GetString("name") + "']=" + ObjToStr(analyseData[tag.GetString("name")])) - //vm.Set(tag.GetString("name"), analyseData[tag.GetString("name")]) - } - -} - -type NewCompanys []Map - -var AnalyseSortType = "" -var AnalyseTypeName = "analyse" - -func (s NewCompanys) Len() int { - return len(s) -} -func (s NewCompanys) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} -func (s NewCompanys) Less(i, j int) bool { - AnalyseTypeName = "upload_data" - if s[i].GetMap(AnalyseTypeName)[AnalyseSortType] == nil { - AnalyseTypeName = "analyse" - } - return s[i].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) > s[j].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType) -} - -func totalTestAnalyse(companys []Map, tag Map, totalData Map) { - cs := append(NewCompanys{}, companys...) - - vm := otto.New() - vm.Set("vcount", func(call otto.FunctionCall) otto.Value { - if call.Argument(0).IsUndefined() { - val, _ := vm.ToValue(0) - return val - } - key := call.Argument(0).String() - if key == "IEDCSJZJTX0" || key == "IEDCSJZJTX" { - fmt.Println(key) - } - num := float64(0) - for _, v := range cs { - AnalyseTypeName := "upload_data" - if v.GetMap(AnalyseTypeName)[key] == nil { - AnalyseTypeName = "analyse" - } - if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 { - //num++ - num = num + v.GetMap(AnalyseTypeName).GetFloat64(key) - } - } - val, _ := vm.ToValue(num) - return val - }) - - vm.Set("count", func(call otto.FunctionCall) otto.Value { - if call.Argument(0).IsUndefined() { - val, _ := vm.ToValue(len(cs)) - return val - } - key := call.Argument(0).String() - - num := 0 - for _, v := range cs { - AnalyseTypeName := "upload_data" - if v.GetMap(AnalyseTypeName)[key] == nil { - AnalyseTypeName = "analyse" - } - if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 { - num++ - } - } - val, _ := vm.ToValue(num) - return val - }) - for _, company := range companys { - //上传数据 - uploadData := company.GetMap("upload_data") - for k, _ := range uploadData { - strV := uploadData.GetString(k) - strV = strings.Replace(strV, " ", "", -1) - v := float64(0) - //if strV == "否" { - // v = 0 - //} - if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 { - v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100 - } - flV := uploadData.GetFloat64(k) - if flV != 0 && v == 0 { - v = flV - } - if k == "IEDCSJZJTX0" || k == "IEDCSJZJTX" { - fmt.Println(k) - } - - if v == 0 && strV != "否" && strV != "0" { - v = 1 - } - //vm.Set(k, v) - uploadData[k] = v - - } - company["upload_data"] = uploadData - //api采集数据 - collectData := company.GetMap("collect_data") - for k, cv := range collectData { - if cv == nil { - vm.Set(k, 0) - continue - } - strV := collectData.GetString(k) - if strings.Index(strV, "万人民币") != -1 { - strV = strings.Replace(strV, "万人民币", "", -1) - } - //vm.Set(k, strV) - collectData[k] = strV - - } - company["collect_data"] = collectData - //api采集数据 - analyseData := company.GetMap("analyse") - if analyseData == nil { - analyseData = Map{} - company["analyse"] = analyseData - } - //for k, cv := range analyseData { - // vm.Set(k, cv) - //} - } - //totalData:=Map{} - //analyse - - //for _,v:=range cmds{ - vm.Set("res", nil) - _, e := vm.Run(tag.GetString("cmd")) - if e != nil { - fmt.Println(e, "asdas") - totalData[tag.GetString("name")] = 0 - vm.Set(tag.GetString("name"), 0) - return - } - result, e := vm.Get("res") - if e != nil { - fmt.Println(e, "312dqwe") - totalData[tag.GetString("name")] = 0 - vm.Set(tag.GetString("name"), 0) - return - } - if result.String() == ObjToStr(ObjToFloat64(result.String())) { - totalData[tag.GetString("name")] = ObjToFloat64(result.String()) - } else if result.String() == "NaN" { - totalData[tag.GetString("name")] = 0 - } else if result.String() == "Infinity" { - totalData[tag.GetString("name")] = 0 - } else { - totalData[tag.GetString("name")] = result.String() - } - - vm.Set(tag.GetString("name"), totalData[tag.GetString("name")]) - -} - -func totalAnalyse1(companys []Map, totalData Map) { - cs := append(NewCompanys{}, companys...) - vm := otto.New() - vm.Set("vcount", func(call otto.FunctionCall) otto.Value { - if call.Argument(0).IsUndefined() { - val, _ := vm.ToValue(0) - return val - } - key := call.Argument(0).String() - - num := float64(0) - for _, v := range cs { - AnalyseTypeName := "upload_data" - if v.GetMap(AnalyseTypeName)[key] == nil { - AnalyseTypeName = "analyse" - } - if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 { - //num++ - num = num + v.GetMap(AnalyseTypeName).GetFloat64(key) - } - } - val, _ := vm.ToValue(num) - return val - }) - - vm.Set("count", func(call otto.FunctionCall) otto.Value { - if call.Argument(0).IsUndefined() { - val, _ := vm.ToValue(len(cs)) - return val - } - key := call.Argument(0).String() - - num := 0 - for _, v := range cs { - AnalyseTypeName := "upload_data" - if v.GetMap(AnalyseTypeName)[key] == nil { - AnalyseTypeName = "analyse" - } - if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 { - num++ - } - } - val, _ := vm.ToValue(num) - return val - }) - vm.Set("hmax", func(call otto.FunctionCall) otto.Value { - AnalyseSortType = call.Argument(0).String() - sort.Sort(cs) - - fmt.Println(0, AnalyseTypeName, AnalyseSortType, cs[0].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType)) - val, _ := vm.ToValue(cs[0].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType)) - return val - }) - - vm.Set("hmin", func(call otto.FunctionCall) otto.Value { - AnalyseSortType = call.Argument(0).String() - fmt.Println(AnalyseSortType, "asddas") - sort.Sort(cs) - - val, _ := vm.ToValue(cs[len(cs)-1].GetMap(AnalyseTypeName).GetFloat64(AnalyseSortType)) - return val - }) - //平均值 - vm.Set("haverage", func(call otto.FunctionCall) otto.Value { - if call.Argument(0).IsUndefined() { - val, _ := vm.ToValue(0) - return val - } - key := call.Argument(0).String() - - num := float64(0) - for _, v := range cs { - AnalyseTypeName := "upload_data" - if v.GetMap(AnalyseTypeName)[key] == nil { - AnalyseTypeName = "analyse" - } - if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 { - //num++ - num = num + v.GetMap(AnalyseTypeName).GetFloat64(key) - } - } - val, _ := vm.ToValue(num / float64(len(cs))) - return val - }) - for _, company := range companys { - //上传数据 - uploadData := company.GetMap("upload_data") - for k, _ := range uploadData { - strV := uploadData.GetString(k) - strV = strings.Replace(strV, " ", "", -1) - v := float64(0) - //if strV == "否" { - // v = 0 - //} - - if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 { - v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100 - } - flV := uploadData.GetFloat64(k) - if flV != 0 && v == 0 { - v = flV - } - - if v == 0 && strV != "否" && strV != "0" { - v = 1 - } - //vm.Set(k, v) - uploadData[k] = v - - } - company["upload_data"] = uploadData - //api采集数据 - collectData := company.GetMap("collect_data") - for k, cv := range collectData { - if cv == nil { - vm.Set(k, 0) - continue - } - strV := collectData.GetString(k) - if strings.Index(strV, "万人民币") != -1 { - strV = strings.Replace(strV, "万人民币", "", -1) - } - //vm.Set(k, strV) - collectData[k] = strV - - } - company["collect_data"] = collectData - //api采集数据 - analyseData := company.GetMap("analyse") - if analyseData == nil { - analyseData = Map{} - company["analyse"] = analyseData - } - //for k, cv := range analyseData { - // vm.Set(k, cv) - //} - } - - for k, _ := range companys[0].GetMap("analyse") { - - if strings.Contains(k, "排名") { - continue - } - res, e := vm.Run(`res=hmax("` + k + `")`) - if e == nil { - totalData[k+"最大值"] = ObjToFloat64(res.String()) - } - res, e = vm.Run(`res=hmin("` + k + `")`) - if e == nil { - totalData[k+"最小值"] = ObjToFloat64(res.String()) - } - res, e = vm.Run(`res=haverage("` + k + `")`) - if e == nil { - totalData[k+"平均值"] = ObjToFloat64(res.String()) - } - res, e = vm.Run(`res=vcount("` + k + `")`) - if e == nil { - totalData[k+"总值"] = ObjToFloat64(res.String()) - } - res, e = vm.Run(`res=count("` + k + `")`) - if e == nil { - totalData[k+"总数"] = ObjToFloat64(res.String()) - } - } -} - -func ctgTestAnalyse(companys []Map, tag Map, totalData, totalAnalyse Map) { - cs := append(NewCompanys{}, companys...) - for _, company := range companys { - vm := otto.New() - vm.Set("vcount", func(call otto.FunctionCall) otto.Value { - if call.Argument(0).IsUndefined() { - val, _ := vm.ToValue(0) - return val - } - key := call.Argument(0).String() - AnalyseTypeName := "upload_data" - if company.GetMap(AnalyseTypeName)[key] == nil { - AnalyseTypeName = "analyse" - } - num := float64(0) - for _, v := range cs { - if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 { - //num++ - num = num + v.GetMap(AnalyseTypeName).GetFloat64(key) - } - } - val, _ := vm.ToValue(num) - return val - }) - - vm.Set("count", func(call otto.FunctionCall) otto.Value { - if call.Argument(0).IsUndefined() { - val, _ := vm.ToValue(len(cs)) - return val - } - key := call.Argument(0).String() - AnalyseTypeName := "upload_data" - if company.GetMap(AnalyseTypeName)[key] == nil { - AnalyseTypeName = "analyse" - } - num := 0 - for _, v := range cs { - if v.GetMap(AnalyseTypeName).GetFloat64(key) > 0 { - num++ - } - } - val, _ := vm.ToValue(num) - return val - }) - //上传数据 - uploadData := company.GetMap("upload_data") - for k, _ := range uploadData { - strV := uploadData.GetString(k) - strV = strings.Replace(strV, " ", "", -1) - v := float64(0) - //if strV == "否" { - // v = 0 - //} - if strV == "国家级专精特新" { - fmt.Println(15545) - } - if strings.Index(strV, "%") == len(strV)-1 && len(strV) != 0 { - v = uploadData.GetFloat64(strings.Replace(strV, "%", "", -1)) / 100 - } - flV := uploadData.GetFloat64(k) - if flV != 0 && v == 0 { - v = flV - } - - if v == 0 && strV != "否" && strV != "0" { - v = 1 - } - uploadData[k] = v - - } - company["upload_data"] = uploadData - - //api采集数据 - collectData := company.GetMap("collect_data") - for k, cv := range collectData { - if cv == nil { - vm.Set(k, 0) - continue - } - strV := collectData.GetString(k) - if strings.Index(strV, "万人民币") != -1 { - strV = strings.Replace(strV, "万人民币", "", -1) - } - collectData[k] = strV - - } - company["collect_data"] = collectData - //api采集数据 - analyseData := company.GetMap("analyse") - if analyseData == nil { - analyseData = Map{} - company["analyse"] = analyseData - } - //for k, cv := range analyseData { - // vm.Set(k, cv) - //} - //totalData:=Map{} - //analyse - - //for _,v:=range cmds{ - vm.Set("res", nil) - _, e := vm.Run(tag.GetString("cmd")) - if e != nil { - fmt.Println(e) - totalData[tag.GetString("name")] = 0 - vm.Set(tag.GetString("name"), 0) - continue - } - result, e := vm.Get("res") - if e != nil { - fmt.Println(e) - totalData[tag.GetString("name")] = 0 - vm.Set(tag.GetString("name"), 0) - continue - } - - if result.String() == ObjToStr(ObjToFloat64(result.String())) { - totalData[tag.GetString("name")] = ObjToFloat64(result.String()) - if totalAnalyse.GetMap("home_data").GetCeilFloat64(tag.GetString("name")) == 0 { - totalData[tag.GetString("name")+"比值"] = 0 - } else { - totalData[tag.GetString("name")+"比值"] = ObjToFloat64(result.String()) / totalAnalyse.GetMap("home_data").GetCeilFloat64(tag.GetString("name")) - } - - } else if result.String() == "NaN" { - totalData[tag.GetString("name")] = 0 - totalData[tag.GetString("name")+"比值"] = 0 - } else if result.String() == "Infinity" { - totalData[tag.GetString("name")] = 0 - totalData[tag.GetString("name")+"比值"] = 0 - } else { - totalData[tag.GetString("name")] = result.String() - //totalData[tag.GetString("name")+"比值"]=0 - } - - vm.Set(tag.GetString("name"), totalData[tag.GetString("name")]) - } - -} - -var TestCtr = Ctr{ - "test": func(this *Context) { - //data := excel1() - //this.Display(0, data) - fmt.Println(unicode.IsPunct(rune(')'))) - }, - "app_analyse": func(this *Context) { - orgId := 2 - if orgId == 0 { - this.Display(3, "参数错误") - return - } - - companys := this.Db.Select("company", "*") - - home_data, six_item_data, three_item_data, n_item_data := totalAnalyse(companys) - - org := this.Db.Get("org", "*", Map{"id": orgId}) - fmt.Println(six_item_data) - - data := Map{ - "name": org.GetString("name"), - "home_data": home_data.ToJsonString(), - "six_item_data": six_item_data.ToJsonString(), - "three_item_data": three_item_data.ToJsonString(), - "n_item_data": n_item_data.ToJsonString(), - "modify_time": time.Now().Unix(), - } - org_analyse := this.Db.Get("org_analyse", "id", Map{"org_id": orgId}) - if org_analyse == nil { - //data["name"] = time.Now().Format("2006-01-02 15:04") + "创建" - data["name"] = org.GetString("name") - data["org_id"] = orgId - data["create_time"] = time.Now().Unix() - id := this.Db.Insert("org_analyse", data) - data["id"] = id - } else { - this.Db.Update("org_analyse", data, Map{"org_id": orgId}) - } - - this.Display(0, data) - - }, - "industry_analyse": func(this *Context) { - orgId := 1 - industrys := this.Db.Select("industry_analyse", "id,name", Map{"org_id": orgId}) - totalAnalyse := this.Db.Get("org_analyse", "*", Map{"org_id": orgId}) - tagCompany := this.Db.Select("tag", "*", Map{"type": 4, "ORDER": "`sort` ASC"}) - - for _, industry := range industrys { - id := industry.GetCeilInt("id") - companys := this.Db.Select("industry", Map{"[><]company": "company.industry_id=industry.id"}, - "company.id,company.gs,company.level,company.score,company.upload_data,company.analyse,company.industry_id", Map{"industry.id": id}) - - for _, v := range companys { - //上传数据 - v["upload_data"] = v.GetMap("upload_data") - v["collect_data"] = v.GetMap("collect_data") - v["analyse"] = v.GetMap("analyse") - } - - //cs := append(NewCompanys{}, companys...) - ctgAn := Map{} - for _, tag := range tagCompany { - ctgTestAnalyse(companys, tag, ctgAn, totalAnalyse) - //fmt.Println(data) - } - - //ctgAn := ctgTestAnalyse(companys, totalAnalyse) - data := Map{ - "modify_time": time.Now().Unix(), - "data": ctgAn.ToJsonString(), - } - - this.Db.Update("industry_analyse", data, Map{"AND": Map{"org_id": orgId, "industry_id": id}}) - - } - this.Display(0, industrys) - }, - "total_Analyse": func(this *Context) { - - orgId := 1 - companys := this.Db.Select("company", "*") - for _, v := range companys { - //上传数据 - v["upload_data"] = v.GetMap("upload_data") - v["collect_data"] = v.GetMap("collect_data") - v["analyse"] = v.GetMap("analyse") - } - - tagCompany := this.Db.Select("tag", "*", Map{"type": 4, "ORDER": "`sort` ASC"}) - //cs := append(NewCompanys{}, companys...) - totalData := Map{} - for _, tag := range tagCompany { - totalTestAnalyse(companys, tag, totalData) - //fmt.Println(data) - } - totalAnalyse1(companys, totalData) - //home_data, six_item_data, three_item_data, n_item_data := totalTestAnalyse(companys) - org := this.Db.Get("org", "*", Map{"id": orgId}) - //fmt.Println(six_item_data.ToJsonString()) - fmt.Println(totalData) - data := Map{ - "name": org.GetString("name"), - "home_data": totalData.ToJsonString(), - //"six_item_data": six_item_data.ToJsonString(), - //"three_item_data": three_item_data.ToJsonString(), - //"n_item_data": n_item_data.ToJsonString(), - "modify_time": time.Now().Unix(), - } - org_analyse := this.Db.Get("org_analyse", "id", Map{"org_id": orgId}) - if org_analyse == nil { - data["name"] = org.GetString("name") - data["org_id"] = orgId - data["create_time"] = time.Now().Unix() - id := this.Db.Insert("org_analyse", data) - data["id"] = id - } else { - this.Db.Update("org_analyse", data, Map{"org_id": orgId}) - } - - this.Display(0, data) - - }, - "analyse": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - - companys := this.Db.Select("company", "*", Map{"AND": Map{"org_id": orgId}}) - for _, v := range companys { - //上传数据 - v["upload_data"] = v.GetMap("upload_data") - v["collect_data"] = v.GetMap("collect_data") - v["analyse"] = v.GetMap("analyse") - } - - tagCompany := this.Db.Select("tag", "*", Map{"AND": Map{"type": 2, "org_id": 2}, "ORDER": Slice{"`sort` DESC", "id ASC"}}) - //cs := append(NewCompanys{}, companys...) - for _, tag := range tagCompany { - TestAnalyse(companys, tag) - //fmt.Println(data) - } - tagCompany1 := this.Db.Select("tag", "*", Map{"AND": Map{"type": 2, "org_id": orgId}, "ORDER": Slice{"`sort` DESC", "id ASC"}}) - //cs := append(NewCompanys{}, companys...) - for _, tag := range tagCompany1 { - TestAnalyse(companys, tag) - //fmt.Println(data) - } - - for _, v := range companys { - as := v.GetMap("analyse") - //v["analyse"] = as.ToJsonString() - - switch as.GetString("评价") { - case "A": - v["level"] = 0 - case "B": - v["level"] = 1 - case "C": - v["level"] = 2 - case "D": - v["level"] = 3 - } - v["score"] = as.GetFloat64("总得分") - - this.Db.Update("company", Map{"analyse": as.ToJsonString(), "level": v["level"], "score": v["score"]}, Map{"id": v.GetCeilInt("id")}) - this.Db.Update("company_history", Map{"analyse": as.ToJsonString(), "level": v["level"], "score": v["score"]}, Map{"id": v.GetCeilInt("company_history_id")}) - } - - this.Display(0, len(companys)) - - }, - "jstest": func(this *Context) { - vm := otto.New() - vm.Run(` -console.log("845458454" ); // 4 - abc = 2 + 2; - console.log("The value of abc is " + abc); // 4 - `) - //if value, err := vm.Get("abc"); err == nil { - // if value_int, err := value.ToInteger(); err == nil { - // fmt.Printf("", value_int, err) - // } - //} - vm.Set("def", 11) - vm.Run(` - console.log("The value of def is " + def); - // The value of def is 11 - `) - vm.Set("xyzzy", "Nothing happens.") - vm.Run(` - console.log(xyzzy.length); // 16 - `) - - value, _ := vm.Run("xyzzy.length") - //{ - // // value is an int64 with a value of 16 - // value, _ := value.ToInteger() - //} - fmt.Println(value.ToInteger()) - _, err := vm.Run("abcdefghijlmnopqrstuvwxyz.length") - if err != nil { - // err = ReferenceError: abcdefghijlmnopqrstuvwxyz is not defined - // If there is an error, then value.IsUndefined() is true - //... - fmt.Println(err) - } - vm.Set("sayHello", func(call otto.FunctionCall) otto.Value { - fmt.Printf("Hello, %s.\n", call.Argument(0).String()) - return otto.Value{} - }) - result, _ := vm.Run(` - sayHello("Xyzzy"); // Hello, Xyzzy. - sayHello(); // Hello, undefined - - result = twoPlus(2.0); // 4 - `) - fmt.Println(result.String()) - - }, - "tt": func(this *Context) { - tag_ctg := this.Db.Get("tag_ctg", "id", Map{"name": "企业数据分析"}) - if tag_ctg == nil { - tag_ctg = Map{} - tag_ctg["id"] = this.Db.Insert("tag_ctg", Map{"name": "企业数据分析", - "admin_id": this.Session("admin_id").ToInt(), - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix()}) - } - id := tag_ctg.GetCeilInt("id") - if id == 0 { - this.Display(3, "分类数据上传失败") - return - } - num := 0 - for k, v := range ADataType { - tag := this.Db.Get("tag", "id", Map{"sn": k}) - if tag == nil { - tag = Map{"sn": k, "name": v, "tag_ctg_id": id, "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix()} - if strings.Index(k, "DF") == len(k)-2 { - tag["unit"] = "分" - } - tagId := this.Db.Insert("tag", tag) - if tagId != 0 { - num++ - } - } - } - - this.Display(0, num) - - }, - "api": func(this *Context) { - //curl -i --get --include 'http://api.81api.com/getCompanyBaseInfo/小米科技有限责任公司/' -H 'Authorization:APPCODE 你自己的AppCode' - //aliyun.DefaultCompany.Init("06c6a07e89dd45c88de040ee1489eef7") - //data,err:=aliyun.DefaultCompany.GetCompanyBaseInfo("小米科技有限责任公司") - //fmt.Println(data) - //if err!=nil{ - // this.Display(4,err) - // return - //} - - data1, _ := baidu.DefaultBaiDuMap.GetPosition("简阳市东溪镇奎星路28号", "") - - this.Display(0, ObjToMap(data1)) - - }, - "temp": func(this *Context) { - count := 0 - for true { - - data := this.Db.Get("area_copy", "id,parent_id,`index`,parent_code", Map{"index": nil, "ORDER": "`level` ASC"}) - - if data == nil { - break - } - count++ - //if data.GetCeilInt("parent_id")==0{ - // data["parent_id"]=3750 - //} - parentData := this.Db.Get("area_copy", "id,parent_id,`index`", Map{"area_code": data.GetString("parent_code")}) - if parentData == nil { - this.Db.Update("area_copy", Map{"index": data.GetString("id") + ","}, Map{"id": data.GetString("id")}) - } else { - this.Db.Update("area_copy", Map{"index": parentData.GetString("index") + data.GetString("id") + ",", "parent_id": parentData["id"]}, Map{"id": data.GetString("id")}) - } - - } - this.Display(0, count) - - }, - "tempctg": func(this *Context) { - dataBytes, e := ioutil.ReadFile("2017.json") - if e != nil { - this.Display(4, e) - return - } - data := ObjToSlice(string(dataBytes)) - - for k, _ := range data { - ins := data.GetMap(k) - ins["level"] = 1 - id := this.Db.Insert("category", Map{"name": ins.GetString("name"), - "code": ins.GetString("code"), - "level": ins["level"], - "parent_id": 1, - "admin_id": this.Session("admin_id").ToInt(), - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - }) - - if id != 0 { - ins["id"] = id - } - - ins["index"] = ",1," + ObjToStr(id) + "," - this.Db.Update("category", Map{"index": ins["index"]}, Map{"id": ins["id"]}) - - run(ins, this) - - } - - }, -} - -func excel1() Slice { - xlsx, err := excelize.OpenFile("tpt/piduqu.xlsx") - if err != nil { - fmt.Println(err) - os.Exit(1) - } - list := xlsx.GetSheetList() - data := Slice{} - for _, v := range list { - rows, e := xlsx.GetRows(v) - fmt.Println(rows, e) - data = append(data, rows) - - //for k1,v1:=range rows{ - // - //} - - } - - return data -} - -func run(ins Map, this *Context) { - cs := ins.GetSlice("children") - if cs == nil { - return - } - for ck, _ := range cs { - - cins := cs.GetMap(ck) - cins["level"] = ins.GetCeilInt("level") + 1 - id := this.Db.Insert("category", Map{"name": cins.GetString("name"), - "code": cins.GetString("code"), - "level": cins["level"], - "parent_id": ins["id"], - "admin_id": this.Session("admin_id").ToInt(), - "create_time": time.Now().Unix(), - "modify_time": time.Now().Unix(), - }) - - if id != 0 { - cins["id"] = id - } - - cins["index"] = ins.GetString("index") + ObjToStr(id) + "," - this.Db.Update("category", Map{"index": cins["index"]}, Map{"id": cins["id"]}) - - run(cins, this) - - } -} diff --git a/example/admin/tt.go b/example/admin/tt.go deleted file mode 100644 index 80a0f03..0000000 --- a/example/admin/tt.go +++ /dev/null @@ -1,142 +0,0 @@ -package admin - -import ( - . "../../common" -) - -var Org = map[int]OrgInterface{ - 3: &Org3{}, -} - -type OrgInterface interface { - analyse(data Map) Map - ctgAnalyse(datas []Map, totalAnalyse Map) Map - totalAnalyse(datas []Map) (Map, Map, Map, Map) - analyseSort(datas []Map) []Map -} - -type Companys []Map - -var analyseSortType = "" -var analyseTypeName = "analyse" - -func (s Companys) Len() int { - return len(s) -} -func (s Companys) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} -func (s Companys) Less(i, j int) bool { - return s[i].GetMap(analyseTypeName).GetFloat64(analyseSortType) > s[j].GetMap(analyseTypeName).GetFloat64(analyseSortType) -} - -var ADataType = Map{ - - "PJ": "评级", - - "ZDF": "总得分", - - "NZDF": "N项总得分", - - "JGTZDF": "技改投资得分", - - "JGTZ": "技改投资金额", - - "ZJTXQLDF": "专精特新潜力得分", - - "JBZJTXQYJCYQDF": "具备专精特新企业基础要求得分", - - "JBZJTXQYYQCPDF": "具备专精特新企业要求产品得分", - - "JBZJTXHJJTJDF": "具备专精特新环境及条件得分", - - "JBZJTXZSCQYQDF": "具备专精特新知识产权要求得分", - - "YFZBDF": "2年研发占比得分", - - "KYRYZBDF": "科研人员占比得分", - - "ZCFZLDF": "资产负债率得分", - - "CYRCDF": "产业人才得分", - - "SXZBDF": "3项指标", - - "XZFZZBDF": "协作发展指标得分", - - "FHDQZDCYDF": "符合地区重点产业得分", - - "QYZDQYDF": "区域重点企业", - - "SJ100HZDQYDF": "市级100户重点企业得分", - - "CYL30HDF": "产业链30户得分", - - "LSAQZBDF": "绿色安全指标", - - "AQSCGLDF": "安全生产管理得分", - - "QYAQSCDBDF": "企业安全生产是否达标得分", - - "QYFXYHSKTXJSDF": "企业风险隐患双预控体系建设得分", - - "AQSGDF": "安全事故得分", - - "AQJCDF": "安全检查得分", - - "LSSCGYDF": "绿色生产工艺得分", - - "JPJSSJDF": "减排技术升级改造得分", - - "HBJCDF": "环保检查得分", - - "FZZLZBZDF": "发展质量指标总分", - - "QYYLNLZDF": "企业盈利能力总得分", - - "KSDF": "企业连续3年亏损得分", - - "QYLRL": "企业利润率", - - "DNLRZEDF": "当年利润总额得分", - - "LXSNYLDF": "连续3年盈利得分", - - "ZSCQDF": "知识产权总得分", - - "TGMLDF": "推广目录得分", - - "ZLDF": "专利得分", - - "STTDF": "首台(套)、首批次、首版次企业得分", - - "MJSR": "亩均收入", - "MJSRDF": "亩均收入得分", - - "MJSS": "亩均税收", - "MJSSDF": "亩均税收得分", - - "RJSR": "人均收入", - "RJSRDF": "人均收入得分", - - "YFJFTRQD": "研发经费投入强度", - "YFJFTRQDDF": "研发经费投入强度得分", - - "DWNHSS": "单位能耗税收", - "DWNHSSDF": "单位能耗税收得分", - - "ZYWRWSS": "主要污染物税收", - "ZYWRWSSDF": "主要污染物税收得分", - - "NXZBDF": "6项指标得分", - - "DJSDLQYDF": "独角兽、瞪羚企业得分", - - "JSZXDF": "企业获得技术中心得分", - - "YFFYDF": "研发费用得分", - - "GXJSQYDF": "高新技术企业得分", - - "FZQLDF": "发展潜力总分", -} diff --git a/example/app/analyse.go b/example/app/analyse.go deleted file mode 100644 index 1395f07..0000000 --- a/example/app/analyse.go +++ /dev/null @@ -1,473 +0,0 @@ -package app - -import ( - . "../../../hotime" - . "../../common" - "fmt" - "github.com/xuri/excelize" - "os" - "sort" - "time" -) - -var analyseCtr = Ctr{ - - "home_data": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - res := this.Db.Get("org_analyse", "*", Map{"org_id": orgId}) - if res == nil { - this.Display(4, "找不到该数据") - return - } - res["home_data"] = res.GetMap("home_data") - res["six_item_data"] = res.GetMap("six_item_data") - res["three_item_data"] = res.GetMap("three_item_data") - res["n_item_data"] = res.GetMap("n_item_data") - this.Display(0, res) - }, - "home_excel": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - res := this.Db.Get("org_analyse", "*", Map{"org_id": orgId}) - if res == nil { - this.Display(4, "找不到该数据") - return - } - homeData := res.GetMap("home_data") - sixItemData := res.GetMap("six_item_data") - threeItemData := res.GetMap("three_item_data") - nItemData := res.GetMap("n_item_data") - - filePath := "temp/home" + ObjToStr(orgId) + ".xlsx" - f, e := excelize.OpenFile(this.Config.GetString("tpt") + "/" + filePath) - if e != nil { - f = excelize.NewFile() - // 创建一个工作表 - f.NewSheet("IEDC全局分析") - // 创建一个工作表 - f.NewSheet("“6”项量化") - f.NewSheet("“3”项定性") - f.NewSheet("“N”项特色") - f.DeleteSheet("Sheet1") - // 设置单元格的值 - f.SetCellValue("IEDC全局分析", "A1", "指标项") - f.SetCellValue("IEDC全局分析", "B1", "指标值") - // 设置单元格的值 - f.SetCellValue("“6”项量化", "A1", "指标项") - f.SetCellValue("“6”项量化", "B1", "指标值") - // 设置单元格的值 - f.SetCellValue("“3”项定性", "A1", "指标项") - f.SetCellValue("“3”项定性", "B1", "指标值") - // 设置单元格的值 - f.SetCellValue("“N”项特色", "A1", "指标项") - f.SetCellValue("“N”项特色", "B1", "指标值") - - os.MkdirAll(this.Config.GetString("tpt")+"/temp/", os.ModeDir) - // 根据指定路径保存文件 - if err := f.SaveAs(this.Config.GetString("tpt") + "/" + filePath); err != nil { - fmt.Println(err) - this.Display(4, "输出异常") - return - } - - } - - run := func(str string, data Map, f *excelize.File) { - var keys []string - for k := range data { - keys = append(keys, k) - } - //按字典升序排列 - sort.Strings(keys) - for k, v := range keys { - // 设置单元格的值 - f.SetCellValue(str, "A"+ObjToStr(k+2), v) - f.SetCellValue(str, "B"+ObjToStr(k+2), data[v]) - } - } - run("IEDC全局分析", homeData, f) - run("“6”项量化", sixItemData, f) - run("“3”项定性", threeItemData, f) - run("“N”项特色", nItemData, f) - //f.SetCellValue("Sheet1", "B2", 100) - - f.Save() - this.Resp.Header().Set("Location", "/"+filePath) - this.Resp.WriteHeader(307) //关键在这里! - this.Display(0, filePath) - }, - "home1_data": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - res := this.Db.Get("org_analyse", "*", Map{"org_id": orgId}) - if res == nil { - this.Display(4, "找不到该数据") - return - } - res["home1_data"] = res.GetMap("home1_data") - res["six_item_data"] = res.GetMap("six_item_data") - res["three_item_data"] = res.GetMap("three_item_data") - res["n_item_data"] = res.GetMap("n_item_data") - this.Display(0, res) - }, - - "ctg": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - ctgID := ObjToInt(this.Req.FormValue("ctg_id")) - if orgId == 0 || ctgID == 0 { - this.Display(3, "参数错误") - return - } - - res := this.Db.Get("category_analyse", "*", Map{"AND": Map{"org_id": orgId, "category_id": ctgID}}) - if res == nil { - this.Display(4, "找不到该数据") - return - } - res["data"] = res.GetMap("data") - res1 := this.Db.Get("org_analyse", "home_data", Map{"org_id": orgId}) - res["home"] = res1.GetMap("home_data") - this.Display(0, res) - }, - "industrys": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - - res := this.Db.Select("industry_analyse", "industry_id,name", Map{"org_id": orgId}) - if res == nil { - this.Display(4, "找不到该数据") - return - } - - this.Display(0, res) - }, - "industry": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - industryId := ObjToInt(this.Req.FormValue("industry_id")) - if orgId == 0 || industryId == 0 { - this.Display(3, "参数错误") - return - } - res := this.Db.Get("industry_analyse", "*", Map{"AND": Map{"org_id": orgId, "industry_id": industryId}}) - if res == nil { - this.Display(4, "找不到该数据") - return - } - res["data"] = res.GetMap("data") - res1 := this.Db.Get("org_analyse", "name,home_data", Map{"org_id": orgId}) - res["home"] = res1.GetMap("home_data") - res["home_name"] = res1.GetString("name") - this.Display(0, res) - }, - "industry_excel": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - industryId := ObjToInt(this.Req.FormValue("industry_id")) - if orgId == 0 || industryId == 0 { - this.Display(3, "参数错误") - return - } - res := this.Db.Get("industry_analyse", "*", Map{"AND": Map{"org_id": orgId, "industry_id": industryId}}) - if res == nil { - this.Display(4, "找不到该数据") - return - } - res["data"] = res.GetMap("data") - //res1 := this.Db.Get("org_analyse", "name,home_data", Map{"org_id": orgId}) - //res["home"] = res1.GetMap("home_data") - //res["home_name"] = res1.GetString("name") - - filePath := "temp/industry" + ObjToStr(industryId) + "x" + ObjToStr(orgId) + ".xlsx" - - f, e := excelize.OpenFile(this.Config.GetString("tpt") + "/" + filePath) - if e != nil { - f = excelize.NewFile() - - // 创建一个工作表 - f.NewSheet(res.GetString("name")) - - f.DeleteSheet("Sheet1") - // 设置单元格的值 - f.SetCellValue(res.GetString("name"), "A1", "指标项") - f.SetCellValue(res.GetString("name"), "B1", "指标值") - - os.MkdirAll(this.Config.GetString("tpt")+"/temp/", os.ModeDir) - - // 根据指定路径保存文件 - if err := f.SaveAs(this.Config.GetString("tpt") + "/" + filePath); err != nil { - fmt.Println(err) - this.Display(4, "输出异常") - return - } - } - - run := func(str string, data Map, f *excelize.File) { - var keys []string - for k := range data { - keys = append(keys, k) - } - //按字典升序排列 - sort.Strings(keys) - for k, v := range keys { - // 设置单元格的值 - f.SetCellValue(str, "A"+ObjToStr(k+2), v) - f.SetCellValue(str, "B"+ObjToStr(k+2), data[v]) - } - } - run(res.GetString("name"), res.GetMap("data"), f) - //f.SetCellValue("Sheet1", "B2", 100) - f.Save() - this.Resp.Header().Set("Location", "/"+filePath) - this.Resp.WriteHeader(307) //关键在这里! - this.Display(0, filePath) - }, - "map": func(this *Context) { - - orgId := ObjToInt(this.Req.FormValue("org_id")) - industryId := ObjToInt(this.Req.FormValue("industry_id")) - //if orgId == 0 || industryId == 0 { - // this.Display(3, "参数错误") - // return - //} - page := ObjToInt(this.Req.FormValue("page")) - pageSize := ObjToInt(this.Req.FormValue("pageSize")) - search := this.Req.FormValue("search") - where := Map{} - levelStr := this.Req.FormValue("level") - if levelStr != "" { - where["level"] = ObjToInt(levelStr) - } - if orgId != 0 { - where["org_id"] = orgId - } - if industryId != 0 { - where["industry_id"] = industryId - } - - if search != "" { - where["name[~]"] = search - } - if len(where) > 1 { - where = Map{"AND": where} - } - - if page == 0 { - page = 1 - } - if pageSize == 0 { - pageSize = 10 - } - count := this.Db.Count("company", where) - - companys := this.Db.Page(page, pageSize).PageSelect("company", Map{"[><]industry": "company.industry_id=industry.id"}, - "company.id,company.collect_data,company.name,company.level,company.address,company.score,company.lat,company.lng,company.category_id,industry.name AS industry_name,company.industry_id", - where) - - for _, res := range companys { - - res["collect_data"] = res.GetMap("collect_data") - //if res.GetMap("collect_data") == nil { - // path := "company/" + Md5(res.GetString("name")) + time.Now().Format("/200601021504.json") - // - // data := getCompany(res.GetString("name"), this.Config.GetString("tpt")+"/"+path) - // - // if len(data) != 0 { - // data["path"] = path - // re := this.Db.Update("company", Map{"collect_data": data.ToJsonString(), - // "address": data.GetString("companyAddress"), - // "sn": data.GetString("creditNo"), - // "unit": data.GetString("authority"), - // }, Map{"id": res.GetCeilInt("id")}) - // fmt.Println(re) - // res["collect_data"] = data - // res["address"] = data.GetString("companyAddress") - // res["sn"] = data.GetString("creditNo") - // res["unit"] = data.GetString("authority") - // } - //} - - } - - this.Display(0, Map{"count": count, "pageSize": pageSize, "data": companys}) - }, - "updateCompany": func(this *Context) { - lng := ObjToFloat64(this.Req.FormValue("lng")) - lat := ObjToFloat64(this.Req.FormValue("lat")) - id := ObjToInt(this.Req.FormValue("id")) - if lng == 0 || lat == 0 || id == 0 { - this.Display(3, "请求异常") - return - } - - re := this.Db.Update("company", Map{"lng": lng, "lat": lat}, Map{"id": id}) - if re == 0 { - this.Display(4, "更新失败") - return - } - this.Display(0, "更新成功") - }, - - "companys": func(this *Context) { - - page := ObjToInt(this.Req.FormValue("page")) - pageSize := ObjToInt(this.Req.FormValue("pageSize")) - orgId := ObjToInt(this.Req.FormValue("org_id")) - search := this.Req.FormValue("search") - sort := this.Req.FormValue("sort") - where := Map{"state": 0} - levelStr := this.Req.FormValue("level") - if levelStr != "" { - where["level"] = ObjToInt(levelStr) - } - industryId := ObjToInt(this.Req.FormValue("industry_id")) - if industryId != 0 { - where["industry_id"] = industryId - } - if orgId != 0 { - where["org_id"] = orgId - } - if search != "" { - where["name[~]"] = search - } - if len(where) > 1 { - where = Map{"AND": where} - } - if sort != "" { - where["ORDER"] = sort - } else { - where["ORDER"] = "score DESC" - } - - if page == 0 { - page = 1 - } - if pageSize == 0 { - pageSize = 10 - } - count := this.Db.Count("company", where) - - companys := this.Db.Page(page, pageSize).PageSelect("company", - "*", - where) - for _, res := range companys { - analyse := res.GetMap("analyse") - if analyse != nil { - for k, v := range analyse { - if ADataType[k] != nil { - analyse[ADataType.GetString(k)] = v - } - } - res["analyse"] = analyse - } - res["upload_data"] = res.GetMap("upload_data") - res["collect_data"] = res.GetMap("collect_data") - res["collect_data"] = res.GetMap("collect_data") - //if res.GetMap("collect_data") == nil && page == 1 { - // go func(res Map, this *Context) { - // path := "company/" + Md5(res.GetString("name")) + time.Now().Format("/200601021504.json") - // - // data := getCompany(res.GetString("name"), this.Config.GetString("tpt")+"/"+path) - // - // if len(data) != 0 { - // data["path"] = path - // this.Db.Update("company", Map{"collect_data": data.ToJsonString(), - // "address": data.GetString("companyAddress"), - // "sn": data.GetString("creditNo"), - // "unit": data.GetString("authority"), - // }, Map{"id": res.GetCeilInt("id")}) - // res["collect_data"] = data - // } - // }(res, this) - //} - - } - - this.Display(0, Map{"count": count, "pageSize": pageSize, "data": companys}) - }, - - "company": func(this *Context) { - id := ObjToInt(this.Req.FormValue("id")) - if id == 0 { - this.Display(3, "参数错误") - return - } - - res := this.Db.Get("company", "*", Map{"id": id}) - if res == nil { - this.Display(4, "找不到该数据") - return - } - analyse := res.GetMap("analyse") - - if analyse != nil { - for k, v := range analyse { - if ADataType[k] != nil { - analyse[ADataType.GetString(k)] = v - } - } - res["analyse"] = analyse - } - analyse1 := res.GetMap("analyse1") - if analyse1 != nil { - for k, v := range analyse1 { - if ADataType[k] != nil { - analyse1[ADataType.GetString(k)] = v - } - } - res["analyse1"] = analyse1 - } - - res["upload_data"] = res.GetMap("upload_data") - res["collect_data"] = res.GetMap("collect_data") - if res.GetMap("collect_data") == nil { - go func(res Map) { - path := "company/" + Md5(res.GetString("name")) + time.Now().Format("/200601021504.json") - - data := getCompany(res.GetString("name"), this.Config.GetString("tpt")+"/"+path) - - if len(data) != 0 { - data["path"] = path - this.Db.Update("company", Map{"collect_data": data.ToJsonString()}, Map{"id": res.GetCeilInt("id")}) - res["collect_data"] = data - } - - }(res) - - } - this.Display(0, res) - - }, - "company_upload": func(this *Context) { - id := ObjToInt(this.Req.FormValue("id")) - if id == 0 { - this.Display(3, "参数错误") - return - } - - res := this.Db.Get("company", "upload_data,org_id", Map{"id": id}) - if res == nil { - this.Display(4, "找不到该数据") - return - } - - uploadData := res.GetMap("upload_data") - tags := this.Db.Select("tag", "name,sn,`unit`,description", Map{"AND": Map{"type": 0, "org_id": res.GetCeilInt("org_id")}}) - for _, v := range tags { - v["value"] = uploadData[v.GetString("sn")] - } - this.Display(0, tags) - - }, -} diff --git a/example/app/category.go b/example/app/category.go deleted file mode 100644 index 044c292..0000000 --- a/example/app/category.go +++ /dev/null @@ -1,19 +0,0 @@ -package app - -import ( - . "../../../hotime" - . "../../../hotime/common" - //"strings" -) - -var Category = Ctr{ - - //获取列表 - "list": func(this *Context) { - - re := this.Db.Select("category", "*", Map{"parent_id": 1}) - - this.Display(0, re) - - }, -} diff --git a/example/app/init.go b/example/app/init.go deleted file mode 100644 index 97d2200..0000000 --- a/example/app/init.go +++ /dev/null @@ -1,161 +0,0 @@ -package app - -import ( - . "../../../hotime" - . "../../../hotime/common" - "../../dri/aliyun" - "../../dri/tencent" - "fmt" - "github.com/silenceper/wechat" - "github.com/silenceper/wechat/cache" - "gopkg.in/chanxuehong/wechat.v2/mch/core" - "gopkg.in/chanxuehong/wechat.v2/mch/pay" - "io/ioutil" - "os" - "path/filepath" - "time" -) - -// Project 管理端项目 -var Project = Proj{ - //"user": UserCtr, - "tag": tagCtr, - "analyse": analyseCtr, - "user": User, - "wechat": Wechat, - "question": Question, - "category": Category, - "sms": Sms, -} -var weixin *wechat.Wechat //微信登录实例 -//var appIns = Application{} -var wxpayClient *core.Client - -//生成随机码的4位随机数 -func getCode() string { - //res := "" - //for i := 0; i < 4; i++ { - res := ObjToStr(RandX(1000, 9999)) - //} - return res -} - -func getCompany(name, path string) Map { - os.Setenv("ZONEINFO", "config/data.zip") - res := tencent.GetCompany("AKIDklZa1qBr3B0x1G643cg8B6UO5JZm2KX8o43G", "tdda7oro526h96dvicYkep1xsWFmHkt33xvqs2K", name) - c := Map{} - base := Map{} - if res.GetInt("code") != 200 { - - return base - } - if res.GetInt("code") == 200 { - c = res.GetMap("data").GetMap("data") - - base = c.GetMap("base") - base["allows"] = len(c.GetSlice("allows")) - base["branches"] = len(c.GetSlice("branches")) - base["changes"] = len(c.GetSlice("changes")) - base["employees"] = len(c.GetSlice("employees")) - base["exceptions"] = len(c.GetSlice("exceptions")) - - base["mPledges"] = len(c.GetSlice("mPledges")) - base["originalName"] = len(c.GetSlice("originalName")) - base["partners"] = len(c.GetSlice("partners")) - base["pledges"] = len(c.GetSlice("pledges")) - base["punishes"] = len(c.GetSlice("punishes")) - - base["shiXinItems"] = len(c.GetSlice("shiXinItems")) - base["spotChecks"] = len(c.GetSlice("spotChecks")) - base["taxCreditltems"] = len(c.GetSlice("taxCreditltems")) - base["zhiXingItems"] = len(c.GetSlice("zhiXingItems")) - base["contactInfo"] = c["contactInfo"] - base["industry"] = c["industry"] - base["liquidation"] = c["liquidation"] - } - - aliyun.DefaultCompany.Init("06c6a07e89dd45c88de040ee1489eef7") - data := aliyun.DefaultCompany.GetCompanyOtherAll(name) - - base["OtherCopyrightsInfo"] = data.GetMap("OtherCopyrightsInfo").GetInt("total") - base["PatentsInfo"] = data.GetMap("PatentsInfo").GetInt("total") - base["ProfileTags"] = data.GetSlice("ProfileTags") - base["SoftwareCopyrightsInfo"] = data.GetMap("SoftwareCopyrightsInfo").GetInt("total") - base["TrademarksInfo"] = data.GetMap("TrademarksInfo").GetInt("total") - - if res.GetInt("code") == 200 { - data["base"] = c - } - - _ = os.MkdirAll(filepath.Dir(path), os.ModeDir) - ioutil.WriteFile(path, []byte(data.ToJsonString()), os.ModePerm) - - return base -} - -//微信获取个人信息 -func Weixin(this *Context) *wechat.Wechat { - if weixin == nil { - cache1 := cache.Cache(WechatCache{this.CacheIns}) - config := wechat.Config{Cache: cache1, AppID: this.Config.GetString("wechatAppID"), AppSecret: this.Config.GetString("wechatAppSecret")} - weixin = wechat.NewWechat(&config) - } - - return weixin -} - -//微信获取个人信息 -func WxPayClient(this *Context, sn string, money int64, openid string) Map { - if wxpayClient == nil { - wxpayClient = core.NewClient(this.Config.GetString("wechatAppID"), this.Config.GetString("wechatChid"), this.Config.GetString("wechatChkey"), nil) - } - - res, err := pay.UnifiedOrder2(wxpayClient, &pay.UnifiedOrderRequest{ - - // 必选参数 - Body: "微信充值", // 商品或支付单简要描述 - OutTradeNo: sn, // 商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号 - TotalFee: money, // ObjToInt64(umoney*100), // `xml:"total_fee"` // 订单总金额,单位为分,详见支付金额 - //SpbillCreateIP string `xml:"spbill_create_ip"` // APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。 - NotifyURL: this.Config.GetString("wechatPayCallBack"), // string `xml:"notify_url"` // 接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。 - TradeType: "JSAPI", // string `xml:"trade_type"` // 取值如下:JSAPI,NATIVE,APP,详细说明见参数规定 - - // 可选参数 - DeviceInfo: "WEB", // string `xml:"device_info"` // 终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB" - // NonceStr string `xml:"nonce_str"` // 随机字符串,不长于32位。NOTE: 如果为空则系统会自动生成一个随机字符串。 - //SignType string `xml:"sign_type"` // 签名类型,默认为MD5,支持HMAC-SHA256和MD5。 - // Detail:"充值",// string `xml:"detail"` // 商品名称明细列表 - //Attach string `xml:"attach"` // 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 - //FeeType string `xml:"fee_type"` // 符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 - //TimeStart time.Time `xml:"time_start"` // 订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则 - //TimeExpire time.Time `xml:"time_expire"` // 订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则 - //GoodsTag string `xml:"goods_tag"` // 商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠 - // ProductId :"CHONGZHI",// string `xml:"product_id"` // trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。 - // LimitPay string `xml:"limit_pay"` // no_credit--指定不能使用信用卡支付 - OpenId: openid, //user.GetString("wuid"), // string `xml:"openid"` // rade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。 - // SubOpenId string `xml:"sub_openid"` // trade_type=JSAPI,此参数必传,用户在子商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。 - // SceneInfo string `xml:"scene_info"` // 该字段用于上报支付的场景信息,针对H5支付有以下三种场景,请根据对应场景上报,H5支付不建议在APP端 - - }) - if err != nil { - - fmt.Println(err) - return nil - } - wcpay := Map{ - "appId": this.Config.Get("wechatAppID"), - "timeStamp": ObjToStr(time.Now().Unix()), - "nonceStr": getSn(), - "package": "prepay_id=" + res.PrepayId, - "signType": "MD5", - } - wcpay["paySign"] = core.JsapiSign(this.Config.GetString("wechatAppID"), wcpay.GetString("timeStamp"), wcpay.GetString("nonceStr"), wcpay.GetString("package"), "MD5", this.Config.GetString("wechatChkey")) - - return wcpay -} - -//生成随机码的6位md5 -func getSn() string { - x := Rand(8) - return Substr(Md5(ObjToStr(int64(x)+time.Now().UnixNano()+int64(Rand(6)))), 0, 6) -} diff --git a/example/app/question.go b/example/app/question.go deleted file mode 100644 index 8835b9b..0000000 --- a/example/app/question.go +++ /dev/null @@ -1,87 +0,0 @@ -package app - -import ( - . "../../../hotime" - . "../../../hotime/common" - "fmt" - "time" - //"strings" -) - -var Question = Ctr{ - - //获取个人信息 - "update": func(this *Context) { - if this.Session("user_id").Data == nil { - this.Display(2, "还没有登录") - return - } - - questionCompanyId := ObjToInt(this.Req.FormValue("id")) - if questionCompanyId == 0 { - this.Display(3, "参数错误") - return - } - data := this.Req.FormValue("question_data") - - if data == "" { - this.Display(3, "没有上传数据") - return - } - - status := ObjToInt(this.Req.FormValue("status")) - re := this.Db.Update("question_company", Map{"question_data": data, "status": status}, Map{"id": questionCompanyId}) - if re == 0 { - //this.Display(4, "没有更新信息!") - fmt.Println(4, "没有更新信息!") - //return - } - - this.Display(0, "更新成功") - - }, - //获取列表 - "list": func(this *Context) { - if this.Session("user_id").Data == nil { - this.Display(2, "还没有登录") - return - } - - user := this.Db.Get("user", "*", Map{"id": this.Session("user_id").Data}) - - t := time.Now().Unix() - - questions := this.Db.Select("question", "*", Map{"AND": Map{"org_id": user.GetCeilInt("org_id"), "start_time[>=]": t, "end_time[<=]": t, "state": 0}}) - re := []Map{} - - for _, v := range questions { - questionCompany := this.Db.Get("question_company", "*", Map{"AND": Map{"question_id": v.GetCeilInt("id"), "company_id": user.GetCeilInt("company_id")}}) - if questionCompany == nil { - questionCompany = Map{ - "name": v.GetString("name"), - "question_data": v.GetString("question_data"), - "org_id": v.GetString("org_id"), - "question_id": v.GetString("id"), - "company_id": user.GetCeilInt("company_id"), - "user_id": user.GetString("id"), - "create_time": t, - "modify_time": t, - "status": 0, - "state": 0, - } - questionCompany["id"] = this.Db.Insert("question_company", questionCompany) - if questionCompany.GetCeilInt("id") == 0 { - this.Display(4, "无法创建调查数据") - return - } - } - - delete(v, "question") - questionCompany["question"] = v - re = append(re, questionCompany) - } - //user["questions"]=re - this.Display(0, re) - - }, -} diff --git a/example/app/sms.go b/example/app/sms.go deleted file mode 100644 index f7651b4..0000000 --- a/example/app/sms.go +++ /dev/null @@ -1,33 +0,0 @@ -package app - -import ( - . "../../../hotime" - "../../dri/ddsms" -) - -var Sms = Ctr{ - //只允许微信验证过的或者登录成功的发送短信 - "send": func(this *Context) { - //if this.Session("uid").Data == nil && this.Session("wechatInfo").Data == nil { - // this.Display(2, "没有授权") - // return - //} - //if len(this.Req.FormValue("token")) != 32 { - // this.Display(2, "没有授权") - // return - //} - - phone := this.Req.FormValue("phone") - if len(phone) < 11 { - this.Display(3, "手机号格式错误") - return - } - code := getCode() - this.Session("phone", phone) - this.Session("code", code) - - ddsms.DefaultDDY.SendYZM(phone, this.Config.GetString("smsLogin"), map[string]string{"code": code}) - - this.Display(0, "发送成功") - }, -} diff --git a/example/app/tag.go b/example/app/tag.go deleted file mode 100644 index af45e6c..0000000 --- a/example/app/tag.go +++ /dev/null @@ -1,43 +0,0 @@ -package app - -import ( - . "../../../hotime" - . "../../common" -) - -var tagCtr = Ctr{ - - "ctg_tree": func(this *Context) { - orgId := ObjToInt(this.Req.FormValue("org_id")) - if orgId == 0 { - this.Display(3, "参数错误") - return - } - data := Map{} - run := func(t int) []Map { - //upCtg:=this.Db.Select("tag_ctg","*",Map{"parent_id":id}) - //for _,v:=range upCtg{ - upTag := this.Db.Select("tag", "*", Map{"AND": Map{"type": t, "org_id": 2}}) - upTag1 := this.Db.Select("tag", "*", Map{"AND": Map{"type": t, "org_id": orgId}}) - for _, v := range upTag { - check := true - for _, v1 := range upTag1 { - if v1.GetString("sn") == v.GetString("sn") { - check = false - break - } - } - if check { - upTag1 = append(upTag1, v) - } - } - return upTag1 - } - - data["upload"] = run(0) - data["api"] = run(1) - data["analyse"] = run(2) - - this.Display(0, data) - }, -} diff --git a/example/app/tt.go b/example/app/tt.go deleted file mode 100644 index 866b227..0000000 --- a/example/app/tt.go +++ /dev/null @@ -1,116 +0,0 @@ -package app - -import ( - . "../../common" -) - -var ADataType = Map{ - - "PJ": "评级", - - "ZDF": "总得分", - - "NZDF": "N项总得分", - - "JGTZDF": "技改投资得分", - - "JGTZ": "技改投资金额", - - "ZJTXQLDF": "专精特新潜力得分", - - "JBZJTXQYJCYQDF": "具备专精特新企业基础要求得分", - - "JBZJTXQYYQCPDF": "具备专精特新企业要求产品得分", - - "JBZJTXHJJTJDF": "具备专精特新环境及条件得分", - - "JBZJTXZSCQYQDF": "具备专精特新知识产权要求得分", - - "YFZBDF": "2年研发占比得分", - - "KYRYZBDF": "科研人员占比得分", - - "ZCFZLDF": "资产负债率得分", - - "CYRCDF": "产业人才得分", - - "SXZBDF": "3项指标", - - "XZFZZBDF": "协作发展指标得分", - - "FHDQZDCYDF": "符合地区重点产业得分", - - "QYZDQYDF": "区域重点企业", - - "SJ100HZDQYDF": "市级100户重点企业得分", - - "CYL30HDF": "产业链30户得分", - - "LSAQZBDF": "绿色安全指标", - - "AQSCGLDF": "安全生产管理得分", - - "QYAQSCDBDF": "企业安全生产是否达标得分", - - "QYFXYHSKTXJSDF": "企业风险隐患双预控体系建设得分", - - "AQSGDF": "安全事故得分", - - "AQJCDF": "安全检查得分", - - "LSSCGYDF": "绿色生产工艺得分", - - "JPJSSJDF": "减排技术升级改造得分", - - "HBJCDF": "环保检查得分", - - "FZZLZBZDF": "发展质量指标总分", - - "QYYLNLZDF": "企业盈利能力总得分", - - "KSDF": "企业连续3年亏损得分", - - "QYLRL": "企业利润率", - - "DNLRZEDF": "当年利润总额得分", - - "LXSNYLDF": "连续3年盈利得分", - - "ZSCQDF": "知识产权总得分", - - "TGMLDF": "推广目录得分", - - "ZLDF": "专利得分", - - "STTDF": "首台(套)、首批次、首版次企业得分", - - "MJSR": "亩均收入", - "MJSRDF": "亩均收入得分", - - "MJSS": "亩均税收", - "MJSSDF": "亩均税收得分", - - "RJSR": "人均收入", - "RJSRDF": "人均收入得分", - - "YFJFTRQD": "研发经费投入强度", - "YFJFTRQDDF": "研发经费投入强度得分", - - "DWNHSS": "单位能耗税收", - "DWNHSSDF": "单位能耗税收得分", - - "ZYWRWSS": "主要污染物税收", - "ZYWRWSSDF": "主要污染物税收得分", - - "NXZBDF": "6项指标得分", - - "DJSDLQYDF": "独角兽、瞪羚企业得分", - - "JSZXDF": "企业获得技术中心得分", - - "YFFYDF": "研发费用得分", - - "GXJSQYDF": "高新技术企业得分", - - "FZQLDF": "发展潜力总分", -} diff --git a/example/app/user.go b/example/app/user.go deleted file mode 100644 index 5743dab..0000000 --- a/example/app/user.go +++ /dev/null @@ -1,394 +0,0 @@ -package app - -import ( - . "../../../hotime" - . "../../../hotime/common" - "../../../hotime/dri/download" - "../../../hotime/dri/tencent" - "encoding/base64" - "fmt" - "io/ioutil" - "os" - "strings" - "time" - //"strings" -) - -var User = Ctr{ - "token": func(this *Context) { - this.Display(0, this.SessionId) - }, - "test": func(this *Context) { - fmt.Println(this.SessionId) - this.Session("user_id", 1) - wechat := this.Db.Get("wechat", "*") - this.Session("wechatInfo", wechat) - this.Display(0, "开始测试") - }, - //获取个人信息 - "info": func(this *Context) { - //this.Session("user_id", 1) - //wechat:=this.Db.Get("wechat","*") - //this.Session("wechatInfo",wechat) - - if this.Session("user_id").Data == nil { - if this.Session("wechatInfo").Data != nil { - - wechat := this.Db.Get("wechat", "status", Map{"id": this.Session("wechatInfo").ToMap().GetCeilInt("id")}) - if wechat.GetCeilInt("status") == 0 { - this.Display(6, "需要认证") - return - } - - } - this.Display(2, "还没有登录") - return - } - - user := this.Db.Get("user", "*", Map{"id": this.Session("user_id").Data}) - if user == nil { - fmt.Println(this.Session("user_id").Data, ":fsdfsd") - this.Display(4, "找不到该用户") - return - } - - org := this.Db.Get("org", "contact", Map{"id": user.GetCeilInt("org_id")}) - user["org"] = org - company := this.Db.Get("company", "id,name,status", Map{"id": user.GetCeilInt("company_id")}) - user["company"] = company - - t := time.Now().Unix() - - questions := this.Db.Select("question", "*", Map{"AND": Map{"org_id": user.GetCeilInt("org_id"), "state": 0}}) - re := []Map{} - - for _, v := range questions { - questionCompany := this.Db.Get("question_company", "*", Map{"AND": Map{"question_id": v.GetCeilInt("id"), "company_id": user.GetCeilInt("company_id")}}) - if questionCompany == nil { - questionCompany = Map{ - "name": v.GetString("name"), - "question_data": v.GetString("question_data"), - "org_id": v.GetString("org_id"), - "question_id": v.GetString("id"), - "company_id": user.GetCeilInt("company_id"), - "user_id": user.GetString("id"), - "create_time": t, - "modify_time": t, - "status": 0, - "state": 0, - } - questionCompany["id"] = this.Db.Insert("question_company", questionCompany) - if questionCompany.GetCeilInt("id") == 0 { - this.Display(4, "无法创建调查数据") - return - } - } - - delete(v, "question_data") - questionCompany["question"] = v - questionCompany["question_data"] = questionCompany.GetSlice("question_data") - re = append(re, questionCompany) - } - user["questions"] = re - - this.Display(0, user) - - }, - //身份认证 - "auth": func(this *Context) { - - wechat := this.Session("wechatInfo").ToMap() - - if wechat == nil { - if this.Session("user_id").Data == nil { - this.Display(6, "还没有登录") - return - } - wechat := this.Db.Get("wechat", "*", Map{"user_id": this.Session("user_id").ToCeilInt()}) - if wechat == nil { - this.Display(6, "没有微信登录") - return - } - } - - if this.Session("code").Data == nil { - this.Display(8, "验证码没有获取") - return - } - - //orgId := ObjToInt(this.Req.FormValue("org_id")) - ////questionCompanyId:=ObjToInt(this.Req.FormValue("id")) - //if orgId == 0 { - // this.Display(3, "没有选择组织") - // return - //} - - name := this.Req.FormValue("name") - phone := this.Req.FormValue("phone") - code := this.Req.FormValue("code") - authImg := this.Req.FormValue("auth_img") - categoryId := ObjToInt(this.Req.FormValue("category_id")) - companyImg := this.Req.FormValue("company_img") - companyName := this.Req.FormValue("company_name") - companySn := this.Req.FormValue("company_sn") - - if code != this.Session("code").ToStr() { - this.Display(8, "验证码错误") - return - } - - if name == "" || phone == "" || authImg == "" || categoryId == 0 || companyImg == "" || companyName == "" || companySn == "" { - this.Display(3, "参数异常") - return - } - t := time.Now().Unix() - - orgId := wechat.GetInt("org_id") - - company := this.Db.Get("company", "id", Map{"sn": companySn}) - if company == nil { - company = Map{ - "name": companyName, - "sn": companySn, - "create_time": t, - "category_id": categoryId, - //"org_id": orgId, - "modify_time": t, - "status": 1, - "state": 0, - "img": companyImg, - } - if wechat.GetInt("status") == 0 && orgId != 0 { - company["org_id"] = orgId - } - - company["id"] = this.Db.Insert("company", company) - - if company.GetCeilInt("id") == 0 { - this.Display(4, "无法创建企业") - return - } - } else { - company["status"] = 1 - company["modify_time"] = t - company["img"] = companyImg - company["name"] = companyName - company["img"] = companyImg - if wechat.GetInt("status") == 0 && orgId != 0 { - company["org_id"] = orgId - } - re := this.Db.Update("company", company, Map{"id": company.GetCeilInt("id")}) - if re == 0 { - this.Display(4, "无法更新企业") - return - } - } - - user := this.Db.Get("user", "*", Map{"phone": phone}) - data := Map{"name": name, - "phone": phone, - //"org_id": orgId, - //"idcard": idcard, - //"idcard_front_img": idcardFrontImg, - "company_id": company.GetCeilInt("id"), - //"idcard_back_img": idcardBackImg, - "auth_img": authImg, - "modify_time": t, - "status": 1, - "company_img": companyImg} - if wechat.GetInt("status") == 0 && orgId != 0 { - data["org_id"] = orgId - } - - //用户已经注册则更新 - if user != nil { - re := this.Db.Update("user", data, Map{"id": user.GetCeilInt("id")}) - if re == 0 { - this.Display(4, "无法更新用户") - return - } - } else { - data["create_time"] = t - if wechat != nil { - data["nickname"] = wechat.GetString("nickname") - path := time.Now().Format(this.Config.GetString("imgPath")) - filename := Md5(ObjToStr(t)) + ".jpg" - down := download.Down(wechat.GetString("avatar"), this.Config.GetString("tpt")+"/"+path, filename) - if down { - data["avatar"] = path + filename - } - } - user = data - user["id"] = this.Db.Insert("user", data) - if user.GetCeilInt("id") == 0 { - this.Display(4, "无法创建用户") - return - } - } - - this.Db.Update("wechat", Map{"status": 1, "user_id": user.GetCeilInt("id")}, Map{"id": wechat.GetInt("id")}) - - this.Session("user_id", user.GetCeilInt("id")) - this.Display(0, this.SessionId) - - }, - - //修改密码g - "forget": func(this *Context) { - if this.Session("code").Data == nil { - this.Display(8, "验证码没有获取") - return - } - - if this.Req.FormValue("code") == "" || this.Req.FormValue("umobile") == "" { - this.Display(3, "验证码或者手机号没有输入") - return - } - - if this.Req.FormValue("umobile") != this.Session("umobile").ToStr() || - this.Req.FormValue("code") != this.Session("code").ToStr() { - this.Display(14, "验证码验证失败") - return - } - - if len(this.Req.FormValue("upwd")) < 6 { - this.Display(3, "密码没有输入") - return - - } - - res := this.Db.Update("user", Map{"upwd": Md5(this.Req.FormValue("upwd"))}, Map{"umobile": this.Req.FormValue("umobile")}) - if res == 0 { - this.Display(5, "找不到该用户") - return - } - - this.Display(0, "成功") - }, - - "upload": func(this *Context) { - file := this.Req.FormValue("file") - - if len(file) < 100 { - this.Display(3, "图片上传错误") - return - } - - //fmt.Println(uimg) - - btes, e := base64.StdEncoding.DecodeString(file[strings.Index(file, ",")+1:]) //成图片文件并把文件写入到buffer - //btes, e := base64.StdEncoding.DecodeString(file) //成图片文件并把文件写入到buffer - if e != nil { - this.Display(3, "无法解析图片") - return - } - - //uimgPath:=time.Now().Format(this.Config.GetString("uimgPath")) - path := time.Now().Format(this.Config.GetString("wxFilePath")) - os.MkdirAll(this.Config.GetString("tpt")+"/"+path, os.ModeDir) - filePath := path + Md5(ObjToStr(time.Now().Unix())) + ".jpg" - - err2 := ioutil.WriteFile(this.Config.GetString("tpt")+"/"+filePath, btes, 0666) //buffer输出到jpg文件中(不做处理,直接写到文件) - - if err2 != nil { - this.Display(3, "图片保存失败") - return - } - tp := this.Req.FormValue("type") - - if tp == "company" { - data := tencent.OCRCOMPANY(file) - c := ObjToMap(data) - if c != nil { - c = c.GetMap("Response") - c["url"] = filePath - - } else { - c = Map{"url": filePath} - } - this.Display(0, c) - return - } - if tp == "common" { - data := tencent.OCR(file) - c := ObjToMap(data) - if c != nil { - c = c.GetMap("Response") - c["url"] = filePath - } else { - c = Map{"url": filePath} - } - this.Display(0, c) - return - } - - this.Display(0, filePath) - }, - //"upload": func(this *Context) { - // - // //读取网络文件 - // fi, fheader, err := this.Req.FormFile("file") - // if err != nil { - // this.Display(3, err) - // return - // - // } - // filePath := this.Config.GetString("wxFilePath") - // if filePath == "" { - // filePath = "file/2006/01/02/" - // } - // - // path := time.Now().Format(filePath) - // e := os.MkdirAll(this.Config.GetString("tpt")+"/"+path, os.ModeDir) - // - // if e != nil { - // this.Display(3, e) - // return - // } - // - // filePath = path + Md5(ObjToStr(RandX(100000, 9999999))) + fheader.Filename[strings.LastIndex(fheader.Filename, "."):] - // newFile, e := os.Create(this.Config.GetString("tpt") + "/" + filePath) - // - // if e != nil { - // this.Display(3, e) - // return - // } - // - // _, e = io.Copy(newFile, fi) - // - // if e != nil { - // this.Display(3, e) - // return - // } - // - // //this.Display(0, filePath) - // - // //读取excel - // //fmt.Println(Org[orgId],OrgId) - // - // - // this.Display(0, filePath) - // - //}, - //更新个人资料 - "update": func(this *Context) { - if this.Req.Form["email"] == nil || - this.Req.Form["name"] == nil || - //this.Req.Form["phone"] == nil || - this.Req.Form["avatar"] == nil || - this.Req.Form["idcard"] == nil { - this.Display(3, "参数不足") - } - //更新代码 - update := Map{ - "email": this.Req.FormValue("email"), - "idcard": this.Req.FormValue("idcard"), - "avatar": this.Req.FormValue("avatar"), - "name": this.Req.FormValue("name"), - } - - this.Db.Update("user", update, Map{"id": this.Session("user_id").Data}) - this.Display(0, "ok") - - }, -} diff --git a/example/app/wechat.go b/example/app/wechat.go deleted file mode 100644 index 23c325c..0000000 --- a/example/app/wechat.go +++ /dev/null @@ -1,177 +0,0 @@ -package app - -import ( - . "../../../hotime" - . "../../../hotime/cache" - . "../../../hotime/common" - "fmt" - "github.com/silenceper/wechat" - "github.com/silenceper/wechat/cache" - "time" -) - -type WechatCache struct { - CacheIns -} - -func (this WechatCache) Get(key string) interface{} { - return this.Cache("x" + key).Data - //return nil -} -func (this WechatCache) Set(key string, val interface{}, timeout time.Duration) error { - - this.Cache("x"+key, val, ObjToInt64(timeout.Seconds())) - return nil -} -func (this WechatCache) IsExist(key string) bool { - c := this.Cache("x" + key).Data - if c != nil { - return true - } - return false - -} -func (this WechatCache) Delete(key string) error { - this.Cache("x"+key, nil) - return nil -} - -var Wechat = Ctr{ - "user": func(this *Context) { - if this.Session("wechatInfo").Data == nil { - this.Display(2, "没有登录") - } - - this.Display(0, this.Session("wechatInfo").ToMap()) - }, - //微信注册,0已经完整的注册了,1还没有注册 - "codebase": func(this *Context) { - wx := Weixin(this) - auth := wx.GetOauth(this.Req, this.Resp) - resToken, err := auth.GetUserAccessToken(this.Req.FormValue("code")) - if err != nil { - this.Display(6, "code错误") - return - } - - //判断用户是否已经注册 - user := this.Db.Get("wechat", Map{"[><]user": "wechat.user_id=user.id"}, "user.id,user.state", Map{"openid": resToken.OpenID}) - if user != nil { - this.Session("user_id", user.Get("id")) - this.Display(0, 0) - return - } - - user_id := this.Db.Insert("user", Map{"time": time.Now().Unix(), "state": 2}) - if user_id == 0 { - this.Display(4, "创建用户失败") - return - } - - wid := this.Db.Insert("wechat", Map{"openid": resToken.OpenID, "appid": this.Config.GetString("wechatAppID"), "state": 1, "user_id": user_id}) - if wid == 0 { - this.Display(4, "关联微信失败!") - return - } - - this.Session("user_id", user.Get("id")) - - this.Display(0, 1) - }, - //微信注册,0已经完整的注册了,1还没有注册 - "code": func(this *Context) { - - orgId := ObjToInt(this.Req.FormValue("org_id")) - //if orgId==0{ - // this.Display(3, "缺少组织id") - // return - //} - - wx := Weixin(this) - auth := wx.GetOauth(this.Req, this.Resp) - resToken, err := auth.GetUserAccessToken(this.Req.FormValue("code")) - if err != nil { - this.Display(5, "code错误") - return - } - - //判断用户是否已经注册 - user := this.Db.Get("wechat", Map{"[><]user": "wechat.user_id=user.id"}, "user.id,user.state", Map{"openid": resToken.OpenID}) - if user != nil && user.GetCeilInt("id") != 0 && user.GetCeilInt("state") == 0 { - this.Session("user_id", user.Get("id")) - this.Display(0, Map{"type": 0, "token": this.SessionId}) - return - } - //getUserInfo - userInfo, err := auth.GetUserInfo(resToken.AccessToken, resToken.OpenID) - if err != nil { - this.Display(6, "微信个人信息无法获取") - return - } - - //wechatInfo := ObjToMap(userInfo) - t := time.Now().Unix() - wechatInfo := Map{ - "openid": userInfo.OpenID, - "acttoken": resToken.AccessToken, - "retoken": resToken.RefreshToken, - "appid": this.Config.GetString("wechatAppID"), - "unionid": userInfo.Unionid, - "nickname": userInfo.Nickname, - "avatar": userInfo.HeadImgURL, - } - if orgId != 0 { - wechatInfo["org_id"] = orgId - wechatInfo["status"] = 0 - } - - wechatDb := this.Db.Get("wechat", "*", Map{"openid": wechatInfo.GetString("openid")}) - - if wechatDb != nil { - - this.Db.Update("wechat", wechatInfo, Map{"id": wechatDb.GetCeilInt("id")}) - //userInfo["wid"]=wechatDb.GetCeilInt("wid") - } else { - wechatInfo["create_time"] = t - wechatInfo["id"] = this.Db.Insert("wechat", wechatInfo) - } - wechatDb = this.Db.Get("wechat", "*", Map{"openid": wechatInfo.GetString("openid")}) - - this.Session("wechatInfo", wechatDb) - fmt.Println(wechatDb) - fmt.Println(this.Session("wechatInfo")) - //this.Display(0, 1) - this.Display(0, Map{"type": 1, "token": this.SessionId}) - }, - //网页签名 - "sign": func(this *Context) { - - if this.Req.FormValue("sign_url") == "" { - this.Display(2, "参数不足") - return - } - - if weixin == nil { - cache1 := cache.Cache(WechatCache{this.CacheIns}) - config := wechat.Config{Cache: cache1, AppID: this.Config.GetString("wechatAppID"), AppSecret: this.Config.GetString("wechatAppSecret")} - weixin = wechat.NewWechat(&config) - } - - js := weixin.GetJs(this.Req, this.Resp) - cfg, e := js.GetConfig(this.Req.FormValue("sign_url")) - if e != nil { - this.Display(7, e) - return - } - - sign := Map{ - "appId": cfg.AppID, - "timestamp": cfg.TimeStamp, - "nonceStr": cfg.NonceStr, - "signature": cfg.Signature, - } - - this.Display(0, sign) - - }, -} diff --git a/example/main.go b/example/main.go index 1f2a71a..7440692 100644 --- a/example/main.go +++ b/example/main.go @@ -1,14 +1,7 @@ package main import ( - "../../hotime" - "strings" - - //"../dri/aliyun" - "../dri/baidu" - "../dri/ddsms" - "./admin" - "./app" + "code.hoteas.com/golang/hotime" "fmt" "time" ) @@ -16,71 +9,7 @@ import ( func main() { date, _ := time.Parse("2006-01-02 15:04", time.Now().Format("2006-01-02")+" 14:00") fmt.Println(date, date.Unix()) - - baidu.DefaultBaiDuMap.Init("ZeT902EZvVgIoGVWEFK3osUm") //fmt.Println("0123456"[1:7]) appIns := hotime.Init("config/config.json") - notNeedLogin := []string{"token", "login", "test", "auth", "upload", "info"} //不需要登录的操作 - //RESTfull接口适配 - appIns.SetConnectListener(func(context *hotime.Context) bool { - - if len(context.RouterString) > 0 && context.RouterString[0] == "admin" { - return true - } - //判断是否需要登录,不需要登录则直接执行mtd - if len(context.RouterString) == 3 && !strings.Contains(context.RouterString[2], ".") { - if context.RouterString[0] == "app" && context.RouterString[1] == "user" { - isNeedLogin := true - for i := 0; i < len(notNeedLogin); i++ { - if notNeedLogin[i] == context.RouterString[2] { - isNeedLogin = false - break - } - } - if !isNeedLogin { - return true - } - } - //微信操作无需登录 - if context.RouterString[0] == "app" && context.RouterString[1] == "wechat" { - return true - } - //微信操作无需登录 - if context.RouterString[0] == "app" && context.RouterString[1] == "sms" { - return true - } - //微信操作无需登录 - if context.RouterString[0] == "app" && context.RouterString[1] == "tag" { - return true - } - //微信操作无需登录 - if context.RouterString[0] == "app" && context.RouterString[1] == "analyse" { - return true - } - //微信操作无需登录 - if context.RouterString[0] == "app" && context.RouterString[1] == "category" { - return true - } - //没有登录 - if context.Session("user_id").Data == nil { - context.Display(2, "没有登录") - return false - } - - } - //支撑权限设置 - return true - }) - appIns.Router["admin"]["company_inout"] = admin.CompanyInOutCtr - appIns.Router["admin"]["test"] = admin.TestCtr - - //makeCode := code.MakeCode{} - //fmt.Println(common.ObjToStr(makeCode.Db2JSON("admin","test",appIns.Db))) - if ddsms.DefaultDDY.ApiKey == "" { - ddsms.DefaultDDY.Init(appIns.Config.GetString("smsKey")) - } - - appIns.Run(hotime.Router{ - "app": app.Project, - }) + appIns.Run(hotime.Router{}) } diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..4b53409 --- /dev/null +++ b/go.mod @@ -0,0 +1,13 @@ +module code.hoteas.com/golang/hotime + +go 1.16 + +require ( + github.com/garyburd/redigo v1.6.3 + github.com/go-sql-driver/mysql v1.6.0 + github.com/mattn/go-sqlite3 v1.14.12 + github.com/sirupsen/logrus v1.8.1 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.364 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364 + golang.org/x/net v0.0.0-20220225172249-27dd8689420f +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..f521cda --- /dev/null +++ b/go.sum @@ -0,0 +1,27 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/garyburd/redigo v1.6.3 h1:HCeeRluvAgMusMomi1+6Y5dmFOdYV/JzoRrrbFlkGIc= +github.com/garyburd/redigo v1.6.3/go.mod h1:rTb6epsqigu3kYKBnaF028A7Tf/Aw5s0cqA47doKKqw= +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/mattn/go-sqlite3 v1.14.12 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ1Z0= +github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.364 h1:X1Jws4XqrTH+p7FBQ7BpjW4qFXObKHWm0/XhW/GvqRs= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.364/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364 h1:kbor60vo37v7Hu+i17gooox9Rw281fVHNna8zwtDG1w= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364/go.mod h1:LeIUBOLhc+Y5YCEpZrULPD9lgoXXV4/EmIcoEvmHz9c= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/manage/manage.go b/manage/manage.go index 38fdbe6..a003655 100644 --- a/manage/manage.go +++ b/manage/manage.go @@ -44,17 +44,17 @@ func Run() { appIns.Run(hotime.Router{ "app": hotime.Proj{ "index": hotime.Ctr{ - "test": func(this *hotime.Context) { - fmt.Println(this.Db.GetTag()) - //x := this.Db.Action(func(db hotime.HoTimeDB) bool { + "test": func(that *hotime.Context) { + fmt.Println(that.Db.GetTag()) + //x := that.Db.Action(func(db hotime.HoTimeDB) bool { // // db.Insert("user", hotime.Map{"unickname": "dasdas"}) // // return true //}) - this.Display(0, 1) + that.Display(0, 1) }, - "websocket": func(this *hotime.Context) { + "websocket": func(that *hotime.Context) { hdler := websocket.Handler(func(ws *websocket.Conn) { for true { msg := make([]byte, 5120) @@ -73,7 +73,7 @@ func Run() { fmt.Printf("Send: %s\n", msg[:m]) } }) - hdler.ServeHTTP(this.Resp, this.Req) + hdler.ServeHTTP(that.Resp, that.Req) }, }, }, diff --git a/session.go b/session.go index 33079b4..1faf14d 100644 --- a/session.go +++ b/session.go @@ -1,8 +1,8 @@ package hotime import ( - . "./cache" - . "./common" + . "code.hoteas.com/golang/hotime/cache" + . "code.hoteas.com/golang/hotime/common" ) //session对象 diff --git a/type.go b/type.go index ca64b9e..fc46ef6 100644 --- a/type.go +++ b/type.go @@ -5,4 +5,4 @@ type Ctr map[string]Method type Proj map[string]Ctr type Router map[string]Proj type MethodRouter map[string]Method //直接字符串关联函数 -type Method func(this *Context) +type Method func(that *Context) diff --git a/var.go b/var.go index 7c2b1b1..2113e62 100644 --- a/var.go +++ b/var.go @@ -1,7 +1,7 @@ package hotime import ( - . "./common" + . "code.hoteas.com/golang/hotime/common" ) var IsRun = false //当前状态