From 1f2740829d4e7e1198a2070f66849873b18b4c22 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 31 五月 2021 18:50:00 +0800 Subject: [PATCH] 特价消息完善 --- fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java | 143 ++++++++++++++++++++++++++++------------------- 1 files changed, 84 insertions(+), 59 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 b2c75c6..14bbbf3 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,6 +1,12 @@ package com.yeshi.fanli.controller.client.lijin; import com.google.gson.Gson; +import com.ks.lijin.exception.LiJinAmountException; +import com.ks.lijin.exception.LiJinException; +import com.ks.lijin.exception.LiJinGoodsException; +import com.ks.lijin.exception.LiJinUserException; +import com.ks.lijin.pojo.DO.LiJinExpendRecord; +import com.ks.vip.pojo.Enums.VIPEnum; import com.yeshi.common.entity.taobao.TaoBaoShop; import com.yeshi.common.entity.taobao.TaoKeAppInfo; import com.yeshi.common.vo.ClientTextStyleVO; @@ -8,21 +14,23 @@ 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.SystemEnum; +import com.yeshi.fanli.entity.SystemPIDInfo; 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.lijin.manager.GoodsLijinMnager; +import com.yeshi.fanli.lijin.manager.UserLijinMnager; 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.service.manger.PIDManager; +import com.yeshi.fanli.util.*; import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOLijinFactory; import com.yeshi.fanli.util.factory.goods.ShopInfoVOFactory; @@ -36,6 +44,7 @@ import com.yeshi.fanli.util.vipshop.VipShopApiUtil; import com.yeshi.fanli.lijin.vo.GoodsDetailVO; import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; +import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.JsonUtil; @@ -69,6 +78,17 @@ @Resource private TaoBaoShopService taoBaoShopService; + @Resource + private GoodsLijinMnager goodsLijinMnager; + + + @Resource + private UserLijinMnager userLijinMnager; + + @Resource + private PIDManager pidManager; + + /** * 鑾峰彇鍟嗗搧璇︽儏 * @@ -83,9 +103,10 @@ GoodsDetailVO goodsDetailVO = new GoodsDetailVO(); GoodsDetailVO.GoodsExtraVO extraVO = new GoodsDetailVO.GoodsExtraVO(); GoodsMoneyConfigParamsDTO paramsDTO = new GoodsMoneyConfigParamsDTO(); - paramsDTO.setFanLiRate(new BigDecimal("60")); + paramsDTO.setFanLiRate(goodsLijinMnager.getFanLiRate(uid)); // 棰嗗埜浜哄垪琛� List<ShamUser> listCouponUser = new ArrayList<>(); + Long goodsIdSuning = null; switch (goodsType) { case Constant .SOURCE_TYPE_TAOBAO: @@ -117,7 +138,7 @@ case Constant .SOURCE_TYPE_PDD: - PDDGoodsDetail pddGoodsDetail = getPDDGoods(Long.parseLong(goodsId), uid); + PDDGoodsDetail pddGoodsDetail = getPDDGoods(acceptData.getSystem(), Long.parseLong(goodsId), uid); goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertPDDGoods(pddGoodsDetail, paramsDTO)); extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img_pdd.html?id=" + goodsId); break; @@ -132,6 +153,8 @@ .SOURCE_TYPE_SUNING: String[] ids = SuningUtil.getGoodsIdDetail(goodsId); SuningGoodsInfo suningGoodsInfo = SuningApiUtil.getGoodsDetail(ids[1], ids[0]); + goodsIdSuning = Long.parseLong(suningGoodsInfo.getCommodityInfo().getCommodityCode()); + goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertSuningGoods(suningGoodsInfo, paramsDTO)); extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img_suning.html?id=" + suningGoodsInfo.getCommodityInfo().getCommodityCode() + "&supplierCode=" @@ -143,7 +166,7 @@ //鏄惁鏀惰棌 extraVO.setCollected(false); if (uid != null) { - CollectionGoodsV2 collectionGoodsV2 = collectionGoodsV2Service.findByUidAndAuctionId(uid, Long.parseLong(goodsDetailVO.getGoods().getGoodsId()), goodsType); + CollectionGoodsV2 collectionGoodsV2 = collectionGoodsV2Service.findByUidAndAuctionId(uid, goodsType == Constant.SOURCE_TYPE_SUNING ? goodsIdSuning : Long.parseLong(goodsDetailVO.getGoods().getGoodsId()), goodsType); if (collectionGoodsV2 != null) { extraVO.setCollected(true); } @@ -157,66 +180,67 @@ extraVO.setBuyValid(true); extraVO.setListCouponUser(listCouponUser); goodsDetailVO.setExtra(extraVO); - loadLijinInfo(goodsDetailVO.getGoods()); - - + loadLijinInfo(uid, goodsDetailVO); //娓呴櫎涓存椂淇℃伅 goodsDetailVO.getGoods().setTempCoupon(null); if (goodsDetailVO.getGoods().getLabels() == null) goodsDetailVO.getGoods().setLabels(new ArrayList<>()); - goodsDetailVO.getGoods().getLabels().add(new ClientTextStyleVO("澶╃尗", "#FF2C4A")); + goodsDetailVO.getGoods().getLabels().add(0, new ClientTextStyleVO(ShopUtil.getShopTypeName(goodsDetailVO.getGoods().getShopType()), "#FF2C4A")); out.print(JsonUtil.loadTrueResult(new Gson().toJson(goodsDetailVO))); + } + + @RequestMapping("buyWithLijin") + public void buyWithLijin(AcceptData acceptData, int goodsType, String goodsId, String lijinId, Long uid, String from, PrintWriter out) { + String[] lijinTypes = lijinId.split("#"); + String lijinType = lijinTypes[0]; + if (lijinType.equalsIgnoreCase(GoodsDetailVO.GoodsHongBaoListVO.TYPE_LIJIN_LINK)) { + //绀奸噾閾炬帴 + //TODO 鑾峰彇閾炬帴 + } else { + //鍟嗗搧鏈韩绀奸噾 + try { + LiJinExpendRecord record = goodsLijinMnager.createTBLijin(Long.parseLong(goodsId), uid); + String sendUrl = record.getSendUrl(); + if (StringUtil.isNullOrEmpty(sendUrl)) { + out.print(JsonUtil.loadFalseResult("绀奸噾鍒涘缓澶辫触")); + return; + } + + JSONObject data = new JSONObject(); + JSONObject link = new JSONObject(); + link.put("clickUrl", sendUrl); + data.put("type", 1); + data.put("link", link); + data.put("native", true); + data.put("userLevel", userLijinMnager.getUserLevelInfo(uid, acceptData.getSystem())); + out.print(JsonUtil.loadTrueResult(data)); + } catch (LiJinException e) { + out.print(JsonUtil.loadFalseResult(e.getMsg())); + return; + } catch (LiJinGoodsException e) { + out.print(JsonUtil.loadFalseResult(e.getMsg())); + return; + } catch (LiJinAmountException e) { + out.print(JsonUtil.loadFalseResult(e.getMsg())); + return; + } catch (LiJinUserException e) { + out.print(JsonUtil.loadFalseResult(2001, "浠婃棩棰嗗彇绾㈠寘娆℃暟瓒呴檺")); + return; + } + } } /** * 鍔犺浇绀奸噾淇℃伅 * - * @param goodsInfoVO + * @param goodsDetailVO */ - 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 void loadLijinInfo(Long uid, GoodsDetailVO goodsDetailVO) { + VIPEnum vipRank = userLijinMnager.getVIPRank(uid); + GoodsDetailVO.GoodsHongBaoListVO.UserLevelVO userLevelVO = goodsLijinMnager.getUserLevel(vipRank); + if (goodsDetailVO.getGoods().getPriceList() != null && goodsDetailVO.getGoods().getPriceList().size() > 0) + goodsDetailVO.getGoods().getPriceList().get(0).setUserLevel(userLevelVO); + goodsLijinMnager.loadLijinInfo(vipRank, goodsDetailVO, userLevelVO); } @@ -264,15 +288,16 @@ return jdGoods; } - private PDDGoodsDetail getPDDGoods(Long id, Long uid) { + private PDDGoodsDetail getPDDGoods(SystemEnum system, Long id, Long uid) { + String pid = pidManager.getPidCache(system, Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.fanli); PDDGoodsDetail pddGoods = null; try { - pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id, PinDuoDuoApiUtil.PID_FANLI, pddAuthService.getFanliCustomParams(uid)); + pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id, pid, pddAuthService.getFanliCustomParams(uid)); } catch (PDDApiException e) { e.printStackTrace(); if (e.getCode() == PDDApiException.CODE_NOT_AUTH) { try { - pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id, PinDuoDuoApiUtil.PID_FANLI, Constant.PDD_SEARCH_CUSTOMER_PARAMS); + pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id, pid, Constant.PDD_SEARCH_CUSTOMER_PARAMS); } catch (PDDApiException e1) { } } -- Gitblit v1.8.0