lampPoleController.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "iot_manager_service/app/device/dao"
  5. "iot_manager_service/app/device/model"
  6. "iot_manager_service/app/device/service"
  7. "iot_manager_service/util"
  8. "math"
  9. "net/http"
  10. "strconv"
  11. )
  12. // 灯杆基本信息管理对象
  13. var LampPole = new(lampPoleCtl)
  14. type lampPoleCtl struct{}
  15. func (c *lampPoleCtl) Detail(ctx *gin.Context) {
  16. id, e := strconv.Atoi(ctx.Query("id"))
  17. if e != nil {
  18. ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(e.Error(), nil))
  19. return
  20. }
  21. device, err := service.LampPoleService.Get(id)
  22. if err != nil {
  23. ctx.JSON(http.StatusOK, err)
  24. return
  25. }
  26. ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, device))
  27. }
  28. func (c *lampPoleCtl) CreateOrUpdate(ctx *gin.Context) {
  29. var req *dao.LampPole
  30. if err := ctx.ShouldBindJSON(&req); err != nil {
  31. ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(err.Error(), nil))
  32. return
  33. }
  34. err := service.LampPoleService.CreateOrUpdate(req)
  35. ctx.JSON(http.StatusOK, err)
  36. }
  37. func (c *lampPoleCtl) List(ctx *gin.Context) {
  38. searchValue := ctx.Query("searchValue")
  39. groupId := ctx.Query("groupId")
  40. boxId := ctx.Query("boxId")
  41. current, _ := strconv.Atoi(ctx.Query("current"))
  42. size, _ := strconv.Atoi(ctx.Query("size"))
  43. if current == 0 {
  44. current = 1
  45. }
  46. if size <= 0 || size > 100 {
  47. size = 10
  48. }
  49. devices, err := service.LampPoleService.List(searchValue, groupId, boxId, current, size)
  50. if err != nil {
  51. ctx.JSON(http.StatusOK, err)
  52. return
  53. }
  54. pages := math.Ceil(float64(len(devices)) / float64(size))
  55. rsp := model.RspLampPoleList{
  56. Current: current,
  57. Size: size,
  58. Total: len(devices),
  59. Pages: int(pages),
  60. }
  61. for _, device := range devices {
  62. rsp.Records = append(rsp.Records, lampPoleDaoToModel(device))
  63. }
  64. ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, rsp))
  65. }
  66. func (c *lampPoleCtl) GetRelevanceDetail(ctx *gin.Context) {
  67. id, e := strconv.Atoi(ctx.Query("id"))
  68. if e != nil {
  69. ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(e.Error(), nil))
  70. return
  71. }
  72. device, err := service.LampPoleService.GetRelevanceDetail(id)
  73. if err != nil {
  74. ctx.JSON(http.StatusOK, err)
  75. return
  76. }
  77. ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, device))
  78. }
  79. func (c *lampPoleCtl) Remove(ctx *gin.Context) {
  80. var req *model.ReqLampPoleRemove
  81. if err := ctx.ShouldBindJSON(&req); err != nil {
  82. ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(err.Error(), nil))
  83. return
  84. }
  85. err := service.LampPoleService.Remove(req.IDs)
  86. if err != nil {
  87. ctx.JSON(http.StatusOK, err)
  88. return
  89. }
  90. ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, nil))
  91. }
  92. func (c *lampPoleCtl) ImportExcel(ctx *gin.Context) {
  93. }
  94. func (c *lampPoleCtl) ExportExcel(ctx *gin.Context) {
  95. }
  96. func (c *lampPoleCtl) ExportTemplate(ctx *gin.Context) {
  97. }
  98. func (c *lampPoleCtl) GetList(ctx *gin.Context) {
  99. devices, err := service.LampPoleService.GetList()
  100. if err != nil {
  101. ctx.JSON(http.StatusOK, err)
  102. return
  103. }
  104. ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, devices))
  105. }
  106. func lampPoleDaoToModel(device dao.LampPole) model.LampPoleDetail {
  107. return model.LampPoleDetail{
  108. LampPole: device,
  109. AlarmTerminalList: nil,
  110. CameraList: nil,
  111. CaptureUnitList: nil,
  112. GatewayList: nil,
  113. InfoBoardList: nil,
  114. IpBroadcastList: nil,
  115. LightControlList: nil,
  116. SensorList: nil,
  117. ZigbeeList: nil,
  118. }
  119. }