default.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. package controllers
  2. import (
  3. "box-gm/models"
  4. "github.com/astaxie/beego"
  5. // "log"
  6. )
  7. type MainController struct {
  8. beego.Controller
  9. }
  10. // IndexInfo 界面信息,每新增一个功能都要新增该结构
  11. type IndexInfo struct {
  12. Id int //界面id,模板文件中会使用到这个id,作为焦点
  13. Name string //界面在导航中的显示名
  14. Url string //界面的url地址
  15. }
  16. type NavInfo struct {
  17. Name string
  18. IndexList []*IndexInfo
  19. }
  20. func getIndex(permission int64) []*NavInfo {
  21. var navList []*NavInfo
  22. if (permission & (1 << uint(models.ModelUser))) != 0 {
  23. navInfo := &NavInfo{
  24. Name: "系统",
  25. }
  26. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  27. Id: models.ModelUser,
  28. Name: "用户管理",
  29. Url: "user.html",
  30. })
  31. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  32. Id: models.ModelUser,
  33. Name: "角色管理",
  34. Url: "role.html",
  35. })
  36. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  37. Id: models.ModelUser,
  38. Name: "日志管理",
  39. Url: "log.html",
  40. })
  41. navList = append(navList, navInfo)
  42. }
  43. if (permission & (1 << uint(models.ModelStatment))) != 0 {
  44. navInfo := &NavInfo{
  45. Name: "统计数据",
  46. }
  47. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  48. Id: models.ModelUser,
  49. Name: "统计注册",
  50. Url: "register.html",
  51. })
  52. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  53. Id: models.ModelUser,
  54. Name: "统计留存",
  55. Url: "retained.html",
  56. })
  57. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  58. Id: models.ModelUser,
  59. Name: "统计登录",
  60. Url: "login.html",
  61. })
  62. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  63. Id: models.ModelUser,
  64. Name: "在线时长",
  65. Url: "onlinetime.html",
  66. })
  67. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  68. Id: models.ModelUser,
  69. Name: "玩家资源",
  70. Url: "resource.html",
  71. })
  72. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  73. Id: models.ModelUser,
  74. Name: "统计支付金额",
  75. Url: "pay.html",
  76. })
  77. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  78. Id: models.ModelUser,
  79. Name: "统计商品",
  80. Url: "goods.html",
  81. })
  82. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  83. Id: models.ModelUser,
  84. Name: "付费人数",
  85. Url: "paynum.html",
  86. })
  87. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  88. Id: models.ModelUser,
  89. Name: "订单查询",
  90. Url: "orderquery.html",
  91. })
  92. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  93. Id: models.ModelUser,
  94. Name: "客户端埋点",
  95. Url: "client.html",
  96. })
  97. navList = append(navList, navInfo)
  98. }
  99. if (permission & (1 << uint(models.ModelRealTime))) != 0 {
  100. navInfo := &NavInfo{
  101. Name: "实时数据",
  102. }
  103. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  104. Id: models.ModelRealTime,
  105. Name: "实时注册",
  106. Url: "rtregister.html",
  107. })
  108. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  109. Id: models.ModelRealTime,
  110. Name: "实时登录",
  111. Url: "rtlogin.html",
  112. })
  113. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  114. Id: models.ModelRealTime,
  115. Name: "实时在线",
  116. Url: "rtonline.html",
  117. })
  118. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  119. Id: models.ModelRealTime,
  120. Name: "实时支付金额",
  121. Url: "rtpay.html",
  122. })
  123. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  124. Id: models.ModelRealTime,
  125. Name: "实时支付登录",
  126. Url: "rtpaylogin.html",
  127. })
  128. navList = append(navList, navInfo)
  129. }
  130. if (permission & (1 << uint(models.ModelSystem))) != 0 {
  131. navInfo := &NavInfo{
  132. Name: "游戏系统设置",
  133. }
  134. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  135. Id: models.ModelSystem,
  136. Name: "版本更新",
  137. Url: "hotfix.html",
  138. })
  139. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  140. Id: models.ModelSystem,
  141. Name: "兑换码",
  142. Url: "exchangecode.html",
  143. })
  144. navList = append(navList, navInfo)
  145. }
  146. return navList
  147. }
  148. // 主界面
  149. // 通过c.Data[key]返回数据
  150. // ace模板文件通过{{.key}}获取数据
  151. func (c *MainController) Get() {
  152. // 返回登陆会话信息,如果没有登陆,跳转到登陆界面
  153. userinfo := c.GetSession("user")
  154. if userinfo == nil {
  155. c.Ctx.Redirect(302, "/accountlogin")
  156. return
  157. }
  158. c.Data["title"] = beego.AppConfig.String("apptitle")
  159. //用户权限
  160. user_permission := models.GetPermission(userinfo.(*LoginInfo).Username)
  161. c.Data["navList"] = getIndex(user_permission)
  162. //界面模板文件
  163. c.TplName = "index.tpl"
  164. }