delapp get menu

This commit is contained in:
suyl
2021-07-08 11:28:16 +08:00
parent 21737e5cd9
commit ace0d7e5f3
9 changed files with 143 additions and 65 deletions

View File

@@ -4,7 +4,6 @@ import (
"git.rosy.net.cn/jx-print/globals"
"git.rosy.net.cn/jx-print/model"
"git.rosy.net.cn/jx-print/services"
"git.rosy.net.cn/jx-print/utils"
"github.com/gin-gonic/gin"
"net/http"
)
@@ -12,23 +11,14 @@ import (
//查询账号下的app GET
func GetApps(c *gin.Context) {
var (
b, ok bool
token string
user *model.User
tokenInfo *model.TokenInfo
)
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
if token, b = checkToken(c); !b {
return
}
if user, ok = utils.GetKet(token).(*model.User); !ok {
c.JSON(http.StatusOK, &CallBack{
Code: model.ErrCodeToken,
Desc: "token 过期或无效!",
})
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = services.GetApps(c, user)
retVal, err = services.GetApps(c, tokenInfo.User.UserID)
return retVal, "", err
}) {
return
@@ -45,11 +35,9 @@ type AddAppParam struct {
//新建app POST
func AddApp(c *gin.Context) {
var (
err error
b, ok bool
token string
user *model.User
param = &AddAppParam{}
tokenInfo *model.TokenInfo
err error
param = &AddAppParam{}
)
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
if err = c.Bind(&param); err != nil {
@@ -60,18 +48,41 @@ func AddApp(c *gin.Context) {
globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err)
return
}
if token, b = checkToken(c); !b {
return
}
if user, ok = utils.GetKet(token).(*model.User); !ok {
c.JSON(http.StatusOK, &CallBack{
Code: model.ErrCodeToken,
Desc: "token 过期或无效!",
})
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
err = services.AddApp(c, param.Code, param.Name, param.Mobile, user.UserID)
err = services.AddApp(c, param.Code, param.Name, param.Mobile, tokenInfo.User.UserID)
return retVal, "", err
}) {
return
}
return
}
//删除app POST
func DelApp(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = &struct {
AppID int `json:"app_id" form:"app_id" binding:"required"`
}{}
)
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
if err = c.Bind(&param); err != nil {
c.JSON(http.StatusOK, &CallBack{
Code: model.ErrCodeNormal,
Desc: err.Error(),
})
globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err)
return
}
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
err = services.DelApp(c, param.AppID, tokenInfo.User.UserID)
return retVal, "", err
}) {
return

View File

@@ -23,11 +23,14 @@ func init() {
globals.SugarLogger.Debugf("test init ...")
}
func checkToken(c *gin.Context) (token string, b bool) {
func checkToken(c *gin.Context) (tokenInfo *model.TokenInfo) {
var (
cookie *http.Cookie
err error
ok bool
user *model.User
)
tokenInfo = &model.TokenInfo{}
//验证token
//v2下的接口需要验证v1不需要
if !strings.Contains(c.Request.URL.String(), "v1") {
@@ -36,20 +39,21 @@ func checkToken(c *gin.Context) (token string, b bool) {
Desc: err.Error(),
Code: model.ErrCodeNormal,
})
return "", false
return nil
} else {
token = cookie.Value
tokenInfo.Token = cookie.Value
}
if user := utils.GetKet(token); user == nil {
if user, ok = utils.GetKet(tokenInfo.Token).(*model.User); !ok || user == nil {
err = fmt.Errorf("token过期或无效请重新登录")
c.JSON(http.StatusOK, &CallBack{
Desc: err.Error(),
Code: model.ErrCodeToken,
})
return "", false
return nil
}
tokenInfo.User = user
}
return token, true
return tokenInfo
}
func callFunc(c *gin.Context, worker func() (retVal interface{}, errCode string, err error)) bool {

View File

@@ -1,6 +1,7 @@
package controllers
import (
"encoding/json"
"git.rosy.net.cn/jx-print/globals"
"git.rosy.net.cn/jx-print/model"
"git.rosy.net.cn/jx-print/services"
@@ -34,7 +35,7 @@ func GetUsers(c *gin.Context) {
})
return
}
if _, b := checkToken(c); !b {
if tokenInfo := checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
@@ -119,33 +120,31 @@ func Login(c *gin.Context) {
//自动登录获取token POST
func GetTokenInfo(c *gin.Context) {
var (
token string
b bool
tokenInfo *model.TokenInfo
)
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
if token, b = checkToken(c); !b {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = services.GetTokenInfo(c, token)
return retVal, "", err
}) {
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
data, _ := json.Marshal(tokenInfo)
c.JSON(http.StatusOK, &CallBack{
Code: model.ErrCodeSuccess,
Data: string(data),
})
return
}
//登出删token POST
func Logout(c *gin.Context) {
var (
token string
b bool
tokenInfo *model.TokenInfo
)
if token, b = checkToken(c); !b {
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
err = services.Logout(c, token)
err = services.Logout(c, tokenInfo.Token)
return retVal, "", err
}) {
return
@@ -170,7 +169,7 @@ func UpdateUser(c *gin.Context) {
globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err)
return
}
if _, b := checkToken(c); !b {
if tokenInfo := checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
@@ -181,3 +180,15 @@ func UpdateUser(c *gin.Context) {
}
return
}
//获取菜单,文档 GET
func GetMenu(c *gin.Context) {
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = services.GetMenu(c)
return retVal, "", err
}) {
return
}
return
}