喻健
2018-11-28 eed85d95faecb33ce8e2c5db4ea185dfe4264c6b
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -21,7 +21,6 @@
import org.yeshi.utils.IPUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.NumberUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import com.google.gson.Gson;
@@ -30,6 +29,7 @@
import com.yeshi.fanli.entity.accept.AcceptData;
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;
@@ -78,7 +78,9 @@
import com.yeshi.fanli.service.inter.goods.SuperRecommendSpecialService;
import com.yeshi.fanli.service.inter.goods.TaoBaoCouponService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.homemodule.SpecialService;
import com.yeshi.fanli.service.inter.homemodule.SuperSpecialService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
@@ -195,6 +197,12 @@
   @Resource
   private ShamUserService shamUserService;
   @Resource
   private SpecialService specialService;
   @Resource
   private SwiperPictureService swiperPictureService;
   @Resource
   private MonitorService monitorService;
@@ -613,18 +621,58 @@
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
      }
      // TaoBaoGoodsBrief alimama = TaoBaoUtil.isAlimama(id);
      // 获取淘客参数
      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();
            }
         }
      } else {
         if (acceptData.getPlatform().equalsIgnoreCase("android"))
            clientTBPid = tbPidService.getAndroidDefault();
         else
            clientTBPid = tbPidService.getIOSDefault();
      }
      TaoBaoGoodsBrief tb = null;
      try {
         tb = redisManager.getTaoBaoGoodsBrief(Long.parseLong(id));
         TaoKeAppInfo app = new TaoKeAppInfo();
         TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(clientTBPid.getSiteId());
         app.setAdzoneId(clientTBPid.getAdZoneId());
         app.setAppKey(clientTBPid.getAppKey());
         app.setAppSecret(config.getAppSecret());
         app.setPid(clientTBPid.getPid());
         tb = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
      } catch (NumberFormatException e1) {
         e1.printStackTrace();
      } catch (TaobaoGoodsDownException e1) {
         e1.printStackTrace();
         out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
         return;
      }
      if (tb != null) {
         tb.setAuctionUrl(null);
         // tb.setAuctionUrl(null);
         tb.setId(null);
         int type = 0;
         if ("android".equalsIgnoreCase(acceptData.getPlatform()))
@@ -637,56 +685,18 @@
         Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
         JSONObject data = new JSONObject();
         TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(tb, configList.get(0));
         if (!StringUtil.isNullOrEmpty(tb.getCouponLink()) && taoBaoGoodsBriefExtra.getTaoBaoQuanInfo() != null)
            taoBaoGoodsBriefExtra.getTaoBaoQuanInfo().setCouponLink(tb.getCouponLink());
         taoBaoGoodsBriefExtra.setAuctionUrl(tb.getAuctionUrl());
         if (uid != null && !"".equals(uid.trim())) {
            CollectionGoods collectionGoods = collectionGoodsService.findByUidAndAuctionId(Long.parseLong(uid),
                  Long.parseLong(id));
            data.put("collection", collectionGoods != null ? true : false);
         }
         // 获取淘客参数
         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 (!StringUtil.isNullOrEmpty(tb.getCouponLink()) && taoBaoGoodsBriefExtra.getTaoBaoQuanInfo() != null)
               taoBaoGoodsBriefExtra.getTaoBaoQuanInfo().setCouponLink(TaoBaoCouponUtil
                     .getCoupleUrl(tb.getCouponActivityId(), tbPid.getPid(), tb.getAuctionId() + ""));
         } else {
            if (acceptData.getPlatform().equalsIgnoreCase("android"))
               clientTBPid = tbPidService.getAndroidDefault();
            else
               clientTBPid = tbPidService.getIOSDefault();
         }
         data.put("tbPidInfo", clientTBPid);
         taoBaoGoodsBriefExtra.setAuctionUrl(null);
         // taoBaoGoodsBriefExtra.setAuctionUrl(null);
         data.put("taobao", gson.toJson(taoBaoGoodsBriefExtra));
         String info = configService.get("detail_prompt");
         data.put("info", info);
