yujian
2020-06-09 554de444b87aab5f93cb1593a8095612cf9479a7
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
@@ -24,8 +24,10 @@
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.Special;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
@@ -43,14 +45,15 @@
import com.yeshi.fanli.service.inter.lable.QualityFlashSaleService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.pdd.PDDGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
import com.yeshi.fanli.tag.PageEntity;
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;
@@ -64,6 +67,7 @@
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import com.yeshi.fanli.vo.goods.OtherInfo;
import com.yeshi.fanli.vo.goods.SpikeTimeVO;
import com.yeshi.fanli.vo.homemodule.BannerVO;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import com.yeshi.fanli.vo.search.SearchKeyTOPVO;
import com.yeshi.fanli.vo.search.SearchKeyVO;
@@ -77,7 +81,7 @@
public class RecommendControllerV2 {
   @Resource
   private HongBaoManageService hongBaoManageService;
   private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
   @Resource
   private QualityGoodsService qualityGoodsService;
@@ -96,9 +100,6 @@
   @Resource
   private QualityFlashSaleService qualityFlashSaleService;
   @Resource
   private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
   @Resource
   private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService;
@@ -132,6 +133,9 @@
   @Resource
   private HongBaoV2CountService hongBaoV2CountService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   /**
    * 新版推荐专题管理(1.5.3)
@@ -149,17 +153,17 @@
         JSONObject root = specialService.listCacheSpecialToIndex(acceptData, deviceSex);
         // 2、顶部轮播图
         List<SwiperPicture> oldtopPicList = swiperPictureService.getByBannerCardAndVersion("index_top",
         List<BannerVO> oldtopPicList = swiperPictureService.getByBannerCardAndVersion("index_top",
               acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
         List<SwiperPicture> topPicList = new ArrayList<>();
         List<BannerVO> topPicList = new ArrayList<>();
         if (oldtopPicList != null && oldtopPicList.size() > 0)
            topPicList.addAll(oldtopPicList);
         root.put("topPicList", JsonUtil.getApiCommonGson().toJson(topPicList));
         // 3、邀请有奖
         List<SwiperPicture> invitePicList = null;
         List<BannerVO> invitePicList = null;
         if ("ios".equalsIgnoreCase(acceptData.getPlatform())
               && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
            // 如果IOS当前版本处于审核状态就不返回
@@ -169,14 +173,14 @@
         }
         if (invitePicList == null) {
            invitePicList = new ArrayList<SwiperPicture>();
            invitePicList = new ArrayList<BannerVO>();
         }
         root.put("invitePicList", JsonUtil.getApiCommonGson().toJson(invitePicList));
         // 4、IOS的底部网页链接
         String platform = acceptData.getPlatform();
         if ("ios".equalsIgnoreCase(platform)) {
            root.put("htmlLink", configService.get("index_html_link_ios"));
            root.put("htmlLink", configService.get(ConfigKeyEnum.indexHtmlLinkIos.getKey()));
         }
         root.put("spikeGoods", getSpikeGoodsContent(acceptData));
@@ -236,8 +240,10 @@
      }
      JSONArray array = null;
      String timekey = String.format("spikeGoods_hour_new-%s-%s", acceptData.getPlatform(), acceptData.getVersion());
      String cachekey = String.format("spikeGoodsList_new-%s-%s", acceptData.getPlatform(), acceptData.getVersion());
      String timekey = RedisKeyEnum.getRedisKey(RedisKeyEnum.spikeGoodsHourNew,acceptData.getPlatform() +"-"+acceptData.getVersion());
      String cachekey = RedisKeyEnum.getRedisKey(RedisKeyEnum.spikeGoodsListNew,acceptData.getPlatform() +"-"+acceptData.getVersion());
      Calendar nowCalendar = Calendar.getInstance();
      nowCalendar.setTimeInMillis(nowTime);
      int hour = nowCalendar.get(Calendar.HOUR_OF_DAY);
@@ -261,10 +267,6 @@
      if (array == null) {
         array = new JSONArray();
         BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
         BigDecimal shareRate = hongBaoManageService.getShareRate();
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
               .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
@@ -279,7 +281,7 @@
         /* 遍历列表数据 */
         ConfigParamsDTO configParamsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
         ConfigParamsDTO configParamsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
               acceptData.getVersion());
         for (DaTaoKeDetailV2 detail : listGoods) {
@@ -290,7 +292,7 @@
            GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, configParamsDTO);
            JSONObject params = new JSONObject();
            params.put("url", configService.get("spike_goods_link") + "?id=" + taoBaoGoodsBrief.getAuctionId());
            params.put("url", configService.get(ConfigKeyEnum.spikeGoodsLink.getKey()) + "?id=" + taoBaoGoodsBrief.getAuctionId());
            JSONObject goods = new JSONObject();
            goods.put("goods", gson.toJson(detailVO));
@@ -325,7 +327,7 @@
            }
         root.put("imgList", imgArray);
         JSONObject params = new JSONObject();
         params.put("url", configService.get("spike_goods_link"));
         params.put("url", configService.get(ConfigKeyEnum.spikeGoodsLink.getKey()));
         root.put("params", params);
         root.put("jumpDetail", jumpDetail);
         root.put("name", "限时秒杀");
