From ff58896fa6d75b17499923d1926169795bf95bdf Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期二, 23 七月 2019 12:24:30 +0800 Subject: [PATCH] 分享h5接口兼容 京东+拼多多 --- fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java | 203 +++++++++++++++++++++++--------------------------- 1 files changed, 95 insertions(+), 108 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java b/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java index 530fc9c..ccc778b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java @@ -22,11 +22,16 @@ import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord; import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.jd.JDGoods; +import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.fanli.exception.taobao.TaoKeApiException; +import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService; +import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; +import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.vo.goods.GoodsDetailVO; import net.sf.json.JSONArray; @@ -71,15 +76,15 @@ } /** - * 鍒嗕韩鍟嗗搧璇︽儏 + * 鍒嗕韩鍟嗗搧鍒楄〃 * * @param callback * @param shareId 鍒嗕韩id * @param source 鏉ユ簮 * @param out */ - @RequestMapping(value = "getListJD") - public void getListJD(String callback, Long shareId, PrintWriter out) { + @RequestMapping(value = "getList") + public void getList(String callback, Long shareId, PrintWriter out) { try { if (shareId == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘")); @@ -90,30 +95,77 @@ List<UserShareGoodsGroup> list = userShareGoodsRecordService.listByRecordId(shareId); if (list != null && list.size() > 0) { - List<Long> listGid = new ArrayList<Long>(); + List<Long> listIdTB = new ArrayList<Long>(); + List<Long> listIdJD = new ArrayList<Long>(); + List<Long> listIdPDD = new ArrayList<Long>(); + for (int i = 0; i < list.size(); i++) { CommonGoods commonGoods = list.get(i).getCommonGoods(); if (commonGoods == null) { continue; } - listGid.add(commonGoods.getGoodsId()); - } - - // API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭 - List<JDGoods> listGoods = null; - try { - JDFilter filter = new JDFilter(); - filter.setListId(listGid); - filter.setPageIndex(1); - filter.setPageSize(100); - JDSearchResult result = JDApiUtil.queryByKey(filter); - if (result != null) { - listGoods = result.getGoodsList(); + + Integer goodsType = commonGoods.getGoodsType(); + if (goodsType == null) { + continue; } - } catch (Exception e) { - e.printStackTrace(); + + if (Constant.SOURCE_TYPE_TAOBAO == goodsType) { + listIdTB.add(commonGoods.getGoodsId()); + } else if (Constant.SOURCE_TYPE_JD == goodsType) { + listIdJD.add(commonGoods.getGoodsId()); + } else if (Constant.SOURCE_TYPE_PDD == goodsType) { + listIdPDD.add(commonGoods.getGoodsId()); + } } - + + // 娣樺疂楠岃瘉鏄惁鍦ㄥ敭 + List<TaoBaoGoodsBrief> listTB = null; + if (listIdTB.size() > 0) { + try { + listTB = TaoKeApiUtil.getBatchGoodsInfo(listIdTB); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // 浜笢楠岃瘉鏄惁鍦ㄥ敭 + List<JDGoods> listJD = null; + if (listIdJD.size() > 0) { + try { + JDFilter filter = new JDFilter(); + filter.setListId(listIdJD); + filter.setPageIndex(1); + filter.setPageSize(100); + JDSearchResult result = JDApiUtil.queryByKey(filter); + if (result != null) { + listJD = result.getGoodsList(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + // 鎷煎澶氶獙璇佹槸鍚﹀湪鍞� + List<PDDGoodsDetail> listPDD = null; + if (listIdPDD.size() > 0) { + try { + Long[] ids = new Long[list.size()]; + PDDSearchFilter sf = new PDDSearchFilter(); + sf.setPage(1); + sf.setPageSize(100); + sf.setGoodsIdList(listIdPDD.toArray(ids)); + PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(sf); + if (result != null) { + listPDD = result.getGoodsList(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); @@ -124,11 +176,27 @@ if (commonGoods == null) { continue; } - - if (listGoods != null && listGoods.size() > 0) { + Integer goodsType = commonGoods.getGoodsType(); + if (goodsType == null) { + goodsType = Constant.SOURCE_TYPE_TAOBAO; + } + Long commonGid = commonGoods.getGoodsId(); + + if (goodsType == Constant.SOURCE_TYPE_TAOBAO && listTB != null && listTB.size() > 0) { int state = 1; // 榛樿鍋滃敭 - Long commonGid = commonGoods.getGoodsId(); - for (JDGoods goodsDetail : listGoods) { + for (TaoBaoGoodsBrief goodsDetail : listTB) { + Long goodsId =goodsDetail.getAuctionId(); + if (goodsId == commonGid || goodsId.equals(commonGid)) { + state = 0; // 鍦ㄥ敭 + break; + } + } + commonGoods.setState(state); + } + + if (goodsType == Constant.SOURCE_TYPE_JD && listJD != null && listJD.size() > 0) { + int state = 1; // 榛樿鍋滃敭 + for (JDGoods goodsDetail : listJD) { Long goodsId =goodsDetail.getSkuId(); if (goodsId == commonGid || goodsId.equals(commonGid)) { state = 0; // 鍦ㄥ敭 @@ -138,91 +206,10 @@ commonGoods.setState(state); } - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate, shareRate); - if (!detailVO.isHasCoupon()) { - detailVO.setState(1);; // 宸叉姠鍏� - } - array.add(gson.toJson(detailVO)); - } - } - - String title = ""; - UserShareGoodsRecord userShareGoodsRecord = userShareGoodsRecordService.selectByPrimaryKey(shareId); - if (userShareGoodsRecord != null) { - title = userShareGoodsRecord.getTitle(); - } - - JSONObject data = new JSONObject(); - data.put("title", title); - data.put("count", list.size()); - data.put("result_list", array); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鑾峰彇澶辫触")); - e.printStackTrace(); - } - } - - - /** - * 鍒嗕韩鍟嗗搧璇︽儏 - * - * @param callback - * @param shareId 鍒嗕韩id - * @param source 鏉ユ簮 - * @param out - */ - @RequestMapping(value = "getListPDD") - public void getListPDD(String callback, Long shareId, PrintWriter out) { - try { - if (shareId == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘")); - return; - } - - JSONArray array = new JSONArray(); - - List<UserShareGoodsGroup> list = userShareGoodsRecordService.listByRecordId(shareId); - if (list != null && list.size() > 0) { - Long[] listGid = new Long[list.size()]; - for (int i = 0; i < list.size(); i++) { - CommonGoods commonGoods = list.get(i).getCommonGoods(); - if (commonGoods == null) { - continue; - } - listGid[i] = commonGoods.getGoodsId(); - } - - // API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭 - List<PDDGoodsDetail> listGoods = null; - try { - PDDSearchFilter sf = new PDDSearchFilter(); - sf.setPage(1); - sf.setPageSize(100); - sf.setGoodsIdList(listGid); - PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(sf); - if (result != null) { - listGoods = result.getGoodsList(); - } - } catch (Exception e) { - e.printStackTrace(); - } - - Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) - .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - - for (UserShareGoodsGroup goodsGroup : list) { - CommonGoods commonGoods = goodsGroup.getCommonGoods(); - if (commonGoods == null) { - continue; - } - - if (listGoods != null && listGoods.size() > 0) { + + if (goodsType == Constant.SOURCE_TYPE_PDD && listPDD != null && listPDD.size() > 0) { int state = 1; // 榛樿鍋滃敭 - Long commonGid = commonGoods.getGoodsId(); - for (PDDGoodsDetail goodsDetail : listGoods) { + for (PDDGoodsDetail goodsDetail : listPDD) { Long goodsId =goodsDetail.getGoodsId(); if (goodsId == commonGid || goodsId.equals(commonGid)) { state = 0; // 鍦ㄥ敭 -- Gitblit v1.8.0