|
@@ -0,0 +1,111 @@
|
|
|
+package entinfo
|
|
|
+
|
|
|
+import (
|
|
|
+ "db"
|
|
|
+ "fmt"
|
|
|
+ "qfw/util"
|
|
|
+ "qfw/util/elastic"
|
|
|
+ . "util"
|
|
|
+
|
|
|
+ "github.com/go-xweb/xweb"
|
|
|
+)
|
|
|
+
|
|
|
+type entConfig struct {
|
|
|
+ Ents []string `json:"ents"`
|
|
|
+}
|
|
|
+
|
|
|
+var EntConfig *entConfig
|
|
|
+
|
|
|
+type EntInfoStruct struct {
|
|
|
+ EntName string `json:"entName"` //企业名称
|
|
|
+ EntId string `json:"entId"` //id需要加密
|
|
|
+ Company_area string `json:"company_area"` //地区
|
|
|
+ Company_city string `json:"company_city"` //城市
|
|
|
+ Establish_date string `json:"establish_date"` //注册时间
|
|
|
+ Capital float64 `json:"capital"` //注册金额
|
|
|
+ Company_phone string `json:"company_phone"` //公司联系方式
|
|
|
+ Employee_no string `json:"employee_no"` //员工人数
|
|
|
+}
|
|
|
+
|
|
|
+func init() {
|
|
|
+ xweb.AddAction(&EntInfo{})
|
|
|
+ util.ReadConfig("./ent.json", &EntConfig)
|
|
|
+}
|
|
|
+
|
|
|
+var entData = []EntInfoStruct{}
|
|
|
+
|
|
|
+type EntInfo struct {
|
|
|
+ *xweb.Action
|
|
|
+ entInfos xweb.Mapper `xweb:"/entinfo/bynames"` //根据entname 查询企业信息
|
|
|
+}
|
|
|
+
|
|
|
+//
|
|
|
+func (this *EntInfo) EntInfos() error {
|
|
|
+ defer util.Catch()
|
|
|
+ if len(entData) == 0 {
|
|
|
+ entInfoInit()
|
|
|
+ }
|
|
|
+ this.ServeJson(entData)
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+//查询中标企业名称【带曾用名检索】
|
|
|
+const queryFullEntName = `{"query":{"function_score":{"query":{"multi_match":{"query":"%s","type":"phrase","fields":["name","history_name"]}},"field_value_factor":{"field":"company_type_int","modifier":"reciprocal","factor":2}}},"_source":["name","history_name","company_type_int","_id","company_area","company_city","establish_date","capital","company_phone", "employee_no"],"size":%d}`
|
|
|
+
|
|
|
+//数据填充
|
|
|
+func entInfoInit() []EntInfoStruct {
|
|
|
+ if len(EntConfig.Ents) > 0 {
|
|
|
+ var lastEnts = EntConfig.Ents
|
|
|
+ entInfo := EntInfoStruct{}
|
|
|
+ query := map[string]interface{}{
|
|
|
+ "company_name": map[string]interface{}{
|
|
|
+ "$in": lastEnts,
|
|
|
+ },
|
|
|
+ }
|
|
|
+ sess := db.Mgo_Ent.GetMgoConn()
|
|
|
+ defer db.Mgo_Ent.DestoryMongoConn(sess)
|
|
|
+ it := sess.DB(db.Mgo_Ent.DbName).C("qyxy_std").Find(query).Select(map[string]interface{}{"company_name": 1, "_id": 1, "company_area": 1, "company_city": 1, "establish_date": 1, "capital": 1, "employee_no": 1, "company_phone": 1}).Iter()
|
|
|
+ for m := make(map[string]interface{}); it.Next(&m); {
|
|
|
+ if m["company_name"] != nil && m["company_name"].(string) != "" {
|
|
|
+ entInfo.EntId = EncodeId(m["_id"].(string))
|
|
|
+ entInfo.EntName = util.ObjToString(m["company_name"])
|
|
|
+ entInfo.Company_area = util.ObjToString(m["company_area"])
|
|
|
+ entInfo.Company_city = util.ObjToString(m["company_city"])
|
|
|
+ entInfo.Establish_date = util.ObjToString(m["establish_date"])
|
|
|
+ entInfo.Company_phone = util.ObjToString(m["company_phone"])
|
|
|
+ entInfo.Employee_no = util.ObjToString(m["employee_no"])
|
|
|
+ entInfo.Capital = util.Float64All(m["capital"])
|
|
|
+ entData = append(entData, entInfo)
|
|
|
+ for ek, ev := range lastEnts {
|
|
|
+ if ev == entInfo.EntName {
|
|
|
+ lastEnts = append(lastEnts[:ek], lastEnts[ek+1:]...)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(lastEnts) > 0 {
|
|
|
+ for _, ev := range lastEnts {
|
|
|
+ if ev != "" {
|
|
|
+ list := elastic.Get("qyxy", "qyxy", fmt.Sprintf(queryFullEntName, ev, 1))
|
|
|
+ m := make(map[string]interface{})
|
|
|
+ if list != nil && len(*list) > 0 {
|
|
|
+ m = (*list)[0]
|
|
|
+ }
|
|
|
+ if util.ObjToString(m["_id"]) == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ entInfo.EntId = EncodeId(util.ObjToString(m["_id"]))
|
|
|
+ entInfo.EntName = util.ObjToString(m["name"])
|
|
|
+ entInfo.Company_area = util.ObjToString(m["company_area"])
|
|
|
+ entInfo.Company_city = util.ObjToString(m["company_city"])
|
|
|
+ entInfo.Establish_date = util.ObjToString(m["establish_date"])
|
|
|
+ entInfo.Company_phone = util.ObjToString(m["company_phone"])
|
|
|
+ entInfo.Employee_no = util.ObjToString(m["employee_no"])
|
|
|
+ entInfo.Capital = util.Float64All(m["capital"])
|
|
|
+ entData = append(entData, entInfo)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return entData
|
|
|
+}
|