yujian
2019-08-27 d8359ddb48dab5cc797a9d552e11fde571f4920c
fanli/src/main/java/com/yeshi/fanli/util/wx/WXLoginUtil.java
@@ -1,18 +1,18 @@
package com.yeshi.fanli.util.wx;
import java.io.InputStream;
import org.json.JSONException;
import org.json.JSONObject;
import com.qcloud.cos.model.COSObjectSummary;
import com.qcloud.cos.model.ObjectListing;
import com.yeshi.fanli.entity.bus.user.WeiXinUser;
import com.yeshi.fanli.entity.bus.user.WeiXinUserParam;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.entity.FileUploadResult;
import org.yeshi.utils.tencentcloud.COSManager;
import org.yeshi.utils.wx.WXUtil;
import com.yeshi.fanli.entity.bus.user.WeiXinUser;
import com.yeshi.fanli.entity.bus.user.WeiXinUserParam;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
public class WXLoginUtil {
@@ -76,12 +76,17 @@
      return weiXinUser;
   }
   private static WeiXinUser getWeiXinUser(String code) {
   public static WeiXinUser getWeiXinUser(String code) {
      WeiXinUserParam param = getWxParam(code);
      if (param == null) {
         return null;
      }
      return getWeiXinUser(param);
      WeiXinUser weiXinUser = getWeiXinUser(param);
      if (weiXinUser != null && StringUtil.isNullOrEmpty(weiXinUser.getUnionid())
            && !StringUtil.isNullOrEmpty(param.getUnionId())) {
         weiXinUser.setUnionid(param.getUnionId());
      }
      return weiXinUser;
   }
   /**
@@ -95,20 +100,30 @@
      if (user != null) {
         if (!StringUtil.isNullOrEmpty(user.getHeadimgurl())) {
            FileUploadResult result = COSManager.getInstance().uploadFile(
                  HttpUtil.getAsInputStream(user.getHeadimgurl()),
            InputStream asInputStream = HttpUtil.getAsInputStream(user.getHeadimgurl());
            if (asInputStream == null) {
               LogHelper.test("微信头像下载失败: " +user.getUnionid()+ " " + user.getHeadimgurl());
               return user;
            }
            FileUploadResult result = COSManager.getInstance().uploadFile(asInputStream,
                  String.format("/portrait/wx/%s_%s.jpg", user.getUnionid(), System.currentTimeMillis() + ""));
            if (result != null && !StringUtil.isNullOrEmpty(result.getUrl())) {
               user.setHeadimgurl(result.getUrl());
               // COS删除其余头像
//               String prefix = String.format("/portrait/wx/%s_", user.getUnionid());
//               ObjectListing list = COSManager.getInstance().getObjectList(prefix, null, 30);
//               if (list != null && list.getObjectSummaries() != null)
//                  for (COSObjectSummary object : list.getObjectSummaries()) {
//                     if (!result.getUrl().contains(object.getKey())) {
//                        COSManager.getInstance().deleteFile(object.getKey());
//                     }
//                  }
               // String prefix = String.format("/portrait/wx/%s_",
               // user.getUnionid());
               // ObjectListing list =
               // COSManager.getInstance().getObjectList(prefix, null, 30);
               // if (list != null && list.getObjectSummaries() != null)
               // for (COSObjectSummary object : list.getObjectSummaries())
               // {
               // if (!result.getUrl().contains(object.getKey())) {
               // COSManager.getInstance().deleteFile(object.getKey());
               // }
               // }
            } else {
               LogHelper.test("微信头像上传失败: " +user.getUnionid()+ " " + user.getHeadimgurl());
            }
         }
      }
@@ -124,6 +139,7 @@
   }
   private static WeiXinUserParam getWeiXinUserParam(String result) {
      LogHelper.test(result);
      WeiXinUserParam weiXinUserParam = new WeiXinUserParam();
      JSONObject jsonObject = null;
      try {
@@ -139,12 +155,14 @@
      String refreshToken = jsonObject.optString("refresh_token");
      String scope = jsonObject.optString("scope");
      int expires = jsonObject.optInt("expires_in");
      String unionId = jsonObject.optString("unionid");
      weiXinUserParam.setRefreshToken(refreshToken);
      weiXinUserParam.setOpenId(openId);
      weiXinUserParam.setExpires(expires);
      weiXinUserParam.setAccessToken(accessToken);
      weiXinUserParam.setScope(scope);
      weiXinUserParam.setUnionId(unionId);
      return weiXinUserParam;
   }