From cdcbed9af813b2a02cdc01eefa24db8bec6b51a9 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期三, 27 三月 2019 12:17:33 +0800 Subject: [PATCH] 主分类 + 子分类 DAO改造 --- fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsClassController.java | 252 ++++++++++++++++++++++--------------------------- 1 files changed, 113 insertions(+), 139 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsClassController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsClassController.java index a75ea4e..bf7dbed 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsClassController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsClassController.java @@ -10,23 +10,20 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; - +import org.springframework.core.task.TaskExecutor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.yeshi.utils.JsonUtil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.yeshi.fanli.entity.accept.AcceptData; -import com.yeshi.fanli.entity.bus.clazz.ClassRecommendGoods; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.bus.clazz.GoodsSecondClass; import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass; import com.yeshi.fanli.entity.bus.lable.QualityFactory; -import com.yeshi.fanli.entity.bus.su.clazz.SuperGoodsClass; -import com.yeshi.fanli.entity.system.System; +import com.yeshi.fanli.entity.system.BusinessSystem; import com.yeshi.fanli.entity.taobao.SearchFilter; import com.yeshi.fanli.entity.taobao.TaoBaoCoupon; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; @@ -34,8 +31,7 @@ import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav; import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; import com.yeshi.fanli.log.LogHelper; -import com.yeshi.fanli.service.inter.config.SystemService; -import com.yeshi.fanli.service.inter.goods.ClassRecommendGoodsService; +import com.yeshi.fanli.service.inter.config.BusinessSystemService; import com.yeshi.fanli.service.inter.goods.GoodsClassService; import com.yeshi.fanli.service.inter.goods.GoodsSecondClassService; import com.yeshi.fanli.service.inter.goods.GoodsSubClassService; @@ -56,7 +52,9 @@ import com.yeshi.fanli.util.factory.MonitorFactory; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; -import org.yeshi.utils.JsonUtil; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; @Controller @RequestMapping("api/v1/class") @@ -67,9 +65,6 @@ @Resource private GoodsSecondClassService goodsSecondClassService; - - @Resource - private ClassRecommendGoodsService classRecommendGoodsService; @Resource private GoodsClassService goodsClassService; @@ -87,7 +82,7 @@ private HongBaoManageService manageService; @Resource - private SystemService systemService; + private BusinessSystemService businessSystemService; @Resource private RedisManager redisManager; @@ -109,6 +104,9 @@ @Resource private MonitorService monitorService; + @Resource(name = "taskExecutor") + private TaskExecutor executor; + /** * 鑾峰彇涓荤被鐩� * @@ -117,26 +115,34 @@ */ @RequestMapping(value = "getgoodsclass", method = RequestMethod.POST) public void getGoodsClass(AcceptData acceptData, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); - if (system == null) { - out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); - return; + + try { + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + if (system == null) { + out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); + return; + } + + List<GoodsClass> goodsClassList = goodsClassService.getListClassCache(system.getId()); + if (goodsClassList == null || goodsClassList.size() == 0) { + out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); + return; + } + + JSONObject data = new JSONObject(); + data.put("count", goodsClassList.size()); + data.put("goodsClassList", goodsClassList); + + out.print(JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鑾峰彇澶辫触")); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } } - List<SuperGoodsClass> superGoodsClassList = superGoodsClassService.getSuperGoodsClassBySystemId(system.getId()); - if (superGoodsClassList == null || superGoodsClassList.size() == 0) { - out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); - return; - } - List<GoodsClass> goodsClassList = new ArrayList<GoodsClass>(); - for (SuperGoodsClass superGoodsClass : superGoodsClassList) { - GoodsClass goodsClass = superGoodsClass.getGoodsClass(); - goodsClassList.add(goodsClass); - } - JSONObject data = new JSONObject(); - data.put("count", goodsClassList.size()); - data.put("goodsClassList", goodsClassList); - String result = JsonUtil.loadTrueResult(data); - out.print(result); + } /** @@ -157,35 +163,43 @@ return; } - if ("android".equalsIgnoreCase(acceptData.getPlatform())) { - Long androidClick = goodsClass.getAndroidClick(); - if (androidClick != null) { - goodsClass.setAndroidClick(androidClick + 1); - } else { - goodsClass.setAndroidClick(1L); - } - } else if ("ios".equalsIgnoreCase(acceptData.getPlatform())) { - Long iosClick = goodsClass.getIosClick(); - if (iosClick != null) { - goodsClass.setIosClick(iosClick + 1); - } else { - goodsClass.setIosClick(1L); - } - } - goodsClassService.updateByPrimaryKeySelective(goodsClass); - List<GoodsSubClass> goodsSubClassList = goodsSubClassService.getSubClassCache(gcid, 1); - - if (goodsSubClassList == null || goodsSubClassList.size() == 0) { - out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); - return; + if (goodsSubClassList == null) { + goodsSubClassList = new ArrayList<GoodsSubClass>(); } JSONObject data = new JSONObject(); data.put("count", goodsSubClassList.size()); data.put("goodsSecondClassList", JsonUtil.getApiCommonGson().toJson(goodsSubClassList)); - out.print(JsonUtil.loadTrueResult(data)); + + // 鏇存柊鍒嗙被鐐瑰嚮娆℃暟 + executor.execute(new Runnable() { + @Override + public void run() { + if ("android".equalsIgnoreCase(acceptData.getPlatform())) { + Long androidClick = goodsClass.getAndroidClick(); + if (androidClick != null) { + goodsClass.setAndroidClick(androidClick + 1); + } else { + goodsClass.setAndroidClick(1L); + } + } else if ("ios".equalsIgnoreCase(acceptData.getPlatform())) { + Long iosClick = goodsClass.getIosClick(); + if (iosClick != null) { + goodsClass.setIosClick(iosClick + 1); + } else { + goodsClass.setIosClick(1L); + } + } + + GoodsClass gc = new GoodsClass(); + gc.setId(goodsClass.getId()); + gc.setIosClick(goodsClass.getIosClick()); + gc.setAndroidClick(goodsClass.getAndroidClick()); + goodsClassService.updateByPrimaryKeySelective(gc); + } + }); } catch (Exception e) { out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); @@ -198,20 +212,6 @@ } - @RequestMapping(value = "getclassrecommendgoods", method = RequestMethod.POST) - public void getClassRecommendGoods(AcceptData acceptData, long goodsClassId, PrintWriter out) { - List<ClassRecommendGoods> classRecommendGoodsList = classRecommendGoodsService - .getClassRecommendGoodsByGoodsClassId(goodsClassId); - if (classRecommendGoodsList == null) { - out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); - return; - } - JSONObject data = new JSONObject(); - data.put("count", classRecommendGoodsList.size()); - data.put("classRecommendGoodsList", JsonUtil.getApiCommonGson().toJson(classRecommendGoodsList)); - String result = JsonUtil.loadTrueResult(data); - out.print(result); - } @RequestMapping(value = "getCouponGoods", method = RequestMethod.POST) public void getCouponGoods(AcceptData acceptData, int page, long gcid, PrintWriter out) { @@ -262,7 +262,7 @@ @RequestMapping(value = "getgoods", method = RequestMethod.POST) public void getGoods(AcceptData acceptData, int page, long scid, String filter, String order, String startprice, String endprice, String fastFilter, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -326,9 +326,7 @@ .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); JSONArray array = new JSONArray(); List<TaoBaoGoodsBrief> taobaoList = taoKeGoodsService.searchWuLiaoList(sf); - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); + BigDecimal proportion = manageService.getFanLiRate(); for (TaoBaoGoodsBrief taoBaoGoodsBrief : taobaoList) { int biz30day = taoBaoGoodsBrief.getBiz30day(); if (biz30day >= 10000) { @@ -338,7 +336,7 @@ } else { taoBaoGoodsBrief.setSalesCount(biz30day + ""); } - array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null))); + array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null))); } JSONObject data = new JSONObject(); data.put("nav", new JSONArray()); @@ -372,7 +370,7 @@ @RequestMapping(value = "getsecondclassgoods", method = RequestMethod.POST) public void getSecondClassGoods(AcceptData acceptData, int page, long scid, String filter, String order, String startprice, String endprice, String fastFilter, Integer totalSales, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -516,7 +514,11 @@ // 璁剧疆SearchFilter taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter, totalSales); - searchfilter.setEndPrice(new BigDecimal(99999)); + + // 鐢ㄦ埛鏈緭鍏ユ渶楂樹环鏍兼椂 鏈�楂樹环鏍奸檺鍒�99999 + if (searchfilter.getEndPrice() == null) { + searchfilter.setEndPrice(new BigDecimal(99999)); + } } searchfilter.setPage(pageNo); @@ -542,7 +544,7 @@ @RequestMapping("choiceGoods") public void choiceGoods(AcceptData acceptData, long gcid, int page, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -606,9 +608,7 @@ Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); + BigDecimal proportion = manageService.getFanLiRate(); // 閬嶅巻鍒楄〃鏁版嵁 for (QualityFactory selectionGoods : listQuery) { @@ -628,7 +628,12 @@ taoBaoGoodsBrief.setSalesCount(biz30day + ""); } - array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null))); + // 鐧藉簳鍥炬祴璇� + // if + // (!StringUtil.isNullOrEmpty(taoBaoGoodsBrief.getPictUrlWhite())) + // taoBaoGoodsBrief.setPictUrl(taoBaoGoodsBrief.getPictUrlWhite()); + + array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null))); } JSONObject data = new JSONObject(); @@ -682,15 +687,13 @@ public void getCouponList(AcceptData acceptData, int page, HttpServletRequest request, PrintWriter out) { page = page > 0 ? page : 1; List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = taoBaoCouponService.getTaoBaoCouponList(page); - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); + BigDecimal proportion = manageService.getFanLiRate(); JSONArray array = new JSONArray(); TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra; Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create(); for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, ""); + taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), ""); array.add(gson.toJson(taoBaoGoodsBriefExtra)); } int count = 10000; @@ -757,7 +760,7 @@ if (meterialId > 0) result = TaoKeApiUtil.getMaterialByMaterialId(meterialId, page, 20); else - result = TaoKeApiUtil.searchCouple(goodsClassService.getKwById(id), null, page, 20); + result = TaoKeApiUtil.searchCouple(goodsClassService.getKeysById(id), null, page, 20); List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav(); if (result.getNavList() != null) @@ -771,12 +774,10 @@ data.put("nav", gson.toJson(navList)); List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>(); List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); + BigDecimal proportion = manageService.getFanLiRate(); TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra; for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, ""); + taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), ""); re.add(taoBaoGoodsBriefExtra); } @@ -801,9 +802,10 @@ */ private void setTaoBaoCouponHongBao(List<TaoBaoCoupon> taoBaoCoupons) { if (taoBaoCoupons.size() > 0) { - String proportion = hongBaoManageService.get(Constant.HONGBAO_GOODS_PROPORTION); + BigDecimal proportion = hongBaoManageService.getFanLiRate(); + for (TaoBaoCoupon taoBaoCoupon : taoBaoCoupons) { - BigDecimal hb = TaoBaoUtil.getCouponHongBaoInfo(taoBaoCoupon, new BigDecimal(proportion)); + BigDecimal hb = TaoBaoUtil.getCouponHongBaoInfo(taoBaoCoupon, proportion); taoBaoCoupon.setHongbao(hb); } } @@ -811,59 +813,31 @@ @RequestMapping(value = { "getcategory" }, method = { org.springframework.web.bind.annotation.RequestMethod.POST }) public void getcategory(AcceptData acceptData, PrintWriter out) { - com.yeshi.fanli.entity.system.System system = this.systemService.getSystemCache(acceptData.getPlatform(), - acceptData.getPackages()); - if (system == null) { - out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); - return; - } + try { + com.yeshi.fanli.entity.system.BusinessSystem system = this.businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); + if (system == null) { + out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); + return; + } - List<SuperGoodsClass> superGoodsClassList = this.superGoodsClassService - .getSuperGoodsClassBySystemId(system.getId().longValue()); - if ((superGoodsClassList == null) || (superGoodsClassList.size() == 0)) { - out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁")); - return; - } + List<Map<String, Object>> listCache = goodsClassService.getClassListAllCache(system.getId()); + if (listCache == null) { + listCache = new ArrayList<Map<String, Object>>(); + } - List<GoodsClass> goodsClassList = new ArrayList<GoodsClass>(); - for (SuperGoodsClass superGoodsClass : superGoodsClassList) { - GoodsClass goodsClass = superGoodsClass.getGoodsClass(); - goodsClassList.add(goodsClass); - } + JSONObject data = new JSONObject(); + data.put("categoryList", listCache); - JSONArray array = new JSONArray(); + out.print(JsonUtil.loadTrueResult(data)); - Gson gson = new GsonBuilder().create(); - - if (goodsClassList.size() > 0) { - for (GoodsClass goodsClass : goodsClassList) { - goodsClass.setKey(null); - goodsClass.setCreatetime(0L); - goodsClass.setSearchParam(null); - goodsClass.setIosClick(null); - goodsClass.setAndroidClick(null); - - JSONObject data = new JSONObject(); - data.put("gclass", goodsClass); - long gcid = goodsClass.getId(); - try { - List<GoodsSubClass> subClassList = this.goodsSubClassService.getSubClassCache(Long.valueOf(gcid), - Integer.valueOf(1)); - if ((subClassList == null) || (subClassList.size() == 0)) { - subClassList = new ArrayList<GoodsSubClass>(); - } - data.put("subList", gson.toJson(subClassList)); - } catch (Exception e) { - e.printStackTrace(); - } - - array.add(data); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鑾峰彇澶辫触")); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); } } - - JSONObject data = new JSONObject(); - data.put("categoryList", array); - - out.print(JsonUtil.loadTrueResult(data)); } } -- Gitblit v1.8.0