123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- package controllers
- import (
- "box-gm/models"
- "github.com/astaxie/beego"
- // "log"
- )
- type MainController struct {
- beego.Controller
- }
- // IndexInfo 界面信息,每新增一个功能都要新增该结构
- type IndexInfo struct {
- Id int //界面id,模板文件中会使用到这个id,作为焦点
- Name string //界面在导航中的显示名
- Url string //界面的url地址
- }
- type NavInfo struct {
- Name string
- IndexList []*IndexInfo
- }
- func getIndex(permission int64) []*NavInfo {
- var navList []*NavInfo
- if (permission & (1 << uint(models.ModelUser))) != 0 {
- navInfo := &NavInfo{
- Name: "系统",
- }
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "用户管理",
- Url: "user.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "角色管理",
- Url: "role.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "日志管理",
- Url: "log.html",
- })
- navList = append(navList, navInfo)
- }
- if (permission & (1 << uint(models.ModelStatment))) != 0 {
- navInfo := &NavInfo{
- Name: "统计数据",
- }
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "统计注册",
- Url: "register.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "统计留存",
- Url: "retained.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "统计登录",
- Url: "login.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "在线时长",
- Url: "onlinetime.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "玩家资源",
- Url: "resource.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "统计支付金额",
- Url: "pay.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "统计商品",
- Url: "goods.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "付费人数",
- Url: "paynum.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "订单查询",
- Url: "orderquery.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelUser,
- Name: "客户端埋点",
- Url: "client.html",
- })
- navList = append(navList, navInfo)
- }
- if (permission & (1 << uint(models.ModelRealTime))) != 0 {
- navInfo := &NavInfo{
- Name: "实时数据",
- }
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelRealTime,
- Name: "实时注册",
- Url: "rtregister.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelRealTime,
- Name: "实时登录",
- Url: "rtlogin.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelRealTime,
- Name: "实时在线",
- Url: "rtonline.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelRealTime,
- Name: "实时支付金额",
- Url: "rtpay.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelRealTime,
- Name: "实时支付登录",
- Url: "rtpaylogin.html",
- })
- navList = append(navList, navInfo)
- }
- if (permission & (1 << uint(models.ModelSystem))) != 0 {
- navInfo := &NavInfo{
- Name: "游戏系统设置",
- }
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelSystem,
- Name: "版本更新",
- Url: "hotfix.html",
- })
- navInfo.IndexList = append(navInfo.IndexList, &IndexInfo{
- Id: models.ModelSystem,
- Name: "兑换码",
- Url: "exchangecode.html",
- })
- navList = append(navList, navInfo)
- }
- return navList
- }
- // 主界面
- // 通过c.Data[key]返回数据
- // ace模板文件通过{{.key}}获取数据
- func (c *MainController) Get() {
- // 返回登陆会话信息,如果没有登陆,跳转到登陆界面
- userinfo := c.GetSession("user")
- if userinfo == nil {
- c.Ctx.Redirect(302, "/accountlogin")
- return
- }
- c.Data["title"] = beego.AppConfig.String("apptitle")
- //用户权限
- user_permission := models.GetPermission(userinfo.(*LoginInfo).Username)
- c.Data["navList"] = getIndex(user_permission)
- //界面模板文件
- c.TplName = "index.tpl"
- }
|