| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | import org.quartz.Job;
|
| | | import org.quartz.JobDataMap;
|
| | | import org.quartz.JobExecutionContext;
|
| | |
| | | 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;
|
| | |
|
| | | /**
|
| | | * 精选商品自动入库
|
| | |
| | |
|
| | | @Override
|
| | | public void execute(JobExecutionContext context) throws JobExecutionException {
|
| | | LogHelper.test("---UpdateQualityFactoryJob----execute ");
|
| | |
|
| | | // 爬取商品信息
|
| | | searchGoods(context);
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | /* 来源名称 */
|
| | | if (jsonData.get("sourceCalss") != null && !StringUtil.isNullOrEmpty(jsonData.get("sourceCalss").toString())) {
|
| | | if (jsonData.get("sourceCalss") != null
|
| | | && !StringUtil.isNullOrEmpty(jsonData.get("sourceCalss").toString())) {
|
| | | String sourceCalss = jsonData.get("sourceCalss").toString();
|
| | | autoRule.setSourceCalss(sourceCalss);
|
| | | }
|
| | |
| | | /* 标签列表 */
|
| | | List<Label> listLabs = new ArrayList<Label>();
|
| | |
|
| | | if (jsonData.get("lableNames") != null && !StringUtil.isNullOrEmpty(jsonData.get("lableNames").toString())) {
|
| | | if (jsonData.get("lableNames") != null
|
| | | && !StringUtil.isNullOrEmpty(jsonData.get("lableNames").toString())) {
|
| | |
|
| | | // 空格隔开
|
| | | String[] arrtitles = jsonData.get("lableNames").toString().split("\\s+");
|
| | |
|
| | | /* 遍历标签名称:查询数据库中是否已存在 */
|
| | | // 获取标签属性
|
| | | for (String name : arrtitles) {
|
| | | List<Label> labels = labelService.selectByTitle(name.trim());
|
| | |
|
| | | if (labels != null && labels.size() > 0) {
|
| | | Label label = labels.get(0);
|
| | |
|
| | | listLabs.add(label);
|
| | | } else {
|
| | | // 新增
|
| | | Label addLabel = addLabel(name, admin);
|
| | | listLabs.add(addLabel);
|
| | | Label label = labelService.getByTitleCache("labKey", name.trim());
|
| | | if (label == null) {
|
| | | label = insertLabel(name, admin);
|
| | | }
|
| | |
|
| | | listLabs.add(label);
|
| | | }
|
| | | }
|
| | |
|
| | | int source = Integer.parseInt(jobDataMap.get("source").toString());
|
| | |
|
| | | autoRule.setSource(QualityFactory.SOURCE_TAOBAO);
|
| | |
|
| | | // 1、来源淘宝普通接口
|
| | | if (BoutiqueAutoRule.TB_OPTIONAL == source) {
|
| | | // 来源淘宝普通接口
|
| | | autoRule.setGoodsSource(QualityFactory.SOURCE_TAOBAO);
|
| | |
|
| | | searchTaoBao(jsonData, listLabs, autoRule);
|
| | | }
|
| | |
|
| | | // 2、淘宝推荐
|
| | | if (BoutiqueAutoRule.TB_MATERIAL == source) {
|
| | | autoRule.setGoodsSource(QualityFactory.SOURCE_TAOBAO_MATERIAL);
|
| | | // 淘宝推荐
|
| | | searchMaterial(jsonData, listLabs, autoRule);
|
| | | }
|
| | |
|
| | |
| | | * @param jobDataMap
|
| | | */
|
| | | private void searchTaoBao(JSONObject jsonData, List<Label> listLabs, BoutiqueAutoRule autoRule) {
|
| | |
|
| | | try {
|
| | | Date time = new Date();
|
| | | String formatDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(time);
|
| | |
| | | filter.setPageSize(pageSize);
|
| | |
|
| | | for (int page = 1; page <= pageMax; page++) {
|
| | |
|
| | | filter.setPage(page);
|
| | |
|
| | | TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(filter);
|
| | | LogHelper.test(title + "searchWuLiao 已爬取- " + page + "-页-");
|
| | |
|
| | | // 结果为空 时不再请求
|
| | | // 结果为空 结束请求
|
| | | if (result == null) {
|
| | | LogHelper.test(title + "searchWuLiao返回 result为空");
|
| | | return;
|
| | | break;
|
| | | }
|
| | |
|
| | | // 结果数据处理
|
| | |
| | |
|
| | | /* 权重范围 */
|
| | | if (page < 3) {
|
| | | startWeight = 10000;
|
| | | endWeight = 12000;
|
| | | startWeight = 4000;
|
| | | endWeight = 6000;
|
| | | } else {
|
| | | startWeight = 10;
|
| | | endWeight = 3000;
|
| | |
| | | autoRule.setEndWeight(endWeight);
|
| | |
|
| | | /* 筛选商品进入精选库中 */
|
| | | if (StringUtil.isNullOrEmpty(title)) {
|
| | | screen(listGoods, jsonData, filter, listLabs, autoRule);
|
| | | if (!StringUtil.isNullOrEmpty(title) && title.contains(IS_9K9)) {
|
| | | screen9K9(filter, listGoods, jsonData, listLabs, autoRule);
|
| | | } else {
|
| | | if (title.contains(IS_9K9)) {
|
| | | screen9K9(filter, listGoods, jsonData, listLabs, autoRule);
|
| | | } else {
|
| | | screen(listGoods, jsonData, filter, listLabs, autoRule);
|
| | | }
|
| | | screen(listGoods, jsonData, filter, listLabs, autoRule);
|
| | | }
|
| | |
|
| | | /* 销售量小值 */
|
| | |
| | | break;// 结束爬取数据
|
| | | }
|
| | | }
|
| | | |
| | | // 9k9 限时抢购 不操作删除
|
| | | if (title.contains(IS_9K9) || title.contains(FLASH_SALE)) {
|
| | |
|
| | | // 9k9 限时抢购 不操作删除
|
| | | if (!StringUtil.isNullOrEmpty(title) && (title.contains(IS_9K9) || title.contains(FLASH_SALE))) {
|
| | | return;
|
| | | }
|
| | | |
| | |
|
| | | /* 更新完成后清理之前创建的数据 */
|
| | | if (jsonData.get("systemCid") != null && !StringUtil.isNullOrEmpty(jsonData.get("systemCid").toString())) {
|
| | | |
| | | Long systemCid = Long.parseLong(jsonData.get("systemCid").toString());
|
| | | |
| | | List<Long> list = qualityFactoryService.getAuctionIdbyClassId(systemCid, autoRule.getGoodsSource(), formatDate);
|
| | | |
| | | if (list != null && list.size() > 0) {
|
| | | if (list.size() <= 100) {
|
| | | qualityFactoryService.deleteBatchByTaoBaoGoodsId(list);
|
| | | } else {
|
| | |
|
| | | int start = 0;
|
| | | int end = 100;
|
| | | int countRow = 100;
|
| | |
|
| | | int count = list.size() / countRow;
|
| | |
|
| | | if (list.size() % countRow > 0) {
|
| | | count += 1;
|
| | | }
|
| | |
|
| | | for (int i = 0; i < count; i++) {
|
| | | List<Long> sublist = new ArrayList<Long>();
|
| | | if (i == count - 1) {
|
| | | //System.out.println(list.subList(start, list.size()));
|
| | | sublist = list.subList(start, list.size());
|
| | | qualityFactoryService.deleteBatchByTaoBaoGoodsId(sublist);
|
| | | break;
|
| | | }
|
| | | sublist = list.subList(start, end);
|
| | | qualityFactoryService.deleteBatchByTaoBaoGoodsId(sublist);
|
| | | start += countRow;
|
| | | end += countRow;
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | | deleteNotUpdateGoods(systemCid, formatDate, autoRule.getGoodsSource());
|
| | | }
|
| | |
|
| | | } catch (Exception e) {
|
| | |
| | | }
|
| | |
|
| | | /* 筛选商品进入精选库中 */
|
| | | if (StringUtil.isNullOrEmpty(title)) {
|
| | | screen(listGoods, jsonData, filter, listLabs, autoRule);
|
| | | if (!StringUtil.isNullOrEmpty(title) && title.contains(IS_9K9)) {
|
| | | screen9K9(filter, listGoods, jsonData, listLabs, autoRule);
|
| | | } else {
|
| | | if (title.contains(IS_9K9)) {
|
| | | screen9K9(filter, listGoods, jsonData, listLabs, autoRule);
|
| | | } else {
|
| | | screen(listGoods, jsonData, filter, listLabs, autoRule);
|
| | | }
|
| | | screen(listGoods, jsonData, filter, listLabs, autoRule);
|
| | | }
|
| | |
|
| | | // 总页数爬取完成
|
| | |
| | | * @return
|
| | | */
|
| | | public SearchFilter getSearchFilter(JSONObject jsonData) {
|
| | |
|
| | | SearchFilter filter = new SearchFilter();
|
| | |
|
| | | // 排序字段 销量高到低(默认)
|
| | |
| | | // 退款率是否低于行业均值 1 有 0 无
|
| | | filter.setIncludeRfdRate(true);
|
| | | }
|
| | |
|
| | | return filter;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 9.9 19.9 29.9 39.9 商品筛选
|
| | | * |
| | | * @param taoBaoGoodsBriefs
|
| | | */
|
| | | public void screen9K9(SearchFilter filter, List<TaoBaoGoodsBrief> taoBaoGoodsBriefs, JSONObject jsonData,
|
| | | List<Label> listLabs, BoutiqueAutoRule autoRule) throws Exception {
|
| | |
|
| | | /* 9k9 */
|
| | | BigDecimal price9k9 = new BigDecimal(10);
|
| | | List<TaoBaoGoodsBrief> list9k9 = new ArrayList<TaoBaoGoodsBrief>();
|
| | |
|
| | | /* 19k9 */
|
| | | BigDecimal price19k9 = new BigDecimal(20);
|
| | | List<TaoBaoGoodsBrief> list19k9 = new ArrayList<TaoBaoGoodsBrief>();
|
| | |
|
| | | /* 29.9 */
|
| | | BigDecimal price29K9 = new BigDecimal(30);
|
| | | List<TaoBaoGoodsBrief> list29k9 = new ArrayList<TaoBaoGoodsBrief>();
|
| | |
|
| | | /* 49.9 */
|
| | | BigDecimal price49K9 = new BigDecimal(50);
|
| | | List<TaoBaoGoodsBrief> list49k9 = new ArrayList<TaoBaoGoodsBrief>();
|
| | |
|
| | | /* 销售量小值 */
|
| | | int minSales = 0;
|
| | | if (jsonData.get("startSales") != null) {
|
| | | minSales = (int) jsonData.get("startSales");
|
| | | }
|
| | |
|
| | | /* 销售量大值 */
|
| | | int maxSales = 0;
|
| | | if (jsonData.get("endSales") != null) {
|
| | | maxSales = (int) jsonData.get("endSales");
|
| | | }
|
| | |
|
| | | // 验证是否符合要求入库
|
| | | for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) {
|
| | |
|
| | | /* 验证在是否有券 */
|
| | | if (filter.getQuan() > 0) {
|
| | | String couponInfo = goodsBrief.getCouponInfo();
|
| | | if (StringUtil.isNullOrEmpty(couponInfo)) {
|
| | | continue;
|
| | | }
|
| | | }
|
| | |
|
| | | /* 验证销售量 */
|
| | | int biz30day = goodsBrief.getBiz30day();
|
| | | if (maxSales > 0 && minSales > 0 && (biz30day < minSales || biz30day > maxSales)) {
|
| | | continue;
|
| | | } else if (maxSales > 0 && biz30day > maxSales) {
|
| | | continue;
|
| | | } else if (minSales > 0 && biz30day < minSales) {
|
| | | continue;
|
| | | }
|
| | |
|
| | | /* 验证比例 */
|
| | | if (BoutiqueAutoRule.TB_MATERIAL == autoRule.getSource()) {
|
| | | int startTkRate = filter.getStartTkRate();
|
| | | int endTkRate = filter.getEndTkRate();
|
| | | BigDecimal tkRate = goodsBrief.getTkRate();
|
| | | if (startTkRate > 0 && endTkRate > 0 && (tkRate.compareTo(new BigDecimal(startTkRate / 100)) < 0
|
| | | || tkRate.compareTo(new BigDecimal(endTkRate / 100)) > 0)) {
|
| | | continue;
|
| | | } else if (endTkRate > 0 && tkRate.compareTo(new BigDecimal(endTkRate / 100)) > 0) {
|
| | | continue;
|
| | | } else if (startTkRate > 0 && tkRate.compareTo(new BigDecimal(startTkRate / 100)) < 0) {
|
| | | continue;
|
| | | }
|
| | | }
|
| | |
|
| | | /* 券后价--计算 */
|
| | | BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(goodsBrief);
|
| | | if (couponPrice.compareTo(price9k9) < 0) {
|
| | | list9k9.add(goodsBrief);
|
| | | } else if (couponPrice.compareTo(price19k9) < 0) {
|
| | | list19k9.add(goodsBrief);
|
| | | } else if (couponPrice.compareTo(price29K9) < 0) {
|
| | | list29k9.add(goodsBrief);
|
| | | } else if (couponPrice.compareTo(price49K9) < 0) {
|
| | | list49k9.add(goodsBrief);
|
| | | }
|
| | | }
|
| | | autoRule.setCalss9k9(true);
|
| | | AdminUser admin = autoRule.getAdminUser();
|
| | |
|
| | | if (list9k9.size() > 0) {
|
| | | Label label = labelService.getByTitleCache("labKey", "9.9");
|
| | | if (label == null) {
|
| | | label = insertLabel("9.9", admin);
|
| | | }
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(autoRule, list9k9, listLabs, label);
|
| | | }
|
| | |
|
| | | if (list19k9.size() > 0) {
|
| | | Label label = labelService.getByTitleCache("labKey", "19.9");
|
| | | if (label == null) {
|
| | | label = insertLabel("9.9", admin);
|
| | | }
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(autoRule, list19k9, listLabs, label);
|
| | | }
|
| | |
|
| | | if (list29k9.size() > 0) {
|
| | | Label label = labelService.getByTitleCache("labKey", "29.9");
|
| | | if (label == null) {
|
| | | label = insertLabel("9.9", admin);
|
| | | }
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(autoRule, list29k9, listLabs, label);
|
| | | }
|
| | |
|
| | | if (list49k9.size() > 0) {
|
| | | Label label = labelService.getByTitleCache("labKey", "49.9");
|
| | | if (label == null) {
|
| | | label = insertLabel("9.9", admin);
|
| | | }
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(autoRule, list49k9, listLabs, label);
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 筛选符合条件的商品
|
| | | * |
| | | * @param taoBaoGoodsBriefs
|
| | | * @param jsonData
|
| | | * @param filter
|
| | | * @param listLabs
|
| | | * @param autoRule
|
| | | * @throws Exception
|
| | | */
|
| | | public void screen(List<TaoBaoGoodsBrief> taoBaoGoodsBriefs, JSONObject jsonData, SearchFilter filter,
|
| | | List<Label> listLabs, BoutiqueAutoRule autoRule) throws Exception {
|
| | |
|
| | | List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
|
| | | for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) {
|
| | | // 验证是否符合要求
|
| | | if (validate(filter, jsonData, goodsBrief, 1)) {
|
| | | listGoods.add(goodsBrief);
|
| | | }
|
| | | }
|
| | |
|
| | | if (listGoods.size() > 0) {
|
| | | autoRule.setCalss9k9(false);
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(autoRule, listGoods, listLabs, null);
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | * @return
|
| | | */
|
| | | public boolean validate(SearchFilter filter, JSONObject jsonData, TaoBaoGoodsBrief goodsBrief, int source) {
|
| | |
|
| | | /* 销售量小值 */
|
| | | int minSales = 0;
|
| | | if (jsonData.get("startSales") != null) {
|
| | |
| | |
|
| | | BigDecimal tkRate = goodsBrief.getTkRate();
|
| | |
|
| | | if (startTkRate > 0 && endTkRate > 0
|
| | | && (tkRate.compareTo(new BigDecimal(startTkRate / 100)) < 0 || tkRate.compareTo(new BigDecimal(endTkRate / 100)) > 0)) {
|
| | | if (startTkRate > 0 && endTkRate > 0 && (tkRate.compareTo(new BigDecimal(startTkRate / 100)) < 0
|
| | | || tkRate.compareTo(new BigDecimal(endTkRate / 100)) > 0)) {
|
| | | return false;
|
| | | } else if (endTkRate > 0 && tkRate.compareTo(new BigDecimal(endTkRate / 100)) > 0) {
|
| | | return false;
|
| | |
| | | BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(goodsBrief);
|
| | |
|
| | | /* 验证在券后价 */
|
| | | if (startPrice != null && endPrice != null && (couponPrice.compareTo(startPrice) < 0 || couponPrice.compareTo(endPrice) > 0)) {
|
| | | if (startPrice != null && endPrice != null
|
| | | && (couponPrice.compareTo(startPrice) < 0 || couponPrice.compareTo(endPrice) > 0)) {
|
| | | return false;
|
| | | } else if (endPrice != null && couponPrice.compareTo(endPrice) > 0) {
|
| | | return false;
|
| | |
| | | }
|
| | |
|
| | | /**
|
| | | * 9.9 19.9 29.9 39.9 商品筛选
|
| | | * 插入新的标签
|
| | | *
|
| | | * @param taoBaoGoodsBriefs
|
| | | * @param title
|
| | | * @param admin
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public void screen9K9(SearchFilter filter, List<TaoBaoGoodsBrief> taoBaoGoodsBriefs, JSONObject jsonData, List<Label> listLabs,
|
| | | BoutiqueAutoRule autoRule) throws Exception {
|
| | |
|
| | | // 9k9数据-
|
| | | List<TaoBaoGoodsBrief> list9k9 = new ArrayList<TaoBaoGoodsBrief>();
|
| | |
|
| | | // 19k9数据-
|
| | | List<TaoBaoGoodsBrief> list19k9 = new ArrayList<TaoBaoGoodsBrief>();
|
| | |
|
| | | // 29k9数据-
|
| | | List<TaoBaoGoodsBrief> list29k9 = new ArrayList<TaoBaoGoodsBrief>();
|
| | |
|
| | | // 49k9数据-
|
| | | List<TaoBaoGoodsBrief> list49k9 = new ArrayList<TaoBaoGoodsBrief>();
|
| | |
|
| | | // 验证是否符合要求入库
|
| | | for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) {
|
| | |
|
| | | /* 销售量小值 */
|
| | | int minSales = 0;
|
| | | if (jsonData.get("startSales") != null) {
|
| | | minSales = (int) jsonData.get("startSales");
|
| | | }
|
| | |
|
| | | /* 销售量大值 */
|
| | | int maxSales = 0;
|
| | | if (jsonData.get("endSales") != null) {
|
| | | maxSales = (int) jsonData.get("endSales");
|
| | | }
|
| | |
|
| | | int biz30day = goodsBrief.getBiz30day();
|
| | |
|
| | | /* 验证销售量 */
|
| | | if (maxSales > 0 && minSales > 0 && (biz30day < minSales || biz30day > maxSales)) {
|
| | | continue;
|
| | | } else if (maxSales > 0 && biz30day > maxSales) {
|
| | | continue;
|
| | | } else if (minSales > 0 && biz30day < minSales) {
|
| | | continue;
|
| | | }
|
| | |
|
| | | /* 验证在是否有券 */
|
| | | if (filter.getQuan() > 0) {
|
| | | String couponInfo = goodsBrief.getCouponInfo();
|
| | | if (StringUtil.isNullOrEmpty(couponInfo)) {
|
| | | continue;
|
| | | }
|
| | | }
|
| | |
|
| | | /* 验证比例 */
|
| | | if (BoutiqueAutoRule.TB_MATERIAL == autoRule.getSource()) {
|
| | |
|
| | | int startTkRate = filter.getStartTkRate();
|
| | | int endTkRate = filter.getEndTkRate();
|
| | |
|
| | | BigDecimal tkRate = goodsBrief.getTkRate();
|
| | |
|
| | | if (startTkRate > 0 && endTkRate > 0
|
| | | && (tkRate.compareTo(new BigDecimal(startTkRate / 100)) < 0 || tkRate.compareTo(new BigDecimal(endTkRate / 100)) > 0)) {
|
| | | continue;
|
| | | } else if (endTkRate > 0 && tkRate.compareTo(new BigDecimal(endTkRate / 100)) > 0) {
|
| | | continue;
|
| | | } else if (startTkRate > 0 && tkRate.compareTo(new BigDecimal(startTkRate / 100)) < 0) {
|
| | | continue;
|
| | | }
|
| | | }
|
| | |
|
| | | /* 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) {
|
| | | list9k9.add(goodsBrief);
|
| | | } else if (couponPrice.compareTo(price19k9) < 0) {
|
| | | list19k9.add(goodsBrief);
|
| | | } else if (couponPrice.compareTo(price29K9) < 0) {
|
| | | list29k9.add(goodsBrief);
|
| | | } else if (couponPrice.compareTo(price49K9) < 0) {
|
| | | list49k9.add(goodsBrief);
|
| | | }
|
| | | }
|
| | |
|
| | | autoRule.setCalss9k9(true);
|
| | | AdminUser admin = autoRule.getAdminUser();
|
| | |
|
| | | if (list9k9.size() > 0) {
|
| | | List<Label> labs9K9 = new ArrayList<Label>();
|
| | | labs9K9.addAll(listLabs);
|
| | |
|
| | | List<Label> list = labelService.selectByTitleCache("labKey", "9.9");
|
| | |
|
| | | if (list == null || list.size() == 0) {
|
| | | // 新增
|
| | | Label addLabel = addLabel("9.9", admin);
|
| | | labs9K9.add(addLabel);
|
| | | } else {
|
| | | labs9K9.add(list.get(0));
|
| | | }
|
| | |
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(list9k9, labs9K9, autoRule);
|
| | | }
|
| | |
|
| | | if (list19k9.size() > 0) {
|
| | | List<Label> labs19K9 = new ArrayList<Label>();
|
| | | labs19K9.addAll(listLabs);
|
| | | List<Label> list = labelService.selectByTitleCache("labKey", "19.9");
|
| | | if (list == null || list.size() == 0) {
|
| | | // 新增
|
| | | Label addLabel = addLabel("19.9", admin);
|
| | | labs19K9.add(addLabel);
|
| | | } else {
|
| | | labs19K9.add(list.get(0));
|
| | | }
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(list19k9, labs19K9, autoRule);
|
| | | }
|
| | |
|
| | | if (list29k9.size() > 0) {
|
| | | List<Label> labs29K9 = new ArrayList<Label>();
|
| | | labs29K9.addAll(listLabs);
|
| | | List<Label> list = labelService.selectByTitleCache("labKey", "29.9");
|
| | | if (list == null || list.size() == 0) {
|
| | | // 新增
|
| | | Label addLabel = addLabel("29.9", admin);
|
| | | labs29K9.add(addLabel);
|
| | | } else {
|
| | | labs29K9.add(list.get(0));
|
| | | }
|
| | |
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(list29k9, labs29K9, autoRule);
|
| | | }
|
| | |
|
| | | if (list49k9.size() > 0) {
|
| | | List<Label> labs49K9 = new ArrayList<Label>();
|
| | | labs49K9.addAll(listLabs);
|
| | | List<Label> list = labelService.selectByTitleCache("labKey", "49.9");
|
| | | if (list == null || list.size() == 0) {
|
| | | // 新增
|
| | | Label addLabel = addLabel("49.9", admin);
|
| | | labs49K9.add(addLabel);
|
| | | } else {
|
| | | labs49K9.add(list.get(0));
|
| | | }
|
| | |
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(list49k9, labs49K9, autoRule);
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | public void screen(List<TaoBaoGoodsBrief> taoBaoGoodsBriefs, JSONObject jsonData, SearchFilter filter, List<Label> listLabs,
|
| | | BoutiqueAutoRule autoRule) throws Exception {
|
| | |
|
| | | // 遍历返回数据-
|
| | | List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
|
| | |
|
| | | for (TaoBaoGoodsBrief goodsBrief : taoBaoGoodsBriefs) {
|
| | | // 验证是否符合要求
|
| | | if (validate(filter, jsonData, goodsBrief, 1)) {
|
| | | listGoods.add(goodsBrief);
|
| | | }
|
| | | }
|
| | |
|
| | | if (listGoods.size() > 0) {
|
| | | autoRule.setCalss9k9(false);
|
| | | qualityFactoryService.autoInsertOrUpadateStorage(listGoods, listLabs, autoRule);
|
| | | }
|
| | | }
|
| | |
|
| | | public Label addLabel(String title, AdminUser admin) throws Exception {
|
| | | public Label insertLabel(String title, AdminUser admin) throws Exception {
|
| | | // 新增
|
| | | Label label = new Label();
|
| | | label.setTitle(title);// 名称
|
| | |
| | | label.setIosClick(0l);
|
| | | label.setAndroidClick(0l);
|
| | | labelService.insertSelective(label);
|
| | |
|
| | | return label;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 删除未更新的商品
|
| | | * |
| | | * @param systemCid
|
| | | * @param formatDate
|
| | | * @param source
|
| | | */
|
| | | public void deleteNotUpdateGoods(Long systemCid, String formatDate, int source) {
|
| | | List<Long> list = qualityFactoryService.getAuctionIdbyClassId(systemCid, source, formatDate);
|
| | | if (list == null || list.size() == 0) {
|
| | | return;
|
| | | }
|
| | |
|
| | | // 小于100条直接删除
|
| | | if (list.size() <= 100) {
|
| | | qualityFactoryService.deleteBatchByTaoBaoGoodsId(list);
|
| | | return;
|
| | | } |
| | | |
| | | |
| | | // 大于100需要分段删除
|
| | | int start = 0;
|
| | | int end = 100;
|
| | | int countRow = 100;
|
| | |
|
| | | int count = list.size() / countRow;
|
| | | if (list.size() % countRow > 0) {
|
| | | count += 1;
|
| | | }
|
| | |
|
| | | for (int i = 0; i < count; i++) {
|
| | | List<Long> sublist = new ArrayList<Long>();
|
| | | if (i == count - 1) {
|
| | | sublist = list.subList(start, list.size());
|
| | | qualityFactoryService.deleteBatchByTaoBaoGoodsId(sublist);
|
| | | break;
|
| | | }
|
| | | sublist = list.subList(start, end);
|
| | | qualityFactoryService.deleteBatchByTaoBaoGoodsId(sublist);
|
| | | start += countRow;
|
| | | end += countRow;
|
| | | }
|
| | |
|
| | | }
|
| | | }
|