From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/controller/admin/TaoBaoGoodsBriefAdminController.java | 2189 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 1,111 insertions(+), 1,078 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..405b1de 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 @@ -1,1078 +1,1111 @@ -package com.yeshi.fanli.controller.admin; - -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 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.bus.clazz.GoodsClass; -import com.yeshi.fanli.entity.bus.lable.QualityFactory; -import com.yeshi.fanli.entity.taobao.PidUser; -import com.yeshi.fanli.entity.taobao.SearchFilter; -import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; -import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav; -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.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.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; - -import net.sf.json.JSONObject; - -@Controller -@RequestMapping("admin/new/api/v1/taobao") -public class TaoBaoGoodsBriefAdminController { - - @Resource - private TaoBaoGoodsBriefService taoBaoGoodsBriefService; - @Resource - private TaoBaoGoodsBriefRecordService taoBaoGoodsBriefRecordService; - - @Resource - private RedisManager redisManager; - @Resource - private QualityFactoryService selectionGoodsService; - @Resource - private TaoBaoUnionConfigService taoBaoUnionConfigService; - - @Resource - private TaobaoMeterialService taobaoMeterialService; - @Resource - private GoodsClassService goodsClassService; - - @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("鏇存柊瀹屾垚")); - } - - /** - * - * @param callback - * @param pageIndex - * @param key - * 鍏抽敭璇� - * @param startPrice - * 浠锋牸灏忓�� - * @param endPrice - * 浠锋牸澶у�� - * @param startTkRate - * 浣i噾灏忓�� - * @param endTkRate - * 浣i噾澶у�� - * @param sort - * 鎺掑簭 - * @param out - */ - @RequestMapping(value = "queryOnSale") - 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, - 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); - } - } - } - - // 鏌ヨ鏉′欢鍜岀被鐩甶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) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈煡璇㈠埌娣樺疂鍟嗗搧淇℃伅")); - return; - } - - // 鎻掑叆鍟嗗搧闆嗗悎 - List<Long> listAuctionId = new ArrayList<Long>(); - for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) { - listAuctionId.add(goodsBrief.getAuctionId()); - } - - // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� - List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId); - - List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); - - for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { - - 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("shopTitle", taoBaoGoodsBrief.getShopTitle()); - 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 鍦ㄥ敭 姝よ幏鍙栫殑娣樺疂淇℃伅鍧囦负鍦ㄥ敭鍟嗗搧 */ - map.put("saleStae", 0); - // 鏉ユ簮 0 鏃� 1娣樺疂 2 浜笢 - map.put("goodsSource", 1); - - /* 1 瀹氬悜璁″垝 2 钀ラ攢杩斿埄 銆侀珮浣� 3 鏅剑 */ - Integer includeDxjh = taoBaoGoodsBrief.getIncludeDxjh(); - String tkMktStatus = taoBaoGoodsBrief.getTkMktStatus(); - - boolean include = false; - if (includeDxjh != null) { - if (includeDxjh == 1) { - // 瀹氬悜璁″垝 - map.put("yongjinType", 1); - include = true; - } - } - - if (!include) { - - if ("1".equals(tkMktStatus)) { - // 钀ラ攢杩斿埄 銆侀珮浣� - map.put("yongjinType", 2); - } else { - // 鏅剑 - map.put("yongjinType", 3); - } - } - - /* 鍒稿悗浠�--璁$畻 */ - 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); - } - - PageEntity pe = result.getPageEntity(); - - 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)); - - // 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍 - 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 = "searchAlimamaWeb") - public void searchAlimamaWeb(String callback, Integer pageIndex, Integer pageSize, String key, Integer startPrice, - Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall, Integer hasCoupon, - Integer searchType, Integer baoYou, String startBiz30day, String catIds, 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); - - // 绛涢�夋潯浠� 浼樺厛绛涢�夋煡璇㈣瘝 - if (!StringUtil.isNullOrEmpty(key)) { - filter.setKey(key); - } else { - // 楂樹剑id - if (!StringUtil.isNullOrEmpty(catIds)) { - - // 鐢疯+ 绫荤洰id - String[] split = catIds.split(","); - filter.setCateIds(split[1]); - } - } - - // 鎶樻墸浠疯寖鍥翠笅闄� - if (startPrice != null) - filter.setStartPrice(new BigDecimal(startPrice)); - - // 鎶樻墸浠疯寖鍥翠笂闄� - if (endPrice != null) - filter.setEndPrice(new BigDecimal(endPrice)); - - // 浣i噾姣旂巼涓嬮檺 - if (!StringUtil.isNullOrEmpty(startTkRate)) { - filter.setStartTkRate(Integer.parseInt(startTkRate)); - } - - // 姣旂巼涓婇檺 - if (!StringUtil.isNullOrEmpty(endTkRate)) { - filter.setEndTkRate(Integer.parseInt(endTkRate)); - } - - // 鎺掑簭瀛楁 - 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); - - // 閿�閲� - if (!StringUtil.isNullOrEmpty(startBiz30day)) - filter.setStartBiz30day(startBiz30day); - - List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); - - /* 娣樺疂缃戠粶 鐖彇 */ - TaoBaoSearchResult result = TaoBaoUtil.searchAlimamaWeb(filter, config.get(0), searchType); - - List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = null; - if (result == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅")); - return; - } else { - taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); - } - - if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈煡璇㈠埌娣樺疂鍟嗗搧淇℃伅")); - return; - } else { - List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); - - for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { - - 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("shopTitle", taoBaoGoodsBrief.getShopTitle()); - 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()); - - /* 浣i噾鍙栬緝澶х殑鍊� */ - String eventRate = taoBaoGoodsBrief.getEventRate(); - BigDecimal rate; - - BigDecimal tkRate2 = taoBaoGoodsBrief.getTkRate(); - if (!StringUtil.isNullOrEmpty(eventRate)) { - BigDecimal eRate = new BigDecimal(eventRate); - - int a = eRate.compareTo(tkRate2); - if (a >= 0) { - rate = eRate; - } else { - rate = tkRate2; - } - } else { - rate = tkRate2; - } - map.put("tkRate", rate); - - /* 鍟嗗搧閿�鍞姸鎬侊細 0 鍦ㄥ敭 姝よ幏鍙栫殑娣樺疂淇℃伅鍧囦负鍦ㄥ敭鍟嗗搧 */ - map.put("saleStae", 0); - // 鏉ユ簮 0 鏃� 1娣樺疂 2 浜笢 - map.put("goodsSource", 1); - - /* 1 瀹氬悜璁″垝 2 钀ラ攢杩斿埄 銆侀珮浣� 3 鏅剑 */ - // Integer includeDxjh = taoBaoGoodsBrief.getIncludeDxjh(); - // String tkMktStatus = taoBaoGoodsBrief.getTkMktStatus(); - /* - * boolean include = false; if (includeDxjh != null) { if - * (includeDxjh == 1) { // 瀹氬悜璁″垝 map.put("yongjinType",1); - * include = true; } } - */ - - /* - * if (!include){ - * - * if ("1".equals(tkMktStatus)) { // 钀ラ攢杩斿埄 銆侀珮浣� - * map.put("yongjinType",2); } else { // 鏅剑 - * map.put("yongjinType",3); } } - */ - - /* 鍒稿悗浠�--璁$畻 */ - BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief); - map.put("couponPrice", couponPrice); - - /* 棰勮鏀剁泭锛� 鍏徃銆佺敤鎴� */ - BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice(); - BigDecimal profit = MoneyBigDecimalUtil.mul(rate, zkPrice); - // 璁$畻缁撴灉 - BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100")); - - // 棰勮鏀剁泭 - map.put("estimateProfit", estimateProfit); - - int existence = 0; - - /* 鏌ヨ鍟嗗搧鏄惁宸插瓨鍦ㄥ晢鍝佺簿閫夊簱涓� */ - Long localAuctionId = taoBaoGoodsBrief.getAuctionId(); - - if (localAuctionId != null) { - List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService - .queryByAuctionId(localAuctionId); - - if (taoBaoGoodsBriefList != null && taoBaoGoodsBriefList.size() > 0) { - - TaoBaoGoodsBrief goodsBrief = taoBaoGoodsBriefList.get(0); - - if (goodsBrief != null) { - Long id = goodsBrief.getId(); - // 鏌ヨ绮鹃�夊簱 - Long has = selectionGoodsService.queryCountByGoodsId(id); - - if (has != null && has > 0l) { - existence = 1; // 瀛樺湪鍟嗗搧涓� - } - } - } - } - - map.put("isExistence", existence); - - listmap.add(map); - } - - PageEntity pe = result.getPageEntity(); - - 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)); - - // 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍 - taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs); - } - - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父")); - e.printStackTrace(); - } - } - - /** - * 鑾峰彇娣樺疂楂樹剑鏌ヨ绫荤洰 - * - * @param callback - * @param out - */ - @RequestMapping(value = "getNavList") - public void getNavList(String callback, PrintWriter out) { - - try { - - SearchFilter filter = new SearchFilter(); - filter.setPageSize(10); - filter.setPage(1); - - List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); - - /* 娣樺疂缃戠粶 鐖彇 */ - TaoBaoSearchResult result = TaoBaoUtil.searchAlimamaWeb(filter, config.get(0), 3); - - if (result == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("娣樺疂鍒楄〃鑾峰彇澶辫触")); - return; - } - - List<TaoBaoSearchNav> navList = result.getNavList(); - - if (navList == null || navList.size() == 0) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("娣樺疂鍒楄〃鑾峰彇澶辫触")); - return; - } - - GsonBuilder gsonBuilder = new GsonBuilder(); - gsonBuilder.serializeNulls(); - Gson gson = gsonBuilder.create(); - - JSONObject data = new JSONObject(); - data.put("navList", gson.toJson(navList)); - - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - - } 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 = "searchMaterial") - public void searchMaterial(String callback, Integer pageIndex, Integer pageSize, String subName, String superName, - PrintWriter out) { - - try { - - List<TaobaoMeterial> taobaoMeterials = null; - if (!StringUtil.isNullOrEmpty(subName) && !StringUtil.isNullOrEmpty(superName)) { - taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperName(subName, superName); - } else if (!StringUtil.isNullOrEmpty(superName)) { - taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperName(null, superName); - } else { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨绛涢�夌被鐩�")); - return; - } - - if (taobaoMeterials == null || taobaoMeterials.size() == 0) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绫荤洰淇℃伅涓嶅瓨鍦�")); - return; - } - - TaobaoMeterial taobaoMeterial = taobaoMeterials.get(0); - Integer materialId = taobaoMeterial.getMaterialId(); - if (materialId == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ被鐩墿鏂橧D涓嶅瓨鍦�")); - return; - } - - // 椤靛ぇ灏忥紝榛樿20锛�1~100 - if (pageSize == null || pageSize < 1) - pageSize = Constant.PAGE_SIZE; - - // 绗嚑椤碉紝榛樿锛氾紤 - if (pageIndex == null || pageIndex < 1) - pageIndex = 1; - - TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize); - - if (result == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛湭鑾峰彇鍒扮浉鍏虫暟鎹�")); - return; - } - - List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); - if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鐩稿叧鏁版嵁")); - return; - } - - // 鎻掑叆鍟嗗搧闆嗗悎 - List<Long> listAuctionId = new ArrayList<Long>(); - for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) { - listAuctionId.add(goodsBrief.getAuctionId()); - } - - // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� - List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId); - - List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); - - for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { - 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); - } - - PageEntity pe = result.getPageEntity(); - - 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)); - - // 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍 - taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs); - - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父")); - e.printStackTrace(); - } - - } - - @RequestMapping(value = "getQiangGou") - public void getQiangGou(String callback, Integer pageIndex, PrintWriter out) { - - try { - - int pageSize = 40; - - // 绗嚑椤碉紝榛樿锛氾紤 - if (pageIndex == null || pageIndex < 1) - pageIndex = 1; - - String startTime = "2018-09-17 09:00:00"; - - String endTime = "2018-09-17 16:00:00"; - - TaoBaoSearchResult result = TaoKeApiUtil.taoQiangGou(pageIndex, pageSize, startTime, endTime); - - if (result == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛湭鑾峰彇鍒扮浉鍏虫暟鎹�")); - return; - } - - List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); - if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鐩稿叧鏁版嵁")); - return; - } - - // 鎻掑叆鍟嗗搧闆嗗悎 - List<Long> listAuctionId = new ArrayList<Long>(); - for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) { - listAuctionId.add(goodsBrief.getAuctionId()); - } - - // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� - List<QualityFactory> listHas = selectionGoodsService.listQueryByAuctionId(listAuctionId); - - List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); - - for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { - 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); - } - - PageEntity pe = result.getPageEntity(); - - 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)); - - // // 鎻掑叆鏈湴鏁版嵁-娣樺疂鏁版嵁璁板綍 - taoBaoGoodsBriefRecordService.insertBatch(taoBaoGoodsBriefs); - - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父")); - e.printStackTrace(); - } - - } - -} +package com.yeshi.fanli.controller.admin; + +import java.io.PrintWriter; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import com.yeshi.fanli.entity.accept.AdminAcceptData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +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.goods.facade.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav; +import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; +import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; +import com.yeshi.fanli.entity.taobao.TaobaoMeterial; +import com.yeshi.goods.facade.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.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.goods.facade.service.DaTaoKeGoodsDetailV2Service; +import com.yeshi.common.entity.PageEntity; +import com.yeshi.fanli.util.Constant; +import org.yeshi.utils.MoneyBigDecimalUtil; +import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; +import com.yeshi.fanli.util.taobao.TaoKeApiUtil; + +import net.sf.json.JSONObject; + +@Controller +@RequestMapping("admin/new/api/v1/taobao") +public class TaoBaoGoodsBriefAdminController { + + @Resource + private TaoBaoGoodsBriefService taoBaoGoodsBriefService; + + @Resource + private QualityFactoryService qualityFactoryService; + + @Resource + private TaoBaoUnionConfigService taoBaoUnionConfigService; + + @Resource + private TaobaoMeterialService taobaoMeterialService; + @Resource + private GoodsClassService goodsClassService; + + @Resource + private TaoBaoClassService taoBaoClassService; + + @Resource + private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; + + /** + * + * @param callback + * @param pageIndex + * @param key + * 鍏抽敭璇� + * @param startPrice + * 浠锋牸灏忓�� + * @param endPrice + * 浠锋牸澶у�� + * @param startTkRate + * 浣i噾灏忓�� + * @param endTkRate + * 浣i噾澶у�� + * @param sort + * 鎺掑簭 + * @param out + */ + @RequestMapping(value = "queryOnSale") + public void queryOnSale(AdminAcceptData acceptData, 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 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); + + 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<String> listAuctionId = new ArrayList<>(); + for (TaoBaoGoodsBrief goodsBrief : listTaoBaoGoods) { + listAuctionId.add(goodsBrief.getAuctionId()); + } + + // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� + List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); + + List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); + + for (TaoBaoGoodsBrief taoBaoGoodsBrief : listTaoBaoGoods) { + + 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("shopTitle", taoBaoGoodsBrief.getShopTitle()); + 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 鍦ㄥ敭 姝よ幏鍙栫殑娣樺疂淇℃伅鍧囦负鍦ㄥ敭鍟嗗搧 */ + map.put("saleStae", 0); + // 鏉ユ簮 0 鏃� 1娣樺疂 2 浜笢 + map.put("goodsSource", 1); + + /* 1 瀹氬悜璁″垝 2 钀ラ攢杩斿埄 銆侀珮浣� 3 鏅剑 */ + Integer includeDxjh = taoBaoGoodsBrief.getIncludeDxjh(); + String tkMktStatus = taoBaoGoodsBrief.getTkMktStatus(); + + boolean include = false; + if (includeDxjh != null) { + if (includeDxjh == 1) { + // 瀹氬悜璁″垝 + map.put("yongjinType", 1); + include = true; + } + } + + if (!include) { + + if ("1".equals(tkMktStatus)) { + // 钀ラ攢杩斿埄 銆侀珮浣� + map.put("yongjinType", 2); + } else { + // 鏅剑 + map.put("yongjinType", 3); + } + } + + /* 鍒稿悗浠�--璁$畻 */ + BigDecimal couponPrice = TaoBaoUtil.getCouponPrice(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; + + /* 鏌ヨ鍟嗗搧鏄惁宸插瓨鍦ㄥ晢鍝佺簿閫夊簱涓� */ + String localAuctionId = taoBaoGoodsBrief.getAuctionId(); + if (localAuctionId != null) { + if (listHas != null && listHas.size() > 0) { + for (QualityFactory selectionGoods : listHas) { + TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); + String hasId = hasgoodsBrief.getAuctionId(); + if (TaoBaoUtil.isEqual( localAuctionId,hasId)) { + existence = 1; // 瀛樺湪鍟嗗搧涓� + } + } + } + } + + map.put("isExistence", existence); + + listmap.add(map); + } + + PageEntity pe = result.getPageEntity(); + + 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(); + } + + } + + /** + * 鍔犲叆绮鹃�夊簱鍟嗗搧 + * + * @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(AdminAcceptData acceptData,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<String> listTaoBaoId = gson2.fromJson(auctionIds, new TypeToken<ArrayList<String>>() { + }.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<>(); + for (TaoBaoGoodsBrief taoBaoGoodsBrief : listTaoBaoGoods) { + String auctionId = taoBaoGoodsBrief.getAuctionId(); + if (listTaoBaoId.contains(auctionId)) { + listAddGoods.add(taoBaoGoodsBrief); + listTaoBaoId.remove(auctionId); + } + } + + if (listTaoBaoId != null && listTaoBaoId.size() > 0) { + for (String 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; + String 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 = id; + islink = true; + } + } + } + + TaoBaoSearchResult result = null; + + if (!islink) { + /* 娣樺疂鐗╂枡鎼滅储 */ + result = TaoKeApiUtil.searchWuLiaoNew(filter,null,null); + } 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; + } + + /** + * + * @param callback + * @param pageIndex + * @param key + * 鍏抽敭璇� + * @param startPrice + * 浠锋牸灏忓�� + * @param endPrice + * 浠锋牸澶у�� + * @param startTkRate + * 浣i噾灏忓�� + * @param endTkRate + * 浣i噾澶у�� + * @param sort + * 鎺掑簭 + * @param out + */ + @RequestMapping(value = "searchAlimamaWeb") + public void searchAlimamaWeb(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, String key, Integer startPrice, + Integer endPrice, String startTkRate, String endTkRate, Integer sort, Integer istmall, Integer hasCoupon, + Integer searchType, Integer baoYou, String startBiz30day, String catIds, 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); + + // 绛涢�夋潯浠� 浼樺厛绛涢�夋煡璇㈣瘝 + if (!StringUtil.isNullOrEmpty(key)) { + filter.setKey(key); + } else { + // 楂樹剑id + if (!StringUtil.isNullOrEmpty(catIds)) { + + // 鐢疯+ 绫荤洰id + String[] split = catIds.split(","); + filter.setCateIds(split[1]); + } + } + + // 鎶樻墸浠疯寖鍥翠笅闄� + if (startPrice != null) + filter.setStartPrice(new BigDecimal(startPrice)); + + // 鎶樻墸浠疯寖鍥翠笂闄� + if (endPrice != null) + filter.setEndPrice(new BigDecimal(endPrice)); + + // 浣i噾姣旂巼涓嬮檺 + if (!StringUtil.isNullOrEmpty(startTkRate)) { + filter.setStartTkRate(Integer.parseInt(startTkRate)); + } + + // 姣旂巼涓婇檺 + if (!StringUtil.isNullOrEmpty(endTkRate)) { + filter.setEndTkRate(Integer.parseInt(endTkRate)); + } + + // 鎺掑簭瀛楁 + 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); + + // 閿�閲� + if (!StringUtil.isNullOrEmpty(startBiz30day)) + filter.setStartBiz30day(startBiz30day); + + List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); + + /* 娣樺疂缃戠粶 鐖彇 */ + TaoBaoSearchResult result = TaoBaoUtil.searchAlimamaWeb(filter, config.get(0), searchType); + + List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = null; + if (result == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈幏鍙栧埌娣樺疂鍟嗗搧淇℃伅")); + return; + } else { + taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); + } + + if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏈煡璇㈠埌娣樺疂鍟嗗搧淇℃伅")); + return; + } else { + List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); + + for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { + + 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("shopTitle", taoBaoGoodsBrief.getShopTitle()); + 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()); + + /* 浣i噾鍙栬緝澶х殑鍊� */ + String eventRate = taoBaoGoodsBrief.getEventRate(); + BigDecimal rate; + + BigDecimal tkRate2 = taoBaoGoodsBrief.getTkRate(); + if (!StringUtil.isNullOrEmpty(eventRate)) { + BigDecimal eRate = new BigDecimal(eventRate); + + int a = eRate.compareTo(tkRate2); + if (a >= 0) { + rate = eRate; + } else { + rate = tkRate2; + } + } else { + rate = tkRate2; + } + map.put("tkRate", rate); + + /* 鍟嗗搧閿�鍞姸鎬侊細 0 鍦ㄥ敭 姝よ幏鍙栫殑娣樺疂淇℃伅鍧囦负鍦ㄥ敭鍟嗗搧 */ + map.put("saleStae", 0); + // 鏉ユ簮 0 鏃� 1娣樺疂 2 浜笢 + map.put("goodsSource", 1); + + /* 1 瀹氬悜璁″垝 2 钀ラ攢杩斿埄 銆侀珮浣� 3 鏅剑 */ + // Integer includeDxjh = taoBaoGoodsBrief.getIncludeDxjh(); + // String tkMktStatus = taoBaoGoodsBrief.getTkMktStatus(); + /* + * boolean include = false; if (includeDxjh != null) { if + * (includeDxjh == 1) { // 瀹氬悜璁″垝 map.put("yongjinType",1); + * include = true; } } + */ + + /* + * if (!include){ + * + * if ("1".equals(tkMktStatus)) { // 钀ラ攢杩斿埄 銆侀珮浣� + * map.put("yongjinType",2); } else { // 鏅剑 + * map.put("yongjinType",3); } } + */ + + /* 鍒稿悗浠�--璁$畻 */ + BigDecimal couponPrice = TaoBaoUtil.getCouponPrice(taoBaoGoodsBrief); + map.put("couponPrice", couponPrice); + + /* 棰勮鏀剁泭锛� 鍏徃銆佺敤鎴� */ + BigDecimal zkPrice = taoBaoGoodsBrief.getZkPrice(); + BigDecimal profit = MoneyBigDecimalUtil.mul(rate, zkPrice); + // 璁$畻缁撴灉 + BigDecimal estimateProfit = MoneyBigDecimalUtil.div(profit, new BigDecimal("100")); + + // 棰勮鏀剁泭 + map.put("estimateProfit", estimateProfit); + + int existence = 0; + + /* 鏌ヨ鍟嗗搧鏄惁宸插瓨鍦ㄥ晢鍝佺簿閫夊簱涓� */ + String localAuctionId = taoBaoGoodsBrief.getAuctionId(); + + if (localAuctionId != null) { + List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService + .queryByAuctionId(localAuctionId); + + if (taoBaoGoodsBriefList != null && taoBaoGoodsBriefList.size() > 0) { + + TaoBaoGoodsBrief goodsBrief = taoBaoGoodsBriefList.get(0); + + if (goodsBrief != null) { + String id = goodsBrief.getAuctionId(); + // 鏌ヨ绮鹃�夊簱 + Long has = qualityFactoryService.queryCountByGoodsId(id); + + if (has != null && has > 0l) { + existence = 1; // 瀛樺湪鍟嗗搧涓� + } + } + } + } + + map.put("isExistence", existence); + + listmap.add(map); + } + + PageEntity pe = result.getPageEntity(); + + 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(); + } + } + + /** + * 鑾峰彇娣樺疂楂樹剑鏌ヨ绫荤洰 + * + * @param callback + * @param out + */ + @RequestMapping(value = "getNavList") + public void getNavList(AdminAcceptData acceptData,String callback, PrintWriter out) { + + try { + + SearchFilter filter = new SearchFilter(); + filter.setPageSize(10); + filter.setPage(1); + + List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); + + /* 娣樺疂缃戠粶 鐖彇 */ + TaoBaoSearchResult result = TaoBaoUtil.searchAlimamaWeb(filter, config.get(0), 3); + + if (result == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("娣樺疂鍒楄〃鑾峰彇澶辫触")); + return; + } + + List<TaoBaoSearchNav> navList = result.getNavList(); + + if (navList == null || navList.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("娣樺疂鍒楄〃鑾峰彇澶辫触")); + return; + } + + GsonBuilder gsonBuilder = new GsonBuilder(); + gsonBuilder.serializeNulls(); + Gson gson = gsonBuilder.create(); + + JSONObject data = new JSONObject(); + data.put("navList", gson.toJson(navList)); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ寮傚父")); + e.printStackTrace(); + } + } + + /** + * + * @param callback + * @param pageIndex + * @param out + */ + @RequestMapping(value = "searchMaterial") + public void searchMaterial(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, String subName, String superName, + PrintWriter out) { + + try { + + List<TaobaoMeterial> taobaoMeterials = null; + if (!StringUtil.isNullOrEmpty(subName) && !StringUtil.isNullOrEmpty(superName)) { + taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperName(subName, superName); + } else if (!StringUtil.isNullOrEmpty(superName)) { + taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperName(null, superName); + } else { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇烽�夋嫨绛涢�夌被鐩�")); + return; + } + + if (taobaoMeterials == null || taobaoMeterials.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("绫荤洰淇℃伅涓嶅瓨鍦�")); + return; + } + + TaobaoMeterial taobaoMeterial = taobaoMeterials.get(0); + Integer materialId = taobaoMeterial.getMaterialId(); + if (materialId == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ョ被鐩墿鏂橧D涓嶅瓨鍦�")); + return; + } + + // 椤靛ぇ灏忥紝榛樿20锛�1~100 + if (pageSize == null || pageSize < 1) + pageSize = Constant.PAGE_SIZE; + + // 绗嚑椤碉紝榛樿锛氾紤 + if (pageIndex == null || pageIndex < 1) + pageIndex = 1; + + TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize); + + if (result == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛湭鑾峰彇鍒扮浉鍏虫暟鎹�")); + return; + } + + List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); + if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鐩稿叧鏁版嵁")); + return; + } + + // 鎻掑叆鍟嗗搧闆嗗悎 + List<String> listAuctionId = new ArrayList<>(); + for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) { + listAuctionId.add(goodsBrief.getAuctionId()); + } + + // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� + List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); + + List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); + + for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { + 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.getCouponPrice(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; + + /* 鏌ヨ鍟嗗搧鏄惁宸插瓨鍦ㄥ晢鍝佺簿閫夊簱涓� */ + String localAuctionId = taoBaoGoodsBrief.getAuctionId(); + if (localAuctionId != null) { + if (listHas != null && listHas.size() > 0) { + for (QualityFactory selectionGoods : listHas) { + TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); + String hasId = hasgoodsBrief.getAuctionId(); + if (TaoBaoUtil.isEqual( localAuctionId,hasId)) { + existence = 1; // 瀛樺湪鍟嗗搧涓� + } + } + } + } + + map.put("isExistence", existence); + + listmap.add(map); + } + + PageEntity pe = result.getPageEntity(); + + 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(); + } + + } + + + private List<Map<String, Object>> filterTaoBaoGoodsWithQulity(List<TaoBaoGoodsBrief> goodsList) { + + // 鎻掑叆鍟嗗搧闆嗗悎 + List<String> listAuctionId = new ArrayList<>(); + 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.getCouponPrice(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; + + /* 鏌ヨ鍟嗗搧鏄惁宸插瓨鍦ㄥ晢鍝佺簿閫夊簱涓� */ + String localAuctionId = taoBaoGoodsBrief.getAuctionId(); + if (localAuctionId != null) { + if (listHas != null && listHas.size() > 0) { + for (QualityFactory selectionGoods : listHas) { + TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); + String hasId = hasgoodsBrief.getAuctionId(); + if (TaoBaoUtil.isEqual(localAuctionId,hasId)) { + existence = 1; // 瀛樺湪鍟嗗搧涓� + } + } + } + } + + map.put("isExistence", existence); + + listmap.add(map); + } + + return listmap; + + } + + + @RequestMapping(value = "searchDaTaoKe") + public void searchDaTaoKe(AdminAcceptData acceptData,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") + public void getQiangGou(AdminAcceptData acceptData,String callback, Integer pageIndex, PrintWriter out) { + + try { + + int pageSize = 40; + + // 绗嚑椤碉紝榛樿锛氾紤 + if (pageIndex == null || pageIndex < 1) + pageIndex = 1; + + String startTime = "2018-09-17 09:00:00"; + + String endTime = "2018-09-17 16:00:00"; + + TaoBaoSearchResult result = TaoKeApiUtil.taoQiangGou(pageIndex, pageSize, startTime, endTime); + + if (result == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛湭鑾峰彇鍒扮浉鍏虫暟鎹�")); + return; + } + + List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); + if (taoBaoGoodsBriefs == null || taoBaoGoodsBriefs.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏆傛棤鐩稿叧鏁版嵁")); + return; + } + + // 鎻掑叆鍟嗗搧闆嗗悎 + List<String> listAuctionId = new ArrayList<>(); + for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) { + listAuctionId.add(goodsBrief.getAuctionId()); + } + + // 楠岃瘉鏄惁瀛樺湪鏁版嵁搴� + List<QualityFactory> listHas = qualityFactoryService.listQueryByAuctionId(listAuctionId); + + List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>(); + + for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { + 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.getCouponPrice(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; + + /* 鏌ヨ鍟嗗搧鏄惁宸插瓨鍦ㄥ晢鍝佺簿閫夊簱涓� */ + String localAuctionId = taoBaoGoodsBrief.getAuctionId(); + if (localAuctionId != null) { + if (listHas != null && listHas.size() > 0) { + for (QualityFactory selectionGoods : listHas) { + TaoBaoGoodsBrief hasgoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); + String hasId = hasgoodsBrief.getAuctionId(); + if ( TaoBaoUtil.isEqual(localAuctionId,hasId)) { + existence = 1; // 瀛樺湪鍟嗗搧涓� + } + } + } + } + + map.put("isExistence", existence); + listmap.add(map); + } + + PageEntity pe = result.getPageEntity(); + + 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(); + } + + } + +} -- Gitblit v1.8.0