diff --git a/itbaima-monitor-server/src/main/java/com/example/controller/MonitorController.java b/itbaima-monitor-server/src/main/java/com/example/controller/MonitorController.java index 4b18229..4ba7f8b 100644 --- a/itbaima-monitor-server/src/main/java/com/example/controller/MonitorController.java +++ b/itbaima-monitor-server/src/main/java/com/example/controller/MonitorController.java @@ -1,12 +1,12 @@ package com.example.controller; import com.example.entity.RestBean; +import com.example.entity.vo.request.RenameClientVO; import com.example.entity.vo.response.ClientPreviewVO; import com.example.service.ClientService; import jakarta.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import jakarta.validation.Valid; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -21,4 +21,10 @@ public class MonitorController { public RestBean> listAllClient() { return RestBean.success(service.listClients()); } + + @PostMapping("/rename") + public RestBean renameClient(@RequestBody @Valid RenameClientVO vo) { + service.renameClient(vo); + return RestBean.success(); + } } diff --git a/itbaima-monitor-server/src/main/java/com/example/entity/vo/request/RenameClientVO.java b/itbaima-monitor-server/src/main/java/com/example/entity/vo/request/RenameClientVO.java new file mode 100644 index 0000000..c3cd59b --- /dev/null +++ b/itbaima-monitor-server/src/main/java/com/example/entity/vo/request/RenameClientVO.java @@ -0,0 +1,13 @@ +package com.example.entity.vo.request; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +@Data +public class RenameClientVO { + @NotNull + int id; + @Length(min = 1, max = 10) + String name; +} diff --git a/itbaima-monitor-server/src/main/java/com/example/service/ClientService.java b/itbaima-monitor-server/src/main/java/com/example/service/ClientService.java index 248ea9e..34dc7d7 100644 --- a/itbaima-monitor-server/src/main/java/com/example/service/ClientService.java +++ b/itbaima-monitor-server/src/main/java/com/example/service/ClientService.java @@ -3,6 +3,7 @@ package com.example.service; import com.baomidou.mybatisplus.extension.service.IService; import com.example.entity.dto.Client; import com.example.entity.vo.request.ClientDetailVO; +import com.example.entity.vo.request.RenameClientVO; import com.example.entity.vo.request.RuntimeDetailVO; import com.example.entity.vo.response.ClientPreviewVO; @@ -16,4 +17,5 @@ public interface ClientService extends IService { void updateClientDetail(ClientDetailVO vo, Client client); void updateRuntimeDetail(RuntimeDetailVO vo, Client client); List listClients(); + void renameClient(RenameClientVO vo); } diff --git a/itbaima-monitor-server/src/main/java/com/example/service/impl/ClientServiceImpl.java b/itbaima-monitor-server/src/main/java/com/example/service/impl/ClientServiceImpl.java index 8133051..c860bc7 100644 --- a/itbaima-monitor-server/src/main/java/com/example/service/impl/ClientServiceImpl.java +++ b/itbaima-monitor-server/src/main/java/com/example/service/impl/ClientServiceImpl.java @@ -1,9 +1,11 @@ package com.example.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.entity.dto.Client; import com.example.entity.dto.ClientDetail; import com.example.entity.vo.request.ClientDetailVO; +import com.example.entity.vo.request.RenameClientVO; import com.example.entity.vo.request.RuntimeDetailVO; import com.example.entity.vo.response.ClientPreviewVO; import com.example.mapper.ClientDetailMapper; @@ -81,11 +83,11 @@ public class ClientServiceImpl extends ServiceImpl impleme } } - private final Map lastRuntime = new HashMap<>(); + private final Map lastRuntime = new HashMap<>(); @Override public void updateRuntimeDetail(RuntimeDetailVO vo, Client client) { - RuntimeDetailVO oldData = lastRuntime.put(client, vo); + RuntimeDetailVO oldData = lastRuntime.put(client.getId(), vo); if(oldData != null) influx.writeRuntimeData(client.getId(), oldData); } @@ -95,7 +97,7 @@ public class ClientServiceImpl extends ServiceImpl impleme return clientIdCache.values().stream().map(client -> { ClientPreviewVO vo = client.asViewObject(ClientPreviewVO.class); BeanUtils.copyProperties(detailMapper.selectById(vo.getId()), vo); - RuntimeDetailVO runtime = lastRuntime.get(client); + RuntimeDetailVO runtime = lastRuntime.get(client.getId()); if(runtime != null && System.currentTimeMillis() - runtime.getTimestamp() < 60 * 1000) { BeanUtils.copyProperties(runtime, vo); vo.setOnline(true); @@ -104,6 +106,12 @@ public class ClientServiceImpl extends ServiceImpl impleme }).toList(); } + @Override + public void renameClient(RenameClientVO vo) { + this.update(Wrappers.update().eq("id", vo.getId()).set("name", vo.getName())); + this.initClientCache(); + } + private void addClientCache(Client client) { clientIdCache.put(client.getId(), client); clientTokenCache.put(client.getToken(), client); diff --git a/itbaima-monitor-web/src/component/PreviewCard.vue b/itbaima-monitor-web/src/component/PreviewCard.vue index 0ffd6af..d16c632 100644 --- a/itbaima-monitor-web/src/component/PreviewCard.vue +++ b/itbaima-monitor-web/src/component/PreviewCard.vue @@ -1,16 +1,34 @@