yujian
2019-06-26 020d940ae4e16f55f69cef3dd4c8dc0b9764af07
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java
@@ -81,6 +81,7 @@
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.goods.recommend.RecommendGoodsDeleteHistoryService;
import com.yeshi.fanli.service.inter.homemodule.DeviceSexService;
import com.yeshi.fanli.service.inter.homemodule.SpecialService;
import com.yeshi.fanli.service.inter.homemodule.SuperSpecialService;
@@ -97,8 +98,8 @@
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.service.inter.tlj.DeviceTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.tlj.GoodsTaoLiJinRateService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.user.ShamUserService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserCustomSettingsService;
@@ -119,6 +120,7 @@
import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import com.yeshi.fanli.vo.tlj.SpreadHongBao;
import com.yeshi.fanli.vo.user.UserSettingsVO;
@@ -239,9 +241,6 @@
   private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
   
   @Resource
   private GoodsTaoLiJinRateService goodsTaoLiJinRateService;
   @Resource
   private UserMoneyExtraService userMoneyExtraService;
   
   @Resource
@@ -256,7 +255,14 @@
   @Resource
   private DeviceSexService deviceSexService;
   
   @Resource
   private UserTaoLiJinRecordService userTaoLiJinRecordService;
   
   @Resource
   private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService;
   @RequestMapping(value = "getHonestList")
   public void getHonestList(AcceptData acceptData, PrintWriter out) {
@@ -1339,18 +1345,22 @@
               // 筛选
               List<TaoBaoGoodsBriefExtra> goodsList = new ArrayList<>();
               List<TaoBaoGoodsBrief> gList = recommendGoodsDeleteHistoryService
                     .filterGoods(acceptData.getDevice(), result.getTaoBaoGoodsBriefs());
               // 设备推荐
               for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs()) {
                  if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null
                        && goods.getCouponAmount().compareTo(new BigDecimal("5")) >= 0
                        && goods.getBiz30day() > 1000 && !StringUtil.isNullOrEmpty(goods.getPictUrlWhite())) {
               if (gList != null)
                  for (TaoBaoGoodsBrief goods : gList) {
                     if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null
                           && goods.getCouponAmount().compareTo(new BigDecimal("5")) >= 0
                           && goods.getBiz30day() > 1000
                           && !StringUtil.isNullOrEmpty(goods.getPictUrlWhite())) {
                     TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods,
                           proportion.toString(), "");
                     extra.setRecommend(true);
                     goodsList.add(extra);
                        TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods,
                              proportion.toString(), "");
                        extra.setRecommend(true);
                        goodsList.add(extra);
                     }
                  }
               }
               try {
                  monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0,
                        (int) (java.lang.System.currentTimeMillis() - startTime), "推荐数量:" + goodsList.size()));
@@ -2051,7 +2061,9 @@
               redisManager.saveCommonTaoToken(tb.getAuctionId(), token);
            }
         }
         tb.setCouponLinkTaoToken(token);
         // 测试
         if (!Constant.IS_TEST)
            tb.setCouponLinkTaoToken(token);
         // 服务端转链
         // if (convertInServer &&
