Forráskód Böngészése

token相关接口

zhoutg 5 éve
szülő
commit
6247472215

+ 1 - 0
docs/027.20191220病历质控维护/init_mrqc.sql

@@ -17,6 +17,7 @@ CREATE TABLE `mrqc_token` (
   `remain_day` TINYINT  NOT NULL DEFAULT 0 COMMENT '剩余使用天数',
   `login_key` varchar(255)  NOT NULL DEFAULT '' COMMENT '登录key',
   `url` varchar(255)  NOT NULL DEFAULT '' COMMENT '文件路径',
+  `content` varchar(255)  NOT NULL DEFAULT '' COMMENT '拷贝内容',
   `remark` varchar(255)  NOT NULL DEFAULT '' COMMENT '备注',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8  COMMENT='病历质控token信息';

+ 18 - 0
mrqcman-service/src/main/java/com/diagbot/dto/TokenContentDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/12/18 17:08
+ */
+@Getter
+@Setter
+public class TokenContentDTO {
+    private String cpu; // cpu
+    private String mainboard; // 主板
+    private String disk; // 硬盘
+    private String ip; // ip
+}

+ 5 - 0
mrqcman-service/src/main/java/com/diagbot/entity/MrqcToken.java

@@ -98,6 +98,11 @@ public class MrqcToken implements Serializable {
      */
     private String url;
 
+    /**
+     * 拷贝内容
+     */
+    private String content;
+
     /**
      * 备注
      */

+ 40 - 7
mrqcman-service/src/main/java/com/diagbot/facade/MrqcTokenFacade.java

@@ -13,6 +13,7 @@ import com.diagbot.service.impl.MrqcTokenServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.RSAEncrypt;
+import com.diagbot.vo.MrqcTokenContentVO;
 import com.diagbot.vo.MrqcTokenDeleteVO;
 import com.diagbot.vo.MrqcTokenIndexVO;
 import com.diagbot.vo.MrqcTokenPageVO;
@@ -25,6 +26,8 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.UUID;
 
 @Component
@@ -57,10 +60,14 @@ public class MrqcTokenFacade extends MrqcTokenServiceImpl {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "当前token信息已存在");
         }
         // id为空表示新增,只有新增时才生成loginKey
-        String uuid = "";
+        String uuid = UUID.randomUUID().toString();
         if (mrqcTokenVO.getId() == null) {
             mrqcToken.setGmtCreate(date);
-            uuid = UUID.randomUUID().toString();
+            try {
+                mrqcToken.setLoginKey(RSAEncrypt.encrypt(uuid));
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
             mrqcToken.setLoginKey(uuid); // 生成登录获取token需要的key
         }
         mrqcToken.setGmtModified(date);
@@ -70,10 +77,13 @@ public class MrqcTokenFacade extends MrqcTokenServiceImpl {
         FileDTO fileDTO = null;
         try {
             MultipartFile file = fileToMultipartFile(
-                    RSAEncrypt.encrypt(mrqcTokenVO.getIp())
+                    RSAEncrypt.encrypt("server.cpu=" + mrqcToken.getIp())
                             + System.getProperty("line.separator")
-                            + RSAEncrypt.encrypt(mrqcTokenVO.getCpu()),
-                    "sys.proterties");
+                            + RSAEncrypt.encrypt("server.key=" + uuid)
+                            + System.getProperty("line.separator")
+                            + RSAEncrypt.encrypt("server.remainday=" + mrqcToken.getRemainDay()
+                    ),
+                    "sys.properties");
             fileDTO = uploadService.singleFileUpload(file);
         } catch (Exception e) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "文件上传失败!");
@@ -133,9 +143,32 @@ public class MrqcTokenFacade extends MrqcTokenServiceImpl {
      */
     public MrqcToken getById(MrqcTokenIndexVO mrqcTokenIndexVO) {
         return this.getOne(new QueryWrapper<MrqcToken>()
-                .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("id", mrqcTokenIndexVO.getId())
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("id", mrqcTokenIndexVO.getId())
                 , false
         );
     }
+
+
+    /**
+     * 解析内容
+     *
+     * @param mrqcTokenContentVO
+     * @return
+     */
+    public Map analysis(MrqcTokenContentVO mrqcTokenContentVO) {
+        Map<String, String> map = new HashMap<>();
+        String content = mrqcTokenContentVO.getContent();
+        String[] param = content.split("\n");
+        for (String s : param) {
+            try {
+                String line = RSAEncrypt.decrypt(s);
+                String[] keyVal = line.split("=");
+                map.put(keyVal[0], keyVal[1]);
+            } catch (Exception e) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "内容格式有误,不能解析!");
+            }
+        }
+        return map;
+    }
 }

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 3 - 0
mrqcman-service/src/main/java/com/diagbot/util/RSAEncrypt.java


