一系列接口
This commit is contained in:
@@ -1,13 +1,326 @@
|
||||
package com.lovenav;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.lovenav.dao.UrlCateListDao;
|
||||
import com.lovenav.dao.UrlListDao;
|
||||
import com.lovenav.dao.UserDao;
|
||||
import com.lovenav.entity.UrlCateList;
|
||||
import com.lovenav.entity.UrlList;
|
||||
import com.lovenav.filter.SensitiveFilter;
|
||||
import com.lovenav.service.RedisService;
|
||||
import com.lovenav.service.UrlCateListService;
|
||||
import com.lovenav.service.UrlListService;
|
||||
import com.lovenav.service.UserService;
|
||||
import com.lovenav.vo.CateAndUrl;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@SpringBootTest
|
||||
class LoveNavApplicationTests {
|
||||
|
||||
@Autowired
|
||||
private RedisTemplate<String, Object> redisTemplate;
|
||||
@Autowired
|
||||
private StringRedisTemplate stringRedisTemplate;
|
||||
|
||||
@Autowired
|
||||
RedisService redisService ;
|
||||
|
||||
@Autowired
|
||||
UserService userService ;
|
||||
|
||||
@Autowired
|
||||
UrlCateListService urlCateListService;
|
||||
|
||||
@Autowired
|
||||
UrlListService urlListService;
|
||||
|
||||
@Autowired
|
||||
UserDao userDao;
|
||||
|
||||
@Autowired
|
||||
SensitiveFilter sensitiveFilter;
|
||||
@Autowired
|
||||
ObjectMapper objectMapper;
|
||||
@Autowired
|
||||
UrlCateListDao urlCateListDao;
|
||||
@Autowired
|
||||
UrlListDao urlListDao;
|
||||
|
||||
private static Logger logger = LoggerFactory.getLogger(LoveNavApplicationTests.class);
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
|
||||
String userId = "2";
|
||||
String searchKey="学习";
|
||||
String abc = "[91片先生, bilibli, 学习, 阁楼]";
|
||||
redisService.addSearchHistoryByUserId(userId, searchKey);
|
||||
redisService.incrementScoreByUserId(searchKey);
|
||||
redisService.incrementScore(searchKey);
|
||||
|
||||
// redisService.getSearchHistoryByUserId(userId);
|
||||
|
||||
|
||||
// System.out.println(redisService.getSearchHistoryByUserId(userId));
|
||||
System.out.println(redisService.getHotList("学"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testStringRedisTemplate() {
|
||||
|
||||
stringRedisTemplate.opsForValue().set("name", "zhenyu");
|
||||
//根据键值取出数据
|
||||
System.out.println(stringRedisTemplate.opsForValue().get("name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testServiceImpl() throws IOException {
|
||||
|
||||
String searchKey = "傻逼h";
|
||||
String placeholder = "***";
|
||||
//非法敏感词汇判断
|
||||
SensitiveFilter filter = SensitiveFilter.getInstance();
|
||||
String s = filter.replaceSensitiveWord(searchKey, 1, placeholder);
|
||||
System.out.println(s);
|
||||
int n = filter.CheckSensitiveWord(searchKey,0,2);
|
||||
//存在非法字符
|
||||
if(n > 0){
|
||||
logger.info("这个人输入了非法字符--> {},不知道他到底要查什么~ userid--> {}",searchKey,1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void disposeBookmark()
|
||||
{
|
||||
String data = "\n" +
|
||||
"[ {\n" +
|
||||
"\"name\" :\"书签栏\",\n" +
|
||||
"\"folder\":true,\n" +
|
||||
"\"children\": [ {\n" +
|
||||
"\"folder\":false,\n" +
|
||||
"\"name\" :\"后阁楼_此处安放你的文字\",\n" +
|
||||
"\"url\": \"http://lxqnsys.com/ hougelou/#/\"\n" +
|
||||
"}]\n" +
|
||||
"}, {\n" +
|
||||
"\"name\" :\"我是文件夹\",\n" +
|
||||
"\"folder\" : true,\n" +
|
||||
"\"children\" : [{\n" +
|
||||
"\"folder\":false,\n" +
|
||||
"\"name\" :\"理想P卫T_一个简单优雅的在线PPT\",\n" +
|
||||
"\"url\": \"http:// lxqnsys.com/ ppt/ \"\n" +
|
||||
"}]\n" +
|
||||
"\n" +
|
||||
"}]";
|
||||
String data1 = "[\n" +
|
||||
" {\n" +
|
||||
" \"name\":\"书签栏\",\n" +
|
||||
" \"folder\":true,\n" +
|
||||
" \"children\":[\n" +
|
||||
" {\n" +
|
||||
" \"folder\":false,\n" +
|
||||
" \"name\":\"后阁楼_此处安放你的文字\",\n" +
|
||||
" \"url\":\"http://lxqnsys.com/ hougelou/#/\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"folder\":true,\n" +
|
||||
" \"name\":\"seven\",\n" +
|
||||
" \"url\":\"http://lxqnsys.com/ hougelou/#/\",\n" +
|
||||
" \"children\":[]\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"name\":\"我是文件夹\",\n" +
|
||||
" \"folder\":true,\n" +
|
||||
" \"children\":[\n" +
|
||||
" {\n" +
|
||||
" \"folder\":false,\n" +
|
||||
" \"name\":\"理想P卫T_一个简单优雅的在线PPT\",\n" +
|
||||
" \"url\":\"http:// lxqnsys.com/ ppt/ \"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" }\n" +
|
||||
"]";
|
||||
String data2="[\n" +
|
||||
" {\n" +
|
||||
" \"name\":\"书签栏\",\n" +
|
||||
" \"folder\":true,\n" +
|
||||
" \"children\":[\n" +
|
||||
" {\n" +
|
||||
" \"folder\":false,\n" +
|
||||
" \"name\":\"后阁楼_此处安放你的文字\",\n" +
|
||||
" \"url\":\"http://lxqnsys.com/ hougelou/#/\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"folder\":true,\n" +
|
||||
" \"name\":\"seven\",\n" +
|
||||
" \"url\":\"http://lxqnsys.com/ hougelou/#/\",\n" +
|
||||
" \"children\":[]\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"name\":\"我是文件夹\",\n" +
|
||||
" \"folder\":true,\n" +
|
||||
" \"children\":[\n" +
|
||||
" {\n" +
|
||||
" \"folder\":false,\n" +
|
||||
" \"name\":\"理想P卫T_一个简单优雅的在线PPT\",\n" +
|
||||
" \"url\":\"http:// lxqnsys.com/ ppt/ \"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"folder\":true,\n" +
|
||||
" \"name\":\"eight\",\n" +
|
||||
" \"url\":\"http://lxqnsys.com/ hougelou/#/\",\n" +
|
||||
" \"children\":[]\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" }\n" +
|
||||
"]";
|
||||
String mes = "success";
|
||||
//先转换成ObjectMapper类型
|
||||
ObjectNode objectNode = objectMapper.createObjectNode();
|
||||
try {
|
||||
JsonNode rootNode = objectMapper.readTree(data2);
|
||||
disposeBookmarkFunction1(rootNode,"top","fadas");
|
||||
|
||||
|
||||
|
||||
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@Test
|
||||
public void disposeBookmarkFunction1(JsonNode rootNode,String parent,String email)
|
||||
{
|
||||
|
||||
for(int i=0;i<rootNode.size();i++)
|
||||
{
|
||||
JsonNode sonNode = rootNode.get(i);
|
||||
if(String.valueOf(sonNode.get("folder")).equals("true")){
|
||||
urlCateListService.selectAndInsertUrlCate(email,String.valueOf(sonNode.get("name")),parent);
|
||||
JsonNode children = sonNode.get("children");
|
||||
disposeBookmarkFunction1(children, String.valueOf(sonNode.get("name")),email);
|
||||
|
||||
}else{
|
||||
String name = String.valueOf(sonNode.get("name"));
|
||||
String url = String.valueOf(sonNode.get("url"));
|
||||
String adddata = String.valueOf(sonNode.get("adddata"));
|
||||
urlListService.selectCateAndInsertUrl(parent,name,"123",url,email);
|
||||
System.out.println(name +"---" + url + "---" + adddata + "---" + parent );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return ;
|
||||
}
|
||||
@Test
|
||||
public void disposeBookmarkToJson()
|
||||
{
|
||||
List<UrlCateList> urlCateLists = urlCateListDao.selectUrListByUserId(1);
|
||||
List<UrlList> urlLists = urlListDao.selectUrList();
|
||||
|
||||
List<CateAndUrl> cateAndUrlList = new ArrayList<>();
|
||||
|
||||
|
||||
|
||||
|
||||
//预处理为CateAndUrl对象
|
||||
for( int i = 0 ; i < urlCateLists.size() ; i++)
|
||||
{
|
||||
CateAndUrl cateAndUrl = new CateAndUrl();
|
||||
cateAndUrl.setFloder("true");
|
||||
cateAndUrl.setName(urlCateLists.get(i).getName());
|
||||
cateAndUrl.setParentId(urlCateLists.get(i).getRootCateId());
|
||||
cateAndUrl.setCateId(urlCateLists.get(i).getId());
|
||||
cateAndUrlList.add(cateAndUrl);
|
||||
|
||||
}
|
||||
for( int i = 0 ; i < urlLists.size() ; i++)
|
||||
{
|
||||
CateAndUrl cateAndUrl = new CateAndUrl();
|
||||
cateAndUrl.setFloder("false");
|
||||
cateAndUrl.setName(urlLists.get(i).getName());
|
||||
cateAndUrl.setParentId(urlLists.get(i).getCateId());
|
||||
cateAndUrl.setUrlId(urlLists.get(i).getId());
|
||||
cateAndUrlList.add(cateAndUrl);
|
||||
|
||||
}
|
||||
|
||||
List<CateAndUrl> parentsList = new ArrayList<>();
|
||||
//声明返回集合
|
||||
List<CateAndUrl> resultList = new ArrayList<>();
|
||||
//对全部数据进行遍历
|
||||
for (CateAndUrl disease : cateAndUrlList) {
|
||||
//判断是否是第一梯队,或者说是树的根节点,如果是根节点就加入到父类集合与返回集合
|
||||
if (disease.getParentId() == 0) {
|
||||
parentsList.add(disease);
|
||||
resultList.add(disease);
|
||||
} else {
|
||||
//对于不是第一梯队的数据进行遍历
|
||||
for (CateAndUrl parent : parentsList) {
|
||||
//对数据的pid与父类集合中的父节点进行配对,如果配对成功,就把数据加入到父节点中的子节点集合
|
||||
|
||||
|
||||
if (parent.getFloder().equals("true") ) {
|
||||
if( parent.getCateId() == disease.getParentId())
|
||||
{
|
||||
parent.getChildUC().add(disease);
|
||||
//当前数据有可能是别的数据的父节点,加到父类容器
|
||||
parentsList.add(disease);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
if (parent.getFloder().equals("false") ) {
|
||||
if(parent.getUrlId() == disease.getParentId())
|
||||
{
|
||||
parent.getChildUC().add(disease);
|
||||
//当前数据有可能是别的数据的父节点,加到父类容器
|
||||
parentsList.add(disease);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
// java对象转换为json字符换
|
||||
try {
|
||||
String Json = mapper.writeValueAsString(resultList);
|
||||
System.out.println(Json);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return ;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user