yujian
2019-12-10 c8041ec0544bf122e6819e6bf698997ccbf30aaf
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -3,7 +3,6 @@
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -29,7 +28,6 @@
import com.yeshi.fanli.entity.accept.AcceptData;
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.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.jd.JDGoods;
@@ -38,6 +36,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;
@@ -56,14 +55,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;
@@ -89,7 +88,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;
@@ -99,10 +97,9 @@
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.JSON;
import net.sf.json.JSONObject;
@Controller
@@ -155,13 +152,7 @@
   private UserGoodsStorageService userGoodsStorageService;
   @Resource
   private UserTaoLiJinOriginService userTaoLiJinOriginService;
   @Resource
   private ConfigTaoLiJinService configTaoLiJinService;
   @Resource
   private UserTaoLiJinRecordService userTaoLiJinRecordService;
   @Resource
   private UserInfoExtraService userInfoExtraService;
@@ -192,6 +183,12 @@
   @Resource
   private JDGoodsClassService jdGoodsClassService;
   @Resource
   private TLJFreeBuyGoodsService tljFreeBuyGoodsService;
   @Resource
   private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService;
   /**
    * 淘宝商品详情
@@ -436,93 +433,13 @@
      } catch (Exception e) {
         extraVO.setH5Url(h5Url);
      }
      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"));
@@ -557,6 +474,36 @@
            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);
         // 专属标签
         List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>();
         labels.add(new ClientTextStyleVO("新人专属", "#FE0014"));
         labels.add(new ClientTextStyleVO("实付0元", "#FF9600"));
         goodsDetail.setLabels(labels);
      } else {// 普通购买
         OtherInfo otherInfo = new OtherInfo();
         RewardCouponVO rewardCoupon = new RewardCouponVO();
@@ -673,14 +620,14 @@
               jdGoods.setCommissionPlus(threeClass.getSelfComm());
               // plus返利
               BigDecimal fanliMoneyPlus = JDUtil.getGoodsFanLiMoneyPlus(jdGoods, fanLiRate);
               otherInfo.setFanliMoneyPlus("京东plus会员返¥" + fanliMoneyPlus);
               otherInfo.setFanliMoneyPlus("京东plus返¥" + fanliMoneyPlus);
               // 使用奖励券最高返
               if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
                  maxMoneyPlus = "(京东plus返¥"
                        + fanliMoneyPlus.add(MoneyBigDecimalUtil.mul(fanliMoneyPlus, Constant.MAX_REWARD_RATE))
                        + ")";
               } else
                  maxMoneyPlus = "(京东plus会员最高返¥"
                  maxMoneyPlus = "(京东plus最高返¥"
                        + fanliMoneyPlus.add(MoneyBigDecimalUtil.mul(fanliMoneyPlus, Constant.MAX_REWARD_RATE))
                        + ")";
            }
@@ -1393,14 +1340,14 @@
      if (jdGoodsList.size() > 0) {
         List<JDGoods> goodsList = JDApiUtil.getGoodsDetail(jdGoodsList);
         for (JDGoods goods : goodsList) {
            tempGoodsList.put(goods.getSkuId() + "-" + Constant.SOURCE_TYPE_TAOBAO,
            tempGoodsList.put(goods.getSkuId() + "-" + Constant.SOURCE_TYPE_JD,
                  GoodsDetailVOFactory.convertJDGoods(goods, params));
         }
      }
      if (pddGoodsList.size() > 0) {
         List<PDDGoodsDetail> goodsList = PinDuoDuoApiUtil.listGoodsDetail(pddGoodsList);
         for (PDDGoodsDetail goods : goodsList) {
            tempGoodsList.put(goods.getGoodsId() + "-" + Constant.SOURCE_TYPE_TAOBAO,
            tempGoodsList.put(goods.getGoodsId() + "-" + Constant.SOURCE_TYPE_PDD,
                  GoodsDetailVOFactory.convertPDDGoods(goods, params));
         }
      }