admin
2019-04-11 6f3eb63c05041b388a7252bdd42494848f237b3c
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -16,7 +16,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.BigDecimalUtil;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.IPUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.NumberUtil;
@@ -33,16 +33,11 @@
import com.yeshi.fanli.entity.bus.homemodule.Special;
import com.yeshi.fanli.entity.bus.homemodule.SuperSpecial;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.bus.recommend.Honest;
import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
import com.yeshi.fanli.entity.bus.recommend.RecommendBannerV2;
import com.yeshi.fanli.entity.bus.recommend.RecommendSection;
import com.yeshi.fanli.entity.bus.recommend.RecommendSectionGoods;
import com.yeshi.fanli.entity.bus.recommend.RecommendSpecial;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBannerV2;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendSection;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendSpecial;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.ShamUser;
@@ -53,7 +48,7 @@
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.goods.ScanHistoryV2;
import com.yeshi.fanli.entity.system.System;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.system.SystemClientParams;
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.PidUser;
@@ -67,23 +62,23 @@
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.goods.CommonGoodsException;
import com.yeshi.fanli.exception.goods.ScanHistoryException;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException;
import com.yeshi.fanli.exception.user.UserCustomSettingsException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.JumpDetailService;
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.RecommendBannerService;
import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
import com.yeshi.fanli.service.inter.goods.ScanHistoryV2Service;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerV2Service;
import com.yeshi.fanli.service.inter.goods.SuperRecommendSectionService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendSpecialService;
import com.yeshi.fanli.service.inter.goods.TaoBaoCouponService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
@@ -94,24 +89,28 @@
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.order.ShareGoodsActivityOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.ShamUserService;
import com.yeshi.fanli.service.inter.user.ShareManageService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserCustomSettingsService;
import com.yeshi.fanli.service.inter.user.UserGoodsStorageService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
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.TimeUtil;
import com.yeshi.fanli.util.Utils;
import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
import com.yeshi.fanli.util.factory.MonitorFactory;
import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.user.UserSettingsVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -124,28 +123,19 @@
   private RecommendBannerService recommendService;
   @Resource
   private SystemService systemService;
   private BusinessSystemService businessSystemService;
   @Resource
   private SuperRecommendBannerService superRecommendBannerService;
   @Resource
   private SuperRecommendSectionService superRecommendSectionService;
   @Resource
   private SuperRecommendSpecialService superRecommendSpecialService;
   @Resource
   private RecommendSectionGoodsService recommendSectionGoodsService;
   @Resource
   private OrderService orderService;
   @Resource
   private ScanHistoryV2Service scanHistoryV2Service;
   @Resource
   private ShareManageService shareManageService;
   @Resource
   private ConfigService configService;