+ 15 - 39
mrqcman-service/src/main/java/com/diagbot/util/SerialNumberUtil.java

@@ -2,6 +2,7 @@ package com.diagbot.util;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Component;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -24,6 +25,7 @@ import java.util.Map;
  * @author: zhoutg
  * @time: 2019/12/23 10:40
  */
+@Component
 public class SerialNumberUtil {
     static Logger log = LogManager.getLogger(SerialNumberUtil.class);
 
@@ -242,56 +244,30 @@ public class SerialNumberUtil {
         return null;
     }
 
-    /**
-     *
-     */
-    /**
-     * @param cmd    命令语句
-     * @param record 要查看的字段
-     * @param symbol 分隔符
-     * @return
-     */
-    public static List<String> getSerialNumberLists(String cmd, String record, String symbol) {
-        String execResult = executeLinuxCmd(cmd);
-        String[] infos = execResult.split("\n");
-        List<String> cpuIds = new ArrayList<String>();
-        for (String info : infos) {
-            info = info.trim();
-            if (info.indexOf(record) != -1) {
-                info.replace(" ", "");
-                String[] sn = info.split(symbol);
-                cpuIds.add(sn[1]);
-            }
-            return  cpuIds;
-        }
-
-        return null;
-    }
-
     /**
      * 获取CPUID、硬盘序列号、MAC地址、主板序列号
      *
      * @return
      */
-    public static Map<String, List<String>> getAllSn() {
+    public static Map<String, String> getAllSn() {
         String os = System.getProperty("os.name");
-        Map<String, List<String>> snVo = new HashMap<String, List<String>>();
+        Map<String, String> snVo = new HashMap<String, String>();
 
-        if ("LINUX".equals(os.toUpperCase())) {
+        if ("LINUX".equals(os)) {
             System.out.println("=============>for linux");
-            List<String> cpuid = getSerialNumberLists("dmidecode -t processor | grep 'ID'", "ID", ":");
+            String cpuid = getSerialNumber("dmidecode -t processor | grep 'ID'", "ID", ":");
             System.out.println("cpuid : " + cpuid);
-            List<String> mainboardNumber = getSerialNumberLists("dmidecode |grep 'Serial Number'", "Serial Number", ":");
+            String mainboardNumber = getSerialNumber("dmidecode |grep 'Serial Number'", "Serial Number", ":");
             System.out.println("mainboardNumber : " + mainboardNumber);
-            List<String> diskNumber = getSerialNumberLists("fdisk -l", "Disk identifier", ":");
+            String diskNumber = getSerialNumber("fdisk -l", "Disk identifier", ":");
             System.out.println("diskNumber : " + diskNumber);
-            //List<String> mac = getSerialNumberLists("ifconfig -a", "ether", " ");
-            snVo.put("cpuid", cpuid);
-            snVo.put("diskid", diskNumber);
-            //snVo.put("mac", mac);
-            snVo.put("mainboard", mainboardNumber);
+            // String mac = getSerialNumber("ifconfig -a", "ether", " ");
+            snVo.put("cpuid", cpuid.toUpperCase().replace(" ", ""));
+            snVo.put("diskid", diskNumber.toUpperCase().replace(" ", ""));
+            // snVo.put("mac", mac.toUpperCase().replace(" ", ""));
+            snVo.put("mainboard", mainboardNumber.toUpperCase().replace(" ", ""));
         } else {
-           /* System.out.println("=============>for windows");
+            System.out.println("=============>for windows");
             String cpuid = SerialNumberUtil.getCPUSerial();
             String mainboard = SerialNumberUtil.getMotherboardSN();
             String disk = SerialNumberUtil.getHardDiskSN();
@@ -305,7 +281,7 @@ public class SerialNumberUtil {
             snVo.put("cpuid", cpuid.toUpperCase().replace(" ", ""));
             snVo.put("diskid", disk.toUpperCase().replace(" ", ""));
             snVo.put("mac", mac.toUpperCase().replace(" ", ""));
-            snVo.put("mainboard", mainboard.toUpperCase().replace(" ", ""));*/
+            snVo.put("mainboard", mainboard.toUpperCase().replace(" ", ""));
         }
 
         return snVo;

+ 26 - 0
mrqcman-service/src/main/java/com/diagbot/vo/MrqcTokenContentVO.java

@@ -0,0 +1,26 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 病历质控token信息
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-12-23
+ */
+@Getter
+@Setter
+public class MrqcTokenContentVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 内容
+     */
+    private String content;
+}

+ 7 - 0
mrqcman-service/src/main/java/com/diagbot/vo/MrqcTokenVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -68,8 +69,14 @@ public class MrqcTokenVO implements Serializable {
     /**
      * 登录Key
      */
+    @ApiModelProperty(hidden = true)
     private String loginKey;
 
+    /**
+     * 拷贝内容
+     */
+    private String content;
+
     /**
      * 文件路径
      */

+ 17 - 2
mrqcman-service/src/main/java/com/diagbot/web/MrqcTokenController.java

@@ -6,6 +6,7 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.MrqcToken;
 import com.diagbot.facade.MrqcTokenFacade;
+import com.diagbot.vo.MrqcTokenContentVO;
 import com.diagbot.vo.MrqcTokenDeleteVO;
 import com.diagbot.vo.MrqcTokenIndexVO;
 import com.diagbot.vo.MrqcTokenPageVO;
@@ -18,6 +19,8 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * <p>
  * 病历质控token信息 前端控制器
@@ -42,9 +45,9 @@ public class MrqcTokenController {
                     "mainboard: 主板<br>" +
                     "disk:硬盘<br>" +
                     "ip: ip<br>" +
-                    "remainDay:剩余使用天数<br>" +
                     "loginKey:登录Key<br>" +
-                    "remark:备注<br>")
+                    "remark:备注<br>" +
+                    "content:内容<br>")
     @PostMapping("/saveOrUpdate")
     @SysLogger("saveOrUpdate")
     @Transactional
@@ -84,4 +87,16 @@ public class MrqcTokenController {
         return RespDTO.onSuc(data);
     }
 
+
+    @ApiOperation(value = "解析配置信息[by:zhoutg]",
+            notes = "server.cpu:cpu<br>" +
+                    "server.mainboard:主板<br>" +
+                    "server.disk:硬盘<br>")
+    @PostMapping("/analysis")
+    @SysLogger("analysis")
+    public RespDTO<Map<String, String>> analysis(@RequestBody MrqcTokenContentVO mrqcTokenContentVO) {
+        Map<String, String> map = mrqcTokenFacade.analysis(mrqcTokenContentVO);
+        return RespDTO.onSuc(map);
+    }
+
 }

+ 0 - 97
mrqcman-service/src/main/java/com/diagbot/web/MrqcmanController.java

@@ -1,97 +0,0 @@
-package com.diagbot.web;
-
-import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.util.SerialNumberUtil;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-/**
- * @Description: 日志操作控制层
- * @author: gaodm
- * @time: 2018/8/30 10:12
- */
-@RestController
-@RequestMapping("/mrqc")
-public class MrqcmanController {
-
-    /**
-     * 测试
-     */
-    @ApiOperation(value = "测试", notes = "测试")
-    @PostMapping("/test")
-    @SysLogger("test")
-    public RespDTO<String> test() {
-        return RespDTO.onSuc("测试");
-    }
-
-
-    public static String getLinuxMACAddress() {
-        String mac = null;
-        BufferedReader bufferedReader = null;
-        Process process = null;
-        try {
-            process = Runtime.getRuntime().exec("ifconfig enp4s0");
-            bufferedReader = new BufferedReader(new InputStreamReader(
-                    process.getInputStream()));
-            String line = null;
-            int index = -1;
-            while ((line = bufferedReader.readLine()) != null) {
-                index = line.toLowerCase().indexOf("硬件地址");
-
-                if (index != -1) {
-
-                    mac = line.substring(index + 4).trim();
-                    break;
-                }
-            }
-        } catch (IOException e) {
-            e.printStackTrace();
-        } finally {
-            try {
-                if (bufferedReader != null) {
-                    bufferedReader.close();
-                }
-            } catch (IOException e1) {
-                e1.printStackTrace();
-            }
-            bufferedReader = null;
-            process = null;
-        }
-        return mac;
-    }
-    @ApiOperation(value = "测试获取cpu", notes = "测试获取cpu")
-    @PostMapping("/getAllSn")
-    @SysLogger("getAllSn")
-    public RespDTO<String> getAllSn() {
-        Map<String, List<String>> op = SerialNumberUtil.getAllSn();
-        return RespDTO.onSuc(op);
-    }
-
-    public static void main(String[] argc) {
-
-        Properties properties = System.getProperties();
-        Iterator it = properties.entrySet().iterator();
-        while(it.hasNext()){
-            Map.Entry entry=(Map.Entry)it.next();
-            Object key = entry.getKey();
-            Object value = entry.getValue();
-            System.out.println(key +":"+value);
-        }
-
-        String mac = getLinuxMACAddress();
-        System.out.println("本地是Linux系统, MAC地址是:" + mac);
-
-    }
-}
-

+ 1 - 0
mrqcman-service/src/main/resources/mapper/MrqcTokenMapper.xml

@@ -19,6 +19,7 @@
         <result column="remain_day" property="remainDay" />
         <result column="login_key" property="loginKey" />
         <result column="url" property="url" />
+        <result column="content" property="content" />
         <result column="remark" property="remark" />
     </resultMap>