scene_history.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package controllers
  2. import (
  3. "github.com/gogf/gf/util/guid"
  4. "github.com/kataras/iris/v12"
  5. "sparrow/pkg/models"
  6. "sparrow/services/knowoapi/services"
  7. )
  8. // SceneHistoryRequest scene-service saveHis 请求体
  9. type SceneHistoryRequest struct {
  10. SceneId string `json:"scene_id"`
  11. ConditionId string `json:"condition_id"`
  12. ActionId string `json:"action_id"`
  13. }
  14. // SceneHistoryHandler 场景历史内部接口处理器
  15. // 供 scene-service 通过 HTTP POST 调用,无需JWT认证
  16. type SceneHistoryHandler struct {
  17. Ctx iris.Context
  18. Service services.SceneHisService
  19. }
  20. // Post 保存场景执行历史
  21. // POST /iot/v1/scene_history
  22. func (a *SceneHistoryHandler) Post() {
  23. req := new(SceneHistoryRequest)
  24. if err := a.Ctx.ReadJSON(req); err != nil {
  25. fail(a.Ctx, iris.StatusBadRequest, "请求参数错误:%s", err.Error())
  26. return
  27. }
  28. if req.SceneId == "" {
  29. fail(a.Ctx, iris.StatusBadRequest, "scene_id不能为空")
  30. return
  31. }
  32. sceneHis := &models.SceneHis{
  33. RecordId: guid.S(),
  34. SceneID: req.SceneId,
  35. ConditionId: req.ConditionId,
  36. ActionId: req.ActionId,
  37. }
  38. err := a.Service.Create(sceneHis)
  39. if err != nil {
  40. responseError(a.Ctx, ErrDatabase, err.Error())
  41. return
  42. }
  43. done(a.Ctx, sceneHis)
  44. }