intelligentLightingService.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package service
  2. import (
  3. "iot_manager_service/app/device/dao"
  4. "iot_manager_service/app/device/model"
  5. "iot_manager_service/util"
  6. )
  7. var IntelligentLightingService = new(intelligentLightingService)
  8. type intelligentLightingService struct{}
  9. func (s *intelligentLightingService) GetDetailByLight(id int) (model.RspIntelligentLightDetail, *util.Errors) {
  10. detail := model.RspIntelligentLightDetail{}
  11. lightControl, _ := LightControlService.GetOne(id)
  12. if lightControl != nil {
  13. lightControl.LampPoleName = lightControl.LampPoleName + "(" + lightControl.LampPoleSN + ")"
  14. detail.LightControlList = []dao.LightControl{*lightControl}
  15. detail.LampPoleName = lightControl.LampPoleName
  16. }
  17. detail.LightRelMap = s.GetLightRelation(id, model.RelationTypeLight)
  18. return detail, nil
  19. }
  20. func (s *intelligentLightingService) GetDetailByGroup(id int) (model.RspIntelligentLightDetailByGroup, *util.Errors) {
  21. detail := model.RspIntelligentLightDetailByGroup{}
  22. lampPoleGroup, _ := LightControlService.GetByGroupId(id)
  23. if len(lampPoleGroup) > 0 {
  24. detail.LightControlList = lampPoleGroup
  25. detail.LampPoleGroupName = lampPoleGroup[0].LampPoleName
  26. }
  27. detail.CountLampPole = LampPoleService.CountLampPole(id)
  28. detail.LightRelMap = s.GetLightRelation(id, model.RelationTypeLampPoleGroup)
  29. return detail, nil
  30. }
  31. func (s *intelligentLightingService) GetLightRelation(id, relationType int) model.IntelligentLightSimple {
  32. detail := model.IntelligentLightSimple{}
  33. intelligentLight := dao.IntelligentLight{Rid: id, RelationType: relationType}
  34. relations, _ := intelligentLight.GetByRidAndType()
  35. if len(relations) > 0 {
  36. light, _ := LightControlService.Get(relations[0].LightID)
  37. if light != nil {
  38. detail.LightName = light.Name
  39. detail.LightSn = light.SN
  40. }
  41. }
  42. return detail
  43. }
  44. func (s *intelligentLightingService) BatchGet(ids []int) []dao.IntelligentLight {
  45. // 创建查询实例
  46. intelligent := &dao.IntelligentLight{}
  47. conditions, err := intelligent.BatchGet(ids)
  48. if err != nil {
  49. return nil
  50. }
  51. return conditions
  52. }