修改打印模板
This commit is contained in:
159
controllers/controller/controller.go
Normal file
159
controllers/controller/controller.go
Normal file
@@ -0,0 +1,159 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-print/globals"
|
||||
"git.rosy.net.cn/jx-print/model"
|
||||
wxConst "git.rosy.net.cn/jx-print/model/app_model"
|
||||
"git.rosy.net.cn/jx-print/putils"
|
||||
"git.rosy.net.cn/jx-print/services/print_server"
|
||||
"github.com/dchest/captcha"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func init() {
|
||||
globals.SugarLogger.Debugf("test init ...")
|
||||
}
|
||||
|
||||
func CheckToken(c *gin.Context) (tokenInfo *model.TokenInfo) {
|
||||
var (
|
||||
cookie *http.Cookie
|
||||
err error
|
||||
tokenMap map[string]interface{}
|
||||
user *model.User
|
||||
)
|
||||
tokenInfo = &model.TokenInfo{}
|
||||
//验证token
|
||||
//v2下的接口需要验证,v1不需要
|
||||
if !strings.Contains(c.Request.URL.String(), "v1") || !strings.Contains(c.Request.URL.String(), "app_no") {
|
||||
if cookie, err = c.Request.Cookie("token"); err != nil {
|
||||
c.JSON(http.StatusOK, &model.CallBack{
|
||||
Desc: err.Error(),
|
||||
Code: model.ErrCodeNormal,
|
||||
})
|
||||
return nil
|
||||
} else {
|
||||
tokenInfo.Token = cookie.Value
|
||||
}
|
||||
globals.SugarLogger.Debugf("checkToken token: %v", tokenInfo.Token)
|
||||
if tokenMap = putils.GetKey(tokenInfo.Token).(map[string]interface{}); tokenMap == nil {
|
||||
err = fmt.Errorf("token过期或无效,请重新登录!")
|
||||
c.JSON(http.StatusOK, &model.CallBack{
|
||||
Desc: err.Error(),
|
||||
Code: model.ErrCodeToken,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
data, _ := json.Marshal(tokenMap)
|
||||
if err = json.Unmarshal(data, &user); err == nil && user != nil {
|
||||
tokenInfo.User = user
|
||||
} else {
|
||||
err = fmt.Errorf("token错误,请重新登录!")
|
||||
c.JSON(http.StatusOK, &model.CallBack{
|
||||
Desc: err.Error(),
|
||||
Code: model.ErrCodeToken,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
globals.SugarLogger.Debugf("checkToken user: %v", putils.Format4Output(user, true))
|
||||
}
|
||||
return tokenInfo
|
||||
}
|
||||
|
||||
func CallFunc(c *gin.Context, worker func() (retVal interface{}, errCode string, err error)) bool {
|
||||
var (
|
||||
err error
|
||||
callBack = &model.CallBack{
|
||||
Code: model.ErrCodeNormal,
|
||||
}
|
||||
result interface{}
|
||||
)
|
||||
if result, _, err = worker(); err == nil {
|
||||
if result != nil {
|
||||
if data, err := json.Marshal(&result); err == nil {
|
||||
callBack.Code = model.ErrCodeSuccess
|
||||
callBack.Data = string(data)
|
||||
c.JSON(http.StatusOK, callBack)
|
||||
globals.SugarLogger.Debugf("End API :%s success", c.Request.URL)
|
||||
return true
|
||||
} else {
|
||||
err = fmt.Errorf("data error!")
|
||||
callBack.Desc = err.Error()
|
||||
c.JSON(http.StatusOK, callBack)
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
callBack.Code = model.ErrCodeSuccess
|
||||
c.JSON(http.StatusOK, callBack)
|
||||
globals.SugarLogger.Debugf("End API :%s success", c.Request.URL)
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
callBack.Desc = err.Error()
|
||||
c.JSON(http.StatusOK, callBack)
|
||||
globals.SugarLogger.Debugf("End API :%s error:%v", c.Request.URL, err)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func CaptchaVerify(c *gin.Context, code string) bool {
|
||||
verifyCode := putils.GetKey(c.ClientIP() + model.SessionKey)
|
||||
if verifyCode == nil {
|
||||
return true
|
||||
}
|
||||
if captchaId := verifyCode.(string); captchaId != "" {
|
||||
putils.DelKey(c.ClientIP() + model.SessionKey)
|
||||
return captcha.VerifyString(captchaId, code)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func BuildErrJson(c *gin.Context, err error) {
|
||||
c.JSON(http.StatusOK, &model.CallBack{
|
||||
Code: model.ErrCodeNormal,
|
||||
Desc: err.Error(),
|
||||
})
|
||||
globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err)
|
||||
}
|
||||
|
||||
func GetConfig(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
param = &struct {
|
||||
Type string `json:"type" form:"type" binding:"required"`
|
||||
Key string `json:"key" form:"key" binding:"required"`
|
||||
}{}
|
||||
)
|
||||
if err = c.ShouldBind(¶m); err != nil {
|
||||
BuildErrJson(c, err)
|
||||
return
|
||||
}
|
||||
if !CallFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = print_server.GetConfig(c, param.Type, param.Key)
|
||||
return retVal, "", err
|
||||
}) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func SetToken(user *model.User) (token string, err error) {
|
||||
token = createToken(user)
|
||||
err = putils.SetKey(token, user, putils.DefTokenDuration)
|
||||
return token, err
|
||||
}
|
||||
|
||||
func createToken(user *model.User) (token string) {
|
||||
return strings.Join([]string{
|
||||
wxConst.TokenHeader,
|
||||
wxConst.TokenVer,
|
||||
user.UserID,
|
||||
time.Now().Format("20060102-150405"),
|
||||
utils.GetUUID(),
|
||||
user.Name,
|
||||
}, wxConst.TokenTypeSep)
|
||||
}
|
||||
Reference in New Issue
Block a user