yujian
2020-06-29 f94a5a1d3fe9bde0e599d41f2d97caea1b08a88d
fanli/src/main/java/com/yeshi/fanli/service/impl/user/QrCodeServiceImpl.java
@@ -17,6 +17,7 @@
import com.yeshi.fanli.dao.mybatis.share.ShareMapper;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.user.QrCodeService;
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
import com.yeshi.fanli.util.Constant;
@@ -26,6 +27,7 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.UserInviteUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import com.yeshi.fanli.vo.user.PullNewRuleVO;
@Service
public class QrCodeServiceImpl implements QrCodeService {
@@ -60,6 +62,12 @@
         InputStream portraitInputStream = HttpUtil.getAsInputStream(portrait); // 头像
         InputStream erCodeInputStream = new FileInputStream(new File(erCodeTempPath)); // 二维码
         // 官方默认头像
         if (portraitInputStream == null) {
            portraitInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official_icon.png");
         }
         // 开始根据 url(背景图), qrCode(二维码), portrait(头像) 生成图片
         ImageUtil.inviteFriendImg(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, inviteCode);
@@ -109,6 +117,11 @@
         InputStream portraitInputStream = HttpUtil.getAsInputStream(portrait); // 头像
         InputStream erCodeInputStream = new FileInputStream(new File(erCodeTempPath)); // 二维码
         // 官方默认头像
         if (portraitInputStream == null) {
            portraitInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official_icon.png");
         }
         // 开始根据 url(背景图), qrCode(二维码), portrait(头像) 生成图片
         ImageUtil.inviteFriendImg(urlInputStream, portraitInputStream, erCodeInputStream, targetPath,
               erCodePostionX, erCodePostionY, erCodeSize, inviteCode);
@@ -161,7 +174,6 @@
         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";
@@ -175,7 +187,13 @@
         portraitInputStream = HttpUtil.getAsInputStream(portrait); // 头像
         erCodeInputStream = new FileInputStream(new File(erCodeTempPath)); // 二维码
      }
      // 官方默认头像
      if (portraitInputStream == null) {
         portraitInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official_icon.png");
      }
      // 开始根据 url(背景图), qrCode(二维码), portrait(头像) 生成图片
      ImageUtil.inviteFriendImgWhitecustom(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, pX, pY,
            size, inviteCode);
@@ -247,6 +265,11 @@
         portraitInputStream = HttpUtil.getAsInputStream(portrait); // 头像
      }
      // 官方默认头像
      if (portraitInputStream == null) {
         portraitInputStream = ImageUtil.class.getClassLoader().getResourceAsStream("image/official_icon.png");
      }
      // 开始根据 url(背景图), qrCode(二维码), portrait(头像) 生成图片
      ImageUtil.drawInviteToGreet(urlInputStream, portraitInputStream, erCodeInputStream, targetPath, inviteCode,
            content, date);
@@ -286,7 +309,8 @@
   
   
   @Override
   public FileUploadResult drawDynamicGoodsPoster(String erCodeUrl, String portrait, String inviteCode, GoodsDetailVO goods) {
   public FileUploadResult drawGoodsQuickhShare(String erCodeUrl, String portrait, String inviteCode,
         String mainPic, GoodsDetailVO goods) {
      // 二维码流
      InputStream erCodeStream = null;
      try {
@@ -309,7 +333,42 @@
      }
      
      // 画图
      InputStream drawStream = ImageUtil.drawGoodsPoster(erCodeStream, portraitStream,inviteCode, goods);
      InputStream drawStream = ImageUtil.drawGoodsQuickhShare(erCodeStream, portraitStream,inviteCode,mainPic, goods);
      // 上传位置
      String uuid = UUID.randomUUID().toString().replace("-", "");
      String upPath = FilePathEnum.shareGoods.getPath() + uuid + "_" + goods.getGoodsId() + "_" + System.currentTimeMillis() + ".png";
      // 上传文件
      return COSManager.getInstance().uploadInputStream(drawStream, upPath);
   }
   @Override
   public FileUploadResult drawDynamicGoodsPoster(String erCodeUrl, String portrait, String inviteCode,
         String mainPic, GoodsDetailVO goods) {
      // 二维码流
      InputStream erCodeStream = null;
      try {
         erCodeStream = QRCodeUtil.getInstance(250).encodeDeleteWhite(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.drawGoodsPoster(erCodeStream, portraitStream,inviteCode,mainPic, goods);
      // 上传位置
      String uuid = UUID.randomUUID().toString().replace("-", "");
      String upPath = FilePathEnum.shareGoods.getPath() + uuid + "_" + goods.getGoodsId() + "_" + System.currentTimeMillis() + ".png";
@@ -362,4 +421,34 @@
      return COSManager.getInstance().uploadInputStream(drawStream, upPath);
   }
   @Override
   public String drawPullNewPoster(Long uid, String portrait, String inviteCode, PullNewRuleVO rule) {
      // 头像流
      InputStream portraitStream = HttpUtil.getAsInputStream(portrait);
      // 生成二维码
      String erCode = UserInviteUtil.getShareUrl(uid);
      InputStream erCodeStream = null;
      try {
         erCodeStream = QRCodeUtil.getInstance(250).encodeDeleteWhite(erCode);
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
      }
      if (erCodeStream == null)
         return null;
      // 画图
      InputStream drawStream = ImageUtil.drawPullNewPoster(erCodeStream,portraitStream, inviteCode, rule);
      if (drawStream == null)
         return null;
      // 上传位置
      String uuid = UUID.randomUUID().toString().replace("-", "");
      String upPath = FilePathEnum.ercodeActivity.getPath() + uuid + "_" +uid + "_" + System.currentTimeMillis() + ".png";
      // 上传文件
       FileUploadResult result = COSManager.getInstance().uploadInputStream(drawStream, upPath);
       if (result == null)
          return null;
       return result.getUrl();
   }
}