优化导入

This commit is contained in:
WangHao 2021-04-10 00:43:22 +08:00
parent 3e5b4a9625
commit 7416beb2ee
15 changed files with 229 additions and 151 deletions

View File

@ -54,7 +54,8 @@ public class BrowserController extends BaseController {
@RequestMapping("/import")
@PreAuthorize("@ss.hasPermi('bookmark:browser:export')")
public AjaxResult importCollect(@RequestParam("htmlFile") MultipartFile htmlFile){
logger.debug("开始上传状态是:");
long startTime = System.currentTimeMillis();
logger.info("开始上传状态是:"+ startTime );
SysUser sysUser=getAuthUser();
Long userID= sysUser.getUserId();
//防止重复上传
@ -83,7 +84,14 @@ public class BrowserController extends BaseController {
catch (Exception e) {
logger.error("导入html异常:",e);
}
long endTime = System.currentTimeMillis();
float seconds = (endTime - startTime) / 1000F;
logger.info("导入用时:"+ Float.toString(seconds) );
return AjaxResult.success("导入成功");
}

View File

@ -105,9 +105,9 @@ public class SqBookmarkController extends BaseController
*/
@GetMapping("/selectBymenuIdUserID")
@PreAuthorize("@ss.hasPermi('bookmark:bookmark:common:listsousou')")
public TableDataInfo selectBymenuIdUserID(Long menuId,Integer sort,String sousuo) {
public TableDataInfo selectBymenuIdUserID(Long menuId,Integer sort,String sousuo,Integer bookmarkStar,Integer start) {
startPage();
List<SqBookmark> list = sqBookmarkService.selectBymenuIdUserID(menuId,getAuthUser().getUserId(),sort,sousuo);
List<SqBookmark> list = sqBookmarkService.selectBymenuIdUserID(menuId,getAuthUser().getUserId(),sort,sousuo,bookmarkStar,start);
return getDataTable(list);
}
/**

View File

@ -4,6 +4,7 @@ import com.ruoyi.bookmark.domain.SqBookmark;
import com.ruoyi.bookmark.domain.SqMenu;
import com.ruoyi.bookmark.mapper.SqBookmarkMapper;
import com.ruoyi.bookmark.mapper.SqMenuMapper;
import com.ruoyi.bookmark.service.ISqBookmarkService;
import com.ruoyi.bookmark.service.ISqMenuService;
import com.ruoyi.bookmark.service.impl.SqMenuServiceImpl;
import org.apache.ibatis.session.ExecutorType;
@ -31,6 +32,8 @@ public class SqMenuTest extends BaseSpringBootTest{
@Autowired
private ISqMenuService iSqMenuService;
@Autowired
private ISqBookmarkService iSqBookmarkService;
@Autowired
SqBookmarkMapper sqBookmarkMapper;
@Autowired
SqlSessionTemplate sqlSessionTemplate;
@ -87,6 +90,7 @@ public class SqMenuTest extends BaseSpringBootTest{
/**
* 初始化是否有下级目录 subordinate 0无下级 1有下级
* 批量计算新的目录下书签数量
*
* @param
* @return
@ -94,6 +98,17 @@ public class SqMenuTest extends BaseSpringBootTest{
@Test
public void test3() {
iSqBookmarkService.bookmarkMenuCount(1L,442L);
}
/**
* 初始化是否有下级目录 subordinate 0无下级 1有下级
*
* @param
* @return
*/
@Test
public void test7() {
SqMenu sqMenu2 = new SqMenu();
sqMenu2.setUserId(1L);
List<SqMenu> sqs = sqMenuMapper.select(sqMenu2);
@ -117,6 +132,11 @@ public class SqMenuTest extends BaseSpringBootTest{
}
}
//测试mybatis的事务
@Test
public void test4() throws Exception {

View File

@ -0,0 +1,41 @@
<template>
<div>
<div style="width: 100%;height:30px;background-color: #fafcff">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>活动管理</el-breadcrumb-item>
<el-breadcrumb-item>活动列表</el-breadcrumb-item>
<el-breadcrumb-item>活动详情</el-breadcrumb-item>
</el-breadcrumb>
</div>
</div>
</template>
<script>
export default {
components: {
},
props: {
highlighted: null,//
sousuo: null,
},
data: function () {
return {
isdescription:null
}
},
mounted(){
},
methods: {
}
}
</script>
<style scoped>
</style>

View File

@ -1,6 +1,5 @@
<template>
<div>
<!-- STYLE="position: relative"-->
<div v-for="bm in bookmarkList" class="bookmark" @click="winurl(bm.noteId,bm.tiymceUeditor,bm.bookmarkId,bm.url)" @mouseover="enter(bm.bookmarkId)" @mouseleave="leave()" >
<div class="bookmark-item" >
@ -204,7 +203,6 @@
.bookmark-item {
display: flex;
height: 24px;
/* font-size: 13px; */
overflow: hidden;
}

View File

@ -55,6 +55,11 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/redirect'], resolve)
}
]
}
,{
path: '/daohang',
component: resolve => require(['../views/bookmark/menu/index.vue'], resolve),
hidden: true
},
{
path: '/login',
@ -206,6 +211,16 @@ export const constantRoutes = [
requireAuth: true,//加该字段,表示进入这个路由是需要登录的true
},
}
,
{
path: '/profile',
name: 'Profile',
component: (resolve) => require(['@/views/system/user/profile/index'], resolve),
meta: {
title: '个人中心', icon: 'user',
requireAuth: true,
}
},
],
},

