main.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package main
  2. import (
  3. "github.com/tealeg/xlsx"
  4. "log"
  5. qu "qfw/util"
  6. "strings"
  7. "time"
  8. )
  9. var (
  10. sysconfig map[string]interface{} //配置文件
  11. save_mgo *MongodbSim //mongodb操作对象
  12. save_coll,export_coll string
  13. start_time,end_time int64
  14. words_arr []map[string]interface{}
  15. timeLayout = "2006-01"
  16. timeLayout_1 = "2006-01-02"
  17. city_map map[string]map[string]string
  18. area_map map[string]map[string]string
  19. )
  20. func initMgo() {
  21. saveconf := sysconfig["save_mgodb"].(map[string]interface{})
  22. save_coll = qu.ObjToString(saveconf["coll"])
  23. save_mgo = &MongodbSim{
  24. MongodbAddr: saveconf["addr"].(string),
  25. DbName: saveconf["db"].(string),
  26. Size: qu.IntAllDef(saveconf["pool"], 5),
  27. }
  28. save_mgo.InitPool()
  29. export_coll = qu.ObjToString(sysconfig["export_coll"])
  30. start_time = time.Date(time.Now().Year(), 3, 1, 0, 0, 0, 0, time.Local).Unix()
  31. end_time = time.Date(time.Now().Year()+1, 1, 1, 0, 0, 0, 0, time.Local).Unix()
  32. words_arr = qu.ObjArrToMapArr(sysconfig["words_arr"].([]interface{}))
  33. log.Println(sysconfig)
  34. }
  35. func initRJQY() {
  36. city_map = map[string]map[string]string{}
  37. area_map = map[string]map[string]string{}
  38. ff,_ := xlsx.OpenFile("rjqy.xlsx")
  39. for _, sheet := range ff.Sheets {
  40. for _, row := range sheet.Rows {
  41. var strArr []string
  42. for _, cell := range row.Cells {
  43. strArr = append(strArr, cell.String())
  44. }
  45. //匹配特殊市
  46. str_0 := strArr[0]
  47. str_1 := strArr[1]
  48. str_2 := strArr[2]
  49. if str_2!="" {
  50. arr := strings.Split(str_2,"、")
  51. if strings.Contains(str_2,"市") {
  52. for _,v := range arr {
  53. city_map[v] = map[string]string{
  54. "region":str_0,
  55. "region_pro":str_1,
  56. }
  57. }
  58. area_map[str_1] = map[string]string{
  59. "region":str_0,
  60. "region_pro":str_1,
  61. }
  62. }else {
  63. for _,v := range arr {
  64. area_map[v] = map[string]string{
  65. "region":str_0,
  66. "region_pro":str_1,
  67. }
  68. }
  69. }
  70. }else {
  71. area_map[str_1] = map[string]string{
  72. "region":str_0,
  73. "region_pro":str_1,
  74. }
  75. }
  76. }
  77. }
  78. }
  79. func init() {
  80. qu.ReadConfig(&sysconfig)
  81. initMgo()
  82. initRJQY()
  83. }
  84. func main() {
  85. log.Println("测试...")
  86. //dealWithCgyxData()
  87. exportExcle()
  88. }