1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package controllers
- import (
- "box-gm/models"
- "box-gm/utils"
- "fmt"
- "log"
- "time"
- "github.com/astaxie/beego"
- "github.com/gomodule/redigo/redis"
- )
- type WelcomeController struct {
- beego.Controller
- }
- // 主界面
- // 通过c.Data[key]返回数据
- // ace模板文件通过{{.key}}获取数据
- func (c *WelcomeController) Get() {
- userinfo := c.GetSession("user")
- if userinfo == nil {
- c.Ctx.Redirect(302, "/accountlogin")
- return
- }
- username := userinfo.(*LoginInfo).Username
- c.Data["rolename"] = models.GetUserRoleName(username)
- c.Data["username"] = username
- c.Data["sharecode"] = models.GetUserShareCode(username)
- c.Data["token"] = models.GetToken()
- c.Data["sysTime"] = time.Unix(time.Now().Unix(), 0).Format("2006-01-02 15:04:05")
- //界面模板文件
- c.TplName = "welcome.tpl"
- }
- func (c *WelcomeController) Post() {
- if !models.CheckToken(c.GetString("token")) {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": "操作失败,请重新刷新界面"}
- c.ServeJSON()
- return
- }
- userinfo := c.GetSession("user")
- if userinfo == nil {
- c.Ctx.Redirect(302, "/accountlogin")
- return
- }
- username := userinfo.(*LoginInfo).Username
- log.Printf("WelcomeController Post username[%s]", username)
- nUser := models.GetUserByUsername(username)
- if nUser == nil {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": fmt.Sprintf("用户[%s]已存在", username)}
- c.ServeJSON()
- return
- }
- sharecode := c.GetString("sharecode")
- log.Printf("WelcomeController Post sharecode[%s]", sharecode)
- // 校验邀请码
- pool := utils.GetAccountRedisPool()
- if pool == nil {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": "get redis pool fail"}
- c.ServeJSON()
- return
- }
- rd := pool.Get()
- defer rd.Close()
- result, _ := redis.Bool(rd.Do("sismember", "sharecode", sharecode))
- log.Printf("WelcomeController Post result[%v]", result)
- if result == true {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": fmt.Sprintf("邀请码[%s]已占有!", sharecode)}
- c.ServeJSON()
- return
- }
- nUser.ShareCode = sharecode
- _, err := models.UpdateUser(nUser)
- if err != nil {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": err}
- c.ServeJSON()
- return
- }
- rd.Do("sadd", "sharecode", sharecode)
- rd.Do("sadd", "sharecode:promoter", sharecode)
- c.Data["json"] = &map[string]interface{}{"status": true, "info": "更新用户成功"}
- c.ServeJSON()
- go models.SaveLog(username, "修改账号推广码", &map[string]interface{}{"username": username, "ShareCode": nUser.ShareCode})
- }
|