From a1be6075c6b1365a7abc66bf559d6058039248ab Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 19 五月 2021 18:13:29 +0800 Subject: [PATCH] 淘礼金兼容 --- fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java | 149 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 136 insertions(+), 13 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java index 8ca536b..b2c75c6 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java @@ -1,32 +1,51 @@ package com.yeshi.fanli.controller.client.lijin; +import com.google.gson.Gson; +import com.yeshi.common.entity.taobao.TaoBaoShop; import com.yeshi.common.entity.taobao.TaoKeAppInfo; +import com.yeshi.common.vo.ClientTextStyleVO; +import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.dto.suning.SuningGoodsInfo; import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo; import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.user.ShamUser; +import com.yeshi.fanli.entity.goods.CollectionGoodsV2; import com.yeshi.fanli.entity.jd.JDGoods; import com.yeshi.fanli.exception.pdd.PDDApiException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; +import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service; import com.yeshi.fanli.service.inter.pdd.PDDAuthService; import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; +import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService; +import com.yeshi.fanli.service.inter.user.ShamUserService; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.ThreadUtil; import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil; +import com.yeshi.fanli.util.factory.goods.GoodsDetailVOLijinFactory; +import com.yeshi.fanli.util.factory.goods.ShopInfoVOFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.jd.JDUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; import com.yeshi.fanli.util.suning.SuningApiUtil; import com.yeshi.fanli.util.suning.SuningUtil; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.util.vipshop.VipShopApiUtil; +import com.yeshi.fanli.lijin.vo.GoodsDetailVO; import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.yeshi.utils.JsonUtil; +import org.yeshi.utils.MoneyBigDecimalUtil; import javax.annotation.Resource; +import java.io.PrintWriter; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; @Controller @RequestMapping("api/lijin/goods") @@ -41,6 +60,15 @@ @Resource private PDDAuthService pddAuthService; + @Resource + private CollectionGoodsV2Service collectionGoodsV2Service; + + @Resource + private ShamUserService shamUserService; + + @Resource + private TaoBaoShopService taoBaoShopService; + /** * 鑾峰彇鍟嗗搧璇︽儏 * @@ -51,50 +79,146 @@ * @return */ @RequestMapping("getGoodsDetail") - @ResponseBody - public String getGoodsDetail(AcceptData acceptData, int goodsType, String goodsId, Long uid, String from) { - + public void getGoodsDetail(AcceptData acceptData, int goodsType, String goodsId, Long uid, String from, PrintWriter out) { + GoodsDetailVO goodsDetailVO = new GoodsDetailVO(); + GoodsDetailVO.GoodsExtraVO extraVO = new GoodsDetailVO.GoodsExtraVO(); + GoodsMoneyConfigParamsDTO paramsDTO = new GoodsMoneyConfigParamsDTO(); + paramsDTO.setFanLiRate(new BigDecimal("60")); + // 棰嗗埜浜哄垪琛� + List<ShamUser> listCouponUser = new ArrayList<>(); switch (goodsType) { case Constant .SOURCE_TYPE_TAOBAO: - TaoBaoGoodsBrief taobaoGoods = getTaoBaoGoods(Long.parseLong(goodsId)); - if (taobaoGoods == null) { + TaoBaoGoodsBrief goods = getTaoBaoGoods(Long.parseLong(goodsId)); + + goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertTaoBao(goods, paramsDTO)); + // 搴楅摵淇℃伅 + TaoBaoShop shop = taoBaoShopService.getTaoBaoShop(goods.getId(), goods.getSellerId()); + if (shop != null) { + String shopLink = shop.getShopLink(); + if (StringUtil.isNullOrEmpty(shopLink)) { + shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId())); + } + goodsDetailVO.getGoods().setShopInfo(ShopInfoVOFactory.convertTaoBaoShop(shop)); } + + extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img.html?id=" + goodsId); break; case Constant .SOURCE_TYPE_JD: JDGoods jdGoods = getJDGoods(Long.parseLong(goodsId)); + goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertJDGoods(jdGoods, paramsDTO)); + extraVO.setDetailUrl("https://in.m.jd.com/product/jieshao/video/" + goodsId + ".html"); break; case Constant .SOURCE_TYPE_PDD: PDDGoodsDetail pddGoodsDetail = getPDDGoods(Long.parseLong(goodsId), uid); - + goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertPDDGoods(pddGoodsDetail, paramsDTO)); + extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img_pdd.html?id=" + goodsId); break; case Constant .SOURCE_TYPE_VIP: VIPGoodsInfo vipGoodsInfo = VipShopApiUtil.getGoodsDetail(goodsId); - + goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertVIPGoods(vipGoodsInfo, paramsDTO)); break; case Constant .SOURCE_TYPE_SUNING: String[] ids = SuningUtil.getGoodsIdDetail(goodsId); SuningGoodsInfo suningGoodsInfo = SuningApiUtil.getGoodsDetail(ids[1], ids[0]); - + goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertSuningGoods(suningGoodsInfo, paramsDTO)); + extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img_suning.html?id=" + + suningGoodsInfo.getCommodityInfo().getCommodityCode() + "&supplierCode=" + + suningGoodsInfo.getCommodityInfo().getSupplierCode()); break; - - } - return null; + //鏄惁鏀惰棌 + extraVO.setCollected(false); + if (uid != null) { + CollectionGoodsV2 collectionGoodsV2 = collectionGoodsV2Service.findByUidAndAuctionId(uid, Long.parseLong(goodsDetailVO.getGoods().getGoodsId()), goodsType); + if (collectionGoodsV2 != null) { + extraVO.setCollected(true); + } + } + + if (goodsDetailVO.getGoods().getTempCoupon() != null && goodsDetailVO.getGoods().getTempCoupon().getAmount() != null + && goodsDetailVO.getGoods().getTempCoupon().getAmount().compareTo(new BigDecimal(0)) > 0) { + listCouponUser = shamUserService.listRandCouponUser(5, 1, 300); + } + extraVO.setFanliValid(true); + extraVO.setBuyValid(true); + extraVO.setListCouponUser(listCouponUser); + goodsDetailVO.setExtra(extraVO); + loadLijinInfo(goodsDetailVO.getGoods()); + + + //娓呴櫎涓存椂淇℃伅 + goodsDetailVO.getGoods().setTempCoupon(null); + if (goodsDetailVO.getGoods().getLabels() == null) + goodsDetailVO.getGoods().setLabels(new ArrayList<>()); + goodsDetailVO.getGoods().getLabels().add(new ClientTextStyleVO("澶╃尗", "#FF2C4A")); + out.print(JsonUtil.loadTrueResult(new Gson().toJson(goodsDetailVO))); } + + /** + * 鍔犺浇绀奸噾淇℃伅 + * + * @param goodsInfoVO + */ + private void loadLijinInfo(GoodsDetailVO.GoodsInfoVO goodsInfoVO) { + //铏氭嫙鏁版嵁 + List<BigDecimal> lijinList = new ArrayList<>(); + lijinList.add(new BigDecimal("1")); + lijinList.add(new BigDecimal("2")); + lijinList.add(new BigDecimal("2.5")); + + GoodsDetailVO.GoodsHongBaoListVO.UserLevelVO userLevelVO = new GoodsDetailVO.GoodsHongBaoListVO.UserLevelVO(); + userLevelVO.setVipRank(1); + userLevelVO.setDesc("鍗囩骇涓洪搨閲戜細鍛樼孩鍖呭彲鎻愰珮100%"); + userLevelVO.setLink("http://www.baidu.com"); + + if (goodsInfoVO.getPriceList() == null) { + goodsInfoVO.setPriceList(new ArrayList<>()); + } + + goodsInfoVO.getPriceList().get(0).setUserLevel(userLevelVO); + + for (BigDecimal money : lijinList) { + GoodsDetailVO.GoodsHongBaoListVO price = new GoodsDetailVO.GoodsHongBaoListVO(); + price.setType(2); + price.setSubMoney("楼" + money); + price.setUserLevel(userLevelVO); + + //鏈�缁堜环鏍艰绠�=鍒稿悗浠�-绀奸噾 + price.setFinalMoney("楼" + goodsInfoVO.getCouponPrice().subtract(money).toString()); + + List<GoodsDetailVO.GoodsHongBaoListVO.PriceInfo> priceInfos = new ArrayList<>(); + + priceInfos.add(new GoodsDetailVO.GoodsHongBaoListVO.PriceInfo("鍘熶环", goodsInfoVO.getZkPrice())); + + if (goodsInfoVO.getTempCoupon() != null) { + priceInfos.add(new GoodsDetailVO.GoodsHongBaoListVO.PriceInfo("浼樻儬鍒�", "-楼" + MoneyBigDecimalUtil.getWithNoZera(goodsInfoVO.getTempCoupon().getAmount()).toString())); + } + + priceInfos.add(new GoodsDetailVO.GoodsHongBaoListVO.PriceInfo("棣栧崟绀奸噾", "-楼1")); + + priceInfos.add(new GoodsDetailVO.GoodsHongBaoListVO.PriceInfo("绀奸噾", "-" + "楼" + money)); + price.setPriceDetails(priceInfos); + goodsInfoVO.getPriceList().add(0, price); + } + + //璁$畻鏈�澶х殑绀奸噾闈㈤ + goodsInfoVO.getMoneyInfo().setHongBaoMoney("楼3"); + } + private TaoBaoGoodsBrief getTaoBaoGoods(Long id) { try { @@ -130,7 +254,6 @@ } return null; } - private JDGoods getJDGoods(Long id) { JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id); // 楂樼骇鎺ュ彛 -- Gitblit v1.8.0