@@ -225,92 +215,22 @@
   @Resource
   private JumpDetailV2Service jumpDetailV2Service;
   @RequestMapping(value = "getrecommendsection")
   public void getRecommendSection(AcceptData acceptData, int index, PrintWriter out) {
   @Resource
   private UserCustomSettingsService userCustomSettingsService;
      if (index < 0) {
         index = 0;
      }
   @Resource
   private ShareGoodsActivityOrderService shareGoodsActivityOrderService;
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
      }
      List<SuperRecommendSection> superRecommendSectionList = superRecommendSectionService
            .getSuperRecommendSectionBySystemId(system.getId());
      List<RecommendSection> recommendSectionList = null;
      for (SuperRecommendSection superRecommendSection : superRecommendSectionList) {
         if (recommendSectionList == null) {
            recommendSectionList = new ArrayList<RecommendSection>();
         }
         RecommendSection recommendSection = superRecommendSection.getRecommendSection();
   @Resource
   private UserInfoExtraService userInfoExtraService;
         // 暂时改变淘特价的跳转地址
         if (system.getId() == 7) {
            recommendSection.setJumpUrl(recommendSection.getJumpUrl().replace("column.html", "column_ttj.html"));
         }
         recommendSectionList.add(recommendSection);
      }
      if (recommendSectionList == null) {
         out.print(JsonUtil.loadFalseResult(1, "暂无数据"));
         return;
      }
      Utils.sort(recommendSectionList);
      int size = recommendSectionList.size();
      List<RecommendSectionGoods> recommendSectionGoodsList = null;
      JSONObject data = new JSONObject();
      data.put("count", size);
      JSONArray dataArr = new JSONArray();
      JSONObject validData = null;
      Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
      BigDecimal proportion = manageService.getFanLiRate();
      Map<Long, List<RecommendSectionGoods>> map = recommendSectionGoodsService.getAllSectionGoodsMap();
      for (int i = 0; i < size; i++) {
         validData = new JSONObject();
         RecommendSection recommendSection = recommendSectionList.get(i);
         recommendSectionGoodsList = map.get(recommendSection.getId());
         if (recommendSectionGoodsList == null) {
            continue;
         }
         Utils.sort(recommendSectionGoodsList);
         if (recommendSection.getCounts() < recommendSectionGoodsList.size()) {
            recommendSectionGoodsList = recommendSectionGoodsList.subList(0, recommendSection.getCounts());
         }
         validData.put("count", recommendSectionGoodsList.size());
         validData.put("recommendSection", gson.toJson(recommendSection));
         // 替换TaoBaoGoodsBrief
         JSONArray array = new JSONArray();
         Gson gson2 = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
         for (RecommendSectionGoods rss : recommendSectionGoodsList) {
            JSONObject obj = JSONObject.fromObject(gson2.toJson(rss));
            String json = gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(
                  gson2.fromJson(obj.optJSONObject("taoBaoGoodsBrief").toString(), TaoBaoGoodsBrief.class),
                  proportion.toString(), ""));
            obj.put("taoBaoGoodsBrief", json);
            array.add(obj);
         }
         validData.put("recommendSectionGoodsList", array);
         dataArr.add(validData);
      }
      data.put("data", dataArr);
      String result = JsonUtil.loadTrueResult(data);
      if (Constant.IS_OUTNET)
         redisManager.cacheCommonString("client-api-getRecommendSection", result, 3 * 60);
      out.print(result);
      return;
   }
   @Resource
   private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
   @RequestMapping(value = "getHonestList")
   public void getHonestList(AcceptData acceptData, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      List<Honest> honestList = null;
      List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
      if ((Integer.parseInt(acceptData.getVersion()) >= 20 && "android".equalsIgnoreCase(acceptData.getPlatform()))
@@ -477,7 +397,8 @@
   @RequestMapping(value = "getrecommendspecial")
   public void getRecommendSpecial(AcceptData acceptData, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
@@ -488,25 +409,28 @@
      if (!"1".equals(version) && "android".equalsIgnoreCase(acceptData.getPlatform())) {
         jumpDetail = jumpDetailService.getlastJumpDetailCache();
      }
      List<RecommendSpecial> recommendSpecialList = null;
      List<SuperRecommendSpecial> superRecommendSpecialList = superRecommendSpecialService
            .getSuperRecommendSpecialBySystemId(system.getId());
      if (superRecommendSpecialList != null && superRecommendSpecialList.size() > 0) {
      List<RecommendSpecial> recommendSpecialList = null;
      for (SuperRecommendSpecial superRecommendSpecial : superRecommendSpecialList) {
         if (recommendSpecialList == null) {
            recommendSpecialList = new ArrayList<RecommendSpecial>();
         recommendSpecialList = new ArrayList<RecommendSpecial>();
         for (SuperRecommendSpecial superRecommendSpecial : superRecommendSpecialList) {
            RecommendSpecial recommendSpecial = superRecommendSpecial.getRecommendSpecial();
            if (jumpDetail != null) {
               recommendSpecial.setJumpDetail(jumpDetail);
            }
            recommendSpecialList.add(recommendSpecial);
         }
         RecommendSpecial recommendSpecial = superRecommendSpecial.getRecommendSpecial();
         if (jumpDetail != null) {
            recommendSpecial.setJumpDetail(jumpDetail);
         }
         recommendSpecialList.add(recommendSpecial);
      }
      if (recommendSpecialList == null || recommendSpecialList.size() == 0) {
         out.print(JsonUtil.loadFalseResult(1, "暂无数据"));
         return;
      }
      JSONObject data = new JSONObject();
      data.put("count", recommendSpecialList.size());
      Gson gson = new Gson();
@@ -519,7 +443,8 @@
   @RequestMapping(value = "guessLike", method = RequestMethod.POST)
   public void guessLike(AcceptData acceptData, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
@@ -557,7 +482,8 @@
   @RequestMapping(value = "getrecommendbanner")
   public void getRecommendBanner(AcceptData acceptData, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      JSONObject json = new JSONObject();
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
@@ -624,48 +550,42 @@
         out.print(JsonUtil.loadFalseResult(1, "请上传id"));
         return;
      }
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      // 淘特价
      if (system.getId() == 7) {
         system = systemService.getSystem("ANDROID", Constant.systemCommonConfig.getAndroidPackageName());
      }
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
      }
      // 获取会员推广位或者默认推广位
      TaoBaoGoodsBrief simpleGoods = null;
      try {
         simpleGoods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(id));
      } catch (NumberFormatException e2) {
         e2.printStackTrace();
      } catch (TaobaoGoodsDownException e2) {
         e2.printStackTrace();
      }
      if (simpleGoods == null) {
         out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
         return;
      }
      // 获取淘客参数
      ClientTBPid clientTBPid = null;
      // 用户已经登录
      if (!StringUtil.isNullOrEmpty(uid) && Long.parseLong(uid) > 0) {
         TBPid tbPid = null;
         if (acceptData.getPlatform().equalsIgnoreCase("android")) {
            tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_ANDROID);
            if (tbPid != null) {
               String siteId = tbPid.getPid().split("_")[2];
               String adzoneId = tbPid.getPid().split("_")[3];
               TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
               clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
            } else {
               clientTBPid = tbPidService.getAndroidDefault();
            }
         } else {
            tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_IOS);
            if (tbPid != null) {
               String siteId = tbPid.getPid().split("_")[2];
               String adzoneId = tbPid.getPid().split("_")[3];
               TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
               clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
            } else {
               clientTBPid = tbPidService.getIOSDefault();
            }
         }
      if (simpleGoods.getMaterialLibType() != null && simpleGoods.getMaterialLibType() == 1) {
         String pid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT;
         clientTBPid = new ClientTBPid(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
               pid.split("_")[2], pid.split("_")[3]);
      } else {
         if (acceptData.getPlatform().equalsIgnoreCase("android"))
         if (acceptData.getPlatform().equalsIgnoreCase("android")) {
            clientTBPid = tbPidService.getAndroidDefault();
         else
         } else {
            clientTBPid = tbPidService.getIOSDefault();
         }
      }
      TaoBaoGoodsBrief tb = null;
@@ -768,11 +688,6 @@
      } else {
         out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
         ThreadUtil.run(new Runnable() {
            public void run() {
               recommendSectionGoodsService.deleteRecommendSectionGoodsByTbAuctionId(Long.parseLong(id));
            }
         });
      }
      long end = java.lang.System.currentTimeMillis();
      java.lang.System.out.println("耗时:" + (end - begin));
@@ -789,7 +704,8 @@
         out.print(JsonUtil.loadFalseResult(1, "请上传id"));
         return;
      }
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
@@ -808,38 +724,11 @@
      // 获取淘客参数
      ClientTBPid clientTBPid = null;
      // 用户已经登录
      if (!StringUtil.isNullOrEmpty(uid)) {
         TBPid tbPid = null;
         if (acceptData.getPlatform().equalsIgnoreCase("android")) {
            tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_ANDROID);
            if (tbPid != null) {
               String siteId = tbPid.getPid().split("_")[2];
               String adzoneId = tbPid.getPid().split("_")[3];
               TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
               clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
            } else {
               clientTBPid = tbPidService.getAndroidDefault();
            }
         } else {
            tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_IOS);
            if (tbPid != null) {
               String siteId = tbPid.getPid().split("_")[2];
               String adzoneId = tbPid.getPid().split("_")[3];
               TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
               clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
            } else {
               clientTBPid = tbPidService.getIOSDefault();
            }
         }
      } else {
         if (acceptData.getPlatform().equalsIgnoreCase("android"))
            clientTBPid = tbPidService.getAndroidDefault();
         else
            clientTBPid = tbPidService.getIOSDefault();
      }
      if (acceptData.getPlatform().equalsIgnoreCase("android"))
         clientTBPid = tbPidService.getAndroidDefault();
      else
         clientTBPid = tbPidService.getIOSDefault();
      LogHelper.test("获取PID耗时:" + (java.lang.System.currentTimeMillis() - startTime));
