lampPoleGroupService.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package service
  2. import (
  3. "fmt"
  4. "iot_manager_service/app/device/dao"
  5. "iot_manager_service/app/device/model"
  6. "iot_manager_service/util"
  7. "strings"
  8. "time"
  9. )
  10. // 中间件管理服务
  11. var LampPoleGroupService = new(lampPoleGroupService)
  12. type lampPoleGroupService struct{}
  13. func (s *lampPoleGroupService) Get(id int) (*dao.LampPoleGroup, *util.Errors) {
  14. // 创建查询实例
  15. device := &dao.LampPoleGroup{
  16. ID: id,
  17. }
  18. err := device.GetDevice()
  19. if err != nil {
  20. return nil, util.FailResponse(err.Error(), nil)
  21. }
  22. return device, nil
  23. }
  24. func (s *lampPoleGroupService) CreateOrUpdate(req *dao.LampPoleGroup) *util.Errors {
  25. var build strings.Builder
  26. device := req
  27. if device.TenantId == "" {
  28. device.TenantId = "000000" // todo: 使用登录态
  29. }
  30. device.UpdateUser = "TODO" // todo: 使用登录态
  31. device.UpdateTime = time.Now()
  32. if req.ID == 0 {
  33. device.CreateTime = time.Now()
  34. device.CreateUser = "TODO" // todo: 使用登录态
  35. build.WriteString("新增(灯杆分组)【" + device.PoleGroupName + "】")
  36. if device.IsExistedByName() {
  37. fmt.Printf("Create IsExistedByName \n")
  38. return util.ParamsInvalidResponse(model.RepeatedName, nil)
  39. }
  40. if err := device.Create(); err != nil {
  41. fmt.Printf("Create err = %s \n", err.Error())
  42. build.WriteString("失败")
  43. OperationHisService.Save(model.OperationRemove, model.ModuleTypeDevice, build.String())
  44. return util.FailResponse(err.Error(), nil)
  45. }
  46. build.WriteString("成功")
  47. OperationHisService.Save(model.OperationRemove, model.ModuleTypeDevice, build.String())
  48. return util.SuccessResponse(util.Succeeded, nil)
  49. }
  50. if device.IsExistedByNameAndCode() {
  51. fmt.Printf("Update IsExistedByNameAndCode \n")
  52. return util.ParamsInvalidResponse(model.RepeatedName, nil)
  53. }
  54. build.WriteString("修改(灯杆分组)【" + device.PoleGroupName + "】")
  55. if err := device.Update(); err != nil {
  56. fmt.Printf("Update err = %s \n", err.Error())
  57. build.WriteString("失败")
  58. OperationHisService.Save(model.OperationRemove, model.ModuleTypeDevice, build.String())
  59. return util.FailResponse(err.Error(), nil)
  60. }
  61. build.WriteString("成功")
  62. OperationHisService.Save(model.OperationRemove, model.ModuleTypeDevice, build.String())
  63. //todo operation record
  64. return util.SuccessResponse(util.Succeeded, nil)
  65. }
  66. func (s *lampPoleGroupService) List(poleGroupName string, current, size int) ([]dao.LampPoleGroup, *util.Errors) {
  67. // 创建查询实例
  68. device := &dao.LampPoleGroup{
  69. PoleGroupName: poleGroupName,
  70. }
  71. offset := (current - 1) * size
  72. limit := size
  73. devices, err := device.GetDevices(offset, limit)
  74. if err != nil {
  75. return nil, util.FailResponse(err.Error(), nil)
  76. }
  77. return devices, nil
  78. }
  79. func (s *lampPoleGroupService) Remove(id int, name string) *util.Errors {
  80. var build strings.Builder
  81. device := &dao.LampPoleGroup{
  82. ID: id,
  83. IsDeleted: 1,
  84. UpdateUser: "TODO", // todo 使用登录态
  85. UpdateTime: time.Now(),
  86. }
  87. //todo
  88. // service.lampPoleService.CountRelation()
  89. build.WriteString("删除(灯杆分组)【" + name + "】")
  90. err := device.Delete()
  91. if err != nil {
  92. build.WriteString("失败")
  93. OperationHisService.Save(model.OperationRemove, model.ModuleTypeDevice, build.String())
  94. return util.FailResponse(err.Error(), nil)
  95. }
  96. build.WriteString("成功")
  97. OperationHisService.Save(model.OperationRemove, model.ModuleTypeDevice, build.String())
  98. return nil
  99. }
  100. func (s *lampPoleGroupService) GetList() ([]*dao.LampPoleGroup, *util.Errors) {
  101. var devices []*dao.LampPoleGroup
  102. err := util.Redis.Get(getLampPoleGroupListRedisKey("000000")).Scan(&devices)
  103. if err == nil {
  104. return devices, nil
  105. }
  106. device := &dao.LampPoleGroup{
  107. TenantId: "000000", // todo 使用登录态
  108. IsDeleted: 0,
  109. }
  110. devices, err = device.GetAllDevices()
  111. if err != nil {
  112. return nil, util.FailResponse(err.Error(), nil)
  113. }
  114. _ = util.Redis.Set(getLampPoleGroupListRedisKey("000000"), devices, 0).Err()
  115. return devices, nil
  116. }
  117. func getLampPoleGroupListRedisKey(tenantId string) string {
  118. return fmt.Sprintf(model.LampPoleGroupList, tenantId)
  119. }
  120. func (s *lampPoleGroupService) GetFiltration() ([]*dao.LampPoleGroup, *util.Errors) {
  121. var devices []*dao.LampPoleGroup
  122. err := util.Redis.Get(getGroupFiltrationListRedisKey("000000")).Scan(&devices)
  123. if err == nil {
  124. return devices, nil
  125. }
  126. device := &dao.LampPoleGroup{
  127. TenantId: "000000", // todo 使用登录态
  128. IsDeleted: 0,
  129. }
  130. //todo
  131. // get t_dev_light_control group_id
  132. // groupIds := lightControl.GetGroupIds()
  133. devices, err = device.GetAllDevices()
  134. if err != nil {
  135. return nil, util.FailResponse(err.Error(), nil)
  136. }
  137. _ = util.Redis.Set(getGroupFiltrationListRedisKey("000000"), devices, 0).Err()
  138. return devices, nil
  139. }
  140. func getGroupFiltrationListRedisKey(tenantId string) string {
  141. return fmt.Sprintf(model.GroupFiltrationList, tenantId)
  142. }
  143. func (s *lampPoleGroupService) GetTree() ([]*dao.LampPoleGroup, *util.Errors) {
  144. // todo use redis cache
  145. device := &dao.LampPoleGroup{
  146. TenantId: "000000", // todo 使用登录态
  147. IsDeleted: 0,
  148. }
  149. //todo lampPole getALlDevice
  150. devices, err := device.GetAllDevices()
  151. if err != nil {
  152. return nil, util.FailResponse(err.Error(), nil)
  153. }
  154. return devices, nil
  155. }