Parcourir la source

日志配置提交,认证提交

guojia il y a 4 ans
Parent
commit
6d108d7fea

+ 25 - 0
pom.xml

@@ -124,6 +124,31 @@
             <version>1.6.1</version>
         </dependency>
 
+        <!--处理pdf-->
+        <dependency>
+            <groupId>org.apache.pdfbox</groupId>
+            <artifactId>pdfbox</artifactId>
+            <version>2.0.12</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>itextpdf</artifactId>
+            <version>5.5.13.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>itext-asian</artifactId>
+            <version>5.2.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.logstash.logback</groupId>
+            <artifactId>logstash-logback-encoder</artifactId>
+            <version>5.1</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 16 - 0
src/main/java/com/ebei/device/asset/weixin/contorller/AssetProposalController.java

@@ -4,13 +4,27 @@ package com.ebei.device.asset.weixin.contorller;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.ebei.device.asset.weixin.model.entity.AssetProposal;
 import com.ebei.device.asset.weixin.service.AssetProposalService;
+import com.ebei.device.asset.weixin.util.FileUploadDownloadUtil;
 import com.ebei.device.asset.weixin.util.ResponseEx;
 import com.ebei.device.asset.weixin.util.ResponsePageEx;
+import com.google.common.annotations.VisibleForTesting;
+import com.itextpdf.text.Document;
+import com.itextpdf.text.Font;
+import com.itextpdf.text.Image;
+import com.itextpdf.text.PageSize;
+import com.itextpdf.text.pdf.BaseFont;
+import com.itextpdf.text.pdf.PdfPCell;
+import com.itextpdf.text.pdf.PdfPTable;
+import com.itextpdf.text.pdf.PdfWriter;
 import io.swagger.annotations.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.text.SimpleDateFormat;
+import java.util.List;
 import java.util.Map;
 
 
@@ -63,5 +77,7 @@ public class AssetProposalController {
     }
 
 
+
+
 }
 

+ 75 - 0
src/main/java/com/ebei/device/asset/weixin/contorller/AssetRectifyController.java

@@ -0,0 +1,75 @@
+package com.ebei.device.asset.weixin.contorller;
+
+import com.ebei.device.asset.weixin.util.HttpRequestUtils;
+import com.ebei.device.asset.weixin.util.ResponseEx;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpResponse;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.rendering.PDFRenderer;
+import org.springframework.util.Base64Utils;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : AssetRectifyController
+ * @Description : 整改对应 前端控制器
+ * @Date : 2021-04-12 18:33
+ */
+
+@RestController
+@RequestMapping("/assetRectify")
+@Api(value = "assetRectify" , description = "整改相关接口")
+@Slf4j
+public class AssetRectifyController {
+
+
+    @ApiOperation(value="获取pdf转换为图片list")
+    @PostMapping("/getPdfToImage/{taskId}")
+    public ResponseEx<Object> getPdfToImage(@PathVariable Long taskId ) throws Exception {
+
+        InputStream inputStream = HttpRequestUtils.getUrlConnection("http://101.200.225.123/device/assetApp/createHardwareWebPDF/"+taskId+"?preView=true", 1024*1024).getInputStream();
+        PDDocument pdDocument = PDDocument.load(inputStream);
+        int pageCount = pdDocument.getNumberOfPages();
+        PDFRenderer pdfRenderer = new PDFRenderer(pdDocument);
+
+        List<Map<String, Object>> resultinfo = new ArrayList<Map<String, Object>>();
+        Map<String, Object> obj = null;
+        for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
+            // BufferedImage imageb = pdfRenderer.renderImageWithDPI(pageIndex, 105, ImageType.RGB);
+            // 第二个参数数字越大越清晰
+            BufferedImage bufferedImage = null;
+            try {
+                bufferedImage = pdfRenderer.renderImageWithDPI(pageIndex, 150);
+                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+                ImageIO.write(bufferedImage, "jpg", outputStream);// 写入流
+//                FileOutputStream fileOutputStream = null;
+//                fileOutputStream = new FileOutputStream("c:\\usr\\imgeTest\\"+System.currentTimeMillis()+".jpg");
+//                fileOutputStream.write(outputStream.toByteArray());
+                obj = new HashMap<String, Object>();
+                obj.put("index", pageIndex);
+                obj.put("pic", Base64Utils.encodeToString(outputStream.toByteArray()));
+                resultinfo.add(obj);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        pdDocument.close();
+        return ResponseEx.createSuccess(resultinfo);
+    }
+
+}

+ 30 - 0
src/main/java/com/ebei/device/asset/weixin/contorller/LoginController.java

@@ -119,4 +119,34 @@ public class LoginController {
 		}
 		return resultResponse;
 	}
