From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5ShareController.java | 242 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 221 insertions(+), 21 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 926ebd1..ef1e118 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,6 +1,9 @@ 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; @@ -8,43 +11,240 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.JsonUtil; -import com.yeshi.fanli.exception.share.UserShareGoodsRecordException; -import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.yeshi.fanli.dto.ConfigParamsDTO; +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.bus.user.vip.UserLevelEnum; +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.service.inter.order.config.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; +import net.sf.json.JSONObject; @Controller @RequestMapping("api/apph5/v1/share") public class AppH5ShareController { - @Resource - private UserShareGoodsGroupService userShareGoodsGroupService; - + private UserShareGoodsRecordService userShareGoodsRecordService; + + @Resource + private HongBaoManageService hongBaoManageService; + /** - * 鍒嗕韩鍟嗗搧 + * 鍒嗕韩鍟嗗搧璇︽儏 + * * @param callback - * @param shareId 鍒嗕韩id - * @param source 鏉ユ簮 + * @param shareId + * 鍒嗕韩id + * @param source + * 鏉ユ簮 * @param out */ - @RequestMapping(value = "record") - public void query(String callback, Long shareId, String source, PrintWriter out) { - + @RequestMapping(value = "getDetail") + public void getDetail(String callback, Long shareId, String source, String fingerprint, PrintWriter out) { + try { - + if (shareId == null) { - out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘"))); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘")); return; } - - userShareGoodsGroupService.updateBrowseRecord(shareId, 1); - - out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("鏇存柊鎴愬姛"))); - } catch (UserShareGoodsRecordException e) { - out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(e.getMsg()))); + + // 鑾峰彇鍟嗗搧淇℃伅 + JSONObject data = userShareGoodsRecordService.getGoodsGroupDetail(shareId); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } catch (Exception e) { - out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鏇存柊澶辫触"))); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鑾峰彇澶辫触")); e.printStackTrace(); } } - + + /** + * 鍒嗕韩鍟嗗搧鍒楄〃 + * + * @param callback + * @param shareId + * 鍒嗕韩id + * @param source + * 鏉ユ簮 + * @param out + */ + @RequestMapping(value = "getList") + public void getList(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> 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; + } + + Integer goodsType = commonGoods.getGoodsType(); + if (goodsType == null) { + continue; + } + + 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(); + BigDecimal shareRate = hongBaoManageService.getShareRate(); + ConfigParamsDTO configParamsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, + hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP)); + + + for (UserShareGoodsGroup goodsGroup : list) { + CommonGoods commonGoods = goodsGroup.getCommonGoods(); + if (commonGoods == null) { + continue; + } + 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; // 榛樿鍋滃敭 + 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; // 鍦ㄥ敭 + break; + } + } + commonGoods.setState(state); + } + + if (goodsType == Constant.SOURCE_TYPE_PDD && listPDD != null && listPDD.size() > 0) { + int state = 1; // 榛樿鍋滃敭 + for (PDDGoodsDetail goodsDetail : listPDD) { + Long goodsId = goodsDetail.getGoodsId(); + if (goodsId == commonGid || goodsId.equals(commonGid)) { + state = 0; // 鍦ㄥ敭 + break; + } + } + commonGoods.setState(state); + } + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, configParamsDTO); + 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