View File

@ -34,42 +34,34 @@
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="header-list">
<!-- <el-dropdown trigger="click" size="small" :hide-on-click="false">-->
<!-- <span class="el-dropdown-link">-->
<el-dropdown trigger="click" size="small" :hide-on-click="false">
<span class="el-dropdown-link">
<el-avatar :size="28"
src="https://up.raindrop.io/collection/templates/social-media-logos-6/97social.png"></el-avatar>
<!-- </span>-->
<!-- <el-dropdown-menu slot="dropdown" class="sq-dropdown">-->
<!-- <el-dropdown-item class="filter-item" icon="el-icon-plus" command="a">外观显示</el-dropdown-item>-->
<!-- <el-dropdown-item class="filter-item" icon="el-icon-plus" command="b">用户中心</el-dropdown-item>-->
<!-- <el-dropdown-item class="filter-item" icon="el-icon-plus" command="d">建议反馈</el-dropdown-item>-->
<!-- <el-dropdown-item class="filter-item" icon="el-icon-plus" command="e">退出登录</el-dropdown-item>-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
</span>
<el-dropdown-menu slot="dropdown" class="sq-dropdown">
<el-dropdown-item class="filter-item" icon="el-icon-plus" command="a">外观显示</el-dropdown-item>
<el-dropdown-item class="filter-item" icon="el-icon-plus" command="b">用户中心</el-dropdown-item>
<el-dropdown-item class="filter-item" icon="el-icon-plus" command="d">建议反馈</el-dropdown-item>
<el-dropdown-item class="filter-item" icon="el-icon-plus" command="e">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</el-header>
<div class="filter-tbar">
<div class="filter-classification">
<div :class="['classification',property=='0'?' classification-click':'']" @click="showopen(0)"><span>网页</span></div>
<div :class="['classification',property=='1'?' classification-click':'']" @click="showopen(1)"><span>文本</span></div>
<div :class="['classification',property=='2'?' classification-click':'']" @click="showopen(2)"><span>其他</span></div>
<!-- <div class="classification" @click="showopen(3)"><span>其他</span></div>-->
</div>
<div class="setUpThe">
<div class="filter-content">
<el-dropdown trigger="hover" size="small" @command="handleCommand">
<div class="el-dropdown-link dropdownList">
<i class="el-icon-document-checked "></i>
<!-- <span>排序</span>-->
</div>
<el-dropdown-menu slot="dropdown" class="filter-sort-dropdown">
<el-dropdown-item class="filter-item" command="0"><i class="el-icon-bottom"></i>按时间排序()
@ -88,7 +80,6 @@
<el-dropdown trigger="hover" size="small">
<div class="el-dropdown-link dropdownList">
<i class="el-icon-tickets "></i>
<!-- <span>列表</span>-->
</div>
<el-dropdown-menu slot="dropdown" class="filter-sort-dropdown">
<el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按时间排序()</el-dropdown-item>
@ -100,19 +91,7 @@
</el-dropdown>
</div>
<!-- <div class="filter-content">-->
<!-- <el-dropdown trigger="hover" size="small">-->
<!-- <div class="el-dropdown-link dropdownList">-->
<!-- <i class="el-icon-setting "></i> <span>设置</span>-->
<!-- </div>-->
<!-- <el-dropdown-menu slot="dropdown" class="filter-sort-dropdown">-->
<!-- <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>编辑</el-dropdown-item>-->
<!-- <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>批量处理</el-dropdown-item>-->
<!-- <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>排序</el-dropdown-item>-->
<!-- <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按网站A-Z排序</el-dropdown-item>-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!-- </div>-->
</div>
</div>
@ -130,73 +109,9 @@
</div>
</div>
<!-- 默认展示-->
<!-- <div class="bookmarklist" :style="datalist" infinite-scroll-distance="10" v-loading="loading"-->
<!-- v-if="showbookmark"-->
<!-- v-infinite-scroll="load"-->
<!-- infinite-scroll-disabled="disabled" style="overflow:auto;" infinite-scroll-immediate="false">-->
<!-- <el-row>-->
<!-- &lt;!&ndash; <hr class="bookamrk-hr" v-if="!queryParams.sousuo!=''"/>&ndash;&gt;-->
<!-- <el-col :span="24" v-for="bm in bookmarkList">-->
<!-- <div class="editBookamrk ">-->
<!-- <div class="editlist">-->
<!-- <div>-->
<!-- <el-button plain size="small" @click="handleUpdate(bm.bookmarkId)">修改</el-button>-->
<!-- </div>-->
<!-- <div>-->
<!-- <el-button plain size="small" @click="handleDelete(bm.bookmarkId)">删除</el-button>-->
<!-- </div>-->
<!-- <div>-->
<!-- <el-button plain size="small">笔记</el-button>-->
<!-- </div>-->
<!-- <div>-->
<!-- <el-button plain size="small">分享</el-button>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="bookmark " :data-id="bm.id" @click="windowurl(bm.url,bm.bookmarkId)">-->
<!-- <p class="bookmark-title" v-if="highlighted"><span v-html="highLight(bm.title,queryParams.sousuo)"/>-->
<!-- </p>-->
<!-- <p class="bookmark-title" v-if="!highlighted">{{bm.title}}</p>-->
<!-- <div class="">-->
<!-- <p class="description" v-if="highlighted"><span-->
<!-- v-html="highLight(bm.description,queryParams.sousuo)"/>-->
<!-- </p>-->
<!-- <p class="description" v-if="!highlighted">{{bm.description}}</p>-->
<!-- </div>-->
<!-- <div class="info-wrap">-->
<!-- <div class="info">-->
<!-- <div class="bookmark-icon">-->
<!-- &lt;!&ndash; <img :err-src='bm.icon' :ng-src="bm.icon" :src="bm.icon" />&ndash;&gt;-->
<!-- <img :ng-src="'https://favicon.lucq.fun/?url=http://'+bm.urls"-->
<!-- :src="'https://favicon.lucq.fun/?url=http://'+bm.urls"-->
<!-- onerror="this.src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAmVJREFUSMftlG1IU2EUx8+5jRHzg+5OiD64WTBBjSY5ZybUJMaMiIUICUKFIGmoIIogYWKFBmtDxN1tBKIWvlS6SR+iLFDBXqSMgmzbvQ7fkAjcINmQ5u7pQwyCiOvWx/p/fPj9/5znnPM8AP+VolRTjjHhTlmZipzEk9GYao4sVaMYxXp62NgIdpLBCuLP05mZZHOYZA3p5KgMjBcUwCmw4PfVVYiBGmbW1zMzOU4QCgtTvdAeRESEyNZyJbx+dDTjVv/9YFSjSScnfabsbPYMF+AbxsYS3F5TfwPZAacpMNfUBEAljK24mMJwlLIUClTAdfwok9FXWBTtc3Phzqv7c/RWa8KnrHZM8VltbRjC92AxGkEPRpSJInjJQPpIBJoZC6nn50M19dM5J/v6/lhRxgXXDX9Qp1POcmHh2sTEQbfbvVmrUCTbr4RPaeMe8Q0eTyI36VkrW50mftjrPWCyDn9oSUuTdj4Y/1Qpl7NdzkNC98iIqsIxHdQVFaU8eWW1U1guLy1lr3Acr3O7pXi227EhDLpcCZ8UL/kK8LIYjxtDIRhEP8xGIlI8bcAKvY3FGB/zYvf81pYUL/0PvGTKoTUvjzbgCx5ZWlJq3a5lQa1Ge3yTWnp64ASYqVcUoXn3Jtja2/EpRtHj89FF8Tb25ufDOwCo8/lSL0BF/eDPzcVXeA7WDAa6J9rES1VVdJqx41JHBwCE8BgA3JU9B+3AACziMwjv7MAaPQb/wgIAnP2rDpCWtpkncjm+Ro34bWgo3FkX0O6bnARARCT6hSR6YzazXa7DfLyigo7TNtObxNb/s/oB7V8JFvW/8IQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDItMDJUMTg6MTE6NTgrMDg6MDCoc6tpAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTAyLTAyVDE4OjExOjU4KzA4OjAw2S4T1QAAAGd0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fNWhyOG55Nmo1bWMvamluZ2RpYW5hbmxpX2tvbmd3dWppYW94aW5nX3Nob3VjYW5nLnN2Z4/vilwAAAAASUVORK5CYII='"-->
<!-- alt="" ng-show="bm.urls">-->
<!-- </div>-->
<!-- <div class="bookmark-official">{{bm.urls}}&nbsp;·&nbsp;</div>-->
<!-- <div class="bookmark-time">{{bm.createTime|changeTime}}</div>-->
<!-- <div class="bookmark-time" v-for="t in bm.sqTags">-->
<!-- <el-tag class="bookmark-list-tag" data-bookmarkId="t.bookmarkId" data-tagId="t.tagId"-->
<!-- size="mini">-->
<!-- {{t.name}}-->
<!-- </el-tag>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <p v-if="listloading" class="listhint"><i class="el-icon-loading"></i>加载中...</p>-->
<!-- <p v-if="listnoMore" class="listhint">没有更多了</p>-->
<!-- </div>-->
<!-- 三窗口展示-->
<div class="bookmarklist" :style="datalist" infinite-scroll-distance="10" v-loading="loading" v-if="showbookmark"
<div class="bookmarklist" :style="datalist" infinite-scroll-distance="10" v-loading="loading" v-if="!showimg"
v-infinite-scroll="load"
infinite-scroll-disabled="disabled" style="overflow:auto;" infinite-scroll-immediate="false">
<BookmarkOne @on-windowurl="windowurl" @on-handleUpdate="handleUpdate" @on-handleDelete="handleDelete" :key="property" :property="property" :highlighted="highlighted" :sousuo="sousuo" :listloading="listloading" :loading="loading" :bookmarkList="bookmarkList"></BookmarkOne>
@ -349,7 +264,6 @@
//
open: false,
busy: false,
showbookmark: true,
showimg: false,
loading: false,
iframeLoading:false,
@ -511,7 +425,7 @@
},
mounted() {
this.closeIsMain()
this.closeIsMain();
},
methods: {
@ -833,7 +747,7 @@
this.bookmarkList = response.rows;
this.total = response.total;
this.loading = false;
this.showimg=response.rows==0?true:false;
this.showimg=response.total==0?true:false;
this.listloading = false
} else {
this.showimg = true;

View File

@ -1,5 +1,9 @@
<template>
<div >
<Bkhead></Bkhead>
<div style="width:360px;height:260px;margin: 0 auto;margin-top: 40px">
<el-upload
ref="upload"
@ -59,11 +63,13 @@
</template>
<script >
import Bkhead from "../../../components/Bkhead";
import { getToken } from "@/utils/auth";
export default {
name: "",
components: {
Bkhead
},
data() {
return {
//

View File

@ -37,7 +37,8 @@
<div class="aside-title"><i class="el-icon-s-comment"></i><span>意见反馈</span></div>
<!-- <div class="aside-title" @click="ceshi"><i class="el-icon-s-comment"></i><span>测试页面</span></div>-->
<!-- <div class="aside-title" @click="NqEdit"><i class="el-icon-s-comment"></i><span>NqQuillEdit编辑器</span></div>-->
<div class="aside-title " style="margin-bottom: 100px" @click="gotool"><i class="el-icon-s-grid"></i><span>工具箱</span></div>
<div class="aside-title " @click="gotool"><i class="el-icon-s-grid"></i><span>工具箱</span></div>
<div class="aside-title " style="margin-bottom: 100px" @click="goUser"><i class="el-icon-s-custom"></i><span>个人中心</span></div>
</div>
@ -907,6 +908,13 @@
path: "/tool",
})
},
/** 个人中心**/
goUser() {
var that = this;
that.$router.push({
path: "/profile",
})
},
editBookmark: function (e) {
this.reset();
this.getTreeselect();

View File

@ -1,7 +1,7 @@
<template >
<div class="main">
<div class="index-top"></div>
<!-- <div class="index-top"></div>-->
<!-- &lt;!&ndash;github&ndash;&gt;-->
<!-- <a @click="zreaZtree" class="github-corner" target="_blank" title="Follow me on GitHub" aria-label="Follow me on GitHub">-->
@ -11,29 +11,37 @@
<!-- </svg>-->
<!-- </a>-->
<div class="sousou">
<!-- //-->
<div style="width: 50%;height: 200px;margin: 0 auto;margin-top: 19%">
<div >
<div class="choice-top notcopy" v-for="iconlist in iconlist">
<el-tooltip :visible-arrow="visiblearro" :enterable="enterable" class="item" effect="dark" :content="iconlist.title" placement="top" >
<div @click="sendEventDataTop($event)" :data-icon="iconlist.icon"><img :ng-src="'https://favicon.lucq.fun/?url='+iconlist.icon" err-src="./images/default.ico" ng-click="detailBookmark(bookmark);$event.stopPropagation()" :src="'https://favicon.lucq.fun/?url='+iconlist.icon" ></div>
</el-tooltip>
</div>
<div style="width: 700px;">
<!-- <div >-->
<!-- <div class="choice-top notcopy" v-for="iconlist in iconlist">-->
<!-- <el-tooltip :visible-arrow="visiblearro" :enterable="enterable" class="item" effect="dark" :content="iconlist.title" placement="top" >-->
<!-- <div @click="sendEventDataTop($event)" :data-icon="iconlist.icon"><img :ng-src="'https://favicon.lucq.fun/?url='+iconlist.icon" err-src="./images/default.ico" ng-click="detailBookmark(bookmark);$event.stopPropagation()" :src="'https://favicon.lucq.fun/?url='+iconlist.icon" ></div>-->
<!-- </el-tooltip>-->
<!-- </div>-->
</div>
<!-- </div>-->
<div style="margin-top: 15px;">
<el-input placeholder="百度一下" v-model="sousou" class="sousoucss notcopy" ref="sousouref">
<img @click="IsCord()" slot="prefix" :src="sousouicon" style="width: 20px;height: 20px;position: absolute;top: 50%;margin-top: -10px;">
<el-button slot="append" icon="el-icon-search" circle @click="getUrl"></el-button>
<el-button type="primary" slot="append" icon="el-icon-search" style="width: 80px" @click="getUrl"></el-button>
</el-input>
</div>
<transition name="el-zoom-in-top">
<el-card class="box-card notcopy" v-show="isSousouCard" style="width: 100%;opacity: 0.7;margin-top: 10px;height:200px;overflow:auto">
<el-card class="box-card notcopy" v-show="isSousouCard" style="width: 100%;opacity: 0.7;margin-top: 10px;height:250px;overflow:auto">
<div class="choice" v-for="iconlist in iconlist" >
<div @click="sendEventData($event)" :data-icon="iconlist.icon"><img err-src="https://favicon.lucq.fun/?url=https://www.5118.com/" class="sousouicon" :ng-src="'https://favicon.lucq.fun/?url='+iconlist.icon" :src="'https://favicon.lucq.fun/?url='+iconlist.icon" ><span>{{iconlist.title}}</span></div>
@ -159,13 +167,28 @@
}
</script>
<style scoped>
body{
.main{
font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;
/*background-image: url("https://s1.ax1x.com/2020/08/11/aOHstP.jpg");*/
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
justify-content: center;
/*align-items: center;*/
padding-top: 20%;
height: 100%;
background-color: #f7f7f7;
background-image: url("https://s1.ax1x.com/2020/08/11/aOHstP.jpg");
background-size: cover;
}
/*.sousou{*/
/* display: flex;*/
/* flex-direction: row; !* 子元素横向排列 *!*/
/* justify-content: center; !* 相对父元素水平居中 *!*/
/* align-items: center; !* 子元素相对父元素垂直居中 *!*/
/*}*/
.sousoucss{
opacity: 0.6;
@ -216,7 +239,7 @@
margin-right: 1px;
}
.choice div:hover{
color: #1c84c6;
color: #1f1f1f;
}
/**顶部*/

View File

@ -22,6 +22,7 @@ import java.util.Map;
*/
@Table(name="sq_bookmark")
@Data
@ToString
public class SqBookmark
{
private static final long serialVersionUID = 1L;
@ -83,7 +84,7 @@ public class SqBookmark
/** 0公开显示 1隐藏显示 2好友显示 3稍后再看 */
@Excel(name = "0公开显示 1隐藏显示 2好友显示 3稍后再看")
@Column(name = "Start")
@Column(name = "start")
private Integer start;
/** 0非星标 1星标 */

View File

@ -22,7 +22,7 @@ public interface SqBookmarkMapper extends MyMapper<SqBookmark>
* @param userID 用户ID
* @return 书签管理
*/
public List<SqBookmark> selectBymenuIdUserID(@Param("menuID") Long menuID, @Param("userID") Long userID,@Param("sort")Integer sort,@Param("sousuo") String sousuo);
public List<SqBookmark> selectBymenuIdUserID(@Param("menuID") Long menuID, @Param("userID") Long userID,@Param("sort")Integer sort,@Param("sousuo") String sousuo,@Param("bookmarkStar") Integer bookmarkStar,@Param("start") Integer start);
/**
* 查询书签管理

View File

@ -24,9 +24,11 @@ public interface ISqBookmarkService
* @param userID 用户ID
* @param sort 排序方式
* @param sousou 搜索
* @param bookmarkStar 0非星标 1星标
* @param start 书签状态
* @return 书签管理
*/
public List<SqBookmark> selectBymenuIdUserID(Long menuID,Long userID,Integer sort,String sousou);
public List<SqBookmark> selectBymenuIdUserID(Long menuID,Long userID,Integer sort,String sousou,Integer bookmarkStar,Integer start);
@ -141,4 +143,9 @@ public interface ISqBookmarkService
*
* */
List<SqBookmark> bookmarkRepetition(Long userId);
/**
* 重新计算目录下的书签数量和 目录的结构
*/
public void bookmarkMenuCount(Long userId,Long menuId);
}

View File

@ -74,8 +74,8 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
* @return 书签管理
*/
@Override
public List<SqBookmark> selectBymenuIdUserID(Long menuID, Long userID,Integer sort,String sousou) {
return sqBookmarkMapper.selectBymenuIdUserID(menuID,userID, sort,sousou);
public List<SqBookmark> selectBymenuIdUserID(Long menuID, Long userID,Integer sort,String sousou,Integer bookmarkStar,Integer start) {
return sqBookmarkMapper.selectBymenuIdUserID(menuID,userID, sort,sousou,bookmarkStar,start);
}
/**
@ -328,6 +328,8 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
List<HtmlName> listMenu= list.stream().filter(m-> m.getState().equals("0")).collect(Collectors.toList());
//id排序 防止已添加的父id漏修改 id升序
listMenu.sort(Comparator.comparing(HtmlName::getId));
//顶级目录ID
Long k = null;
//1.添加目录
for (HtmlName h : listMenu) {
String id=h.getId();
@ -335,7 +337,7 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
SqMenu sqMenu = new SqMenu(userID,h.getTitle(),Long.valueOf(h.getParentId()), Const.MenuIocURL);
int countId = sqMenuMapper.insertSqMenu(sqMenu);
if(countId!=0){
Long k=Long.valueOf(sqMenu.getMenuId().toString());
k=Long.valueOf(sqMenu.getMenuId().toString());
//批量修改对应的父目录id
listMenu = ImportHtml.listFilter(listMenu,k,id);
//批量修改对应的书签id
@ -343,28 +345,32 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
}
}
//2.添加书签
for (HtmlName h : list) {
if (!h.getState().equals("0")&&h.getState().equals(Const.BOOKMARK_STATE_FLAG)) {
SqBookmark sqBookmark =new SqBookmark();
sqBookmark.setUserid(userID);
sqBookmark.setTitle(h.getTitle());
sqBookmark.setUrl(h.getUrl());
try {
for (HtmlName h : list) {
if (!h.getState().equals("0") && h.getState().equals(Const.BOOKMARK_STATE_FLAG)) {
SqBookmark sqBookmark = new SqBookmark();
sqBookmark.setUserid(userID);
sqBookmark.setTitle(StringUtils.substring(h.getTitle(), 0, 30));
sqBookmark.setUrl(h.getUrl());
sqBookmark.setUrls(ImportHtml.Urlutils(new URL(h.getUrl())));
} catch (MalformedURLException e) {
e.printStackTrace();
logger.info("导入书签,获取host出错!");
}
if(StringUtils.isBlank(h.getDescription())){
sqBookmark.setDescription(h.getTitle());
}else{
sqBookmark.setDescription(h.getDescription());
if (StringUtils.isBlank(h.getDescription())) {
sqBookmark.setDescription(StringUtils.substring(h.getTitle(), 0, 30));
} else {
sqBookmark.setDescription(StringUtils.substring(h.getDescription(), 0, 40));
}
sqBookmark.setMenuId(Long.valueOf(h.getParentId()));
sqBookmark.setCreateTime(new Date());
sqBookmarkMapper.insertSqBookmark(sqBookmark);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
logger.info("导入书签,获取出错!");
}
//3.开始计算目录的结构 目录的书签数量
bookmarkMenuCount(userID,k);
}
@ -386,6 +392,35 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
public List<SqBookmark> bookmarkRepetition(Long userId) {
return sqBookmarkMapper.bookmarkRepetition(userId);
}
@Override
public void bookmarkMenuCount(Long userId,Long menuId){
SqMenu sqMenu2 = new SqMenu();
sqMenu2.setUserId(userId);
// sqMenu2.setParentId(menuId);
List<SqMenu> sqs = sqMenuMapper.select(sqMenu2);
for (SqMenu s : sqs) {
SqMenu sq = new SqMenu();
sq.setParentId(s.getMenuId());
List<SqMenu> lists = sqMenuMapper.select(sq);
if (lists!=null&&!lists.isEmpty())
{
int count = sqBookmarkMapper.countBookMakeByMenuId(s.getMenuId());
SqMenu sqMenu = new SqMenu();
sqMenu.setMenuId(s.getMenuId());
sqMenu.setSubordinate(1);
sqMenu.setBookmarkCount(count);
sqMenuMapper.updateSqMenu(sqMenu);
}else{
int count = sqBookmarkMapper.countBookMakeByMenuId(s.getMenuId());
SqMenu sqMenu = new SqMenu();
sqMenu.setMenuId(s.getMenuId());
sqMenu.setSubordinate(0);
sqMenu.setBookmarkCount(count);
sqMenuMapper.updateSqMenu(sqMenu);
}
}
}
}

View File

@ -145,6 +145,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectSqBookmarkVo"/>
where userid=#{userID}
<if test="sousuo == null or sousuo == ''"> and menu_id = #{menuID}</if>
<if test="bookmarkStar != null and bookmarkStar != ''"> and bookmark_star = #{bookmarkStar}</if>
<if test="start != null and start != ''"> and start = #{start}</if>
<if test="sousuo != null and sousuo != ''"> and title like concat('%', #{sousuo}, '%')</if>
order by
<choose>