permission.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. /*
  2. * @Descripttion:
  3. * @version:
  4. * @Author: Neo,Huang
  5. * @Date: 2020-03-17 13:54:11
  6. * @LastEditors: Neo,Huang
  7. * @LastEditTime: 2020-10-23 13:44:43
  8. */
  9. package models
  10. const (
  11. ModelUser = 0
  12. ModelStatment = 1
  13. ModelRealTime = 2
  14. ModelSystem = 3
  15. ModelRoll = 4
  16. )
  17. // 权限信息,新增大功能需要新增权限
  18. type PermissionInfo struct {
  19. Id int `form:"id"`
  20. Name string `form:"name"`
  21. }
  22. // IndexInfo 界面信息,每新增一个功能都要新增该结构
  23. type IndexInfo struct {
  24. Id int //界面id,模板文件中会使用到这个id,作为焦点
  25. Name string //界面在导航中的显示名
  26. Url string //界面的url地址
  27. }
  28. type NavInfo struct {
  29. Id int //界面id,模板文件中会使用到这个id,作为焦点
  30. Name string
  31. IndexList []*IndexInfo
  32. }
  33. func GetPermissions() []*PermissionInfo {
  34. var perList []*PermissionInfo
  35. navList := GetNavList(GetPermission("admin"))
  36. for _, v := range navList {
  37. perList = append(perList, &PermissionInfo{
  38. Id: v.Id,
  39. Name: v.Name,
  40. })
  41. }
  42. return perList
  43. }
  44. func GetNavList(permission int64) []*NavInfo {
  45. var navList []*NavInfo
  46. if (permission & (1 << uint(ModelUser))) != 0 {
  47. navInfo := &NavInfo{
  48. Id: ModelUser,
  49. Name: "系统",
  50. }
  51. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  52. Id: ModelUser,
  53. Name: "用户管理",
  54. Url: "user.html",
  55. })
  56. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  57. Id: ModelUser,
  58. Name: "角色管理",
  59. Url: "role.html",
  60. })
  61. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  62. Id: ModelUser,
  63. Name: "日志管理",
  64. Url: "log.html",
  65. })
  66. navList = append(navList, navInfo)
  67. }
  68. if (permission & (1 << uint(ModelStatment))) != 0 {
  69. navInfo := &NavInfo{
  70. Id: ModelStatment,
  71. Name: "统计数据",
  72. }
  73. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  74. Id: ModelStatment,
  75. Name: "统计注册",
  76. Url: "register.html",
  77. })
  78. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  79. Id: ModelStatment,
  80. Name: "统计留存",
  81. Url: "retained.html",
  82. })
  83. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  84. Id: ModelStatment,
  85. Name: "统计登录",
  86. Url: "login.html",
  87. })
  88. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  89. Id: ModelStatment,
  90. Name: "在线时长",
  91. Url: "onlinetime.html",
  92. })
  93. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  94. Id: ModelStatment,
  95. Name: "玩家资源",
  96. Url: "resource.html",
  97. })
  98. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  99. Id: ModelStatment,
  100. Name: "统计支付金额",
  101. Url: "pay.html",
  102. })
  103. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  104. Id: ModelStatment,
  105. Name: "统计商品",
  106. Url: "goods.html",
  107. })
  108. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  109. Id: ModelStatment,
  110. Name: "付费人数",
  111. Url: "paynum.html",
  112. })
  113. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  114. Id: ModelStatment,
  115. Name: "订单查询",
  116. Url: "orderquery.html",
  117. })
  118. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  119. Id: ModelStatment,
  120. Name: "客户端埋点",
  121. Url: "client.html",
  122. })
  123. navList = append(navList, navInfo)
  124. }
  125. if (permission & (1 << uint(ModelRealTime))) != 0 {
  126. navInfo := &NavInfo{
  127. Id: ModelRealTime,
  128. Name: "实时数据",
  129. }
  130. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  131. Id: ModelRealTime,
  132. Name: "实时注册",
  133. Url: "rtregister.html",
  134. })
  135. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  136. Id: ModelRealTime,
  137. Name: "实时登录",
  138. Url: "rtlogin.html",
  139. })
  140. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  141. Id: ModelRealTime,
  142. Name: "实时在线",
  143. Url: "rtonline.html",
  144. })
  145. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  146. Id: ModelRealTime,
  147. Name: "实时支付金额",
  148. Url: "rtpay.html",
  149. })
  150. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  151. Id: ModelRealTime,
  152. Name: "实时支付登录",
  153. Url: "rtpaylogin.html",
  154. })
  155. navList = append(navList, navInfo)
  156. }
  157. if (permission & (1 << uint(ModelSystem))) != 0 {
  158. navInfo := &NavInfo{
  159. Id: ModelSystem,
  160. Name: "游戏系统设置",
  161. }
  162. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  163. Id: ModelSystem,
  164. Name: "版本更新",
  165. Url: "hotfix.html",
  166. })
  167. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  168. Id: ModelSystem,
  169. Name: "兑换码",
  170. Url: "exchangecode.html",
  171. })
  172. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  173. Id: ModelSystem,
  174. Name: "配置管理",
  175. Url: "gameconfig.html",
  176. })
  177. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  178. Id: ModelSystem,
  179. Name: "Roll奖励方案管理",
  180. Url: "rollaward.html",
  181. })
  182. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  183. Id: ModelSystem,
  184. Name: "Roll房管理",
  185. Url: "roll.html",
  186. })
  187. navList = append(navList, navInfo)
  188. }
  189. if (permission & (1 << uint(ModelRoll))) != 0 {
  190. navInfo := &NavInfo{
  191. Id: ModelRoll,
  192. Name: "Roll房",
  193. }
  194. navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
  195. Id: ModelRoll,
  196. Name: "Roll房管理",
  197. Url: "roll.html",
  198. })
  199. navList = append(navList, navInfo)
  200. }
  201. return navList
  202. }