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

Commit 1f3b0e32 authored by wangyifan's avatar wangyifan

缓存改造- adam:info:enters 增加缓存过期时间

parent ad5c6c33
...@@ -16,4 +16,10 @@ public class RedisKeyExpireConst { ...@@ -16,4 +16,10 @@ public class RedisKeyExpireConst {
// kylin:order:list:userId 过期时间为10天 // kylin:order:list:userId 过期时间为10天
public static final long KYLIN_ORDER_LIST_USERID_EXPIRE = 10 * 24 * 60 * 60; public static final long KYLIN_ORDER_LIST_USERID_EXPIRE = 10 * 24 * 60 * 60;
// adam:info:enters 过期时间为30天
public static final long ADAM_INFO_ENTERS_EXPIRE = 30 * 24 * 60 * 60;
// sweet:integralActivity:DrawInfo:drawId 过期时间为10天
public static final long SWEET_INTEGRALACTIVITY_DRAWINFO_DRAWID_EXPIRE = 10 * 24 * 60 * 60;
} }
package com.liquidnet.service.adam.service; package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException; import com.liquidnet.common.exception.LiquidnetServiceException;
...@@ -9,7 +11,9 @@ import com.liquidnet.commons.lang.util.SensitizeUtil; ...@@ -9,7 +11,9 @@ import com.liquidnet.commons.lang.util.SensitizeUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamUserInfoDto; import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.dto.vo.*; import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.entity.AdamUserMember; import com.liquidnet.service.adam.entity.AdamUserMember;
import com.liquidnet.service.adam.mapper.AdamEntersMapper;
import com.liquidnet.service.adam.mapper.AdamUserMapper; import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.adam.mapper.AdamUserMemberMapper; import com.liquidnet.service.adam.mapper.AdamUserMemberMapper;
import com.liquidnet.service.adam.util.ObjectUtil; import com.liquidnet.service.adam.util.ObjectUtil;
...@@ -43,6 +47,8 @@ public class AdamRdmService { ...@@ -43,6 +47,8 @@ public class AdamRdmService {
AdamUserMapper adamUserMapper; AdamUserMapper adamUserMapper;
@Autowired @Autowired
AdamUserMemberMapper adamUserMemberMapper; AdamUserMemberMapper adamUserMemberMapper;
@Autowired
AdamEntersMapper adamEntersMapper;
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | Switch config */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | Switch config */
...@@ -452,13 +458,32 @@ public class AdamRdmService { ...@@ -452,13 +458,32 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <UID, List<AdamEntersVo>> */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <UID, List<AdamEntersVo>> */
public boolean setEntersVoByUid(String uid, List<AdamEntersVo> list) { public boolean setEntersVoByUid(String uid, List<AdamEntersVo> list) {
return redisUtil.set(AdamRedisConst.INFO_ENTERS.concat(uid), list); return redisUtil.set(AdamRedisConst.INFO_ENTERS.concat(uid), list, RedisKeyExpireConst.ADAM_INFO_ENTERS_EXPIRE);
} }
public List<AdamEntersVo> getEntersVoByUid(String uid) { public List<AdamEntersVo> getEntersVoByUid(String uid) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid); String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
ArrayList<AdamEntersVo> vos = (ArrayList<AdamEntersVo>) redisUtil.get(rk); ArrayList<AdamEntersVo> vos = (ArrayList<AdamEntersVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(vos)) {
log.info("not find value in redis cache, key: {}", rk);
// 从数据库查询入场人信息VO
LambdaQueryWrapper<AdamEnters> lambda = new QueryWrapper<AdamEnters>().lambda();
lambda.eq(AdamEnters::getUid, uid);
lambda.eq(AdamEnters::getState, 1);
lambda.orderByDesc(AdamEnters::getCreatedAt);
List<AdamEnters> adamEnters = adamEntersMapper.selectList(lambda);
if (!CollectionUtils.isEmpty(adamEnters)) {
log.info("query value in MySQL, size: {}", adamEnters.size());
ArrayList<AdamEntersVo> voList = new ArrayList<>(adamEnters.size());
adamEnters.forEach(e -> {
voList.add(AdamEntersVo.getNew().copy(e));
});
vos = voList;
boolean setResult = setEntersVoByUid(uid, vos);
log.info("save value to redis cache, key: {}, result: {}", rk, setResult);
}
}
// if (CollectionUtils.isEmpty(vos)) { // if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
// vos = mongoTemplate.find( // vos = mongoTemplate.find(
...@@ -478,7 +503,7 @@ public class AdamRdmService { ...@@ -478,7 +503,7 @@ public class AdamRdmService {
vos = ObjectUtil.getAdamEntersVoArrayList(); vos = ObjectUtil.getAdamEntersVoArrayList();
} }
vos.add(0, vo); vos.add(0, vo);
return redisUtil.set(AdamRedisConst.INFO_ENTERS + uid, vos); return redisUtil.set(AdamRedisConst.INFO_ENTERS + uid, vos, RedisKeyExpireConst.ADAM_INFO_ENTERS_EXPIRE);
} }
public boolean rmvEntersVoByUid(String uid, List<AdamEntersVo> vos, String entersId) { public boolean rmvEntersVoByUid(String uid, List<AdamEntersVo> vos, String entersId) {
...@@ -486,7 +511,7 @@ public class AdamRdmService { ...@@ -486,7 +511,7 @@ public class AdamRdmService {
return true; return true;
} }
vos.removeIf(r -> r.getEntersId().equals(entersId)); vos.removeIf(r -> r.getEntersId().equals(entersId));
return redisUtil.set(AdamRedisConst.INFO_ENTERS + uid, vos); return redisUtil.set(AdamRedisConst.INFO_ENTERS + uid, vos, RedisKeyExpireConst.ADAM_INFO_ENTERS_EXPIRE);
} }
public AdamEntersVo getEntersVoByUidEntersId(List<AdamEntersVo> vos, String entersId) { public AdamEntersVo getEntersVoByUidEntersId(List<AdamEntersVo> vos, String entersId) {
......
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