package service import ( "context" "dsbqj-admin/model/mongo/platform" "errors" "github.com/kamva/mgm/v3" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" ) type PlatformListService struct{} func (*PlatformListService) List() ([]platform.Platform, error) { var v []platform.Platform err := mgm.Coll(&platform.Platform{}).SimpleFind(&v, bson.M{}) return v, err } type PlatformCreateService struct { Name string `json:"name" binding:"required"` Code string `json:"code" binding:"required"` Status *bool `json:"status"` } func (s *PlatformCreateService) Create() error { v := &platform.Platform{Name: s.Name, Code: s.Code, Status: true} if s.Status != nil { v.Status = *s.Status } return mgm.Coll(v).Create(v) } type PlatformUpdateService struct { ID string `json:"id" binding:"required"` Name *string `json:"name"` Code *string `json:"code"` Status *bool `json:"status"` } func (s *PlatformUpdateService) Update() error { id, err := primitive.ObjectIDFromHex(s.ID) if err != nil { return err } u := bson.M{} if s.Name != nil { u["name"] = *s.Name } if s.Code != nil { u["code"] = *s.Code } if s.Status != nil { u["status"] = *s.Status } if len(u) == 0 { return errors.New("没有需要更新的内容") } _, err = mgm.Coll(&platform.Platform{}).UpdateOne(context.Background(), bson.M{"_id": id}, bson.M{"$set": u}) return err } type PlatformDeleteService struct { ID string `json:"id" binding:"required"` } func (s *PlatformDeleteService) Delete() error { id, err := primitive.ObjectIDFromHex(s.ID) if err != nil { return err } _, err = mgm.Coll(&platform.Platform{}).DeleteOne(context.Background(), bson.M{"_id": id}) return err }