yujian
2019-09-23 aec36e0e136b55ffeb1d22dd3d7f5c2443b806aa
fanli/src/main/java/com/yeshi/fanli/controller/AuthCallBackController.java
@@ -13,20 +13,25 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.yeshi.fanli.entity.bus.user.UserActiveLog;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionAuthRecord;
import com.yeshi.fanli.exception.taobao.TaoBaoAuthException;
import com.yeshi.fanli.exception.user.UserExtraTaoBaoInfoException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.msg.UserAccountMsgNotificationService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionAuthRecordService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService;
import com.yeshi.fanli.service.inter.user.msg.UserAccountMsgNotificationService;
import com.yeshi.fanli.service.inter.user.tb.TaoBaoUnionAuthRecordService;
import com.yeshi.fanli.service.inter.user.tb.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.VersionUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import net.sf.json.JSONObject;
@@ -51,7 +56,13 @@
   private UserAccountMsgNotificationService userAccountMsgNotificationService;
   @Resource
   private UserInfoModifyRecordService userInfoModifyRecordService;
   @Resource
   private RedisManager redisManager;
   @Resource
   private UserActiveLogService userActiveLogService;
   @RequestMapping(value = "tb")
   public void tb(String code, String state, HttpServletRequest request, HttpServletResponse response) {
@@ -114,7 +125,7 @@
            String relationId = null;
            try {
               TaoKeApiUtil.getRelationId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
               relationId = TaoKeApiUtil.getRelationId(accessToken, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                     TaoBaoConstant.TAOBAO_AUTH_APPSECRET);// 渠道ID
            } catch (TaoBaoAuthException e) {
               if (e.getCode() == TaoBaoAuthException.CODE_NOT_REAL_NAME)
@@ -129,6 +140,8 @@
               LogHelper.test(e.getMsg());
               errCode = 5;
            }
            final String relationId2 = relationId;
            // 异步申请会员ID
            ThreadUtil.run(new Runnable() {
@@ -146,12 +159,17 @@
                     LogHelper.test(uid + "会员备案失败");
                  try {
                     userExtraTaoBaoInfoService.addSpecialId(uid, specialId, taoBaoUid, name, true);
                     if (!StringUtil.isNullOrEmpty(specialId) && !StringUtil.isNullOrEmpty(relationId2))
                        userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindTaoBao, taoBaoUid);
                  } catch (UserExtraTaoBaoInfoException e) {
                     LogHelper.test(e.getMsg());
                  }
               }
            });
            // 稍作延迟
            Thread.sleep(50);
         } else if ("zigou".equalsIgnoreCase(source)) {
            String specialId = null;
@@ -172,6 +190,7 @@
               errCode = 5;
            }
            final String specialId2 = specialId;
            // 异步申请渠道ID
            ThreadUtil.run(new Runnable() {
@@ -187,11 +206,16 @@
                     LogHelper.test(uid + "渠道备案失败");
                  try {
                     userExtraTaoBaoInfoService.addRelationId(uid, relationId, taoBaoUid, name, true);
                     if (!StringUtil.isNullOrEmpty(specialId2) && !StringUtil.isNullOrEmpty(relationId))
                        userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindTaoBao, taoBaoUid);
                  } catch (UserExtraTaoBaoInfoException e) {
                     LogHelper.test(e.getMsg());
                  }
               }
            });
            // 稍作延迟
            Thread.sleep(50);
         } else if ("bind".equalsIgnoreCase(source)) {
@@ -235,6 +259,9 @@
               try {
                  userExtraTaoBaoInfoService.saveUserTaoBaoInfo(uid, relationId, specialId, taoBaoUid, nickName,
                        true);
                  if (!StringUtil.isNullOrEmpty(specialId) && !StringUtil.isNullOrEmpty(relationId))
                     userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindTaoBao, taoBaoUid);
               } catch (UserExtraTaoBaoInfoException e) {
                  LogHelper.test(e.getMsg());
                  errCode = 6;
@@ -262,33 +289,65 @@
         LogHelper.errorDetailInfo(e);
      }
      UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(uid);
      boolean isNewJump = false;
      if (activeLog != null) {
         String platform = null;
         String version = activeLog.getVersionCode();
         if (activeLog.getChannel().equalsIgnoreCase("appstore")) {
            platform = "ios";
         } else {
            platform = "android";
         }
         if (VersionUtil.greaterThan_2_0(platform, version)) {
            isNewJump = true;
         }
      }
      try {
         if (errCode == 0)// 成功
         {
            if ("share".equalsIgnoreCase(source)) {
               // response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_bonusState.html?code=0");
               closeWebPage(response.getWriter());
               if (isNewJump)
                  response.sendRedirect("http://apph5.yeshitv.com/flqWeb/h5/tbauth/success.html");
               else
                  closeWebPage(response.getWriter());
            } else if ("zigou".equalsIgnoreCase(source)) {
               // response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=0");
               closeWebPage(response.getWriter());
               if (isNewJump)
                  response.sendRedirect("http://apph5.yeshitv.com/flqWeb/h5/tbauth/success.html");
               else
                  closeWebPage(response.getWriter());
            } else if ("bind".equalsIgnoreCase(source)) {
               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);
               if (isNewJump)
                  response.sendRedirect("http://apph5.yeshitv.com/flqWeb/h5/tbauth/success.html");
               else {
                  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)) {
               // response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_bonusState.html?code=1");
               closeWebPage(response.getWriter());
               if (isNewJump)
                  response.sendRedirect("http://apph5.yeshitv.com/flqWeb/h5/tbauth/fail.html");
               else
                  closeWebPage(response.getWriter());
            } else if ("zigou".equalsIgnoreCase(source)) {
               // response.sendRedirect("http://apph5.yeshitv.com/apppage/flq_rebateState.html?code=1");
               closeWebPage(response.getWriter());
               if (isNewJump)
                  response.sendRedirect("http://apph5.yeshitv.com/flqWeb/h5/tbauth/fail.html");
               else
                  closeWebPage(response.getWriter());
            } else if ("bind".equalsIgnoreCase(source)) {
               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);
               if (isNewJump)
                  response.sendRedirect("http://apph5.yeshitv.com/flqWeb/h5/tbauth/fail.html");
               else {
                  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) {