Compare commits
2 Commits
edc0dcd357
...
e2f18c566e
| Author | SHA1 | Date |
|---|---|---|
|
|
e2f18c566e | |
|
|
81421a89c9 |
|
|
@ -0,0 +1,53 @@
|
|||
package middle
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
"twin-api/app/common/dao"
|
||||
"twin-api/app/common/model"
|
||||
"twin-api/base/config"
|
||||
|
||||
"git.u8t.cn/open/go-server/session"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/smbrave/goutil"
|
||||
)
|
||||
|
||||
func UserPkg(ctx *gin.Context) {
|
||||
sess, ok := ctx.Keys[session.ContextSession].(*session.ApiSession)
|
||||
if !ok {
|
||||
panic(config.ErrInternal.New().Append("user_pkg: error user"))
|
||||
}
|
||||
header := sess.GetUserHeader()
|
||||
if header.Package == "" || header.Version == "" {
|
||||
panic(config.ErrParam.New().Append("user_pkg: error pkg"))
|
||||
}
|
||||
|
||||
var userPkgInfo *model.Pkg
|
||||
var err error
|
||||
|
||||
// 检查用户是否有新版本,如果没有则落库,
|
||||
if userPkgInfo, err = dao.NewPackage().GetUserPkg(sess.GetUserId(), header.Package, header.Version); err != nil {
|
||||
panic(config.ErrDb.New().Append("user_pkg: ", err))
|
||||
}
|
||||
|
||||
if userPkgInfo == nil {
|
||||
// 查询当前的userPkg以及version是否存在
|
||||
var pkg *model.Pkg
|
||||
if pkg, err = dao.NewPackage().GetOne(header.Package, header.Version); err != nil {
|
||||
panic(config.ErrDb.New().Append("user_pkg: ", err))
|
||||
}
|
||||
|
||||
if pkg == nil {
|
||||
panic(config.ErrParam.New().Append(fmt.Sprintf("user_pkg: error pkg: %s version %s", header.Package, header.Version)))
|
||||
}
|
||||
|
||||
userPkg := &model.UserPkg{}
|
||||
userPkg.UserId = sess.GetUserId()
|
||||
userPkg.PackageId = pkg.Id
|
||||
userPkg.CreateTime = time.Now().Unix()
|
||||
userPkg.Extra = goutil.EncodeJSON(pkg)
|
||||
if err = dao.NewUserPkg().Create(userPkg); err != nil {
|
||||
panic(config.ErrDb.New().Append("user_pkg: create error: ", err))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,10 @@ package routers
|
|||
|
||||
import (
|
||||
"net/http"
|
||||
"twin-api/app/api/controller"
|
||||
"twin-api/app/common/middle"
|
||||
|
||||
gsController "git.u8t.cn/open/go-server/api/controller"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
|
|
@ -17,6 +20,11 @@ func InitRouter(engine *gin.Engine) {
|
|||
|
||||
// 客户端接口路由
|
||||
func initApiRouter(engine *gin.Engine) {
|
||||
base := new(gsController.BaseController)
|
||||
userGroup := engine.Group("/api/user").Use(base.Recovery).Use(base.Before).Use(base.Token).Use(base.IpLimit).Use(base.Response).Use(middle.UserPkg)
|
||||
|
||||
userApi := new(controller.User)
|
||||
userGroup.GET("/verify", userApi.Verify)
|
||||
}
|
||||
|
||||
// 管理接口路由
|
||||
|
|
|
|||
Loading…
Reference in New Issue