diff --git a/src/main/java/com/objecteye/common/GeneralContent.java b/src/main/java/com/objecteye/common/GeneralContent.java index 01a6215..3161d5b 100644 --- a/src/main/java/com/objecteye/common/GeneralContent.java +++ b/src/main/java/com/objecteye/common/GeneralContent.java @@ -33,6 +33,8 @@ public class GeneralContent { */ public final static Map DOCKER_SH_OUT_MAP = new HashMap<>(); + public final static Map DOCKER_CONFIG_PARAMS_MAP = new HashMap<>(); + static { MODULE_MAP.put("arp_cache", "/shell_files/arp_cache.sh"); MODULE_MAP.put("bandwidth", "/shell_files/bandwidth.sh"); @@ -80,5 +82,19 @@ public class GeneralContent { DOCKER_SH_OUT_MAP.put("9", "容器不存在"); DOCKER_SH_OUT_MAP.put("10", "端口已经被占用"); DOCKER_SH_OUT_MAP.put("11", "未知错误"); + + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_car_win_detect_config", "车窗检测"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_recg_config", "车型识别"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_plate_det_recg_config", "车牌检测识别"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_color_config", "车辆颜色识别"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_pendant_det_config", "车辆属性识别"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_illegal_config", "车违规行为检测"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_feature_config", "车辆特征提取"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_special_config", "特殊品类车型识别"); + DOCKER_CONFIG_PARAMS_MAP.put("gpuId", "显卡号"); + DOCKER_CONFIG_PARAMS_MAP.put("log", "日志"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_image_quality_config", "车辆图像清晰度识别"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_motor_tricycle_analysis_config", "摩托车是否载人/摩托车驾驶人是否戴头盔/农用车是否载人"); + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_stain_vp_config", "车牌是否遮挡"); } } diff --git a/src/main/java/com/objecteye/service/IBackGroundService.java b/src/main/java/com/objecteye/service/IBackGroundService.java index 5aa7057..be69715 100644 --- a/src/main/java/com/objecteye/service/IBackGroundService.java +++ b/src/main/java/com/objecteye/service/IBackGroundService.java @@ -99,4 +99,9 @@ public interface IBackGroundService { * @return 操作状态 */ JSONObject serviceAction(Integer configId, String action); + + /** + * 每分钟更新一次所有服务的状态 + */ + void serviceStatusUpdater(); } diff --git a/src/main/java/com/objecteye/service/impl/BackGroundServiceImpl.java b/src/main/java/com/objecteye/service/impl/BackGroundServiceImpl.java index 34c12ad..e8e11b4 100644 --- a/src/main/java/com/objecteye/service/impl/BackGroundServiceImpl.java +++ b/src/main/java/com/objecteye/service/impl/BackGroundServiceImpl.java @@ -230,41 +230,29 @@ public class BackGroundServiceImpl implements IBackGroundService { public JSONObject sdkController(Map requestMap) { String configId = (String) requestMap.get("configId"); String uri = "/vehicle/loadConfig"; - String configItemName = "ip,port"; + String configItemName = "http,port"; List syServiceConfigItems = syServiceConfigItemMapper.selectByExample(SyServiceConfigItemExample.newAndCreateCriteria() .andConfigIdEqualTo(Integer.valueOf(configId)).andItemNameIn(Arrays.asList(configItemName.split(","))) .example()); - String ip = null; + String http = null; String port = null; for (SyServiceConfigItem syServiceConfigItem : syServiceConfigItems) { - if ("ip".equals(syServiceConfigItem.getItemName())) { - ip = syServiceConfigItem.getItemValue(); + if ("http".equals(syServiceConfigItem.getItemName())) { + http = syServiceConfigItem.getItemValue(); } else if ("port".equals(syServiceConfigItem.getItemName())) { port = syServiceConfigItem.getItemValue(); } } JSONObject resultObj = new JSONObject(); - if (ip == null || port == null) { + if (http == null || port == null) { resultObj.put("error", "服务配置缺少ip或端口信息"); return resultObj; } - String params = "vehicle_car_win_detect_config," + - "vehicle_recg_config," + - "vehicle_plate_det_recg_config," + - "vehicle_color_config," + - "vehicle_pendant_det_config," + - "vehicle_illegal_config," + - "vehicle_feature_config," + - "vehicle_special_config," + - "gpuId," + - "log," + - "vehicle_image_quality_config," + - "vehicle_motor_tricycle_analysis_config,port," + - "vehicle_stain_vp_config"; + List errorList = new ArrayList<>(); Map restRequestMap = new HashMap<>(); - for (String param : params.split(",")) { + for (String param : GeneralContent.DOCKER_CONFIG_PARAMS_MAP.keySet()) { if (!requestMap.containsKey(param)) { errorList.add(param + "参数不能为空"); } else { @@ -276,7 +264,7 @@ public class BackGroundServiceImpl implements IBackGroundService { return resultObj; } - ResponseEntity responseEntity = restTemplate.postForEntity(ip + ":" + port + uri, restRequestMap, String.class); + ResponseEntity responseEntity = restTemplate.postForEntity(http + ":" + port + uri, restRequestMap, String.class); resultObj = JSON.parseObject(responseEntity.getBody()); return resultObj; } @@ -369,7 +357,7 @@ public class BackGroundServiceImpl implements IBackGroundService { @Override public PageResult serviceQuery(Integer currentPage, Integer pageVolume) { List syServiceConfigs = syServiceConfigMapper.selectByExample(SyServiceConfigExample.newAndCreateCriteria() - .example().page(currentPage, currentPage)); + .example().page(currentPage, pageVolume)); long total = syServiceConfigMapper.countByExample(SyServiceConfigExample.newAndCreateCriteria().example()); if (total == 0) { return new PageResult<>(0, new ArrayList<>()); @@ -390,7 +378,7 @@ public class BackGroundServiceImpl implements IBackGroundService { vSyServiceMainTable.setUpdateTime(DateUtil.format(new Date(syServiceConfig.getUpdateTime()), "yyyy-MM-dd HH:mm:ss")); vSyServiceMainTable.setConfigId(syServiceConfig.getId()); - String ip = null; + String http = null; String port = null; List otherParams = new ArrayList<>(); for (SyServiceConfigItem syServiceConfigItem : configItems) { @@ -400,18 +388,19 @@ public class BackGroundServiceImpl implements IBackGroundService { vSyServiceMainTable.setGpuId(itemValue); } else if ("port".equals(itemName)) { port = itemValue; - } else if ("ip".equals(itemName)) { - ip = itemValue; + } else if ("http".equals(itemName)) { + http = itemValue; } else { - otherParams.add(itemName); + otherParams.add(GeneralContent.DOCKER_CONFIG_PARAMS_MAP.get(itemName)); } } - vSyServiceMainTable.setPort(ip + ":" + port); + vSyServiceMainTable.setPort(http + ":" + port); vSyServiceMainTable.setItems(String.join(",", otherParams)); - vSyServiceMainTable.setStatus((String) redisTemplate.opsForHash().get(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, syServiceConfig.getId())); + String status = (String) redisTemplate.opsForHash().get(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, syServiceConfig.getId()); + vSyServiceMainTable.setStatus(status == null ? "0" : status); resultList.add(vSyServiceMainTable); } - return new PageResult<>((int) Math.ceil((double) total / pageVolume), resultList); + return new PageResult<>(total, resultList); } /** @@ -435,6 +424,21 @@ public class BackGroundServiceImpl implements IBackGroundService { } /** + * 每分钟更新一次所有服务的状态 + */ + @Override + @Scheduled(fixedRate = 60 * 1000) + public void serviceStatusUpdater() { + List syServiceConfigs = syServiceConfigMapper.selectByExample(SyServiceConfigExample.newAndCreateCriteria().example()); + for (SyServiceConfig syServiceConfig : syServiceConfigs) { + if (syServiceConfig == null) { + continue; + } + serviceAction(syServiceConfig.getId(), "status"); + } + } + + /** * sysv.sh [stop|restart|status|load] {[containerId]} * * @param configId 服务配置主键 @@ -478,9 +482,9 @@ public class BackGroundServiceImpl implements IBackGroundService { redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "1"); } else if ("status".equals(action)) { if ("0".equals(resultCode)) { - redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "0"); - } else { redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "1"); + } else { + redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "0"); } } if ("0".equals(resultCode)) { @@ -488,7 +492,6 @@ public class BackGroundServiceImpl implements IBackGroundService { } else { resultObj.put("error", resultMsg); } - } } return resultObj; diff --git a/src/main/java/com/objecteye/service/impl/UserServiceImpl.java b/src/main/java/com/objecteye/service/impl/UserServiceImpl.java index 5d2eb08..f2bf750 100644 --- a/src/main/java/com/objecteye/service/impl/UserServiceImpl.java +++ b/src/main/java/com/objecteye/service/impl/UserServiceImpl.java @@ -78,7 +78,7 @@ public class UserServiceImpl implements IUserService { SyUserExample baseExample = SyUserExample.newAndCreateCriteria().andUsernameEqualTo(username).example(); List syUsers = syUserMapper.selectByExample(baseExample.page(currentPage, currentPage)); long total = syUserMapper.countByExample(baseExample); - return new PageResult<>((long) Math.ceil((double) total / pageVolume), syUsers); + return new PageResult<>(total, syUsers); } /**