lxw
2022-09-16 547b6ac144d0745d9b55526c062b2fcaeb80fe4e
修改文件
3个文件已修改
49 ■■■■ 已修改文件
src/main/java/com/whyc/controller/FileInfoController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/XmlFileOpreate.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/FileParamService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/FileInfoController.java
@@ -1,14 +1,18 @@
package com.whyc.controller;
import com.whyc.dto.FileParamToXml;
import com.whyc.dto.Response;
import com.whyc.pojo.FileInfo;
import com.whyc.pojo.FileParam;
import com.whyc.service.FileInfoService;
import com.whyc.service.FileParamService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.Map.Entry;
@Api(tags = "文件")
@RestController
@@ -27,9 +31,26 @@
        return paramService.getXmlValue(filePath);
    }
    @ApiOperation("通过修改属性窗口值来修改文件值")
    @ApiOperation("通过修改属性窗口值来修改文件值(传参对象)")
    @PostMapping("updateXmlByFileParam")
    public Response updateXmlByFileParam(@RequestBody FileParam fileParam,@RequestParam String filePath){
        return  paramService.updateXmlByFileParam(fileParam,filePath);
    }
    @ApiOperation("通过修改属性窗口值来修改文件值(json)")
    @PostMapping("updateXmlByParamMap")
    public Response updateXmlByParamMap(@RequestBody JSONObject paramJson, @RequestParam String filePath){
        Map<String,String> map=new HashMap<>();
        Set paramSet=paramJson.entrySet();
        for (Iterator iter = paramSet.iterator(); iter.hasNext(); ) {
            Entry entry = (Entry) iter.next();
            String key = (String) entry.getKey();
            String value = (String) entry.getValue();
            String xmlName = FileParamToXml.getNameByType(key);
            if (xmlName != null && !xmlName.isEmpty()) {
                map.put(xmlName, value);
            }
        }
        return  paramService.updateXmlByParamMap(map,filePath);
    }
}
src/main/java/com/whyc/dto/XmlFileOpreate.java
@@ -25,7 +25,8 @@
        try
        {
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File(xmlFilePath));
            FileInputStream  fiso=new FileInputStream(xmlFilePath);
            Document document = reader.read(fiso);
            Element rootnode = document.getRootElement();
            Element node;//根节点
@@ -130,8 +131,11 @@
                fileInfo.getBattInfoList().add(battInfo);
            }
            fileInfo.setFileParam(fparam);
        } catch (NullPointerException | NumberFormatException | DocumentException | ParseException e) {
            fiso.close();
        } catch (NullPointerException | NumberFormatException | DocumentException | ParseException | FileNotFoundException e) {
            res = false;
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(false == res)
@@ -144,11 +148,13 @@
        boolean res=true;
        try {
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File(xmlFilePath));
            FileInputStream fiso= new FileInputStream(xmlFilePath);
            Document document = reader.read(fiso);
            for (Map.Entry<String, String> entry:map.entrySet()) {
                String mapKey = entry.getKey();
                String mapValue = entry.getValue();
                System.out.println(mapKey+":"+mapValue);
                //得到第一个mapKey节点
                Node node=document.selectSingleNode("//"+mapKey);
                node.setText(mapValue);
@@ -157,6 +163,8 @@
            format.setEncoding("UTF-8");//默认的编码就是UTF-8
            XMLWriter writer = new XMLWriter( new FileOutputStream(xmlFilePath), format );
            writer.write( document );
            writer.close();
            fiso.close();
        } catch (DocumentException | FileNotFoundException | UnsupportedEncodingException e) {
            res = false;
            e.printStackTrace();
src/main/java/com/whyc/service/FileParamService.java
@@ -39,6 +39,7 @@
            field.setAccessible(true);
            try {
                String paramName=field.getName();
                //获取属性值
                Object obj=field.get(fileParam);
                if(obj==null){
                    obj="null";
@@ -63,5 +64,12 @@
        }
        return new Response().setII(1,bl,map,"修改文件");
    }
    //通过修改属性窗口值来修改文件值
    public Response updateXmlByParamMap(Map<String,String> map,String filePath) {
        boolean bl=false;
        if(map.size()>0){
            bl=XmlFileOpreate.writeXml(map,filePath);
        }
        return new Response().setII(1,bl,map,"修改文件");
    }
}