From c8d8a511f45c96ed3a5123a88e48de2ffdbf632a Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期日, 03 十二月 2023 20:00:47 +0800
Subject: [PATCH] 6

---
 zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java                        |   12 +
 web/src/components/config-uploader/src/config-uploader.vue                                        |    2 
 zt/common/src/main/java/com/zt/life/sys/dto/OssDto.java                                           |  112 ++++++++++++++
 modules/mainPart/src/main/java/com/zt/life/modules/project/model/Environ.java                     |    3 
 zt/common/src/main/java/com/zt/core/sys/model/SysUser.java                                        |    6 
 web/src/views/modules/sys/user-add-or-update.vue                                                  |   43 +++++
 zt/core/src/main/java/com/zt/modules/oss/cloud/LocalStorageService.java                           |    1 
 zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java                              |    9 +
 modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java            |   76 +++++++++
 zt/common/src/main/java/com/zt/core/oss/service/ISysOssConfigService.java                         |    6 
 web/packages/i18n/zh-CN.js                                                                        |    1 
 core/src/main/java/com/zt/life/export/service/WordFileService.java                                |   29 ++-
 modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java |    4 
 /dev/null                                                                                         |   49 ------
 core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java                               |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/project/controller/EnvironController.java      |   14 +
 web/src/views/modules/project/Environ-AddOrUpdate.vue                                             |   71 +++++---
 zt/common/src/main/java/com/zt/core/oss/service/ISysOssService.java                               |    1 
 18 files changed, 339 insertions(+), 103 deletions(-)

diff --git a/core/src/main/java/com/zt/life/export/service/WordFileService.java b/core/src/main/java/com/zt/life/export/service/WordFileService.java
index 2329e9e..0576d03 100644
--- a/core/src/main/java/com/zt/life/export/service/WordFileService.java
+++ b/core/src/main/java/com/zt/life/export/service/WordFileService.java
@@ -8,6 +8,8 @@
 import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
 
 import com.zt.life.export.dto.WordFile;
+import com.zt.life.oss.OssEncryptService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
@@ -23,6 +25,10 @@
     @Value("${zt.oss.local-path}")
     private String localPath;
 
