From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/controller/client/lijin/GoodsControllerLijin.java | 137 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 113 insertions(+), 24 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 bac3c92..47979c0 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 @@ -6,6 +6,7 @@ import com.ks.lijin.exception.LiJinGoodsException; import com.ks.lijin.exception.LiJinUserException; import com.ks.lijin.pojo.DO.LiJinExpendRecord; +import com.ks.lijin.pojo.DTO.MoneyInfo; import com.ks.vip.pojo.Enums.VIPEnum; import com.yeshi.common.entity.taobao.TaoBaoShop; import com.yeshi.common.entity.taobao.TaoKeAppInfo; @@ -18,6 +19,7 @@ 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.bus.user.UserInfo; import com.yeshi.fanli.entity.goods.CollectionGoodsV2; import com.yeshi.fanli.entity.jd.JDGoods; import com.yeshi.fanli.exception.goods.CommonGoodsException; @@ -26,15 +28,20 @@ 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.lijin.manager.UserLijinSendManager; +import com.yeshi.fanli.log.vo.UserGoodsScanLog; import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service; import com.yeshi.fanli.service.inter.goods.ScanHistoryV2Service; +import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; 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.service.inter.user.UserInfoService; 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.GoodsDetailVOFactory; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOLijinFactory; import com.yeshi.fanli.util.factory.goods.ShopInfoVOFactory; import com.yeshi.fanli.util.jd.JDApiUtil; @@ -48,20 +55,26 @@ import com.yeshi.fanli.lijin.vo.GoodsDetailVO; import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.MoneyBigDecimalUtil; +import org.yeshi.utils.NumberUtil; import javax.annotation.Resource; import java.io.PrintWriter; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; @Controller @RequestMapping("api/lijin/goods") public class GoodsControllerLijin { + Logger userGoodsScanLogger = LoggerFactory.getLogger("userGoodsScanLog"); + @Resource private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil; @@ -89,9 +102,18 @@ private UserLijinMnager userLijinMnager; @Resource + private UserLijinSendManager userLijinSendManager; + + @Resource private PIDManager pidManager; @Resource private ScanHistoryV2Service scanHistoryV2Service; + + @Resource + private UserInfoService userInfoService; + + @Resource + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; /** @@ -103,11 +125,14 @@ * @param from * @return */ + @RequestMapping("getGoodsDetail") 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(); + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(), acceptData.getSystem()); + paramsDTO.setFanLiRate(goodsLijinMnager.getFanLiRate(uid)); // 棰嗗埜浜哄垪琛� List<ShamUser> listCouponUser = new ArrayList<>(); @@ -115,17 +140,33 @@ switch (goodsType) { case Constant .SOURCE_TYPE_TAOBAO: - TaoBaoGoodsBrief goods = getTaoBaoGoods(Long.parseLong(goodsId)); + if (uid != null) { + ThreadUtil.run(new Runnable() { + @Override + public void run() { + //灏忎簬10鍧楄嚜鍔ㄥ彂鏀惧閲� + userLijinSendManager.autoSendLijin(uid, new BigDecimal(10)); + } + }); + + } + + TaoBaoGoodsBrief goods = getTaoBaoGoods(goodsId); + + //鍔犺浇璧勯噾淇℃伅 + com.yeshi.fanli.vo.goods.GoodsDetailVO goodsDetailVO1 = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO); + goodsDetailVO1 = goodsLijinMnager.loadTBMoneyInfo(acceptData.getSystem(), uid, goods, goodsDetailVO1, true); goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertTaoBao(goods, paramsDTO)); - BigDecimal lijinAmount = goodsLijinMnager.getTBLijin(uid, goods); - if (lijinAmount != null && lijinAmount.compareTo(new BigDecimal(0)) > 0) { - goodsDetailVO.getGoods().getMoneyInfo().setHongBaoMoney("楼" + lijinAmount); - GoodsDetailVOLijinFactory.fillRights(goodsDetailVO.getGoods()); - } + //閲嶇疆璧勯噾淇℃伅 + goodsDetailVO.getGoods().setMoneyInfo(goodsDetailVO1.getMoneyInfo()); + + + GoodsDetailVOLijinFactory.fillRights(goodsDetailVO.getGoods()); + // 搴楅摵淇℃伅 - TaoBaoShop shop = taoBaoShopService.getTaoBaoShop(goods.getId(), goods.getSellerId()); + TaoBaoShop shop = taoBaoShopService.getTaoBaoShop(goods.getAuctionId(), goods.getSellerId()); if (shop != null) { String shopLink = shop.getShopLink(); if (StringUtil.isNullOrEmpty(shopLink)) { @@ -134,7 +175,7 @@ goodsDetailVO.getGoods().setShopInfo(ShopInfoVOFactory.convertTaoBaoShop(shop)); } - extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img.html?id=" + goodsId); + extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img_tb.html?id=" + goodsId); ThreadUtil.run(new Runnable() { @Override public void run() { @@ -151,7 +192,7 @@ case Constant .SOURCE_TYPE_JD: - JDGoods jdGoods = getJDGoods(Long.parseLong(goodsId)); + JDGoods jdGoods = getJDGoods(goodsId); goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertJDGoods(jdGoods, paramsDTO)); extraVO.setDetailUrl("https://in.m.jd.com/product/jieshao/video/" + goodsId + ".html"); ThreadUtil.run(new Runnable() { @@ -170,7 +211,7 @@ case Constant .SOURCE_TYPE_PDD: - PDDGoodsDetail pddGoodsDetail = getPDDGoods(acceptData.getSystem(), Long.parseLong(goodsId), uid); + PDDGoodsDetail pddGoodsDetail = getPDDGoods(acceptData.getSystem(), goodsId, uid); goodsDetailVO.setGoods(GoodsDetailVOLijinFactory.convertPDDGoods(pddGoodsDetail, paramsDTO)); extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img_pdd.html?id=" + goodsId); ThreadUtil.run(new Runnable() { @@ -232,11 +273,24 @@ break; } + ThreadUtil.run(new Runnable() { + + + @Override + public void run() { + try { + userGoodsScanLogger.info("{}", new Gson().toJson(UserGoodsScanLog.UserGoodsScanLogFactory.create(goodsDetailVO.getGoods(), uid, acceptData.getUtdid(), acceptData.getDevice()))); + } catch (Exception e) { + + } + } + }); + //鏄惁鏀惰棌 extraVO.setCollected(false); if (uid != null) { - CollectionGoodsV2 collectionGoodsV2 = collectionGoodsV2Service.findByUidAndAuctionId(uid, goodsType == Constant.SOURCE_TYPE_SUNING ? goodsIdSuning : Long.parseLong(goodsDetailVO.getGoods().getGoodsId()), goodsType); + CollectionGoodsV2 collectionGoodsV2 = collectionGoodsV2Service.findByUidAndAuctionId(uid, goodsType == Constant.SOURCE_TYPE_SUNING ? goodsIdSuning + "" : goodsDetailVO.getGoods().getGoodsId(), goodsType); if (collectionGoodsV2 != null) { extraVO.setCollected(true); } @@ -250,7 +304,13 @@ extraVO.setBuyValid(true); extraVO.setListCouponUser(listCouponUser); goodsDetailVO.setExtra(extraVO); - loadLijinInfo(uid, goodsDetailVO); + try { + loadLijinInfo(uid, acceptData.getSystem(), goodsDetailVO); + } catch (Exception e) { + if (goodsDetailVO.getGoods().getMoneyInfo() != null) { + goodsDetailVO.getGoods().getMoneyInfo().setHongBaoMoney("0.00"); + } + } //娓呴櫎涓存椂淇℃伅 goodsDetailVO.getGoods().setTempCoupon(null); if (goodsDetailVO.getGoods().getLabels() == null) @@ -268,8 +328,19 @@ //TODO 鑾峰彇閾炬帴 } else { //鍟嗗搧鏈韩绀奸噾 + //鑾峰彇鐢ㄦ埛娉ㄥ唽鏃堕棿 + UserInfo user = userInfoService.getUserByIdWithMybatis(uid); + try { - LiJinExpendRecord record = goodsLijinMnager.createTBLijin(Long.parseLong(goodsId), uid); + userLijinSendManager.autoSendLijin(uid, new BigDecimal(10)); + userLijinSendManager.autoRecieveLijin(acceptData.getSystem(), acceptData.getDevice(), uid); + } catch (Exception e) { + e.printStackTrace(); + } + + + try { + LiJinExpendRecord record = goodsLijinMnager.createTBLijin(goodsId, uid, new Date(user.getCreatetime())); String sendUrl = record.getSendUrl(); if (StringUtil.isNullOrEmpty(sendUrl)) { out.print(JsonUtil.loadFalseResult("绀奸噾鍒涘缓澶辫触")); @@ -283,6 +354,12 @@ data.put("link", link); data.put("native", true); data.put("userLevel", userLijinMnager.getUserLevelInfo(uid, acceptData.getSystem())); + //鑾峰彇浠婃棩鐨勫墿浣欐鏁� + try { + int leftCount = goodsLijinMnager.getTodayLeftCount(uid, new Date(user.getCreatetime())); + data.put("todayLeftCount", "绔嬪噺鏈轰細锛�-1娆� 浠婃棩鍓╀綑锛�" + leftCount + "娆�"); + } catch (Exception e) { + } out.print(JsonUtil.loadTrueResult(data)); } catch (LiJinException e) { out.print(JsonUtil.loadFalseResult(e.getMsg())); @@ -294,6 +371,9 @@ out.print(JsonUtil.loadFalseResult(e.getMsg())); return; } catch (LiJinUserException e) { + if (e.getCode() == LiJinUserException.CODE_USER_BALANCE_NOT_ENOUGH) { + //TODO 浣欓涓嶈冻 + } out.print(JsonUtil.loadFalseResult(2001, "浠婃棩棰嗗彇绾㈠寘娆℃暟瓒呴檺")); return; } @@ -305,26 +385,35 @@ * * @param goodsDetailVO */ - private void loadLijinInfo(Long uid, GoodsDetailVO goodsDetailVO) { + private void loadLijinInfo(Long uid, SystemEnum system, GoodsDetailVO goodsDetailVO) { VIPEnum vipRank = userLijinMnager.getVIPRank(uid); - GoodsDetailVO.GoodsHongBaoListVO.UserLevelVO userLevelVO = goodsLijinMnager.getUserLevel(vipRank); + GoodsDetailVO.GoodsHongBaoListVO.UserLevelVO userLevelVO = goodsLijinMnager.getUserLevel(system, vipRank, true); + //杩斿埄UserLevel if (goodsDetailVO.getGoods().getPriceList() != null && goodsDetailVO.getGoods().getPriceList().size() > 0) goodsDetailVO.getGoods().getPriceList().get(0).setUserLevel(userLevelVO); + //绀奸噾UserLevel + userLevelVO = goodsLijinMnager.getUserLevel(system, vipRank, false); goodsLijinMnager.loadLijinInfo(vipRank, goodsDetailVO, userLevelVO); } - private TaoBaoGoodsBrief getTaoBaoGoods(Long id) { + private TaoBaoGoodsBrief getTaoBaoGoods(String id) { try { TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(id); if (goods != null) { return goods; } TaoKeAppInfo app = new TaoKeAppInfo(); - app.setAppKey(TaoBaoConstant.TAOBAO_COMMON_APPKEY); - app.setAppSecret(TaoBaoConstant.TAOBAO_COMMON_APPSECRET); - app.setPid(TaoBaoConstant.TAOBAO_COMMON_PID); - app.setAdzoneId(TaoBaoConstant.TAOBAO_COMMON_PID.split("_")[3]); + if (NumberUtil.isNumeric(id)) { + app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); + app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); + app.setPid(TaoBaoConstant.TAOBAO_PID_DEFAULT); + } else { + app.setAppKey(TaoBaoConstant.TAOBAO_COMMON_APPKEY); + app.setAppSecret(TaoBaoConstant.TAOBAO_COMMON_APPSECRET); + app.setPid(TaoBaoConstant.TAOBAO_COMMON_PID); + } + app.setAdzoneId(app.getPid().split("_")[3]); goods = TaoKeApiUtil.searchGoodsDetail(id, app); final TaoBaoGoodsBrief finalGoods = goods; @@ -349,16 +438,16 @@ return null; } - private JDGoods getJDGoods(Long id) { + private JDGoods getJDGoods(String id) { JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id); // 楂樼骇鎺ュ彛 if (jdGoods == null) { - jdGoods = JDUtil.getGoodsDetail(id); // 鐖彇缃戦〉 +// jdGoods = JDUtil.getGoodsDetail(id); // 鐖彇缃戦〉 // jdGoods = JDApiUtil.getGoodsDetail(id); // 鏅�氭帴鍙� } return jdGoods; } - private PDDGoodsDetail getPDDGoods(SystemEnum system, Long id, Long uid) { + private PDDGoodsDetail getPDDGoods(SystemEnum system, String id, Long uid) { String pid = pidManager.getPidCache(system, Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.fanli); PDDGoodsDetail pddGoods = null; try { -- Gitblit v1.8.0