yujian
2019-12-18 89cc8f054c27f70fcfe16f14554a8a12e0c19e23
fanli/src/main/java/com/yeshi/fanli/service/impl/user/QrCodeServiceImpl.java
@@ -21,6 +21,7 @@
import com.yeshi.fanli.util.FileUtil;
import com.yeshi.fanli.util.ImageUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.UserInviteUtil;
@Service
public class QrCodeServiceImpl implements QrCodeService {
@@ -42,7 +43,7 @@
         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 {
@@ -91,7 +92,7 @@
         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 {
@@ -131,21 +132,20 @@
      }
      return null;
   }
   @Override
   public String drawInviteQrCodeNew(String url, Long uid, String portrait, String inviteCode) throws IOException {
      if (StringUtil.isNullOrEmpty(url)) {
   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 erCodeInputStream = null; // 二维码
      InputStream portraitInputStream = null; // 头像
      InputStream urlInputStream = HttpUtil.getAsInputStream(url); // 背景
//      InputStream urlInputStream = HttpUtil.getAsInputStream(url); // 背景
      String uuid = UUID.randomUUID().toString().replace("-", "");
      if (uid == null) {
         targetPath = FileUtil.getCacheDir() + "/share_" + uuid + "_" + System.currentTimeMillis() + ".jpg";
@@ -155,67 +155,69 @@
         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 = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/"
               + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid);
         String erCode = UserInviteUtil.getShareUrl(uid);
         // 生成
         try {
            QRCodeUtil.getInstance(250).encode(erCode, erCodeTempPath);
         } catch (Exception e) {
            e.printStackTrace();
         }
         urlInputStream = HttpUtil.getAsInputStream(url); // 背景
         portraitInputStream = HttpUtil.getAsInputStream(portrait); // 头像
         erCodeInputStream = new FileInputStream(new File(erCodeTempPath)); // 二维码
      }
      // 开始根据 url(背景图), qrCode(二维码), portrait(头像) 生成图片
      ImageUtil.inviteFriendImg(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, inviteCode);
      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) {
         int index = url.lastIndexOf("/");
         String newUrl = url.substring(index + 1);
         String urlMd5 = newUrl.substring(0, newUrl.lastIndexOf("."));
         String fileUrl= null;
         String fileUrl = null;
         if (uid == null) {
            fileUrl= "ercode/" + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
            fileUrl = "ercode/" + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
         } else {
            fileUrl = "ercode/" + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
            if (new File(erCodeTempPath).exists())
               new File(erCodeTempPath).delete();
         }
         // 上传文件
         String imgUrl = COSManager.getInstance().uploadFile(new File(targetPath), fileUrl).getUrl();
         if (new File(targetPath).exists())
            new File(targetPath).delete();
         // 删除本地缓存文件
         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 {
   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 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";
@@ -225,11 +227,11 @@
         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 = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/"
         String erCode = ("http://" + Constant.wxGZConfig.getLoginHost() + "/"
               + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid);
         // 生成
         try {
@@ -237,13 +239,21 @@
         } catch (Exception e) {
            e.printStackTrace();
         }
         erCodeInputStream = new FileInputStream(new File(erCodeTempPath));
         erCodeInputStream = new FileInputStream(new File(erCodeTempPath));
         portraitInputStream = HttpUtil.getAsInputStream(portrait); // 头像
      }
      // 开始根据 url(背景图), qrCode(二维码), portrait(头像) 生成图片
      ImageUtil.drawInviteToGreet(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, inviteCode, content, date);
      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) {
@@ -252,24 +262,20 @@
         String urlMd5 = newUrl.substring(0, newUrl.lastIndexOf("."));
         // 上传文件相对位置
         String fileUrl= null;
         String fileUrl = null;
         if (uid == null) {
            fileUrl= "ercode/" + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
            fileUrl = "ercode/" + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
         } else {
            fileUrl = "ercode/" + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
            if (new File(erCodeTempPath).exists())
               new File(erCodeTempPath).delete();
         }
         // 上传
         String imgUrl = COSManager.getInstance().uploadFile(new File(targetPath), fileUrl).getUrl();
         if (new File(targetPath).exists())
            new File(targetPath).delete();
         // 删除缓存文件
         new File(targetPath).delete();
         return imgUrl;
      }
      }
      return null;
   }