version.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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. Channel string `json:"channel" binding:"required"`
  18. }
  19. func (service *VersionServerService) Servers() ([]*version.Version, error) {
  20. return task.VersionTask.Servers(service.Channel), nil
  21. }
  22. type VersionCheckService struct {
  23. Version string `json:"version" binding:"required"`
  24. Channel string `json:"channel" binding:"required"`
  25. }
  26. func (service *VersionCheckService) Check() (*version.Version, error) {
  27. return task.VersionTask.Check(service.Version, service.Channel), nil
  28. }
  29. type VersionShowService struct {
  30. CondPage
  31. Channel string `form:"channel" json:"channel"`
  32. }
  33. func (service *VersionShowService) List() ([]version.Version, error) {
  34. versions := make([]version.Version, 0)
  35. var queryDoc = bson.M{}
  36. if service.Channel != "" {
  37. queryDoc["channel"] = service.Channel
  38. }
  39. err := mgm.Coll(&version.Version{}).SimpleFind(&versions, queryDoc)
  40. return versions, err
  41. }
  42. type VersionCreateService struct {
  43. Channel string `json:"channel" binding:"required"`
  44. Version string `json:"version" binding:"required"`
  45. Name string `json:"name" binding:"required"`
  46. CDN string `json:"cdn" binding:"required"`
  47. Url string `json:"url" binding:"required"`
  48. }
  49. func (service *VersionCreateService) Create() error {
  50. version := new(version.Version)
  51. version.Channel = service.Channel
  52. version.Name = service.Name
  53. version.Version = service.Version
  54. version.CDN = service.CDN
  55. version.Url = service.Url
  56. return mgm.Coll(version).Create(version)
  57. }
  58. type VersionEditService struct {
  59. Id string `json:"id" binding:"required"`
  60. Channel *string `json:"channel"`
  61. Version *string `json:"version"`
  62. Name *string `json:"name"`
  63. CDN *string `json:"cdn"`
  64. Url *string `json:"url"`
  65. Default *bool `json:"default"`
  66. }
  67. func (service *VersionEditService) Edit() error {
  68. version := new(version.Version)
  69. objectId, _ := primitive.ObjectIDFromHex(service.Id)
  70. filterDoc := bson.M{"_id": objectId}
  71. updateDoc := bson.M{}
  72. if service.Channel != nil {
  73. updateDoc["channel"] = service.Channel
  74. }
  75. if service.Name != nil {
  76. updateDoc["name"] = service.Name
  77. }
  78. if service.Version != nil {
  79. updateDoc["version"] = service.Version
  80. }
  81. if service.CDN != nil {
  82. updateDoc["cdn"] = service.CDN
  83. }
  84. if service.Url != nil {
  85. updateDoc["url"] = service.Url
  86. }
  87. if service.Default != nil {
  88. updateDoc["default"] = service.Default
  89. }
  90. _, err := mgm.Coll(version).UpdateOne(context.Background(), filterDoc, bson.M{"$set": updateDoc})
  91. return err
  92. }
  93. type VersionDeleteService struct {
  94. Id string `json:"id" binding:"required"`
  95. }
  96. func (service *VersionDeleteService) Delete() error {
  97. version := new(version.Version)
  98. objectId, _ := primitive.ObjectIDFromHex(service.Id)
  99. filterDoc := bson.M{"_id": objectId}
  100. _, err := mgm.Coll(version).DeleteOne(context.Background(), filterDoc)
  101. return err
  102. }