Ver código fonte

1.处理预警结果时同步更新商品基准价格

2.修改预警结果生成的逻辑
wq_dev
wangqiang 1 mês atrás
pai
commit
39116b9891

+ 34
- 10
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ZsOperationWarnresultServiceImpl.java Ver arquivo

import com.ruoyi.system.mapper.ZsOperationSendconfigMapper; import com.ruoyi.system.mapper.ZsOperationSendconfigMapper;
import com.ruoyi.system.mapper.ZsOperationWarnconfigMapper; import com.ruoyi.system.mapper.ZsOperationWarnconfigMapper;
import com.ruoyi.system.service.ISysDictDataService; import com.ruoyi.system.service.ISysDictDataService;
import com.ruoyi.system.task.MonitorTaskScheduler;
import com.ruoyi.system.utils.DateUtil; import com.ruoyi.system.utils.DateUtil;
import com.ruoyi.system.utils.EmailUtils; import com.ruoyi.system.utils.EmailUtils;
import lombok.Data; import lombok.Data;


private final ZsOperationWarnresultMapper baseMapper; private final ZsOperationWarnresultMapper baseMapper;
@Autowired @Autowired
private MonitorTaskScheduler monitorTaskScheduler;
@Autowired
private ZsOperationWarnconfigMapper zsOperationWarnconfigMapper; private ZsOperationWarnconfigMapper zsOperationWarnconfigMapper;
@Autowired @Autowired
private ZsOperationGoodsMapper zsOperationGoodsMapper; private ZsOperationGoodsMapper zsOperationGoodsMapper;
*/ */
@Override @Override
public Boolean updateByBo(ZsOperationWarnresultBo bo) { public Boolean updateByBo(ZsOperationWarnresultBo bo) {
ZsOperationWarnresult update = BeanUtil.toBean(bo, ZsOperationWarnresult.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
//已处理 修改商品基准价格为当前最新价格
if(bo.getStatus()==1) {
String url = bo.getGoodsSkuUrl();
ZsOperationWarnresultVo zsOperationWarnresultVo = baseMapper.selectVoById(bo.getId());
UpdateWrapper<ZsOperationGoods> updateWrapper =new UpdateWrapper();
updateWrapper.set("init_price",zsOperationWarnresultVo.getCurPrice());
updateWrapper.eq("goods_sku_url",url);
//updateWrapper.eq("is_disabled",1);
int i = zsOperationGoodsMapper.update(null,updateWrapper);
if (i>=1) {
ZsOperationWarnresult update = BeanUtil.toBean(bo, ZsOperationWarnresult.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
}
return false;

} }


/** /**
if (newPrice.compareTo(BigDecimal.ZERO) > 0) { if (newPrice.compareTo(BigDecimal.ZERO) > 0) {
//判断这个商品最新的价格是否已经存在预警结果表了,如果在不发送消息和生成结果 //判断这个商品最新的价格是否已经存在预警结果表了,如果在不发送消息和生成结果
if (checkIsExistsWarnResult(curUrl,newPrice)) { if (checkIsExistsWarnResult(curUrl,newPrice)) {
message = "已经存在预警结果表,并且价格没有再次变化,不记录 url=:"+curUrl;
message = "已经存在预警结果表被处理,并且价格没有再次变化,不记录 url=:"+curUrl;
log.info(message); log.info(message);
} else { } else {
//获取基准价格 //获取基准价格
zsOperationWarnresult.setStatus(0); zsOperationWarnresult.setStatus(0);
zsOperationWarnresult.setPlatform(zsOperationGoods.getPlatform()); zsOperationWarnresult.setPlatform(zsOperationGoods.getPlatform());
zsOperationWarnresult.setCompareStatus(1); zsOperationWarnresult.setCompareStatus(1);
zsOperationWarnresultMapper.insert(zsOperationWarnresult);
QueryWrapper<ZsOperationWarnresult> queryWrapper = new QueryWrapper();
queryWrapper.eq("goods_sku_url",curUrl);
queryWrapper.eq("status",0);//未处理
queryWrapper.orderByDesc("warn_time");
List<ZsOperationWarnresult> list = zsOperationWarnresultMapper.selectList(queryWrapper);
if (list!=null&&list.size()>0) {
zsOperationWarnresult.setId(list.get(0).getId());
//更新
zsOperationWarnresultMapper.update(zsOperationWarnresult,
new UpdateWrapper<ZsOperationWarnresult>().eq("id",zsOperationWarnresult.getId()));
} else {
//插入
zsOperationWarnresultMapper.insert(zsOperationWarnresult);
}


//6.发送邮件 //6.发送邮件
QueryWrapper<ZsOperationSendconfig> sendWrapper= new QueryWrapper<>(); QueryWrapper<ZsOperationSendconfig> sendWrapper= new QueryWrapper<>();
return reMap; return reMap;
} }


//查询是否存在已处理的数据
public boolean checkIsExistsWarnResult(String url,BigDecimal newPrice) { public boolean checkIsExistsWarnResult(String url,BigDecimal newPrice) {
boolean isExists = false; boolean isExists = false;
QueryWrapper<ZsOperationWarnresult> queryWrapper = new QueryWrapper<>(); QueryWrapper<ZsOperationWarnresult> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("goods_sku_url",url); queryWrapper.eq("goods_sku_url",url);
queryWrapper.eq("status",0);
queryWrapper.eq("status",1);//已处理
queryWrapper.orderByDesc("warn_time"); queryWrapper.orderByDesc("warn_time");
List<ZsOperationWarnresult> list = zsOperationWarnresultMapper.selectList(queryWrapper); List<ZsOperationWarnresult> list = zsOperationWarnresultMapper.selectList(queryWrapper);
if (list!=null&&list.size()>0) { if (list!=null&&list.size()>0) {

Carregando…
Cancelar
Salvar