gatewayRelationService.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package service
  2. import (
  3. "fmt"
  4. "iot_manager_service/app/dao"
  5. "iot_manager_service/app/model"
  6. "iot_manager_service/app/utils"
  7. "time"
  8. )
  9. // 中间件管理服务
  10. var GatewayRelationService = new(gatewayRelationService)
  11. type gatewayRelationService struct{}
  12. func (s *gatewayRelationService) Get(id int) (*dao.GatewayRelation, *utils.Errors) {
  13. // 创建查询实例
  14. relation := &dao.GatewayRelation{
  15. ID: id,
  16. }
  17. err := relation.Get()
  18. if err != nil {
  19. return nil, utils.FailResponse(err.Error(), nil)
  20. }
  21. return relation, nil
  22. }
  23. func (s *gatewayRelationService) Create(req *model.GatewayDetail) *utils.Errors {
  24. device := req.Gateway
  25. if device.TenantId == "" {
  26. device.TenantId = "000000" // todo: 使用登录态
  27. }
  28. device.UpdateUser = "TODO" // todo: 使用登录态
  29. device.UpdateTime = time.Now()
  30. if device.LampPoleId != 0 {
  31. lampPole, err := LampPoleService.GetOne(device.LampPoleId)
  32. if err == nil {
  33. device.LampLat = lampPole.PoleLat
  34. device.LampLng = lampPole.PoleLng
  35. device.LampPoleName = lampPole.PoleName
  36. device.LampPoleSn = lampPole.PoleSN
  37. device.LampPoleLocation = lampPole.InstallLocation
  38. } else {
  39. fmt.Printf("LampPoleService.GetOne err = %v \n", err)
  40. }
  41. }
  42. if device.ID == 0 {
  43. device.CreateTime = time.Now()
  44. device.CreateUser = "TODO" // todo: 使用登录态
  45. if device.IsExistedBySN() {
  46. fmt.Printf("Create IsExistedBySN \n")
  47. return utils.ParamsInvalidResponse(model.RepeatedPrompts, nil)
  48. }
  49. fmt.Printf("device = %+v \n", device)
  50. if err := device.Create(); err != nil {
  51. fmt.Printf("Create err = %s \n", err.Error())
  52. return utils.FailResponse(err.Error(), nil)
  53. }
  54. return utils.SuccessResponse(utils.Succeeded, nil)
  55. }
  56. if err := device.Update(); err != nil {
  57. fmt.Printf("Update err = %s \n", err.Error())
  58. return utils.FailResponse(err.Error(), nil)
  59. }
  60. //todo operation record
  61. return utils.SuccessResponse(utils.Succeeded, nil)
  62. }
  63. func (s *gatewayRelationService) Update(req *model.GatewayDetail) *utils.Errors {
  64. device := req.Gateway
  65. if device.TenantId == "" {
  66. device.TenantId = "000000" // todo: 使用登录态
  67. }
  68. device.UpdateUser = "TODO" // todo: 使用登录态
  69. device.UpdateTime = time.Now()
  70. if device.LampPoleId != 0 {
  71. lampPole, err := LampPoleService.GetOne(device.LampPoleId)
  72. if err == nil {
  73. device.LampLat = lampPole.PoleLat
  74. device.LampLng = lampPole.PoleLng
  75. device.LampPoleName = lampPole.PoleName
  76. device.LampPoleSn = lampPole.PoleSN
  77. device.LampPoleLocation = lampPole.InstallLocation
  78. } else {
  79. fmt.Printf("LampPoleService.GetOne err = %v \n", err)
  80. }
  81. }
  82. if device.ID == 0 {
  83. device.CreateTime = time.Now()
  84. device.CreateUser = "TODO" // todo: 使用登录态
  85. if device.IsExistedBySN() {
  86. fmt.Printf("Create IsExistedBySN \n")
  87. return utils.ParamsInvalidResponse(model.RepeatedPrompts, nil)
  88. }
  89. fmt.Printf("device = %+v \n", device)
  90. if err := device.Create(); err != nil {
  91. fmt.Printf("Create err = %s \n", err.Error())
  92. return utils.FailResponse(err.Error(), nil)
  93. }
  94. return utils.SuccessResponse(utils.Succeeded, nil)
  95. }
  96. if err := device.Update(); err != nil {
  97. fmt.Printf("Update err = %s \n", err.Error())
  98. return utils.FailResponse(err.Error(), nil)
  99. }
  100. //todo operation record
  101. return utils.SuccessResponse(utils.Succeeded, nil)
  102. }
  103. func (s *gatewayRelationService) Remove(id int) *utils.Errors {
  104. // 创建查询实例
  105. device := &dao.Gateway{
  106. ID: id,
  107. IsDeleted: 1,
  108. UpdateUser: "TODO", // todo 使用登录态
  109. UpdateTime: time.Now(),
  110. }
  111. //todo
  112. // service.gatewayService.CountRelation()
  113. //todo operation record
  114. err := device.Delete()
  115. if err != nil {
  116. return utils.FailResponse(err.Error(), nil)
  117. }
  118. return nil
  119. }