Files
easygoadmin/router/router.go
yaoyilin 772cc9ff7e fix: 增加基于mongodb的图片模型
增加基于mongodb的图片模型
2022-11-06 23:35:20 +08:00

406 lines
12 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 全局路由
* @author
* @since 2021/8/20
* @File : router
*/
package router
import (
"github.com/gin-contrib/multitemplate"
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
"github.com/gin-gonic/gin"
"gitlab.52pay.top/go/easygoadmin/app/controller"
"gitlab.52pay.top/go/easygoadmin/app/middleware"
widget2 "gitlab.52pay.top/go/easygoadmin/app/widget"
"html/template"
"path/filepath"
"strings"
"time"
)
var Router *gin.Engine
func init() {
//gin.SetMode(gin.ReleaseMode)
//gin.SetMode(gin.DebugMode)
//fmt.Println("路由已加载")
// 初始化
router := gin.Default()
router.Use(middleware.DoCors())
// 创建基于cookie的存储引擎secret11111 参数是用于加密的密钥
store := cookie.NewStore([]byte("TTTTMIIEogIBAAKCAQEA2"))
// 设置session中间件参数mysession指的是session的名字也是cookie的名字
// store是前面创建的存储引擎我们可以替换成其他存储引擎
router.Use(sessions.Sessions("easygoadmin", store))
// 登录验证中间件
router.Use(middleware.CheckLogin())
// 验证权限
router.Use(middleware.CheckAuth())
// 设置模板文件目录
router.HTMLRender = LoadTemplates("views")
// 指定模板加载目录
//router.LoadHTMLGlob("views/**/*")
// 设置静态资源路由
router.Static("/resource", "./public/resource")
router.StaticFile("/favicon.ico", "./public/resource/images/favicon.ico")
/* 文件上传 */
upload := router.Group("upload")
{
// 上传图片
upload.POST("/uploadImage", controller.Upload.UploadImage)
// 上传图片存到mongoDb
upload.POST("/uploadImage2Db/:typ", controller.Upload.UploadImage2Db)
}
/* mongodb图片 */
img := router.Group("img")
{
img.GET("/:mode/:filename", controller.Img.Image)
}
/* 登录注册 */
index := router.Group("/")
{
index.GET("/:id", controller.Index.None)
index.Any("/admin", controller.Index.Index)
index.Any("/login", controller.Login.Login)
index.Any("/loginKf", controller.Login.LoginKf)
index.Any("/customer", controller.Login.Customer)
index.GET("/captcha", controller.Login.Captcha)
index.GET("/index", controller.Index.Index)
index.GET("/main", controller.Index.Main)
index.Any("/userInfo", controller.Index.UserInfo)
index.Any("/updatePwd", controller.Index.UpdatePwd)
index.GET("/logout", controller.Index.Logout)
index.GET("/test", controller.Test.Test)
}
/* 用户管理 */
user := router.Group("user")
{
user.GET("/index", controller.User.Index)
user.POST("/list", controller.User.List)
user.GET("/edit", controller.User.Edit)
user.POST("/add", controller.User.Add)
user.POST("/update", controller.User.Update)
user.POST("/delete/:ids", controller.User.Delete)
user.POST("/setStatus", controller.User.Status)
user.POST("/resetPwd", controller.User.ResetPwd)
user.GET("/checkUser", controller.User.CheckUser)
}
// 职级管理
level := router.Group("/level")
{
level.GET("/index", controller.Level.Index)
level.POST("/list", controller.Level.List)
level.GET("/edit", controller.Level.Edit)
level.POST("/add", controller.Level.Add)
level.POST("/update", controller.Level.Update)
level.POST("/delete/:ids", controller.Level.Delete)
level.POST("/setStatus", controller.Level.Status)
}
/* 岗位管理 */
position := router.Group("position")
{
position.GET("/index", controller.Position.Index)
position.POST("/list", controller.Position.List)
position.GET("/edit", controller.Position.Edit)
position.POST("/add", controller.Position.Add)
position.POST("/update", controller.Position.Update)
position.POST("/delete/:ids", controller.Position.Delete)
position.POST("/setStatus", controller.Position.Status)
position.GET("/getPositionList", controller.Position.GetPositionList)
}
/* 角色路由 */
role := router.Group("role")
{
role.GET("/index", controller.Role.Index)
role.POST("/list", controller.Role.List)
role.GET("/edit", controller.Role.Edit)
role.POST("/add", controller.Role.Add)
role.POST("/update", controller.Role.Update)
role.POST("/delete/:ids", controller.Role.Delete)
role.POST("/setStatus", controller.Role.Status)
role.GET("/getRoleList", controller.Role.GetRoleList)
}
/* 角色菜单权限 */
roleMenu := router.Group("rolemenu")
{
roleMenu.GET("/index/:roleId", controller.RoleMenu.Index)
roleMenu.POST("/save", controller.RoleMenu.Save)
}
/* 部门管理 */
dept := router.Group("dept")
{
dept.GET("/index", controller.Dept.Index)
dept.POST("/list", controller.Dept.List)
dept.GET("/edit", controller.Dept.Edit)
dept.POST("/add", controller.Dept.Add)
dept.POST("/update", controller.Dept.Update)
dept.POST("/delete/:ids", controller.Dept.Delete)
dept.GET("/getDeptList", controller.Dept.GetDeptList)
}
/* 菜单管理 */
menu := router.Group("menu")
{
menu.GET("/index", controller.Menu.Index)
menu.POST("/list", controller.Menu.List)
menu.GET("/edit", controller.Menu.Edit)
menu.POST("/add", controller.Menu.Add)
menu.POST("/update", controller.Menu.Update)
menu.POST("/delete/:ids", controller.Menu.Delete)
}
///* 登录日志 */
//loginLog := router.Group("loginlog")
//{
// loginLog.GET("/index", controller.LoginLog.Index)
// loginLog.GET("/list", controller.LoginLog.List)
// loginLog.POST("/delete/:ids", controller.LoginLog.Delete)
//}
//
///* 操作日志 */
//operLog := router.Group("operlog")
//{
// operLog.GET("/list", controller.OperLog.List)
//}
/* 友链管理 */
link := router.Group("link")
{
link.GET("/index", controller.Link.Index)
link.POST("/list", controller.Link.List)
link.GET("/edit", controller.Link.Edit)
link.POST("/add", controller.Link.Add)
link.POST("/update", controller.Link.Update)
link.POST("/delete/:ids", controller.Link.Delete)
link.POST("/setStatus", controller.Link.Status)
}
/* 城市管理 */
city := router.Group("city")
{
city.GET("/index", controller.City.Index)
city.POST("/list", controller.City.List)
city.GET("/edit", controller.City.Edit)
city.POST("/add", controller.City.Add)
city.POST("/update", controller.City.Update)
city.POST("/delete/:ids", controller.City.Delete)
city.POST("/getChilds", controller.City.GetChilds)
}
/* 会员等级 */
memberlevel := router.Group("memberlevel")
{
memberlevel.GET("/index", controller.MemberLevel.Index)
memberlevel.POST("/list", controller.MemberLevel.List)
memberlevel.GET("/edit", controller.MemberLevel.Edit)
memberlevel.POST("/add", controller.MemberLevel.Add)
memberlevel.POST("/update", controller.MemberLevel.Update)
memberlevel.POST("/delete/:ids", controller.MemberLevel.Delete)
memberlevel.GET("/getMemberLevelList", controller.MemberLevel.GetMemberLevelList)
}
/* 会员管理 */
member := router.Group("member")
{
member.GET("/index", controller.Member.Index)
member.POST("/list", controller.Member.List)
member.GET("/edit", controller.Member.Edit)
member.POST("/add", controller.Member.Add)
member.POST("/update", controller.Member.Update)
member.POST("/delete/:ids", controller.Member.Delete)
member.POST("/setStatus", controller.Member.Status)
}
/* 字典管理 */
dict := router.Group("dict")
{
dict.GET("/index", controller.Dict.Index)
dict.POST("/list", controller.Dict.List)
dict.POST("/add", controller.Dict.Add)
dict.POST("/update", controller.Dict.Update)
dict.POST("/delete/:ids", controller.Dict.Delete)
}
/* 字典项管理 */
dictdata := router.Group("dictdata")
{
dictdata.POST("/list", controller.DictData.List)
dictdata.POST("/add", controller.DictData.Add)
dictdata.POST("/update", controller.DictData.Update)
dictdata.POST("/delete/:ids", controller.DictData.Delete)
}
/* 配置管理 */
config := router.Group("config")
{
config.GET("/index", controller.Config.Index)
config.POST("/list", controller.Config.List)
config.POST("/add", controller.Config.Add)
config.POST("/update", controller.Config.Update)
config.POST("/delete/:ids", controller.Config.Delete)
}
/* 配置项管理 */
configdata := router.Group("configdata")
{
configdata.POST("/list", controller.ConfigData.List)
configdata.POST("/add", controller.ConfigData.Add)
configdata.POST("/update", controller.ConfigData.Update)
configdata.POST("/delete/:ids", controller.ConfigData.Delete)
configdata.POST("/setStatus", controller.ConfigData.Status)
}
/* 网站设置 */
configweb := router.Group("configweb")
{
configweb.Any("/index", controller.ConfigWeb.Index)
}
/* 统计分析 */
analysis := router.Group("analysis")
{
analysis.GET("/index", controller.Analysis.Index)
}
/* 代码生成器 */
generate := router.Group("generate")
{
generate.GET("/index", controller.Generate.Index)
generate.POST("/list", controller.Generate.List)
generate.POST("/generate", controller.Generate.Generate)
generate.POST("/batchGenerate", controller.Generate.BatchGenerate)
}
/* 演示一 */
example := router.Group("example")
{
example.GET("/index", controller.Example.Index)
example.POST("/list", controller.Example.List)
example.GET("/edit", controller.Example.Edit)
example.POST("/add", controller.Example.Add)
example.POST("/update", controller.Example.Update)
example.POST("/delete/:ids", controller.Example.Delete)
example.POST("/setStatus", controller.Example.Status)
example.POST("/setIsVip", controller.Example.IsVip)
}
/* 演示二 */
example2 := router.Group("example2")
{
example2.GET("/index", controller.Example2.Index)
example2.POST("/list", controller.Example2.List)
example2.GET("/edit", controller.Example2.Edit)
example2.POST("/add", controller.Example2.Add)
example2.POST("/update", controller.Example2.Update)
example2.POST("/delete/:ids", controller.Example2.Delete)
example2.POST("/setStatus", controller.Example2.Status)
}
Router = router
// 启动
//router.Run(":9097")
}
func LoadTemplates(templatesDir string) multitemplate.Renderer {
r := multitemplate.NewRenderer()
// 非模板嵌套
htmls, err := filepath.Glob(templatesDir + "/*.html")
if err != nil {
panic(err.Error())
}
for _, html := range htmls {
r.AddFromGlob(filepath.Base(html), html)
}
// 布局模板
layouts, err := filepath.Glob(templatesDir + "/layouts/*.html")
if err != nil {
panic(err.Error())
}
// 嵌套的内容模板
includes, err := filepath.Glob(templatesDir + "/includes/**/*.html")
if err != nil {
panic(err.Error())
}
// template自定义函数
funcMap := template.FuncMap{
"StringToLower": func(str string) string {
return strings.ToLower(str)
},
"date2": func() string {
return time.Now().Format("2006-01-02 15:04:05.00000")
},
"safe": func(str string) template.HTML {
return template.HTML(str)
},
"widget": widget2.Widget,
"query": widget2.Query,
"add": widget2.Add,
"edit": widget2.Edit,
"delete": widget2.Delete,
"dall": widget2.Dall,
"expand": widget2.Expand,
"collapse": widget2.Collapse,
"addz": widget2.Addz,
"switch": widget2.Switch,
"select": widget2.Select,
"submit": widget2.Submit,
"icon": widget2.Icon,
"transfer": widget2.Transfer,
"upload_image": widget2.UploadImage,
"album": widget2.Album,
"item": widget2.Item,
"kindeditor": widget2.Kindeditor,
"date": widget2.Date,
"checkbox": widget2.Checkbox,
"radio": widget2.Radio,
"city": widget2.City,
"refund": widget2.Refund,
}
// 将主模板include页面layout子模板组合成一个完整的html页面
for _, include := range includes {
// 文件名称
baseName := filepath.Base(include)
files := []string{}
if strings.Contains(baseName, "edit") {
files = append(files, templatesDir+"/layouts/form.html", include)
} else if strings.Contains(baseName, "dict") {
files = append(files, templatesDir+"/layouts/main.html", include)
// 字典
dict, _ := filepath.Glob(templatesDir + "/includes/dict/*.html")
files = append(files, dict...)
} else if strings.Contains(baseName, "config") && !strings.Contains(baseName, "configweb") {
files = append(files, templatesDir+"/layouts/main.html", include)
// 配置
dict, _ := filepath.Glob(templatesDir + "/includes/config/*.html")
files = append(files, dict...)
} else if strings.Contains(baseName, "user_info") {
files = append(files, include)
} else {
files = append(files, templatesDir+"/layouts/layout.html", include)
}
files = append(files, layouts...)
r.AddFromFilesFuncs(baseName, funcMap, files...)
}
return r
}