@@ -1092,25 +981,9 @@
      if (!StringUtil.isNullOrEmpty(uid)) {
         TBPid tbPid = null;
         if (acceptData.getPlatform().equalsIgnoreCase("android")) {
            tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_ANDROID);
            if (tbPid != null) {
               String siteId = tbPid.getPid().split("_")[2];
               String adzoneId = tbPid.getPid().split("_")[3];
               TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
               clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
            } else {
               clientTBPid = tbPidService.getAndroidDefault();
            }
            clientTBPid = tbPidService.getAndroidDefault();
         } else {
            tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_IOS);
            if (tbPid != null) {
               String siteId = tbPid.getPid().split("_")[2];
               String adzoneId = tbPid.getPid().split("_")[3];
               TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
               clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
            } else {
               clientTBPid = tbPidService.getIOSDefault();
            }
            clientTBPid = tbPidService.getIOSDefault();
         }
      } else {
@@ -1156,7 +1029,8 @@
   // 根据商品获取推荐
   @RequestMapping(value = "getgoodsrecommend", method = RequestMethod.POST)
   public void getGoodsRecommend(final AcceptData acceptData, long id, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
@@ -1192,16 +1066,6 @@
                        goodsList.add(gds);
                  }
            }
         }
         // 需要另做推荐
         if (goodsList.size() < 6) {
            List<RecommendSectionGoods> list = recommendSectionGoodsService.getSectionGoods(10);
            if (list != null)
               for (int i = 0; i < list.size(); i++) {
                  if (goodsList.size() < 6)
                     goodsList.add(list.get(i).getTaoBaoGoodsBrief());
               }
         }
      }