+
+
+	@ApiOperation(value = "修改密码", notes = "修改密码")
+	@GetMapping("updatePassword")
+	public ResponseEx<Object> updatePassword(@RequestParam String userAccount, @RequestParam String oldPassword, @RequestParam String newPassword) {
+
+		AssetTenantUser assetTenantUser = new AssetTenantUser(userAccount);
+		Wrapper<AssetTenantUser> wrapper = new EntityWrapper<>(assetTenantUser);
+		assetTenantUser = assetTenantUserService.selectOne(wrapper);
+		boolean isOk = false;
+		String pwd = assetTenantUser.getPwd();
+		String md5comparePwd = new MD5().getMD5ofStr(oldPassword);
+		if (null != pwd) {
+			if (pwd.equals(oldPassword) || pwd.equals(md5comparePwd)) {
+				isOk = true;
+			}
+		}
+		if (isOk){
+			userSessionManager.clearToken(assetTenantUser.getToken(),true);
+
+			assetTenantUser.setPwd(newPassword);
+			assetTenantUser.setToken(null);
+			assetTenantUserService.updateById(assetTenantUser);
+
+			return ResponseEx.createSuccess("修改成功");
+		}else {
+			return ResponseEx.createError("登陆失败,用户名或密码错误!");
+		}
+
+	}
 }

+ 2 - 1
src/main/resources/application.yml

@@ -1,5 +1,5 @@
 server: 
-  port: 8089
+  port: 8087
   servlet:
     context-path: /device-asset-weixin
 spring: 
@@ -75,6 +75,7 @@ comm:
   white-list:
     - /login/*CheckedLoginInfo**
     - /login/clearToken**
+    - /login/updatePassword**
     - /filestore/**
     - /**error**
     - /**swagger-resources/**

+ 40 - 0
src/main/resources/logback-spring.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<configuration scan="true" scanPeriod="3 seconds">
+    <!--设置日志输出为控制台-->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%logger-%L] - %msg%n</pattern>
+        </encoder>
+    </appender>
+
+    <!--设置日志输出为文件-->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>${log.path:-..}/log/deviceLog.log</File>
+        <rollingPolicy  class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <FileNamePattern>${log.path:-..}/log/deviceLog.%d{yyyy-MM-dd}.zip</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+
+        <layout class="ch.qos.logback.classic.PatternLayout">
+            <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level]  [%thread] [%logger-%L] - %msg%n</Pattern>
+        </layout>
+    </appender>
+
+<!--     <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
+        <destination>127.0.0.1:4560</destination>
+        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
+    </appender> -->
+
+	<logger name="com.ebei.device" level="DEBUG" additivity="false">
+		<appender-ref ref="STDOUT"/>
+		<appender-ref ref="FILE"/>
+	</logger>
+    <root>
+        <level value="WARN"/>
+        <appender-ref ref="STDOUT"/>
+        <appender-ref ref="FILE"/>
+    </root>
+
+</configuration>

+ 48 - 1
src/test/java/com/ebei/device/asset/weixin/DeviceAssetWeixinApplicationTests.java

@@ -1,9 +1,19 @@
 package com.ebei.device.asset.weixin;
 
+
+import com.ebei.device.asset.weixin.util.HttpRequestUtils;
+import org.apache.http.HttpResponse;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.rendering.PDFRenderer;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
-import java.util.UUID;
+import org.springframework.util.Base64Utils;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.util.*;
 
 @SpringBootTest
 class DeviceAssetWeixinApplicationTests {
@@ -15,4 +25,41 @@ class DeviceAssetWeixinApplicationTests {
         System.out.println(uuid);
     }
 
+    @Test
+    public void pdfToImge( ) throws Exception {
+
+        HttpResponse response = null;
+
+        InputStream inputStream = HttpRequestUtils.getUrlConnection("http://101.200.225.123/device/assetApp/createHardwareWebPDF/6896?preView=true", 1024*1024).getInputStream();
+//        InputStream content = new FileInputStream("C:\\usr\\aaaa.pdf");
+        PDDocument pdDocument = PDDocument.load(inputStream);
+        int pageCount = pdDocument.getNumberOfPages();
+        PDFRenderer pdfRenderer = new PDFRenderer(pdDocument);
+
+        List<Map<String, Object>> resultinfo = new ArrayList<Map<String, Object>>();
+        Map<String, Object> obj = null;
+        for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
+        // BufferedImage imageb = pdfRenderer.renderImageWithDPI(pageIndex, 105, ImageType.RGB);
+        // 第二个参数数字越大越清晰
+            BufferedImage bufferedImage = null;
+            try {
+                bufferedImage = pdfRenderer.renderImageWithDPI(pageIndex, 150);
+                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+                ImageIO.write(bufferedImage, "jpg", outputStream);// 写入流
+                FileOutputStream fileOutputStream = null;
+                fileOutputStream = new FileOutputStream("c:\\usr\\imgeTest\\"+System.currentTimeMillis()+".jpg");
+                fileOutputStream.write(outputStream.toByteArray());
+
+                obj = new HashMap<String, Object>();
+                obj.put("index", pageIndex);
+                obj.put("pic", Base64Utils.encodeToString(outputStream.toByteArray()));
+                resultinfo.add(obj);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        pdDocument.close();
+    }
+
+
 }