From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/QrCodeServiceImpl.java | 223 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 211 insertions(+), 12 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/QrCodeServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/QrCodeServiceImpl.java index 98f6a4d..da92165 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/QrCodeServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/QrCodeServiceImpl.java @@ -4,21 +4,28 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.util.Date; +import java.util.UUID; import javax.annotation.Resource; import org.springframework.stereotype.Service; +import org.yeshi.utils.HttpUtil; +import org.yeshi.utils.QRCodeUtil; +import org.yeshi.utils.entity.FileUploadResult; +import org.yeshi.utils.tencentcloud.COSManager; import com.yeshi.fanli.dao.mybatis.share.ShareMapper; +import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.service.inter.user.QrCodeService; import com.yeshi.fanli.service.inter.user.SpreadUserImgService; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.FilePathEnum; import com.yeshi.fanli.util.FileUtil; import com.yeshi.fanli.util.ImageUtil; import com.yeshi.fanli.util.StringUtil; -import org.yeshi.utils.HttpUtil; -import org.yeshi.utils.QRCodeUtil; -import org.yeshi.utils.tencentcloud.COSManager; +import com.yeshi.fanli.util.UserInviteUtil; +import com.yeshi.fanli.vo.goods.GoodsDetailVO; @Service public class QrCodeServiceImpl implements QrCodeService { @@ -35,12 +42,12 @@ } @Override - public String drawInviteQrCode(String url, Long uid, String portrait) throws IOException { + public String drawInviteQrCode(String url, Long uid, String portrait, String inviteCode) throws IOException { if (url != null && !url.equals("")) { String targetPath = FileUtil.getCacheDir() + "/share_" + uid + "_" + System.currentTimeMillis() + ".jpg"; String erCodeTempPath = FileUtil.getCacheDir() + "/" + uid + "_" + System.currentTimeMillis() + ".jpg"; - String erCode = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/" + String erCode = ("http://" + Constant.wxGZConfig.getLoginHost() + "/" + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid); // 鐢熸垚 try { @@ -54,7 +61,7 @@ InputStream erCodeInputStream = new FileInputStream(new File(erCodeTempPath)); // 浜岀淮鐮� // 寮�濮嬫牴鎹� url(鑳屾櫙鍥�), qrCode(浜岀淮鐮�), portrait(澶村儚) 鐢熸垚鍥剧墖 - ImageUtil.inviteFriendImg(urlInputStream, portraitInputStream, erCodeInputStream, targetPath); + ImageUtil.inviteFriendImg(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, inviteCode); if (new File(targetPath).exists() && new File(targetPath).length() > 0) { // 涓婁紶鏂囦欢 @@ -67,7 +74,7 @@ String imgUrl = COSManager.getInstance() .uploadFile(new File(targetPath), - "ercode/" + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg") + FilePathEnum.ercode.getPath() + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg") .getUrl(); if (new File(erCodeTempPath).exists()) @@ -84,12 +91,12 @@ @Override public String drawInviteQrCode(String url, Long uid, String portrait, int erCodePostionX, int erCodePostionY, - int erCodeSize) throws IOException { + int erCodeSize, String inviteCode) throws IOException { if (!StringUtil.isNullOrEmpty(url)) { String targetPath = FileUtil.getCacheDir() + "/share_" + uid + "_" + System.currentTimeMillis() + ".jpg"; String erCodeTempPath = FileUtil.getCacheDir() + "/" + uid + "_" + System.currentTimeMillis() + ".jpg"; - String erCode = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/" + String erCode = ("http://" + Constant.wxGZConfig.getLoginHost() + "/" + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid); // 鐢熸垚 try { @@ -104,7 +111,7 @@ // 寮�濮嬫牴鎹� url(鑳屾櫙鍥�), qrCode(浜岀淮鐮�), portrait(澶村儚) 鐢熸垚鍥剧墖 ImageUtil.inviteFriendImg(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, - erCodePostionX, erCodePostionY, erCodeSize); + erCodePostionX, erCodePostionY, erCodeSize, inviteCode); if (new File(targetPath).exists() && new File(targetPath).length() > 0) { // 涓婁紶鏂囦欢 @@ -115,8 +122,8 @@ String newUrl = url.substring(index + 1); String urlMd5 = newUrl.substring(0, newUrl.lastIndexOf(".")); - String imgUrl = COSManager.getInstance() - .uploadFile(new File(targetPath), "ercode/" + "ercode_" + uid + "_" + urlMd5 + ".jpg").getUrl(); + String imgUrl = COSManager.getInstance().uploadFile(new File(targetPath), + FilePathEnum.ercode.getPath() + "ercode_" + uid + "_" + urlMd5 + ".jpg").getUrl(); if (new File(erCodeTempPath).exists()) new File(erCodeTempPath).delete(); @@ -130,4 +137,196 @@ return null; } + @Override + public String drawInviteQrCodeNew(InputStream urlInputStream, String urlMd5, Long uid, String portrait, Integer pX, Integer pY, Integer size, + String inviteCode) throws IOException { + if (urlInputStream == null) { + return null; + } + + String targetPath = null; + String erCodeTempPath = null; + InputStream erCodeInputStream = null; // 浜岀淮鐮� + InputStream portraitInputStream = null; // 澶村儚 +// InputStream urlInputStream = HttpUtil.getAsInputStream(url); // 鑳屾櫙 + + String uuid = UUID.randomUUID().toString().replace("-", ""); + if (uid == null) { + targetPath = FileUtil.getCacheDir() + "/share_" + uuid + "_" + System.currentTimeMillis() + ".jpg"; + // 瀹樻柟 閭�璇风爜锛堟棤鏁堢殑锛� + inviteCode = "FLQAPP"; + // 瀹樻柟浜岀淮鐮� + erCodeInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official.png"); + // 瀹樻柟榛樿澶村儚 + portraitInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official_icon.png"); + + } else { + + targetPath = FileUtil.getCacheDir() + "/share_" + uid + "_" + System.currentTimeMillis() + ".jpg"; + erCodeTempPath = FileUtil.getCacheDir() + "/" + uid + "_" + System.currentTimeMillis() + ".jpg"; + + String erCode = UserInviteUtil.getShareUrl(uid); + // 鐢熸垚 + try { + QRCodeUtil.getInstance(250).encode(erCode, erCodeTempPath); + } catch (Exception e) { + e.printStackTrace(); + } + portraitInputStream = HttpUtil.getAsInputStream(portrait); // 澶村儚 + erCodeInputStream = new FileInputStream(new File(erCodeTempPath)); // 浜岀淮鐮� + } + + // 寮�濮嬫牴鎹� url(鑳屾櫙鍥�), qrCode(浜岀淮鐮�), portrait(澶村儚) 鐢熸垚鍥剧墖 + ImageUtil.inviteFriendImgWhitecustom(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, pX, pY, + size, inviteCode); + + // 鍒犻櫎浜岀淮鐮佹枃浠� + if (erCodeInputStream != null) { + erCodeInputStream.close(); + } + if (erCodeTempPath != null && new File(erCodeTempPath).exists()) { + new File(erCodeTempPath).delete(); + } + + // 涓婁紶鏂囦欢鐩稿浣嶇疆 + if (new File(targetPath).exists() && new File(targetPath).length() > 0) { + String fileUrl = null; + if (uid == null) { + fileUrl = FilePathEnum.invitePictureDemo.getPath() + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg"; + } else { + fileUrl = FilePathEnum.ercode.getPath() + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg"; + } + + // 涓婁紶鏂囦欢 + String imgUrl = COSManager.getInstance().uploadFile(new File(targetPath), fileUrl).getUrl(); + + // 鍒犻櫎鏈湴缂撳瓨鏂囦欢 + new File(targetPath).delete(); + + return imgUrl; + } + return null; + } + + @Override + public String drawInviteToGreet(String url, Long uid, String portrait, String inviteCode, String content, Date date) + throws IOException { + + if (StringUtil.isNullOrEmpty(url)) { + return null; + } + + String targetPath = null; + String erCodeTempPath = null; + InputStream erCodeInputStream = null; // 浜岀淮鐮� + InputStream portraitInputStream = null; // 澶村儚 + InputStream urlInputStream = HttpUtil.getAsInputStream(url); // 鑳屾櫙 + + String uuid = UUID.randomUUID().toString().replace("-", ""); + if (uid == null) { + targetPath = FileUtil.getCacheDir() + "/share_" + uuid + "_" + System.currentTimeMillis() + ".jpg"; + // 瀹樻柟 閭�璇风爜锛堟棤鏁堢殑锛� + inviteCode = "FLQAPP"; + // 瀹樻柟浜岀淮鐮� + erCodeInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official.png"); + // 瀹樻柟榛樿澶村儚 + portraitInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official_icon.png"); + + } else { + targetPath = FileUtil.getCacheDir() + "/share_" + uid + "_" + System.currentTimeMillis() + ".jpg"; + erCodeTempPath = FileUtil.getCacheDir() + "/" + uid + "_" + System.currentTimeMillis() + ".jpg"; + String erCode = ("http://" + Constant.wxGZConfig.getLoginHost() + "/" + + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid); + // 鐢熸垚 + try { + QRCodeUtil.getInstance(250).encode(erCode, erCodeTempPath); + } catch (Exception e) { + e.printStackTrace(); + } + erCodeInputStream = new FileInputStream(new File(erCodeTempPath)); + portraitInputStream = HttpUtil.getAsInputStream(portrait); // 澶村儚 + } + + // 寮�濮嬫牴鎹� url(鑳屾櫙鍥�), qrCode(浜岀淮鐮�), portrait(澶村儚) 鐢熸垚鍥剧墖 + ImageUtil.drawInviteToGreet(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, inviteCode, + content, date); + + // 鍒犻櫎浜岀淮鐮佹枃浠� + if (erCodeInputStream != null) { + erCodeInputStream.close(); + } + if (erCodeTempPath != null && new File(erCodeTempPath).exists()) { + new File(erCodeTempPath).delete(); + } + + // 涓婁紶鏂囦欢 + if (new File(targetPath).exists() && new File(targetPath).length() > 0) { + int index = url.lastIndexOf("/"); + String newUrl = url.substring(index + 1); + String urlMd5 = newUrl.substring(0, newUrl.lastIndexOf(".")); + + // 涓婁紶鏂囦欢鐩稿浣嶇疆 + String fileUrl = null; + if (uid == null) { + fileUrl = FilePathEnum.invitePictureDemo.getPath() + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg"; + } else { + fileUrl = FilePathEnum.ercode.getPath() + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg"; + } + + // 涓婁紶 + String imgUrl = COSManager.getInstance().uploadFile(new File(targetPath), fileUrl).getUrl(); + // 鍒犻櫎缂撳瓨鏂囦欢 + new File(targetPath).delete(); + + return imgUrl; + } + return null; + } + + + + @Override + public FileUploadResult drawGoodsPoster(String erCodeUrl, String portrait, GoodsDetailVO goods) { + // 浜岀淮鐮佹祦 + InputStream erCodeStream = null; + try { + erCodeStream = QRCodeUtil.getInstance(250).encode(erCodeUrl); + } catch (Exception e1) { + e1.printStackTrace(); + } + + // 澶村儚 + InputStream portraitStream = null; + if (!StringUtil.isNullOrEmpty(portrait)) { + try { + portraitStream = HttpUtil.getAsInputStream(portrait); + } catch (Exception e) { + e.printStackTrace(); + } + } + if (portraitStream == null) { + portraitStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official_default_head.jpg"); + } + + // 鐢诲浘 + InputStream drawStream = ImageUtil.drawGoodsShareSingle(erCodeStream, portraitStream, goods); + // 涓婁紶浣嶇疆 + String uuid = UUID.randomUUID().toString().replace("-", ""); + String upPath = FilePathEnum.shareXCX.getPath() + uuid + "_" + goods.getGoodsId() + "_" + System.currentTimeMillis() + ".png"; + // 涓婁紶鏂囦欢 + return COSManager.getInstance().uploadInputStream(drawStream, upPath); + } + + + @Override + public FileUploadResult drawGoodsPosterXCX(InputStream erCodeStream,UserInfo user, GoodsDetailVO goods) { + // 鐢诲浘 + InputStream drawStream = ImageUtil.drawGoodsShareXCX(erCodeStream, user, goods); + // 涓婁紶浣嶇疆 + String uuid = UUID.randomUUID().toString().replace("-", ""); + String upPath = FilePathEnum.shareXCX.getPath() + uuid + "_" + goods.getGoodsId() + "_" + System.currentTimeMillis() + ".png"; + // 涓婁紶鏂囦欢 + return COSManager.getInstance().uploadInputStream(drawStream, upPath); + } + } -- Gitblit v1.8.0