From 5c349a642c534a93b4e48e4bddffbfd2ec5182b8 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 17 Jan 2024 13:55:46 +0800 Subject: [PATCH] fix --- .../service/impl/WxMsgCallbackServiceImpl.java | 14 ++++++++++++++ .../src/main/java/com/iformall/utils/Constant.java | 2 ++ 2 files changed, 16 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgCallbackServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgCallbackServiceImpl.java index 11f03a918..2d002263e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgCallbackServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgCallbackServiceImpl.java @@ -12,13 +12,17 @@ import com.iformall.enums.EnumMsgSendStatus; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.WxMsgCallbackService; +import com.iformall.utils.Constant; import com.iformall.utils.HMACSHA256; +import com.iformall.utils.RedisCacheUtils; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.util.*; @@ -47,6 +51,10 @@ public class WxMsgCallbackServiceImpl implements WxMsgCallbackService { @Autowired WxMallMapper wxMallMapper; + + @Autowired + @Qualifier("objectCommonRedisTemplate") + RedisTemplate redisTemplate; @Override public PageInfo listAsPage(WxMsgCallback record, Integer pageIndex, Integer pageSize) { @@ -222,6 +230,11 @@ public class WxMsgCallbackServiceImpl implements WxMsgCallbackService { wxMsgCallbackMapper.updateByBatchNo(wxMsgCallback); //失败回滚 回滚数量 if (!"true".equalsIgnoreCase(success)) { + String redisKey = Constant.cache_aliyun_msg+wxMsgCallback.getBatchNo()+":"+wxMsgCallback.getPhone(); + Integer msgCached = RedisCacheUtils.getCacheInteger(redisTemplate, success); + if (1== msgCached) { + return; + } WxMsgCallback wxMsgCallbackq = new WxMsgCallback(); wxMsgCallbackq.setBatchNo(wxMsgCallback.getBatchNo()); wxMsgCallbackq.setPhone(wxMsgCallback.getPhone()); @@ -237,6 +250,7 @@ public class WxMsgCallbackServiceImpl implements WxMsgCallbackService { WxMsgConfig mconfig = wxMsgConfigs.get(0); mconfig.setRemains(1L); wxMsgConfigMapper.addRemains(mconfig); + RedisCacheUtils.cache(redisTemplate, redisKey, 1, 3600); } } } diff --git a/mallinkService/src/main/java/com/iformall/utils/Constant.java b/mallinkService/src/main/java/com/iformall/utils/Constant.java index 3fa9573d3..304f6e6fd 100644 --- a/mallinkService/src/main/java/com/iformall/utils/Constant.java +++ b/mallinkService/src/main/java/com/iformall/utils/Constant.java @@ -132,5 +132,7 @@ public class Constant { public static final Integer default_business = 6; public static final String default_business_name = "其他"; public static final Integer dy_business = 2; + + public static final String cache_aliyun_msg ="aliyunMsg:"; }