main.go 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/robfig/cron/v3"
  5. "github.com/spf13/viper"
  6. "go.uber.org/zap"
  7. "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  8. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  9. "time"
  10. )
  11. var (
  12. GF GlobalConf
  13. MgoPA *mongodb.MongodbSim //凭安推送数据库
  14. MgoB *mongodb.MongodbSim //bidding 标讯数据库
  15. )
  16. // EntMapCode 映射关系表
  17. type EntMapCode struct {
  18. AId string `json:"a_id"`
  19. BId string `json:"b_id"`
  20. AName string `json:"a_name"`
  21. BName string `json:"b_name"`
  22. Code string `json:"code"` //关系属性代码
  23. InvestRatio string `json:"invest_ratio"` //投资比例
  24. InvestPrice string `json:"invest_price"` //投资金额
  25. CreateTime int64 `json:"create_time"`
  26. UpdateTime int64 `json:"update_time"`
  27. }
  28. func (EntMapCode) TableName() string {
  29. return "ent_map_code"
  30. }
  31. func InitConfig() (err error) {
  32. viper.SetConfigFile("config.toml") // 指定配置文件路径
  33. viper.SetConfigName("config") // 配置文件名称(无扩展名)
  34. viper.SetConfigType("toml") // 如果配置文件的名称中没有扩展名,则需要配置此项
  35. viper.AddConfigPath("./")
  36. viper.AddConfigPath("./conf/") // 还可以在工作目录中查找配置
  37. viper.AddConfigPath("../conf/") // 还可以在工作目录中查找配置
  38. err = viper.ReadInConfig() // 查找并读取配置文件
  39. if err != nil { // 处理读取配置文件的错误
  40. return
  41. }
  42. err = viper.Unmarshal(&GF)
  43. return err
  44. }
  45. func InitLog() {
  46. err := log.InitLog(
  47. log.Path("./logs/log.out"),
  48. //log.Path(""),
  49. log.Level("info"),
  50. log.Compress(true),
  51. log.MaxSize(10),
  52. log.MaxBackups(10),
  53. log.MaxAge(7),
  54. log.Format("json"),
  55. )
  56. if err != nil {
  57. fmt.Printf("InitLog failed: %v\n", err)
  58. }
  59. }
  60. func InitMgo() {
  61. MgoB = &mongodb.MongodbSim{
  62. MongodbAddr: GF.MongoB.Host,
  63. DbName: GF.MongoB.DB,
  64. Size: GF.MongoB.Size,
  65. UserName: GF.MongoB.Username,
  66. Password: GF.MongoB.Password,
  67. Direct: GF.MongoB.Direct,
  68. }
  69. MgoB.InitPool()
  70. MgoPA = &mongodb.MongodbSim{
  71. MongodbAddr: GF.MongoPA.Host,
  72. DbName: GF.MongoPA.DB,
  73. Size: GF.MongoPA.Size,
  74. UserName: GF.MongoPA.Username,
  75. Password: GF.MongoPA.Password,
  76. Direct: GF.MongoPA.Direct,
  77. }
  78. MgoPA.InitPool()
  79. }
  80. func main() {
  81. InitConfig()
  82. InitLog()
  83. InitMgo()
  84. //biddingAllData()//交易关系存量数据
  85. //organizeData() //管辖关系
  86. //updateInfoId()
  87. //areaData()
  88. //return
  89. local, _ := time.LoadLocation("Asia/Shanghai")
  90. c := cron.New(cron.WithLocation(local), cron.WithSeconds())
  91. //1.处理投资关系,增量数据,凭安每周推送数据;每周三定时执行
  92. if GF.Env.Spec1 != "" {
  93. _, err := c.AddFunc(GF.Env.Spec1, increInvest)
  94. if err != nil {
  95. log.Info("main", zap.Error(err))
  96. }
  97. }
  98. //2. 处理bidding标讯 交易关系数据
  99. if GF.Env.Spec2 != "" {
  100. _, err := c.AddFunc(GF.Env.Spec2, increBidding)
  101. if err != nil {
  102. log.Info("main", zap.Error(err))
  103. }
  104. }
  105. //3. 更新法人库表ID,更新映射表对应的法人库ID
  106. if GF.Env.Spec3 != "" {
  107. _, err := c.AddFunc(GF.Env.Spec3, updateInfoId)
  108. if err != nil {
  109. log.Info("main", zap.Error(err))
  110. }
  111. }
  112. c.Start()
  113. defer c.Stop()
  114. select {}
  115. }
  116. type EntInfo struct {
  117. ID string `gorm:"primaryKey"`
  118. CompanyID *string `gorm:"column:company_id"`
  119. CompanyName *string `gorm:"column:company_name"`
  120. CompanyLabel uint64 `gorm:"column:company_label"` // Needs clarification on GORM handling of AggregateFunction
  121. CompanyCode *string `gorm:"column:company_code"`
  122. CreditNo *string `gorm:"column:credit_no"`
  123. OrgCode *string `gorm:"column:org_code"`
  124. TaxCode *string `gorm:"column:tax_code"`
  125. EstablishDate *int64 `gorm:"column:establish_date"`
  126. LegalPerson *string `gorm:"column:legal_person"`
  127. LegalPersonCaption *string `gorm:"column:legal_person_caption"`
  128. CompanyStatus *string `gorm:"column:company_status"`
  129. CompanyType *string `gorm:"column:company_type"`
  130. Authority *string `gorm:"column:authority"`
  131. IssueDate *int64 `gorm:"column:issue_date"`
  132. OperationStartDate *string `gorm:"column:operation_startdate"`
  133. OperationEndDate *string `gorm:"column:operation_enddate"`
  134. Capital *string `gorm:"column:capital"`
  135. CompanyAddress *string `gorm:"column:company_address"`
  136. BusinessScope *string `gorm:"column:business_scope"`
  137. CancelDate *int64 `gorm:"column:cancel_date"`
  138. CancelReason *string `gorm:"column:cancel_reason"`
  139. RevokeDate *int64 `gorm:"column:revoke_date"`
  140. RevokeReason *string `gorm:"column:revoke_reason"`
  141. Comeintime *int64 `gorm:"column:comeintime"`
  142. Updatetime *int64 `gorm:"column:updatetime"`
  143. LegalPersonType *int8 `gorm:"column:legal_person_type"`
  144. RealCapital *string `gorm:"column:real_capital"`
  145. EnName *string `gorm:"column:en_name"`
  146. CompanyArea *string `gorm:"column:company_area"`
  147. ListCode *string `gorm:"column:list_code"`
  148. EmployeeNo *int32 `gorm:"column:employee_no"`
  149. Website *string `gorm:"column:website"`
  150. BusinessType *int8 `gorm:"column:business_type"`
  151. Sourcetype *int8 `gorm:"column:sourcetype"`
  152. CompanyPhone *string `gorm:"column:company_phone"`
  153. CompanyEmail *string `gorm:"column:company_email"`
  154. CompanyUnitType *int8 `gorm:"column:company_unit_type"`
  155. LongitudeLatitude *string `gorm:"column:longitude_latitude"`
  156. AdminLevel *string `gorm:"column:admin_level"`
  157. }
  158. func (EntInfo) TableName() string {
  159. return "ent_info"
  160. }