Commit 331f1777 by 田超

Merge branch 'fixbug/1004273' into 'master'

bug [none] fix100273

See merge request rays/pcloud-book!1196
parents 28f4e672 db6f3b81
...@@ -20,6 +20,7 @@ import com.pcloud.common.utils.NumberUtil; ...@@ -20,6 +20,7 @@ import com.pcloud.common.utils.NumberUtil;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils; import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.json.JSONUtils; import com.pcloud.common.utils.json.JSONUtils;
import com.pcloud.readercenter.common.enums.YesOrNoNumEnum; import com.pcloud.readercenter.common.enums.YesOrNoNumEnum;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.collections4.SetUtils; import org.apache.commons.collections4.SetUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -29,8 +30,10 @@ import org.springframework.stereotype.Service; ...@@ -29,8 +30,10 @@ import org.springframework.stereotype.Service;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
...@@ -128,7 +131,7 @@ public class ReadBookRecordBizImpl implements ReadBookRecordBiz { ...@@ -128,7 +131,7 @@ public class ReadBookRecordBizImpl implements ReadBookRecordBiz {
readBookRecord.setLeaveType(YesOrNoNumEnum.NO.getValue()); readBookRecord.setLeaveType(YesOrNoNumEnum.NO.getValue());
readBookRecordDao.insert(readBookRecord); readBookRecordDao.insert(readBookRecord);
id = readBookRecord.getId(); id = readBookRecord.getId();
JedisClusterUtils.sadd(redisKey4Reader, JSONUtils.toJsonString(readBookRecord)); JedisClusterUtils.hset(redisKey4Reader, id.toString(), JSONUtils.toJsonString(readBookRecord));
JedisClusterUtils.expire(redisKey4Reader, BookConstant.BOOK_CACHE_SECOUND); JedisClusterUtils.expire(redisKey4Reader, BookConstant.BOOK_CACHE_SECOUND);
} else if (Objects.equals(YesOrNoNumEnum.NO.getValue(), readBookRecordDTO.getRecordType())) { } else if (Objects.equals(YesOrNoNumEnum.NO.getValue(), readBookRecordDTO.getRecordType())) {
ReadBookRecord readBookRecord = readBookRecordDao.getById(id); ReadBookRecord readBookRecord = readBookRecordDao.getById(id);
...@@ -137,8 +140,7 @@ public class ReadBookRecordBizImpl implements ReadBookRecordBiz { ...@@ -137,8 +140,7 @@ public class ReadBookRecordBizImpl implements ReadBookRecordBiz {
readBookRecord.setUpdateTime(null); readBookRecord.setUpdateTime(null);
JedisClusterUtils.srem(redisKey4Set, readBookRecordDTO.getWechatUserId().toString()); JedisClusterUtils.srem(redisKey4Set, readBookRecordDTO.getWechatUserId().toString());
JedisClusterUtils.expire(redisKey4Set, BookConstant.BOOK_CACHE_SECOUND); JedisClusterUtils.expire(redisKey4Set, BookConstant.BOOK_CACHE_SECOUND);
String s = JSONUtils.toJsonString(readBookRecord); JedisClusterUtils.hdel(redisKey4Reader, id.toString());
JedisClusterUtils.srem(redisKey4Reader, JSONUtils.toJsonString(readBookRecord));
JedisClusterUtils.expire(redisKey4Reader, BookConstant.BOOK_CACHE_SECOUND); JedisClusterUtils.expire(redisKey4Reader, BookConstant.BOOK_CACHE_SECOUND);
//id不为空 更新数据库时间 并从redis中删除 //id不为空 更新数据库时间 并从redis中删除
Date endTime = new Date(); Date endTime = new Date();
...@@ -151,11 +153,12 @@ public class ReadBookRecordBizImpl implements ReadBookRecordBiz { ...@@ -151,11 +153,12 @@ public class ReadBookRecordBizImpl implements ReadBookRecordBiz {
@Override @Override
public void autoDeleteReadBook() { public void autoDeleteReadBook() {
Set<String> smembers = JedisClusterUtils.smembers(redisKey4Reader); Map<String, String> userMap = JedisClusterUtils.hgetAll(redisKey4Reader);
if (null == smembers || smembers.size() == 0) { if (MapUtils.isEmpty(userMap)) {
LOGGER.info("autoDeleteReadBook, 缓存为空,返回"); LOGGER.info("autoDeleteReadBook, 缓存为空,返回");
return; return;
} }
Collection<String> smembers = userMap.values();
List<ReadBookRecord> readBookRecords = new ArrayList<>(); List<ReadBookRecord> readBookRecords = new ArrayList<>();
List<ReadBookRecord> readBookRecords4Expire = new ArrayList<>(); List<ReadBookRecord> readBookRecords4Expire = new ArrayList<>();
smembers.stream().forEach(e ->{ smembers.stream().forEach(e ->{
...@@ -169,8 +172,8 @@ public class ReadBookRecordBizImpl implements ReadBookRecordBiz { ...@@ -169,8 +172,8 @@ public class ReadBookRecordBizImpl implements ReadBookRecordBiz {
Date startTime = e.getStartTime(); Date startTime = e.getStartTime();
long between = DateUtil.between(startTime, new Date(), SECOND); long between = DateUtil.between(startTime, new Date(), SECOND);
//查找开始时间与现在时间超过1分钟的数据 //查找开始时间与现在时间超过1分钟的数据
if (between > BOOK_CACHE_MINUTE) { if (between > BOOK_CACHE_MINUTE && null != e.getId()) {
JedisClusterUtils.srem(redisKey4Reader, JSONUtils.toJsonString(e)); JedisClusterUtils.hdel(redisKey4Reader, e.getId().toString());
e.setEndTime(DateUtil.offsetMinute(e.getStartTime(), 1)); e.setEndTime(DateUtil.offsetMinute(e.getStartTime(), 1));
e.setRecordTime(Long.valueOf(BOOK_CACHE_MINUTE)); e.setRecordTime(Long.valueOf(BOOK_CACHE_MINUTE));
e.setLeaveType(YesOrNoNumEnum.YES.getValue()); e.setLeaveType(YesOrNoNumEnum.YES.getValue());
......
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