From 1261c227e7ad47607ee651bbd017ea80eb6d044a Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 14 十二月 2019 18:45:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java
index bfdd421..05da839 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/SpreadUserImgServiceImpl.java
@@ -1,6 +1,9 @@
 package com.yeshi.fanli.service.impl.user;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -8,8 +11,10 @@
 import java.util.List;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.stereotype.Service;
+import org.yeshi.utils.HttpUtil;
 import org.yeshi.utils.ListUtil;
 import org.yeshi.utils.tencentcloud.COSManager;
 
@@ -18,12 +23,12 @@
 import com.yeshi.fanli.entity.bus.invite.SpreadImg;
 import com.yeshi.fanli.entity.bus.invite.SpreadUserImg;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
-import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
 import com.yeshi.fanli.service.inter.user.QrCodeService;
 import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.FileUtil;
 import com.yeshi.fanli.util.StringUtil;
 
 @Service
@@ -90,7 +95,7 @@
 	}
 
 	@Override
-	public List<String> getUserSpreadImg(Long uid) {
+	public List<String> getUserSpreadImg(Long uid, HttpServletRequest request) {
 		List<String> imgList = new ArrayList<>();
 
 		// 鏌ヨ褰撳墠鐢ㄦ埛鐨勬帹骞垮浘
@@ -173,6 +178,15 @@
 			user = userInfoService.selectByPKey(uid);
 
 		String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
+		
+		// 缂撳瓨璺緞
+		String rootPath = request.getSession().getServletContext().getRealPath("/").replace("\\", "/");
+		String projectName = request.getContextPath(); 
+		String path = rootPath.replace(projectName, "/temp");
+		File f = new File(path);
+		if (!f.exists())
+			f.mkdirs();
+		
 		// 娣诲姞鍘熸潵娌℃湁鐨�
 		for (String md5 : dlist) {
 			for (SpreadImg img : spreadImgList)
@@ -184,7 +198,25 @@
 							portrait = Constant.systemCommonConfig.getDefaultPortrait();
 						}
 						
-						String imgUrl = qrCodeService.drawInviteQrCodeNew(img.getUrl(), uid, portrait, null, null, null, inviteCode);
+						// 鑳屾櫙鍥剧墖缂撳瓨
+						int index = img.getUrl().lastIndexOf("/");
+						String fileName = img.getUrl().substring(index + 1);
+
+						InputStream inputStream = null;
+						String cachePath = path  +  fileName;
+						File file = new File(cachePath);
+						if (file.exists()) {
+							inputStream = new FileInputStream(file);
+						} else {
+							// 缃戠粶涓嬭浇
+							InputStream input = HttpUtil.getAsInputStream(img.getUrl());
+							// 缂撳瓨鏈湴
+							FileUtil.saveAsFile(input, cachePath);
+							// 鑾峰彇娴�
+							inputStream = new FileInputStream(file);
+						}
+						
+						String imgUrl = qrCodeService.drawInviteQrCodeNew(inputStream, fileName, uid, portrait, null, null, null, inviteCode);
 						if (!StringUtil.isNullOrEmpty(imgUrl)) {
 							if (imgUrl != null) {
 								addUserInviteImg(uid, imgUrl);
@@ -250,7 +282,13 @@
 	
 	@Override
 	public String drawInviteQrCodeNew(String bgImg, Long uid, String portrait, Integer pX, Integer pY, Integer size, String inviteCode) throws Exception {
-		return qrCodeService.drawInviteQrCodeNew(bgImg, uid, portrait, pX, pY, size, inviteCode);
+		InputStream asInputStream = HttpUtil.getAsInputStream(bgImg);
+		
+		int index = bgImg.lastIndexOf("/");
+		String newUrl = bgImg.substring(index + 1);
+		String urlMd5 = newUrl.substring(0, newUrl.lastIndexOf("."));
+		
+		return qrCodeService.drawInviteQrCodeNew(asInputStream, urlMd5, uid, portrait, pX, pY, size, inviteCode);
 	}
 	
 	
@@ -258,4 +296,12 @@
 	public String getInviteImgToGreet(String bgImg, Long uid,  String portrait, String inviteCode, String content, Date date) throws Exception {
 		return qrCodeService.drawInviteToGreet(bgImg, uid,portrait, inviteCode, content, date);
 	}
+	
+	
+	private static String getProjectRootPath(){ 
+		String rootPath=Thread.currentThread().getContextClassLoader().getResource("").getPath();   
+		rootPath = rootPath.substring(1,rootPath.indexOf("WEB-INF"));   
+		return rootPath;
+	}
+	
 }

--
Gitblit v1.8.0