@@ -1571,6 +1581,113 @@
   }
   /**
    * 新版推荐专题管理(1.4.0)
    *
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getNewRecommendInfo")
   public void getNewRecommendInfo(AcceptData acceptData, String specialCard, String swiperCard, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
      }
      List<SwiperPicture> listswiper = null;
      if (!StringUtil.isNullOrEmpty(specialCard)) {
         try {
            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);
               }
            }
         } catch (Exception e) {
            e.printStackTrace();
         }
      }
      Special miaoShaSpecial = null;
      List<Special> honestList = new ArrayList<Special>();
      List<Special> specialList = new ArrayList<Special>();
      if (!StringUtil.isNullOrEmpty(specialCard)) {
         try {
            List<Special> listSpecial = specialService.listBySystemAndCard(specialCard, system.getId());
            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;
                     continue;
                  }
                  if ("arc".equals(special.getShowType())) {
                     // 同一行专题
                     honestList.add(special);
                  } else {
                     // 其他专题
                     specialList.add(special);
                  }
               }
            }
         } catch (Exception e) {
            e.printStackTrace();
         }
      }
      /* 限时秒杀 - 时间处理 */
      JSONObject msJSON = JSONObject.fromObject(new Gson().toJson(miaoShaSpecial));
      if (miaoShaSpecial != null) {
         // 获取秒杀
         int[] hours = new int[] { 0, 9, 12, 14, 16, 20, 22 };
         int hour = -1;
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeInMillis(Long.parseLong(acceptData.getTime()));
         int nowHour = calendar.get(Calendar.HOUR_OF_DAY);
         for (int i = 0; i < hours.length - 1; i++) {
            if (nowHour >= hours[i] && nowHour < hours[i + 1]) {
               hour = hours[i + 1];
               break;
            }
         }
         if (hour < 0)
            hour = 24;
         long time = TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(calendar.getTimeInMillis(), "yyyy-MM-dd"),
               "yyyy-MM-dd") + 1000 * 60 * 60 * hour;
         msJSON.put("time", time);
      }
      JSONObject root = new JSONObject();
      root.put("banner", listswiper);
      root.put("honest", honestList);
      root.put("special", specialList);
      root.put("miaoSha", msJSON);
      out.print(JsonUtil.loadTrueResult(root));
   }
   /**
    * 商品基本详情 (1.4.0)
    * 
    * @param acceptData
@@ -1764,7 +1881,10 @@
      BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb);
      data.put("shareMoney", "¥" + shareMoney);
      // 分享赚人提示
      List<ShamUser> listShareUser = shamUserService.listRandShareUser(10, shareMoney, 1, 5);
      List<ShamUser> listShareUser = new ArrayList<ShamUser>();
      if (tb.getBiz30day() >= 1000) {
         listShareUser = shamUserService.listRandShareUser(10, shareMoney, 1, 5);
      }
      // 判断收藏
      if (StringUtil.isNullOrEmpty(uid)) {
@@ -1792,7 +1912,7 @@
      goods.put("coupon", StringUtil.isNullOrEmpty(tb.getCouponInfo()) ? false : true);
      // 领券人列表
      List<ShamUser> listCouponUser = null;
      List<ShamUser> listCouponUser = new ArrayList<ShamUser>();
      // 获取券信息
      if (!StringUtil.isNullOrEmpty(tb.getCouponInfo())) {
@@ -1813,8 +1933,10 @@
               + tb.getCouponEffectiveEndTime().replace("-", "."));
         goods.put("couponInfo", couponInfo);
         // 领券人列表
         listCouponUser = shamUserService.listRandCouponUser(5, 1, 300);
         if (tb.getBiz30day() >= 1000) {
            // 领券人列表
            listCouponUser = shamUserService.listRandCouponUser(5, 1, 300);
         }
      }
      data.put("tbPidInfo", clientTBPid);