From 8cb7ec4a35a38ae91d0eed17cde711e81d2b2bbf Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期二, 14 五月 2019 11:37:49 +0800 Subject: [PATCH] 合并 --- fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityFactoryServiceImpl.java | 511 ++++++++++++++++---------------------------------------- 1 files changed, 151 insertions(+), 360 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 266345e..b56cc2d 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 @@ -8,16 +8,15 @@ import java.util.Map; import javax.annotation.Resource; -import javax.transaction.Transactional; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.mybatis.TaoBaoClassRelationMapper; import com.yeshi.fanli.dao.mybatis.lable.LabelGoodsMapper; 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.dao.mybatis.taobao.TaoBaoGoodsBriefRecordMapper; import com.yeshi.fanli.entity.bus.clazz.TaoBaoClassRelation; import com.yeshi.fanli.entity.bus.lable.BoutiqueAutoRule; import com.yeshi.fanli.entity.bus.lable.Label; @@ -28,6 +27,7 @@ import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.exception.QualityFactoryException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; +import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; import com.yeshi.fanli.service.inter.lable.LabelService; @@ -40,6 +40,7 @@ import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; +import com.yeshi.fanli.vo.quality.QualityFactoryVO; @Service public class QualityFactoryServiceImpl implements QualityFactoryService { @@ -59,8 +60,6 @@ @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; @Resource - private TaoBaoGoodsBriefRecordMapper taoBaoGoodsBriefRecordMapper; - @Resource private TaoBaoClassRelationMapper taoBaoClassRelationMapper; @Resource private QualityFlashSaleService qualityFlashSaleService; @@ -71,23 +70,8 @@ private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService; @Override - public int insert(QualityFactory record) throws QualityFactoryException { - return qualityFactoryMapper.insert(record); - } - - @Override - public int updateByPrimaryKey(QualityFactory record) throws QualityFactoryException { - return qualityFactoryMapper.updateByPrimaryKey(record); - } - - @Override public int updateByPrimaryKeySelective(QualityFactory record) throws QualityFactoryException { return qualityFactoryMapper.updateByPrimaryKeySelective(record); - } - - @Override - public int deleteByPrimaryKey(Long id) throws QualityFactoryException { - return qualityFactoryMapper.deleteByPrimaryKey(id); } @Override @@ -162,17 +146,6 @@ @Override @Transactional - public void deleteBatchByPrimaryKey(List<String> ids) throws QualityFactoryException { - - if (ids != null) { - for (String id : ids) { - qualityFactoryMapper.deleteByPrimaryKey(Long.parseLong(id)); - } - } - } - - @Override - @Transactional public void deleteByGoodsId(List<String> ids) throws QualityFactoryException { if (ids != null && ids.size() > 0) { @@ -180,11 +153,6 @@ qualityFactoryMapper.deleteByGoodsId(Long.parseLong(goodsId)); } } - } - - @Override - public int removeStorageGoods(String doTime, Long gcids) throws QualityFactoryException { - return qualityFactoryMapper.removeStorageGoods(doTime, gcids); } @Override @@ -204,29 +172,13 @@ } @Override - public List<QualityFactory> query(long start, int count, String key, Integer totalSales, Integer price, - Integer tkRate, Integer propor, Integer goodsSource, Integer days, Integer startZkPrice, Integer endZkPrice, - Integer startBiz30day, Integer endBiz30day, Integer startWeight, Integer endWeight, Integer startTkRate, - Integer endTkRate, Integer startAmount, Integer endAmount, Integer hasCoupon, Integer freeShipment, - Integer isPrepay, Integer payRate30, Integer goodRate, Integer rfdRate, Integer startPropor, - Integer endPropor, Long gcid, Integer keyType) throws QualityFactoryException { - - return qualityFactoryMapper.query(start, count, key, totalSales, price, tkRate, propor, goodsSource, days, - startZkPrice, endZkPrice, startBiz30day, endBiz30day, startWeight, endWeight, startTkRate, endTkRate, - startAmount, endAmount, hasCoupon, freeShipment, isPrepay, payRate30, goodRate, rfdRate, startPropor, - endPropor, gcid, keyType); + public List<QualityFactory> query(QualityFactoryVO qualityFactoryVO) throws QualityFactoryException { + return qualityFactoryMapper.query(qualityFactoryVO); } @Override - public long queryCount(String key, Integer goodsSource, Integer days, Integer startZkPrice, Integer endZkPrice, - Integer startBiz30day, Integer endBiz30day, Integer startWeight, Integer endWeight, Integer startTkRate, - Integer endTkRate, Integer startAmount, Integer endAmount, Integer hasCoupon, Integer freeShipment, - Integer isPrepay, Integer payRate30, Integer goodRate, Integer rfdRate, Integer startPropor, - Integer endPropor, Long gcid, Integer keyType) throws QualityFactoryException { - - return qualityFactoryMapper.queryCount(key, goodsSource, days, startZkPrice, endZkPrice, startBiz30day, - endBiz30day, startWeight, endWeight, startTkRate, endTkRate, startAmount, endAmount, hasCoupon, - freeShipment, isPrepay, payRate30, goodRate, rfdRate, startPropor, endPropor, gcid, keyType); + public long queryCount(QualityFactoryVO qualityFactoryVO) throws QualityFactoryException { + return qualityFactoryMapper.queryCount(qualityFactoryVO); } @Override @@ -246,102 +198,44 @@ @Override @Transactional - public void addBatch(List<Long> auctionIdList, String lableNames, AdminUser admin) throws Exception { + public void addBatchTaoBaoGoods(List<TaoBaoGoodsBrief> listTaoBaoGoods, String lableNames, AdminUser admin) + throws Exception { - List<Label> listLabs = new ArrayList<Label>(); - - if (!StringUtil.isNullOrEmpty(lableNames)) { - // 绌烘牸闅斿紑 - String[] arrtitles = lableNames.split("\\s+"); - for (String title : arrtitles) { - /* 閬嶅巻鏍囩鍚嶇О锛氭煡璇㈡暟鎹簱涓槸鍚﹀凡瀛樺湪 */ - List<Label> labels = labelService.selectByTitle(title.trim()); - - if (labels != null && labels.size() > 0) { - Label label = labels.get(0); - - listLabs.add(label); - } else { - // 鏂板 - Label label = new Label(); - label.setTitle(title);// 鍚嶇О - label.setEntrymode(Label.MODE_SYSTEM); // 鎵归噺褰曞叆 - label.setCreatetime(new Date()); - label.setUpdatetime(new Date()); - label.setCreateUser(admin); - label.setIosClick(0l); - label.setAndroidClick(0l); - labelService.insertSelective(label); - - listLabs.add(label); - } - - } + if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) { + throw new Exception("鏈壘鍒板尮閰嶇殑鍟嗗搧"); } - List<String> strList = new ArrayList<String>(); - for (Long id : auctionIdList) { - strList.add(id + ""); - } - List<TaoBaoGoodsBrief> existList = taoBaoGoodsBriefRecordMapper.queryGoodsByAuctionId(strList); + // 鍒涘缓鏍囩 + List<Label> listLabel = labelService.addBatchByNames(lableNames, admin); - List<QualityFactory> addList = new ArrayList<QualityFactory>(); - List<LabelGoods> addLabelList = new ArrayList<LabelGoods>(); + List<QualityFactory> listQuality = new ArrayList<QualityFactory>(); + List<LabelGoods> listLabelGoods = new ArrayList<LabelGoods>(); - for (Long auctionId : auctionIdList) { + for (TaoBaoGoodsBrief goodsBrief : listTaoBaoGoods) { - boolean process = false; - TaoBaoGoodsBrief goodsBrief = null; + // 鏈湴鏄惁宸插瓨鍦ㄦ鍟嗗搧 + List<TaoBaoGoodsBrief> hasList = taoBaoGoodsBriefService.queryByAuctionId(goodsBrief.getAuctionId()); - if (existList != null && existList.size() > 0) { - for (TaoBaoGoodsBrief taoBaoGoodsBrief : existList) { - Long aId = taoBaoGoodsBrief.getAuctionId(); - if (auctionId.equals(aId)) { - goodsBrief = taoBaoGoodsBrief; - goodsBrief.setId(null); - process = true; - } - } - } - - if (!process) { - /* 鏍规嵁auctionId 鑾峰彇娣樺疂鍟嗗搧 */ - goodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId); - } - - if (goodsBrief == null) - continue; - - /* 鍒ゆ柇鍟嗗搧 鏄惁宸茬粡瀛樺湪鏁版嵁搴� */ - List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService.queryByAuctionId(auctionId); - - if (taoBaoGoodsBriefList != null && taoBaoGoodsBriefList.size() > 0) { - - TaoBaoGoodsBrief currentGoodsBrief = taoBaoGoodsBriefList.get(0); - + if (hasList != null && hasList.size() > 0) { + TaoBaoGoodsBrief currentGoodsBrief = hasList.get(0); goodsBrief.setId(currentGoodsBrief.getId()); - // 闈炵┖椤� 澶勭悊 - setTaoBaoGoodsBriefDefault(goodsBrief); - // 鏇存柊鍟嗗搧鏈�鏂颁俊鎭� - taoBaoGoodsBriefService.updateByPrimaryKey(goodsBrief); - } else { - // 鎻掑叆鏈湴鏁版嵁搴� + // 鏇存柊鍟嗗搧鏈�鏂颁俊鎭� + taoBaoGoodsUpdateService.updateTaoBaoGoods(goodsBrief); + } else { goodsBrief.setId(null); goodsBrief.setState(0); goodsBrief.setCreatetime(new Date()); goodsBrief.setUpdatetime(new Date()); - // 闈炵┖椤� 澶勭悊 + // 闈炵┖椤� 璁剧疆榛樿鍊� setTaoBaoGoodsBriefDefault(goodsBrief); - + // 淇濆瓨鑷虫湰鍦� taoBaoGoodsBriefService.insertSelective(goodsBrief); } // 鏄惁宸插叆搴� - Long id = goodsBrief.getId(); - List<QualityFactory> selectionList = qualityFactoryMapper.queryByGoodsId(id); + List<QualityFactory> selectionList = qualityFactoryMapper.queryByGoodsId(goodsBrief.getId()); - /* 杩涘叆绮鹃�夊晢鍝佸簱 */ if (selectionList == null || selectionList.size() == 0) { // 娣诲姞鑷崇簿閫夊晢鍝佸簱 QualityFactory selectionGoods = new QualityFactory(); @@ -356,18 +250,18 @@ selectionGoods.setEntryMode(QualityFactory.MODE_MANUAL);// 浜哄伐绛涢�� selectionGoods.setGoodsSource(QualityFactory.SOURCE_TAOBAO);// 鏉ユ簮娣樺疂 - addList.add(selectionGoods); + listQuality.add(selectionGoods); } else { // 鏇存柊鍟嗗搧 QualityFactory selectionGoods = selectionList.get(0); selectionGoods.setUpdatetime(new Date()); - qualityFactoryMapper.updateByPrimaryKey(selectionGoods); + qualityFactoryMapper.updateByPrimaryKeySelective(selectionGoods); } - if (listLabs.size() > 0) { - for (Label label : listLabs) { + if (listLabel != null && listLabel.size() > 0) { + for (Label label : listLabel) { /* 璐翠笂鏍囩 锛� 宸茶创涓嶅鐞嗗垯 */ - Long existence = labelGoodsMapper.isExistence(id, label.getId()); + Long existence = labelGoodsMapper.isExistence(goodsBrief.getId(), label.getId()); // 璇ュ晢鍝佷笉瀛樺湪姝ゆ爣绛惧垯娣诲姞锛� 鍙嶄箣涓嶅仛澶勭悊 if (existence == null || existence == 0l) { @@ -377,19 +271,19 @@ lg.setCreateUser(admin); lg.setCreatetime(new Date()); lg.setTaoBaoGoodsBrief(goodsBrief); - - addLabelList.add(lg); + listLabelGoods.add(lg); } } } + } - if (addList.size() > 0) { - qualityFactoryMapper.insertBatch(addList); + if (listQuality.size() > 0) { + qualityFactoryMapper.insertBatch(listQuality); } - if (addLabelList.size() > 0) { - labelGoodsMapper.insertBatch(addLabelList); + if (listLabelGoods.size() > 0) { + labelGoodsMapper.insertBatch(listLabelGoods); } } @@ -419,7 +313,7 @@ } // 淇敼鏉冮噸 - // selectionGoods.setUpdateUser(admin); + selectionGoods.setUpdateUser(admin); selectionGoods.setWeight(resultWeight); qualityFactoryMapper.updateByPrimaryKeySelective(selectionGoods); } @@ -443,25 +337,27 @@ @Override public List<Long> queryNeedUpdate(long start, int count, int hour) { - return qualityFactoryMapper.queryNeedUpdate(0, count, hour); + return qualityFactoryMapper.queryNeedUpdate(start, count, hour); } - /** * 鑾峰彇缂撳瓨 - * @param key 閿� - * @param title 鏍囩鍚嶇О + * + * @param key + * 閿� + * @param title + * 鏍囩鍚嶇О * @return */ - public String getLabelIdByRedis (String key, String title) throws Exception { - + public String getLabelIdByRedis(String key, String title) throws Exception { + String value = redisManager.getCommonString(key); - + if (StringUtil.isNullOrEmpty(value)) { - + // id涓虹┖鏃剁郴缁熻繘琛屾煡璇� List<Label> list9K9 = labelService.selectByTitle(title); - + if (list9K9 != null && list9K9.size() > 0) { Long id = list9K9.get(0).getId(); if (id != null) { @@ -471,10 +367,10 @@ } } } - + return value; } - + @Override @Transactional public void updateGoodsFactory(List<Long> listId) { @@ -488,9 +384,11 @@ 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>(); @@ -500,37 +398,37 @@ List<LabelGoods> listLabelAdd = new ArrayList<LabelGoods>(); 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)); + list9Class.add(Long.parseLong(value9K9)); } - + if (!StringUtil.isNullOrEmpty(value19K9)) { map.put("19.9", new Label(Long.parseLong(value19K9))); - list9Class.add(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)); + list9Class.add(Long.parseLong(value29K9)); } - + if (!StringUtil.isNullOrEmpty(value49K9)) { map.put("49.9", new Label(Long.parseLong(value49K9))); - list9Class.add(Long.parseLong(value49K9)); + list9Class.add(Long.parseLong(value49K9)); } - + } listQuality.parallelStream().forEach(quality -> { @@ -567,6 +465,8 @@ /* 鏃犲埜淇℃伅 绉婚櫎绮鹃�夊簱 */ listDeleteQuality.add(quality.getId()); + // 绉婚櫎鏍囩 + listDeleteLabel.add(goods.getId()); } else { /* 鏃犲埜淇℃伅 绉婚櫎绮鹃�夊簱 */ @@ -575,13 +475,17 @@ // 绉婚櫎绮鹃�夊簱 listDeleteQuality.add(quality.getId()); + // 绉婚櫎鏍囩 + listDeleteLabel.add(goods.getId()); } else { /* 鏇存柊鍟嗗搧淇℃伅 */ TaoBaoGoodsBrief updateGoods = taoBaoGoodsUpdateService .getUpdateTaoBaoGoodsBrief(newGoodsBrief); + updateGoods.setId(id); taoBaoGoodsBriefService.setGoodsBriefDefault(updateGoods); + listUpdateGoodsBrief.add(updateGoods); /* 鏇存柊绮鹃�夊簱 淇℃伅鏃堕棿 */ @@ -619,7 +523,7 @@ // 鏇存柊鍟嗗搧淇℃伅 if (listUpdateGoodsBrief.size() > 0) { - taoBaoGoodsBriefService.updateBatchSelective(listUpdateGoodsBrief); + taoBaoGoodsUpdateService.updateTaoBaoGoods(listUpdateGoodsBrief); } // 鏇存柊绮鹃�夊簱 @@ -630,6 +534,13 @@ // 鎵归噺鍒犻櫎绮鹃�夊簱 if (listDeleteQuality.size() > 0) { qualityFactoryMapper.deleteBatchByPrimaryKey(listDeleteQuality); + // 鎵归噺鍒犻櫎闄愭椂鎶㈣喘 + qualityFlashSaleMapper.deleteBatchByQualityID(listDeleteQuality); + } + + // 鍒犻櫎瀵瑰簲鏍囩 + if (listDeleteLabel.size() > 0) { + labelGoodsMapper.deleteBatchByGoodsId(listDeleteLabel); } // 娣诲姞鏍囩 @@ -652,140 +563,6 @@ } @Override - @Transactional - public void updateBatchQualityFactory(List<QualityFactory> listQuality, List<Long> list9Class, - Map<String, Label> map) throws Exception { - - if (listQuality == null || listQuality.size() == 0) { - return; - } - - List<Long> listDeleteQuality = new ArrayList<Long>(); - List<QualityFactory> listUpdateQuality = new ArrayList<QualityFactory>(); - - List<Long> listGid = new ArrayList<Long>(); - List<TaoBaoGoodsBrief> listUpdateGoodsBrief = new ArrayList<TaoBaoGoodsBrief>(); - - List<Long> list9ClassDelete = new ArrayList<Long>(); - // 娣诲姞鍟嗗搧鏍囩鍒楄〃 - List<LabelGoods> listLabelAdd = new ArrayList<LabelGoods>(); - - listQuality.parallelStream().forEach(quality -> { - - TaoBaoGoodsBrief goods = quality.getTaoBaoGoodsBrief(); - if (goods == null) { - // 绉婚櫎绮鹃�夊簱 - listDeleteQuality.add(quality.getId()); - } else { - Long id = goods.getId(); - Long auctionId = goods.getAuctionId(); - - try { - // 鑾峰彇璇︽儏 - TaoBaoGoodsBrief taoBaoGoodsBrief = TaoKeApiUtil.searchGoodsDetail(auctionId); - - if (taoBaoGoodsBrief == null) { - /* 鏃犲埜淇℃伅 绉婚櫎绮鹃�夊簱 */ - listGid.add(id); - } else { - /* 鏃犲埜淇℃伅 绉婚櫎绮鹃�夊簱 */ - if (StringUtil.isNullOrEmpty(taoBaoGoodsBrief.getCouponInfo()) - && StringUtil.isNullOrEmpty(taoBaoGoodsBrief.getCouponActivityId())) { // 鏃犲埜淇℃伅 - // 绉婚櫎绮鹃�夊簱 - listGid.add(id); - - /* 鏇存柊鍟嗗搧淇℃伅 */ - TaoBaoGoodsBrief updateGoods = taoBaoGoodsUpdateService - .getUpdateTaoBaoGoodsBrief(taoBaoGoodsBrief); - updateGoods.setId(id); - taoBaoGoodsBriefService.setGoodsBriefDefault(updateGoods); - listUpdateGoodsBrief.add(updateGoods); - } else { - /* 鏇存柊鍟嗗搧淇℃伅 */ - - TaoBaoGoodsBrief updateGoods = taoBaoGoodsUpdateService - .getUpdateTaoBaoGoodsBrief(taoBaoGoodsBrief); - 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); - } - } - } - } - } - - } catch (TaobaoGoodsDownException e1) { - // 鍟嗗搧涓嬫灦 绉婚櫎鏁版嵁搴� - taoBaoGoodsUpdateService.deleteTaoBaoGoods(auctionId); - - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - } - - }); - - // 鏇存柊鍟嗗搧淇℃伅 - if (listUpdateGoodsBrief.size() > 0) { - taoBaoGoodsBriefService.updateBatchSelective(listUpdateGoodsBrief); - } - - // 鏇存柊绮鹃�夊簱 - if (listUpdateQuality.size() > 0) { - qualityFactoryMapper.updateBatchSelective(listUpdateQuality); - } - - // 鎵归噺绉婚櫎绮鹃�夊簱 - if (listGid.size() > 0) { - deleteBatchByTaoBaoGoodsId(listGid); - } - - // 鎵归噺鍒犻櫎绮鹃�夊簱 - if (listDeleteQuality.size() > 0) { - qualityFactoryMapper.deleteBatchByPrimaryKey(listDeleteQuality); - } - - // 娣诲姞鏍囩 - if (listLabelAdd.size() > 0) { - labelGoodsMapper.insertBatch(listLabelAdd); - } - - // 鍒犻櫎鏍囩 - if (list9ClassDelete.size() > 0) { - labelGoodsMapper.deleteBatchByPK(list9ClassDelete); - } - } - - @Override public void autoInsertOrUpadateStorage(List<TaoBaoGoodsBrief> goodsList, List<Label> listLabs, BoutiqueAutoRule autoRule) throws Exception { @@ -803,6 +580,7 @@ try { TaoBaoGoodsBrief taoBaoGoodsBrief = TaoKeApiUtil.searchGoodsDetail(goods.getAuctionId()); if (taoBaoGoodsBrief != null) { + listGoodsBrief.add(taoBaoGoodsBrief); } @@ -820,8 +598,13 @@ } } - - + 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>(); @@ -837,7 +620,6 @@ List<QualityFactory> listAddInsert = new ArrayList<QualityFactory>(); // 杩涘叆绮鹃�夊晢鍝佸垪琛� List<QualityFactory> listAddUpdate = new ArrayList<QualityFactory>(); - // 鎻掑叆鍟嗗搧娣樺疂ID闆嗗悎 List<Long> listAuctionId = new ArrayList<Long>(); @@ -898,10 +680,10 @@ /* 鍟嗗搧宸插瓨鍦ㄦ暟鎹簱 */ if (isExist && systemId != null) { - + // 鐢ㄤ簬纭畾鏄惁瀛樺湪绮鹃�夊簱 listSystemTBid.add(systemId); - + // 鏇存柊鍟嗗搧淇℃伅 TaoBaoGoodsBrief updateGoods = taoBaoGoodsUpdateService.getUpdateTaoBaoGoodsBrief(newGoodsBrief); // 璁剧疆涓婚敭id @@ -911,41 +693,42 @@ updateGoods.setCreatetime(date); updateGoods.setUpdatetime(date); taoBaoGoodsBriefService.setGoodsBriefDefault(updateGoods); - + listGoodsUpdate.add(updateGoods); - Long has9k9ID = null; - /* 璐翠笂鏍囩 */ + /* 璐翠笂鏍囩 */ 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绯诲垪 鍔犲叆瀵瑰簲鐨勬爣绛�*/ + + // 鍖呭惈 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; + has9k9ID = id; } - + } - + } else { - + long existence = labelGoodsMapper.isExistence(systemId, label.getId()); if (existence <= 0) { // 璐翠笂鏂版爣绛� @@ -957,54 +740,52 @@ listLabelAdd.add(lg); } else { - if(list9Class.contains(label.getId())){ + if (list9Class.contains(label.getId())) { // 宸插瓨鍦� - has9k9ID = 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鍏ュ簱瑙勫垯 鑻ュ晢鍝佷俊鎭彉鍖� 瀵瑰簲鐨勬爣绛炬牴鎹环鏍� 淇敼 + // 闈�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; + 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); // 鐘舵�佸惎鐢� @@ -1020,19 +801,20 @@ // 璐翠笂鏍囩 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 鏍囩*/ + + // 鍖呭惈 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 { // 璐翠笂鏂版爣绛� LabelGoods lg = new LabelGoods(); @@ -1042,9 +824,9 @@ lg.setTaoBaoGoodsBrief(newGoodsBrief); listLabelAdd.add(lg); } - + } - + } } } @@ -1104,8 +886,11 @@ } } - - taoBaoGoodsBriefService.updateBatchSelective(listGoodsUpdate); + try { + taoBaoGoodsUpdateService.updateTaoBaoGoods(listGoodsUpdate); + } catch (TaobaoGoodsUpdateException e) { + System.out.println(e.getMsg()); + } } // 娣樺疂鍟嗗搧鎻掑叆鏁版嵁搴� @@ -1172,29 +957,29 @@ // 鏌ヨ宸插瓨鍦ㄦ樉绀洪檺鏃舵姠璐殑鍟嗗搧 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)); } - + } else { int i = 0; boolean exist = false; - + for (Long qfId : listQFId) { - + for (QualityFlashSale flashSale : listQuery) { QualityFactory qualityFactory = flashSale.getQualityFactory(); - + if (qfId.equals(qualityFactory.getId())) { exist = true; - //鍗冲皢鍑嗗鏃堕棿娈垫椂闂� - //int nowType = qualityFlashSaleService.getQueryType(); - //flashSale.setType(nowType); + // 鍗冲皢鍑嗗鏃堕棿娈垫椂闂� + // int nowType = qualityFlashSaleService.getQueryType(); + // flashSale.setType(nowType); double weight = startWeight + (Math.random() * ((endWeight - startWeight) + 1)); flashSale.setWeight(weight); @@ -1209,7 +994,7 @@ listFlashSale.add(getNewQualityFlashSale(qfId, i, startWeight, endWeight, goodsSource)); } } - + } // 鎻掑叆闄愭椂鎶㈣喘 @@ -1247,8 +1032,8 @@ flashSale.setWeight(weight); } - //int nowType = qualityFlashSaleService.getNowType(); - //flashSale.setType(nowType); + // int nowType = qualityFlashSaleService.getNowType(); + // flashSale.setType(nowType); flashSale.setCreatetime(new Date()); flashSale.setUpdatetime(new Date()); @@ -1460,4 +1245,10 @@ return lg; } + @Override + public List<QualityFactory> listByMinSalesCountOrderByCreateTimeDesc(int salesCount, int page, int pageSize) { + return qualityFactoryMapper.listByMinSalesCountOrderByCreateTimeDesc(salesCount, (page - 1) * pageSize, + pageSize); + } + } -- Gitblit v1.8.0