From 8b37d2f16d4aa7c7ce19829b74307ae0072b127f Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期一, 25 二月 2019 10:44:55 +0800 Subject: [PATCH] 1.5.1 奖励券、免单券 --- fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java | 428 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 265 insertions(+), 163 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java b/fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java index 74b2f84..7b3b0a0 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java @@ -9,6 +9,7 @@ import java.util.Map; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -17,8 +18,10 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.bus.lable.QualityFactory; +import com.yeshi.fanli.entity.common.AdminUser; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.SearchFilter; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; @@ -59,7 +62,7 @@ @Resource private RedisManager redisManager; @Resource - private QualityFactoryService selectionGoodsService; + private QualityFactoryService qualityFactoryService; @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; @@ -251,175 +254,34 @@ PrintWriter out) { try { - - SearchFilter filter = new SearchFilter(); - - // 椤靛ぇ灏忥紝榛樿20锛�1~100 - if (pageSize == null || pageSize < 1) - pageSize = Constant.PAGE_SIZE; - - filter.setPageSize(pageSize); - - // 绗嚑椤碉紝榛樿锛氾紤 - if (pageIndex == null || pageIndex < 1) - pageIndex = 1; - - filter.setPage(pageIndex); - - // 鏌ヨ璇� key------ 涓嶈兘涓虹┖--------- - if (!StringUtil.isNullOrEmpty(key)) - filter.setKey(key); - - if (tbClassId != null) { - GoodsClass rb = goodsClassService.getGoodsClass(tbClassId); - if (rb == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ被鍨嬪凡涓嶅瓨鍦�,璇峰埛鏂伴噸璇�")); - return; - } else { - - // 娣樺疂绫荤洰id - String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(tbClassId); - - if (StringUtil.isNullOrEmpty(taoBaoCatIds)) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ被鍨嬫窐瀹漣d涓虹┖锛岃閫氱煡鐩稿叧浜哄憳杩涜缁存姢")); - return; - } else { - filter.setCateIds(taoBaoCatIds); - } - } + // 鏌ヨ鐗╂枡 + TaoBaoSearchResult result = getGoodsByWuLiao(pageIndex, pageSize, key, tbClassId, startPrice, endPrice, startTkRate, endTkRate, sort, + istmall, hasCoupon, baoYou, startDsr, overseas, needPrepay, includePayRate30, includeGoodRate, + includeRfdRate, npxLevel); + + if (result == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅")); + return; } - - // 鏌ヨ鏉′欢鍜岀被鐩甶d涓嶈兘鍚屾椂涓虹┖ - if (StringUtil.isNullOrEmpty(key) && tbClassId == null) { - filter.setKey("濂宠"); - } - - // 鎶樻墸浠疯寖鍥翠笅闄� - if (startPrice != null) - filter.setStartPrice(new BigDecimal(startPrice)); - - // 鎶樻墸浠疯寖鍥翠笂闄� - if (endPrice != null && endPrice > 0) - filter.setEndPrice(new BigDecimal(endPrice)); - - // 娣樺浣i噾姣旂巼涓嬮檺 濡傦細1234琛ㄧず12.34% - if (!StringUtil.isNullOrEmpty(startTkRate)) { - int tkRate = (int) (Float.parseFloat(startTkRate) * 100); - filter.setStartTkRate(tkRate); - } - - // 娣樺浣i噾姣旂巼涓婇檺 濡傦細1234琛ㄧず12.34% - if (!StringUtil.isNullOrEmpty(endTkRate)) { - int tkRate = (int) (Float.parseFloat(endTkRate) * 100); - filter.setEndTkRate(tkRate); - } - - // 鎺掑簭瀛楁 - // 閿�閲忥紙total_sales锛夋窐瀹剑閲戞瘮鐜囷紙tk_rate锛夌疮璁℃帹骞块噺锛坱k_total_sales锛夋�绘敮鍑轰剑閲戯紙tk_total_commi锛� - if (sort != null) - filter.setSort(sort); - // 鏌ヨ澶╃尗 1 true - if (istmall != null && istmall == 1) - filter.setTmall(true); - // 鏄惁鏈夊埜 1 true - if (hasCoupon != null && hasCoupon == 1) - filter.setQuan(1); - // 鏄惁鍖呴偖锛宼rue琛ㄧず鍖呴偖锛岀┖鎴杅alse琛ㄧず涓嶉檺 - if (baoYou != null && baoYou == 1) { - filter.setBaoYou(true); - // filter.setIp("113.251.22.10");// 閲嶅簡 - filter.setIp("218.72.111.105");// 鏉窞 - - } - - // 搴楅摵dsr璇勫垎 - if (startDsr != null && startDsr >= 0 && startDsr <= 50000) - filter.setStartDsr(startDsr); - // 鏄惁娴峰鍟嗗搧 - if (overseas != null && overseas == 1) - filter.setOverseas(true); - // 鏄惁鍔犲叆娑堣垂鑰呬繚闅滐紝 - if (needPrepay != null && needPrepay == 1) - filter.setNeedPrepay(true); - // 鎴愪氦杞寲鏄惁楂樹簬琛屼笟鍧囧�� - if (includePayRate30 != null && includePayRate30 == 1) - filter.setIncludePayRate30(true); - // 濂借瘎鐜囨槸鍚﹂珮浜庤涓氬潎鍊� - if (includeGoodRate != null && includeGoodRate == 1) - filter.setIncludeGoodRate(true); - - // 閫�娆剧巼鏄惁浣庝簬琛屼笟鍧囧�� - if (includeRfdRate != null && includeRfdRate == 1) - filter.setIncludeRfdRate(true); - - // 鐗涚毊鐧g▼搴︼紝鍙栧�硷細1:涓嶉檺锛�2:鏃狅紝3:杞诲井 - if (npxLevel != null && npxLevel > 0 && npxLevel < 4) - filter.setNpxLevel(npxLevel); - - boolean islink = false; - Long auctionId = null; - - /* 鍒ゆ柇鏄惁鏄晢鍝侀摼鎺ユ悳绱� */ - if (key != null && key.contains("//") && key.contains("&")) { - String[] keyArray = key.split("\\?")[1].split("&"); - if (keyArray != null && keyArray.length > 0) { - String id = keyArray[0].replace("id=", "").trim(); - if (!StringUtil.isNullOrEmpty(id)) { - auctionId = Long.parseLong(id); - islink = true; - } - } - } - - TaoBaoSearchResult result = null; - List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = null; - - if (!islink) { - /* 娣樺疂鐗╂枡鎼滅储 */ - result = TaoKeApiUtil.searchWuLiao(filter); - if (result == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅")); - return; - } else { - taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); - } - - } else { - /* 鍟嗗搧閾炬帴鎼滅储 */ - - TaoBaoGoodsBrief searchGoodsDetail = TaoKeApiUtil.searchGoodsDetail(auctionId); - if (searchGoodsDetail == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅")); - return; - } else { - taoBaoGoodsBriefs = new ArrayList<>(); - taoBaoGoodsBriefs.add(searchGoodsDetail); - - result = new TaoBaoSearchResult(); - result.setTaoBaoGoodsBriefs(taoBaoGoodsBriefs); - - PageEntity pageEntity = new PageEntity(pageIndex, pageSize, 0, 0); - result.setPageEntity(pageEntity); - } - } - - if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { + + List<TaoBaoGoodsBrief> listTaoBaoGoods = result.getTaoBaoGoodsBriefs(); + if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈煡璇㈠埌娣樺疂鍟嗗搧淇℃伅")); return; } - + // 鎻掑叆鍟嗗搧闆嗗悎 List<Long> listAuctionId = new ArrayList<Long>(); - for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) { + for (TaoBaoGoodsBrief goodsBrief : listTaoBaoGoods) { listAuctionId.add(goodsBrief.getAuctionId()); } // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� - List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId); + List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); - for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { + for (TaoBaoGoodsBrief taoBaoGoodsBrief : listTaoBaoGoods) { taoBaoGoodsBrief.setId(null); @@ -514,14 +376,254 @@ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - // 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍 - taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs); - } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父")); e.printStackTrace(); } + } + + /** + * + * @param callback + * @param pageIndex + * @param key + * 鍏抽敭璇� + * @param startPrice + * 浠锋牸灏忓�� + * @param endPrice + * 浠锋牸澶у�� + * @param startTkRate + * 浣i噾灏忓�� + * @param endTkRate + * 浣i噾澶у�� + * @param sort + * 鎺掑簭 + * @param out + */ + @RequestMapping(value = "addTBGoodsFactory") + public void addTBGoodsFactory(String callback, Integer pageIndex, Integer pageSize, String key, Long tbClassId, + Integer startPrice, Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall, + Integer hasCoupon, Integer baoYou, Integer startDsr, Integer overseas, Integer needPrepay, + Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel, + String auctionIds, String lableNames, HttpServletRequest request, PrintWriter out) { + + try { + + if (StringUtil.isNullOrEmpty(auctionIds)) { + out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鐨勫晢鍝佸叆搴�"))); + return; + } + + Gson gson2 = new Gson(); + List<Long> listTaoBaoId = gson2.fromJson(auctionIds, new TypeToken<ArrayList<Long>>() {}.getType()); + if (listTaoBaoId == null || listTaoBaoId.size() == 0) { + out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("璇烽�夋嫨姝g‘鐨勫晢鍝佸叆搴�"))); + return; + } + + // 鏌ヨ鐗╂枡 + TaoBaoSearchResult result = getGoodsByWuLiao(pageIndex, pageSize, key, tbClassId, startPrice, endPrice, startTkRate, endTkRate, sort, + istmall, hasCoupon, baoYou, startDsr, overseas, needPrepay, includePayRate30, includeGoodRate, + includeRfdRate, npxLevel); + + if (result == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅")); + return; + } + + List<TaoBaoGoodsBrief> listTaoBaoGoods = result.getTaoBaoGoodsBriefs(); + if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈煡璇㈠埌娣樺疂鍟嗗搧淇℃伅")); + return; + } + + List<TaoBaoGoodsBrief> listAddGoods = new ArrayList<TaoBaoGoodsBrief>(); + for (TaoBaoGoodsBrief taoBaoGoodsBrief: listTaoBaoGoods) { + Long auctionId = taoBaoGoodsBrief.getAuctionId(); + if (listTaoBaoId.contains(auctionId)) { + listAddGoods.add(taoBaoGoodsBrief); + listTaoBaoId.remove(auctionId); + } + } + + if (listTaoBaoId != null && listTaoBaoId.size() > 0) { + for (Long auctionId: listTaoBaoId) { + /* 鏍规嵁auctionId 鑾峰彇娣樺疂鍟嗗搧 */ + TaoBaoGoodsBrief goodsBrief = TaoKeApiUtil.searchGoodsDetail(auctionId); + if (goodsBrief != null) { + listAddGoods.add(goodsBrief); + } + } + } + + AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN); + // 鎻掑叆绮鹃�夊簱 + qualityFactoryService.addBatchTaoBaoGoods(listAddGoods, lableNames, admin); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, e.getMessage())); + e.printStackTrace(); + } + + } + + /** + * 鏍规嵁鏉′欢娣樺疂鍟嗗搧鏌ヨ + * @param pageIndex + * @param pageSize + * @param key + * @param tbClassId + * @param startPrice + * @param endPrice + * @param startTkRate + * @param endTkRate + * @param sort + * @param istmall + * @param hasCoupon + * @param baoYou + * @param startDsr + * @param overseas + * @param needPrepay + * @param includePayRate30 + * @param includeGoodRate + * @param includeRfdRate + * @param npxLevel + * @throws Exception + */ + public TaoBaoSearchResult getGoodsByWuLiao(Integer pageIndex, Integer pageSize, String key, Long tbClassId, + Integer startPrice, Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall, + Integer hasCoupon, Integer baoYou, Integer startDsr, Integer overseas, Integer needPrepay, + Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel) + throws Exception { + + SearchFilter filter = new SearchFilter(); + filter.setPageSize(pageSize); + filter.setPage(pageIndex); + + // 鏌ヨ璇� key------ 涓嶈兘涓虹┖--------- + if (!StringUtil.isNullOrEmpty(key)) + filter.setKey(key); + + if (tbClassId != null) { + GoodsClass rb = goodsClassService.getGoodsClass(tbClassId); + if (rb == null) { + throw new Exception("璇ョ被鍨嬪凡涓嶅瓨鍦�,璇峰埛鏂伴噸璇�"); + } + + // 娣樺疂绫荤洰id + String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(tbClassId); + if (StringUtil.isNullOrEmpty(taoBaoCatIds)) { + throw new Exception("璇ョ被鍨嬫窐瀹漣d涓虹┖锛岃閫氱煡鐩稿叧浜哄憳杩涜缁存姢"); + } else { + filter.setCateIds(taoBaoCatIds); + } + } + + // 鏌ヨ鏉′欢鍜岀被鐩甶d涓嶈兘鍚屾椂涓虹┖ + if (StringUtil.isNullOrEmpty(key) && tbClassId == null) { + filter.setKey("濂宠"); + } + // 鎶樻墸浠疯寖鍥翠笅闄� + if (startPrice != null) { + filter.setStartPrice(new BigDecimal(startPrice)); + } + // 鎶樻墸浠疯寖鍥翠笂闄� + if (endPrice != null && endPrice > 0) { + filter.setEndPrice(new BigDecimal(endPrice)); + } + // 娣樺浣i噾姣旂巼涓嬮檺 濡傦細1234琛ㄧず12.34% + if (!StringUtil.isNullOrEmpty(startTkRate)) { + int tkRate = (int) (Float.parseFloat(startTkRate) * 100); + filter.setStartTkRate(tkRate); + } + // 娣樺浣i噾姣旂巼涓婇檺 濡傦細1234琛ㄧず12.34% + if (!StringUtil.isNullOrEmpty(endTkRate)) { + int tkRate = (int) (Float.parseFloat(endTkRate) * 100); + filter.setEndTkRate(tkRate); + } + // 鎺掑簭瀛楁 閿�閲忥紙total_sales锛夋窐瀹剑閲戞瘮鐜囷紙tk_rate锛夌疮璁℃帹骞块噺锛坱k_total_sales锛夋�绘敮鍑轰剑閲戯紙tk_total_commi锛� + if (sort != null) { + filter.setSort(sort); + } + // 鏌ヨ澶╃尗 1 true + if (istmall != null && istmall == 1) { + filter.setTmall(true); + } + // 鏄惁鏈夊埜 1 true + if (hasCoupon != null && hasCoupon == 1) { + filter.setQuan(1); + } + // 鏄惁鍖呴偖锛宼rue琛ㄧず鍖呴偖锛岀┖鎴杅alse琛ㄧず涓嶉檺 + if (baoYou != null && baoYou == 1) { + filter.setBaoYou(true); + // filter.setIp("113.251.22.10");// 閲嶅簡 + filter.setIp("218.72.111.105");// 鏉窞 + } + // 搴楅摵dsr璇勫垎 + if (startDsr != null && startDsr >= 0 && startDsr <= 50000) { + filter.setStartDsr(startDsr); + } + // 鏄惁娴峰鍟嗗搧 + if (overseas != null && overseas == 1) { + filter.setOverseas(true); + } + // 鏄惁鍔犲叆娑堣垂鑰呬繚闅滐紝 + if (needPrepay != null && needPrepay == 1) { + filter.setNeedPrepay(true); + } + // 鎴愪氦杞寲鏄惁楂樹簬琛屼笟鍧囧�� + if (includePayRate30 != null && includePayRate30 == 1) { + filter.setIncludePayRate30(true); + } + // 濂借瘎鐜囨槸鍚﹂珮浜庤涓氬潎鍊� + if (includeGoodRate != null && includeGoodRate == 1) { + filter.setIncludeGoodRate(true); + } + // 閫�娆剧巼鏄惁浣庝簬琛屼笟鍧囧�� + if (includeRfdRate != null && includeRfdRate == 1) { + filter.setIncludeRfdRate(true); + } + // 鐗涚毊鐧g▼搴︼紝鍙栧�硷細1:涓嶉檺锛�2:鏃狅紝3:杞诲井 + if (npxLevel != null && npxLevel > 0 && npxLevel < 4) { + filter.setNpxLevel(npxLevel); + } + + + boolean islink = false; + Long auctionId = null; + /* 鍒ゆ柇鏄惁鏄晢鍝侀摼鎺ユ悳绱� */ + if (key != null && key.contains("//") && key.contains("&")) { + String[] keyArray = key.split("\\?")[1].split("&"); + if (keyArray != null && keyArray.length > 0) { + String id = keyArray[0].replace("id=", "").trim(); + if (!StringUtil.isNullOrEmpty(id)) { + auctionId = Long.parseLong(id); + islink = true; + } + } + } + + TaoBaoSearchResult result = null; + + if (!islink) { + /* 娣樺疂鐗╂枡鎼滅储 */ + result = TaoKeApiUtil.searchWuLiao(filter); + } else { + /* 鍟嗗搧閾炬帴鎼滅储 */ + TaoBaoGoodsBrief searchGoodsDetail = TaoKeApiUtil.searchGoodsDetail(auctionId); + if (searchGoodsDetail != null) { + List<TaoBaoGoodsBrief> listGoods = new ArrayList<>(); + listGoods.add(searchGoodsDetail); + + result = new TaoBaoSearchResult(); + result.setTaoBaoGoodsBriefs(listGoods); + PageEntity pageEntity = new PageEntity(pageIndex, pageSize, 1, 1); + result.setPageEntity(pageEntity); + } + } + + return result; } /** @@ -721,7 +823,7 @@ if (goodsBrief != null) { Long id = goodsBrief.getId(); // 鏌ヨ绮鹃�夊簱 - Long has = selectionGoodsService.queryCountByGoodsId(id); + Long has = qualityFactoryService.queryCountByGoodsId(id); if (has != null && has > 0l) { existence = 1; // 瀛樺湪鍟嗗搧涓� @@ -878,7 +980,7 @@ } // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� - List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId); + List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); @@ -994,7 +1096,7 @@ } // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� - List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId); + List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); -- Gitblit v1.8.0