Commit d85da14b by Joneq

提交代码

parent bbc578db
...@@ -11,6 +11,7 @@ require ( ...@@ -11,6 +11,7 @@ require (
github.com/ichunt2019/go-msgserver v1.0.5 github.com/ichunt2019/go-msgserver v1.0.5
github.com/pkg/errors v0.8.1 github.com/pkg/errors v0.8.1
github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271 github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271
github.com/tidwall/gjson v1.14.1
google.golang.org/genproto v0.0.0-20200402124713-8ff61da6d932 google.golang.org/genproto v0.0.0-20200402124713-8ff61da6d932
google.golang.org/grpc v1.28.1 google.golang.org/grpc v1.28.1
) )
package logic package logic
import ( import (
"bytes"
"encoding/gob"
"encoding/json" "encoding/json"
"io/ioutil" "io/ioutil"
"log" "log"
...@@ -8,16 +10,18 @@ import ( ...@@ -8,16 +10,18 @@ import (
"strconv" "strconv"
"strings" "strings"
"time" "time"
"github.com/tidwall/gjson"
) )
type TianYanChaCompanyInfo struct { type TianYanChaCompanyInfo struct {
EstiblishTime float64 `json:"estiblishTime"` EstiblishTime float64 `json:"estiblishTime"`
CompanyOrgType string `json:"companyOrgType"` CompanyOrgType string `json:"companyOrgType"`
SocialStaffNum float64 `json:"socialStaffNum"` SocialStaffNum float64 `json:"socialStaffNum"`
RegCapital string `json:"regCapital"` RegCapital string `json:"regCapital"`
LegalPersonName string `json:"legalPersonName"` LegalPersonName string `json:"legalPersonName"`
RegLocation string `json:"regLocation"` RegLocation string `json:"regLocation"`
OrgNumber string `json:"orgNumber"` OrgNumber string `json:"orgNumber"`
} }
type ResultStruct struct { type ResultStruct struct {
...@@ -29,7 +33,7 @@ type TotalResultStruct struct { ...@@ -29,7 +33,7 @@ type TotalResultStruct struct {
} }
type TotalNumResultStruct struct { type TotalNumResultStruct struct {
Total int64 `json:"total"` Total int64 `json:"total"`
Items []map[string]string `json:"items"` Items []map[string]string `json:"items"`
} }
...@@ -38,24 +42,28 @@ type ChangeInfo struct { ...@@ -38,24 +42,28 @@ type ChangeInfo struct {
ChangeItem int64 `json:"changeItem"` ChangeItem int64 `json:"changeItem"`
} }
const TIANYANCHATOKEN = "4920e638-52c6-43c5-bdec-78affa06bdbe" const TIANYANCHATOKEN = "4920e638-52c6-43c5-bdec-78affa06bdbe"
//公司信息 //公司信息
const COMPANYINFOURL = "http://open.api.tianyancha.com/services/open/ic/baseinfoV2/2.0" const COMPANYINFOURL = "http://open.api.tianyancha.com/services/open/ic/baseinfoV2/2.0"
//法律诉讼 //法律诉讼
const LAWSUIT = "http://open.api.tianyancha.com/services/open/jr/lawSuit/2.0" const LAWSUIT = "http://open.api.tianyancha.com/services/open/jr/lawSuit/2.0"
//法人变更次数 //法人变更次数
const CHANGEINFO = "http://open.api.tianyancha.com/services/open/ic/changeinfo/2.0" const CHANGEINFO = "http://open.api.tianyancha.com/services/open/ic/changeinfo/2.0"
//一体化请求 http://192.168.1.252:8200/companyInfo
const YITIHUAREQUEST = "http://inner_api.ichunt.net/companyInfo"
func HttpGet(companyName string)(returnDatas map[string]string) { func HttpGet(companyName string) (returnDatas map[string]string) {
var totalNum TotalResultStruct var totalNum TotalResultStruct
var companyTycInfo ResultStruct var companyTycInfo ResultStruct
respBody := BasicHttpGet(COMPANYINFOURL,companyName) respBody := postRequest(companyName, "base_info")
json.Unmarshal(respBody,&companyTycInfo)
json.Unmarshal(respBody, &companyTycInfo)
returnData := make(map[string]string) returnData := make(map[string]string)
...@@ -75,7 +83,7 @@ func HttpGet(companyName string)(returnDatas map[string]string) { ...@@ -75,7 +83,7 @@ func HttpGet(companyName string)(returnDatas map[string]string) {
} }
//成立时间 //成立时间
returnData["establishment_time"] = strconv.FormatFloat((companyTycInfo.Result.EstiblishTime/1000), 'f', -1, 64) returnData["establishment_time"] = strconv.FormatFloat((companyTycInfo.Result.EstiblishTime / 1000), 'f', -1, 64)
returnData["legal_representative"] = companyTycInfo.Result.LegalPersonName returnData["legal_representative"] = companyTycInfo.Result.LegalPersonName
returnData["com_address"] = companyTycInfo.Result.RegLocation returnData["com_address"] = companyTycInfo.Result.RegLocation
returnData["com_organization"] = companyTycInfo.Result.OrgNumber returnData["com_organization"] = companyTycInfo.Result.OrgNumber
...@@ -93,77 +101,114 @@ func HttpGet(companyName string)(returnDatas map[string]string) { ...@@ -93,77 +101,114 @@ func HttpGet(companyName string)(returnDatas map[string]string) {
//} //}
returnData["customer_property"] = "其它" returnData["customer_property"] = "其它"
//参保人数 //参保人数
returnData["social_security_participants"] = strconv.FormatFloat(companyTycInfo.Result.SocialStaffNum,'f', -1, 64) returnData["social_security_participants"] = strconv.FormatFloat(companyTycInfo.Result.SocialStaffNum, 'f', -1, 64)
//注册资本 //注册资本
var capitalNum float64 var capitalNum float64
if strings.Contains(companyTycInfo.Result.RegCapital,"万") { if strings.Contains(companyTycInfo.Result.RegCapital, "万") {
capitalNum = StringTurnFloat64(companyTycInfo.Result.RegCapital[:StringIndex(companyTycInfo.Result.RegCapital,"万")]) * 10000 capitalNum = StringTurnFloat64(companyTycInfo.Result.RegCapital[:StringIndex(companyTycInfo.Result.RegCapital, "万")]) * 10000
}else if strings.Contains(companyTycInfo.Result.RegCapital,"亿"){ } else if strings.Contains(companyTycInfo.Result.RegCapital, "亿") {
capitalNum = StringTurnFloat64(companyTycInfo.Result.RegCapital[:StringIndex(companyTycInfo.Result.RegCapital,"亿")]) * 100000000 capitalNum = StringTurnFloat64(companyTycInfo.Result.RegCapital[:StringIndex(companyTycInfo.Result.RegCapital, "亿")]) * 100000000
}else{ } else {
capitalNum = StringTurnFloat64(companyTycInfo.Result.RegCapital) capitalNum = StringTurnFloat64(companyTycInfo.Result.RegCapital)
} }
if capitalNum > 9999999999{ if capitalNum > 9999999999 {
capitalNum = 9999999999 capitalNum = 9999999999
} }
returnData["registered_capital"] = strconv.FormatFloat(capitalNum, 'f', -1, 64) returnData["registered_capital"] = strconv.FormatFloat(capitalNum, 'f', -1, 64)
//------------------------------------两年内是否有法律诉讼---------------------------------------// //------------------------------------两年内是否有法律诉讼---------------------------------------//
respBody = BasicHttpGet(LAWSUIT,companyName) respBody = postRequest(companyName, "law_suit")
json.Unmarshal(respBody,&totalNum) json.Unmarshal(respBody, &totalNum)
//防止sql执行字符串超长 //防止sql执行字符串超长
if len(string(respBody)) < 120000 { if len(string(respBody)) < 120000 {
returnData["tianyancha_json"] += "||||"+string(respBody) returnData["tianyancha_json"] += "||||" + string(respBody)
} }
if totalNum.Result.Total > 0 { if totalNum.Result.Total > 0 {
returnData["two_years_no_lawsuit"] = "有" returnData["two_years_no_lawsuit"] = "有"
}else{ } else {
returnData["two_years_no_lawsuit"] = "无" returnData["two_years_no_lawsuit"] = "无"
} }
//------------------------------------两年内是否有法律诉讼---------------------------------------// //------------------------------------两年内是否有法律诉讼---------------------------------------//
//------------------------------------五年内法人变更---------------------------------------// //------------------------------------五年内法人变更---------------------------------------//
respBody = BasicHttpGet(CHANGEINFO,companyName) respBody = postRequest(companyName, "change_info")
json.Unmarshal(respBody,&totalNum) json.Unmarshal(respBody, &totalNum)
//防止sql执行字符串超长 //防止sql执行字符串超长
if len(string(respBody)) < 120000{ if len(string(respBody)) < 120000 {
returnData["tianyancha_json"] += "||||"+string(respBody) returnData["tianyancha_json"] += "||||" + string(respBody)
} }
if len(returnData["tianyancha_json"]) > 40000{ if len(returnData["tianyancha_json"]) > 40000 {
returnData["tianyancha_json"] = "字符串过长" returnData["tianyancha_json"] = "字符串过长"
} }
var changeInfoNum int64
var changeInfoNum int64
changeInfoNum = 0 changeInfoNum = 0
for _,v := range totalNum.Result.Items{ for _, v := range totalNum.Result.Items {
if strings.Contains(v["changeItem"],"法定负责人") && (DateTurnInt64(v["changeTime"]) + (365 * 86400 * 5)) < time.Now().Unix() { if strings.Contains(v["changeItem"], "法定负责人") && (DateTurnInt64(v["changeTime"])+(365*86400*5)) < time.Now().Unix() {
changeInfoNum ++ changeInfoNum++
} }
} }
returnData["five_legal_change"] = strconv.FormatInt(changeInfoNum,10) returnData["five_legal_change"] = strconv.FormatInt(changeInfoNum, 10)
//------------------------------------五年内法人变更---------------------------------------// //------------------------------------五年内法人变更---------------------------------------//
return returnData return returnData
} }
func NetBasicHttpGet(url,name string)(respBody []byte) { func postRequest(name, method string) (respBody []byte) {
//Encode the data
postBody, _ := json.Marshal(map[string]string{
"keyword": name,
"region": "1",
"select_type": "1",
"method": method,
})
responseBody := bytes.NewBuffer(postBody)
//Leverage Go's HTTP Post function to make request
resp, err := http.Post(YITIHUAREQUEST, "application/json", responseBody)
//Handle Error
if err != nil {
log.Fatalf("An Error Occured %v", err)
}
defer resp.Body.Close()
//Read the response body
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalln(err)
}
jsonx := string(body)
a := gjson.Get(jsonx, "data").String()
return []byte(a)
}
func GetBytes(key interface{}) ([]byte, error) {
var buf bytes.Buffer
enc := gob.NewEncoder(&buf)
err := enc.Encode(key)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
func NetBasicHttpGet(url, name string) (respBody []byte) {
req, err := http.NewRequest("GET", url, nil) req, err := http.NewRequest("GET", url, nil)
q := req.URL.Query() q := req.URL.Query()
q.Add("pageNum","1") q.Add("pageNum", "1")
q.Add("name",name) q.Add("name", name)
req.URL.RawQuery = q.Encode() req.URL.RawQuery = q.Encode()
req.Header.Set("Authorization",TIANYANCHATOKEN) req.Header.Set("Authorization", TIANYANCHATOKEN)
var resp *http.Response var resp *http.Response
resp, err = http.DefaultClient.Do(req) resp, err = http.DefaultClient.Do(req)
...@@ -175,15 +220,15 @@ func NetBasicHttpGet(url,name string)(respBody []byte) { ...@@ -175,15 +220,15 @@ func NetBasicHttpGet(url,name string)(respBody []byte) {
} }
//内网访问 //内网访问
func BasicHttpGet(url,name string)(respBody []byte) { func BasicHttpGet(url, name string) (respBody []byte) {
req, err := http.NewRequest("GET", "https://bigdata.ichunt.com/tyc_trun.php", nil) req, err := http.NewRequest("GET", "https://bigdata.ichunt.com/tyc_trun.php", nil)
q := req.URL.Query() q := req.URL.Query()
q.Add("pageNum","1") q.Add("pageNum", "1")
q.Add("name",name) q.Add("name", name)
q.Add("url",url) q.Add("url", url)
q.Add("token",TIANYANCHATOKEN) q.Add("token", TIANYANCHATOKEN)
req.URL.RawQuery = q.Encode() req.URL.RawQuery = q.Encode()
var resp *http.Response var resp *http.Response
resp, err = http.DefaultClient.Do(req) resp, err = http.DefaultClient.Do(req)
...@@ -192,4 +237,4 @@ func BasicHttpGet(url,name string)(respBody []byte) { ...@@ -192,4 +237,4 @@ func BasicHttpGet(url,name string)(respBody []byte) {
log.Print(err) log.Print(err)
} }
return body return body
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment