更新0.0摄氏度推送限制
This commit is contained in:
parent
25f59c124b
commit
44b3eb14f1
6
pom.xml
6
pom.xml
|
|
@ -239,6 +239,12 @@
|
||||||
<version>1.0.6.0</version>
|
<version>1.0.6.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.guava</groupId>
|
||||||
|
<artifactId>guava</artifactId>
|
||||||
|
<version>30.1.1-jre</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,9 @@ import com.getui.push.v2.sdk.dto.req.message.android.AndroidDTO;
|
||||||
import com.getui.push.v2.sdk.dto.req.message.android.GTNotification;
|
import com.getui.push.v2.sdk.dto.req.message.android.GTNotification;
|
||||||
import com.getui.push.v2.sdk.dto.req.message.android.ThirdNotification;
|
import com.getui.push.v2.sdk.dto.req.message.android.ThirdNotification;
|
||||||
import com.getui.push.v2.sdk.dto.req.message.android.Ups;
|
import com.getui.push.v2.sdk.dto.req.message.android.Ups;
|
||||||
|
import com.google.common.cache.CacheBuilder;
|
||||||
|
import com.google.common.cache.CacheLoader;
|
||||||
|
import com.google.common.cache.LoadingCache;
|
||||||
import com.ifish7.mq.business.user.entity.TblAliyunDeviceInfo;
|
import com.ifish7.mq.business.user.entity.TblAliyunDeviceInfo;
|
||||||
import com.ifish7.mq.business.user.entity.TblPushList;
|
import com.ifish7.mq.business.user.entity.TblPushList;
|
||||||
import com.ifish7.mq.business.user.service.ITblAliyunDeviceInfoService;
|
import com.ifish7.mq.business.user.service.ITblAliyunDeviceInfoService;
|
||||||
|
|
@ -34,6 +37,8 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: yan.y
|
* @author: yan.y
|
||||||
|
|
@ -82,8 +87,33 @@ public class AliyunPushApi {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ITblAliyunDeviceInfoService aliyunDeviceInfoService;
|
private ITblAliyunDeviceInfoService aliyunDeviceInfoService;
|
||||||
|
|
||||||
|
private static LoadingCache<String, Long> limitPushCaches = CacheBuilder.newBuilder()
|
||||||
|
.maximumSize(100000)
|
||||||
|
.expireAfterWrite(24, TimeUnit.HOURS)
|
||||||
|
.build(new CacheLoader<String, Long>() {
|
||||||
|
@Override
|
||||||
|
public Long load(String s) {
|
||||||
|
return 0L;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
public void advancedPush(TblPushList pushList) {
|
public void advancedPush(TblPushList pushList) {
|
||||||
|
|
||||||
|
//温度告警 0.0° 一天内只告警一次
|
||||||
|
if (pushList.getPushType().equals("wendu_warn") && pushList.getPushContext().indexOf("达到0.0") > 0) {
|
||||||
|
try {
|
||||||
|
Long l = limitPushCaches.get(pushList.getDeviceId().toString());
|
||||||
|
if (l != null && l > 0) {
|
||||||
|
log.info("24小时内已推送当前消息忽略 : " + JSONObject.toJSONString(pushList));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("check error", e);
|
||||||
|
}
|
||||||
|
limitPushCaches.put(pushList.getDeviceId().toString(), System.currentTimeMillis());
|
||||||
|
}
|
||||||
|
|
||||||
//根据Target来设定,多个值使用逗号分隔
|
//根据Target来设定,多个值使用逗号分隔
|
||||||
//此处应该查询出用户所对应的deviceId ★★★★★
|
//此处应该查询出用户所对应的deviceId ★★★★★
|
||||||
// String deviceIds = getUserDevices(String.valueOf(pushList.getUserId()));
|
// String deviceIds = getUserDevices(String.valueOf(pushList.getUserId()));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue