yujian
2019-06-12 c007868c62c7da5c9ce1bf0e77d9e5f8619826e4
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ConfigController.java
@@ -12,15 +12,19 @@
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.FloatAD;
import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
import com.yeshi.fanli.entity.config.AppHomeFloatImg;
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.homemodule.FloatADService;
import com.yeshi.fanli.service.inter.msg.MsgDeviceReadStateService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
import net.sf.json.JSONObject;
@@ -48,8 +52,13 @@
   @Resource
   private FloatADService floatADService;
   @Resource
   private JumpDetailV2Service jumpDetailV2Service;
   @Resource
   private MsgDeviceReadStateService msgDeviceReadStateService;
   /**
    * 首页配置信息
    * 
@@ -62,18 +71,18 @@
      if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && !Constant.IS_TEST) {
         appHomeFloatImg = null;
      }
      JSONObject data = new JSONObject();
      if (appHomeFloatImg != null) {
         data.put("floatImg", appHomeFloatImg);
      }
      String notifyImg = configService.getAppHomeFloatNotifyImg();
      if (!StringUtil.isNullOrEmpty(notifyImg)) {
         data.put("floatNotifyImg", notifyImg);
      }
      // 悬浮大图 1.5.2  -2019.3.20
      // 悬浮大图 1.5.2 -2019.3.20
      FloatAD floatAD = floatADService.getEffectiveFloatAD(FloatAD.POSITION_INDEX);
      if (floatAD != null) {
         JSONObject detail = new JSONObject();
@@ -82,7 +91,7 @@
         detail.put("params", floatAD.getParams());
         detail.put("showTime", floatAD.getShowMode());
         detail.put("accountLogin", floatAD.isJumpNeedLogin());
         if (uid != null && userInfoExtraService.isNewUser(uid)) {
            // 新用户
            data.put("floatImgDetail", detail);
@@ -90,11 +99,11 @@
            data.put("floatImgDetail", detail);
         }
      }
      // 领券帮助链接,1.5.2后生效
      String couponHelp = configService.get("taobao_coupon_help");
      data.put("couponHelpUrl", couponHelp);
      // 底部网页链接
      String platform = acceptData.getPlatform();
      if ("android".equalsIgnoreCase(platform)) {
@@ -105,9 +114,17 @@
   }
   @RequestMapping(value = "getTaoBaoCartConfig", method = RequestMethod.POST)
   public void getTaoBaoCartConfig(AcceptData acceptData, Long uid, PrintWriter out) {
   public void getTaoBaoCartConfig(AcceptData acceptData, String position, Long uid, PrintWriter out) {
      if (uid == null || uid <= 0) {
         out.print(JsonUtil.loadFalseResult("用户尚未登录"));
         return;
      }
      // 是否需要购物城转链
      boolean convert = "0".equalsIgnoreCase(configService.get("show_taobao_cart_convert")) ? false : true;
      if (!"cart".equalsIgnoreCase(position) && !convert) {
         out.print(JsonUtil.loadFalseResult(""));
         return;
      }
@@ -120,6 +137,11 @@
      String cartJS = configService.get("taobao_cart_js");
      String cartUrl = configService.get("taobao_cart_link");
      if (!convert)// 不转链
      {
         cartUrl = "http://";
         cartJS = "-";
      }
      String js = null;
      String link = null;
      try {
@@ -145,7 +167,8 @@
   @RequestMapping(value = "getWebConfig", method = RequestMethod.POST)
   public void getWebConfig(AcceptData acceptData, String url, PrintWriter out) {
      JSONObject data = new JSONObject();
      if (url != null && (url.contains("s.click") || url.contains("taobao.com") || url.contains("tmall.com"))) {
      if (url != null && (url.contains("s.click") || url.contains("taobao.com") || url.contains("tmall.com")
            || url.contains("m.tb.cn"))) {
         data.put("baichuan", true);// 采用阿里百川的方式加载webview
         data.put("goodsDetail", true);// 需要拦截商品详情
      } else {
@@ -183,32 +206,74 @@
         JSONObject data = new JSONObject();
         data.put("serviceProtocolLink", serviceProtocol);
         data.put("privacyProtocolLink", privacyProtocol);
         // 购物车跳转方式(包含jumpDetail与params)
         JSONObject source = JSONObject.fromObject(configService.get("taobao_cart_jump_detail"));
         data.put("taoBaoCart", source);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("获取失败"));
         e.printStackTrace();
      }
   }
   /**
    * 订单解析配置
    *
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getOrderParseConfig", method = RequestMethod.POST)
   public void getOrderParseConfig(AcceptData acceptData, PrintWriter out) {
      String orderJS = "var orderId= document.getElementById('tp-bought-root').getElementsByClassName('js-order-container')[0].getElementsByTagName('div')[0].getAttribute('data-id');";
      orderJS += "if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {window.location.href='yestv://taobaoorder#'+orderId;} else {window.handle.showOrder(orderId)}";
      JSONObject data = new JSONObject();
      try {
         data.put("orderJS", DESUtil.encode(orderJS, StringUtil.getBase64String("YeShiFANLI889*+"),
               StringUtil.getBase64String("*M#34f?,")));
         data.put("orderUrl", DESUtil.encode( "https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm",StringUtil.getBase64String("YeShiFANLI889*+"),
               StringUtil.getBase64String("*M#34f?,")));
      } catch (Exception e) {
         e.printStackTrace();
      if ("0".equalsIgnoreCase(configService.get("auto_find_taobao_order")))
         out.print(JsonUtil.loadFalseResult(1, "暂不支持"));
      else {
         String orderJS = configService.get("taobao_order_parse_js");
         JSONObject data = new JSONObject();
         try {
            data.put("orderJS", DESUtil.encode(orderJS, StringUtil.getBase64String("YeShiFANLI889*+"),
                  StringUtil.getBase64String("*M#34f?,")));
            data.put("orderUrl",
                  DESUtil.encode("https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm",
                        StringUtil.getBase64String("YeShiFANLI889*+"), StringUtil.getBase64String("*M#34f?,")));
         } catch (Exception e) {
            e.printStackTrace();
         }
         out.print(JsonUtil.loadTrueResult(data));
      }
   }
   /**
    * 获取订单配置
    *
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getOrderConfig", method = RequestMethod.POST)
   public void getOrderConfig(AcceptData acceptData, PrintWriter out) {
      JSONObject data = new JSONObject();
      // 测试
      data.put("showTaoBaoOrder", "0".equalsIgnoreCase(configService.get("show_taobao_order").trim()) ? false : true);
      data.put("taoBaoOrderUrl", "https://main.m.taobao.com/olist/index.html");
      out.print(JsonUtil.loadTrueResult(data));
   }
   @RequestMapping(value = "getKeFuConfig", method = RequestMethod.POST)
   public void getKeFuConfig(AcceptData acceptData, PrintWriter out) {
      JSONObject data = new JSONObject();
      data.put("meiqia", "1".equalsIgnoreCase(configService.get("kefu_meiqia")) ? true : false);// 是否跳转美洽,不跳转美洽就用原来的
      out.print(JsonUtil.loadTrueResult(data));
      // 设置消息已读
      ThreadUtil.run(new Runnable() {
         @Override
         public void run() {
            msgDeviceReadStateService.setDeviceMsgRead(MsgDeviceReadState.TYPE_KEFU, acceptData.getDevice(),
                  "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2);
         }
      });
   }
}