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 | 86 +++++++++++++++++++++++++++++++++--------- 1 files changed, 67 insertions(+), 19 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 9db9eae..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,22 +11,24 @@ 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; import com.yeshi.fanli.dao.mybatis.share.SpreadUserImgMapper; import com.yeshi.fanli.dao.mybatis.user.SpreadImgMapper; -import com.yeshi.fanli.dao.user.UserInfoDao; 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 @@ -39,7 +44,7 @@ private QrCodeService qrCodeService; @Resource - private UserInfoDao userInfoDao; + private UserInfoService userInfoService; @Resource private UserInfoExtraService userInfoExtraService; @@ -90,7 +95,7 @@ } @Override - public List<String> getUserSpreadImg(Long uid) { + public List<String> getUserSpreadImg(Long uid, HttpServletRequest request) { List<String> imgList = new ArrayList<>(); // 鏌ヨ褰撳墠鐢ㄦ埛鐨勬帹骞垮浘 @@ -170,24 +175,48 @@ UserInfo user = null; if (dlist != null && dlist.size() > 0) - user = userInfoDao.find(UserInfo.class, uid); + user = userInfoService.selectByPKey(uid); - String inviteCode = null; - UserInfoExtra extraInfo = userInfoExtraService.getUserInfoExtra(uid); - if (extraInfo != null) { - inviteCode = extraInfo.getInviteCode(); - } + 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) if (img.getMd5().equalsIgnoreCase(md5)) { // 鐢诲浘 try { + String portrait = user.getPortrait(); + if (StringUtil.isNullOrEmpty(portrait)) { + portrait = Constant.systemCommonConfig.getDefaultPortrait(); + } + + // 鑳屾櫙鍥剧墖缂撳瓨 + int index = img.getUrl().lastIndexOf("/"); + String fileName = img.getUrl().substring(index + 1); - String imgUrl = qrCodeService.drawInviteQrCode(img.getUrl(), uid, - StringUtil.isNullOrEmpty(user.getPortrait()) - ? Constant.systemCommonConfig.getDefaultPortrait() : user.getPortrait(), - inviteCode); + 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); @@ -222,7 +251,7 @@ // } // 鐢熸垚 - UserInfo user = userInfoDao.find(UserInfo.class, uid); + UserInfo user = userInfoService.selectByPKey(uid); try { String imgUrl = qrCodeService.drawInviteQrCode(bgImg, uid, user.getPortrait(), null); return imgUrl; @@ -234,7 +263,7 @@ @Override public String getUserSpreadImg(Long uid, String bgImg, int erCodePostionX, int erCodePostionY, int erCodeSize) { - UserInfo user = userInfoDao.find(UserInfo.class, uid); + UserInfo user = userInfoService.selectByPKey(uid); try { String imgUrl = qrCodeService.drawInviteQrCode(bgImg, uid, user.getPortrait(), erCodePostionX, erCodePostionY, erCodeSize, null); @@ -252,8 +281,27 @@ @Override - public String getInviteImg(Long uid, String bgImg, String inviteCode) throws Exception { - UserInfo user = userInfoDao.find(UserInfo.class, uid); - return qrCodeService.drawInviteQrCode(bgImg, uid, user.getPortrait(), inviteCode); + public String drawInviteQrCodeNew(String bgImg, Long uid, String portrait, Integer pX, Integer pY, Integer size, String inviteCode) throws Exception { + 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); } + + + @Override + 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