@@ -335,7 +337,7 @@
         root.put("endTime", endTime > 0 ? endTime : 0);
         root.put("listgoods", array);
         JSONObject params = new JSONObject();
         params.put("url", configService.get("spike_goods_link"));
         params.put("url", configService.get(ConfigKeyEnum.spikeGoodsLink.getKey()));
         root.put("params", params);
         root.put("jumpDetail", jumpDetail);
      }
@@ -411,7 +413,7 @@
      Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
      if (detailList != null) {
         ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
         ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
               acceptData.getVersion());
         for (DaTaoKeDetailV2 detail : detailList) {
@@ -474,7 +476,7 @@
      }
      JSONObject params = new JSONObject();
      params.put("url", configService.get("search_discovery_h5_link"));
      params.put("url", configService.get(ConfigKeyEnum.searchDiscoveryH5Link.getKey()));
      JSONObject root = new JSONObject();
      root.put("picture", "http://img.flqapp.com/resource/home_search_found.png");
@@ -556,7 +558,7 @@
            }
         }
         ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
         ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
               acceptData.getVersion());
         for (TaoBaoGoodsBrief goods : goodsList) {
@@ -576,13 +578,13 @@
            if (list != null && list.size() > 0) {
               BigDecimal rateBuy = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
               ConfigParamsDTO paramsBuy = new ConfigParamsDTO(rateBuy, rateBuy, Constant.MAX_REWARD_RATE,
                     hongBaoManageService.getVIPFanLiRate());
                     hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP));
               for (int i = list.size() - 1; i >= 0; i--) {
                  TLJBuyGoods goods = list.get(i);
                  GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods.getGoods(), paramsBuy);
                  String hongBao = TaoBaoUtil.getGoodsHongBaoInfo(goods.getGoods(),
                        TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE);
                        TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE,false);
                  ReduceHongBao reduceHongBao = new ReduceHongBao();
                  reduceHongBao.setLeft(goods.getLeftHongBaoCount());
@@ -615,7 +617,7 @@
         if (!StringUtil.isNullOrEmpty(imei) || !StringUtil.isNullOrEmpty(idfa)) {
            long startTime = java.lang.System.currentTimeMillis();
            TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(page, 50, imei, idfa);
            TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(page, 50, imei, idfa,"");
            if (result != null && result.getTaoBaoGoodsBriefs() != null) {
               // 筛选
@@ -626,13 +628,13 @@
               // filter
               try {
                  gList = daTaoKeGoodsDetailService.filterTaoBaoGoods(gList);
                  gList = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(gList);
               } catch (Exception e) {
               }
               // 设备推荐
               if (gList != null) {
                  ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
                  ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                        acceptData.getVersion());
                  for (TaoBaoGoodsBrief goods : gList) {
                     if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null
@@ -704,7 +706,7 @@
         List<JDGoods> goodsList = result.getGoodsList();
         if (goodsList != null && goodsList.size() > 0) {
            ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                  acceptData.getVersion());
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
@@ -737,7 +739,7 @@
         Gson gson = JsonUtil.getApiCommonGson();
         List<PDDGoodsDetail> goodsList = result.getGoodsList();
         if (goodsList != null && goodsList.size() > 0) {
            ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                  acceptData.getVersion());
            for (PDDGoodsDetail goods : goodsList) {
@@ -771,7 +773,7 @@
         JSONArray arrayKeys = JSONArray.fromObject(keys);
         if (arrayKeys != null && arrayKeys.size() > 0) {
            count = arrayKeys.size();
            ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                  acceptData.getVersion());
            int j = 1;
@@ -836,12 +838,7 @@
         if (special.getState() == 1L) {
            list.remove(i--);
         } else {
            if (special.getStartTime() != null && special.getEndTime() != null)
               special.setTimeTask(true);
            else
               special.setTimeTask(false);
            if (special.isTimeTask()) {
            if (special.getStartTime() != null && special.getEndTime() != null) {
               if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
                  list.remove(i--);
               } else// 设置倒计时
@@ -875,7 +872,7 @@
   public void getGuide(AcceptData acceptData, Long uid, PrintWriter out) {
      String tips = null;
      if (uid == null || uid <= 0) {
         tips = configService.get("tip_guide_new_user");
         tips = configService.get(ConfigKeyEnum.tipGuideNewUser.getKey());
      } else {
         long rebateOrder = hongBaoV2CountService.countRebateOrder(uid);
         long shareOrInviteOrder = hongBaoV2CountService.countShareOrInviteOrder(uid);
@@ -883,13 +880,13 @@
            // 熟客版
         } else if (rebateOrder <= 0 && shareOrInviteOrder <= 0) {
            // 新人版
            tips = configService.get("tip_guide_new_user");
            tips = configService.get(ConfigKeyEnum.tipGuideNewUser.getKey());
         } else if (rebateOrder > 0 && shareOrInviteOrder <= 0) {
            // 省钱版
            tips = configService.get("tip_guide_save_money");
            tips = configService.get(ConfigKeyEnum.tipGuideSaveMoney.getKey());
         } else {
            // 赚钱版
            tips = configService.get("tip_guide_share_invite");
            tips = configService.get(ConfigKeyEnum.tipGuideShareInvite.getKey());
         }
      }