yujian
2019-12-02 2afe3a586ca9feb26f30e4d5af36941add5eca60
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -2,6 +2,7 @@
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -12,6 +13,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.DateUtil;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.taobao.TbImgUtil;
@@ -24,9 +26,10 @@
import com.yeshi.fanli.dto.pdd.PDDPromotionUrl;
import com.yeshi.fanli.dto.pdd.PDDSearchFilter;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinNewbies;
import com.yeshi.fanli.entity.bus.user.ShamUser;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.jd.JDGoodsClass;
@@ -34,6 +37,7 @@
import com.yeshi.fanli.entity.system.SystemClientParams;
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.fanli.entity.taobao.TLJFreeBuyGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoShop;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
@@ -52,14 +56,14 @@
import com.yeshi.fanli.service.inter.jd.JDGoodsClassService;
import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.redpack.UserTaoLiJinNewbiesService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TLJFreeBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
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.UserGoodsStorageService;
@@ -85,7 +89,6 @@
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
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.goods.CouponInfoVO;
import com.yeshi.fanli.vo.goods.GoodsDetailExtraVO;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
@@ -95,8 +98,8 @@
import com.yeshi.fanli.vo.goods.ShareVO;
import com.yeshi.fanli.vo.goods.ShopInfoVO;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import com.yeshi.fanli.vo.tlj.NewUserHongBao;
import com.yeshi.fanli.vo.tlj.ReduceHongBao;
import com.yeshi.fanli.vo.tlj.SpreadHongBao;
import net.sf.json.JSONObject;
@@ -150,13 +153,7 @@
   private UserGoodsStorageService userGoodsStorageService;
   @Resource
   private UserTaoLiJinOriginService userTaoLiJinOriginService;
   @Resource
   private ConfigTaoLiJinService configTaoLiJinService;
   @Resource
   private UserTaoLiJinRecordService userTaoLiJinRecordService;
   @Resource
   private UserInfoExtraService userInfoExtraService;
