TunnelInfoServiceImpl.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.jiayue.biz.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import com.jiayue.biz.conf.Channel;
  4. import com.jiayue.biz.domain.TunnelInfo;
  5. import com.jiayue.biz.mapper.TunnelInfoMapper;
  6. import com.jiayue.biz.service.TunnelInfoService;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.context.annotation.Lazy;
  9. import org.springframework.stereotype.Service;
  10. import java.util.ArrayList;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * 通道信息
  16. */
  17. @Service
  18. public class TunnelInfoServiceImpl extends ServiceImpl<TunnelInfoMapper, TunnelInfo> implements TunnelInfoService {
  19. @Lazy
  20. @Autowired
  21. Channel channel;
  22. /*首页通道信息*/
  23. public List<Map<String, Object>> homepageTunnelInfo() {
  24. List<Map<String, Object>> list = new ArrayList<>();
  25. try {
  26. List<TunnelInfo> tunnelInfoList = this.list();
  27. for (TunnelInfo tunnelInfo : tunnelInfoList) {
  28. Map<String, Object> map = new HashMap<>();
  29. map.put("tunnelName", tunnelInfo.getTunnelName());
  30. map.put("address", tunnelInfo.getIp() + ":" + tunnelInfo.getPort());
  31. map.put("status", tunnelInfo.getStatus());
  32. list.add(map);
  33. }
  34. } catch (Exception e) {
  35. e.printStackTrace();
  36. }
  37. return list;
  38. }
  39. /**
  40. * 添加
  41. *
  42. * @param tunnelInfo 通道信息
  43. * @return true/false
  44. */
  45. public boolean addTunnelForMasterMap(TunnelInfo tunnelInfo) {
  46. // channel.addMasterMap(tunnelInfo);
  47. return this.save(tunnelInfo);
  48. }
  49. /**
  50. * 修改
  51. *
  52. * @param tunnelInfo 通道信息
  53. * @return true/false
  54. */
  55. public boolean updateTunnelForMasterMap(TunnelInfo tunnelInfo) {
  56. List<TunnelInfo> tunnelInfoList = this.lambdaQuery().eq(TunnelInfo::getId, tunnelInfo.getId()).list();
  57. if (!tunnelInfoList.get(0).getIp().equals(tunnelInfo.getIp()) || tunnelInfoList.get(0).getPort() != tunnelInfo.getPort()) {
  58. channel.stop(tunnelInfo.getId());
  59. channel.addMasterMap(tunnelInfo);
  60. }
  61. return this.updateById(tunnelInfo);
  62. }
  63. /**
  64. * 删除
  65. *
  66. * @param id id
  67. * @return true/false
  68. */
  69. public boolean deleteTunnelForMasterMap(String id) {
  70. channel.stop(id);
  71. return this.removeById(id);
  72. }
  73. }