@@ -1259,7 +1123,7 @@
      String[] orderArr = order.split(",");
      for (String tbOrder : orderArr) {
         Order or = new Order();
         or.setBeizhu("系统添加");
         or.setBeizhu("接口添加");
         or.setCreatetime(java.lang.System.currentTimeMillis());
         or.setDrawbackTime(0L);
         or.setOrderId(tbOrder.trim());
@@ -1292,7 +1156,8 @@
         return;
      }
      page = page + 1;
      System sys = systemService.getSystem(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem sys = businessSystemService.getBusinessSystem(acceptData.getPlatform(),
            acceptData.getPackages());
      if (sys == null) {
         out.print(JsonUtil.loadFalseResult(1, "不存在该系统"));
         return;
@@ -1337,7 +1202,8 @@
   @RequestMapping(value = "deletescanhistory", method = RequestMethod.POST)
   public void deleteScanHistory(AcceptData acceptData, String type, String uid, String ids, PrintWriter out) {
      System sys = systemService.getSystem(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem sys = businessSystemService.getBusinessSystem(acceptData.getPlatform(),
            acceptData.getPackages());
      if (sys == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
@@ -1449,7 +1315,7 @@
               for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs()) {
                  if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null
                        && goods.getCouponAmount().compareTo(new BigDecimal("5")) >= 0
                        && goods.getBiz30day() > 1000)
                        && goods.getBiz30day() > 1000 && !StringUtil.isNullOrEmpty(goods.getPictUrlWhite()))
                     goodsList.add(goods);
               }
               try {
@@ -1502,33 +1368,16 @@
   @RequestMapping(value = "getRecommendInfo")
   public void getRecommendHomeInfo(AcceptData acceptData, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
      }
      // 首页Banner
      List<RecommendBannerV2> listBanner = null;
      List<SuperRecommendBannerV2> listRecommendBanner = superRecommendBannerV2Service
            .getSuperRecommendBannerV2sBySystem(system);
      if (listRecommendBanner != null && listRecommendBanner.size() > 0) {
         listBanner = new ArrayList<RecommendBannerV2>();
         for (SuperRecommendBannerV2 superRecommendBanner : listRecommendBanner) {
            RecommendBannerV2 recommendBanner = superRecommendBanner.getRecommendBanner();
            // 淘特价暂时修改
            if (system.getId() == 7) {
               recommendBanner.getJumpDetail().setActivity(recommendBanner.getJumpDetail().getActivity()
                     .replace("com.yeshi.ec.rebate.myapplication", "com.yeshi.ec.taospecial"));
            }
            listBanner.add(recommendBanner);
         }
      }
      List<RecommendBannerV2> listBanner = superRecommendBannerV2Service
            .getSuperRecommendBannerV2sBySystem(system.getId());
      JSONObject root = new JSONObject();
      root.put("banner", listBanner);
@@ -1606,9 +1455,11 @@
    * @param out
    */
   @RequestMapping(value = "getNewRecommendInfo")
   public void getNewRecommendInfo(AcceptData acceptData, String specialCard, String swiperCard, PrintWriter out) {
   public void getNewRecommendInfo(AcceptData acceptData, Long uid, String specialCard, String swiperCard,
         PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
@@ -1620,14 +1471,8 @@
            listswiper = swiperPictureService.getByBannerCard(swiperCard);
            if (listswiper != null && listswiper.size() > 0) {
               for (SwiperPicture swiperPicture : listswiper) {
                  swiperPicture.setBannerId(null);
                  swiperPicture.setCreatetime(null);
                  swiperPicture.setUpdatetime(null);
                  swiperPicture.setState(null);
                  swiperPicture.setRemark(null);
               }
            if (listswiper == null) {
               listswiper = new ArrayList<SwiperPicture>();
            }
         } catch (Exception e) {
@@ -1645,12 +1490,6 @@
            if (listSpecial != null && listSpecial.size() > 0) {
               for (Special special : listSpecial) {
                  special.setCreatetime(null);
                  special.setUpdatetime(null);
                  special.setState(null);
                  special.setRemark(null);
                  special.setCard(null);
                  special.setCardId(null);
                  if ("限时秒杀".equals(special.getName())) {
                     miaoShaSpecial = special;
@@ -1664,6 +1503,7 @@
                     // 其他专题
                     specialList.add(special);
                  }
               }
            }
@@ -1697,16 +1537,17 @@
      }
      JSONObject root = new JSONObject();
      root.put("banner", listswiper);
      root.put("honest", honestList);
      root.put("special", specialList);
      root.put("banner", JsonUtil.getApiCommonGson().toJson(listswiper));
      root.put("honest", JsonUtil.getApiCommonGson().toJson(honestList));
      root.put("special", JsonUtil.getApiCommonGson().toJson(specialList));
      root.put("miaoSha", msJSON);
      // 增加邀请有奖
      JSONObject invite = new JSONObject();
      JumpDetailV2 jumpDetail = jumpDetailV2Service.getByTypeCache("invite");
      invite.put("jumpDetail", jumpDetail);
      invite.put("picture", "http://ec-1255749512.file.myqcloud.com/resource/weex/img/invite_input_img.png");
      invite.put("picture", configService.get("home_invite_banner"));
      if ("ios".equalsIgnoreCase(acceptData.getPlatform())
            && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
@@ -1717,7 +1558,16 @@
         if (("android".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) > 30)
               || ("ios".equalsIgnoreCase(acceptData.getPlatform())
                     && Integer.parseInt(acceptData.getVersion()) > 37)) {
            root.put("invite", invite);
            if (uid != null) {
               try {
                  UserSettingsVO vo = userCustomSettingsService.getMySettings(uid);
                  if (vo == null || vo.getNoInvitationBonus() == null || vo.getNoInvitationBonus() == 0)// 没有关闭邀请
                     root.put("invite", invite);
               } catch (UserCustomSettingsException e) {
                  e.printStackTrace();
               }
            } else
               root.put("invite", invite);
         }
      }
@@ -1731,10 +1581,12 @@
    * @param acceptData
    * @param id
    * @param uid
    * @param pageSource
    *            页面来源
    * @param out
    */
   @RequestMapping(value = "getgoodsinfo", method = RequestMethod.POST)
   public void getGoodsInfo(AcceptData acceptData, String id, String uid, PrintWriter out) {
   public void getGoodsInfo(AcceptData acceptData, String id, String uid, String from, PrintWriter out) {
      if ("0".equalsIgnoreCase(uid)) {
         uid = "";
@@ -1745,7 +1597,8 @@
         return;
      }
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
@@ -1765,127 +1618,112 @@
      // 获取淘客参数
      ClientTBPid clientTBPid = null;
      if (StringUtil.isNullOrEmpty(uid)) {
         // 用户未登录
         if (acceptData.getPlatform().equalsIgnoreCase("android")) {
            clientTBPid = tbPidService.getAndroidDefault();
         } else {
            clientTBPid = tbPidService.getIOSDefault();
         }
      // 用户未登录
      if (acceptData.getPlatform().equalsIgnoreCase("android")) {
         clientTBPid = tbPidService.getAndroidDefault();
      } else {
         // 用户已经登录
         TBPid tbPid = null;
         if (acceptData.getPlatform().equalsIgnoreCase("android")) {
            tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_ANDROID);
            if (tbPid == null) {
               clientTBPid = tbPidService.getAndroidDefault();
            } else {
               String siteId = tbPid.getPid().split("_")[2];
               String adzoneId = tbPid.getPid().split("_")[3];
               TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
               clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
            }
         } else {
            tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_IOS);
            if (tbPid == null) {
               clientTBPid = tbPidService.getIOSDefault();
            } else {
               String siteId = tbPid.getPid().split("_")[2];
               String adzoneId = tbPid.getPid().split("_")[3];
               TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
               clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
            }
         }
         clientTBPid = tbPidService.getIOSDefault();
      }
      LogHelper.test("获取PID耗时:" + (java.lang.System.currentTimeMillis() - startTime));
      final String clientPid = clientTBPid.getPid();
      final List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
      // 是否在服务端进行转链
      boolean convertInServer = configService.isConvertTaoBaoLinkInServer();
      List<String> taskList = new ArrayList<>();
      // 获取商品基本信息
      taskList.add("goods");
      JSONObject ticket = new JSONObject();
      TaoBaoGoodsBrief goods = null;
      taskList.stream().parallel().forEach(task -> {
         if (task.equalsIgnoreCase("goods")) {
            JSONObject ticket = new JSONObject();
            TaoBaoGoodsBrief goods = null;
            if (!convertInServer) {
               try {
                  goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(id));
               } catch (TaobaoGoodsDownException e) {
                  // 商品下架
                  ThreadUtil.run(new Runnable() {
                     public void run() {
                        taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id));
                     }
                  });
               }
            } else {
               String appId = clientPid.split("_")[2];
               TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
      if (!convertInServer) {
         try {
            goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(Long.parseLong(id));
            if (goods == null) {
               TaoKeAppInfo app = new TaoKeAppInfo();
               app.setAdzoneId(clientPid.split("_")[3]);
               app.setAppKey(config.getAppKey());
               app.setAppSecret(config.getAppSecret());
               app.setPid(clientPid);
               try {
                  goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
                  if (goods != null) {
                     ticket.put("clickUrl", goods.getAuctionUrl());
                     // 测试使用
                     ticket.put("couponUrl", goods.getCouponLink());
                     data.put("ticket", ticket);
                  }
               } catch (NumberFormatException e) {
                  e.printStackTrace();
               } catch (TaobaoGoodsDownException e) {
               app.setAppKey(TaoBaoConstant.TAOBAO_COMMON_APPKEY);
               app.setAppSecret(TaoBaoConstant.TAOBAO_COMMON_APPSECRET);
               app.setPid(TaoBaoConstant.TAOBAO_COMMON_PID);
               app.setAdzoneId(TaoBaoConstant.TAOBAO_COMMON_PID.split("_")[3]);
               goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
               final TaoBaoGoodsBrief finalGoods = goods;
               if (goods != null) {
                  ThreadUtil.run(new Runnable() {
                     @Override
                     public void run() {
                        taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id));
                        taoBaoGoodsCacheUtil.saveCommonTaoBaoGoodsInfo(finalGoods);
                     }
                  });
               }
            }
         } catch (TaobaoGoodsDownException e) {
            // 商品下架
            ThreadUtil.run(new Runnable() {
               public void run() {
                  taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id));
               }
            });
            if (goods != null) {
               goodsList.add(goods);
               final TaoBaoGoodsBrief newGoods = goods;
               ThreadUtil.run(new Runnable() {
                  public void run() {
                     try {
                        // 更新商品
                        LogHelper.test("更新商品详情:" + newGoods.getAuctionId());
                        taoBaoGoodsUpdateService.updateTaoBaoGoods(newGoods);
                     } catch (TaobaoGoodsUpdateException e) {
                     }
                  }
               });
            }
         }
      });
      } else {
         final String clientPid = clientTBPid.getPid();
         String appId = clientPid.split("_")[2];
         TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
         TaoKeAppInfo app = new TaoKeAppInfo();
         app.setAdzoneId(clientPid.split("_")[3]);
         app.setAppKey(config.getAppKey());
         app.setAppSecret(config.getAppSecret());
         app.setPid(clientPid);
         try {
            goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
            if (goods != null) {
               ticket.put("clickUrl", goods.getAuctionUrl());
               // 测试使用
               ticket.put("couponUrl", goods.getCouponLink());
               data.put("ticket", ticket);
            }
            if (goods.getTkRate() == null || new BigDecimal(0).compareTo(goods.getTkRate()) == 0) {
               TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app);
               if (linkInfo != null) {
                  goods.setAuctionUrl(linkInfo.getAuctionUrl());
                  goods.setCouponLink(linkInfo.getCouponLink());
                  goods.setTkRate(linkInfo.getTkRate());
               }
            }
         } catch (NumberFormatException e) {
            e.printStackTrace();
         } catch (TaobaoGoodsDownException e) {
            ThreadUtil.run(new Runnable() {
               public void run() {
                  taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id));
               }
            });
         }
      }
      if (goods != null) {
         goodsList.add(goods);
         final TaoBaoGoodsBrief newGoods = goods;
         ThreadUtil.run(new Runnable() {
            public void run() {
               try {
                  // 更新商品
                  LogHelper.test("更新商品详情:" + newGoods.getAuctionId());
                  taoBaoGoodsUpdateService.updateTaoBaoGoods(newGoods);
               } catch (TaobaoGoodsUpdateException e) {
               }
            }
         });
      }
      TaoBaoGoodsBrief tb = null;
      if (goodsList.size() > 0) {
         tb = goodsList.get(0);
      }
      if (tb == null) {
@@ -1903,21 +1741,19 @@
      for (String img : tb.getImgList()) {
         finalImgList.add(TbImgUtil.getTBSizeImg(img, 600));
      }
      if (!StringUtil.isNullOrEmpty(tb.getPictUrlWhite()))
         finalImgList.add(0, tb.getPictUrlWhite());
      JSONObject goods = new JSONObject();
      goods.put("auctionId", tb.getAuctionId());
      goods.put("imgList", finalImgList);
      goods.put("title", tb.getTitle());
      goods.put("userType", tb.getUserType() == 1 ? 2 : 1);
      goods.put("price", tb.getReservePrice().toString());
      goods.put("zkPrice", tb.getZkPrice().toString());
      JSONObject goodsJson = new JSONObject();
      goodsJson.put("auctionId", tb.getAuctionId());
      goodsJson.put("imgList", finalImgList);
      goodsJson.put("title", tb.getTitle());
      goodsJson.put("userType", tb.getUserType() == 1 ? 2 : 1);
      goodsJson.put("price", tb.getReservePrice().toString());
      goodsJson.put("zkPrice", tb.getZkPrice().toString());
      // 红包
      BigDecimal proportion = manageService.getFanLiRate();
      String hongBao = TaoBaoUtil.getGoodsHongBaoInfo(tb, proportion);
      goods.put("hongBao", hongBao);
      // 30天销量
      goods.put("saleCount", TaoBaoUtil.getSaleCount(tb.getBiz30day()));
      goodsJson.put("saleCount", TaoBaoUtil.getSaleCount(tb.getBiz30day()));
      // 分享赚
      BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb);
