|
|
|
|
|
|
|
|
for (ZsOperationGoods zsOperationGoods: zsOperationGoodsList) { |
|
|
for (ZsOperationGoods zsOperationGoods: zsOperationGoodsList) { |
|
|
String curUrl = zsOperationGoods.getGoodsSkuUrl(); |
|
|
String curUrl = zsOperationGoods.getGoodsSkuUrl(); |
|
|
//3.根据url 获取商品最新信息 |
|
|
//3.根据url 获取商品最新信息 |
|
|
|
|
|
log.info("调用接口开始"); |
|
|
Map<String, Object> reMap = HttpUtil.sendGetRequest(curUrl,true,zsOperationGoods.getPlatform()); |
|
|
Map<String, Object> reMap = HttpUtil.sendGetRequest(curUrl,true,zsOperationGoods.getPlatform()); |
|
|
|
|
|
log.info("调用接口结束"); |
|
|
if ((boolean)reMap.get("success")) { |
|
|
if ((boolean)reMap.get("success")) { |
|
|
List dataList = (List)reMap.get("data"); |
|
|
List dataList = (List)reMap.get("data"); |
|
|
Map dataMap = (Map)dataList.get(0); |
|
|
Map dataMap = (Map)dataList.get(0); |
|
|
|
|
|
|
|
|
zsOperationGoods.setGoodsSkuName(newName); |
|
|
zsOperationGoods.setGoodsSkuName(newName); |
|
|
zsOperationGoods.setGoodsSkuSn(newSn); |
|
|
zsOperationGoods.setGoodsSkuSn(newSn); |
|
|
zsOperationGoods.setRemark(newRemark); |
|
|
zsOperationGoods.setRemark(newRemark); |
|
|
//4.更新商品信息 |
|
|
|
|
|
|
|
|
//4.更新商品表和预警结果表信息 |
|
|
zsOperationGoodsMapper.update(zsOperationGoods,new UpdateWrapper<>()); |
|
|
zsOperationGoodsMapper.update(zsOperationGoods,new UpdateWrapper<>()); |
|
|
|
|
|
UpdateWrapper<ZsOperationWarnresult> updateWrapper = new UpdateWrapper<>(); |
|
|
|
|
|
updateWrapper.eq("goods_sku_url",curUrl); |
|
|
|
|
|
updateWrapper.set("goods_sku_name",newName); |
|
|
|
|
|
updateWrapper.set("goods_sku_sn",newSn); |
|
|
|
|
|
zsOperationWarnresultMapper.update(null,updateWrapper); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String newPriceStr = (String)dataMap.get("price"); |
|
|
String newPriceStr = (String)dataMap.get("price"); |
|
|
|
|
|
|
|
|
BigDecimal newPrice = new BigDecimal(newPriceStr); |
|
|
BigDecimal newPrice = new BigDecimal(newPriceStr); |
|
|
//如果新价格大于0 |
|
|
//如果新价格大于0 |
|
|
if (newPrice.compareTo(BigDecimal.ZERO) > 0) { |
|
|
if (newPrice.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
|
|
//判断这个商品最新的价格是否已经存在预警结果表了,如果在不发送消息和生成结果 |
|
|
|
|
|
if (checkIsExistsWarnResult(curUrl,newPrice)) { |
|
|
|
|
|
log.info("已经存在预警结果表,并且价格没有再次变化,不记录 url=:"+curUrl); |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//获取基准价格 |
|
|
//获取基准价格 |
|
|
BigDecimal initPrice = zsOperationGoods.getInitPrice(); |
|
|
BigDecimal initPrice = zsOperationGoods.getInitPrice(); |
|
|
//5. 获取基准价格和最新价格的差值比例 |
|
|
//5. 获取基准价格和最新价格的差值比例 |
|
|
|
|
|
|
|
|
zsOperationWarnresult.setWarnTime(new Date()); |
|
|
zsOperationWarnresult.setWarnTime(new Date()); |
|
|
zsOperationWarnresult.setGoodsSkuName(zsOperationGoods.getGoodsSkuName()); |
|
|
zsOperationWarnresult.setGoodsSkuName(zsOperationGoods.getGoodsSkuName()); |
|
|
zsOperationWarnresult.setGoodsSkuSn(zsOperationGoods.getGoodsSkuSn()); |
|
|
zsOperationWarnresult.setGoodsSkuSn(zsOperationGoods.getGoodsSkuSn()); |
|
|
|
|
|
zsOperationWarnresult.setGoodsSkuUrl(curUrl); |
|
|
zsOperationWarnresult.setInitPrice(initPrice); |
|
|
zsOperationWarnresult.setInitPrice(initPrice); |
|
|
zsOperationWarnresult.setCurPrice(newPrice); |
|
|
zsOperationWarnresult.setCurPrice(newPrice); |
|
|
zsOperationWarnresult.setPriceChangeRatio(percentageChange.toString()); |
|
|
zsOperationWarnresult.setPriceChangeRatio(percentageChange.toString()); |
|
|
|
|
|
|
|
|
zsOperationWarnresult.setWarnTime(new Date()); |
|
|
zsOperationWarnresult.setWarnTime(new Date()); |
|
|
zsOperationWarnresult.setGoodsSkuName(zsOperationGoods.getGoodsSkuName()); |
|
|
zsOperationWarnresult.setGoodsSkuName(zsOperationGoods.getGoodsSkuName()); |
|
|
zsOperationWarnresult.setGoodsSkuSn(zsOperationGoods.getGoodsSkuSn()); |
|
|
zsOperationWarnresult.setGoodsSkuSn(zsOperationGoods.getGoodsSkuSn()); |
|
|
|
|
|
zsOperationWarnresult.setGoodsSkuUrl(curUrl); |
|
|
zsOperationWarnresult.setInitPrice(zsOperationGoods.getInitPrice()); |
|
|
zsOperationWarnresult.setInitPrice(zsOperationGoods.getInitPrice()); |
|
|
zsOperationWarnresult.setCurPrice(null); |
|
|
zsOperationWarnresult.setCurPrice(null); |
|
|
zsOperationWarnresult.setPriceChangeRatio(""); |
|
|
zsOperationWarnresult.setPriceChangeRatio(""); |
|
|
|
|
|
|
|
|
// 判断当前时间是否在 [9:00, 18:00] 区间(包含边界) |
|
|
// 判断当前时间是否在 [9:00, 18:00] 区间(包含边界) |
|
|
return !currentTime.isBefore(startTime) && !currentTime.isAfter(endTime); |
|
|
return !currentTime.isBefore(startTime) && !currentTime.isAfter(endTime); |
|
|
} |
|
|
} |
|
|
|
|
|
public boolean checkIsExistsWarnResult(String url,BigDecimal newPrice) { |
|
|
|
|
|
boolean isExists = false; |
|
|
|
|
|
QueryWrapper<ZsOperationWarnresult> queryWrapper = new QueryWrapper<>(); |
|
|
|
|
|
queryWrapper.eq("goods_sku_url",url); |
|
|
|
|
|
queryWrapper.eq("status",0); |
|
|
|
|
|
queryWrapper.orderByDesc("warn_time"); |
|
|
|
|
|
List<ZsOperationWarnresult> list = zsOperationWarnresultMapper.selectList(queryWrapper); |
|
|
|
|
|
if (list!=null&&list.size()>0) { |
|
|
|
|
|
ZsOperationWarnresult zsOperationWarnresult = list.get(0); |
|
|
|
|
|
BigDecimal curPrice = zsOperationWarnresult.getCurPrice(); |
|
|
|
|
|
if (curPrice!=null&&newPrice.compareTo(curPrice)==0) { |
|
|
|
|
|
isExists = true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return isExists; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |