yujian
2020-01-18 f4a0f2acc63d7785eab108419a4e16f5f688cb95
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java
@@ -17,26 +17,33 @@
import com.yeshi.fanli.entity.bus.homemodule.FloatAD.FloatADTypeEnum;
import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
import com.yeshi.fanli.entity.bus.user.UserActiveLog;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.entity.config.AppHomeFloatImg;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.log.LogHelper;
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.redpack.RedPackWinNewUserService;
import com.yeshi.fanli.service.inter.redpack.UserTaoLiJinNewbiesService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
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.RedisKeyEnum;
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.jd.JDUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.homemodule.FloatImgDetailVO;
import net.sf.json.JSONObject;
@@ -79,7 +86,13 @@
   private UserActiveLogService userActiveLogService;
   @Resource
   private RedPackWinNewUserService redPackWinNewUserService;
   private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService;
   @Resource
   private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
   @Resource
   private RedisManager redisManager;
   /**
    * s 首页配置信息
@@ -121,13 +134,13 @@
      }
      // 领券帮助链接,1.5.2后生效
      String couponHelp = configService.get("taobao_coupon_help");
      String couponHelp = configService.get(ConfigKeyEnum.taobaoCouponHelp.getKey());
      data.put("couponHelpUrl", couponHelp);
      // 底部网页链接
      String platform = acceptData.getPlatform();
      if ("android".equalsIgnoreCase(platform)) {
         data.put("htmlLink", configService.get("index_html_link_android"));
         data.put("htmlLink", configService.get(ConfigKeyEnum.indexHtmlLinkAndroid.getKey()));
      }
      // 判断新老用户
@@ -141,7 +154,7 @@
         data.put("userTimeType", 1);
      }
      data.put("hotFuctionLink",
            configService.getByVersion("hot_function_url", platform, Integer.parseInt(acceptData.getVersion())));
            configService.getByVersion(ConfigKeyEnum.hotFunctionUrl.getKey(), platform, Integer.parseInt(acceptData.getVersion())));
      out.print(JsonUtil.loadTrueResult(data));
   }
@@ -151,28 +164,33 @@
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getHomeConfigNew", method = RequestMethod.POST)
   public void getHomeConfigNew(AcceptData acceptData, Long uid, PrintWriter out) {
   @RequestMapping(value = "getHomeConfigNew")
   public void getHomeConfigNew(AcceptData acceptData, Long uid, String callback, PrintWriter out) {
      if (uid != null && uid == 0L)
         uid = null;
      String platform = acceptData.getPlatform();
      String version = acceptData.getVersion();
      // 活动弹框
      List<FloatAD> listAD = new ArrayList<FloatAD>();
      List<FloatImgDetailVO> listVO = new ArrayList<FloatImgDetailVO>();
      List<FloatAD> list = floatADService.getValidByPosition(FloatAD.POSITION_INDEX);
      List<FloatAD> list = floatADService.getValidFloatADCache(FloatAD.POSITION_INDEX, null, platform,Integer.parseInt(version) );
      if (list != null && !list.isEmpty())
         listAD.addAll(list);
      for (int i = 0; i < listAD.size(); i++) {
         FloatAD floatAD = listAD.get(i);
         FloatADTypeEnum typeEnum = floatAD.getTypeEnum();
         if (typeEnum == FloatADTypeEnum.newUserRedPack && !redPackWinNewUserService.verifyHasReward(uid, acceptData.getDevice())) {
         if (typeEnum == FloatADTypeEnum.newUserRedPack
               && (!VersionUtil.greaterThan_2_0_5(platform, version)
                     || !userTaoLiJinNewbiesService.verifyHasReward(uid, acceptData.getDevice()))) {
            listAD.remove(i);
            i--;
            continue;
         }
         JumpDetailV2 jumpDetail = floatAD.getJumpDetail();
         if (jumpDetail != null) {
            jumpDetail = jumpDetailV2Service.selectByPrimaryKey(jumpDetail.getId());
@@ -196,10 +214,10 @@
      JSONObject data = new JSONObject();
      data.put("listAD", JsonUtil.getApiCommonGson().toJson(listVO));
      data.put("protocol", configService.get("user_protocol_home_data"));
      data.put("protocol", configService.get(ConfigKeyEnum.userProtocolHomeData.getKey()));
      // 领券帮助链接,1.5.2后生效
      String couponHelp = configService.get("taobao_coupon_help");
      String couponHelp = configService.get(ConfigKeyEnum.taobaoCouponHelp.getKey());
      data.put("couponHelpUrl", couponHelp);
      // 判断新老用户 显示热门功能按钮滑动
@@ -214,10 +232,12 @@
      }
      // 是否显示热门功能按钮
      String platform = acceptData.getPlatform();
      data.put("hotFuctionLink",
            configService.getByVersion("hot_function_url", platform, Integer.parseInt(acceptData.getVersion())));
      out.print(JsonUtil.loadTrueResult(data));
            configService.getByVersion(ConfigKeyEnum.hotFunctionUrl.getKey(), platform, Integer.parseInt(version)));
      if (StringUtil.isNullOrEmpty(callback))
         out.print(JsonUtil.loadTrueResult(data));
      else
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
   }
   /**
@@ -240,7 +260,7 @@
      }
      // 是否需要购物城转链
      boolean convert = "0".equalsIgnoreCase(configService.get("show_taobao_cart_convert")) ? false : true;
      boolean convert = "0".equalsIgnoreCase(configService.get(ConfigKeyEnum.showTaobaoCartConvert.getKey())) ? false : true;
      if (!"cart".equalsIgnoreCase(position) && !convert) {
         out.print(JsonUtil.loadFalseResult(""));
@@ -254,8 +274,8 @@
         clientTBPid = tbPidService.getAndroidDefault();
      }
      String cartJS = configService.get("taobao_cart_js");
      String cartUrl = configService.get("taobao_cart_link");
      String cartJS = configService.get(ConfigKeyEnum.taobaoCartJS.getKey());
      String cartUrl = configService.get(ConfigKeyEnum.taobaoCartLink.getKey());
      if (!convert)// 不转链
      {
         cartUrl = "http://";
@@ -354,8 +374,8 @@
   @RequestMapping(value = "getBindAccountConfig", method = RequestMethod.POST)
   public void getBindAccountConfig(AcceptData acceptData, PrintWriter out) {
      String alipayHelpUrl = configService.get("alipay_help");// 支付宝帮助
      String alipayBindFailUrl = configService.get("alipay_bind_fail_reason");// 支付宝绑定失败原因
      String alipayHelpUrl = configService.get(ConfigKeyEnum.alipayHelp.getKey());// 支付宝帮助
      String alipayBindFailUrl = configService.get(ConfigKeyEnum.alipayBindFailReason.getKey());// 支付宝绑定失败原因
      JSONObject data = new JSONObject();
      data.put("alipayHelp", alipayHelpUrl);
      data.put("alipayBindFailReason", alipayBindFailUrl);
@@ -366,14 +386,14 @@
   public void getUserConfig(AcceptData acceptData, PrintWriter out) {
      try {
         // 用户协议链接
         String serviceProtocol = configService.get("service_protocol_link");
         String serviceProtocol = configService.get(ConfigKeyEnum.serviceProtocolLink.getKey());
         // 隐私条款链接
         String privacyProtocol = configService.get("privacy_protocol_link");
         String privacyProtocol = configService.get(ConfigKeyEnum.privacyProtocolLink.getKey());
         JSONObject data = new JSONObject();
         data.put("serviceProtocolLink", serviceProtocol);
         data.put("privacyProtocolLink", privacyProtocol);
         // 购物车跳转方式(包含jumpDetail与params)
         JSONObject source = JSONObject.fromObject(configService.get("taobao_cart_jump_detail"));
         JSONObject source = JSONObject.fromObject(configService.get(ConfigKeyEnum.taobaoCartJumpDetail.getKey()));
         data.put("taoBaoCart", source);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
@@ -394,10 +414,10 @@
      switch (type) {
      case Constant.SOURCE_TYPE_TAOBAO:
         if ("0".equalsIgnoreCase(configService.get("auto_find_taobao_order")))
         if ("0".equalsIgnoreCase(configService.get(ConfigKeyEnum.autoFindTaobaoOrder.getKey())))
            out.print(JsonUtil.loadFalseResult(1, "暂不支持"));
         else {
            String orderJS = configService.get("taobao_order_parse_js");
            String orderJS = configService.get(ConfigKeyEnum.taobaoOrderParseJS.getKey());
            JSONObject data = new JSONObject();
            try {
               data.put("orderJS", DESUtil.encode(orderJS, StringUtil.getBase64String("YeShiFANLI889*+"),
@@ -436,7 +456,7 @@
   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("showTaoBaoOrder", "0".equalsIgnoreCase(configService.get(ConfigKeyEnum.showTaobaoOrder.getKey()).trim()) ? false : true);
      data.put("taoBaoOrderUrl", "https://main.m.taobao.com/olist/index.html");
      out.print(JsonUtil.loadTrueResult(data));
   }
@@ -444,7 +464,7 @@
   @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);// 是否跳转美洽,不跳转美洽就用原来的
      data.put("meiqia", "1".equalsIgnoreCase(configService.get(ConfigKeyEnum.kefuMeiqia.getKey())) ? true : false);// 是否跳转美洽,不跳转美洽就用原来的
      out.print(JsonUtil.loadTrueResult(data));
      // 设置消息已读
      ThreadUtil.run(new Runnable() {
@@ -465,7 +485,7 @@
   @RequestMapping(value = "getInviteCodeInputHelp", method = RequestMethod.POST)
   public void getInviteCodeInputHelp(AcceptData acceptData, PrintWriter out) {
      JSONObject data = new JSONObject();
      data.put("helpUrl", configService.get("invite_code_input_help"));
      data.put("helpUrl", configService.get(ConfigKeyEnum.inviteCodeInputHelp.getKey()));
      out.print(JsonUtil.loadTrueResult(data));
   }
@@ -478,9 +498,31 @@
    */
   @RequestMapping(value = "getElemeLink")
   public void getElemeLink(AcceptData acceptData, Long uid, String callback, PrintWriter out) {
      UserExtraTaoBaoInfo userInfoExtra = userExtraTaoBaoInfoService.getByUid(uid);
      if (userInfoExtra == null || StringUtil.isNullOrEmpty(userInfoExtra.getRelationId())) {
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1001, "请绑定淘宝")));
         return;
      }
      String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.elmeLink, uid + "");
      String elmeLink = redisManager.getCommonString(key);
      if (StringUtil.isNullOrEmpty(elmeLink)) {
         elmeLink = TaoKeApiUtil.officialActivityConvert(TaoBaoConstant.TAOBAO_ELEME_PID.split("_")[3],
               "1571715733668", userInfoExtra.getRelationId());
         if (!StringUtil.isNullOrEmpty(elmeLink)) {
            redisManager.cacheCommonString(key, elmeLink, 60 * 60);// 缓存1个小时
         }
      }
      JSONObject data = new JSONObject();
      data.put("hongBao", configService.get("eleme_hongbao_link").replace("{用户ID}", uid + ""));
      data.put("goods", configService.get("eleme_goods_link").replace("{用户ID}", uid + ""));
      // data.put("hongBao",
      // configService.get("eleme_hongbao_link").replace("{用户ID}", uid + ""));
      // data.put("goods",
      // configService.get("eleme_goods_link").replace("{用户ID}", uid + ""));
      data.put("hongBao", elmeLink);
      data.put("goods", elmeLink);
      ClientTBPid clientTBPid1 = new ClientTBPid(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_ELEME_PID,
            null, TaoBaoConstant.TAOBAO_ELEME_PID.split("_")[3]);
@@ -491,4 +533,19 @@
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
   }
   /**
    * 获取饿了么的推广链接
    *
    * @param acceptData
    * @param uid
    * @param out
    */
   @RequestMapping(value = "userProtocolListen")
   public void userProtocolListen(AcceptData acceptData, Long uid, int type, PrintWriter out) {
      LogHelper.userProtocolListen(String.format("%s#%s#%s", acceptData.getDevice(), uid, type));
      out.print(JsonUtil.loadTrueResult(""));
   }
}