From 83eff153c7bdddf739e0e8882854a87eb6f3ef54 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期二, 23 七月 2019 11:01:48 +0800 Subject: [PATCH] 京东拼多多分享h5接口 --- fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 217 insertions(+), 7 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 adc2f7f..530fc9c 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 @@ -1,16 +1,36 @@ package com.yeshi.fanli.controller.apph5; import java.io.PrintWriter; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; import javax.annotation.Resource; - -import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.JsonUtil; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.yeshi.fanli.dto.jd.JDFilter; +import com.yeshi.fanli.dto.jd.JDSearchResult; +import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; +import com.yeshi.fanli.dto.pdd.PDDGoodsResult; +import com.yeshi.fanli.dto.pdd.PDDSearchFilter; +import com.yeshi.fanli.entity.bus.share.UserShareGoodsGroup; +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.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService; +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.vo.goods.GoodsDetailVO; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; @Controller @RequestMapping("api/apph5/v1/share") @@ -18,9 +38,13 @@ @Resource private UserShareGoodsRecordService userShareGoodsRecordService; - + + @Resource + private HongBaoManageService hongBaoManageService; + /** * 鍒嗕韩鍟嗗搧璇︽儏 + * * @param callback * @param shareId 鍒嗕韩id * @param source 鏉ユ簮 @@ -28,22 +52,208 @@ */ @RequestMapping(value = "getDetail") public void getDetail(String callback, Long shareId, String source, String fingerprint, PrintWriter out) { - + try { - + if (shareId == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘")); return; } - + // 鑾峰彇鍟嗗搧淇℃伅 JSONObject data = userShareGoodsRecordService.getGoodsGroupDetail(shareId); 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 = "getListJD") + public void getListJD(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) { + List<Long> listGid = 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(); + } + } 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) { + int state = 1; // 榛樿鍋滃敭 + Long commonGid = commonGoods.getGoodsId(); + for (JDGoods goodsDetail : listGoods) { + Long goodsId =goodsDetail.getSkuId(); + if (goodsId == commonGid || goodsId.equals(commonGid)) { + state = 0; // 鍦ㄥ敭 + break; + } + } + 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) { + int state = 1; // 榛樿鍋滃敭 + Long commonGid = commonGoods.getGoodsId(); + for (PDDGoodsDetail goodsDetail : listGoods) { + Long goodsId =goodsDetail.getGoodsId(); + if (goodsId == commonGid || goodsId.equals(commonGid)) { + state = 0; // 鍦ㄥ敭 + break; + } + } + 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(); + } + } } -- Gitblit v1.8.0