123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package com.gzlh.bus;
- import cn.hutool.core.io.FileUtil;
- import cn.hutool.json.JSONArray;
- import cn.hutool.json.JSONObject;
- import cn.hutool.json.XML;
- import com.gzlh.config.dto.*;
- import com.gzlh.utils.DeviceCache;
- import lombok.Data;
- import lombok.extern.slf4j.Slf4j;
- import javax.xml.bind.JAXBContext;
- import javax.xml.bind.JAXBException;
- import javax.xml.bind.Unmarshaller;
- import java.io.File;
- import java.io.StringReader;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Properties;
- @Data
- @Slf4j
- public class SysConfig {
- public static List<EventDTO> eventDTOList;
- public static SerialSetting serialSetting;
- public static CaputreSetting caputreSetting;
- public static ChannelSetting channelSetting;
- public static ManagerSetting managerSetting;
- public static PassportSetting passportSetting;
- public static FaceListDTO faceDTO;
- public static void initConfig() {
- Properties properties = System.getProperties();
- String rootPath = properties.getProperty("user.dir");
- String separator = File.separator;
- String configFile = rootPath + separator + "config.xml";
- if (!FileUtil.exist(configFile)) {
- log.error("配置文件不存在:{}", configFile);
- return;
- }
- String content = FileUtil.readUtf8String(configFile);
- JSONObject result = XML.toJSONObject(content);
- log.info("result:{}", result.toJSONString(0));
- ApplicationConfigDTO configDTO = result.toBean(ApplicationConfigDTO.class);
- eventDTOList = configDTO.getConfig().getEventList().getEvent();
- serialSetting = configDTO.getConfig().getSysConfig().getSerialSetting();
- caputreSetting = configDTO.getConfig().getSysConfig().getCaputreSetting();
- channelSetting = configDTO.getConfig().getChannelSetting();
- managerSetting = configDTO.getConfig().getManagerSetting();
- passportSetting = configDTO.getConfig().getPassport();
- parseFace(result);
- DeviceCache.deviceStatusInit();
- }
- private static void parseFace(JSONObject result) {
- JSONObject faceConfig = result.getJSONObject("config").getJSONObject("faceConfig");
- if (faceConfig==null) return;
- boolean enable = faceConfig.getBool("enable");
- // 获取 faceList 节点
- JSONObject faceList = faceConfig.getJSONObject("faceList");
- FaceListDTO faceListDTO = new FaceListDTO();
- faceListDTO.setEnable(enable);
- List<Face> faceArray = new ArrayList<>();
- // 检查 face 节点是否存在
- if (faceList.containsKey("face")) {
- Object faceObj = faceList.get("face");
- if (faceObj instanceof JSONArray) {
- // 多个 face 节点
- JSONArray faces = faceList.getJSONArray("face");
- for (int i = 0; i < faces.size(); i++) {
- JSONObject face = faces.getJSONObject(i);
- // 处理每个 face 节点
- faceArray.add(processFace(face));
- }
- } else if (faceObj instanceof JSONObject) {
- // 单个 face 节点
- JSONObject face = faceList.getJSONObject("face");
- // 处理单个 face 节点
- faceArray.add(processFace(face));
- }
- }
- faceListDTO.setFaceList(faceArray);
- faceDTO = faceListDTO;
- }
- private static Face processFace(JSONObject face) {
- String channelCode = face.getStr("channelCode");
- String ip = face.getStr("ip");
- short port = face.getShort("port");
- String uname = face.getStr("uname");
- String pwd = face.getStr("pwd");
- return new Face(channelCode, ip, port, uname, pwd);
- }
- }
|