// 账号相关的接口实现 package handler import ( "fmt" "server/common" "server/db" "server/modules/customer/app" "server/modules/customer/bdb" "server/modules/customer/values" "server/util" "github.com/liangdas/mqant/log" "github.com/gin-gonic/gin" ) func Login(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := new(values.LoginReq) if !a.S(req) { return } one := &values.User{Account: req.Account, Password: req.Pass} if err := bdb.BackDB.Get(one); err != nil { a.Code = values.CodeParam a.Msg = "账号不存在" return } token := util.GetSimpleRandomString(6) err := db.Redis().SetJsonData(common.GetBackendTokenKey(token), one, values.RedisTokenEx) if err != nil { log.Error(err.Error()) } a.Data = values.LoginResp{Role: one.Role, Token: token, Power: one.Power, Id: int(one.ID)} } // 操作 1上线 2下线 type OnlineReq struct { Opt int } func Online(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() // if a.User.Role != values.UserRole2 { // return // } req := new(OnlineReq) if !a.S(req) { return } str := "上线" opt := 1 if req.Opt == 2 { str = "下线" opt = 0 } bdb.BackDB.Update(&values.User{ID: a.User.ID}, map[string]interface{}{"online": opt}) a.RecordEdit(values.PowerGM, fmt.Sprintf("客服%s", str)) } type OnlineResp struct { Status int } func OnlineStatus(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() user := &values.User{ID: a.User.ID} bdb.BackDB.Get(user) resp := OnlineResp{Status: user.Online} a.Data = resp }