version.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package service
  2. import (
  3. "context"
  4. "dsbqj-admin/app/task"
  5. "dsbqj-admin/model/mongo/version"
  6. "github.com/kamva/mgm/v3"
  7. "go.mongodb.org/mongo-driver/bson"
  8. "go.mongodb.org/mongo-driver/bson/primitive"
  9. )
  10. type VersionReloadService struct {
  11. }
  12. func (service *VersionReloadService) Reload() error {
  13. task.VersionTask.Exec()
  14. return nil
  15. }
  16. type VersionServerService struct {
  17. }
  18. func (service *VersionServerService) Servers() ([]*version.Version, error) {
  19. return task.VersionTask.Servers(), nil
  20. }
  21. type VersionCheckService struct {
  22. Version string `json:"version" binding:"required"`
  23. }
  24. func (service *VersionCheckService) Check() (*version.Version, error) {
  25. return task.VersionTask.Check(service.Version), nil
  26. }
  27. type VersionShowService struct {
  28. CondPage
  29. }
  30. func (service *VersionShowService) List() ([]version.Version, error) {
  31. versions := make([]version.Version, 0)
  32. err := mgm.Coll(&version.Version{}).SimpleFind(&versions, bson.M{})
  33. return versions, err
  34. }
  35. type VersionCreateService struct {
  36. Version string `json:"version" binding:"required"`
  37. Name string `json:"name" binding:"required"`
  38. CDN string `json:"cdn" binding:"required"`
  39. Url string `json:"url" binding:"required"`
  40. }
  41. func (service *VersionCreateService) Create() error {
  42. version := new(version.Version)
  43. version.Name = service.Name
  44. version.Version = service.Version
  45. version.CDN = service.CDN
  46. version.Url = service.Url
  47. return mgm.Coll(version).Create(version)
  48. }
  49. type VersionEditService struct {
  50. Id string `json:"id" binding:"required"`
  51. Version *string `json:"version"`
  52. Name *string `json:"name"`
  53. CDN *string `json:"cdn"`
  54. Url *string `json:"url"`
  55. Default *bool `json:"default"`
  56. }
  57. func (service *VersionEditService) Edit() error {
  58. version := new(version.Version)
  59. objectId, _ := primitive.ObjectIDFromHex(service.Id)
  60. filterDoc := bson.M{"_id": objectId}
  61. updateDoc := bson.M{}
  62. if service.Name != nil {
  63. updateDoc["name"] = service.Name
  64. }
  65. if service.Version != nil {
  66. updateDoc["version"] = service.Version
  67. }
  68. if service.CDN != nil {
  69. updateDoc["cdn"] = service.CDN
  70. }
  71. if service.Url != nil {
  72. updateDoc["url"] = service.Url
  73. }
  74. if service.Default != nil {
  75. updateDoc["default"] = service.Default
  76. }
  77. _, err := mgm.Coll(version).UpdateOne(context.Background(), filterDoc, bson.M{"$set": updateDoc})
  78. return err
  79. }
  80. type VersionDeleteService struct {
  81. Id string `json:"id" binding:"required"`
  82. }
  83. func (service *VersionDeleteService) Delete() error {
  84. version := new(version.Version)
  85. objectId, _ := primitive.ObjectIDFromHex(service.Id)
  86. filterDoc := bson.M{"_id": objectId}
  87. _, err := mgm.Coll(version).DeleteOne(context.Background(), filterDoc)
  88. return err
  89. }