init.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package cron_controller
  2. import (
  3. "github.com/astaxie/beego"
  4. "github.com/astaxie/beego/context"
  5. "fohow.com/apps"
  6. "fohow.com/libs/tool"
  7. "strings"
  8. )
  9. var (
  10. //不需要校验用户登录的Action
  11. exceptCheckUserLoginAction = []string{"Cron"}
  12. exceptCheckWxUserLoginAction = []string{"Cron"}
  13. )
  14. type CronController struct {
  15. apps.BaseController
  16. }
  17. func (self *CronController) Init(ctx *context.Context, controllerName, actionName string, app interface{}) {
  18. // beego.BeeLogger.Info("invote controller Init func")
  19. self.BaseController.Init(ctx, controllerName, actionName, app)
  20. self.ExceptCheckUserLoginAction = exceptCheckUserLoginAction
  21. self.ExceptCheckWxUserLoginAction = exceptCheckWxUserLoginAction
  22. }
  23. // http://api.d5c360.com/v1/cron/:name(project_loan)
  24. func (self *CronController) Cron() {
  25. name := self.Ctx.Input.Param(":name")
  26. ip := self.Ctx.Input.IP()
  27. //beego.BeeLogger.Error("get ip: %s", ip)
  28. beego.BeeLogger.Info("Request ip ", strings.Split(beego.AppConfig.String("inetIp"), ","))
  29. // 该接口要指定的ip列表访问
  30. if inAllowedList, _ := tool.Contain(ip, strings.Split(beego.AppConfig.String("inetIp"), ",")); inAllowedList {
  31. //beego.BeeLogger.Error("inAllowedList: %v", inAllowedList)
  32. if name == "orderCompleteDispatchTime" {
  33. isUpdateTime, _ := self.GetBool("is_update_time", false)
  34. OrderCompleteDispatchTime(isUpdateTime)
  35. } else {
  36. exec(name)
  37. }
  38. beego.BeeLogger.Info("Request ip[%s] in AllowedList ip, task execute", ip)
  39. } else {
  40. beego.BeeLogger.Warn("Request ip[%s] is not intranet ip, check current user", ip)
  41. currentUser := self.GetCurrentUser(false)
  42. beego.BeeLogger.Warn("currentUser=%v", currentUser)
  43. // 白名单36005:Lane, 28286: 宇斯
  44. var whiteList = []int64{36005, 28286}
  45. if currentUser != nil {
  46. for _, id := range whiteList {
  47. beego.BeeLogger.Warn("id=%d,currentUserId=%d", id, currentUser.Id)
  48. if currentUser.Id == id {
  49. beego.BeeLogger.Info("current user id=[%d], exec task", id)
  50. exec(name)
  51. break
  52. }
  53. }
  54. }
  55. }
  56. self.ServeJSON()
  57. }
  58. func exec(name string) {
  59. switch name {
  60. case "take_cash": //提现
  61. //takeCash()
  62. //autoTakeCash() //redis队列处理
  63. case "orderReceiveAutomatically": //已发货订单7天自动收货
  64. OrderReceiveAutomatically()
  65. case "updateUserNicknameAndHead": //修复数据-只执行一次
  66. updateUserNicknameAndHead()
  67. case "udpate_sold_count": //更新已售数量
  68. updateSoldCount()
  69. case "comb_three_user": //更新内部关系
  70. threebUserRelation()
  71. case "register_wxuser": //修复数据--注册会员
  72. registerWxUser()
  73. case "cancel_order": //下单24h未支付改为已取消
  74. OrderCancelAutomatically()
  75. case "send_cent": //补发积分执行一次
  76. patchCent()
  77. default:
  78. beego.BeeLogger.Error("Didn't get task wity name:[%s]", name)
  79. }
  80. }