记得上下班打卡 | git大法好,push需谨慎

Commit e97d859e authored by 姜秀龙's avatar 姜秀龙

编辑快递没变化不重新订阅

parent 590be50d
...@@ -918,8 +918,25 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService { ...@@ -918,8 +918,25 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
if (orderVo == null || !orderVo.getStoreId().equals(storeInfoVo.getStoreId())) { if (orderVo == null || !orderVo.getStoreId().equals(storeInfoVo.getStoreId())) {
return ResponseDto.failure("无法查看"); return ResponseDto.failure("无法查看");
} }
GoblinMailVo origin = null;
for (GoblinMailVo m : redisUtils.getGoblinMail(orderId)) {
if (mailId.equals(m.getMailId())) {
origin = m;
break;
}
}
if (origin == null) {
return ResponseDto.failure("快递信息不存在");
}
String newMailNo = mailNo == null ? "" : mailNo.trim();
String newCode = StringUtils.isNotBlank(logisticsCode) ? logisticsCode.trim().toLowerCase() : StringUtils.defaultString(origin.getLogisticsCode());
String oldMailNo = StringUtils.defaultString(origin.getMailNo());
String oldCode = StringUtils.defaultString(origin.getLogisticsCode());
boolean mailChanged = !oldMailNo.equals(newMailNo)
|| !oldCode.equalsIgnoreCase(StringUtils.defaultString(newCode));
GoblinMailVo vo = GoblinMailVo.getNew(); GoblinMailVo vo = GoblinMailVo.getNew();
vo.setMailNo(mailNo); vo.setMailNo(newMailNo);
vo.setMailId(mailId); vo.setMailId(mailId);
vo.setOrderId(orderId); vo.setOrderId(orderId);
if (StringUtils.isNotBlank(logisticsCompany)) { if (StringUtils.isNotBlank(logisticsCompany)) {
...@@ -930,7 +947,6 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService { ...@@ -930,7 +947,6 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
} }
redisUtils.changeGoblinMail(orderId, vo); redisUtils.changeGoblinMail(orderId, vo);
mongoUtils.updateGoblinMailVo(mailId, vo); mongoUtils.updateGoblinMailVo(mailId, vo);
//添加日志
GoblinMailVo cached = null; GoblinMailVo cached = null;
for (GoblinMailVo m : redisUtils.getGoblinMail(orderId)) { for (GoblinMailVo m : redisUtils.getGoblinMail(orderId)) {
if (mailId.equals(m.getMailId())) { if (mailId.equals(m.getMailId())) {
...@@ -947,8 +963,8 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService { ...@@ -947,8 +963,8 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
LocalDateTime.now(), vo.getMailId() LocalDateTime.now(), vo.getMailId()
) )
); );
if (cached != null) { if (mailChanged && cached != null) {
// 改单号后清掉旧轨迹,避免旧订阅推送与新单号互相覆盖;旧推送由回调 mailNo 校验丢弃 // 单号或公司编码变了才清缓存并重新订阅,避免无变化重复占用订阅次数
redisUtils.delMailTrackCache(mailId); redisUtils.delMailTrackCache(mailId);
goblinMailTrackService.initAndSubscribeAsync(orderId, mailId, cached.getMailNo(), goblinMailTrackService.initAndSubscribeAsync(orderId, mailId, cached.getMailNo(),
cached.getLogisticsCode(), cached.getLogisticsCompany()); cached.getLogisticsCode(), cached.getLogisticsCompany());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment