From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 223 insertions(+), 13 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java index ac0345e..8bc6b7a 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java @@ -7,6 +7,7 @@ import javax.annotation.Resource; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -14,16 +15,33 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.yeshi.fanli.dto.ConfigParamsDTO; +import com.yeshi.fanli.dto.common.CommonContentNav; import com.yeshi.fanli.dto.common.CommonContentResult; import com.yeshi.fanli.dto.common.CommonContentTypeEnum; +import com.yeshi.fanli.dto.common.JDCommonContentTypeEnum; +import com.yeshi.fanli.dto.common.PDDCommonContentTypeEnum; +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.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture; +import com.yeshi.fanli.entity.jd.JDGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; import com.yeshi.fanli.service.inter.goods.CommonTemplateContentService; -import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; +import com.yeshi.fanli.service.inter.goods.JDCommonTemplateContentService; +import com.yeshi.fanli.service.inter.goods.PDDCommonTemplateContentService; +import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; +import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; +import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; +import com.yeshi.fanli.util.taobao.TaoKeApiUtil; +import com.yeshi.fanli.vo.goods.GoodsDetailVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -38,6 +56,8 @@ @RequestMapping("api/v2/commoncontent") public class CommonContentControllerV2 { + @Resource + private SwiperPictureService swiperPictureService; @Resource private HongBaoManageService hongBaoManageService; @@ -45,6 +65,41 @@ @Resource private CommonTemplateContentService commonTemplateContentService; + @Resource + private JDCommonTemplateContentService jdCommonTemplateContentService; + + @Resource + private PDDCommonTemplateContentService pddCommonTemplateContentService; + + /** + * 閫氱敤妯℃澘瀵艰埅 + * + * @param acceptData + * @param key + * @param out + */ + @RequestMapping(value = "getNavList", method = RequestMethod.POST) + public void getNavList(AcceptData acceptData, String key, Integer type, PrintWriter out) { + if (StringUtil.isNullOrEmpty(key)) { + out.print(JsonUtil.loadFalseResult(1, "璇蜂紶鍏ey")); + return; + } + + List<CommonContentNav> list = null; + if (type == null || type == Constant.SOURCE_TYPE_TAOBAO) { + list = commonTemplateContentService.getNavList(CommonContentTypeEnum.valueOf(key)); + } else if (type == Constant.SOURCE_TYPE_JD) { + // 鏆傛棤鍒嗙被 + } else if (type == Constant.SOURCE_TYPE_PDD) { + list = pddCommonTemplateContentService.getNavList(PDDCommonContentTypeEnum.valueOf(key)); + } + + if (list == null) { + list = new ArrayList<CommonContentNav>(); + } + + out.print(JsonUtil.loadTrueResult(new Gson().toJson(list))); + } /** * 鑾峰彇鍐呭 @@ -56,7 +111,8 @@ * @param out */ @RequestMapping(value = "getNavGoodsList", method = RequestMethod.POST) - public void getNavContent(AcceptData acceptData, String key, Integer page, String cid, PrintWriter out) { + public void getNavContent(AcceptData acceptData, String key, Integer type, Integer page, String cid, + PrintWriter out) { if (StringUtil.isNullOrEmpty(key)) { out.print(JsonUtil.loadFalseResult(1, "璇蜂紶鍏ey")); return; @@ -67,27 +123,181 @@ return; } - CommonContentResult result = commonTemplateContentService.getContentList(CommonContentTypeEnum.valueOf(key), - cid, page, Constant.PAGE_SIZE); + if (type == null || type == Constant.SOURCE_TYPE_TAOBAO) { + getListTB(acceptData, key, page, cid, out); + return; + } - // 淇濈暀鏆傛椂涓嶅紑鍚紝寰呭悗缁紑鍚� - List<SwiperPicture> bannerList = new ArrayList<>(); + if (type == Constant.SOURCE_TYPE_JD) { + getListJD(acceptData, key, page, cid, out); + return; + } + + if (type == Constant.SOURCE_TYPE_PDD) { + getListPDD(acceptData, key, page, cid, out); + return; + } + out.print(JsonUtil.loadFalseResult("goodsType鍙傛暟涓嶆纭�")); + } + + private void getListTB(AcceptData acceptData, String key, Integer page, String cid, PrintWriter out) { + CommonContentResult result = null; + CommonContentTypeEnum type = CommonContentTypeEnum.valueOf(key); + if (type == CommonContentTypeEnum.guessLikeDevice) { + // 鐚滀綘鍠滄 + String idfa = acceptData.getIdfa(); + String imei = acceptData.getImei(); + result = guessLikeDeviceTB(idfa, imei, acceptData.getUtdid(), page); + } else { + // 澶ф窐瀹㈤〉鐮佸彧鑳戒负10,50,100,200 + result = commonTemplateContentService.getContentList(type, cid, page, 10); + } JSONObject root = new JSONObject(); - if (page == 1) + if (page == 1) { + // 淇濈暀鏆傛椂涓嶅紑鍚紝寰呭悗缁紑鍚� + List<SwiperPicture> bannerList = new ArrayList<>(); root.put("bannerList", new Gson().toJson(bannerList)); + } JSONArray array = new JSONArray(); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create(); - List<TaoBaoGoodsBrief> goodsList = result.getGoodsList(); - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); + List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); + if (result != null) + goodsList = result.getGoodsList(); + + ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion()); for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsList) { - array.add(gson.toJson(GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate))); + GoodsDetailVO vo = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO); + if (type == CommonContentTypeEnum.mianDan)// 鍏嶅崟鍟嗗搧 + { + vo.getMoneyInfo().setFanliMoney("楼" + TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief)); + vo.getMoneyInfo().setShareMoney("楼" + TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief)); + vo.getMoneyInfo().setMaxMoney(null); + } + array.add(gson.toJson(vo)); } - root.put("goodsList", array); - root.put("goodsCount", result.getCount()); + + root.put("list", array); + root.put("count", result != null ? result.getCount() : 0); out.print(JsonUtil.loadTrueResult(root)); } + /** + * 浜笢閫氱敤涓撻妯℃澘 + * + * @param acceptData + * @param key + * @param page + * @param cid + * @param out + */ + public void getListJD(AcceptData acceptData, String key, Integer page, String cid, PrintWriter out) { + JSONObject data = new JSONObject(); + if (page == 1) { + List<SwiperPicture> bannerList = new ArrayList<>(); + data.put("bannerList", new Gson().toJson(bannerList)); + } + + JDSearchResult result = jdCommonTemplateContentService.getContentList(JDCommonContentTypeEnum.valueOf(key), cid, + page, Constant.PAGE_SIZE); + JSONArray array = new JSONArray(); + + long count = 0; + if (result != null) { + PageEntity pageEntity = result.getPageEntity(); + if (pageEntity != null) { + count = pageEntity.getTotalCount(); + } + + List<JDGoods> goodsList = result.getGoodsList(); + if (goodsList != null && goodsList.size() > 0) { + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); + ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion()); + + for (JDGoods goods : goodsList) { + array.add(gson.toJson(GoodsDetailVOFactory.convertJDGoods(goods, paramsDTO))); + } + } + } + + data.put("list", array); + data.put("count", count); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鎷煎澶氶�氱敤涓撻妯℃澘 + * + * @param acceptData + * @param key + * @param page + * @param cid + * @param out + */ + public void getListPDD(AcceptData acceptData, String key, Integer page, String cid, PrintWriter out) { + JSONObject data = new JSONObject(); + if (page == 1) { + // 2銆侀《閮ㄨ疆鎾浘 + List<SwiperPicture> bannerList = null; + if (Constant.IS_TEST) { + bannerList = swiperPictureService.getByBannerCardAndVersion("index_top", acceptData.getPlatform(), + Integer.parseInt(acceptData.getVersion())); + } + + if (bannerList == null) { + bannerList = new ArrayList<SwiperPicture>(); + } + + data.put("bannerList", new Gson().toJson(bannerList)); + } + + PDDGoodsResult result = pddCommonTemplateContentService.getContentList(PDDCommonContentTypeEnum.valueOf(key), + cid, page, Constant.PAGE_SIZE); + JSONArray array = new JSONArray(); + long count = 0; + if (result != null) { + count = result.getTotalCount(); + + List<PDDGoodsDetail> goodsList = result.getGoodsList(); + if (goodsList != null && goodsList.size() > 0) { + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); + ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion()); + + for (PDDGoodsDetail goods : goodsList) { + array.add(gson.toJson(GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO))); + } + } + } + + data.put("list", array); + data.put("count", count); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鐚滀綘鍠滄-娣樺疂璁惧鎺ㄨ崘 + * + * @param acceptData + * @param page + * @return + */ + @Cacheable(value = "commonContentCache", key = "#idfa+'-'+#imei+'-'+#page") + private CommonContentResult guessLikeDeviceTB(String idfa, String imei, String utdid, Integer page) { + TaoBaoSearchResult searchResult = TaoKeApiUtil.guessDeviceLike(page, Constant.PAGE_SIZE, imei, idfa, utdid); + if (searchResult != null && searchResult.getTaoBaoGoodsBriefs() != null + && searchResult.getTaoBaoGoodsBriefs().size() > 0) { + CommonContentResult result = new CommonContentResult(); + result.setCount(searchResult.getPageEntity().getTotalCount()); + result.setGoodsList(searchResult.getTaoBaoGoodsBriefs()); + return result; + } + return null; + } + } -- Gitblit v1.8.0