DockerMetaService.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package com.zswl.dataservice.service.docker;
  2. import com.zswl.dataservice.dao.docker.DockerMetaDao;
  3. import com.zswl.dataservice.dao.docker.DockerMetaLastTimeDao;
  4. import com.zswl.dataservice.dataConfig.ResultMessage;
  5. import com.zswl.dataservice.domain.docker.DockerMeta;
  6. import com.zswl.dataservice.domain.docker.DockerMetaLastTime;
  7. import com.zswl.dataservice.domain.mqtt.DeviceInfo;
  8. import com.zswl.dataservice.model.docker.*;
  9. import com.zswl.dataservice.model.mqtt.DeviceInfoModel;
  10. import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
  11. import com.zswl.dataservice.service.base.SuperService;
  12. import com.zswl.dataservice.utils.bean.BeanUtils;
  13. import com.zswl.dataservice.utils.page.PageEntityUtil;
  14. import com.zswl.dataservice.utils.result.ResultContent;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.apache.commons.lang3.ObjectUtils;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.data.domain.Page;
  20. import org.springframework.data.domain.Pageable;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.util.Assert;
  23. import java.util.ArrayList;
  24. import java.util.List;
  25. /**
  26. * @author TRX
  27. * @date 2024/7/25
  28. */
  29. @Slf4j
  30. @Service
  31. public class DockerMetaService extends SuperService {
  32. @Autowired
  33. private DockerMetaDao dockerMetaDao;
  34. @Autowired
  35. private DockerMetaLastTimeDao dockerMetaLastTimeDao;
  36. /**
  37. * 添加docker元数据
  38. *
  39. * @param param
  40. * @return
  41. */
  42. public ResultContent addOrUpdate(DockerMetaParam param) {
  43. String groupCode = param.getGroupCode();
  44. Assert.hasText(param.getGroupCode(), "groupCode不能为空");
  45. Assert.hasText(param.getName(), "name不能为空");
  46. Assert.hasText(param.getImage(), "image不能为空");
  47. DockerMeta dockerMeta = new DockerMeta();
  48. DockerMeta temp = dockerMetaDao.findTopByGroupCodeAndName(groupCode, param.getName());
  49. if (StringUtils.isNotEmpty(param.getId())) {
  50. dockerMeta = dockerMetaDao.findTopById(param.getId());
  51. if (ObjectUtils.isEmpty(dockerMeta)) {
  52. return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
  53. }
  54. if (ObjectUtils.isNotEmpty(temp) && !temp.getId().equals(dockerMeta.getId())) {
  55. return ResultContent.buildFail(String.format(
  56. "分组【%s】下已存在名称【%s】", groupCode, param.getName()));
  57. }
  58. } else {
  59. if (ObjectUtils.isNotEmpty(temp)) {
  60. return ResultContent.buildFail(String.format(
  61. "分组【%s】下已存在名称【%s】", groupCode, param.getName()));
  62. }
  63. dockerMeta = new DockerMeta();
  64. param.setId(null);
  65. }
  66. BeanUtils.copyProperties(param, dockerMeta);
  67. dockerMetaDao.save(dockerMeta);
  68. updateLastTime(groupCode);
  69. return ResultContent.buildSuccess();
  70. }
  71. /**
  72. * 删除docker元数据
  73. *
  74. * @param id
  75. * @return
  76. */
  77. public ResultContent deleteMeta(String id) {
  78. DockerMeta dockerMeta = dockerMetaDao.findTopById(id);
  79. if (ObjectUtils.isEmpty(dockerMeta)) {
  80. return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
  81. }
  82. updateLastTime(dockerMeta.getGroupCode());
  83. dockerMetaDao.delete(dockerMeta);
  84. return ResultContent.buildSuccess();
  85. }
  86. /**
  87. * 得到详情
  88. *
  89. * @param id
  90. * @return
  91. */
  92. public ResultContent<DockerMetaModel> getDockerMeta(String id) {
  93. DockerMeta dockerMeta = dockerMetaDao.findTopById(id);
  94. if (ObjectUtils.isEmpty(dockerMeta)) {
  95. return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
  96. }
  97. DockerMetaModel model = toModel(dockerMeta);
  98. return ResultContent.buildSuccess(model);
  99. }
  100. public ResultContent<Page<DockerMetaModel>> page(Pageable pageable, DockerMetaSearch param) {
  101. Page<DockerMeta> page = dockerMetaDao.page(pageable, param);
  102. return ResultContent.buildSuccess(PageEntityUtil.toPageModel(page, this::toModel));
  103. }
  104. public ResultContent updateLastTime(String groupCode) {
  105. DockerMetaLastTime lastTime = dockerMetaLastTimeDao.findTopByGroupCode(groupCode);
  106. if (ObjectUtils.isEmpty(lastTime)) {
  107. lastTime = new DockerMetaLastTime();
  108. }
  109. lastTime.setLastTime(System.currentTimeMillis());
  110. dockerMetaLastTimeDao.save(lastTime);
  111. return ResultContent.buildSuccess();
  112. }
  113. public DockerMetaLastTimeModel getVersion() {
  114. DockerMetaLastTimeModel model = new DockerMetaLastTimeModel();
  115. String groupCode = getHeader("groupCode");
  116. DockerMetaLastTime lastTime = dockerMetaLastTimeDao.findTopByGroupCode(groupCode);
  117. if (ObjectUtils.isNotEmpty(lastTime)) {
  118. model.setUpdateTime(lastTime.getLastTime());
  119. }
  120. return model;
  121. }
  122. public List<DockerListModel> getList() {
  123. List<DockerListModel> list = new ArrayList<>();
  124. return list;
  125. }
  126. public DockerMetaModel toModel(DockerMeta entity) {
  127. DockerMetaModel model = null;
  128. if (ObjectUtils.isNotEmpty(entity)) {
  129. model = new DockerMetaModel();
  130. BeanUtils.copyProperties(entity, model);
  131. }
  132. return model;
  133. }
  134. }