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/admin/TaoBaoGoodsBriefAdminController.java | 720 +++++++++++++++++++++++++++++++---------------------------- 1 files changed, 382 insertions(+), 338 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..5bad427 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 @@ -3,22 +3,23 @@ import java.io.PrintWriter; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; import java.util.List; 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; -import org.springframework.web.bind.annotation.RequestMethod; import org.yeshi.utils.JsonUtil; 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; @@ -26,21 +27,17 @@ import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; import com.yeshi.fanli.entity.taobao.TaobaoMeterial; -import com.yeshi.fanli.exception.ExistObjectException; -import com.yeshi.fanli.exception.NotExistObjectException; -import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; +import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2; import com.yeshi.fanli.service.inter.goods.GoodsClassService; import com.yeshi.fanli.service.inter.goods.TaoBaoClassService; -import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefRecordService; import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; import com.yeshi.fanli.service.inter.lable.QualityFactoryService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService; +import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; -import com.yeshi.fanli.util.GsonUtil; import com.yeshi.fanli.util.MoneyBigDecimalUtil; -import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; @@ -53,13 +50,10 @@ @Resource private TaoBaoGoodsBriefService taoBaoGoodsBriefService; - @Resource - private TaoBaoGoodsBriefRecordService taoBaoGoodsBriefRecordService; @Resource - private RedisManager redisManager; - @Resource - private QualityFactoryService selectionGoodsService; + private QualityFactoryService qualityFactoryService; + @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; @@ -70,160 +64,9 @@ @Resource private TaoBaoClassService taoBaoClassService; - - @RequestMapping(value = "getTBGoodsList", method = RequestMethod.POST) - public void getTaoBaoGoodsBriefList(int pageIndex, String key, PrintWriter out) { - - List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService.getTBList(pageIndex - 1, key); - int count = taoBaoGoodsBriefService.getCount(key); - int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1; - PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage); - Map<String, String> map = new HashMap<String, String>(); - map.put("key", key); - pe.setParams(map); - JSONObject data = new JSONObject(); - data.put("pe", pe); - data.put("taoBaoGoodsBriefList", GsonUtil.toDFJson(taoBaoGoodsBriefList)); - out.print(JsonUtil.loadTrueResult(data)); - } - - @RequestMapping(value = "getInvalidTaoBaoGoods", method = RequestMethod.POST) - public void getInvalidTaoBaoGoods(int pageIndex, PrintWriter out) { - List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService.getInvalidTB(pageIndex); - int count = taoBaoGoodsBriefService.getInvalidCount(); - int totalPage = count % Constant.PAGE_SIZE == 0 ? count / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1; - PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count, totalPage); - JSONObject data = new JSONObject(); - data.put("pe", pe); - data.put("taoBaoGoodsBriefList", GsonUtil.toDFJson(taoBaoGoodsBriefList)); - out.print(JsonUtil.loadTrueResult(data)); - } - - @RequestMapping(value = "getTaobaoGoods", method = RequestMethod.POST) - public void getTaoBaoGoodsBrief(long id, PrintWriter out) { - TaoBaoGoodsBrief taobao = taoBaoGoodsBriefService.getTaoBao(id); - - if (taobao == null) { - out.append(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍟嗗搧")); - return; - } - JSONObject data = new JSONObject(); - data.put("taobao", GsonUtil.toDFJson(taobao)); - List<String> list = new ArrayList<String>(); - list = TaoBaoUtil.getTbImg(taobao.getAuctionId() + ""); - data.put("imgList", list); - out.append(JsonUtil.loadTrueResult(data)); - } - - @RequestMapping(value = "updateTaoBaoGoodsBrief", method = RequestMethod.POST) - public void updateTaoBaoGoodsBrief(TaoBaoGoodsBrief tb, PrintWriter out) { - try { - taoBaoGoodsBriefService.updateTBGoods(tb); - } catch (NotExistObjectException e) { - out.append(JsonUtil.loadFalseResult(e.getMessage())); - return; - } - out.append(JsonUtil.loadTrueResult("淇敼鎴愬姛")); - } - - @RequestMapping(value = "deleteTaoBaoGoods", method = RequestMethod.POST) - public void deleteTaoBaoGoods(long[] ids, PrintWriter out) { - for (long id : ids) { - taoBaoGoodsBriefService.deleteTaoBaoGoods(id); - } - out.append(JsonUtil.loadTrueResult("鍒犻櫎鎴愬姛")); - } - - @RequestMapping(value = "addTaoBaoGoodsBrief", method = RequestMethod.POST) - public void addTaoBaoGoodsBrief(String[] ids, PrintWriter out) { - List<JSONObject> list = new ArrayList<JSONObject>(); - JSONObject data = null; - for (String id : ids) { - data = new JSONObject(); - - TaoBaoGoodsBrief taoBaoGoodsBrief = null; - try { - taoBaoGoodsBrief = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id)); - taoBaoGoodsBrief.setUpdatetime(new Date()); - taoBaoGoodsBrief.setCreatetime(new Date()); - } catch (NumberFormatException e1) { - e1.printStackTrace(); - } catch (TaobaoGoodsDownException e1) { - e1.printStackTrace(); - } - try { - taoBaoGoodsBriefService.insertSelective(taoBaoGoodsBrief); - // taoBaoGoodsBriefService.save(taoBaoGoodsBrief); - data.put("id", id); - data.put("msg", "娣诲姞鎴愬姛"); - } catch (Exception e) { - data.put("id", id); - data.put("msg", e.getMessage()); - } - list.add(data); - } - JSONObject dataAll = new JSONObject(); - dataAll.put("list", list); - out.print(JsonUtil.loadTrueResult(dataAll)); - } - - @RequestMapping(value = "addRecommendSectionGoods", method = RequestMethod.POST) - public void addRecommendSectionGoods(long rsid, String tbids, PrintWriter out) { - String[] tbidStrArr = tbids.split(","); - long[] tbidArr = StringUtil.parseLong(tbidStrArr); - List<JSONObject> list = new ArrayList<JSONObject>(); - JSONObject data = null; - for (long tbid : tbidArr) { - data = new JSONObject(); - try { - taoBaoGoodsBriefService.addRecommendSectionGoods(rsid, tbid); - data.put("id", tbid); - data.put("msg", "娣诲姞鎴愬姛"); - } catch (NotExistObjectException e) { - data.put("id", tbid); - data.put("msg", e.getMessage()); - } catch (ExistObjectException e) { - data.put("id", tbid); - data.put("msg", e.getMessage()); - } - list.add(data); - } - JSONObject dataAll = new JSONObject(); - dataAll.put("list", list); - out.print(JsonUtil.loadTrueResult(dataAll)); - } - - @RequestMapping(value = "addClassRecommendGoods", method = RequestMethod.POST) - public void addClassRecommendGoods(long gcid, String tbids, PrintWriter out) { - String[] tbidStrArr = tbids.split(","); - long[] tbidArr = StringUtil.parseLong(tbidStrArr); - List<JSONObject> list = new ArrayList<JSONObject>(); - JSONObject data = null; - for (long tbid : tbidArr) { - data = new JSONObject(); - try { - taoBaoGoodsBriefService.addClassRecommendGoods(gcid, tbid); - data.put("id", tbid); - data.put("msg", "娣诲姞鎴愬姛"); - } catch (NotExistObjectException e) { - data.put("id", tbid); - data.put("msg", e.getMessage()); - } catch (ExistObjectException e) { - data.put("id", tbid); - data.put("msg", e.getMessage()); - } - list.add(data); - } - JSONObject dataAll = new JSONObject(); - dataAll.put("list", list); - out.print(JsonUtil.loadTrueResult(dataAll)); - } - - @RequestMapping(value = "updateAllTaoBaoGoods", method = RequestMethod.POST) - public void updateAllTaoBaoGoods(PrintWriter out) { - taoBaoGoodsBriefService.getUpdateTaoBao(); - out.print(JsonUtil.loadTrueResult("鏇存柊瀹屾垚")); - } + + @Resource + private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; /** * @@ -247,179 +90,38 @@ public void queryOnSale(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, + Integer includePayRate30, Integer includeGoodRate, Integer includeRfdRate, Integer npxLevel, String cid, PrintWriter out) { try { + // 鏌ヨ鐗╂枡 + TaoBaoSearchResult result = getGoodsByWuLiao(pageIndex, pageSize, key, tbClassId, startPrice, endPrice, + startTkRate, endTkRate, sort, istmall, hasCoupon, baoYou, startDsr, overseas, needPrepay, + includePayRate30, includeGoodRate, includeRfdRate, npxLevel,cid); - 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); - } - } + 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 +216,261 @@ 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,null); + + 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); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鍔犲叆鎴愬姛")); + + } 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, String cids) + 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); + } + } + if (!StringUtil.isNullOrEmpty(cids)) + filter.setCateIds(cids); + + // 鏌ヨ鏉′欢鍜岀被鐩甶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 +670,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; // 瀛樺湪鍟嗗搧涓� @@ -746,9 +695,6 @@ data.put("listGoods", gson.toJson(listmap)); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - - // 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍 - taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs); } } catch (Exception e) { @@ -878,7 +824,7 @@ } // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� - List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId); + List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); @@ -949,14 +895,117 @@ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - // 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍 - taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs); - } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父")); e.printStackTrace(); } + } + + + private List<Map<String, Object>> filterTaoBaoGoodsWithQulity(List<TaoBaoGoodsBrief> goodsList) { + + // 鎻掑叆鍟嗗搧闆嗗悎 + List<Long> listAuctionId = new ArrayList<Long>(); + for (TaoBaoGoodsBrief goodsBrief : goodsList) { + listAuctionId.add(goodsBrief.getAuctionId()); + } + + // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� + List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); + + List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); + + for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsList) { + taoBaoGoodsBrief.setId(null); + + Map<String, Object> map = new HashMap<String, Object>(); + + map.put("pictUrl", taoBaoGoodsBrief.getPictUrl()); + map.put("title", taoBaoGoodsBrief.getTitle()); + map.put("auctionId", taoBaoGoodsBrief.getAuctionId()); + map.put("auctionUrl", taoBaoGoodsBrief.getAuctionUrl()); + map.put("zkPrice", taoBaoGoodsBrief.getZkPrice()); + map.put("biz30day", taoBaoGoodsBrief.getBiz30day()); + map.put("couponInfo", taoBaoGoodsBrief.getCouponInfo()); + map.put("couponTotalCount", taoBaoGoodsBrief.getCouponTotalCount()); + map.put("couponLeftCount", taoBaoGoodsBrief.getCouponLeftCount()); + map.put("couponEffectiveEndTime", taoBaoGoodsBrief.getCouponEffectiveEndTime()); + map.put("tkRate", taoBaoGoodsBrief.getTkRate()); + + // 鏉ユ簮 0 鏃� 1娣樺疂 2 浜笢 + map.put("goodsSource", 1); + + /* 鍒稿悗浠�--璁$畻 */ + BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief); + map.put("couponPrice", couponPrice); + + /* 棰勮鏀剁泭锛� 鍏徃銆佺敤鎴� */ + BigDecimal tkRate = taoBaoGoodsBrief.getTkRate(); + BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice(); + BigDecimal profit = MoneyBigDecimalUtil.mul(tkRate, zkPrice); + // 璁$畻缁撴灉 + BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100")); + + // 棰勮鏀剁泭 + map.put("estimateProfit", estimateProfit); + + int existence = 0; + + /* 鏌ヨ鍟嗗搧鏄惁宸插瓨鍦ㄥ晢鍝佺簿閫夊簱涓� */ + Long localAuctionId = taoBaoGoodsBrief.getAuctionId(); + if (localAuctionId != null) { + if (listHas != null && listHas.size() > 0) { + for (QualityFactory selectionGoods : listHas) { + TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); + Long hasId = hasgoodsBrief.getAuctionId(); + if (localAuctionId.equals(hasId) || localAuctionId == hasId) { + existence = 1; // 瀛樺湪鍟嗗搧涓� + } + } + } + } + + map.put("isExistence", existence); + + listmap.add(map); + } + + return listmap; + + } + + + @RequestMapping(value = "searchDaTaoKe") + public void searchDaTaoKe(String callback, Integer pageIndex, Integer pageSize, String key, Long cid, + PrintWriter out) { + try { + key = StringUtil.isNullOrEmpty(key) ? "" : key; + List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.listSearchByTitleWithCid(key, cid, pageIndex, + pageSize); + long count = daTaoKeGoodsDetailV2Service.countSearchByTitleWithCid(key, cid); + List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); + for (DaTaoKeDetailV2 detail : list) { + goodsList.add(TaoBaoUtil.convert(detail)); + } + + List<Map<String, Object>> listmap = filterTaoBaoGoodsWithQulity(goodsList); + + PageEntity pe = new PageEntity(pageIndex, pageSize, (int) count,(int)(count%pageSize==0?count/pageSize:count/pageSize+1)); + JSONObject data = new JSONObject(); + GsonBuilder gsonBuilder = new GsonBuilder(); + gsonBuilder.serializeNulls(); // 閲嶇偣 + Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd").create(); + + data.put("pe", pe); + data.put("listGoods", gson.toJson(listmap)); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父")); + e.printStackTrace(); + } } @RequestMapping(value = "getQiangGou") @@ -994,7 +1043,7 @@ } // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� - List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId); + List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); @@ -1049,7 +1098,6 @@ } map.put("isExistence", existence); - listmap.add(map); } @@ -1064,10 +1112,6 @@ data.put("listGoods", gson.toJson(listmap)); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - - // // 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍 - taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs); - } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父")); e.printStackTrace(); -- Gitblit v1.8.0