admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
@@ -25,31 +25,35 @@
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.ShareGoodsException;
import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.log.LogManager;
import com.yeshi.fanli.log.LogType;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
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.MoneyBigDecimalUtil;
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.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
@@ -99,10 +103,12 @@
   @Resource
   private UserShareGoodsGroupService userShareGoodsGroupService;
   @Resource
   private UserTaoLiJinRecordService userTaoLiJinRecordService;
   @Resource
   private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
   /**
    * 
@@ -171,11 +177,11 @@
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("商品信息获取失败")));
         return;
      }
      Long auctionId = record.getGoodsId();
      String tljLink = record.getSendUrl();
      BigDecimal tljMoney= record.getPerFace();
      BigDecimal tljMoney = record.getPerFace();
      TaoBaoGoodsBrief goods = null;
      try {
         goods = redisManager.getTaoBaoGoodsBrief(auctionId);
@@ -208,7 +214,7 @@
      data.put("quanPrice", afterCouponPrice);
      data.put("zkPrice", goods.getZkPrice());
      data.put("shareContent", "长按复制本段文字,打开【手机淘宝】即可领取【特别优惠券】购买下单,");
      data.put("token", link.getTaoToken());
      data.put("token", TaoBaoUtil.filterTaoToken(link.getTaoToken()));
      data.put("reservePrice", goods.getReservePrice());
      data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
      if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"无".equalsIgnoreCase(goods.getCouponInfo())) {
@@ -217,9 +223,9 @@
      } else {
         data.put("coupon", false);
      }
      data.put("tljMoney", tljMoney);
      out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
   }
@@ -238,6 +244,12 @@
   @RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
   public void getGoodsDetail(final AcceptData acceptData, final String id, String tid, String uid, String callback,
         PrintWriter out) {
      if (!StringUtil.isNullOrEmpty(uid))
         uid = uid.replace(" ", "+");
      LogManager.getLogger(LogType.taobaoTrade)
            .info(String.format("淘宝分享商品H5访问:\n  商品ID:%s \n  原始用户ID:%s \n", id, uid));
      long begin = java.lang.System.currentTimeMillis();
      if (StringUtil.isNullOrEmpty(id)) {
         out.print(JsonUtil.loadFalseResult(1, "请上传id"));
@@ -281,22 +293,14 @@
               }
         } else {// 没有分享记录,需要直接分享
            List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
                  .getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
            String pid = null;
            ClientTBPid tbPid = tbPidService.getSharePid();
            if (tbPid != null)
               pid = tbPid.getPid();
            else {
               pid = configList.get(0).getDefaultPid();
            }
            LogHelper.test("没有分享记录:uid:" + uid + "  actionid:" + id);
            // 获取
            TaoKeAppInfo app = new TaoKeAppInfo();
            app.setAdzoneId(pid.split("_")[3]);
            app.setAppKey(configList.get(0).getAppKey());
            app.setAppSecret(configList.get(0).getAppSecret());
            app.setPid(pid);
            app.setPid(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
            app.setAdzoneId(app.getPid().split("_")[3]);
            app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
            app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
            try {
               goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
            } catch (NumberFormatException e) {
@@ -309,6 +313,9 @@
               if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
                  url = goods.getCouponLink();
               }
               String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(Long.parseLong(uid));
               if (!StringUtil.isNullOrEmpty(relationId))
                  url += "&relationId=" + relationId;
               token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
            }
         }
@@ -371,7 +378,7 @@
      data.put("quanPrice", afterCouponPrice);
      data.put("zkPrice", goods.getZkPrice());
      data.put("shareContent", "长按复制本段文字,打开【手机淘宝】即可领取【特别优惠券】购买下单,");
      data.put("token", link.getTaoToken());
      data.put("token", TaoBaoUtil.filterTaoToken(link.getTaoToken()));
      data.put("reservePrice", goods.getReservePrice());
      data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
      if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"无".equalsIgnoreCase(goods.getCouponInfo())) {
@@ -384,7 +391,7 @@
         // 老版本兼容
         data.put("quan", true);
      }
      out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
      final String tempUid = uid;
@@ -404,11 +411,10 @@
      });
      return;
   }
   /**
    * 京东分享商品信息
    *
    * @param acceptData
    * @param id
    * @param uid
@@ -416,7 +422,7 @@
    * @param out
    */
   @RequestMapping(value = "getJDGoodsDetail")
   public void getJDGoodsDetail(final AcceptData acceptData, final Long id,  String uid, String callback,
   public void getJDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
         PrintWriter out) {
      if (id == null) {
         out.print(JsonUtil.loadFalseResult(1, "请上传id"));
@@ -442,40 +448,42 @@
         imageList = new ArrayList<>();
         imageList.add(jdGoods.getPicUrl());
      }
      boolean hasCoupon = false;
      String couponUrl = null;
      BigDecimal discount = new BigDecimal(0);
      JDCouponInfo couponInfo = jdGoods.getCouponInfo();
      JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
      if (couponInfo != null) {
         hasCoupon = true;
         discount = couponInfo.getDiscount();
         couponUrl = couponInfo.getLink();
      }
      boolean jdzy = false;
      String owner = jdGoods.getOwner();
      if (!StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) {
         jdzy = true;
      }
      String materialId = "https://item.jd.com/" + id + ".html";
      String jumpLink = JDApiUtil.convertLink(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid);
      String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
            uid);
      int priceType = 1;
      BigDecimal price = jdGoods.getPrice();;
      BigDecimal price = jdGoods.getPrice();
      ;
      JDPingouInfo pinGouInfo = jdGoods.getPinGouInfo();
      if (pinGouInfo != null) {
         priceType = 2; // 拼购价
         price =  pinGouInfo.getPingouPrice();
         price = pinGouInfo.getPingouPrice();
      }
      JSONObject data = new JSONObject();
      data.put("jdzy", jdzy);
      data.put("imgs", imageList);
      data.put("title", jdGoods.getSkuName());
      data.put("zkPrice", price);
      data.put("priceType", priceType);
      data.put("priceType", priceType);
      data.put("coupon", hasCoupon);
      data.put("couponAmount", discount);
      data.put("couponPrice", JDUtil.getQuanPrice(jdGoods));
