tunnel.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package admin
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "server/dao"
  6. "server/model/common/request"
  7. "server/utils/logger"
  8. "server/utils/protocol"
  9. "strconv"
  10. )
  11. type TunnelService struct{}
  12. func (ts *TunnelService) QueryAllTunnels() ([]dao.Tunnel, error) {
  13. return dao.QueryAllTunnels()
  14. }
  15. func (ts *TunnelService) QueryTunnelList(info request.TunnelSearch) ([]dao.Tunnel, int64, error) {
  16. limit := info.PageInfo.PageSize
  17. offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
  18. return dao.QueryTunnelList(info.Name, info.RegionId, info.UserId, limit, offset)
  19. }
  20. func (ts *TunnelService) QueryNoRegionTunnels() ([]dao.Tunnel, error) {
  21. return dao.QueryNoRegionTunnels()
  22. }
  23. func (ts *TunnelService) CreateTunnel(tunnel dao.Tunnel) error {
  24. return tunnel.CreateTunnel()
  25. }
  26. func (ts *TunnelService) UpdateTunnel(tunnel dao.Tunnel) error {
  27. return tunnel.UpdateTunnel()
  28. }
  29. func (ts *TunnelService) UpdateTactics(sn string, tactics int) error {
  30. fmt.Println(sn, tactics)
  31. err := MqttService.Publish(MqttService.GetTopic(sn, protocol.TopicTunnelTactics), strconv.Itoa(tactics))
  32. if err != nil {
  33. return fmt.Errorf("error updating: %v", err)
  34. }
  35. return dao.UpdateTactics(sn, tactics)
  36. }
  37. func (ts *TunnelService) UpdateTunnelsRegion(tunnelIds []int, regionId int) error {
  38. return dao.UpdateTunnelsRegion(tunnelIds, regionId)
  39. }
  40. func (ts *TunnelService) UpdateTunnelTime(time dao.TunnelTime) error {
  41. // 使用json.Marshal函数将结构体转换为JSON字节切片
  42. jsonBytes, err := json.Marshal(time)
  43. if err != nil {
  44. logger.Get().Fatalf("Error marshalling to JSON: %v", err)
  45. }
  46. err = MqttService.Publish(MqttService.GetTopic(time.TunnelSn, protocol.TopicTunnelTiming), jsonBytes)
  47. if err != nil {
  48. return err
  49. }
  50. time.IsComplete = false
  51. return time.UpdateTunnelTime()
  52. }
  53. func (ts *TunnelService) TunnelTimeOk(sn string) error {
  54. return dao.TunnelTimeOk(sn)
  55. }
  56. func (ts *TunnelService) DeleteTunnel(id int) error {
  57. devices, err := dao.QueryDeviceByTunnelId(id)
  58. if err != nil {
  59. return err
  60. }
  61. if len(devices) > 0 {
  62. return fmt.Errorf("存在数据不能删除")
  63. }
  64. return dao.DeleteTunnel(id)
  65. }