@@ -187,6 +184,12 @@
   @Resource
   private JDGoodsClassService jdGoodsClassService;
   @Resource
   private TLJFreeBuyGoodsService tljFreeBuyGoodsService;
   @Resource
   private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService;
   /**
    * 淘宝商品详情
@@ -431,93 +434,14 @@
      } catch (Exception e) {
         extraVO.setH5Url(h5Url);
      }
      String tips = null;
      String helpLink = null;
      boolean fanliValid = true;
      boolean shareValid = true;
      int moneyType = 1;
      // 推广红包
      if (from != null && from.equals("taolijin")) {
         // 计算推广红包
         String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
         BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
         // 推广红包 不能小于1
         if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) {
            out.print(JsonUtil.loadFalseResult(2, "商品不存在"));
            return;
         }
         // 取消新用户自购
         boolean isNewUser = false;// userInfoExtraService.isNewUser(uid);
         if (isNewUser) {
            // 判定为老用户: 新人只要使用了新人红包,也就是那1块钱,那么,他看到的分享爆款中的商品-就只能分享。
            long countRecord = userTaoLiJinRecordService.countRecordByUid(uid);
            if (countRecord > 0) {
               isNewUser = false;
            }
         }
         SpreadHongBao spreadHongBao = new SpreadHongBao();
         if (isNewUser) {
            spreadHongBao.setMoney("1");
         } else {
            moneyType = 2;
            fanliValid = false;
            spreadHongBao.setMoney(spreadMoney.toString());
            ClientTextStyleVO textStyleVO1 = new ClientTextStyleVO();
            textStyleVO1.setContent("分享");
            textStyleVO1.setColor("#666666");
            ClientTextStyleVO textStyleVO2 = new ClientTextStyleVO();
            textStyleVO2.setContent("赚奖金");
            textStyleVO2.setColor("#F14242");
            ClientTextStyleVO textStyleVO3 = new ClientTextStyleVO();
            textStyleVO3.setContent(",好友");
            textStyleVO3.setColor("#666666");
            ClientTextStyleVO textStyleVO4 = new ClientTextStyleVO();
            textStyleVO4.setContent("领红包!");
            textStyleVO4.setColor("#F14242");
            List<ClientTextStyleVO> listText = new ArrayList<ClientTextStyleVO>();
            listText.add(textStyleVO1);
            listText.add(textStyleVO2);
            listText.add(textStyleVO3);
            listText.add(textStyleVO4);
            extraVO.setTip(listText);
         }
         spreadHongBao.setName("推广红包 ");
         spreadHongBao.setTip("当日领取,当日内使用,过期失效");
         OtherInfo otherInfo = new OtherInfo();
         otherInfo.setSpreadHongBao(spreadHongBao);
         goodsDetail.setOtherInfo(otherInfo);
         // 1.6.5后改为福利价
         if (com.yeshi.fanli.util.VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
            if (goodsDetail.getCouponPrice() != null
                  && goodsDetail.getCouponPrice().compareTo(new BigDecimal(0)) > 0)
               goodsDetail.setCouponPrice(goodsDetail.getCouponPrice().subtract(spreadMoney));
            else
               goodsDetail.setZkPrice(goodsDetail.getZkPrice().subtract(spreadMoney));
         }
         goodsDetail.getMoneyInfo().setFanliMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods,
               hongBaoManageService.getTLJShareRate(System.currentTimeMillis())));
         goodsDetail.getMoneyInfo().setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods,
               hongBaoManageService.getTLJShareRate(System.currentTimeMillis())));
         // 用户淘礼金
         UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
         if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) {
            extraVO.setUserTLJ(new BigDecimal(0).setScale(2).toString());
         } else {
            extraVO.setUserTLJ(userMoneyExtra.getTlj().setScale(2).toString());
         }
         helpLink = configTaoLiJinService.getValueByKey("share_goods_help_link", new Date());
      } else if (from != null && from.equals("taolijin_buy")) {
      if (from != null && from.equals("taolijin_buy")) {
         // 查询分享库
         TLJBuyGoods buyGoods = tljBuyGoodsService.selectByAuctionIdAndDay(id,
               TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"));
@@ -552,6 +476,48 @@
            else
               goodsDetail.setZkPrice(goodsDetail.getZkPrice().subtract(tljHongBao));
         }
      } else if (from != null && from.equals("taolijin_free_buy")) {
         TLJFreeBuyGoods freeGoods = tljFreeBuyGoodsService.selectByAuctionIdAndDay(id, TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"));
         if (freeGoods == null) {
            out.print(JsonUtil.loadFalseResult(2, "免单商品已下架"));
            return;
         }
         fanliValid = true;
         shareValid = false;
         BigDecimal couponPrice = goodsDetail.getCouponPrice();
         if (couponPrice == null)
            couponPrice = goodsDetail.getZkPrice();
         NewUserHongBao newUserHongBao = new NewUserHongBao();
         newUserHongBao.setMoney(couponPrice.setScale(2).toString());
         newUserHongBao.setName("新人红包 ");
         newUserHongBao.setTip("当日领取,当日内使用,过期失效");
         newUserHongBao.setLeft(1);
         newUserHongBao.setTotal(1);
         OtherInfo otherInfo = new OtherInfo();
         otherInfo.setReduceHongBao(newUserHongBao);
         goodsDetail.setOtherInfo(otherInfo);
         tips = "你不是“新用户”无法使用新人红包0元购买。";
         UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
         if (userInfoExtra != null  && userInfoExtra.getFirstLoginTime() != null) {
            try {
               int   days = DateUtil.daysBetween2(userInfoExtra.getFirstLoginTime(), new Date());
               if (days < Constant.TLJ_NEW_USER_DEFINE){
                  UserTaoLiJinNewbies winDetail = userTaoLiJinNewbiesService.selectByPrimaryKey(uid);
                  if (winDetail == null || winDetail.getEndTime().getTime() < java.lang.System.currentTimeMillis()
                        || winDetail.getMoney().compareTo(couponPrice) < 0) {
                     tips = "新人红包不足,请换个商品再试或继续领取到足额新人红包。";
                  } else {
                     tips = null;
                  }
               }
            } catch (ParseException e) {
               e.printStackTrace();
            }
         }
      } else {// 普通购买
         OtherInfo otherInfo = new OtherInfo();
         RewardCouponVO rewardCoupon = new RewardCouponVO();
@@ -573,6 +539,7 @@
      }
      extraVO.setFanliValid(fanliValid);
      extraVO.setShareValid(shareValid);
      extraVO.setTips(tips);
      MoneyInfoVO goodsMoney = goodsDetail.getMoneyInfo();
      if (goodsMoney != null) {
@@ -1195,6 +1162,28 @@
      integralGetService.addCouponRebate(uid);
   }
   @RequestMapping(value = "getJDCouponLink")
   public void getJDCouponLink(AcceptData acceptData, Long id, String couponUrl, PrintWriter out) {
      if (StringUtil.isNullOrEmpty(couponUrl)) {
         out.print(JsonUtil.loadFalseResult(1, "券链接不能为空"));
         return;
      }
      if (id == null || id <= 0) {
         out.print(JsonUtil.loadFalseResult(1, "商品ID不能为空"));
         return;
      }
      String jumpLink = null;
      String materialId = "https://item.jd.com/" + id + ".html";
      jumpLink = JDApiUtil.convertLink(materialId, couponUrl, JDApiUtil.POSITION_FANLI + "", null + "");
      JSONObject data = new JSONObject();
      data.put("native", true);
      data.put("jumpLink", jumpLink);
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 拼多多购买链接
    *