| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- package admin
- import (
- "app/commons/constant"
- "app/commons/model/entity"
- "app/commons/services"
- "github.com/gin-gonic/gin"
- )
- // CreateNodeBanner 创建节点Banner
- func (s *Server) CreateNodeBanner(ctx *gin.Context) {
- c := s.FromContext(ctx)
- type Request struct {
- Name string `json:"name" binding:"required"`
- Url string `json:"url" binding:"required"`
- Sort int `json:"sort"`
- Remark string `json:"remark"`
- }
- req := new(Request)
- if err := c.ShouldBindJSON(&req); err != nil {
- c.Fail(constant.ErrorParams)
- return
- }
- banner := &entity.NodeBanner{
- Name: req.Name,
- Url: req.Url,
- Sort: req.Sort,
- Remark: req.Remark,
- }
- if err := s.DB().Create(banner).Error; err != nil {
- c.Fail(err.Error())
- return
- }
- c.Resp(banner)
- }
- // UpdateNodeBanner 更新节点Banner
- func (s *Server) UpdateNodeBanner(ctx *gin.Context) {
- c := s.FromContext(ctx)
- type Request struct {
- Id int64 `json:"id" binding:"required"`
- Name *string `json:"name"`
- Url *string `json:"url"`
- Sort *int `json:"sort"`
- Remark *string `json:"remark"`
- }
- req := new(Request)
- if err := c.ShouldBindJSON(&req); err != nil {
- c.Fail(constant.ErrorParams)
- return
- }
- banner := &entity.NodeBanner{}
- if err := s.DB().First(banner, req.Id).Error; err != nil {
- c.Fail(constant.ErrorInfo)
- return
- }
- updates := make(map[string]interface{})
- if req.Name != nil {
- updates["name"] = *req.Name
- }
- if req.Url != nil {
- updates["url"] = *req.Url
- }
- if req.Sort != nil {
- updates["sort"] = *req.Sort
- }
- if req.Remark != nil {
- updates["remark"] = *req.Remark
- }
- if err := s.DB().Model(banner).Updates(updates).Error; err != nil {
- c.Fail(err.Error())
- return
- }
- c.Resp(banner)
- }
- // DeleteNodeBanner 删除节点Banner
- func (s *Server) DeleteNodeBanner(ctx *gin.Context) {
- c := s.FromContext(ctx)
- type Request struct {
- Id int64 `json:"id" binding:"required"`
- }
- req := new(Request)
- if err := c.ShouldBindJSON(&req); err != nil {
- c.Fail(constant.ErrorParams)
- return
- }
- if err := s.DB().Delete(&entity.NodeBanner{}, req.Id).Error; err != nil {
- c.Fail(err.Error())
- return
- }
- c.Resp(nil)
- }
- // GetNodeBanner 获取节点Banner详情
- func (s *Server) GetNodeBanner(ctx *gin.Context) {
- c := s.FromContext(ctx)
- type Request struct {
- Id int64 `json:"id" form:"id" binding:"required"`
- }
- req := new(Request)
- if err := c.ShouldBind(&req); err != nil {
- c.Fail(constant.ErrorParams)
- return
- }
- banner := &entity.NodeBanner{}
- if err := s.DB().First(banner, req.Id).Error; err != nil {
- c.Fail(constant.ErrorInfo)
- return
- }
- c.Resp(banner)
- }
- // FindNodeBanner 分页查询节点Banner
- func (s *Server) FindNodeBanner(ctx *gin.Context) {
- c := s.FromContext(ctx)
- type Request struct {
- services.Pagination
- Name string `json:"name" form:"name"`
- BeginTime int64 `json:"beginTime" form:"beginTime"`
- EndTime int64 `json:"endTime" form:"endTime"`
- Order string `json:"order" form:"order"`
- IsExport bool `json:"isExport" form:"isExport"`
- Fields string `json:"fields" form:"fields"`
- }
- req := new(Request)
- if err := c.ShouldBind(&req); err != nil {
- c.Fail(constant.ErrorParams)
- return
- }
- db := s.DB().Model(&entity.NodeBanner{})
- // 条件查询
- if req.Name != "" {
- db = db.Where("name LIKE ?", "%"+req.Name+"%")
- }
- if req.BeginTime > 0 {
- db = db.Where("created_at >= ?", req.BeginTime)
- }
- if req.EndTime > 0 {
- db = db.Where("created_at <= ?", req.EndTime)
- }
- // 排序
- if req.Order == "" {
- req.Order = "id desc"
- }
- db = db.Order(req.Order)
- // 分页查询
- list, err := s.PageNodeBanner(db, &req.Pagination)
- if err != nil {
- c.Fail(err.Error())
- return
- }
- // 可导出字段列表
- cols := []map[string]string{
- {"field": "id", "label": "ID"},
- {"field": "name", "label": "Banner名称"},
- {"field": "url", "label": "Banner URL"},
- {"field": "sort", "label": "排序"},
- {"field": "remark", "label": "备注"},
- {"field": "createdAt", "label": "创建时间"},
- }
- c.Resp(gin.H{
- "list": list,
- "pagination": req.Pagination,
- "cols": cols,
- })
- }
|