refactor(pc): 移除日志记录并优化数据查询

- 移除了多个控制器和服务类中的冗余日志记录
- 在查询数据时,不再通过 SQL左连接直接获取景点和设备名称,而是使用 Repository 单独查询
- 更新了 FaceSampleMapper、
This commit is contained in:
2025-09-04 15:57:18 +08:00
parent 480e40d78c
commit dbe0447987
8 changed files with 66 additions and 26 deletions

View File

@@ -92,7 +92,6 @@ public class DeviceV2Controller {
*/
@GetMapping("/{id}")
public ApiResponse<DeviceV2DTO> getDevice(@PathVariable Long id) {
log.info("获取设备信息, id: {}", id);
try {
DeviceV2DTO device = deviceIntegrationService.getDevice(id);
return ApiResponse.success(device);
@@ -107,7 +106,6 @@ public class DeviceV2Controller {
*/
@GetMapping("/{id}/with-config")
public ApiResponse<DeviceV2WithConfigDTO> getDeviceWithConfig(@PathVariable Long id) {
log.info("获取设备配置信息, id: {}", id);
try {
DeviceV2WithConfigDTO device = deviceIntegrationService.getDeviceWithConfig(id);
return ApiResponse.success(device);
@@ -122,7 +120,6 @@ public class DeviceV2Controller {
*/
@GetMapping("/no/{no}")
public ApiResponse<DeviceV2DTO> getDeviceByNo(@PathVariable String no) {
log.info("根据设备编号获取设备信息, no: {}", no);
try {
DeviceV2DTO device = deviceIntegrationService.getDeviceByNo(no);
return ApiResponse.success(device);
@@ -137,7 +134,6 @@ public class DeviceV2Controller {
*/
@GetMapping("/no/{no}/with-config")
public ApiResponse<DeviceV2WithConfigDTO> getDeviceWithConfigByNo(@PathVariable String no) {
log.info("根据设备编号获取设备配置信息, no: {}", no);
try {
DeviceV2WithConfigDTO device = deviceIntegrationService.getDeviceWithConfigByNo(no);
return ApiResponse.success(device);
@@ -296,7 +292,6 @@ public class DeviceV2Controller {
*/
@GetMapping("/{id}/config")
public ApiResponse<List<DeviceConfigV2DTO>> getDeviceConfigs(@PathVariable Long id) {
log.info("获取设备配置列表, deviceId: {}", id);
try {
List<DeviceConfigV2DTO> configs = deviceConfigIntegrationService.getDeviceConfigs(id);
return ApiResponse.success(configs);
@@ -311,7 +306,6 @@ public class DeviceV2Controller {
*/
@GetMapping("/{id}/flat-config")
public ApiResponse<Map<String, Object>> getDeviceFlatConfig(@PathVariable Long id) {
log.info("获取设备扁平化配置, deviceId: {}", id);
try {
Map<String, Object> config = deviceConfigIntegrationService.getDeviceFlatConfig(id);
return ApiResponse.success(config);
@@ -327,7 +321,6 @@ public class DeviceV2Controller {
@GetMapping("/{id}/config/{configKey}")
public ApiResponse<DeviceConfigV2DTO> getDeviceConfigByKey(@PathVariable Long id,
@PathVariable String configKey) {
log.info("根据键获取设备配置, deviceId: {}, configKey: {}", id, configKey);
try {
DeviceConfigV2DTO config = deviceConfigIntegrationService.getDeviceConfigByKey(id, configKey);
return ApiResponse.success(config);

View File

@@ -24,7 +24,6 @@ public class DeviceConfigIntegrationService {
private static final String SERVICE_NAME = "zt-device";
public List<DeviceConfigV2DTO> getDeviceConfigs(Long deviceId) {
log.info("获取设备配置列表, deviceId: {}", deviceId);
CommonResponse<List<DeviceConfigV2DTO>> response = deviceConfigV2Client.getDeviceConfigs(deviceId);
return handleResponse(response, "获取设备配置列表失败");
}
@@ -36,13 +35,11 @@ public class DeviceConfigIntegrationService {
}
public DeviceConfigV2DTO getDeviceConfigByKey(Long deviceId, String configKey) {
log.info("根据键获取设备配置, deviceId: {}, configKey: {}", deviceId, configKey);
CommonResponse<DeviceConfigV2DTO> response = deviceConfigV2Client.getDeviceConfigByKey(deviceId, configKey);
return handleResponse(response, "根据键获取设备配置失败");
}
public Map<String, Object> getDeviceFlatConfig(Long deviceId) {
log.info("获取设备扁平化配置, deviceId: {}", deviceId);
return fallbackService.executeWithFallback(
SERVICE_NAME,
"device:flat:config:" + deviceId,

View File

@@ -2,8 +2,12 @@ package com.ycwl.basic.service.pc.impl;
import cn.hutool.core.date.DateUtil;
import com.ycwl.basic.mapper.ScenicDeviceStatsMapper;
import com.ycwl.basic.model.pc.device.entity.DeviceEntity;
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
import com.ycwl.basic.model.pc.scenicDeviceStats.resp.ScenicDeviceStatsListResp;
import com.ycwl.basic.model.pc.scenicDeviceStats.resp.ScenicDeviceStatsResp;
import com.ycwl.basic.repository.DeviceRepository;
import com.ycwl.basic.repository.ScenicRepository;
import com.ycwl.basic.service.pc.DeviceStatsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -17,6 +21,10 @@ import java.util.List;
public class DeviceStatsServiceImpl implements DeviceStatsService {
@Autowired
private ScenicDeviceStatsMapper mapper;
@Autowired
private ScenicRepository scenicRepository;
@Autowired
private DeviceRepository deviceRepository;
@Override
public ScenicDeviceStatsListResp queryByScenicId(Long scenicId, Date start, Date end) {
@@ -30,10 +38,30 @@ public class DeviceStatsServiceImpl implements DeviceStatsService {
if (DateUtil.isIn(start, DateUtil.tomorrow(), DateUtil.yesterday()) && DateUtil.isIn(end, DateUtil.tomorrow(), DateUtil.yesterday())) {
resp.setRealtime(true);
List<ScenicDeviceStatsResp> data = mapper.countRealtimeStatsByScenicId(scenicId, start, end);
data.forEach(item -> {
ScenicEntity scenic = scenicRepository.getScenic(item.getScenicId());
if (scenic != null) {
item.setScenicName(scenic.getName());
}
DeviceEntity device = deviceRepository.getDevice(item.getDeviceId());
if (device != null) {
item.setDeviceName(device.getName());
}
});
resp.setData(data);
} else {
resp.setRealtime(false);
List<ScenicDeviceStatsResp> data = mapper.countCachedStatsByScenicId(scenicId, start, end);
data.forEach(item -> {
ScenicEntity scenic = scenicRepository.getScenic(item.getScenicId());
if (scenic != null) {
item.setScenicName(scenic.getName());
}
DeviceEntity device = deviceRepository.getDevice(item.getDeviceId());
if (device != null) {
item.setDeviceName(device.getName());
}
});
resp.setData(data);
}
resp.getData().stream()

View File

@@ -3,9 +3,13 @@ package com.ycwl.basic.service.pc.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.mapper.FaceSampleMapper;
import com.ycwl.basic.model.pc.device.entity.DeviceEntity;
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
import com.ycwl.basic.model.pc.faceSample.req.FaceSampleReqQuery;
import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
import com.ycwl.basic.repository.DeviceRepository;
import com.ycwl.basic.repository.ScenicRepository;
import com.ycwl.basic.service.pc.FaceSampleService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.SnowFlakeUtil;
@@ -22,11 +26,25 @@ import java.util.List;
public class FaceSampleServiceImpl implements FaceSampleService {
@Autowired
private FaceSampleMapper faceSampleMapper;
@Autowired
private ScenicRepository scenicRepository;
@Autowired
private DeviceRepository deviceRepository;
@Override
public ApiResponse<PageInfo<FaceSampleRespVO>> pageQuery(FaceSampleReqQuery faceSampleReqQuery) {
PageHelper.startPage(faceSampleReqQuery.getPageNum(),faceSampleReqQuery.getPageSize());
List<FaceSampleRespVO> list = faceSampleMapper.list(faceSampleReqQuery);
list.forEach(item -> {
ScenicEntity scenic = scenicRepository.getScenic(item.getScenicId());
if (scenic != null) {
item.setScenicName(scenic.getName());
}
DeviceEntity device = deviceRepository.getDevice(item.getDeviceId());
if (device != null) {
item.setDeviceName(device.getName());
}
});
PageInfo<FaceSampleRespVO> pageInfo = new PageInfo<>(list);
return ApiResponse.success(pageInfo);
}

View File

@@ -4,9 +4,13 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.exception.BaseException;
import com.ycwl.basic.mapper.SourceMapper;
import com.ycwl.basic.model.pc.device.entity.DeviceEntity;
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
import com.ycwl.basic.repository.DeviceRepository;
import com.ycwl.basic.repository.ScenicRepository;
import com.ycwl.basic.repository.SourceRepository;
import com.ycwl.basic.service.pc.ScenicService;
import com.ycwl.basic.service.pc.SourceService;
@@ -39,12 +43,24 @@ public class SourceServiceImpl implements SourceService {
private SourceRepository sourceRepository;
@Autowired
private ScenicService scenicService;
@Autowired
private ScenicRepository scenicRepository;
@Autowired
private DeviceRepository deviceRepository;
@Override
public ApiResponse<PageInfo<SourceRespVO>> pageQuery(SourceReqQuery sourceReqQuery) {
PageHelper.startPage(sourceReqQuery.getPageNum(), sourceReqQuery.getPageSize());
List<SourceRespVO> list = sourceMapper.list(sourceReqQuery);
list.forEach(sourceRespVO -> {
ScenicEntity scenic = scenicRepository.getScenic(sourceRespVO.getScenicId());
if (scenic != null) {
sourceRespVO.setScenicName(scenic.getName());
}
DeviceEntity device = deviceRepository.getDevice(sourceRespVO.getDeviceId());
if (device != null) {
sourceRespVO.setDeviceName(device.getName());
}
if (sourceRespVO.getVideoUrl() != null) {
try {
URL url = new URL(sourceRespVO.getVideoUrl());