107 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package dto
 | 
						|
 | 
						|
import (
 | 
						|
	vd "github.com/bytedance/go-tagexpr/v2/validator"
 | 
						|
	"net/http"
 | 
						|
 | 
						|
	"github.com/gin-gonic/gin"
 | 
						|
	"github.com/go-admin-team/go-admin-core/sdk/api"
 | 
						|
)
 | 
						|
 | 
						|
type ObjectById struct {
 | 
						|
	Id  int   `uri:"id"`
 | 
						|
	Ids []int `json:"ids"`
 | 
						|
}
 | 
						|
 | 
						|
func (s *ObjectById) Bind(ctx *gin.Context) error {
 | 
						|
	var err error
 | 
						|
	log := api.GetRequestLogger(ctx)
 | 
						|
	err = ctx.ShouldBindUri(s)
 | 
						|
	if err != nil {
 | 
						|
		log.Warnf("ShouldBindUri error: %s", err.Error())
 | 
						|
		return err
 | 
						|
	}
 | 
						|
	if ctx.Request.Method == http.MethodDelete {
 | 
						|
		err = ctx.ShouldBind(&s)
 | 
						|
		if err != nil {
 | 
						|
			log.Warnf("ShouldBind error: %s", err.Error())
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		if len(s.Ids) > 0 {
 | 
						|
			return nil
 | 
						|
		}
 | 
						|
		if s.Ids == nil {
 | 
						|
			s.Ids = make([]int, 0)
 | 
						|
		}
 | 
						|
		if s.Id != 0 {
 | 
						|
			s.Ids = append(s.Ids, s.Id)
 | 
						|
		}
 | 
						|
	}
 | 
						|
	if err = vd.Validate(s); err != nil {
 | 
						|
		log.Errorf("Validate error: %s", err.Error())
 | 
						|
		return err
 | 
						|
	}
 | 
						|
	return err
 | 
						|
}
 | 
						|
 | 
						|
func (s *ObjectById) GetId() interface{} {
 | 
						|
	if len(s.Ids) > 0 {
 | 
						|
		s.Ids = append(s.Ids, s.Id)
 | 
						|
		return s.Ids
 | 
						|
	}
 | 
						|
	return s.Id
 | 
						|
}
 | 
						|
 | 
						|
type ObjectGetReq struct {
 | 
						|
	Id int `uri:"id"`
 | 
						|
}
 | 
						|
 | 
						|
func (s *ObjectGetReq) Bind(ctx *gin.Context) error {
 | 
						|
	var err error
 | 
						|
	log := api.GetRequestLogger(ctx)
 | 
						|
	err = ctx.ShouldBindUri(s)
 | 
						|
	if err != nil {
 | 
						|
		log.Warnf("ShouldBindUri error: %s", err.Error())
 | 
						|
		return err
 | 
						|
	}
 | 
						|
	if err = vd.Validate(s); err != nil {
 | 
						|
		log.Errorf("Validate error: %s", err.Error())
 | 
						|
		return err
 | 
						|
	}
 | 
						|
	return err
 | 
						|
}
 | 
						|
 | 
						|
func (s *ObjectGetReq) GetId() interface{} {
 | 
						|
	return s.Id
 | 
						|
}
 | 
						|
 | 
						|
type ObjectDeleteReq struct {
 | 
						|
	Ids []int `json:"ids"`
 | 
						|
}
 | 
						|
 | 
						|
func (s *ObjectDeleteReq) Bind(ctx *gin.Context) error {
 | 
						|
	var err error
 | 
						|
	log := api.GetRequestLogger(ctx)
 | 
						|
	err = ctx.ShouldBind(&s)
 | 
						|
	if err != nil {
 | 
						|
		log.Warnf("ShouldBind error: %s", err.Error())
 | 
						|
		return err
 | 
						|
	}
 | 
						|
	if len(s.Ids) > 0 {
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
	if s.Ids == nil {
 | 
						|
		s.Ids = make([]int, 0)
 | 
						|
	}
 | 
						|
 | 
						|
	if err = vd.Validate(s); err != nil {
 | 
						|
		log.Errorf("Validate error: %s", err.Error())
 | 
						|
		return err
 | 
						|
	}
 | 
						|
	return err
 | 
						|
}
 | 
						|
 | 
						|
func (s *ObjectDeleteReq) GetId() interface{} {
 | 
						|
	return s.Ids
 | 
						|
}
 |