@@ -489,7 +497,8 @@
         public void run() {
            try {
               if (!StringUtil.isNullOrEmpty(tempUid))
                  userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id, Constant.SOURCE_TYPE_JD);
                  userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id,
                        Constant.SOURCE_TYPE_JD);
            } catch (NumberFormatException e) {
               e.printStackTrace();
            } catch (UserShareGoodsRecordException e) {
@@ -499,10 +508,10 @@
      });
      return;
   }
   /**
    * 拼多多分享商品详情
    *
    * @param acceptData
    * @param id
    * @param uid
@@ -510,7 +519,7 @@
    * @param out
    */
   @RequestMapping(value = "getPDDGoodsDetail")
   public void getPDDGoodsDetail(final AcceptData acceptData, final Long id,  String uid, String callback,
   public void getPDDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
         PrintWriter out) {
      if (id == null) {
         out.print(JsonUtil.loadFalseResult(1, "请上传id"));
@@ -526,7 +535,7 @@
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("商品信息获取失败")));
         return;
      }
      List<String> imageList = null;
      String[] goodsGalleryUrls = pddGoods.getGoodsGalleryUrls();
      if (goodsGalleryUrls != null) {
@@ -539,7 +548,7 @@
            imageList.add(goodsImageUrl);
         }
      }
      BigDecimal hundred = new BigDecimal(100);
      Boolean hasCoupon = pddGoods.getHasCoupon();
      BigDecimal amount = new BigDecimal(0);
@@ -548,9 +557,9 @@
      } else {
         hasCoupon = false;
      }
      String jumpLink = PinDuoDuoApiUtil.convert(id, PinDuoDuoApiUtil.PID_SHARE + "", uid);
      String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(id, PinDuoDuoApiUtil.PID_SHARE + "", uid);
      JSONObject data = new JSONObject();
      data.put("imgs", imageList);
      data.put("title", pddGoods.getGoodsName());
@@ -568,7 +577,8 @@
         public void run() {
            try {
               if (!StringUtil.isNullOrEmpty(tempUid))
                  userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id, Constant.SOURCE_TYPE_PDD);
                  userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id,
                        Constant.SOURCE_TYPE_PDD);
            } catch (NumberFormatException e) {
               e.printStackTrace();
            } catch (UserShareGoodsRecordException e) {