main.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "log"
  6. "app.yhyue.com/moapp/jybase/common"
  7. elastic "app.yhyue.com/moapp/jybase/es"
  8. "app.yhyue.com/moapp/jybase/mongodb"
  9. "app.yhyue.com/moapp/jybase/mysql"
  10. "app.yhyue.com/moapp/jybase/redis"
  11. )
  12. var (
  13. cfg = new(Config)
  14. Mysql *mysql.Mysql
  15. TiDb *mysql.Mysql
  16. TiDbData *mysql.Mysql
  17. TiDbPower *mysql.Mysql
  18. WorkOrder *mysql.Mysql
  19. ThirdParty *mysql.Mysql
  20. Jyactivities *mysql.Mysql
  21. Base *mysql.Mysql
  22. Es elastic.Es
  23. Mgo *mongodb.MongodbSim
  24. MgoLog *mongodb.MongodbSim
  25. MgoQyxy *mongodb.MongodbSim
  26. mode = flag.Int("m", 1, "")
  27. )
  28. func main() {
  29. flag.Parse()
  30. common.ReadConfig(&cfg)
  31. log.Println("cfg ", cfg)
  32. TiDb = &mysql.Mysql{
  33. Address: cfg.TiDb.Host + ":" + fmt.Sprint(cfg.TiDb.Port),
  34. UserName: cfg.TiDb.User,
  35. PassWord: cfg.TiDb.Password,
  36. DBName: cfg.TiDb.Database,
  37. MaxOpenConns: cfg.TiDb.PollSize,
  38. MaxIdleConns: cfg.TiDb.MaxIdle,
  39. }
  40. TiDb.Init()
  41. TiDbData = &mysql.Mysql{
  42. Address: cfg.TiDbData.Host + ":" + fmt.Sprint(cfg.TiDbData.Port),
  43. UserName: cfg.TiDbData.User,
  44. PassWord: cfg.TiDbData.Password,
  45. DBName: cfg.TiDbData.Database,
  46. MaxOpenConns: cfg.TiDbData.PollSize,
  47. MaxIdleConns: cfg.TiDbData.MaxIdle,
  48. }
  49. TiDbData.Init()
  50. TiDbPower = &mysql.Mysql{
  51. Address: cfg.TiDbPower.Host + ":" + fmt.Sprint(cfg.TiDbPower.Port),
  52. UserName: cfg.TiDbPower.User,
  53. PassWord: cfg.TiDbPower.Password,
  54. DBName: cfg.TiDbPower.Database,
  55. MaxOpenConns: cfg.TiDbPower.PollSize,
  56. MaxIdleConns: cfg.TiDbPower.MaxIdle,
  57. }
  58. TiDbPower.Init()
  59. ThirdParty = &mysql.Mysql{
  60. Address: cfg.ThirdParty.Host + ":" + fmt.Sprint(cfg.ThirdParty.Port),
  61. UserName: cfg.ThirdParty.User,
  62. PassWord: cfg.ThirdParty.Password,
  63. DBName: cfg.ThirdParty.Database,
  64. MaxOpenConns: cfg.ThirdParty.PollSize,
  65. MaxIdleConns: cfg.ThirdParty.MaxIdle,
  66. }
  67. ThirdParty.Init()
  68. Jyactivities = &mysql.Mysql{
  69. Address: cfg.Jyactivities.Host + ":" + fmt.Sprint(cfg.Jyactivities.Port),
  70. UserName: cfg.Jyactivities.User,
  71. PassWord: cfg.Jyactivities.Password,
  72. DBName: cfg.Jyactivities.Database,
  73. MaxOpenConns: cfg.Jyactivities.PollSize,
  74. MaxIdleConns: cfg.Jyactivities.MaxIdle,
  75. }
  76. Jyactivities.Init()
  77. WorkOrder = &mysql.Mysql{
  78. Address: cfg.WorderOrder.Host + ":" + fmt.Sprint(cfg.WorderOrder.Port),
  79. UserName: cfg.WorderOrder.User,
  80. PassWord: cfg.WorderOrder.Password,
  81. DBName: cfg.WorderOrder.Database,
  82. MaxOpenConns: cfg.WorderOrder.PollSize,
  83. MaxIdleConns: cfg.WorderOrder.MaxIdle,
  84. }
  85. WorkOrder.Init()
  86. Mysql = &mysql.Mysql{
  87. Address: cfg.Mysql.Host + ":" + fmt.Sprint(cfg.Mysql.Port),
  88. UserName: cfg.Mysql.User,
  89. PassWord: cfg.Mysql.Password,
  90. DBName: cfg.Mysql.Database,
  91. MaxOpenConns: cfg.Mysql.PollSize,
  92. MaxIdleConns: cfg.Mysql.MaxIdle,
  93. }
  94. Mysql.Init()
  95. Base = &mysql.Mysql{
  96. Address: cfg.BaseService.Host + ":" + fmt.Sprint(cfg.BaseService.Port),
  97. UserName: cfg.BaseService.User,
  98. PassWord: cfg.BaseService.Password,
  99. DBName: cfg.BaseService.Database,
  100. MaxOpenConns: cfg.BaseService.PollSize,
  101. MaxIdleConns: cfg.BaseService.MaxIdle,
  102. }
  103. Base.Init()
  104. //Es = elastic.NewEs(cfg.Es.Version, cfg.Es.Address, cfg.Es.DbSize, cfg.Es.UserName, cfg.Es.Password)
  105. redis.InitRedis(cfg.RedisServer)
  106. Mgo = mongodb.NewMgo(cfg.Mgo.Address, cfg.Mgo.DbName, cfg.Mgo.DbSize)
  107. MgoLog = mongodb.NewMgoWithUser(cfg.MgoLog.Address, cfg.MgoLog.DbName, cfg.MgoLog.User, cfg.MgoLog.Password, cfg.MgoLog.DbSize)
  108. MgoQyxy = mongodb.NewMgoWithUser(cfg.MgoQyxy.Address, cfg.MgoQyxy.DbName, cfg.MgoQyxy.User, cfg.MgoQyxy.Password, cfg.MgoQyxy.DbSize)
  109. InitArea()
  110. InitProduct(cfg.ProductArr)
  111. //kcSync() //移交客成
  112. //log.Println(FindPosition(2047780, "01"))
  113. rderAcceptance()
  114. /*go kcSync() //移交客成
  115. go refundAuto() //客成移交销售
  116. if *mode == 1 {
  117. //30分钟一次
  118. a := cron.New()
  119. a.AddFunc(cfg.CornExp1, func() {
  120. orders() //未支付订单
  121. messageSync() //聊天记录进线索
  122. userbase() //新绑定手机号进线索
  123. })
  124. a.Start()
  125. //5分钟一次
  126. b := cron.New()
  127. b.AddFunc(cfg.CornExp2, func() {
  128. users() //新注册用户进线索
  129. saleLeads() //留资进线索
  130. eventReg() //渠道
  131. bigCustomer() //大客户线索
  132. marketCustomer() //市场部线索
  133. })
  134. b.Start()
  135. //每天8点30
  136. c := cron.New()
  137. c.AddFunc(cfg.CornExp3, func() {
  138. users() //新注册用户进线索
  139. saleLeads() //留资进线索
  140. })
  141. c.Start()
  142. // 一天一次
  143. // tagAllSync()
  144. d := cron.New()
  145. d.AddFunc(cfg.CornExp4, func() {
  146. tagAllSync() //用户标签
  147. })
  148. d.Start()
  149. // 5分钟一次
  150. go ordersClue() //后台订单进线索
  151. e := cron.New()
  152. e.AddFunc(cfg.CornExp5, func() {
  153. go everythingSync() //渠道
  154. go ordersClue() //后台订单进线索
  155. go kcSync() //移交客成
  156. go kcAuto() //客成自动加入任务车
  157. go tagAddSync() //用户标签增量
  158. go autoExitSea() //自动退海
  159. go Thaw() //自动解冻处理
  160. go rderAcceptance() //工单生成
  161. })
  162. e.Start()
  163. //5分钟一次
  164. f := cron.New()
  165. f.AddFunc(cfg.CornExp6, func() {
  166. subscribeAddSync() //订阅增量
  167. })
  168. f.Start()
  169. //自动进入任务车 1天一次
  170. g := cron.New()
  171. g.AddFunc(cfg.CornExp7, func() {
  172. readClue() //读取中间表进线索
  173. refundAuto() //客成移交销售
  174. autoTask() //超时未跟进加入任务车
  175. autoTasks() //按照下次跟进时间提前一天加入任务车
  176. })
  177. g.Start()
  178. log.Println("个人邮件告警查询开始")
  179. WarningPerl() // 个人
  180. log.Println("部门邮件告警查询开始")
  181. WarningDm() // 部门
  182. log.Println("个人/部门邮件告警查询结束")
  183. h := cron.New()
  184. h.AddFunc(cfg.CornMail, func() {
  185. log.Println("个人邮件告警查询开始")
  186. WarningPerl() // 个人
  187. log.Println("部门邮件告警查询开始")
  188. WarningDm() // 部门
  189. log.Println("个人/部门邮件告警查询结束")
  190. UpperLimitAutoExitSea(cfg.AllocationCap)
  191. })
  192. h.Start()
  193. select {}
  194. } else {
  195. //refundAutoHistory()
  196. users()
  197. saleLeads()
  198. }*/
  199. }