+    @Autowired
+    private OssEncryptService ossEncryptService;
+
+
     public void exportWordFile(HttpServletRequest request, Object dataObj, WordFile wordFile, HttpServletResponse response) throws UnsupportedEncodingException, FileNotFoundException {
         // 鏁版嵁map闆嗗悎
         Map<String, Object> wordData = new HashMap<>();
@@ -32,7 +38,7 @@
         this.formatWordData(dataObj, wordData, builder);
 
         config = builder.build();
-        File fl = new File(localPath+"/template/"+wordFile.getModulePath());
+        File fl = new File(localPath + "/template/" + wordFile.getModulePath());
         FileInputStream fs = new FileInputStream(fl);
         XWPFTemplate template;
         if (config != null) {
@@ -55,17 +61,24 @@
                 formatWordData(staticFieldValue, wordData, builder);
             } else {
                 if (field.getType().getName().equals("java.util.List")) {
-                   builder.bind(fieldName, new HackLoopTableRenderPolicy());
+                    builder.bind(fieldName, new HackLoopTableRenderPolicy());
                 } else if (staticFieldValue != null) {
                     String valStr = staticFieldValue.toString();
-                    if (valStr.contains("绛惧悕鍥剧墖:")) {
-                        valStr = valStr.replace("绛惧悕鍥剧墖:", "");
-                        staticFieldValue = new PictureRenderData(80, 100, "d://" + valStr);
-                        /*put("localbyte", new PictureRenderData(80, 100, ".png", new FileInputStream("./logo.png")));*/
+                    if (valStr.contains("鏂囦欢鍥剧墖:")) {
+                        valStr = valStr.replace("鏂囦欢鍥剧墖:", "");
+                        File file = new File(valStr);
+                        if (file.exists()) {
+                            try (InputStream in = ossEncryptService.decrypt(file)) {
+                                staticFieldValue = new PictureRenderData(500, 500, ".png", in);
+                                /*staticFieldValue = new PictureRenderData(80, 100, "d://" + valStr);*/
+                            } catch (IOException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                        if (wordData.get(fieldName) == null)
+                            wordData.put(fieldName, staticFieldValue);
                     }
                 }
-                if (wordData.get(fieldName) == null)
-                    wordData.put(fieldName, staticFieldValue);
             }
         }
     }
diff --git a/core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java b/core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java
index 0d08207..15dd4b2 100644
--- a/core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java
+++ b/core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java
@@ -10,6 +10,7 @@
 import com.zt.common.service.BaseService;
 import com.zt.common.utils.CacheUtils;
 import com.zt.common.utils.UUIDUtil;
+import com.zt.core.oss.service.ISysOssConfigService;
 import com.zt.core.oss.service.ISysOssService;
 import com.zt.life.core.constant.Cache;
 import com.zt.life.sys.dao.SysOssConfigDao;
@@ -32,7 +33,7 @@
  * @since 1.0.0 2020-08-25
  */
 @Service
-public class SysOssConfigService extends BaseService<SysOssConfigDao, SysOssConfig> {
+public class SysOssConfigService extends BaseService<SysOssConfigDao, SysOssConfig> implements ISysOssConfigService {
 
     @Autowired
     private OssExMapper ossExMapper;
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java
index dc3b387..4eae527 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java
@@ -91,5 +91,9 @@
 	@ApiModelProperty(value = "鐗╁搧缂栧彿")
 	private String softwareIdentity;
 
+	@TableField(exist = false)
+	@ApiModelProperty(value = "鍏朵粬瑕佹眰")
+	private String itemRequireStr;
+
 
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/test/service/testService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/test/service/testService.java
deleted file mode 100644
index e81f3d0..0000000
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/test/service/testService.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.zt.life.modules.mainPart.test.service;
-
-import com.googlecode.aviator.AviatorEvaluator;
-import com.googlecode.aviator.runtime.function.AbstractFunction;
-import com.googlecode.aviator.runtime.function.FunctionUtils;
-import com.googlecode.aviator.runtime.type.AviatorDouble;
-import com.googlecode.aviator.runtime.type.AviatorObject;
-import org.junit.Test;
-
-import java.beans.Expression;
-import java.util.HashMap;
-import java.util.Map;
-
-public class testService {
-
-    public static void main(String[] args) {
-        // 娉ㄥ唽鍑芥暟
-        AviatorEvaluator.addFunction(new AddFunction());
-
-        // 鍒涘缓鍙傛暟鏄犲皠
-        Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("a", 5);
-        paramMap.put("b", 2);
-
-        // 鎵ц琛ㄨ揪寮�
-        Object result = AviatorEvaluator.execute("add(a, b)", paramMap);
-
-        System.out.println("Result: " + result);
-    }
-
-    static class AddFunction extends AbstractFunction {
-        @Override
-        public AviatorObject call(Map<String, Object> env, AviatorObject arg1, AviatorObject arg2) {
-            Number left = arg1.numberValue(env);
-            Number right = arg2.numberValue(env);
-
-            // 鎵ц鏁板璁$畻
-            double result = (Math.pow(left.doubleValue(), right.doubleValue()) + Math.sqrt(right.doubleValue()) - Math.log(right.doubleValue())) /
-                    (Math.pow(right.doubleValue(), left.doubleValue()) + Math.log10(left.doubleValue()));
-
-            return new AviatorDouble(result);
-        }
-
-        @Override
-        public String getName() {
-            return "add";
-        }
-    }
-}
\ No newline at end of file
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/EnvironController.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/EnvironController.java
index 4a78c76..2273ad8 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/EnvironController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/EnvironController.java
@@ -28,6 +28,7 @@
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.swing.*;
 import java.text.SimpleDateFormat;
@@ -78,12 +79,6 @@
     @ApiOperation("淇℃伅")
     public Result<EnvironDto> getDto(Long environId, Long  projectId) {
         EnvironDto data = environService.getDto(environId, projectId);
-        if (environId != null) {
-            OssDto ossDto = sysOssConfigService.getOssByBusiType(environId, "test_environt_diagram");
-            if (ossDto != null) {
-                data.setFiles(ossDto);
-            }
-        }
         return Result.ok(data);
     }
 
@@ -124,4 +119,11 @@
 
         return Result.ok();
     }
+
+    @GetMapping("exportEnviron")
+    @ApiOperation("鎵撳嵃娴嬭瘯鐜寤虹珛纭琛�")
+    @LogOperation("鎵撳嵃娴嬭瘯鐜寤虹珛纭琛�")
+    public void exportEnviron(Long id, HttpServletRequest request, HttpServletResponse response) {
+        environService.exportEnviron(id, request, response);
+    }
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/model/Environ.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/model/Environ.java
index e43a4ab..2da99c9 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/model/Environ.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/model/Environ.java
@@ -83,4 +83,7 @@
 	@ApiModelProperty(value = "鐗堟湰")
 	private String softwareIdentity;
 
+	@TableField(exist = false)
+	@ApiModelProperty(value = "鏄惁杩涜鐜鐥呮瘨鏌ユ潃")
+	private String isVirusScanStr;
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java
index 326abdf..7a01b68 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java
@@ -1,21 +1,38 @@
 package com.zt.life.modules.project.service;
 
 import com.zt.common.service.BaseService;
+import com.zt.core.sys.dto.DictDto;
+import com.zt.core.sys.dto.DictItemDto;
+import com.zt.core.sys.dto.DictLeafDto;
+import com.zt.life.export.dto.WordFile;
+import com.zt.life.export.service.WordFileService;
+import com.zt.life.modules.mainPart.utils.GetShowDictList;
 import com.zt.life.modules.project.dao.EnvironDao;
 import com.zt.life.modules.project.dto.EnvironDto;
+import com.zt.life.modules.project.dto.SoftwareTestOrderDto;
 import com.zt.life.modules.project.model.*;
 import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo;
 import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService;
+import com.zt.life.sys.dto.OssDto;
 import com.zt.life.sys.service.SysOssConfigService;
 import com.zt.modules.coderule.service.SysCodeRuleService;
+import com.zt.modules.oss.cloud.LocalStorageService;
+import com.zt.modules.oss.model.SysOss;
 import com.zt.modules.oss.service.SysOssService;
+import com.zt.modules.sys.service.SysDictTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import com.zt.common.db.query.QueryFilter;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileNotFoundException;
+import java.io.UnsupportedEncodingException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -34,7 +51,10 @@
     private EnvironHardwareResourcesService environHardwareResourcesService;
 
     @Autowired
-    private SoftwareTestOrderService softwareTestOrderService;
+    private GetShowDictList getShowDictList;
+
+    @Autowired
+    private WordFileService wordFileService;
 
     @Autowired
     private SysCodeRuleService sysCodeRuleService;
@@ -54,10 +74,16 @@
     @Autowired
     private SysOssService sysOssService;
 
+    @Autowired
+    private LocalStorageService localStorageService;
+
+    @Value("${zt.oss.local-path}")
+    private String localPath;
 
     public EnvironDto getDto(Long environId, Long projectId) {
         EnvironDto data = new EnvironDto();
         if (environId != null) {
+            data.setId(environId);
             Environ environ = this.get(environId);
             data.setEnviron(environ);
             data.setTestAgencyInfo(testAgencyInfoService.get(environId));
@@ -72,7 +98,7 @@
             List<EnvironAnalysis> environAnalysesList = environAnalysisService.getList(environId);
             data.setEnvironAnalysisList(environAnalysesList);
         } else {
-            Environ environ =new Environ();
+            Environ environ = new Environ();
             data.setEnviron(environ);
         }
         if (projectId != null) {
@@ -81,6 +107,12 @@
         }
         if (data.getTestAgencyInfo() == null)
             data.setTestAgencyInfo(testAgencyInfoService.get(10000L));
+        if (environId != null) {
+            OssDto ossDto = sysOssConfigService.getOssByBusiType(environId, "test_environt_diagram");
+            if (ossDto != null) {
+                data.setFiles(ossDto);
+            }
+        }
 
         return data;
     }
@@ -113,7 +145,7 @@
             String year = sdf.format(new Date());
             Map<String, String> map = new HashMap<>();
             map.put("funCode", "environ");
-            map.put("projectId",environDto.getProjectId().toString());
+            map.put("projectId", environDto.getProjectId().toString());
             environDto.getEnviron().setYear(year);
             environDto.getEnviron().setProjectId(environDto.getProjectId());
             environDto.getEnviron().setCode(sysCodeRuleService.getNewCode(map));
@@ -167,4 +199,42 @@
         sysOssConfigService.updateOss(environDto.getEnviron().getId(), environDto.getFiles());// 淇濆瓨闄勪欢
         return true;
     }
+
+    public void exportEnviron(Long id, HttpServletRequest request, HttpServletResponse response) {
+        try {
+            EnvironDto dataObj = this.getDto(id, null);
+            String imagePath = "鏂囦欢鍥剧墖:"+getFirstImagePath(dataObj.getFiles());
+            dataObj.getEnviron().setTestEnvirontDiagram(imagePath);
+            //閫氱敤瀛楀吀鍒楄〃瀛楃涓茬敓鎴�
+            String isVirusScanStr = getShowDictList.getShowDictList(dataObj.getEnviron().getIsVirusScan(), "is_or_not", false);
+            dataObj.getEnviron().setIsVirusScanStr(isVirusScanStr);
+
+            WordFile wordFile = new WordFile();
+            wordFile.setModulePath("娴嬭瘯鐜寤虹珛纭琛�.docx");
+            wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_娴嬭瘯鐜寤虹珛纭琛�.docx");
+            wordFileService.exportWordFile(request, dataObj, wordFile, response);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public String getFirstImagePath(OssDto oss) {
+        String filePath = "";
+        if (oss != null) {
+            if (oss.getGroups().size() > 0) {
+                OssDto.OssFieldGroupDto group = oss.getGroups().get(0);
+                if (group.getFields().size() > 0) {
+                    OssDto.OssFieldDto field = group.getFields().get(0);
+                    if (field.getFiles().size() > 0) {
+                        com.zt.core.oss.dto.OssDto file = field.getFiles().get(0);
+                        SysOss sysOss = sysOssService.get(file.getId());
+                        filePath = localPath+sysOss.getPath();
+                    }
+                }
+            }
+        }
+        return filePath;
+    }
 }
diff --git a/web/packages/i18n/zh-CN.js b/web/packages/i18n/zh-CN.js
index 4df60e0..5161bdc 100644
--- a/web/packages/i18n/zh-CN.js
+++ b/web/packages/i18n/zh-CN.js
@@ -128,6 +128,7 @@
 t.user.title = '鐢ㄦ埛淇℃伅'
 t.user.username = '鐢ㄦ埛鍚�'
 t.user.avatar = '澶村儚'
+t.user.sign = '绛惧悕'
 t.user.deptName = '鎵�灞為儴闂�'
 t.user.dept = '鐢ㄦ埛閮ㄩ棬'
 t.user.nickName = '鏄电О'
diff --git a/web/src/components/config-uploader/src/config-uploader.vue b/web/src/components/config-uploader/src/config-uploader.vue
index 2f3f777..bae704a 100644
--- a/web/src/components/config-uploader/src/config-uploader.vue
+++ b/web/src/components/config-uploader/src/config-uploader.vue
@@ -82,13 +82,13 @@
       fields() {
         let arr = []
         if (this.dataForm.files && this.dataForm.files.groups) {
+          console.log(this.dataForm,"fields this.dataForm")
           this.dataForm.files.groups.forEach(group => {
             group.fields.forEach(field => {
               let arrType = []
               if (field.fileTypes) {
                 arrType = field.fileTypes.split(',')
               }
-              //this.$set(field, 'fileTypeArr', arrType)
               field.fileTypeArr = arrType
               arr.push(field)
             })
diff --git a/web/src/views/modules/project/Environ-AddOrUpdate.vue b/web/src/views/modules/project/Environ-AddOrUpdate.vue
index 995fdb5..994e213 100644
--- a/web/src/views/modules/project/Environ-AddOrUpdate.vue
+++ b/web/src/views/modules/project/Environ-AddOrUpdate.vue
@@ -211,10 +211,16 @@
         </div>
       </div>
     </el-form>
+    <template v-slot:footer>
+      <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button>
+    </template>
   </zt-dialog>
 </template>
 
 <script>
+  import qs from "qs";
+  import Cookies from "js-cookie";
+
   export default {
     data() {
       return {
@@ -251,11 +257,11 @@
     },
     methods: {
       init(id, row) {
+        console.log(row, 'row')
         this.dataForm.id = row.id
         this.dataForm.projectId = row.projectId
-        // this.dataForm.disabled
+        this.dataForm.disabled
         this.getInfo()
-        this.getImageUrl()
         console.log(this.dataForm.id, this.dataForm.projectId, 'params params')
       },
       // 鑾峰彇淇℃伅
@@ -265,11 +271,13 @@
           projectId: this.dataForm.projectId
         }
         let res = await this.$http.get(`/project/Environ/getDto`, {params: params})
-        this.dataForm = {
-          ...this.dataForm,
-          ...res.data
+        if (res.data) {
+          this.dataForm = {
+            ...this.dataForm,
+            ...res.data
+          }
+          this.getImageUrl()
         }
-        console.log(this.dataForm, 'this.dataForm')
       },
       indexFormat(index) {
         return index += 1
@@ -295,27 +303,36 @@
           tableBody.scrollTop = tableBody.scrollHeight;
         })
       },
-      getImageUrl() {
-        let pictureId = this.getFirstImageId(this.dataForm.files, 'test_environt_diagram')
-        this.dataForm.url = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${pictureId}`
-        console.log(this.dataForm.url, ' this.dataForm.url')
-      },
-      getFirstImageId(oss) {
-        console.log(oss, ' getFirstImageId(oss)')
-        let fileId = 0
-        if (oss != null) {
-          if (oss.groups.length > 0) {
-            let group = oss.groups[0]
-            if (group.fields.length > 0) {
-              let field = group.fields[0]
-              if (field.files.length > 0) {
-                let file = field.files[0]
-                fileId = file.id
-              }
-            }
-          }
-        }
-        return fileId
+       getImageUrl() {
+         let pictureId = this.getFirstImageId(this.dataForm.files)
+         this.dataForm.url = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${pictureId}`
+         console.log(this.dataForm.url, ' this.dataForm.url')
+       },
+       getFirstImageId(oss) {
+         console.log(oss, ' getFirstImageId(oss)')
+         let fileId = 0
+         if (oss != null) {
+           if (oss.groups.length > 0) {
+             let group = oss.groups[0]
+             if (group.fields.length > 0) {
+               let field = group.fields[0]
+               if (field.files.length > 0) {
+                 let file = field.files[0]
+                 fileId = file.id
+               }
+             }
+           }
+         }
+         return fileId
+       },
+      async print() {
+        console.log(this.dataForm)
+        let params = qs.stringify({
+          token: Cookies.get('token'),
+          id: this.dataForm.id
+        })
+        let apiURL = `/project/Environ/exportEnviron/`
+        window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
       },
       // 琛ㄥ崟鎻愪氦
       async formSubmit() {
diff --git a/web/src/views/modules/sys/user-add-or-update.vue b/web/src/views/modules/sys/user-add-or-update.vue
index 0fc4aa5..72d121b 100644
--- a/web/src/views/modules/sys/user-add-or-update.vue
+++ b/web/src/views/modules/sys/user-add-or-update.vue
@@ -6,9 +6,13 @@
           <template slot="title">
             <el-tag>{{ $t('user.title') }}</el-tag>
           </template>
-          <el-form-item prop="avatar" :label="$t('user.avatar')">
-            <zt-uploader v-model="dataForm.avatar" crop :size="60"/>
-          </el-form-item>
+            <config-uploader busi-type="users" model-name="dataForm" :dataForm="dataForm"
+                             @getImageUrl="getImageUrl"
+                             v-model="dataForm.files"/>
+            <div v-if="dataForm.url" >
+              <el-image :src="dataForm.url" v-for="url in dataForm.url" :key="url[0,1]"></el-image>
+            </div>
+
           <zt-form-item prop="username" :label="$t('user.username')" rules="required">
             <el-input v-model="dataForm.username" :placeholder="$t('user.username')"></el-input>
           </zt-form-item>
@@ -102,6 +106,7 @@
           register:0,
           teamgroupIds:'',
           shipIds: '',
+          url: []
         }
       }
     },
@@ -140,6 +145,8 @@
             ...this.dataForm,
             ...res.data
           }
+          this.getImageUrl()
+          console.log(this.dataForm,"getInfo this.dataForm ")
         }
       },
       onDeptSelect(data, isChange) {
@@ -155,6 +162,36 @@
           this.dataForm.postIdList = []
         }
       },
+      getImageUrl() {
+        let pictureId=[];
+        pictureId = this.getFirstImageId(this.dataForm.files)
+        for (let i=0;i<=pictureId.length;i++){
+          pictureId=pictureId[i]
+          this.dataForm.url[i] = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${pictureId}`
+          console.log(this.dataForm.url[i], ' this.dataForm.url')
+        }
+      },
+      getFirstImageId(oss) {
+        console.log(oss, ' getFirstImageId(oss)')
+        let fileId = []
+        if (oss != null) {
+          if (oss.groups.length > 0) {
+            let group1 = oss.groups[0]
+            let group2 = oss.groups[0]
+            if (group1.fields.length > 0 ||group2.fields.length > 0 ) {
+              let field1 = group1.fields[0]
+              let field2 = group2.fields[0]
+              if (field1.files.length > 0 || field2.files.length > 0) {
+                let file1 = field1.files[0]
+                let file2 = field2.files[0]
+                fileId[0]=file1.id
+                fileId[1]=file2.id
+              }
+            }
+          }
+        }
+        return fileId
+      },
       // 琛ㄥ崟鎻愪氦
       async formSubmit() {
         this.dataForm.companyId = this.companyId
diff --git a/zt/common/src/main/java/com/zt/core/oss/service/ISysOssConfigService.java b/zt/common/src/main/java/com/zt/core/oss/service/ISysOssConfigService.java
new file mode 100644
index 0000000..3ac21a3
--- /dev/null
+++ b/zt/common/src/main/java/com/zt/core/oss/service/ISysOssConfigService.java
@@ -0,0 +1,6 @@
+package com.zt.core.oss.service;
+
+public interface ISysOssConfigService {
+    void updateOss(Long busiId, com.zt.life.sys.dto.OssDto dto);
+    com.zt.life.sys.dto.OssDto getOssByBusiType(Long busiId, String busiType);
+}
diff --git a/zt/common/src/main/java/com/zt/core/oss/service/ISysOssService.java b/zt/common/src/main/java/com/zt/core/oss/service/ISysOssService.java
index 77474d8..f34d9eb 100644
--- a/zt/common/src/main/java/com/zt/core/oss/service/ISysOssService.java
+++ b/zt/common/src/main/java/com/zt/core/oss/service/ISysOssService.java
@@ -11,6 +11,7 @@
 
     void setOssField(BaseEntity entity);
 
+
     void updateBusiInfo(BaseEntity entity);
 
     void updateBusiInfo(Long busiId, String busiType, String busiTypeName, String busiField, String busiFieldName,
diff --git a/zt/common/src/main/java/com/zt/core/sys/model/SysUser.java b/zt/common/src/main/java/com/zt/core/sys/model/SysUser.java
index 129866b..5e1ea3a 100644
--- a/zt/common/src/main/java/com/zt/core/sys/model/SysUser.java
+++ b/zt/common/src/main/java/com/zt/core/sys/model/SysUser.java
@@ -18,12 +18,13 @@
 import com.zt.common.annotation.OssField;
 import com.zt.common.entity.BusiEntity;
 import com.zt.common.validator.group.DefaultGroup;
-import com.zt.core.oss.dto.OssDto;
+import com.zt.life.sys.dto.OssDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.hibernate.validator.constraints.Range;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.Email;
@@ -42,6 +43,7 @@
 @EqualsAndHashCode(callSuper = false)
 @TableName("SYS_USER")
 public class SysUser extends BusiEntity {
+
     private static final long serialVersionUID = 1L;
     @TableField(exist = false)
     @ApiModelProperty(value = "鐢ㄦ埛鍚�", required = false)
@@ -147,7 +149,7 @@
     @OssField("鐢ㄦ埛澶村儚")
     @ApiModelProperty(value = "鐢ㄦ埛澶村儚")
     @TableField(exist = false)
-    private OssDto avatar;
+    private OssDto files;
 
     @ApiModelProperty(value = "宀椾綅ID鍒楄〃")
     @TableField(exist = false)
diff --git a/zt/common/src/main/java/com/zt/life/sys/dto/OssDto.java b/zt/common/src/main/java/com/zt/life/sys/dto/OssDto.java
new file mode 100644
index 0000000..acfeace
--- /dev/null
+++ b/zt/common/src/main/java/com/zt/life/sys/dto/OssDto.java
@@ -0,0 +1,112 @@
+package com.zt.life.sys.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * SYS_OSS_CONFIG
+ *
+ * @author zt generator
+ * @since 1.0.0 2020-08-25
+ */
+@Data
+public class OssDto implements Serializable, Cloneable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "妯″潡鍒嗙被")
+    private String busiType;
+
+    @ApiModelProperty(value = "妯″潡鍚嶇О")
+    private String busiTypeName;
+
+    @ApiModelProperty(value = "鍒嗙粍")
+    private List<OssFieldGroupDto> groups = new ArrayList<>();
+
+    public OssDto() {
+    }
+
+    public OssDto(String busiType, String busiTypeName) {
+        this.busiType = busiType;
+        this.busiTypeName = busiTypeName;
+    }
+
+    @Override
+    public OssDto clone() throws CloneNotSupportedException {
+        OssDto dto = (OssDto) super.clone();
+        List<OssFieldGroupDto> list = new ArrayList<>();
+        for (OssFieldGroupDto group : groups) {
+            list.add(group.clone());
+        }
+        dto.setGroups(list);
+        return dto;
+    }
+
+    @Data
+    public static class OssFieldGroupDto implements Serializable, Cloneable {
+        @ApiModelProperty(value = "瀛楁鎵�灞炲垎缁�")
+        private String busiFieldGroup;
+
+        @ApiModelProperty(value = "瀛楁")
+        private List<OssFieldDto> fields = new ArrayList<>();
+
+        public OssFieldGroupDto() {
+        }
+
+        public OssFieldGroupDto(String busiFieldGroup) {
+            this.busiFieldGroup = busiFieldGroup;
+        }
+
+        @Override
+        public OssFieldGroupDto clone() throws CloneNotSupportedException {
+            OssFieldGroupDto dto = (OssFieldGroupDto) super.clone();
+            List<OssFieldDto> list = new ArrayList<>();
+            for (OssFieldDto field : fields) {
+                list.add(field.clone());
+            }
+            dto.setFields(list);
+            return dto;
+        }
+    }
+
+    @Data
+    public static class OssFieldDto implements Serializable, Cloneable {
+        @ApiModelProperty(value = "瀛楁")
+        private String busiField;
+
+        @ApiModelProperty(value = "瀛楁鍚嶇О")
+        private String busiFieldName;
+
+        @ApiModelProperty(value = "鍙笂浼犳枃浠剁被鍨�")
+        private String accept;
+
+        @ApiModelProperty(value = "鍙笂浼犳枃浠跺悗缂�")
+        private String fileTypes;
+
+        @ApiModelProperty(value = "鏂囦欢澶у皬闄愬埗锛圡B锛�")
+        private BigDecimal fileSize;
+
+        @ApiModelProperty(value = "鏂囦欢涓暟")
+        private Integer fileLimit;
+
+        @ApiModelProperty(value = "鎺掑簭")
+        private Integer sort;
+
+        @ApiModelProperty(value = "鏄惁蹇呭~")
+        private Boolean isRequired;
+
+        @ApiModelProperty(value = "瀛楁")
+        private List<com.zt.core.oss.dto.OssDto> files = new ArrayList<>();
+
+        @Override
+        public OssFieldDto clone() throws CloneNotSupportedException {
+            OssFieldDto dto = (OssFieldDto) super.clone();
+            dto.setFiles(new ArrayList<>());
+            return dto;
+        }
+    }
+}
diff --git a/zt/core/src/main/java/com/zt/modules/oss/cloud/LocalStorageService.java b/zt/core/src/main/java/com/zt/modules/oss/cloud/LocalStorageService.java
index 2a4854c..8a7ef02 100644
--- a/zt/core/src/main/java/com/zt/modules/oss/cloud/LocalStorageService.java
+++ b/zt/core/src/main/java/com/zt/modules/oss/cloud/LocalStorageService.java
@@ -237,7 +237,6 @@
             is.close();
             out.flush();
             out.close();
-
         }
     }
 }
diff --git a/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java b/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java
index 9975ac8..f6dc5c5 100644
--- a/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java
+++ b/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java
@@ -26,8 +26,10 @@
 import com.zt.common.validator.group.UpdateGroup;
 import com.zt.core.context.User;
 import com.zt.core.context.UserContext;
+import com.zt.core.oss.service.ISysOssConfigService;
 import com.zt.core.security.Md5Utils;
 import com.zt.core.sys.model.SysUser;
+import com.zt.life.sys.dto.OssDto;
 import com.zt.modules.sys.dto.MapDto;
 import com.zt.modules.sys.dto.PasswordDto;
 import com.zt.modules.sys.dto.UserRoleDto;
@@ -65,7 +67,8 @@
     private SysPostUserService sysPostUserService;
     @Autowired
     private SysJobUserService sysJobUserService;
-
+    @Autowired
+    private ISysOssConfigService sysOssConfigService;
     @Autowired
     private SysMapService sysMapService;
 
@@ -101,7 +104,12 @@
     @RequiresPermissions("sys:user:info")
     public Result<SysUser> get(@PathVariable("id") Long id) {
         SysUser data = sysUserService.get(id);
-
+        if (data != null) {
+            OssDto ossDto= sysOssConfigService.getOssByBusiType(data.getId() , "users");
+            if (ossDto != null) {
+                data.setFiles(ossDto);
+            }
+        }
         // 鐢ㄦ埛宀椾綅鍒楄〃
         data.setPostIdList(sysPostUserService.getUserPosts(id).stream().map(post -> post.getId())
                 .collect(Collectors.toList()));
diff --git a/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java b/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java
index 3052e84..e02de76 100644
--- a/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java
+++ b/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java
@@ -21,11 +21,14 @@
 import com.zt.common.utils.TreeUtils;
 import com.zt.core.context.User;
 import com.zt.core.context.UserContext;
+import com.zt.core.oss.service.ISysOssConfigService;
+import com.zt.core.oss.service.ISysOssService;
 import com.zt.core.security.BCryptPasswordEncoder;
 import com.zt.core.security.Md5Utils;
 import com.zt.core.sys.model.SysDept;
 import com.zt.core.sys.model.SysUser;
 import com.zt.core.sys.service.ISysUserService;
+import com.zt.life.sys.dto.OssDto;
 import com.zt.modules.sys.dao.SysUserDao;
 import com.zt.modules.sys.dto.RoleDto;
 import com.zt.modules.sys.dto.UserTreeDto;
@@ -34,6 +37,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -60,6 +64,9 @@
     private SysParamsService paramsService;
     @Autowired
     SysMapService sysMapService;
+    @Autowired
+    private ISysOssConfigService sysOssConfigService;
+
 
 
     public List<SysUser> page(QueryFilter queryFilter) {
@@ -159,6 +166,7 @@
 
         entity.setCompanyId(sysDeptService.getCompanyIdByDeptId(entity.getDeptId()));
         // 淇濆瓨鐢ㄦ埛
+        sysOssConfigService.updateOss(entity.getId(), entity.getFiles());
         super.insert(entity);
 
         sysPostUserService.saveOrUpdate(entity.getId(), entity.getPostIdList());
@@ -171,6 +179,7 @@
     public void update(SysUser entity) {
         // 鏇存柊鐢ㄦ埛
         entity.setCompanyId(sysDeptService.getCompanyIdByDeptId(entity.getDeptId()));
+        sysOssConfigService.updateOss(entity.getId(), entity.getFiles());
         super.update(entity);
 
         // 淇濆瓨宀椾綅鐢ㄦ埛鍏崇郴

--
Gitblit v1.9.1