@@ -1951,10 +1787,12 @@
      LogHelper.test(String.format("PID: uid-%s  pid-%s", uid + "", pid));
      // 是否有券
      goods.put("coupon", StringUtil.isNullOrEmpty(tb.getCouponInfo()) ? false : true);
      goodsJson.put("coupon", StringUtil.isNullOrEmpty(tb.getCouponInfo()) ? false : true);
      // 领券人列表
      List<ShamUser> listCouponUser = new ArrayList<ShamUser>();
      String hongBao = null;
      // 获取券信息
      if (!StringUtil.isNullOrEmpty(tb.getCouponInfo())) {
@@ -1962,24 +1800,50 @@
         JSONObject couponInfo = new JSONObject();
         couponInfo.put("couponPrice", quanPrice.toString());
         // 服务端转链
         if (convertInServer && !StringUtil.isNullOrEmpty(tb.getCouponLink())) {
            couponInfo.put("couponUrl", tb.getCouponLink());
         } else {
            couponInfo.put("couponUrl",
                  TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId() + "", pid, tb.getAuctionId() + ""));
         if (from != null && from.equals("miandan")) {
            // 免单商品
            hongBao = "¥" + quanPrice.toString();
         }
         String token = "";
         if (!StringUtil.isNullOrEmpty(tb.getCouponLink())) {
            token = redisManager.getCommonTaoToken(tb.getAuctionId());
            if (StringUtil.isNullOrEmpty(token)) {
               token = TaoKeApiUtil.getTKToken(tb.getPictUrl(), tb.getTitle(), tb.getCouponLink());
               redisManager.saveCommonTaoToken(tb.getAuctionId(), token);
            }
         }
         tb.setCouponLinkTaoToken(token);
         // 服务端转链
         // if (convertInServer &&
         // !StringUtil.isNullOrEmpty(tb.getCouponLink())) {
         couponInfo.put("couponUrl", tb.getCouponLink());
         // } else {
         // couponInfo.put("couponUrl",
         // TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId() + "", pid,
         // tb.getAuctionId() + ""));
         // }
         couponInfo.put("couponAmount", NumberUtil.subZeroAndDot(tb.getCouponAmount().toString()));
         couponInfo.put("couponTime", "使用期限:" + tb.getCouponEffectiveStartTime().replace("-", ".") + "-"
               + tb.getCouponEffectiveEndTime().replace("-", "."));
         goods.put("couponInfo", couponInfo);
         // 券的口令
         couponInfo.put("couponToken", token);
         goodsJson.put("couponInfo", couponInfo);
         if (tb.getBiz30day() >= 1000) {
            // 领券人列表
            listCouponUser = shamUserService.listRandCouponUser(5, 1, 300);
         }
      }
      // 红包
      if (hongBao == null) {
         BigDecimal proportion = manageService.getFanLiRate();
         hongBao = TaoBaoUtil.getGoodsHongBaoInfo(tb, proportion);
      }
      goodsJson.put("hongBao", hongBao);
      data.put("tbPidInfo", clientTBPid);
