temp
This commit is contained in:
parent
aa679e48a9
commit
bab224f386
@ -28,7 +28,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 6380:6379
|
- 6380:6379
|
||||||
bookmark-es:
|
bookmark-es:
|
||||||
image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
|
image: elasticsearch:7.2.0
|
||||||
container_name: bookmark-es
|
container_name: bookmark-es
|
||||||
volumes:
|
volumes:
|
||||||
- /etc/localtime:/etc/localtime
|
- /etc/localtime:/etc/localtime
|
||||||
|
@ -4,10 +4,13 @@ import com.fanxb.bookmark.business.bookmark.dao.BookmarkDao;
|
|||||||
import com.fanxb.bookmark.business.bookmark.entity.BookmarkEs;
|
import com.fanxb.bookmark.business.bookmark.entity.BookmarkEs;
|
||||||
import com.fanxb.bookmark.business.bookmark.entity.MoveNodeBody;
|
import com.fanxb.bookmark.business.bookmark.entity.MoveNodeBody;
|
||||||
import com.fanxb.bookmark.common.constant.EsConstant;
|
import com.fanxb.bookmark.common.constant.EsConstant;
|
||||||
|
import com.fanxb.bookmark.common.constant.RedisConstant;
|
||||||
import com.fanxb.bookmark.common.entity.Bookmark;
|
import com.fanxb.bookmark.common.entity.Bookmark;
|
||||||
import com.fanxb.bookmark.common.entity.EsEntity;
|
import com.fanxb.bookmark.common.entity.EsEntity;
|
||||||
|
import com.fanxb.bookmark.common.entity.redis.UserBookmarkUpdate;
|
||||||
import com.fanxb.bookmark.common.exception.FormDataException;
|
import com.fanxb.bookmark.common.exception.FormDataException;
|
||||||
import com.fanxb.bookmark.common.util.EsUtil;
|
import com.fanxb.bookmark.common.util.EsUtil;
|
||||||
|
import com.fanxb.bookmark.common.util.RedisUtil;
|
||||||
import com.fanxb.bookmark.common.util.UserContextHolder;
|
import com.fanxb.bookmark.common.util.UserContextHolder;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||||
@ -20,6 +23,7 @@ import org.jsoup.nodes.Element;
|
|||||||
import org.jsoup.select.Elements;
|
import org.jsoup.select.Elements;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.dao.DuplicateKeyException;
|
import org.springframework.dao.DuplicateKeyException;
|
||||||
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@ -45,6 +49,8 @@ public class BookmarkService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BookmarkDao bookmarkDao;
|
private BookmarkDao bookmarkDao;
|
||||||
|
|
||||||
|
private StringRedisTemplate redisTemplate;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EsUtil esUtil;
|
private EsUtil esUtil;
|
||||||
|
|
||||||
@ -79,6 +85,7 @@ public class BookmarkService {
|
|||||||
dealBookmark(userId, elements.get(i), path, sortBase + count + i - 1, insertEsList);
|
dealBookmark(userId, elements.get(i), path, sortBase + count + i - 1, insertEsList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
redisTemplate.opsForList().leftPush(RedisConstant.BOOKMARK_UPDATE_TIME, new UserBookmarkUpdate(userId, System.currentTimeMillis()).toString());
|
||||||
esUtil.insertBatch(EsConstant.BOOKMARK_INDEX, insertEsList);
|
esUtil.insertBatch(EsConstant.BOOKMARK_INDEX, insertEsList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,6 +202,7 @@ public class BookmarkService {
|
|||||||
bookmarkDao.deleteUserBookmark(userId, bookmarkIdList);
|
bookmarkDao.deleteUserBookmark(userId, bookmarkIdList);
|
||||||
}
|
}
|
||||||
set.addAll(bookmarkIdList);
|
set.addAll(bookmarkIdList);
|
||||||
|
redisTemplate.opsForList().leftPush(RedisConstant.BOOKMARK_UPDATE_TIME, new UserBookmarkUpdate(userId, System.currentTimeMillis()).toString());
|
||||||
//es 中批量删除
|
//es 中批量删除
|
||||||
esUtil.deleteBatch(EsConstant.BOOKMARK_INDEX, set);
|
esUtil.deleteBatch(EsConstant.BOOKMARK_INDEX, set);
|
||||||
}
|
}
|
||||||
@ -225,6 +233,7 @@ public class BookmarkService {
|
|||||||
esUtil.insertOrUpdateOne(EsConstant.BOOKMARK_INDEX,
|
esUtil.insertOrUpdateOne(EsConstant.BOOKMARK_INDEX,
|
||||||
new EsEntity<>(bookmark.getBookmarkId().toString(), new BookmarkEs(bookmark)));
|
new EsEntity<>(bookmark.getBookmarkId().toString(), new BookmarkEs(bookmark)));
|
||||||
}
|
}
|
||||||
|
redisTemplate.opsForList().leftPush(RedisConstant.BOOKMARK_UPDATE_TIME, new UserBookmarkUpdate(userId, System.currentTimeMillis()).toString());
|
||||||
return bookmark;
|
return bookmark;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -244,6 +253,7 @@ public class BookmarkService {
|
|||||||
esUtil.insertOrUpdateOne(EsConstant.BOOKMARK_INDEX,
|
esUtil.insertOrUpdateOne(EsConstant.BOOKMARK_INDEX,
|
||||||
new EsEntity<>(bookmark.getBookmarkId().toString(), new BookmarkEs(bookmark)));
|
new EsEntity<>(bookmark.getBookmarkId().toString(), new BookmarkEs(bookmark)));
|
||||||
}
|
}
|
||||||
|
redisTemplate.opsForList().leftPush(RedisConstant.BOOKMARK_UPDATE_TIME, new UserBookmarkUpdate(userId, System.currentTimeMillis()).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -263,6 +273,7 @@ public class BookmarkService {
|
|||||||
}
|
}
|
||||||
//更新被移动节点的path和sort
|
//更新被移动节点的path和sort
|
||||||
bookmarkDao.updatePathAndSort(userId, body.getBookmarkId(), body.getTargetPath(), body.getSort());
|
bookmarkDao.updatePathAndSort(userId, body.getBookmarkId(), body.getTargetPath(), body.getSort());
|
||||||
|
redisTemplate.opsForList().leftPush(RedisConstant.BOOKMARK_UPDATE_TIME, new UserBookmarkUpdate(userId, System.currentTimeMillis()).toString());
|
||||||
log.info("{},从{}移动到{},sort:{}", userId, body.getSourcePath(), body.getTargetPath(), body.getSort());
|
log.info("{},从{}移动到{},sort:{}", userId, body.getSourcePath(), body.getTargetPath(), body.getSort());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,9 +11,11 @@ import com.fanxb.bookmark.common.exception.FormDataException;
|
|||||||
import com.fanxb.bookmark.common.util.*;
|
import com.fanxb.bookmark.common.util.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -98,4 +100,9 @@ public class BaseInfoService {
|
|||||||
}
|
}
|
||||||
userDao.updateEmailByUserId(userId);
|
userDao.updateEmailByUserId(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void updateBookmarkUpdateTime(){
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,4 +10,9 @@ public class RedisConstant {
|
|||||||
public static String getPasswordCheckKey(int userId, String actionId) {
|
public static String getPasswordCheckKey(int userId, String actionId) {
|
||||||
return "password_check_key_" + userId + "_" + actionId;
|
return "password_check_key_" + userId + "_" + actionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 某用户书签数据更新时间,该队列左进右出
|
||||||
|
*/
|
||||||
|
public static final String BOOKMARK_UPDATE_TIME = "bookmark_update_time";
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.fanxb.bookmark.common.entity.redis;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class UserBookmarkUpdate {
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private int userId;
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private long updateTime;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return JSON.toJSONString(this);
|
||||||
|
}
|
||||||
|
}
|
@ -45,8 +45,7 @@ public class RedisUtil {
|
|||||||
* @param expireTime 过期时间,ms
|
* @param expireTime 过期时间,ms
|
||||||
*/
|
*/
|
||||||
public static void set(String key, String value, long expireTime) {
|
public static void set(String key, String value, long expireTime) {
|
||||||
redisTemplate.opsForValue().set(key, value);
|
redisTemplate.opsForValue().set(key, value, expireTime, TimeUnit.MILLISECONDS);
|
||||||
redisTemplate.expire(key, expireTime, TimeUnit.MILLISECONDS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE `psn`.`user`
|
||||||
|
ADD COLUMN `bookmarkChangeTime` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 AFTER `lastLoginTime`;
|
Loading…
x
Reference in New Issue
Block a user