@@ -2067,7 +2079,10 @@
         couponInfo.put("couponTime", "使用期限:" + tb.getCouponEffectiveStartTime().replace("-", ".") + "-"
               + tb.getCouponEffectiveEndTime().replace("-", "."));
         // 券的口令
         couponInfo.put("couponToken", token);
         // 测试
         if (!Constant.IS_TEST)
            couponInfo.put("couponToken", token);
         goodsJson.put("couponInfo", couponInfo);
         if (tb.getBiz30day() >= 1000) {
@@ -2167,9 +2182,32 @@
      
      // 推广红包
      if (from != null && from.equals("taolijin")) {
         // 计算推广红包
         String warningRate = configTaoLiJinService.getValueByKey("warning_value");
         BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
         // 推广红包 不能小于1
         if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) {
            out.print(JsonUtil.loadFalseResult(2, "商品不存在"));
            return;
         }
         // 是否为新用户
         boolean isNewUser = userInfoExtraService.isNewUser(uid);
         if (!isNewUser) {
         if (isNewUser) {
            // 判定为老用户: 新人只要使用了新人红包,也就是那1块钱,那么,他看到的分享爆款中的商品-就只能分享。
            long countRecord = userTaoLiJinRecordService.countRecordByUid(uid);
            if (countRecord > 0) {
               isNewUser = false;
            }
         }
         SpreadHongBao spreadHongBao = new SpreadHongBao();
         if (isNewUser) {
            spreadHongBao.setMoney("1");
         } else {
            spreadHongBao.setMoney(spreadMoney.toString());
            moneyType = 2;
            fanliValid = false;
            ClientTextStyleVO textStyleVO1 = new ClientTextStyleVO();
@@ -2182,7 +2220,7 @@
            textStyleVO3.setContent(",好友");
            textStyleVO3.setColor("#666666");
            ClientTextStyleVO textStyleVO4 = new ClientTextStyleVO();
            textStyleVO4.setContent("领红包");
            textStyleVO4.setContent("领红包!");
            textStyleVO4.setColor("#F14242");
            
            List<ClientTextStyleVO> listText = new ArrayList<ClientTextStyleVO>();
@@ -2193,25 +2231,15 @@
            
            data.put("listTip", listText);
         } 
         BigDecimal spreadMoney = goodsTaoLiJinRateService.getGoodsSpreadMoney(goods);
         // 推广红包 不能小于1
         if (spreadMoney.compareTo(new BigDecimal(1)) < 0) {
            out.print(JsonUtil.loadFalseResult(2, "商品不存在"));
            return;
         }
         SpreadHongBao spreadHongBao = new SpreadHongBao();
         spreadHongBao.setMoney(spreadMoney.toString());
         spreadHongBao.setTip("当日领取,两天内使用,过时无效");
         goodsJson.put("spreadHongBao", spreadHongBao);
         
         // 用户剩余可以淘礼金验证
         UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
         if (userMoneyExtra == null ||  userMoneyExtra.getTlj() == null) {
            data.put("userHongbao", new BigDecimal(0).setScale(2));
            data.put("userHongbao", new BigDecimal(0).setScale(2).toString());
         } else {
            data.put("userHongbao", userMoneyExtra.getTlj().setScale(2));
            data.put("userHongbao", userMoneyExtra.getTlj().setScale(2).toString());
         }
         
         noRebateHelpLink = configTaoLiJinService.getValueByKey("share_goods_help_link");
@@ -2354,7 +2382,7 @@
         e1.printStackTrace();
      }
      if (goodsList != null)
      if (goodsList != null && goodsList.size() > 0)
         goodsList.parallelStream().forEach(goods -> {
            // 获取详情
@@ -2451,17 +2479,20 @@
      }
      try {
         List<Special> list = new ArrayList<Special>();
         // 专题活动
         String specialCard = "special_activities";
         List<Special> listSpecial = specialService.listPageBySystemAndCard(0, Integer.MAX_VALUE, specialCard,
               system.getId());
         if (listSpecial == null) {
            listSpecial = new ArrayList<Special>();
         if (listSpecial != null) {
            list.addAll(listSpecial);
         }
         
         for (Special special: listSpecial) {
         for (int i = 0; i < list.size(); i++) {
            Special special = list.get(i);
            
            JumpDetailV2 jumpDetail = special.getJumpDetail();
            if (jumpDetail != null) {
@@ -2477,14 +2508,19 @@
            
            // 是否需要弹出框
            if (name.equals("账户等级特权")) { 
               if (uid != null) {
                  special.setElastic(userTaoLiJinOriginService.hasRankHongBao(uid));
               if (!VersionUtil.greaterThan_1_5_60(acceptData.getPlatform(), acceptData.getVersion())) {
                  list.remove(i);
                  i--;
               } else {
                  if (uid != null) {
                     special.setElastic(userTaoLiJinOriginService.hasRankHongBao(uid));
                  }
               }
            }
         }
         JSONObject root = new JSONObject();
         root.put("special", JsonUtil.getApiCommonGson().toJson(listSpecial));
         root.put("special", JsonUtil.getApiCommonGson().toJson(list));
         out.print(JsonUtil.loadTrueResult(root));
      } catch (Exception e) {