admin
2019-04-22 6351f4de939ffd51b5c10a90b21909206d9c94ab
fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java
@@ -20,8 +20,10 @@
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import net.sf.json.JSONObject;
@@ -42,8 +44,12 @@
   @Resource
   private TaoBaoUnionAuthRecordService taoBaoUnionAuthRecordService;
   @Resource
   private RedisManager redisManager;
   @RequestMapping(value = "tb")
   public void tb(String code, String state, HttpServletRequest request, HttpServletResponse response) {
      LogHelper.test("淘宝授权回调:" + code + ":" + state);
      if (StringUtil.isNullOrEmpty(code) || StringUtil.isNullOrEmpty(state)) {
         LogHelper.error("淘宝授权回调出错");
@@ -53,6 +59,14 @@
            e1.printStackTrace();
         }
         return;
      }
      try {
         String key = StringUtil.Md5("taobao-code-" + code);
         if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key)))
            return;
         redisManager.cacheCommonString(key, 1 + "", 5);
      } catch (Exception e) {
      }
      String stateStr = AESUtil.decrypt(state, Constant.UIDAESKEY);
      int errCode = 0;
@@ -82,7 +96,11 @@
         String openUid = data.optString("taobao_open_uid");
         String taoBaoUid = data.optString("taobao_user_id");
         String nickName = data.optString("taobao_user_nick");
         try {
            nickName = URLDecoder.decode(nickName, "UTF-8");
         } catch (Exception e) {
         }
         final String name = nickName;
         // LogHelper.test("uid:" + uid + "\n accessToken:" + accessToken);
         // 获取渠道ID与会员ID
@@ -92,15 +110,33 @@
            if (StringUtil.isNullOrEmpty(relationId))
               LogHelper.test(uid + "渠道备案失败");
            try {
               userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid,nickName, true);
               userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid, nickName, true);
            } catch (UserExtraTaoBaoInfoException e) {
               LogHelper.test(e.getMsg());
               errCode = 5;
            }
         } else if ("zigou".equalsIgnoreCase(source))  {
            // 异步申请会员ID
            ThreadUtil.run(new Runnable() {
               @Override
               public void run() {
                  String specialId = TaoKeApiUtil.getSpecialId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                        TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
                  if (StringUtil.isNullOrEmpty(specialId))
                     LogHelper.test(uid + "会员备案失败");
                  try {
                     userExtraTaoBaoInfoService.addSpecialId(uid, specialId, taoBaoUid, name, true);
                  } catch (UserExtraTaoBaoInfoException e) {
                     LogHelper.test(e.getMsg());
                  }
               }
            });
         } else if ("zigou".equalsIgnoreCase(source)) {
            String specialId = TaoKeApiUtil.getSpecialId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                  TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
            if (StringUtil.isNullOrEmpty(specialId))
               LogHelper.test(uid + "会员备案失败");
            try {
@@ -109,18 +145,37 @@
               LogHelper.test(e.getMsg());
               errCode = 5;
            }
            // 异步申请渠道ID
            ThreadUtil.run(new Runnable() {
               @Override
               public void run() {
                  String relationId = TaoKeApiUtil.getRelationId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                        TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 渠道ID
                  if (StringUtil.isNullOrEmpty(relationId))
                     LogHelper.test(uid + "渠道备案失败");
                  try {
                     userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid, name, true);
                  } catch (UserExtraTaoBaoInfoException e) {
                     LogHelper.test(e.getMsg());
                  }
               }
            });
         } else if ("bind".equalsIgnoreCase(source)) {
            boolean bindInfo = true;
            // 绑定淘宝:V1.5.3
            String relationId = TaoKeApiUtil.getRelationId(accessToken, Constant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 渠道ID
            String relationId = TaoKeApiUtil.getRelationId(accessToken, Constant.TAOBAO_AUTH_APPKEY,
                  TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 渠道ID
            if (StringUtil.isNullOrEmpty(relationId)) {
               LogHelper.test(uid + "渠道备案失败");
               bindInfo = false;
            }
            }
            String specialId = null;
            if(bindInfo) {
            if (bindInfo) {
               specialId = TaoKeApiUtil.getSpecialId(accessToken, Constant.TAOBAO_AUTH_APPKEY,
                     TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
               if (StringUtil.isNullOrEmpty(specialId)) {
@@ -128,20 +183,20 @@
                  bindInfo = false;
               }
            }
            if (!bindInfo) {
               errCode = 5;// 信息获取不全
            } else {
               try {
                  userExtraTaoBaoInfoService.saveUserTaoBaoInfo(uid, relationId, specialId, taoBaoUid, nickName, true);
                  userExtraTaoBaoInfoService.saveUserTaoBaoInfo(uid, relationId, specialId, taoBaoUid, nickName,
                        true);
               } catch (UserExtraTaoBaoInfoException e) {
                  LogHelper.test(e.getMsg());
                  errCode = 6;
               }
            }
         }
         if (!StringUtil.isNullOrEmpty(nickName))
            try {
@@ -156,7 +211,7 @@
         record.setTaoBaoUserNick(nickName);
         record.setCreateTime(new Date());
         taoBaoUnionAuthRecordService.addAuthRecord(record);
      } catch (Exception e) {
         errCode = 4;
         try {
@@ -174,7 +229,10 @@
            } else if ("zigou".equalsIgnoreCase(source)) {
               response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=0");
            } else if ("bind".equalsIgnoreCase(source)) {
               response.getWriter().print("<script>yestv.toast(\"恭喜你,淘宝绑定成功\");yestv.finishPage();</script>");
               String script = String.format(
                     "<script>if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {window.location.href = 'yestv://toast#%s';setTimeout(function(){window.location.href = 'yestv://finishPage';},100);} else {yestv.toast(\"恭喜你,淘宝绑定成功\");yestv.finishPage();}</script>",
                     StringUtil.getBase64String("恭喜你,淘宝绑定成功"));
               response.getWriter().print(script);
            }
         } else {// 失败
            if ("share".equalsIgnoreCase(source)) {
@@ -182,7 +240,10 @@
            } else if ("zigou".equalsIgnoreCase(source)) {
               response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=1");
            } else if ("bind".equalsIgnoreCase(source)) {
               response.getWriter().print("<script>yestv.toast(\"抱歉,淘宝绑定失败\");yestv.finishPage();</script>");
               String script = String.format(
                     "<script>if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {window.location.href = 'yestv://toast#%s';setTimeout(function(){window.location.href = 'yestv://finishPage';},100);} else {yestv.toast(\"抱歉,淘宝绑定失败\");yestv.finishPage();}</script>",
                     StringUtil.getBase64String("抱歉,淘宝绑定失败"));
               response.getWriter().print(script);
            }
         }
      } catch (Exception e) {
@@ -191,4 +252,9 @@
   }
   @RequestMapping(value = "pinduoduo")
   public void pinDuoDuo(HttpServletResponse response) {
   }
}