2022-10-30 15:44:05 +00:00
|
|
|
|
package admin
|
|
|
|
|
|
|
|
|
|
import (
|
2022-10-30 17:18:19 +00:00
|
|
|
|
. "code.hoteas.com/golang/hotime"
|
|
|
|
|
. "code.hoteas.com/golang/hotime/common"
|
|
|
|
|
"code.hoteas.com/golang/hotime/dri/baidu"
|
2022-10-30 15:44:05 +00:00
|
|
|
|
"fmt"
|
|
|
|
|
"github.com/robertkrimen/otto"
|
2022-10-30 17:18:19 +00:00
|
|
|
|
"github.com/xuri/excelize/v2"
|
2022-10-30 15:44:05 +00:00
|
|
|
|
"io/ioutil"
|
2022-10-30 19:27:23 +00:00
|
|
|
|
"math"
|
2022-10-30 15:44:05 +00:00
|
|
|
|
"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
|
|
|
|
|
})
|
2022-10-30 19:27:23 +00:00
|
|
|
|
vm.Set("trunc", func(call otto.FunctionCall) otto.Value {
|
|
|
|
|
num := ObjToFloat64(call.Argument(0).String())
|
|
|
|
|
num = math.Ceil(num)
|
|
|
|
|
val, _ := vm.ToValue(num)
|
|
|
|
|
return val
|
|
|
|
|
})
|
2022-10-30 15:44:05 +00:00
|
|
|
|
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")
|
2022-10-30 19:27:23 +00:00
|
|
|
|
uploadDataTemp := Map{}
|
2022-10-30 15:44:05 +00:00
|
|
|
|
for k, _ := range uploadData {
|
|
|
|
|
strV := uploadData.GetString(k)
|
|
|
|
|
strV = strings.Replace(strV, " ", "", -1)
|
|
|
|
|
strV = strings.Replace(strV, "符合", "", -1)
|
|
|
|
|
strV = strings.Replace(strV, "条", "", -1)
|
2022-10-30 19:27:23 +00:00
|
|
|
|
//strV = strings.Replace(strV, "是;", "", -1)
|
|
|
|
|
strV = strings.Replace(strV, ";0", "", -1)
|
2022-10-30 15:44:05 +00:00
|
|
|
|
v := float64(0)
|
2022-10-30 19:27:23 +00:00
|
|
|
|
|
|
|
|
|
if strings.Contains(strV, "是;") && strV != "是;" {
|
|
|
|
|
i := strings.LastIndex(strV, ";")
|
|
|
|
|
if i != -1 && i < len(strV)-1 {
|
|
|
|
|
t := strV[i+1:]
|
|
|
|
|
if t != "" {
|
|
|
|
|
strV = t
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
flV := ObjToFloat64(strV)
|
|
|
|
|
if flV != 0 {
|
|
|
|
|
v = flV
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-30 15:44:05 +00:00
|
|
|
|
if strV == "无" {
|
|
|
|
|
strV = "否"
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-30 19:27:23 +00:00
|
|
|
|
if strings.Contains(strV, "否;") {
|
|
|
|
|
strV = "否"
|
|
|
|
|
}
|
2022-10-30 15:44:05 +00:00
|
|
|
|
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
|
|
|
|
|
}
|
2022-10-30 19:27:23 +00:00
|
|
|
|
if strV == "国家级专精特新小巨人" {
|
|
|
|
|
v = 5
|
|
|
|
|
}
|
|
|
|
|
if strV == "省级专精特新" {
|
|
|
|
|
v = 4
|
|
|
|
|
}
|
2022-10-30 15:44:05 +00:00
|
|
|
|
|
|
|
|
|
if v == 0 && strV != "否" && strV != "0" {
|
|
|
|
|
v = 1
|
|
|
|
|
}
|
|
|
|
|
vm.Run("key['" + k + "']=" + ObjToStr(v) + "")
|
|
|
|
|
//vm.Set(k, v)
|
2022-10-30 19:27:23 +00:00
|
|
|
|
//fmt.Println(k,v)
|
|
|
|
|
uploadDataTemp[k] = v
|
2022-10-30 15:44:05 +00:00
|
|
|
|
}
|
2022-10-30 19:27:23 +00:00
|
|
|
|
fmt.Println(uploadDataTemp)
|
2022-10-30 15:44:05 +00:00
|
|
|
|
//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 cmdStr == "res=(key['连续盈利']==0?0:(key['连续盈利']==1?5:10))" {
|
|
|
|
|
v, _ := vm.Get("key")
|
|
|
|
|
ks := v.Object().Keys()
|
|
|
|
|
for i, k := range ks {
|
|
|
|
|
v1, e1 := v.Object().Get(k)
|
|
|
|
|
fmt.Println(k, v1, e1, i)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fmt.Println("dassdas")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if result.String() == ObjToStr(ObjToFloat64(result.String())) {
|
|
|
|
|
analyseData[tag.GetString("name")] = ObjToFloat64(result.String())
|
|
|
|
|
//if "成都卡诺普机器人技术股份有限公司"==company.GetString("name"){
|
|
|
|
|
// fmt.Println("dasdas")
|
|
|
|
|
//}
|
|
|
|
|
} else if result.String() == "NaN" {
|
|
|
|
|
|
|
|
|
|
v, _ := vm.Get("key")
|
|
|
|
|
ks := v.Object().Keys()
|
|
|
|
|
for i, k := range ks {
|
|
|
|
|
v1, e1 := v.Object().Get(k)
|
|
|
|
|
fmt.Println(k, v1, e1, i)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
analyseData[tag.GetString("name")] = 0
|
|
|
|
|
} else if result.String() == "Infinity" {
|
|
|
|
|
fmt.Println(cmdStr)
|
|
|
|
|
//v,_:=vm.Get("key")
|
|
|
|
|
//ks:=v.Object().Keys()
|
|
|
|
|
//for i,k:=range ks{
|
|
|
|
|
// v1,e1:=v.Object().Get(k)
|
|
|
|
|
// fmt.Println(k,v1,e1,i)
|
|
|
|
|
//}
|
|
|
|
|
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 k == "高新技术企业" {
|
|
|
|
|
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 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 k == "高新技术企业" {
|
|
|
|
|
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 {
|
|
|
|
|
if tag.GetString("name") == "发展潜力得分" {
|
|
|
|
|
fmt.Println("dasdas")
|
|
|
|
|
}
|
|
|
|
|
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
|
|
|
|
|
//}
|
|
|
|
|
|
2022-10-30 17:18:19 +00:00
|
|
|
|
data1, _ := baidu.BaiDuMap.GetPosition("简阳市东溪镇奎星路28号", "")
|
2022-10-30 15:44:05 +00:00
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|