@@ -1997,7 +1861,7 @@
         else
            jumpUrl = tb.getAuctionUrl();
      }
      goods.put("jumpUrl", jumpUrl);
      goodsJson.put("jumpUrl", jumpUrl);
      TaoBaoShopInfo tbShopInfo = redisManager.getTBShopInfo(tb.getShopTitle(), tb.getSellerId(), tb.getAuctionId());
      if (tbShopInfo != null) {
@@ -2009,7 +1873,7 @@
         }
      }
      // 店铺
      goods.put("shopInfo", tbShopInfo);
      goodsJson.put("shopInfo", tbShopInfo);
      // 分享路径
      String shareUrl = String.format("%s?id=" + tb.getAuctionId(), Constant.systemCommonConfig.getAppShareInfoUrl());
@@ -2022,10 +1886,37 @@
      data.put("storageState", storageState);
      data.put("shareUrl", shareUrl);
      data.put("goods", goods);
      data.put("goods", goodsJson);
      data.put("shareUsers", listShareUser);
      data.put("couponUsers", listCouponUser);
      data.put("detailWebUrl", "http://apph5.yeshitv.com/apppage/goods_img.html?id=" + id);
      // 商品链接
      String h5Url = String.format("http://%s%s?id=%s&appType=flq", configService.getH5Host(),
            Constant.systemCommonConfig.getShareGoodsPagePath(), tb.getAuctionId() + "");
      try {
         data.put("h5Url", HttpUtil.getShortLink(h5Url));
      } catch (Exception e) {
         data.put("h5Url", h5Url);
      }
      // 取消分享活动
      // if (!StringUtil.isNullOrEmpty(uid)
      // &&
      // shareGoodsActivityOrderService.countShareGoodsActivityOrder(Long.parseLong(uid))
      // > 0) {
      // } else if(!"miandan".equals(from)) {
      // // 非免单商品
      // JSONObject shareActivity = new JSONObject();
      // shareActivity.put("moneyDesc", "春节狂欢奖金:¥" +
      // TaoBaoUtil.getGoodsHongBaoMoney(tb,
      // new
      // BigDecimal(hongBaoManageService.get("share_activity_proportion"))));
      // shareActivity.put("ruleDescPicture",
      // "http://img.flqapp.com/resource/share_activity_img.png");
      //
      // data.put("shareActivity", shareActivity);
      // }
      out.print(JsonUtil.loadTrueResult(data));
