123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- package main
- import (
- "fmt"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- "jygit.jydev.jianyu360.cn/data_processing/common_utils"
- "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
- "log"
- "time"
- )
- var (
- MgoC *mongodb.MongodbSim //企业库
- MgoQ *mongodb.MongodbSim
- )
- func main() {
- //线上
- //username := "datascbi"
- //password := "Da#Bi20221111SC"
- //host := "127.0.0.1:4001"
- //database := "global_common_data"
- //本地
- username := "root"
- password := "123"
- host := "127.0.0.1:3306"
- database := "jianyu"
- // 替换为你的 MySQL 数据库连接信息
- //dsn := "user:password@tcp(localhost:3306)/database?charset=utf8mb4&parseTime=True&loc=Local"
- dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, database)
- // 连接到数据库
- db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
- if err != nil {
- fmt.Println("Failed to connect to database:", err)
- return
- }
- fmt.Println("Connected to the database!")
- MgoC = &mongodb.MongodbSim{
- MongodbAddr: "127.0.0.1:27001",
- //MongodbAddr: "172.17.4.181:27001",
- DbName: "mixdata",
- Size: 10,
- UserName: "",
- Password: "",
- Direct: true,
- }
- MgoC.InitPool()
- // 查询省市区使用,qyxy_std
- MgoQ = &mongodb.MongodbSim{
- MongodbAddr: "127.0.0.1:27083",
- //MongodbAddr: "172.17.189.140:27080",
- DbName: "mixdata",
- UserName: "SJZY_RWbid_ES",
- Password: "SJZY@B4i4D5e6S",
- Size: 10,
- Direct: true,
- }
- MgoQ.InitPool()
- // 在这里可以执行数据库操作,例如创建表、查询数据等
- // 查询所有数据
- var fortuneInfoList []IAOF_FORTUNE_INFO
- result := db.Find(&fortuneInfoList)
- if result.Error != nil {
- panic("Failed to retrieve data")
- }
- for _, info := range fortuneInfoList {
- name := info.StandardChineseName
- company := getCompany(name)
- //企业库找到该企业
- if company != nil && len(company) > 0 {
- companyID := util.ObjToString(company["company_id"])
- log.Println("name: ", name)
- //获取对外投资 一级
- level1s := getLevels(companyID, 1, info)
- if len(level1s) > 0 {
- db.Create(&level1s)
- for _, v := range level1s {
- level2s := getLevels(v.CompanyInfoID, 2, info)
- if len(level2s) > 0 {
- db.Create(&level2s)
- for _, v2 := range level2s {
- level3s := getLevels(v2.CompanyInfoID, 3, info)
- if len(level3s) > 0 {
- db.Create(&level3s)
- for _, v3 := range level3s {
- level4s := getLevels(v3.CompanyInfoID, 4, info)
- if len(level4s) > 0 {
- db.Create(&level4s)
- for _, v4 := range level4s {
- level5s := getLevels(v4.CompanyInfoID, 5, info)
- if len(level5s) > 0 {
- db.Create(&level5s)
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- log.Println("over")
- }
- func getLevels(companyID string, level int, info IAOF_FORTUNE_INFO) (inserts []IAOF_INVEST_RELATION) {
- //获取对外投资
- invests := getInvests(companyID)
- for _, v := range invests {
- std := getStd(util.ObjToString(v["company_id"]))
- industry := getIndustry(util.ObjToString(v["company_id"]))
- enterValue, _ := time.Parse("2006-01-02 15:04:05", util.ObjToString(v["create_time"]))
- updateValue, _ := time.Parse("2006-01-02 15:04:05", util.ObjToString(v["update_time"]))
- establishData, _ := time.Parse("2006-01-02", util.ObjToString(std["establish_date"]))
- var IS_VALID string
- if util.IntAll(v["use_flag"]) < 9 && util.IntAll(v["is_history"]) == 0 {
- IS_VALID = "Y"
- } else {
- IS_VALID = "N"
- }
- //这里只要投资在海南的企业
- area := util.ObjToString(std["company_area"])
- if area != "海南" {
- continue
- }
- insert := IAOF_INVEST_RELATION{
- CompanyName: util.ObjToString(v["company_name"]),
- CompanyArea: util.ObjToString(std["company_area"]),
- CompanyFortune: info.CompanyName,
- CompanyEnglishFortune: info.CompanyEn,
- CompanyFortuneCountry: info.Country,
- CompanyTypeOld: util.ObjToString(std["company_type_old"]),
- CompanyType: util.ObjToString(std["company_type"]),
- InvestmentLevel: level,
- EntryTime: enterValue,
- UpdateTime: updateValue,
- IsValid: IS_VALID,
- CreditNo: util.ObjToString(std["credit_no"]),
- CompanyCode: util.ObjToString(std["company_code"]),
- CompanyStatus: util.ObjToString(std["company_status"]),
- CompanyInfoID: util.ObjToString(v["company_id"]),
- EstablishDate: establishData,
- Capital: util.IntAll(std["capital"]),
- IndustryName: util.ObjToString(industry["industry"]),
- }
- inserts = append(inserts, insert)
- }
- return
- }
|