From 0588d6be74335f41c79a8d8e32dbd1c3d3e47fa3 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期三, 29 五月 2019 17:20:50 +0800 Subject: [PATCH] 精选库商品入库及更新调整 + 9k9类商品查询取消标签查询 --- fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityFactoryServiceImpl.java | 879 ++++++++++++++------------------------------------------- 1 files changed, 223 insertions(+), 656 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityFactoryServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityFactoryServiceImpl.java index b56cc2d..e7e60b5 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityFactoryServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityFactoryServiceImpl.java @@ -17,7 +17,6 @@ import com.yeshi.fanli.dao.mybatis.lable.QualityFactoryMapper; import com.yeshi.fanli.dao.mybatis.lable.QualityFlashSaleMapper; import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefMapper; -import com.yeshi.fanli.entity.bus.clazz.TaoBaoClassRelation; import com.yeshi.fanli.entity.bus.lable.BoutiqueAutoRule; import com.yeshi.fanli.entity.bus.lable.Label; import com.yeshi.fanli.entity.bus.lable.LabelGoods; @@ -73,77 +72,37 @@ public int updateByPrimaryKeySelective(QualityFactory record) throws QualityFactoryException { return qualityFactoryMapper.updateByPrimaryKeySelective(record); } + @Override - public void deleteByTbAuctionId(Long auctionId) { - + public void deleteByTaoBaoGoodsId(Long auctionId) { if (auctionId == null) { return; } - - List<TaoBaoGoodsBrief> tbgoods = taoBaoGoodsBriefMapper.queryByAuctionId(auctionId); - if (tbgoods != null && tbgoods.size() > 0) { - TaoBaoGoodsBrief taoBaoGoodsBrief = tbgoods.get(0); - try { - deleteByTaoBaoGoodsId(taoBaoGoodsBrief.getId()); - } catch (QualityFactoryException e) { - e.printStackTrace(); - } - } - - } - - @Override - public void deleteByTaoBaoGoodsId(Long gid) throws QualityFactoryException { - - if (gid == null) { - return; - } - - List<QualityFactory> list = qualityFactoryMapper.queryByGoodsId(gid); - if (list != null && list.size() > 0) { - - // 鍒犻櫎闄愭椂鎶㈣喘 - for (QualityFactory qualityFactory : list) { - qualityFlashSaleMapper.deleteByQualityID(qualityFactory.getId()); - } - - // 绉婚櫎绮鹃�夊簱 - qualityFactoryMapper.deleteByGoodsId(gid); - } - + // 绉婚櫎绮鹃�夊簱 + qualityFactoryMapper.deleteByGoodsId(auctionId); + // 鍒犻櫎闄愭椂鎶㈣喘 + qualityFlashSaleMapper.deleteByGoodsId(auctionId); // 鍒犻櫎瀵瑰簲鏍囩 - labelGoodsMapper.deleteByGoodsId(gid); + labelGoodsMapper.deleteByGoodsId(auctionId); } + @Override - public void deleteBatchByTaoBaoGoodsId(List<Long> listGid) throws QualityFactoryException { + public void deleteBatchByTaoBaoGoodsId(List<Long> listGid) { if (listGid == null || listGid.size() == 0) { return; } - - List<QualityFactory> list = qualityFactoryMapper.listQueryGoodsByGoodsId(listGid); - - if (list != null && list.size() > 0) { - - List<Long> listFid = new ArrayList<Long>(); - for (QualityFactory qualityFactory : list) { - listFid.add(qualityFactory.getId()); - } - - if (listFid.size() > 0) { - // 鎵归噺鍒犻櫎绮鹃�夊簱 - qualityFactoryMapper.deleteBatchByPrimaryKey(listFid); - // 鎵归噺鍒犻櫎闄愭椂鎶㈣喘 - qualityFlashSaleMapper.deleteBatchByQualityID(listFid); - } - } - + // 鎵归噺鍒犻櫎绮鹃�夊簱 + qualityFactoryMapper.deleteBatchByGoodsId(listGid); + // 鎵归噺鍒犻櫎闄愭椂鎶㈣喘 + qualityFlashSaleMapper.deleteBatchByQualityID(listGid); // 鍒犻櫎瀵瑰簲鏍囩 labelGoodsMapper.deleteBatchByGoodsId(listGid); } + @Override @Transactional public void deleteByGoodsId(List<String> ids) throws QualityFactoryException { @@ -161,8 +120,7 @@ } @Override - public List<Long> getAuctionIdbyClassId(Long systemCid, Integer goodsSource, String dateTime) - throws QualityFactoryException { + public List<Long> getAuctionIdbyClassId(Long systemCid, Integer goodsSource, String dateTime){ return qualityFactoryMapper.getAuctionIdbyClassId(systemCid, goodsSource, dateTime); } @@ -228,7 +186,7 @@ goodsBrief.setCreatetime(new Date()); goodsBrief.setUpdatetime(new Date()); // 闈炵┖椤� 璁剧疆榛樿鍊� - setTaoBaoGoodsBriefDefault(goodsBrief); + taoBaoGoodsBriefService.setGoodsBriefDefault(goodsBrief); // 淇濆瓨鑷虫湰鍦� taoBaoGoodsBriefService.insertSelective(goodsBrief); } @@ -372,540 +330,200 @@ } @Override - @Transactional - public void updateGoodsFactory(List<Long> listId) { - - if (listId == null || listId.size() == 0) { + public void updateQualityGoods(Long goodsId) { + if (goodsId == null) { return; } - List<QualityFactory> listQuality = qualityFactoryMapper.listQueryGoodsByGoodsId(listId); - if (listQuality == null || listQuality.size() == 0) { - return; - } - - // 鍒犻櫎绮鹃�夊簱 - List<Long> listDeleteQuality = new ArrayList<Long>(); - // 鍒犻櫎鏍囩 - List<Long> listDeleteLabel = new ArrayList<Long>(); - - List<QualityFactory> listUpdateQuality = new ArrayList<QualityFactory>(); - - List<TaoBaoGoodsBrief> listUpdateGoodsBrief = new ArrayList<TaoBaoGoodsBrief>(); - - List<Long> list9ClassDelete = new ArrayList<Long>(); - // 娣诲姞鍟嗗搧鏍囩鍒楄〃 - List<LabelGoods> listLabelAdd = new ArrayList<LabelGoods>(); - + TaoBaoGoodsBrief goods = null; + boolean isDelete = false; try { - - List<Long> list9Class = new ArrayList<Long>(); - Map<String, Label> map = new HashMap<String, Label>(); - - if (Constant.IS_OUTNET) { - - String value9K9 = getLabelIdByRedis("lab-9K9", "9.9"); - String value19K9 = getLabelIdByRedis("lab-19K9", "19.9"); - String value29K9 = getLabelIdByRedis("lab-29K9", "29.9"); - String value49K9 = getLabelIdByRedis("lab-49K9", "49.9"); - - if (!StringUtil.isNullOrEmpty(value9K9)) { - map.put("9.9", new Label(Long.parseLong(value9K9))); - list9Class.add(Long.parseLong(value9K9)); - } - - if (!StringUtil.isNullOrEmpty(value19K9)) { - map.put("19.9", new Label(Long.parseLong(value19K9))); - list9Class.add(Long.parseLong(value19K9)); - } - - if (!StringUtil.isNullOrEmpty(value29K9)) { - map.put("29.9", new Label(Long.parseLong(value29K9))); - list9Class.add(Long.parseLong(value29K9)); - } - - if (!StringUtil.isNullOrEmpty(value49K9)) { - map.put("49.9", new Label(Long.parseLong(value49K9))); - list9Class.add(Long.parseLong(value49K9)); - } - + // 鑾峰彇璇︽儏 + goods = TaoKeApiUtil.searchGoodsDetail(goodsId); + if(goods == null) { + isDelete = true; + } else if (goods.getCouponAmount().compareTo(BigDecimal.valueOf(0)) > 0) { + isDelete = true; } - - listQuality.parallelStream().forEach(quality -> { - - TaoBaoGoodsBrief goods = quality.getTaoBaoGoodsBrief(); - - if (goods == null) { - // 绉婚櫎绮鹃�夊簱 - listDeleteQuality.add(quality.getId()); - - } else { - - Long id = goods.getId(); - - TaoBaoGoodsBrief newGoodsBrief = null; - - Long auctionId = goods.getAuctionId(); - try { - // 鑾峰彇璇︽儏 - newGoodsBrief = TaoKeApiUtil.searchGoodsDetail(auctionId); - } catch (TaobaoGoodsDownException e1) { - // 鍟嗗搧涓嬫灦 绉婚櫎鏁版嵁搴� - taoBaoGoodsUpdateService.deleteTaoBaoGoods(auctionId); - - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - - if (newGoodsBrief == null) { - - /* 鏃犲埜淇℃伅 绉婚櫎绮鹃�夊簱 */ - listDeleteQuality.add(quality.getId()); - // 绉婚櫎鏍囩 - listDeleteLabel.add(goods.getId()); - - } else { - /* 鏃犲埜淇℃伅 绉婚櫎绮鹃�夊簱 */ - if (StringUtil.isNullOrEmpty(newGoodsBrief.getCouponInfo()) - && StringUtil.isNullOrEmpty(newGoodsBrief.getCouponActivityId())) { // 鏃犲埜淇℃伅 - - // 绉婚櫎绮鹃�夊簱 - listDeleteQuality.add(quality.getId()); - // 绉婚櫎鏍囩 - listDeleteLabel.add(goods.getId()); - - } else { - /* 鏇存柊鍟嗗搧淇℃伅 */ - TaoBaoGoodsBrief updateGoods = taoBaoGoodsUpdateService - .getUpdateTaoBaoGoodsBrief(newGoodsBrief); - - updateGoods.setId(id); - taoBaoGoodsBriefService.setGoodsBriefDefault(updateGoods); - - listUpdateGoodsBrief.add(updateGoods); - - /* 鏇存柊绮鹃�夊簱 淇℃伅鏃堕棿 */ - Integer biz30day = updateGoods.getBiz30day(); - if (biz30day < 1000) { - // 閿�閲忓皬浜�1000 閲嶆柊璁剧疆鏉冮噸 - int weight = 10 + (int) (Math.random() * 2000); - quality.setWeight(weight); - } - quality.setUpdatetime(new Date()); - listUpdateQuality.add(quality); - - /* 鍒ゆ柇鏄惁宸茬粡璐翠笂鏍囩 9k9鏍囩 瀵瑰簲浠锋牸鍙樺寲 */ - if (list9Class.size() > 0) { - List<LabelGoods> listGlid = labelGoodsMapper.listQuery9k9Class(id, list9Class); - if (listGlid != null && listGlid.size() > 0) { - /* 鍒犻櫎鍘熸爣绛� 9k9 */ - for (LabelGoods labelGoods : listGlid) { - list9ClassDelete.add(labelGoods.getId()); - } - - /* 璐翠笂鏂版爣绛� 9k9 */ - LabelGoods labelGds = screen9K9(updateGoods, map); - if (labelGds != null) { - listLabelAdd.add(labelGds); - } - } - } - - } - } - } - - }); - - // 鏇存柊鍟嗗搧淇℃伅 - if (listUpdateGoodsBrief.size() > 0) { - taoBaoGoodsUpdateService.updateTaoBaoGoods(listUpdateGoodsBrief); - } - - // 鏇存柊绮鹃�夊簱 - if (listUpdateQuality.size() > 0) { - qualityFactoryMapper.updateBatchSelective(listUpdateQuality); - } - - // 鎵归噺鍒犻櫎绮鹃�夊簱 - if (listDeleteQuality.size() > 0) { - qualityFactoryMapper.deleteBatchByPrimaryKey(listDeleteQuality); - // 鎵归噺鍒犻櫎闄愭椂鎶㈣喘 - qualityFlashSaleMapper.deleteBatchByQualityID(listDeleteQuality); - } - - // 鍒犻櫎瀵瑰簲鏍囩 - if (listDeleteLabel.size() > 0) { - labelGoodsMapper.deleteBatchByGoodsId(listDeleteLabel); - } - - // 娣诲姞鏍囩 - if (listLabelAdd.size() > 0) { - labelGoodsMapper.insertBatch(listLabelAdd); - } - - // 鍒犻櫎鏍囩 - if (list9ClassDelete.size() > 0) { - labelGoodsMapper.deleteBatchByPK(list9ClassDelete); - } - - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } + } catch (TaobaoGoodsDownException e) { + isDelete = true; } + + // 绉婚櫎绮鹃�夊簱 + if (isDelete) { + deleteByTaoBaoGoodsId(goodsId); + taoBaoGoodsBriefService.deleteByPrimaryKey(goodsId); + return; + } + + goods.setId(goodsId); + goods.setCreatetime(new Date()); + goods.setUpdatetime(new Date()); + try { + taoBaoGoodsUpdateService.updateTaoBaoGoods(goods); + } catch (TaobaoGoodsUpdateException e) { + e.printStackTrace(); + } + } @Override - public void autoInsertOrUpadateStorage(List<TaoBaoGoodsBrief> goodsList, List<Label> listLabs, - BoutiqueAutoRule autoRule) throws Exception { + public void autoInsertOrUpadateStorage(BoutiqueAutoRule autoRule, List<TaoBaoGoodsBrief> goodsList, List<Label> listLabs) { if (goodsList == null || goodsList.size() == 0) { return; } - - /* 鏉ユ簮鎺ㄨ崘鍟嗗搧闇�瑕佽幏鍙栬鎯� */ + + /* 鏉ユ簮鎺ㄨ崘鍟嗗搧 闇�瑕佽幏鍙栬鎯� */ if (QualityFactory.SOURCE_TAOBAO_MATERIAL == autoRule.getGoodsSource()) { - // 鎻掑叆鍟嗗搧闆嗗悎 List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>(); - + goodsList.parallelStream().forEach(goods -> { - // 鑾峰彇璇︽儏 try { TaoBaoGoodsBrief taoBaoGoodsBrief = TaoKeApiUtil.searchGoodsDetail(goods.getAuctionId()); if (taoBaoGoodsBrief != null) { - listGoodsBrief.add(taoBaoGoodsBrief); } - - } catch (Exception e) { + } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } }); - + goodsList.clear(); - goodsList = listGoodsBrief; if (goodsList == null || goodsList.size() == 0) { return; } } - - for (int i = 0; i < goodsList.size(); i++) { - if (goodsList.get(i).getMaterialLibType() != null && goodsList.get(i).getMaterialLibType() == 0) { - goodsList.remove(i); - i--; - } - } - - // 鍟嗗搧id闆嗗悎 - List<Long> listSystemTBid = new ArrayList<Long>(); + + +// for (int i = 0; i < goodsList.size(); i++) { +// if (goodsList.get(i).getMaterialLibType() != null && goodsList.get(i).getMaterialLibType() == 0) { +// goodsList.remove(i); +// i--; +// } +// } + // 娣诲姞鍟嗗搧鏍囩鍒楄〃 List<LabelGoods> listLabelAdd = new ArrayList<LabelGoods>(); - + // 鎻掑叆鍟嗗搧闆嗗悎 List<TaoBaoGoodsBrief> listGoodsInsert = new ArrayList<TaoBaoGoodsBrief>(); // 鏇存柊鍟嗗搧闆嗗悎 List<TaoBaoGoodsBrief> listGoodsUpdate = new ArrayList<TaoBaoGoodsBrief>(); // 杩涘叆绮鹃�夊晢鍝佸垪琛� - List<QualityFactory> listAddInsert = new ArrayList<QualityFactory>(); + List<QualityFactory> listInsertQuality = new ArrayList<QualityFactory>(); // 杩涘叆绮鹃�夊晢鍝佸垪琛� - List<QualityFactory> listAddUpdate = new ArrayList<QualityFactory>(); - + List<QualityFactory> listUpdateQuality = new ArrayList<QualityFactory>(); + // 鎻掑叆鍟嗗搧娣樺疂ID闆嗗悎 List<Long> listAuctionId = new ArrayList<Long>(); for (TaoBaoGoodsBrief goodsBrief : goodsList) { listAuctionId.add(goodsBrief.getAuctionId()); } + List<Long> listHas = taoBaoGoodsBriefService.listExistById(listAuctionId); - List<TaoBaoGoodsBrief> listHas = taoBaoGoodsBriefService.listQueryByAuctionId(listAuctionId); - - List<Long> list9Class = null; - List<Long> list9ClassDelete = new ArrayList<Long>(); - Map<String, Label> map = new HashMap<String, Label>(); - - list9Class = new ArrayList<Long>(); - - List<Label> list9K9 = labelService.selectByTitleCache("labKey", "9.9"); - if (list9K9 != null && list9K9.size() > 0) { - map.put("9.9", list9K9.get(0)); - list9Class.add(list9K9.get(0).getId()); - } - - List<Label> list19k9 = labelService.selectByTitleCache("labKey", "19.9"); - if (list19k9 != null && list19k9.size() > 0) { - map.put("19.9", list19k9.get(0)); - list9Class.add(list19k9.get(0).getId()); - } - - List<Label> list29k9 = labelService.selectByTitleCache("labKey", "29.9"); - if (list29k9 != null && list29k9.size() > 0) { - map.put("29.9", list29k9.get(0)); - list9Class.add(list29k9.get(0).getId()); - } - - List<Label> list49k9 = labelService.selectByTitleCache("labKey", "49.9"); - if (list49k9 != null && list49k9.size() > 0) { - map.put("49.9", list49k9.get(0)); - list9Class.add(list49k9.get(0).getId()); - } - + + + // 閬嶅巻鍟嗗搧 for (TaoBaoGoodsBrief newGoodsBrief : goodsList) { - - Long systemId = null; - boolean isExist = false; Long auctionId = newGoodsBrief.getAuctionId(); - + // 璁剧疆鎴愪富閿� + newGoodsBrief.setId(auctionId); + newGoodsBrief.setState(0); // 鐘舵�佸惎鐢� + newGoodsBrief.setCreatetime(new Date()); + newGoodsBrief.setUpdatetime(new Date()); + /* 鍒ゆ柇鍟嗗搧 鏄惁宸茬粡瀛樺湪鏁版嵁搴� */ - if (listHas != null && listHas.size() > 0) { - for (TaoBaoGoodsBrief hasgoodsBrief : listHas) { - Long hasId = hasgoodsBrief.getAuctionId(); - if (auctionId.equals(hasId)) { - systemId = hasgoodsBrief.getId(); - // 瀛樺湪鏁版嵁搴� - isExist = true; - break;// 缁撴潫鍐呴儴寰幆 - } - } - } - - /* 鍟嗗搧宸插瓨鍦ㄦ暟鎹簱 */ - if (isExist && systemId != null) { - - // 鐢ㄤ簬纭畾鏄惁瀛樺湪绮鹃�夊簱 - listSystemTBid.add(systemId); - - // 鏇存柊鍟嗗搧淇℃伅 - TaoBaoGoodsBrief updateGoods = taoBaoGoodsUpdateService.getUpdateTaoBaoGoodsBrief(newGoodsBrief); - // 璁剧疆涓婚敭id - updateGoods.setId(systemId); - // 淇敼鍒涘缓鏃堕棿 - 鎹箟鏂板垱寤� - Date date = new Date(); - updateGoods.setCreatetime(date); - updateGoods.setUpdatetime(date); - taoBaoGoodsBriefService.setGoodsBriefDefault(updateGoods); - - listGoodsUpdate.add(updateGoods); - - Long has9k9ID = null; - - /* 璐翠笂鏍囩 */ + if (listHas != null && listHas.size() > 0 && listHas.contains(auctionId)) { + // 鏇存柊鍟嗗搧 + + listGoodsUpdate.add(newGoodsBrief); + + // 鍟嗗搧鏍囩 if (listLabs != null && listLabs.size() > 0) { - - for (Label label : listLabs) { - - // 鍖呭惈 9.9/19.9/29.9/49.9 銆佸悓鏃舵潵婧愭窐瀹濇帹鑽�: 鐢变簬鑾峰彇璇︽儏涓庢帹鑽愭帴鍙g殑鍒镐俊鎭瓨鍦ㄥ嚭鍏� - // 浠ユ渶鍚庤鎯呬负鍑� - if (list9Class.contains(label.getId()) && autoRule.isCalss9k9() - && QualityFactory.SOURCE_TAOBAO_MATERIAL == autoRule.getGoodsSource()) { - - /* 鑾峰彇鍟嗗搧璇︽儏鍚庤绠楁槸鍚﹀睘浜� 9k9绯诲垪 鍔犲叆瀵瑰簲鐨勬爣绛� */ - LabelGoods labelGds = screen9K9(updateGoods, map); - - if (labelGds != null) { - - Label label9k = labelGds.getLabel(); - Long id = label9k.getId(); - - long existence = labelGoodsMapper.isExistence(systemId, id); - if (existence <= 0) { - // 涓嶅瓨鍦ㄥ搴旀爣绛� - listLabelAdd.add(labelGds); - } else { - // 宸插瓨鍦� - has9k9ID = id; - } - - } - - } else { - - long existence = labelGoodsMapper.isExistence(systemId, label.getId()); - if (existence <= 0) { - // 璐翠笂鏂版爣绛� - LabelGoods lg = new LabelGoods(); - lg.setLabel(label); - lg.setCreateUser(autoRule.getAdminUser()); - lg.setCreatetime(new Date()); - lg.setTaoBaoGoodsBrief(updateGoods); - - listLabelAdd.add(lg); - } else { - if (list9Class.contains(label.getId())) { - // 宸插瓨鍦� - has9k9ID = label.getId(); - } - } - } - } - } - - /* 鍒ゆ柇鏄惁宸茬粡璐翠笂鏍囩 9k9鏍囩 */ - if (list9Class.size() > 0) { - - List<LabelGoods> listGlid = labelGoodsMapper.listQuery9k9Class(systemId, list9Class); - - if (listGlid != null && listGlid.size() > 0) { - - if (has9k9ID == null && !autoRule.isCalss9k9()) { - // 闈�9k9鍏ュ簱瑙勫垯 鑻ュ晢鍝佷俊鎭彉鍖� 瀵瑰簲鐨勬爣绛炬牴鎹环鏍� 淇敼 - LabelGoods labelGds = screen9K9(updateGoods, map); - if (labelGds != null) { - Label label9k = labelGds.getLabel(); - Long id = label9k.getId(); - - long existence = labelGoodsMapper.isExistence(systemId, id); - if (existence <= 0) { - // 涓嶅瓨鍦ㄥ搴旀爣绛� - listLabelAdd.add(labelGds); - } else { - // 宸插瓨鍦� - has9k9ID = id; - } - } - } - - // 娓呯┖ 9K9绯诲垪鏍囩 - for (LabelGoods labelGoods : listGlid) { - Label label = labelGoods.getLabel(); - if (has9k9ID != null && has9k9ID.equals(label.getId())) { - continue; - } - - list9ClassDelete.add(labelGoods.getId()); - } - } - } - - } else { - newGoodsBrief.setId(null); - newGoodsBrief.setState(0); // 鐘舵�佸惎鐢� - newGoodsBrief.setCreatetime(new Date()); - newGoodsBrief.setUpdatetime(new Date()); - // 璁剧疆榛樿鍊� - taoBaoGoodsBriefService.setGoodsBriefDefault(newGoodsBrief); - // 鎻掑叆鏁版嵁搴� - listGoodsInsert.add(newGoodsBrief); - - // 鍔犲叆绮鹃�夊簱 - listAddInsert.add(getNewQualityFactory(newGoodsBrief, autoRule)); - - // 璐翠笂鏍囩 - if (listLabs != null && listLabs.size() > 0) { - - for (Label label : listLabs) { - - // 鍖呭惈 9.9/19.9/29.9/49.9 銆佸悓鏃舵潵婧愭窐瀹濇帹鑽�: 鐢变簬鑾峰彇璇︽儏涓庢帹鑽愭帴鍙g殑鍒镐俊鎭瓨鍦ㄥ嚭鍏� - // 浠ユ渶鍚庤鎯呬负鍑� - if (list9Class.contains(label.getId()) && autoRule.isCalss9k9() - && QualityFactory.SOURCE_TAOBAO_MATERIAL == autoRule.getGoodsSource()) { - /* 鍔犲叆瀵瑰簲鐨�9.9/19.9/29.9/49.9 鏍囩 */ - LabelGoods labelGds = screen9K9(newGoodsBrief, map); - - if (labelGds != null) { - listLabelAdd.add(labelGds); - } - - } else { + for (Label lab: listLabs) { + long existence = labelGoodsMapper.isExistence(auctionId, lab.getId()); + if (existence <= 0) { // 璐翠笂鏂版爣绛� LabelGoods lg = new LabelGoods(); - lg.setLabel(label); + lg.setLabel(lab); lg.setCreateUser(autoRule.getAdminUser()); lg.setCreatetime(new Date()); lg.setTaoBaoGoodsBrief(newGoodsBrief); listLabelAdd.add(lg); } - - } - - } - } - } - - // 鏇存柊鐨勫晢鍝佷俊鎭� 鏄惁瀛樺湪绮鹃�夊簱涓� - List<QualityFactory> listExist = null; - if (listSystemTBid.size() > 0) { - listExist = qualityFactoryMapper.listQueryGoodsByGoodsId(listSystemTBid); - } - - /* 鏇存柊娣樺疂鍟嗗搧淇℃伅 */ - if (listGoodsUpdate.size() > 0) { - - for (TaoBaoGoodsBrief goodsBrief : listGoodsUpdate) { - boolean isExist = false; - - if (listExist == null || listExist.size() == 0) { - // 鍔犲叆鍒扮簿閫夊簱 - listAddInsert.add(getNewQualityFactory(goodsBrief, autoRule)); - continue; - } - - QualityFactory selection = null; - Long id = goodsBrief.getId(); - for (QualityFactory selectionGoods : listExist) { - TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief(); - if (taoBaoGoodsBrief != null) { - Long sid = taoBaoGoodsBrief.getId(); - if (id.equals(sid)) { - isExist = true; - selection = selectionGoods; - } } } - - if (isExist) { - /* 鏇存柊绮鹃�夊簱淇℃伅 */ - + + // 鏇存柊鐨勫晢鍝佷俊鎭� 鏄惁瀛樺湪绮鹃�夊簱涓� + QualityFactory quality = qualityFactoryMapper.getByAuctionId(auctionId); + if (quality == null) { + listInsertQuality.add(getNewQualityFactory(newGoodsBrief, autoRule)); + } else { // 闅忔満鏉冮噸 int weight = autoRule.getStartWeight() + (int) (Math.random() * ((autoRule.getEndWeight() - autoRule.getStartWeight()) + 1)); - selection.setWeight(weight); + quality.setWeight(weight); // 鏇存柊鏃堕棿 - selection.setUpdatetime(new Date()); + quality.setUpdatetime(new Date()); // 鏇存柊鏉ユ簮瑙勫垯 - selection.setBoutiqueAutoRule(autoRule); + quality.setBoutiqueAutoRule(autoRule); // 鏇存柊鏉ユ簮绫诲埆 - selection.setSourceCalss(autoRule.getSourceCalss()); + quality.setSourceCalss(autoRule.getSourceCalss()); // 鏉ユ簮 - selection.setGoodsSource(autoRule.getGoodsSource()); - - listAddUpdate.add(selection); - - } else { - // 鏂板鑷崇簿閫夊簱 - listAddInsert.add(getNewQualityFactory(goodsBrief, autoRule)); + quality.setGoodsSource(autoRule.getGoodsSource()); + listUpdateQuality.add(quality); } + + } else { + // 璁剧疆鍟嗗搧榛樿鍊� + taoBaoGoodsBriefService.setGoodsBriefDefault(newGoodsBrief); + listGoodsInsert.add(newGoodsBrief); + + // 绮鹃�夊簱淇℃伅 + listInsertQuality.add(getNewQualityFactory(newGoodsBrief, autoRule)); - } - try { - taoBaoGoodsUpdateService.updateTaoBaoGoods(listGoodsUpdate); - } catch (TaobaoGoodsUpdateException e) { - System.out.println(e.getMsg()); + // 鍟嗗搧鏍囩 + if (listLabs != null && listLabs.size() > 0) { + for (Label lab: listLabs) { + LabelGoods lg = new LabelGoods(); + lg.setLabel(lab); + lg.setCreateUser(autoRule.getAdminUser()); + lg.setCreatetime(new Date()); + lg.setTaoBaoGoodsBrief(newGoodsBrief); + listLabelAdd.add(lg); + } + } } } - // 娣樺疂鍟嗗搧鎻掑叆鏁版嵁搴� + // 鎻掑叆娣樺疂鍟嗗搧 if (listGoodsInsert.size() > 0) { taoBaoGoodsBriefService.insertBatch(listGoodsInsert); } - - // 鏇存柊绮鹃�夊簱 - if (listAddUpdate.size() > 0) { - qualityFactoryMapper.updateBatchSelective(listAddUpdate); + + // 鏇存柊娣樺疂鍟嗗搧 + if (listGoodsUpdate.size() > 0) { + try { + taoBaoGoodsUpdateService.updateTaoBaoGoods(listGoodsUpdate); + } catch (TaobaoGoodsUpdateException e) { + e.printStackTrace(); + } } + // 鍔犲叆绮鹃�夊簱 - if (listAddInsert.size() > 0) { - qualityFactoryMapper.insertBatch(listAddInsert); + if (listInsertQuality.size() > 0) { + qualityFactoryMapper.insertBatch(listInsertQuality); + } + + // 鏇存柊绮鹃�夊簱 + if (listUpdateQuality.size() > 0) { + qualityFactoryMapper.updateBatchSelective(listUpdateQuality); } // 娣诲姞鏍囩 @@ -913,37 +531,25 @@ labelGoodsMapper.insertBatch(listLabelAdd); } - // 鍒犻櫎鏍囩 - if (list9ClassDelete.size() > 0) { - labelGoodsMapper.deleteBatchByPK(list9ClassDelete); - } - // 鍔犲叆闄愭椂鎶㈣喘 if (autoRule.isFlashSale()) { - updateQualityFlashSale(listAddInsert, listAddUpdate, autoRule); + updateQualityFlashSale(goodsList, autoRule); } - } - public void updateQualityFlashSale(List<QualityFactory> listinsert, List<QualityFactory> listUpdate, - BoutiqueAutoRule autoRule) { - // 绮鹃�塱d闆嗗悎 + + + /** + * 闄愭椂绉掓潃 + * @param listinsert + * @param listUpdate + * @param autoRule + */ + public void updateQualityFlashSale(List<TaoBaoGoodsBrief> listGoods, BoutiqueAutoRule autoRule) { + List<Long> listQFId = new ArrayList<Long>(); - - if (listinsert.size() > 0) { - for (QualityFactory qualityFactory : listinsert) { - listQFId.add(qualityFactory.getId()); - } - } - - if (listUpdate.size() > 0) { - for (QualityFactory qualityFactory : listUpdate) { - listQFId.add(qualityFactory.getId()); - } - } - - if (listQFId.size() == 0) { - return; + for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoods) { + listQFId.add(taoBaoGoodsBrief.getId()); } int startWeight = autoRule.getStartWeight(); @@ -952,49 +558,40 @@ // 鍔犲叆鍏ラ檺鏃舵姠璐� List<QualityFlashSale> listFlashSale = new ArrayList<QualityFlashSale>(); - // 闄愭椂鎶㈣喘鏇存柊锛� 鏃堕棿銆佹潈閲� + // 闄愭椂鎶㈣喘鏇存柊锛� List<QualityFlashSale> listFlashSaleUpdate = new ArrayList<QualityFlashSale>(); + // 鏌ヨ宸插瓨鍦ㄦ樉绀洪檺鏃舵姠璐殑鍟嗗搧 List<QualityFlashSale> listQuery = qualityFlashSaleService.listQueryByQualityID(listQFId); - + if (listQuery == null || listQuery.size() == 0) { - // 鍏ㄩ儴鏂板鍏ュ簱 - int i = 0; - for (Long qfId : listQFId) { - listFlashSale.add(getNewQualityFlashSale(qfId, i, startWeight, endWeight, goodsSource)); + for (TaoBaoGoodsBrief taoBaoGoodsBrief: listGoods) { + listFlashSale.add(getNewQualityFlashSale(taoBaoGoodsBrief, startWeight, endWeight, goodsSource)); } - } else { - int i = 0; - boolean exist = false; - - for (Long qfId : listQFId) { - + + for (TaoBaoGoodsBrief taoBaoGoodsBrief: listGoods) { + boolean exist = false; + Long id = taoBaoGoodsBrief.getId(); + for (QualityFlashSale flashSale : listQuery) { - QualityFactory qualityFactory = flashSale.getQualityFactory(); - - if (qfId.equals(qualityFactory.getId())) { + TaoBaoGoodsBrief goodsBrief = flashSale.getTaoBaoGoodsBrief(); + if (id.equals(goodsBrief.getId())) { exist = true; - - // 鍗冲皢鍑嗗鏃堕棿娈垫椂闂� - // int nowType = qualityFlashSaleService.getQueryType(); - // flashSale.setType(nowType); - double weight = startWeight + (Math.random() * ((endWeight - startWeight) + 1)); flashSale.setWeight(weight); flashSale.setUpdatetime(new Date()); listFlashSaleUpdate.add(flashSale); - + listQuery.remove(flashSale); break; } } if (!exist) { - listFlashSale.add(getNewQualityFlashSale(qfId, i, startWeight, endWeight, goodsSource)); + listFlashSale.add(getNewQualityFlashSale(taoBaoGoodsBrief, startWeight, endWeight, goodsSource)); } } - } // 鎻掑叆闄愭椂鎶㈣喘 @@ -1006,7 +603,6 @@ if (listFlashSaleUpdate.size() > 0) { qualityFlashSaleService.updateBatchSelective(listFlashSaleUpdate); } - } /** @@ -1016,31 +612,27 @@ * @param i * @return */ - public QualityFlashSale getNewQualityFlashSale(Long qfId, int i, int startWeight, int endWeight, int goodsSource) { + public QualityFlashSale getNewQualityFlashSale(TaoBaoGoodsBrief taoBaoGoodsBrief, int startWeight, + int endWeight, int goodsSource) { QualityFlashSale flashSale = new QualityFlashSale(); - QualityFactory qualityFactory = new QualityFactory(); - qualityFactory.setId(qfId); - flashSale.setQualityFactory(qualityFactory); - - if (QualityFactory.SOURCE_TAOBAO_DATAOKE == goodsSource) { - // 澶ф窐瀹紭鍏堝睍绀� - double weight = 20000 + (Math.random() * 2001); - flashSale.setWeight(weight); - } else { - double weight = startWeight + (Math.random() * ((endWeight - startWeight) + 1)); - flashSale.setWeight(weight); - } - - // int nowType = qualityFlashSaleService.getNowType(); - // flashSale.setType(nowType); - + flashSale.setTaoBaoGoodsBrief(taoBaoGoodsBrief); flashSale.setCreatetime(new Date()); flashSale.setUpdatetime(new Date()); - + + // 鏉冮噸璁剧疆锛氬ぇ娣樺浼樺厛灞曠ず + double weight = 0; + if (QualityFactory.SOURCE_TAOBAO_DATAOKE == goodsSource) { + weight = 10000 + (Math.random() * 2001); + } else { + weight = startWeight + (Math.random() * ((endWeight - startWeight) + 1)); + } + flashSale.setWeight(weight); + return flashSale; } + /** * 鍟嗗搧鍔犲叆绮鹃�夊簱-new QualityFactory() * @@ -1055,11 +647,7 @@ Integer rootCatId = goodsBrief.getRootCatId(); if (rootCatId != null) { - List<TaoBaoClassRelation> listRelation = taoBaoClassRelationMapper.listByTaoBaoCid(rootCatId.longValue()); - if (listRelation != null && listRelation.size() > 0) { - TaoBaoClassRelation taoBaoClassRelation = listRelation.get(0); - classID = taoBaoClassRelation.getCid(); - } + classID = taoBaoClassRelationMapper.getClassIdByTaoBaoCid(rootCatId.longValue()); } // 娣诲姞鑷崇簿閫夊晢鍝佸簱 @@ -1086,80 +674,59 @@ return selectionGoods; } + + + + /** + * 鍒犻櫎鏈洿鏂扮殑鍟嗗搧 + * + * @param systemCid + * @param formatDate + * @param source + */ + @Override + public void deleteNotUpdateGoods(Long systemCid, String formatDate, int source) { + List<Long> list = qualityFactoryMapper.getAuctionIdbyClassId(systemCid, source, formatDate); + if (list == null || list.size() == 0) { + return; + } - public void setTaoBaoGoodsBriefDefault(TaoBaoGoodsBrief goodsBrief) { - BigDecimal defaultZero = new BigDecimal("0"); + // 灏忎簬100鏉$洿鎺ュ垹闄� + if (list.size() <= 100) { + // 鍒犻櫎绮鹃�夊簱 + deleteBatchByTaoBaoGoodsId(list); + // 鍒犻櫎鍟嗗搧 + taoBaoGoodsBriefService.deleteBatchByGoodsId(list); + return; + } + + + // 澶т簬100闇�瑕佸垎娈靛垹闄� + int start = 0; + int end = 100; + int countRow = 100; - if (goodsBrief.getBiz30day() == null) - goodsBrief.setBiz30day(0); + int count = list.size() / countRow; + if (list.size() % countRow > 0) { + count += 1; + } - if (goodsBrief.getCouponAmount() == null) - goodsBrief.setCouponAmount(defaultZero); - - if (goodsBrief.getCouponLeftCount() == null) - goodsBrief.setCouponLeftCount(0); - - if (goodsBrief.getCouponStartFee() == null) - goodsBrief.setCouponStartFee(defaultZero); - - if (goodsBrief.getCouponTotalCount() == null) - goodsBrief.setCouponTotalCount(0); - - if (goodsBrief.getDayLeft() == null) - goodsBrief.setDayLeft(0); - - if (goodsBrief.getEventCreatorId() == null) - goodsBrief.setEventCreatorId(0); - - if (goodsBrief.getHasRecommended() == null) - goodsBrief.setHasRecommended(0); - - if (goodsBrief.getHasSame() == null) - goodsBrief.setHasSame(0); - - if (goodsBrief.getIncludeDxjh() == null) - goodsBrief.setIncludeDxjh(0); - - if (goodsBrief.getLeafCatId() == null) - goodsBrief.setIncludeDxjh(0); - - if (goodsBrief.getReservePrice() == null) - goodsBrief.setReservePrice(defaultZero); - - if (goodsBrief.getRfdRate() == null) - goodsBrief.setRfdRate(0); - - if (goodsBrief.getRootCatId() == null) - goodsBrief.setRootCatId(0); - - if (goodsBrief.getRootCatScore() == null) - goodsBrief.setRootCatScore(0); - - if (goodsBrief.getSameItemPid() == null) - goodsBrief.setSameItemPid(0L); - - if (goodsBrief.getSellerId() == null) - goodsBrief.setSellerId(0L); - - if (goodsBrief.getTkCommFee() == null) - goodsBrief.setTkCommFee(defaultZero); - - if (goodsBrief.getTkRate() == null) - goodsBrief.setTkRate(defaultZero); - - if (goodsBrief.getTotalFee() == null) - goodsBrief.setTotalFee(defaultZero); - - if (goodsBrief.getTotalNum() == null) - goodsBrief.setTotalNum(0); - - if (goodsBrief.getUserType() == null) - goodsBrief.setUserType(0); - - if (goodsBrief.getZkPrice() == null) - goodsBrief.setZkPrice(defaultZero); - + for (int i = 0; i < count; i++) { + List<Long> sublist = new ArrayList<Long>(); + if (i == count - 1) { + sublist = list.subList(start, list.size()); + deleteBatchByTaoBaoGoodsId(sublist); + taoBaoGoodsBriefService.deleteBatchByGoodsId(sublist); + break; + } + sublist = list.subList(start, end); + deleteBatchByTaoBaoGoodsId(sublist); + taoBaoGoodsBriefService.deleteBatchByGoodsId(sublist); + start += countRow; + end += countRow; + } } + /** * 鏌ヨ绮鹃�夊晢鍝佹暟鎹簲鐢ㄥ墠绔� -- Gitblit v1.8.0