diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqBookmarkController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqBookmarkController.java index 3e31d3847..17398d654 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqBookmarkController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqBookmarkController.java @@ -181,7 +181,8 @@ public class SqBookmarkController extends BaseController public AjaxResult add(@RequestBody SqBookmark sqBookmark) { sqBookmark.setUserid(getAuthUser().getUserId()); - return toAjax(sqBookmarkService.insertSqBookmark(sqBookmark)); + int i = sqBookmarkService.insertSqBookmark(sqBookmark); + return new AjaxResult(200,(i>0&&i!=999)?"success":"repetition"); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqTagController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqTagController.java index ea1a557ef..0a9ee12c3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqTagController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqTagController.java @@ -37,6 +37,40 @@ public class SqTagController extends BaseController + /** + * 获取所有的书签TAG 并且翻页 + */ + @GetMapping("/listByUser") + public TableDataInfo listByUser() + { + startPage(); + List list = sqTagService.selectSqTagList(new SqTag(getAuthUser().getUserId())); + return getDataTable(list); + } + + + /** + * 模糊查书签TAG + */ + @GetMapping("/listByUserLike") + public TableDataInfo listByUserLike() + { + startPage(); + List list = sqTagService.selectSqTagList(new SqTag(getAuthUser().getUserId())); + return getDataTable(list); + } + + + + + + + + + + + // 以下是系统管理员的操作 + /** * 查询书签_标签列表 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqBookmarkTest.java b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqBookmarkTest.java index cefb315da..4ca1731a6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqBookmarkTest.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqBookmarkTest.java @@ -174,16 +174,6 @@ public class SqBookmarkTest extends BaseSpringBootTest{ * @return * @throws Exception */ - private HttpSession getLoginSession() throws Exception{ - // mock request get login session - // url = /xxx/xxx/{username}/{password} - MvcResult result = this.mockMvc - .perform((MockMvcRequestBuilders.post("/login"))) - .andExpect(MockMvcResultMatchers.status().isOk()) - .andReturn(); - return result.getRequest().getSession(); - } - diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqMenuTest.java b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqMenuTest.java index f72ae1778..83856663f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqMenuTest.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqMenuTest.java @@ -15,8 +15,12 @@ import org.junit.Test; import org.mybatis.spring.SqlSessionTemplate; import org.omg.PortableServer.THREAD_POLICY_ID; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpSession; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -38,10 +42,19 @@ public class SqMenuTest extends BaseSpringBootTest{ SqBookmarkMapper sqBookmarkMapper; @Autowired SqlSessionTemplate sqlSessionTemplate; + + + + + + + + + + @Test public void addMenuUplinkSeries() { - List sqMenus = sqMenuMapper.selectbymenuUplinkSeries(); if (null!=sqMenus&&!sqMenus.isEmpty()) { for (com.ruoyi.bookmark.domain.SqMenu s:sqMenus) { @@ -88,6 +101,11 @@ public class SqMenuTest extends BaseSpringBootTest{ } + @Test + public void test67(){ + iSqBookmarkService.bookmarkDeleteRepetition(1L); + } + /** * 初始化是否有下级目录 subordinate 0无下级 1有下级 diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 1be5fdf1a..27f7069e5 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -62,6 +62,7 @@ "vue": "2.6.10", "vue-count-to": "1.0.13", "vue-cropper": "0.4.9", + "vue-material": "^1.0.0-beta-15", "vue-quill-editor": "3.0.6", "vue-router": "3.0.2", "vue-splitpane": "1.0.4", diff --git a/ruoyi-ui/src/App.vue b/ruoyi-ui/src/App.vue index 1d0634c32..8fd0186c0 100644 --- a/ruoyi-ui/src/App.vue +++ b/ruoyi-ui/src/App.vue @@ -1,11 +1,11 @@ - - - + + + diff --git a/ruoyi-ui/src/api/bookmark/tag.js b/ruoyi-ui/src/api/bookmark/tag.js index d9069a425..1cb6dbb53 100644 --- a/ruoyi-ui/src/api/bookmark/tag.js +++ b/ruoyi-ui/src/api/bookmark/tag.js @@ -1,5 +1,36 @@ import request from '@/utils/request' +// 查询书签_标签列表 +export function listByUser(query) { + return request({ + url: '/system/tag/listByUser', + method: 'get', + params: query + }) +} + +// 查询书签_标签列表 +export function listByUserLike(query) { + return request({ + url: '/system/tag/listByUserLike', + method: 'get', + params: query + }) +} + + + + + + + + + + + + + + // 查询书签_标签列表 export function listTag(query) { return request({ @@ -50,4 +81,4 @@ export function exportTag(query) { method: 'get', params: query }) -} \ No newline at end of file +} diff --git a/ruoyi-ui/src/assets/icons/svg/str.svg b/ruoyi-ui/src/assets/icons/svg/str.svg new file mode 100644 index 000000000..8c2bc8c9d --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/str.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/image/sj.png b/ruoyi-ui/src/assets/image/sj.png new file mode 100644 index 000000000..00e8d298e Binary files /dev/null and b/ruoyi-ui/src/assets/image/sj.png differ diff --git a/ruoyi-ui/src/assets/image/sqsc.png b/ruoyi-ui/src/assets/image/sqsc.png new file mode 100644 index 000000000..2fce13a0d Binary files /dev/null and b/ruoyi-ui/src/assets/image/sqsc.png differ diff --git a/ruoyi-ui/src/assets/image/ts.png b/ruoyi-ui/src/assets/image/ts.png new file mode 100644 index 000000000..e343de17c Binary files /dev/null and b/ruoyi-ui/src/assets/image/ts.png differ diff --git a/ruoyi-ui/src/assets/image/zwsj.png b/ruoyi-ui/src/assets/image/zwsj.png new file mode 100644 index 000000000..2b8d4e82c Binary files /dev/null and b/ruoyi-ui/src/assets/image/zwsj.png differ diff --git a/ruoyi-ui/src/components/BookmarkList/index.vue b/ruoyi-ui/src/components/BookmarkList/index.vue index 03e560ad3..45af5f8fc 100644 --- a/ruoyi-ui/src/components/BookmarkList/index.vue +++ b/ruoyi-ui/src/components/BookmarkList/index.vue @@ -28,7 +28,11 @@
{{bm.urls}} · 
{{bm.createTime|changeTime}}
-
{{bm.bookmarkStar}}
+
+ + +
+
@@ -69,7 +73,7 @@ isBookmarkIcon:false, Ueditor:undefined, seen:false, - current:0, + current:0 } }, mounted(){ @@ -109,15 +113,39 @@ }, /** 星标 **/ updateStarById:function(bookmarkId,bookmarkStar){ + var that = this; console.log("bookmarkStar:"+bookmarkStar) var param={ bookmarkId:bookmarkId, - bookmarkStr:bookmarkStar==0?1:0 + bookmarkStr:bookmarkStar } console.log("bookmarkStar2:"+param.bookmarkStar) updateBookmarkStarById(param).then(response => { if (response.code === 200) { this.msgSuccess("设置成功"); + // let list = this.bookmarkList; + // for (var i=0;i - + @@ -70,7 +70,7 @@ that.$router.push({ path: "/content", query: { - menuId: 'BOOKMARK' + menuId: 'newest' } }) break; diff --git a/ruoyi-ui/src/views/bookmark/bookmark/index.vue b/ruoyi-ui/src/views/bookmark/bookmark/index.vue index 76c6371d5..d56328706 100644 --- a/ruoyi-ui/src/views/bookmark/bookmark/index.vue +++ b/ruoyi-ui/src/views/bookmark/bookmark/index.vue @@ -24,7 +24,8 @@
- + + 添加连接 @@ -38,7 +39,7 @@ - @@ -55,14 +56,15 @@
网页
-
文本
+
其他
按时间排序(正) @@ -80,7 +82,7 @@
按时间排序(正) @@ -105,8 +107,8 @@
-
- 此目录还未添加收藏 +
+ 空空如也
@@ -411,7 +413,7 @@ } console.log("routedata:"+routedata) - if (routedata == 'newest'||routedata == 'asterisk'||routedata == 'seeYouLater'||routedata == 'recycle') { + if ((sousuo != null && sousuo != undefined && sousuo != '')||routedata == 'newest'||routedata == 'asterisk'||routedata == 'seeYouLater'||routedata == 'recycle') { that.queryParams.menuId=null; this.listByUserAndPolymerization(routedata); @@ -606,14 +608,25 @@ this.msgSuccess("修改成功"); this.open = false; this.getList(); + }else{ + this.msgError("新增失败,系统错误!"); + this.open = false; } }); } else { addBookmark(this.form).then(response => { if (response.code === 200) { + if(response.data === 'repetition'){ + this.msgSuccess("新增失败,此书签已经存在了!"); + this.open = false; + return; + } this.msgSuccess("新增成功"); this.open = false; this.getList(); + }else{ + this.msgError("新增失败,系统错误!"); + this.open = false; } }); } @@ -705,24 +718,24 @@ } }); }, - /** 全部书签**/ - getBookmarkList() { - this.loading = true; - selectByUseridList(this.queryParams).then(response => { - if (response.code == 200) { - this.bookmarkList = this.bookmarkList.concat(response.rows); - this.total = response.total; - this.listloading = false - this.loading = false; - console.log("请求完毕" + this.queryParams.pageNum) - } else { - //出错了加载完毕了 禁止滚动 - this.noMore = true; - this.listloading = false - this.loading = false; - } - }); - }, + // /** 全部书签**/ + // getBookmarkList() { + // this.loading = true; + // selectByUseridList(this.queryParams).then(response => { + // if (response.code == 200) { + // this.bookmarkList = this.bookmarkList.concat(response.rows); + // this.total = response.total; + // this.listloading = false + // this.loading = false; + // console.log("请求完毕" + this.queryParams.pageNum) + // } else { + // //出错了加载完毕了 禁止滚动 + // this.noMore = true; + // this.listloading = false + // this.loading = false; + // } + // }); + // }, /** 最新 星标 回收站 稍后看**/ listByUserAndPolymerization(str) { console.log(" 最新 星标 回收站 稍后看"); @@ -735,12 +748,16 @@ this.total = response.total; this.listloading = false this.loading = false; + if (response.total == 0){ + this.showimg = true;//空提示 + } console.log("请求完毕" + this.queryParams.pageNum) } else { //出错了加载完毕了 禁止滚动 this.noMore = true; this.listloading = false this.loading = false; + this.showimg = true; } }); }, @@ -787,7 +804,7 @@ /** 查询书签管理列表 */ getList() { this.loading = true; - selectBymenuIdUserID(this.queryParams).then(response => { + listByUserAndPolymerization(this.queryParams).then(response => { if (response.code == 200) { this.bookmarkList = response.rows; this.total = response.total; @@ -810,14 +827,9 @@ var routedata = this.queryParams.menuId; if(routedata == 'newest'||routedata == 'asterisk'||routedata == 'seeYouLater'||routedata == 'recycle'){ this.listByUserAndPolymerization(routedata); - // //全部书签 - // this.getBookmarkList(); - // }else if (this.queryParams.menuId == 'RECYCLE') { - // //回收站书签 - // this.getrecycleList(); }else{ //查看目录下的书签 - this.getlistByMenuId(); + this.listByUserAndPolymerization(routedata); } }, /**查询便签 滚动加载分页拼接*/ @@ -965,7 +977,13 @@ diff --git a/ruoyi-ui/src/views/bookmark/ztree/jquery.ztree.core.js b/ruoyi-ui/src/views/bookmark/ztree/jquery.ztree.core.js index 841ebe68e..179a89c4d 100644 --- a/ruoyi-ui/src/views/bookmark/ztree/jquery.ztree.core.js +++ b/ruoyi-ui/src/views/bookmark/ztree/jquery.ztree.core.js @@ -1366,7 +1366,7 @@ if (!node.isAjaxing) { var isParent = data.nodeIsParent(setting, node); var icon = (isParent && node.iconOpen && node.iconClose) ? (node.open ? node.iconOpen : node.iconClose) : node[setting.data.key.icon]; - if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;background-position:center;background-size:20px 20px;border-radius: 50%;"); + if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;background-position:center;background-size:20px 20px;");//border-radius: 50%; 目录的图标 if (setting.view.showIcon == false || !tools.apply(setting.view.showIcon, [setting.treeId, node], true)) { icoStyle.push("display:none;"); } diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index 4828d8806..620594b3a 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -1,98 +1,101 @@ - - - - - + + + + + diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqBookmark.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqBookmark.java index 1f94e2f62..9f746a1f0 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqBookmark.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqBookmark.java @@ -113,9 +113,19 @@ public class SqBookmark /** 排序的方式 **/ @Transient private String sort; + /** 搜索 **/ + @Transient + private String sousuo; + + private List> sqTags; + public SqBookmark (){ + } - + public SqBookmark (String url,Long userid){ + this.url = url; + this.userid = userid; + } } diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqTag.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqTag.java index 028c355ed..e5cdc24c8 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqTag.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqTag.java @@ -80,4 +80,7 @@ public class SqTag private Date createTime; + public SqTag(Long userId){ + this.userId = userId; + } } diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java index 6561f6939..bc160f3dc 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java @@ -25,6 +25,8 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bookmarkhtml.Const; import com.ruoyi.common.utils.bookmarkhtml.HtmlName; import com.ruoyi.common.utils.bookmarkhtml.ImportHtml; +import com.sun.org.apache.bcel.internal.generic.RETURN; +import org.jacoco.agent.rt.internal_f3994fa.core.internal.flow.IFrame; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -119,6 +121,12 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService @Transactional public int insertSqBookmark(SqBookmark sqBookmark) { + //判断标签是否已经存在了 999 + List list = sqBookmarkMapper.select(new SqBookmark(sqBookmark.getUrl(),sqBookmark.getUserid())); + if (!(list==null||list.isEmpty())) + return 999; + + JSONArray objects = new JSONArray(); JSONObject json = null; //获取官网urls @@ -378,7 +386,7 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService @Override public int updateBookmarkStarById(Long userId, Long bookmarkId, Integer bookmarkStr) { - return sqBookmarkMapper.updateSqBookmarkByStar(bookmarkId,userId,bookmarkStr==1?1:0); + return sqBookmarkMapper.updateSqBookmarkByStar(bookmarkId,userId,bookmarkStr==1?0:1); } @Override @@ -501,23 +509,32 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService @Override public List listByUserAndPolymerization(SqBookmark sqBookmark) { - SqBookmark searchBookmark = new SqBookmark(); - searchBookmark.setUserid(sqBookmark.getUserid()); + SqBookmark search = new SqBookmark(); + search.setUserid(sqBookmark.getUserid()); + search.setSort(sqBookmark.getSort()); + search.setSousuo(sqBookmark.getSousuo()); + //未删除的 + search.setIdelete(Const.BKDELETE); - if(sqBookmark.getType().equals(Const.RECYCLE)){ - searchBookmark.setIdelete(Const.BKNOTDELETE);//删除的 - }else{ - searchBookmark.setIdelete(Const.BKDELETE);//未删除的 + + if (sqBookmark.getType()==null){ + //搜索情况下走这里 + return sqBookmarkMapper.listByUserAndPolymerization(search); } - - if (sqBookmark.getType().equals(Const.NEWEST)){//最新的 + if(sqBookmark.getType().equals(Const.RECYCLE)){ + search.setIdelete(Const.BKNOTDELETE);//删除的 + }else if (sqBookmark.getType().equals(Const.NEWEST)){//最新的 //无处理 }else if(sqBookmark.getType().equals(Const.ASTERISK)){ - searchBookmark.setBookmarkStar(1); + search.setBookmarkStar(1); }else if(sqBookmark.getType().equals(Const.SEEYOULATER)){//稍后看 - searchBookmark.setSeeYouLater(1); + search.setSeeYouLater(1); + }else { + //默认的目录Muidid + search.setMenuId(Long.valueOf(sqBookmark.getType())); } - return sqBookmarkMapper.listByUserAndPolymerization(searchBookmark); + + return sqBookmarkMapper.listByUserAndPolymerization(search); } diff --git a/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqBookmarkMapper.xml b/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqBookmarkMapper.xml index 8ff88b223..c3ba4ed40 100644 --- a/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqBookmarkMapper.xml +++ b/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqBookmarkMapper.xml @@ -187,6 +187,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and idelete = #{idelete} and bookmark_star = #{bookmarkStar} and see_you_later = #{seeYouLater} + and menu_id = #{menuId} + and start = #{start} + and title like concat('%', #{sousuo}, '%') order by