From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityFactoryServiceImpl.java | 264 +++++++++++++++++++++------------------------------- 1 files changed, 108 insertions(+), 156 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 e7e60b5..27267b7 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 @@ -3,7 +3,6 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -24,20 +23,18 @@ import com.yeshi.fanli.entity.bus.lable.QualityFlashSale; import com.yeshi.fanli.entity.common.AdminUser; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; -import com.yeshi.fanli.exception.QualityFactoryException; +import com.yeshi.fanli.exception.goods.quality.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; import com.yeshi.fanli.service.inter.lable.QualityFactoryService; import com.yeshi.fanli.service.inter.lable.QualityFlashSaleService; import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; -import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.RedisKeyEnum; 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 com.yeshi.fanli.vo.quality.QualityFactoryVO; @@ -104,7 +101,7 @@ @Override - @Transactional + @Transactional(rollbackFor=Exception.class) public void deleteByGoodsId(List<String> ids) throws QualityFactoryException { if (ids != null && ids.size() > 0) { @@ -155,7 +152,7 @@ } @Override - @Transactional + @Transactional(rollbackFor=Exception.class) public void addBatchTaoBaoGoods(List<TaoBaoGoodsBrief> listTaoBaoGoods, String lableNames, AdminUser admin) throws Exception { @@ -164,90 +161,124 @@ } // 鍒涘缓鏍囩 - List<Label> listLabel = labelService.addBatchByNames(lableNames, admin); + List<Label> listLabs = labelService.addBatchByNames(lableNames, admin); + + + // 娣诲姞鍟嗗搧鏍囩鍒楄〃 + List<LabelGoods> listLabelAdd = new ArrayList<LabelGoods>(); + // 鎻掑叆鍟嗗搧闆嗗悎 + List<TaoBaoGoodsBrief> listGoodsInsert = new ArrayList<TaoBaoGoodsBrief>(); + // 鏇存柊鍟嗗搧闆嗗悎 + List<TaoBaoGoodsBrief> listGoodsUpdate = new ArrayList<TaoBaoGoodsBrief>(); + // 杩涘叆绮鹃�夊晢鍝佸垪琛� + List<QualityFactory> listInsertQuality = new ArrayList<QualityFactory>(); + - List<QualityFactory> listQuality = new ArrayList<QualityFactory>(); - List<LabelGoods> listLabelGoods = new ArrayList<LabelGoods>(); - + // 鎻掑叆鍟嗗搧娣樺疂ID闆嗗悎 + List<Long> listAuctionId = new ArrayList<Long>(); for (TaoBaoGoodsBrief goodsBrief : listTaoBaoGoods) { + listAuctionId.add(goodsBrief.getAuctionId()); + } + List<Long> listHas = taoBaoGoodsBriefService.listExistById(listAuctionId); - // 鏈湴鏄惁宸插瓨鍦ㄦ鍟嗗搧 - List<TaoBaoGoodsBrief> hasList = taoBaoGoodsBriefService.queryByAuctionId(goodsBrief.getAuctionId()); - - if (hasList != null && hasList.size() > 0) { - TaoBaoGoodsBrief currentGoodsBrief = hasList.get(0); - goodsBrief.setId(currentGoodsBrief.getId()); - - // 鏇存柊鍟嗗搧鏈�鏂颁俊鎭� - taoBaoGoodsUpdateService.updateTaoBaoGoods(goodsBrief); + // 閬嶅巻鍟嗗搧 + for (TaoBaoGoodsBrief newGoodsBrief : listTaoBaoGoods) { + Long auctionId = newGoodsBrief.getAuctionId(); + // 璁剧疆鎴愪富閿� + newGoodsBrief.setId(auctionId); + newGoodsBrief.setState(0); // 鐘舵�佸惎鐢� + newGoodsBrief.setCreatetime(new Date()); + newGoodsBrief.setUpdatetime(new Date()); + + /* 鍒ゆ柇鍟嗗搧 鏄惁宸茬粡瀛樺湪鏁版嵁搴� */ + if (listHas != null && listHas.size() > 0 && listHas.contains(auctionId)) { + // 鏇存柊鍟嗗搧 + + listGoodsUpdate.add(newGoodsBrief); + // 鍟嗗搧鏍囩 + if (listLabs != null && listLabs.size() > 0) { + for (Label lab: listLabs) { + long existence = labelGoodsMapper.isExistence(auctionId, lab.getId()); + if (existence <= 0) { + // 璐翠笂鏂版爣绛� + LabelGoods lg = new LabelGoods(); + lg.setLabel(lab); + lg.setCreateUser(admin); + lg.setCreatetime(new Date()); + lg.setTaoBaoGoodsBrief(newGoodsBrief); + listLabelAdd.add(lg); + } + } + } + + // 鏇存柊鐨勫晢鍝佷俊鎭� 鏄惁瀛樺湪绮鹃�夊簱涓� + QualityFactory quality = qualityFactoryMapper.getByAuctionId(auctionId); + if (quality == null) { + QualityFactory selectionGoods = new QualityFactory(); + selectionGoods.setTaoBaoGoodsBrief(newGoodsBrief); + selectionGoods.setCreateUser(admin); + selectionGoods.setCreatetime(new Date()); + selectionGoods.setUpdateUser(admin); + selectionGoods.setUpdatetime(new Date()); + selectionGoods.setEntryMode(QualityFactory.MODE_MANUAL);// 浜哄伐绛涢�� + selectionGoods.setGoodsSource(QualityFactory.SOURCE_TAOBAO);// 鏉ユ簮 + selectionGoods.setWeight((int) (Math.random() * (4000))); + listInsertQuality.add(selectionGoods); + } } else { - goodsBrief.setId(null); - goodsBrief.setState(0); - goodsBrief.setCreatetime(new Date()); - goodsBrief.setUpdatetime(new Date()); - // 闈炵┖椤� 璁剧疆榛樿鍊� - taoBaoGoodsBriefService.setGoodsBriefDefault(goodsBrief); - // 淇濆瓨鑷虫湰鍦� - taoBaoGoodsBriefService.insertSelective(goodsBrief); - } - - // 鏄惁宸插叆搴� - List<QualityFactory> selectionList = qualityFactoryMapper.queryByGoodsId(goodsBrief.getId()); - - if (selectionList == null || selectionList.size() == 0) { - // 娣诲姞鑷崇簿閫夊晢鍝佸簱 + // 璁剧疆鍟嗗搧榛樿鍊� + taoBaoGoodsBriefService.setGoodsBriefDefault(newGoodsBrief); + listGoodsInsert.add(newGoodsBrief); + + // 绮鹃�夊簱淇℃伅 QualityFactory selectionGoods = new QualityFactory(); - + selectionGoods.setTaoBaoGoodsBrief(newGoodsBrief); selectionGoods.setCreateUser(admin); selectionGoods.setCreatetime(new Date()); selectionGoods.setUpdateUser(admin); selectionGoods.setUpdatetime(new Date()); - - selectionGoods.setWeight(50);// 榛樿50 - selectionGoods.setTaoBaoGoodsBrief(goodsBrief); selectionGoods.setEntryMode(QualityFactory.MODE_MANUAL);// 浜哄伐绛涢�� - selectionGoods.setGoodsSource(QualityFactory.SOURCE_TAOBAO);// 鏉ユ簮娣樺疂 + selectionGoods.setGoodsSource(QualityFactory.SOURCE_TAOBAO);// 鏉ユ簮 + selectionGoods.setWeight((int) (Math.random() * (4000))); + listInsertQuality.add(selectionGoods); - listQuality.add(selectionGoods); - } else { - // 鏇存柊鍟嗗搧 - QualityFactory selectionGoods = selectionList.get(0); - selectionGoods.setUpdatetime(new Date()); - qualityFactoryMapper.updateByPrimaryKeySelective(selectionGoods); - } - - if (listLabel != null && listLabel.size() > 0) { - for (Label label : listLabel) { - /* 璐翠笂鏍囩 锛� 宸茶创涓嶅鐞嗗垯 */ - Long existence = labelGoodsMapper.isExistence(goodsBrief.getId(), label.getId()); - - // 璇ュ晢鍝佷笉瀛樺湪姝ゆ爣绛惧垯娣诲姞锛� 鍙嶄箣涓嶅仛澶勭悊 - if (existence == null || existence == 0l) { - // 璐翠笂鏂版爣绛� + // 鍟嗗搧鏍囩 + if (listLabs != null && listLabs.size() > 0) { + for (Label lab: listLabs) { LabelGoods lg = new LabelGoods(); - lg.setLabel(label); + lg.setLabel(lab); lg.setCreateUser(admin); lg.setCreatetime(new Date()); - lg.setTaoBaoGoodsBrief(goodsBrief); - listLabelGoods.add(lg); + lg.setTaoBaoGoodsBrief(newGoodsBrief); + listLabelAdd.add(lg); } } } - + } + // 鎻掑叆娣樺疂鍟嗗搧 + if (listGoodsInsert.size() > 0) { + taoBaoGoodsBriefService.insertBatch(listGoodsInsert); + } + + // 鏇存柊娣樺疂鍟嗗搧 + if (listGoodsUpdate.size() > 0) { + taoBaoGoodsUpdateService.updateTaoBaoGoods(listGoodsUpdate); + } + + // 鍔犲叆绮鹃�夊簱 + if (listInsertQuality.size() > 0) { + qualityFactoryMapper.insertBatch(listInsertQuality); } - if (listQuality.size() > 0) { - qualityFactoryMapper.insertBatch(listQuality); + // 娣诲姞鏍囩 + if (listLabelAdd.size() > 0) { + labelGoodsMapper.insertBatch(listLabelAdd); } - - if (listLabelGoods.size() > 0) { - labelGoodsMapper.insertBatch(listLabelGoods); - } - + } @Override - @Transactional + @Transactional(rollbackFor=Exception.class) public void setWeightBatch(List<Long> idList, AdminUser admin, Integer weight, Integer weightSmall, Integer weightLarge) throws Exception { @@ -288,15 +319,6 @@ qualityFactoryMapper.updateWeight(weight, time); } - @Override - public long queryNeedUpdateCount() { - return qualityFactoryMapper.countQueryNeedUpdate(); - } - - @Override - public List<Long> queryNeedUpdate(long start, int count, int hour) { - return qualityFactoryMapper.queryNeedUpdate(start, count, hour); - } /** * 鑾峰彇缂撳瓨 @@ -308,7 +330,7 @@ * @return */ public String getLabelIdByRedis(String key, String title) throws Exception { - + key = RedisKeyEnum.getRedisKey(RedisKeyEnum.emptyKey, key); String value = redisManager.getCommonString(key); if (StringUtil.isNullOrEmpty(value)) { @@ -368,6 +390,7 @@ } @Override + @Transactional public void autoInsertOrUpadateStorage(BoutiqueAutoRule autoRule, List<TaoBaoGoodsBrief> goodsList, List<Label> listLabs) { if (goodsList == null || goodsList.size() == 0) { @@ -424,8 +447,11 @@ for (TaoBaoGoodsBrief goodsBrief : goodsList) { listAuctionId.add(goodsBrief.getAuctionId()); } - List<Long> listHas = taoBaoGoodsBriefService.listExistById(listAuctionId); - + + List<Long> listHas = new ArrayList<Long>(); + if (listAuctionId.size() > 0) { + listHas = taoBaoGoodsBriefService.listExistById(listAuctionId); + } // 閬嶅巻鍟嗗搧 @@ -700,7 +726,6 @@ return; } - // 澶т簬100闇�瑕佸垎娈靛垹闄� int start = 0; int end = 100; @@ -728,88 +753,15 @@ } - /** - * 鏌ヨ绮鹃�夊晢鍝佹暟鎹簲鐢ㄥ墠绔� - * - * @param start - * @param count - * @param key - * @param classId - * 鍒嗙被id - * @param labId - * 鏍囩id - * @return - */ + @Override public List<QualityFactory> listQuery(long start, int count, String key, Long classId, Long labId) { return qualityFactoryMapper.listQuery(start, count, key, classId, labId, null, null); } - - /** - * 瀵瑰簲鏌ヨ绮鹃�夊晢鍝佹暟鎹簲鐢ㄥ墠绔粺璁� - */ + @Override public long countQuery(String key, Integer goodsSource, Long classId, Long labId) { return qualityFactoryMapper.countQuery(key, classId, labId, null, null); - } - - public LabelGoods screen9K9(TaoBaoGoodsBrief goodsBrief, Map<String, Label> map) { - // 璐翠笂鏂版爣绛� - LabelGoods lg = null; - - /* 9k9 */ - BigDecimal price9k9 = new BigDecimal(10); - /* 19k9 */ - BigDecimal price19k9 = new BigDecimal(20); - /* 29.9 */ - BigDecimal price29K9 = new BigDecimal(30); - /* 49.9 */ - BigDecimal price49K9 = new BigDecimal(50); - /* 鍒稿悗浠�--璁$畻 */ - BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(goodsBrief); - - if (couponPrice.compareTo(price9k9) < 0) { - Label label = map.get("9.9"); - if (label == null) { - return null; - } - - lg = new LabelGoods(); - lg.setLabel(label); - - } else if (couponPrice.compareTo(price19k9) < 0) { - Label label = map.get("19.9"); - if (label == null) { - return null; - } - - lg = new LabelGoods(); - lg.setLabel(label); - } else if (couponPrice.compareTo(price29K9) < 0) { - Label label = map.get("29.9"); - if (label == null) { - return null; - } - - lg = new LabelGoods(); - lg.setLabel(label); - } else if (couponPrice.compareTo(price49K9) < 0) { - Label label = map.get("49.9"); - if (label == null) { - return null; - } - - lg = new LabelGoods(); - lg.setLabel(label); - } else { - return null; - } - - lg.setCreateUser(new AdminUser(2L)); - lg.setCreatetime(new Date()); - lg.setTaoBaoGoodsBrief(goodsBrief); - - return lg; } @Override -- Gitblit v1.8.0