diff --git a/app/admin/apis/syscategory/syscategory.go b/app/admin/apis/syscategory/syscategory.go deleted file mode 100644 index 03181dea..00000000 --- a/app/admin/apis/syscategory/syscategory.go +++ /dev/null @@ -1,83 +0,0 @@ -package syscategory - -import ( - "github.com/gin-gonic/gin" - "github.com/gin-gonic/gin/binding" - - "go-admin/app/admin/models" - "go-admin/tools" - "go-admin/tools/app" - "go-admin/tools/app/msg" -) - -func GetSysCategoryList(c *gin.Context) { - var data models.SysCategory - var err error - var pageSize = 10 - var pageIndex = 1 - - if size := c.Request.FormValue("pageSize"); size != "" { - pageSize, err = tools.StringToInt(size) - } - if index := c.Request.FormValue("pageIndex"); index != "" { - pageIndex, err = tools.StringToInt(index) - } - - data.Name = c.Request.FormValue("name") - data.Status = c.Request.FormValue("status") - - data.DataScope = tools.GetUserIdStr(c) - result, count, err := data.GetPage(pageSize, pageIndex) - tools.HasError(err, "", -1) - - app.PageOK(c, result, count, pageIndex, pageSize, "") -} - -func GetSysCategory(c *gin.Context) { - var data models.SysCategory - data.Id, _ = tools.StringToInt(c.Param("id")) - result, err := data.Get() - tools.HasError(err, "抱歉未找到相关信息", -1) - - app.OK(c, result, "") -} - -// @Summary 添加分类 -// @Description 获取JSON -// @Tags 分类 -// @Accept application/json -// @Product application/json -// @Param data body models.SysCategory true "data" -// @Success 200 {string} string "{"code": 200, "message": "添加成功"}" -// @Success 200 {string} string "{"code": -1, "message": "添加失败"}" -// @Router /api/v1/syscategory [post] -func InsertSysCategory(c *gin.Context) { - var data models.SysCategory - err := c.ShouldBindJSON(&data) - data.CreateBy = tools.GetUserIdStr(c) - tools.HasError(err, "", 500) - result, err := data.Create() - tools.HasError(err, "", -1) - app.OK(c, result, "") -} - -func UpdateSysCategory(c *gin.Context) { - var data models.SysCategory - err := c.BindWith(&data, binding.JSON) - tools.HasError(err, "数据解析失败", -1) - data.UpdateBy = tools.GetUserIdStr(c) - result, err := data.Update(data.Id) - tools.HasError(err, "", -1) - - app.OK(c, result, "") -} - -func DeleteSysCategory(c *gin.Context) { - var data models.SysCategory - data.UpdateBy = tools.GetUserIdStr(c) - - IDS := tools.IdsStrToIdsIntGroup("id", c) - _, err := data.BatchDelete(IDS) - tools.HasError(err, msg.DeletedFail, 500) - app.OK(c, nil, msg.DeletedSuccess) -} diff --git a/app/admin/models/syscategory.go b/app/admin/models/syscategory.go index b277bd92..53e21846 100644 --- a/app/admin/models/syscategory.go +++ b/app/admin/models/syscategory.go @@ -1,122 +1,31 @@ package models import ( - orm "go-admin/common/global" - "go-admin/tools" + "gorm.io/gorm" + + "go-admin/common/models" ) type SysCategory struct { - Id int `json:"id" gorm:"type:int(11);primary_key;AUTO_INCREMENT"` // 分类Id - Name string `json:"name" gorm:"type:varchar(255);"` // 名称 - Img string `json:"img" gorm:"type:varchar(255);"` // 图片 - Sort string `json:"sort" gorm:"type:int(4);"` // 排序 - Status string `json:"status" gorm:"type:int(1);"` // 状态 - Remark string `json:"remark" gorm:"type:varchar(255);"` // 备注 - CreateBy string `json:"createBy" gorm:"type:varchar(64);"` // 创建者 - UpdateBy string `json:"updateBy" gorm:"type:varchar(64);"` // 更新者 - DataScope string `json:"dataScope" gorm:"-"` - Params string `json:"params" gorm:"-"` - BaseModel + gorm.Model + models.ControlBy + + Name string `json:"name" gorm:"type:varchar(255);comment:名称"` // + Img string `json:"img" gorm:"type:varchar(255);comment:图标"` // + Sort string `json:"sort" gorm:"type:int(4);comment:排序"` // + Status string `json:"status" gorm:"type:int(1);comment:状态"` // + Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"` // } func (SysCategory) TableName() string { - return "sys_category" + return "sys_category" } -// 创建SysCategory -func (e *SysCategory) Create() (SysCategory, error) { - var doc SysCategory - result := orm.Eloquent.Table(e.TableName()).Create(&e) - if result.Error != nil { - err := result.Error - return doc, err - } - doc = *e - return doc, nil +func (e *SysCategory) Generate() models.ActiveRecord { + o := *e + return &o } -// 获取SysCategory -func (e *SysCategory) Get() (SysCategory, error) { - var doc SysCategory - table := orm.Eloquent.Table(e.TableName()) - - if e.Id != 0 { - table = table.Where("id = ?", e.Id) - } - - if e.Name != "" { - table = table.Where("name = ?", e.Name) - } - - if e.Status != "" { - table = table.Where("status = ?", e.Status) - } - - if err := table.First(&doc).Error; err != nil { - return doc, err - } - return doc, nil -} - -// 获取SysCategory带分页 -func (e *SysCategory) GetPage(pageSize int, pageIndex int) ([]SysCategory, int, error) { - var doc []SysCategory - - table := orm.Eloquent.Table(e.TableName()) - - if e.Name != "" { - table = table.Where("name = ?", e.Name) - } - - if e.Status != "" { - table = table.Where("status = ?", e.Status) - } - - // 数据权限控制(如果不需要数据权限请将此处去掉) - dataPermission := new(DataPermission) - dataPermission.UserId, _ = tools.StringToInt(e.DataScope) - table, err := dataPermission.GetDataScope(e.TableName(), table) - if err != nil { - return nil, 0, err - } - var count int64 - - if err := table.Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil { - return nil, 0, err - } - //table.Where("`deleted_at` IS NULL").Count(&count) - return doc, int(count), nil -} - -// 更新SysCategory -func (e *SysCategory) Update(id int) (update SysCategory, err error) { - if err = orm.Eloquent.Table(e.TableName()).Where("id = ?", id).First(&update).Error; err != nil { - return - } - - //参数1:是要修改的数据 - //参数2:是修改的数据 - if err = orm.Eloquent.Table(e.TableName()).Model(&update).Updates(&e).Error; err != nil { - return - } - return -} - -// 删除SysCategory -func (e *SysCategory) Delete(id int) (success bool, err error) { - if err = orm.Eloquent.Table(e.TableName()).Where("id = ?", id).Delete(&SysCategory{}).Error; err != nil { - success = false - return - } - success = true - return -} - -//批量删除 -func (e *SysCategory) BatchDelete(id []int) (Result bool, err error) { - if err = orm.Eloquent.Table(e.TableName()).Where("id in (?)", id).Delete(&SysCategory{}).Error; err != nil { - return - } - Result = true - return +func (e *SysCategory) GetId() interface{} { + return e.ID } diff --git a/app/admin/router/router.go b/app/admin/router/router.go index 925a86e6..991e2dd8 100644 --- a/app/admin/router/router.go +++ b/app/admin/router/router.go @@ -51,7 +51,5 @@ func examplesCheckRoleRouter(r *gin.Engine, authMiddleware *jwtauth.GinJWTMiddle } // {{认证路由自动补充在此处请勿删除}} - registerSysContentRouter(v1, authMiddleware) - registerSysCategoryRouter(v1, authMiddleware) } diff --git a/app/admin/router/sys_category.go b/app/admin/router/sys_category.go new file mode 100644 index 00000000..3eaa0a8c --- /dev/null +++ b/app/admin/router/sys_category.go @@ -0,0 +1,31 @@ +package router + +import ( + "github.com/gin-gonic/gin" + + "go-admin/app/admin/middleware" + "go-admin/app/admin/models" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" + jwt "go-admin/pkg/jwtauth" +) + +func init() { + routerCheckRole = append(routerCheckRole, registerSysCategoryRouter) +} + +// 需认证的路由代码 +func registerSysCategoryRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { + r := v1.Group("/syscategory").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) + { + model := &models.SysCategory{} + r.GET("", actions.PermissionAction(), actions.IndexAction(model, new(dto.SysCategorySearch), func() interface{} { + list := make([]models.SysCategory, 0) + return &list + })) + r.GET("/:id", actions.PermissionAction(), actions.ViewAction(new(dto.SysCategoryById), nil)) + r.POST("", actions.CreateAction(new(dto.SysCategoryControl))) + r.PUT("/:id", actions.PermissionAction(), actions.UpdateAction(new(dto.SysCategoryControl))) + r.DELETE("", actions.PermissionAction(), actions.DeleteAction(new(dto.SysCategoryById))) + } +} diff --git a/app/admin/router/syscategory.go b/app/admin/router/syscategory.go deleted file mode 100644 index 187389b2..00000000 --- a/app/admin/router/syscategory.go +++ /dev/null @@ -1,26 +0,0 @@ -package router - -import ( - "github.com/gin-gonic/gin" - "go-admin/app/admin/apis/syscategory" - "go-admin/app/admin/middleware" - jwt "go-admin/pkg/jwtauth" -) - -// 需认证的路由代码 -func registerSysCategoryRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { - - r := v1.Group("/syscategory").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) - { - r.GET("/:id", syscategory.GetSysCategory) - r.POST("", syscategory.InsertSysCategory) - r.PUT("", syscategory.UpdateSysCategory) - r.DELETE("/:id", syscategory.DeleteSysCategory) - } - - l := v1.Group("").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) - { - l.GET("/syscategoryList", syscategory.GetSysCategoryList) - } - -} diff --git a/app/admin/router/syscontent.go b/app/admin/router/syscontent.go index f72488bb..12220e1e 100644 --- a/app/admin/router/syscontent.go +++ b/app/admin/router/syscontent.go @@ -7,6 +7,11 @@ import ( jwt "go-admin/pkg/jwtauth" ) + +func init() { + routerCheckRole = append(routerCheckRole, registerSysContentRouter) +} + // 需认证的路由代码 func registerSysContentRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { diff --git a/app/admin/service/dto/sys_category.go b/app/admin/service/dto/sys_category.go new file mode 100644 index 00000000..d5076098 --- /dev/null +++ b/app/admin/service/dto/sys_category.go @@ -0,0 +1,107 @@ +package dto + +import ( + "github.com/gin-gonic/gin" + "gorm.io/gorm" + + "go-admin/app/admin/models" + "go-admin/common/dto" + "go-admin/common/log" + common "go-admin/common/models" + "go-admin/tools" +) + +type SysCategorySearch struct { + dto.Pagination `search:"-"` + Name string `form:"name" search:"type:exact;column:name;table:sys_category" comment:"名称"` + + Status string `form:"status" search:"type:exact;column:status;table:sys_category" comment:"状态"` + + +} + +func (m *SysCategorySearch) GetNeedSearch() interface{} { + return *m +} + +func (m *SysCategorySearch) Bind(ctx *gin.Context) error { + msgID := tools.GenerateMsgIDFromContext(ctx) + err := ctx.ShouldBind(m) + if err != nil { + log.Debugf("MsgID[%s] ShouldBind error: %s", msgID, err.Error()) + } + return err +} + +func (m *SysCategorySearch) Generate() dto.Index { + o := *m + return &o +} + +type SysCategoryControl struct { + + ID uint `uri:"ID" comment:"标识"` // 标识 + + Name string `json:"name" comment:"名称"` + + + Img string `json:"img" comment:"图标"` + + + Sort string `json:"sort" comment:"排序"` + + + Status string `json:"status" comment:"状态"` + + + Remark string `json:"remark" comment:"备注"` + +} + +func (s *SysCategoryControl) Bind(ctx *gin.Context) error { + msgID := tools.GenerateMsgIDFromContext(ctx) + err := ctx.ShouldBindUri(s) + if err != nil { + log.Debugf("MsgID[%s] ShouldBindUri error: %s", msgID, err.Error()) + return err + } + err = ctx.ShouldBind(s) + if err != nil { + log.Debugf("MsgID[%s] ShouldBind error: %#v", msgID, err.Error()) + } + return err +} + +func (s *SysCategoryControl) Generate() dto.Control { + cp := *s + return &cp +} + +func (s *SysCategoryControl) GenerateM() (common.ActiveRecord, error) { + return &models.SysCategory{ + + Model: gorm.Model{ID: s.ID}, + Name: s.Name, + Img: s.Img, + Sort: s.Sort, + Status: s.Status, + Remark: s.Remark, + }, nil +} + +func (s *SysCategoryControl) GetId() interface{} { + return s.ID +} + +type SysCategoryById struct { + dto.ObjectById +} + +func (s *SysCategoryById) Generate() dto.Control { + cp := *s + return &cp +} + +func (s *SysCategoryById) GenerateM() (common.ActiveRecord, error) { + return &models.SysCategory{}, nil +} diff --git a/go-admin-ui/src/api/syscategory.js b/go-admin-ui/src/api/syscategory.js new file mode 100644 index 00000000..cde5aead --- /dev/null +++ b/go-admin-ui/src/api/syscategory.js @@ -0,0 +1,47 @@ +import request from '@/utils/request' + +// 查询SysCategory列表 +export function listSysCategory(query) { + return request({ + url: '/api/v1/cms', + method: 'get', + params: query + }) +} + +// 查询SysCategory详细 +export function getSysCategory (ID) { + return request({ + url: '/api/v1/cms/' + ID, + method: 'get' + }) +} + + +// 新增SysCategory +export function addSysCategory(data) { + return request({ + url: '/api/v1/cms', + method: 'post', + data: data + }) +} + +// 修改SysCategory +export function updateSysCategory(data) { + return request({ + url: '/api/v1/cms/'+data.ID, + method: 'put', + data: data + }) +} + +// 删除SysCategory +export function delSysCategory(data) { + return request({ + url: '/api/v1/cms', + method: 'delete', + data: data + }) +} + diff --git a/go-admin-ui/src/views/syscategory/index.vue b/go-admin-ui/src/views/syscategory/index.vue new file mode 100644 index 00000000..6860b271 --- /dev/null +++ b/go-admin-ui/src/views/syscategory/index.vue @@ -0,0 +1,329 @@ + + + +