platform.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package service
  2. import (
  3. "context"
  4. "dsbqj-admin/model/mongo/platform"
  5. "errors"
  6. "github.com/kamva/mgm/v3"
  7. "go.mongodb.org/mongo-driver/bson"
  8. "go.mongodb.org/mongo-driver/bson/primitive"
  9. )
  10. type PlatformListService struct{}
  11. func (*PlatformListService) List() ([]platform.Platform, error) {
  12. var v []platform.Platform
  13. err := mgm.Coll(&platform.Platform{}).SimpleFind(&v, bson.M{})
  14. return v, err
  15. }
  16. type PlatformCreateService struct {
  17. Name string `json:"name" binding:"required"`
  18. Code string `json:"code" binding:"required"`
  19. Status *bool `json:"status"`
  20. }
  21. func (s *PlatformCreateService) Create() error {
  22. v := &platform.Platform{Name: s.Name, Code: s.Code, Status: true}
  23. if s.Status != nil {
  24. v.Status = *s.Status
  25. }
  26. return mgm.Coll(v).Create(v)
  27. }
  28. type PlatformUpdateService struct {
  29. ID string `json:"id" binding:"required"`
  30. Name *string `json:"name"`
  31. Code *string `json:"code"`
  32. Status *bool `json:"status"`
  33. }
  34. func (s *PlatformUpdateService) Update() error {
  35. id, err := primitive.ObjectIDFromHex(s.ID)
  36. if err != nil {
  37. return err
  38. }
  39. u := bson.M{}
  40. if s.Name != nil {
  41. u["name"] = *s.Name
  42. }
  43. if s.Code != nil {
  44. u["code"] = *s.Code
  45. }
  46. if s.Status != nil {
  47. u["status"] = *s.Status
  48. }
  49. if len(u) == 0 {
  50. return errors.New("没有需要更新的内容")
  51. }
  52. _, err = mgm.Coll(&platform.Platform{}).UpdateOne(context.Background(), bson.M{"_id": id}, bson.M{"$set": u})
  53. return err
  54. }
  55. type PlatformDeleteService struct {
  56. ID string `json:"id" binding:"required"`
  57. }
  58. func (s *PlatformDeleteService) Delete() error {
  59. id, err := primitive.ObjectIDFromHex(s.ID)
  60. if err != nil {
  61. return err
  62. }
  63. _, err = mgm.Coll(&platform.Platform{}).DeleteOne(context.Background(), bson.M{"_id": id})
  64. return err
  65. }