diff --git a/src/main/java/com/lovenav/controller/UrlAndCateController.java b/src/main/java/com/lovenav/controller/UrlAndCateController.java index 6531931..fda547c 100644 --- a/src/main/java/com/lovenav/controller/UrlAndCateController.java +++ b/src/main/java/com/lovenav/controller/UrlAndCateController.java @@ -182,6 +182,100 @@ public class UrlAndCateController { } return JSONObject.toJSONString(result); } + + @RequestMapping("/disposeBookmarkExhibitedToJson") + public String disposeBookmarkExhibitedToJson() + { + + List urlLists = urlListService.selectUrListByNeedLogin(); + List cateAndUrlList = new ArrayList<>(); + Set parentSet = new HashSet<>(); + 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); + String parentString = urlCateListService.selectUrListCateByUrlCateId(urlLists.get(i).getCateId()); + String [] parentList = parentString.split(","); + for(String parent : parentList) + { + if(parent.equals("0")){ + continue; + } + parentSet.add(parent); + } + } + + for (String str : parentSet) { + UrlCateList urlCateList =urlCateListService.selectByPrimaryKey(Integer.valueOf(str)); + CateAndUrl cateAndUrl = new CateAndUrl(); + cateAndUrl.setFloder("true"); + cateAndUrl.setName(urlCateList.getName()); + cateAndUrl.setParentId(urlCateList.getRootCateId()); + cateAndUrl.setCateId(urlCateList.getId()); + cateAndUrlList.add(cateAndUrl); + } + Collections.reverse(cateAndUrlList); + + List parentsList = new ArrayList<>(); + //声明返回集合 + List 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(); + String Json; + HashMap result = new HashMap<>(); + // java对象转换为json字符换 + try { + Json = mapper.writeValueAsString(resultList); + result.put("code", 200); + result.put("msg", "处理成功"); + result.put("data", resultList); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + return JSONObject.toJSONString(result); + } + + + + public String setResult(Integer code, String msg) { HashMap result = new HashMap<>(); result.put("code", code); diff --git a/src/main/java/com/lovenav/dao/UrlCateListDao.java b/src/main/java/com/lovenav/dao/UrlCateListDao.java index 35d78fb..b7746d9 100644 --- a/src/main/java/com/lovenav/dao/UrlCateListDao.java +++ b/src/main/java/com/lovenav/dao/UrlCateListDao.java @@ -30,4 +30,5 @@ public interface UrlCateListDao { public List selectUrListByUserId(Integer userId); + public String selectUrListCateByUrlCateId(Integer cateId); } \ No newline at end of file diff --git a/src/main/java/com/lovenav/dao/UrlListDao.java b/src/main/java/com/lovenav/dao/UrlListDao.java index e1189fc..5de98cc 100644 --- a/src/main/java/com/lovenav/dao/UrlListDao.java +++ b/src/main/java/com/lovenav/dao/UrlListDao.java @@ -29,5 +29,7 @@ public interface UrlListDao { public UrlList selectUrlListByUrlId(Long urlId); + public List selectUrListByNeedLogin(); + } \ No newline at end of file diff --git a/src/main/java/com/lovenav/service/UrlCateListService.java b/src/main/java/com/lovenav/service/UrlCateListService.java index dab045b..8d33cc4 100644 --- a/src/main/java/com/lovenav/service/UrlCateListService.java +++ b/src/main/java/com/lovenav/service/UrlCateListService.java @@ -14,4 +14,7 @@ public interface UrlCateListService { public String countCateContainUrlNumber(String userId); public JSONArray getUrl(String userId); + public String selectUrListCateByUrlCateId(Integer cateId); + public UrlCateList selectByPrimaryKey(Integer id); + } diff --git a/src/main/java/com/lovenav/service/UrlListService.java b/src/main/java/com/lovenav/service/UrlListService.java index 899f37b..821cfa5 100644 --- a/src/main/java/com/lovenav/service/UrlListService.java +++ b/src/main/java/com/lovenav/service/UrlListService.java @@ -13,5 +13,5 @@ public interface UrlListService { public int updateUrlStatusListById(UrlList urlList); - + public List selectUrListByNeedLogin(); } diff --git a/src/main/java/com/lovenav/service/serviceImpl/UrlCateListServiceImpl.java b/src/main/java/com/lovenav/service/serviceImpl/UrlCateListServiceImpl.java index a43ce10..e887607 100644 --- a/src/main/java/com/lovenav/service/serviceImpl/UrlCateListServiceImpl.java +++ b/src/main/java/com/lovenav/service/serviceImpl/UrlCateListServiceImpl.java @@ -58,7 +58,14 @@ public class UrlCateListServiceImpl implements UrlCateListService { return urlCateListDao.selectUrListByUserId(userId); } + public String selectUrListCateByUrlCateId(Integer cateId){ + return urlCateListDao.selectUrListCateByUrlCateId(cateId); + } + public UrlCateList selectByPrimaryKey(Integer id) + { + return urlCateListDao.selectByPrimaryKey(id); + } public String countCateContainUrlNumber(String email){ User user = userDao.selectByEmail(email); diff --git a/src/main/java/com/lovenav/service/serviceImpl/UrlLiserServiceImpl.java b/src/main/java/com/lovenav/service/serviceImpl/UrlLiserServiceImpl.java index 710a8ca..973ab81 100644 --- a/src/main/java/com/lovenav/service/serviceImpl/UrlLiserServiceImpl.java +++ b/src/main/java/com/lovenav/service/serviceImpl/UrlLiserServiceImpl.java @@ -49,6 +49,13 @@ public class UrlLiserServiceImpl implements UrlListService { return urlListDao.selectUrList(); } + + public List selectUrListByNeedLogin(){ + return urlListDao.selectUrListByNeedLogin(); + } + + + public UrlList selectUrListByInput(String input) { return urlListDao.selectUrListByInput(input); diff --git a/src/main/resources/mybatis/UrlCateListDao.xml b/src/main/resources/mybatis/UrlCateListDao.xml index 96bb201..672a111 100644 --- a/src/main/resources/mybatis/UrlCateListDao.xml +++ b/src/main/resources/mybatis/UrlCateListDao.xml @@ -13,6 +13,10 @@ + + + + id, `name`, createtime, url_number, weigh, `status`, need_login, user_id, root_cate_id, ico @@ -38,6 +42,16 @@ where name = #{name ,jdbcType=VARCHAR} and user_id = #{userId,jdbcType=INTEGER} + diff --git a/src/main/resources/mybatis/UrlListDao.xml b/src/main/resources/mybatis/UrlListDao.xml index 407f13d..e8d6074 100644 --- a/src/main/resources/mybatis/UrlListDao.xml +++ b/src/main/resources/mybatis/UrlListDao.xml @@ -37,6 +37,13 @@ from ln_url_list + +