@@ -2103,7 +1994,8 @@
   @RequestMapping(value = "getgoodsderivation", method = RequestMethod.POST)
   public void getRecommendGoods(AcceptData acceptData, long id, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
@@ -2119,55 +2011,87 @@
      List<TaoBaoGoodsBriefExtra> listExtra = new ArrayList<TaoBaoGoodsBriefExtra>();
      goodsList.parallelStream().forEach(goods -> {
         // 获取详情
         TaoBaoGoodsBrief taoBaoGoodsBrief = null;
         try {
            taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(goods.getAuctionId());
         } catch (Exception e) {
            e.printStackTrace();
         }
      TaoKeAppInfo app = new TaoKeAppInfo();
      app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
      app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
      app.setAdzoneId(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
      app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
         if (taoBaoGoodsBrief != null) {
            listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), ""));
         }
      });
      List<TaoBaoGoodsBrief> listQuality = new ArrayList<TaoBaoGoodsBrief>();
      List<Long> ids = new ArrayList<>();
      for (TaoBaoGoodsBrief goods : goodsList)
         ids.add(goods.getAuctionId());
      try {
         List<QualityFactory> listRecommend = qualityGoodsService.recommendByAuctionId(id);
         if (listRecommend != null && listRecommend.size() > 1) {
            for (QualityFactory quality : listRecommend) {
               TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief();
               if (taoBaoGoodsBrief == null) {
                  continue;
               }
               int biz30day = taoBaoGoodsBrief.getBiz30day();
               if (biz30day >= 10000) {
                  double sales = biz30day;
                  String salesCountMidea = String.format("%.1f", sales / 10000);
                  taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
               } else {
                  taoBaoGoodsBrief.setSalesCount(biz30day + "");
               }
               // 改变图片尺寸
               String pictUrl = taoBaoGoodsBrief.getPictUrl();
               if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
                  taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
               }
               listQuality.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null));
            }
         }
      } catch (Exception e2) {
         e2.printStackTrace();
         goodsList = TaoKeApiUtil.getBatchGoodsInfo(ids);
      } catch (TaoKeApiException e1) {
         e1.printStackTrace();
      } catch (TaobaoGoodsDownException e1) {
         e1.printStackTrace();
      }
      if (goodsList != null)
         goodsList.parallelStream().forEach(goods -> {
            // 获取详情
            TaoBaoGoodsBrief taoBaoGoodsBrief = null;
            try {
               taoBaoGoodsBrief = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goods.getAuctionId());
            } catch (Exception e) {
               e.printStackTrace();
            }
            if (taoBaoGoodsBrief == null) {
               TaoBaoGoodsBrief newGoods = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app);
               goods.setCouponInfo(newGoods.getCouponInfo());
               goods.setCouponLink(newGoods.getCouponLink());
               goods.setTkRate(newGoods.getTkRate());
               taoBaoGoodsBrief = goods;
            }
            if (taoBaoGoodsBrief != null) {
               listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), ""));
            }
         });
      List<TaoBaoGoodsBrief> listQuality = new ArrayList<TaoBaoGoodsBrief>();
      // 删除推荐
      //
      // try {
      // List<QualityFactory> listRecommend =
      // qualityGoodsService.recommendByAuctionId(id);
      //
      // if (listRecommend != null && listRecommend.size() > 1) {
      // for (QualityFactory quality : listRecommend) {
      //
      // TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief();
      // if (taoBaoGoodsBrief == null) {
      // continue;
      // }
      //
      // int biz30day = taoBaoGoodsBrief.getBiz30day();
      // if (biz30day >= 10000) {
      // double sales = biz30day;
      // String salesCountMidea = String.format("%.1f", sales / 10000);
      // taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
      // } else {
      // taoBaoGoodsBrief.setSalesCount(biz30day + "");
      // }
      //
      // // 改变图片尺寸
      // String pictUrl = taoBaoGoodsBrief.getPictUrl();
      // if (!StringUtil.isNullOrEmpty(pictUrl) &&
      // !pictUrl.contains("320x320")) {
      // taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
      // }
      //
      // listQuality.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
      // proportion.toString(), null));
      // }
      // }
      // } catch (Exception e2) {
      // e2.printStackTrace();
      // }
      // 取偶数个数据
      if (listExtra.size() % 2 != 0) {
@@ -2179,10 +2103,45 @@
      }
      JSONObject data = new JSONObject();
      data.put("listGuess", JsonUtil.getApiCommonGson().toJson(listExtra));
      data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listQuality));
      data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listExtra));
      data.put("listGuess", JsonUtil.getApiCommonGson().toJson(listQuality));
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 活动列表
    *
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getSpecialActivities")
   public void getSpecialActivities(AcceptData acceptData, Long uid, PrintWriter out) {
      BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
            acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
      }
      try {
         // 专题活动
         String specialCard = "special_activities";
         List<Special> listSpecial = specialService.listPageBySystemAndCard(0, Integer.MAX_VALUE, specialCard,
               system.getId());
         if (listSpecial == null) {
            listSpecial = new ArrayList<Special>();
         }
         JSONObject root = new JSONObject();
         root.put("special", JsonUtil.getApiCommonGson().toJson(listSpecial));
         out.print(JsonUtil.loadTrueResult(root));
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}