main.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/spf13/cobra"
  5. "github.com/tealeg/xlsx"
  6. "go.uber.org/zap"
  7. util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  8. "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  9. "net/http"
  10. "tieta_data/config"
  11. )
  12. func init() {
  13. config.Init("./common.toml")
  14. InitLog()
  15. }
  16. func main() {
  17. rootCmd := &cobra.Command{Use: "my cmd"}
  18. rootCmd.AddCommand(exportB())
  19. rootCmd.AddCommand(exportP())
  20. rootCmd.AddCommand(project())
  21. if err := rootCmd.Execute(); err != nil {
  22. fmt.Println("rootCmd.Execute failed", err.Error())
  23. }
  24. rootCmd.InitDefaultCompletionCmd()
  25. }
  26. func exportB() *cobra.Command {
  27. cmdClient := &cobra.Command{
  28. Use: "export-bidding",
  29. Short: "Start export task",
  30. Run: func(cmd *cobra.Command, args []string) {
  31. //InitMgo()
  32. sess := MongoTool.GetMgoConn()
  33. defer MongoTool.DestoryMongoConn(sess)
  34. file := xlsx.NewFile()
  35. sheet, err := file.AddSheet("sheet1")
  36. if err != nil {
  37. panic(err)
  38. }
  39. row := sheet.AddRow()
  40. for _, v := range FieldArr1 {
  41. row.AddCell().SetValue(v)
  42. }
  43. query := sess.DB(config.Conf.DB.Mongo.Dbname).C(config.Conf.DB.Mongo.Coll).Find(nil).Select(nil).Iter()
  44. count := 0
  45. for tmp := make(map[string]interface{}); query.Next(&tmp); count++ {
  46. if count%1000 == 0 {
  47. util.Debug("current ---", count)
  48. }
  49. func(tmp map[string]interface{}) {
  50. row := sheet.AddRow()
  51. taskExcelB(tmp, row)
  52. }(tmp)
  53. }
  54. util.Debug("over ---", count)
  55. fname := fmt.Sprintf("./数据导出-标文%s.xlsx", util.NowFormat(util.DATEFORMAT))
  56. err = file.Save(fname)
  57. if err != nil {
  58. panic(err)
  59. }
  60. },
  61. }
  62. return cmdClient
  63. }
  64. func exportP() *cobra.Command {
  65. cmdClient := &cobra.Command{
  66. Use: "export-project",
  67. Short: "Start export task",
  68. Run: func(cmd *cobra.Command, args []string) {
  69. //InitMgo()
  70. sess := MongoTool.GetMgoConn()
  71. defer MongoTool.DestoryMongoConn(sess)
  72. file := xlsx.NewFile()
  73. sheet, err := file.AddSheet("sheet1")
  74. if err != nil {
  75. panic(err)
  76. }
  77. row := sheet.AddRow()
  78. for _, v := range FieldArr {
  79. row.AddCell().SetValue(v)
  80. }
  81. query := sess.DB(config.Conf.DB.Mongo.Dbname).C(config.Conf.DB.Mongo.Pcoll).Find(nil).Select(nil).Iter()
  82. count := 0
  83. for tmp := make(map[string]interface{}); query.Next(&tmp); count++ {
  84. if count%1000 == 0 {
  85. util.Debug("current ---", count)
  86. }
  87. func(tmp map[string]interface{}) {
  88. row := sheet.AddRow()
  89. taskExcelP(tmp, row)
  90. }(tmp)
  91. }
  92. util.Debug("over ---", count)
  93. fname := fmt.Sprintf("./数据导出-捏合%s.xlsx", util.NowFormat(util.DATEFORMAT))
  94. err = file.Save(fname)
  95. if err != nil {
  96. panic(err)
  97. }
  98. },
  99. }
  100. return cmdClient
  101. }
  102. func project() *cobra.Command {
  103. cmdClient := &cobra.Command{
  104. Use: "project",
  105. Short: "Start project task",
  106. Run: func(cmd *cobra.Command, args []string) {
  107. InitMysql()
  108. InitEs()
  109. go ApiMethod()
  110. loadData()
  111. taskProject()
  112. //crn := cron.New()
  113. //crn.AddFunc("30 * * * *", func() {
  114. // taskProject()
  115. //})
  116. //crn.Start()
  117. ch := make(chan bool, 1)
  118. <-ch
  119. },
  120. }
  121. return cmdClient
  122. }
  123. func ApiMethod() {
  124. http.HandleFunc("/mergeProject", MergeProject)
  125. http.HandleFunc("/updateProject", UpdateInfo)
  126. http.HandleFunc("/startProject", StartMerge)
  127. err := http.ListenAndServe(config.Conf.Serve.LocPort, nil)
  128. if err != nil {
  129. log.Fatal("ListenAndServe: ", zap.Error(err))
  130. }
  131. }