seme_time.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package pasture
  2. import (
  3. "kpt-pasture/http/middleware"
  4. "net/http"
  5. "strconv"
  6. "gitee.com/xuyiping_admin/pkg/xerr"
  7. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  8. operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
  9. "gitee.com/xuyiping_admin/pkg/apierr"
  10. "gitee.com/xuyiping_admin/pkg/ginutil"
  11. "gitee.com/xuyiping_admin/pkg/valid"
  12. "github.com/gin-gonic/gin"
  13. )
  14. // SameTimeCreatedOrUpdate 同期策略添加或者更新
  15. func SameTimeCreatedOrUpdate(c *gin.Context) {
  16. var req pasturePb.SearchSameTimeList
  17. if err := ginutil.BindProto(c, &req); err != nil {
  18. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  19. return
  20. }
  21. if err := valid.ValidateStruct(&req,
  22. valid.Field(&req.Name, valid.Required),
  23. valid.Field(&req.CowType, valid.Required),
  24. valid.Field(&req.WeekType, valid.Required),
  25. valid.Field(&req.PostpartumDaysStart, valid.Required),
  26. valid.Field(&req.PostpartumDaysEnd, valid.Required),
  27. valid.Field(&req.CollateNodes, valid.Required),
  28. ); err != nil {
  29. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  30. return
  31. }
  32. if req.PostpartumDaysStart > req.PostpartumDaysEnd {
  33. apierr.AbortBadRequest(c, http.StatusBadRequest, xerr.New("开始天数不能大于结束天数"))
  34. return
  35. }
  36. if len(req.CollateNodes) < 0 {
  37. apierr.AbortBadRequest(c, http.StatusBadRequest, xerr.New("错误的同期策略数据"))
  38. return
  39. }
  40. if err := middleware.BackendOperation(c).OpsService.CreateOrUpdateSameTime(c, &req); err != nil {
  41. apierr.ClassifiedAbort(c, err)
  42. return
  43. }
  44. ginutil.JSONResp(c, &operationPb.CommonOK{
  45. Code: http.StatusOK,
  46. Msg: "ok",
  47. Data: &operationPb.Success{Success: true},
  48. })
  49. }
  50. // SameTimeList 同步策略列表
  51. func SameTimeList(c *gin.Context) {
  52. var req pasturePb.SearchNameRequest
  53. if err := ginutil.BindProto(c, &req); err != nil {
  54. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  55. return
  56. }
  57. pagination := &pasturePb.PaginationModel{
  58. Page: int32(c.GetInt(middleware.Page)),
  59. PageSize: int32(c.GetInt(middleware.PageSize)),
  60. PageOffset: int32(c.GetInt(middleware.PageOffset)),
  61. }
  62. res, err := middleware.BackendOperation(c).OpsService.SearchSameTimeList(c, &req, pagination)
  63. if err != nil {
  64. apierr.ClassifiedAbort(c, err)
  65. return
  66. }
  67. ginutil.JSONResp(c, res)
  68. }
  69. func SameTimeIsShow(c *gin.Context) {
  70. sameTimeIdStr := c.Param("id")
  71. sameTimeId, _ := strconv.Atoi(sameTimeIdStr)
  72. if err := valid.Validate(sameTimeId, valid.Required, valid.Min(1)); err != nil {
  73. apierr.ClassifiedAbort(c, err)
  74. return
  75. }
  76. if err := middleware.BackendOperation(c).OpsService.SameTimeIsShow(c, int64(sameTimeId)); err != nil {
  77. apierr.ClassifiedAbort(c, err)
  78. return
  79. }
  80. ginutil.JSONResp(c, &operationPb.CommonOK{
  81. Code: http.StatusOK,
  82. Msg: "ok",
  83. Data: &operationPb.Success{Success: true},
  84. })
  85. }
  86. func SystemBasicList(c *gin.Context) {
  87. res, err := middleware.BackendOperation(c).OpsService.SystemBasicList(c)
  88. if err != nil {
  89. apierr.ClassifiedAbort(c, err)
  90. return
  91. }
  92. ginutil.JSONResp(c, res)
  93. }
  94. func SystemBasicEdit(c *gin.Context) {
  95. var req pasturePb.BaseDataConfigBatch
  96. if err := ginutil.BindProto(c, &req); err != nil {
  97. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  98. return
  99. }
  100. if err := valid.ValidateStruct(&req,
  101. valid.Field(&req.Item, valid.Required, valid.Each(valid.By(func(value interface{}) error {
  102. s := value.(pasturePb.BaseDataConfig)
  103. return valid.ValidateStruct(&s,
  104. valid.Field(&s.Id, valid.Required),
  105. valid.Field(&s.Name, valid.Required),
  106. )
  107. }))),
  108. ); err != nil {
  109. apierr.AbortBadRequest(c, http.StatusBadRequest, err)
  110. return
  111. }
  112. err := middleware.BackendOperation(c).OpsService.SystemBasicEdit(c, &req)
  113. if err != nil {
  114. apierr.ClassifiedAbort(c, err)
  115. return
  116. }
  117. ginutil.JSONResp(c, &operationPb.CommonOK{
  118. Code: http.StatusOK,
  119. Msg: "ok",
  120. Data: &operationPb.Success{Success: true},
  121. })
  122. }