yujian
2020-01-18 f4a0f2acc63d7785eab108419a4e16f5f688cb95
fanli/src/main/java/com/yeshi/fanli/service/impl/user/QrCodeServiceImpl.java
@@ -12,16 +12,20 @@
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 com.yeshi.fanli.util.UserInviteUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
@Service
public class QrCodeServiceImpl implements QrCodeService {
@@ -70,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())
@@ -118,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();
@@ -134,10 +138,9 @@
   }
   @Override
   public String drawInviteQrCodeNew(String url, Long uid, String portrait, Integer pX, Integer pY, Integer size,
   public String drawInviteQrCodeNew(InputStream urlInputStream, String urlMd5, Long uid, String portrait, Integer pX, Integer pY, Integer size,
         String inviteCode) throws IOException {
      if (StringUtil.isNullOrEmpty(url)) {
      if (urlInputStream == null) {
         return null;
      }
@@ -145,7 +148,7 @@
      String erCodeTempPath = 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) {
@@ -169,8 +172,6 @@
         } catch (Exception e) {
            e.printStackTrace();
         }
         urlInputStream = HttpUtil.getAsInputStream(url); // 背景
         portraitInputStream = HttpUtil.getAsInputStream(portrait); // 头像
         erCodeInputStream = new FileInputStream(new File(erCodeTempPath)); // 二维码
      }
@@ -189,14 +190,11 @@
      // 上传文件相对位置
      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 = "ercode/" + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
            fileUrl = FilePathEnum.invitePictureDemo.getPath() + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
         } else {
            fileUrl = "ercode/" + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
            fileUrl = FilePathEnum.ercode.getPath() + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
         }
         // 上传文件
@@ -270,9 +268,9 @@
         // 上传文件相对位置
         String fileUrl = null;
         if (uid == null) {
            fileUrl = "ercode/" + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
            fileUrl = FilePathEnum.invitePictureDemo.getPath() + "ercode_" + uuid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
         } else {
            fileUrl = "ercode/" + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
            fileUrl = FilePathEnum.ercode.getPath() + "ercode_" + uid + "_" + System.currentTimeMillis() + "_" + urlMd5 + ".jpg";
         }
         // 上传
@@ -284,5 +282,51 @@
      }
      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);
   }
}