Files
bl/modules/config/service/map_model.go

82 lines
1.7 KiB
Go
Raw Normal View History

package service
import (
"blazing/cool"
"blazing/modules/config/model"
"context"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/util/gconv"
)
type MapmodelService struct {
*cool.Service
}
func NewMapmodelService() *MapmodelService {
return &MapmodelService{
&cool.Service{
Model: model.NewMapModel(),
PageQueryOp: &cool.QueryOp{
KeyWordField: []string{"remake"},
FieldEQ: []string{"map_id"},
},
},
}
}
func (s *MapmodelService) appendShinyFilter(item map[string]interface{}) map[string]interface{} {
if item == nil {
return item
}
shinyID := gconv.Int(item["shiny"])
if shinyID <= 0 {
shinyID = gconv.Int(item["shinyid"])
}
if shinyID <= 0 {
item["shiny_filter"] = nil
return item
}
item["shiny_filter"] = NewShinyService().GetShiny(shinyID)
return item
}
func (s *MapmodelService) ServiceInfo(ctx context.Context, req *cool.InfoReq) (data interface{}, err error) {
result, err := s.Service.ServiceInfo(ctx, req)
if err != nil || result == nil {
return result, err
}
record, ok := result.(gdb.Record)
if !ok || record.IsEmpty() {
return result, err
}
return s.appendShinyFilter(record.Map()), nil
}
func (s *MapmodelService) ServiceList(ctx context.Context, req *cool.ListReq) (data interface{}, err error) {
result, err := s.Service.ServiceList(ctx, req)
if err != nil || result == nil {
return result, err
}
rows, ok := result.(gdb.Result)
if !ok {
return result, err
}
list := make([]map[string]interface{}, 0, len(rows))
for _, row := range rows {
list = append(list, s.appendShinyFilter(row.Map()))
}
return list, nil
}
func (s *MapmodelService) GetDataByModelId(modelid uint32) (ret *model.MapModel) {
dbm_notenable(s.Model).Where("model_id", modelid).Scan(&ret)
return
}