标签管理
This commit is contained in:
		| @@ -6,6 +6,7 @@ import java.util.Date; | ||||
| import java.util.List; | ||||
|  | ||||
| import com.ruoyi.bookmark.domain.SqBookmark; | ||||
| import com.ruoyi.bookmark.pojo.SqBookmarkReq; | ||||
| import com.ruoyi.bookmark.service.ISqBookmarkService; | ||||
| import com.ruoyi.common.core.domain.entity.SysUser; | ||||
| import com.ruoyi.common.utils.bookmarkhtml.ImportHtml; | ||||
| @@ -13,14 +14,7 @@ import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| import org.springframework.security.access.prepost.PreAuthorize; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.GetMapping; | ||||
| import org.springframework.web.bind.annotation.PostMapping; | ||||
| import org.springframework.web.bind.annotation.PutMapping; | ||||
| import org.springframework.web.bind.annotation.DeleteMapping; | ||||
| import org.springframework.web.bind.annotation.PathVariable; | ||||
| import org.springframework.web.bind.annotation.RequestBody; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| import com.ruoyi.common.annotation.Log; | ||||
| import com.ruoyi.common.core.controller.BaseController; | ||||
| import com.ruoyi.common.core.domain.AjaxResult; | ||||
| @@ -126,7 +120,6 @@ public class SqBookmarkController extends BaseController | ||||
|     /** | ||||
|      * 查询书签管理列表 聚合>> 星标 稍后看 最新书签 | ||||
|      */ | ||||
| //    @PreAuthorize("@ss.hasPermi('bookmark:bookmark:list')") | ||||
|     @GetMapping("/listByUserAndPolymerization") | ||||
|     public TableDataInfo listByUserAndPolymerization(SqBookmark sqBookmark) | ||||
|     { | ||||
| @@ -207,4 +200,15 @@ public class SqBookmarkController extends BaseController | ||||
|     { | ||||
|         return toAjax(sqBookmarkService.deleteSqBookmarkByIds(bookmarkIds)); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * 用户-根据标签查询书签分页 | ||||
|      */ | ||||
|     @GetMapping(value = "/listByTag") | ||||
|     public TableDataInfo listByTag(SqBookmarkReq sqBookmarkReq){ | ||||
|         sqBookmarkReq.setUserid(getAuthUser().getUserId()); | ||||
|         startPage(); | ||||
|         return getDataTable(sqBookmarkService.getlistByTag(sqBookmarkReq)); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -2,7 +2,9 @@ package com.ruoyi.web.controller.yunbookmark; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import com.ruoyi.bookmark.pojo.SqTagReq; | ||||
| import com.ruoyi.common.core.domain.entity.SysUser; | ||||
| import org.springframework.beans.BeanUtils; | ||||
| import org.springframework.security.access.prepost.PreAuthorize; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.GetMapping; | ||||
| @@ -53,14 +55,40 @@ public class SqTagController extends BaseController | ||||
|      * 模糊查书签TAG | ||||
|      */ | ||||
|     @GetMapping("/listByUserLike") | ||||
|     public TableDataInfo listByUserLike() | ||||
|     public TableDataInfo listByUserLike(SqTagReq req) | ||||
|     { | ||||
|         SqTag sqTag =  new SqTag(); | ||||
|         BeanUtils.copyProperties(req,sqTag); | ||||
|         sqTag.setUserId(getAuthUser().getUserId()); | ||||
|         startPage(); | ||||
|         List<SqTag> list = sqTagService.selectSqTagList(new SqTag(getAuthUser().getUserId())); | ||||
|         List<SqTag> list = sqTagService.selectSqTagList(sqTag); | ||||
|         return getDataTable(list); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * 新增书签_标签 | ||||
|      */ | ||||
|     @PostMapping("/addByUser") | ||||
|     public AjaxResult addByUser(SqTagReq req) | ||||
|     { | ||||
|         SqTag sqTag =  new SqTag(); | ||||
|         BeanUtils.copyProperties(req,sqTag); | ||||
|         sqTag.setUserId(getAuthUser().getUserId()); | ||||
|         return toAjax(sqTagService.insertSqTag(sqTag)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 修改书签_标签 | ||||
|      */ | ||||
|     @PutMapping("/editByUser") | ||||
|     public AjaxResult editByUser(SqTagReq req) | ||||
|     { | ||||
|         SqTag sqTag =  new SqTag(); | ||||
|         BeanUtils.copyProperties(req,sqTag); | ||||
|         sqTag.setUserId(getAuthUser().getUserId()); | ||||
|         return toAjax(sqTagService.updateSqTag(sqTag)); | ||||
|     } | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -71,29 +71,29 @@ | ||||
|                     </el-dropdown-item> | ||||
|                     <el-dropdown-item class="filter-item" command="1"><i class="el-icon-bottom"></i>按时间排序(反) | ||||
|                     </el-dropdown-item> | ||||
|                     <el-dropdown-item class="filter-item" command="2"><i class="el-icon-bottom"></i>按标题A-Z排序(正) | ||||
|                     </el-dropdown-item> | ||||
|                     <el-dropdown-item class="filter-item" command="3"><i class="el-icon-bottom"></i>按标题A-Z排序(反) | ||||
|                     </el-dropdown-item> | ||||
| <!--                    <el-dropdown-item class="filter-item" command="2"><i class="el-icon-bottom"></i>按标题A-Z排序(正)--> | ||||
| <!--                    </el-dropdown-item>--> | ||||
| <!--                    <el-dropdown-item class="filter-item" command="3"><i class="el-icon-bottom"></i>按标题A-Z排序(反)--> | ||||
| <!--                    </el-dropdown-item>--> | ||||
|                   </el-dropdown-menu> | ||||
|                 </el-dropdown> | ||||
|  | ||||
|               </div> | ||||
|               <div class="filter-content"> | ||||
|                 <el-dropdown trigger="hover" size="small"> | ||||
|                   <div class="el-dropdown-link dropdownList"> | ||||
|                     <el-button icon="el-icon-tickets" style="border:0px;font-size: 18px;" size="mini"></el-button> | ||||
|                   </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>按字母A-Z排序</el-dropdown-item> | ||||
|                     <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按字母A-Z排序</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 class="filter-content">--> | ||||
| <!--                <el-dropdown trigger="hover" size="small">--> | ||||
| <!--                  <div class="el-dropdown-link dropdownList">--> | ||||
| <!--                    <el-button icon="el-icon-tickets" style="border:0px;font-size: 18px;" size="mini"></el-button>--> | ||||
| <!--                  </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>按字母A-Z排序</el-dropdown-item>--> | ||||
| <!--                    <el-dropdown-item class="filter-item"><i class="el-icon-bottom"></i>按字母A-Z排序</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> | ||||
|           </div> | ||||
| @@ -362,6 +362,7 @@ | ||||
|         Ueditor:undefined,//点击的编辑器文章id | ||||
|         noteId:undefined, //点击的noteId | ||||
|         user:'',//登陆的用户信息 | ||||
|         sortState:true,//是否进行请求书签的拼接,切换排序规则时,不能进行拼接,重新渲染数据  false表示切换了 true没切换 | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -744,7 +745,13 @@ | ||||
|         this.queryParams.bkOrderBy=""; | ||||
|         listByUserAndPolymerization(this.queryParams).then(response => { | ||||
|             if (response.code == 200) { | ||||
|               this.bookmarkList = this.bookmarkList.concat(response.rows); | ||||
|               //如果进行了排序切换 就不能进行拼接 | ||||
|               if (this.sortState){ | ||||
|                   this.bookmarkList = this.bookmarkList.concat(response.rows); | ||||
|               }else{ | ||||
|                   this.bookmarkList = response.rows; | ||||
|                   this.sortState = false; | ||||
|               } | ||||
|               this.total = response.total; | ||||
|               this.listloading = false | ||||
|               this.loading = false; | ||||
| @@ -787,7 +794,11 @@ | ||||
|  | ||||
|       /**切换排序规则**/ | ||||
|       handleCommand(command) { | ||||
|         if (this.queryParams.sort != command){ | ||||
|           this.sortState = false;//是否切换了新的排序规则方式 false表示切换了 true没切换 | ||||
|         } | ||||
|         this.queryParams.sort = command; | ||||
|  | ||||
|         this.getBypropertyList(this.property); | ||||
|  | ||||
|       }, | ||||
|   | ||||
| @@ -32,14 +32,14 @@ | ||||
|               <span>稍后看</span> | ||||
|               <span class="menuCount">5</span> | ||||
|             </div> | ||||
|             <div class="aside-title"><i class="el-icon-view"></i> | ||||
|               <span>发现</span> | ||||
|               <span class="menuCount"></span> | ||||
|             </div> | ||||
|             <div class="aside-title"><i class="el-icon-message"></i> | ||||
|               <span>收件箱</span> | ||||
|               <span class="menuCount">5</span> | ||||
|             </div> | ||||
| <!--            <div class="aside-title"><i class="el-icon-view"></i>--> | ||||
| <!--              <span>发现</span>--> | ||||
| <!--              <span class="menuCount"></span>--> | ||||
| <!--            </div>--> | ||||
| <!--            <div class="aside-title"><i class="el-icon-message"></i>--> | ||||
| <!--              <span>收件箱</span>--> | ||||
| <!--              <span class="menuCount">5</span>--> | ||||
| <!--            </div>--> | ||||
|  | ||||
|  | ||||
|             <div class="aside-titleB"  @mouseenter="eidtMenuText=!eidtMenuText" @mouseleave="eidtMenuText=!eidtMenuText"> | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package com.ruoyi.bookmark.mapper; | ||||
|  | ||||
| import com.ruoyi.bookmark.domain.SqBookmark; | ||||
| import com.ruoyi.bookmark.pojo.SqBookmarkReq; | ||||
| import com.ruoyi.common.mybatisMapper.MyMapper; | ||||
| import org.apache.ibatis.annotations.Param; | ||||
|  | ||||
| @@ -120,4 +121,6 @@ public interface SqBookmarkMapper extends MyMapper<SqBookmark> | ||||
|      * | ||||
|      */ | ||||
|     List<SqBookmark> listByUserAndPolymerization(SqBookmark sqBookmark); | ||||
|  | ||||
|     List<SqBookmark> getlistByTag(SqBookmarkReq sqBookmarkReq); | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,92 @@ | ||||
| package com.ruoyi.bookmark.pojo; | ||||
|  | ||||
| import com.fasterxml.jackson.annotation.JsonFormat; | ||||
| import com.ruoyi.common.annotation.Excel; | ||||
| import lombok.Data; | ||||
| import lombok.ToString; | ||||
|  | ||||
| import javax.persistence.*; | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| /** | ||||
|  * 书签管理对象 sq_bookmark   不存在的字段注解 @Transient | ||||
|  * | ||||
|  */ | ||||
| @Data | ||||
| public class SqBookmarkReq | ||||
| { | ||||
|     private Long bookmarkId; | ||||
|  | ||||
|     private Long userid; | ||||
|  | ||||
|     /** 书签标题 */ | ||||
|     private String title; | ||||
|  | ||||
|     /** 书签地址 */ | ||||
|     private String url; | ||||
|  | ||||
|     /** 官网地址 */ | ||||
|     private String urls; | ||||
|  | ||||
|     /** 书签描述 */ | ||||
|     private String description; | ||||
|  | ||||
|     /** 图片 */ | ||||
|     private String image; | ||||
|  | ||||
|     /** 标签 */ | ||||
|     private String label; | ||||
|  | ||||
|     /** 分类ID */ | ||||
|     private Long menuId; | ||||
|  | ||||
|     /** 点赞数 */ | ||||
|     private Long zcount; | ||||
|  | ||||
|     /** 0 未删除 1表示删除 */ | ||||
|     private Integer idelete; | ||||
|  | ||||
|     /** 0公开显示 1隐藏显示 2好友显示 3稍后再看 */ | ||||
|     private Integer start; | ||||
|  | ||||
|     /** 0非星标 1星标 */ | ||||
|     private Integer bookmarkStar; | ||||
|  | ||||
|     /** 创建时间 */ | ||||
|     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||||
|     private Date createTime; | ||||
|  | ||||
|     /**tag名称串**/ | ||||
|     private String tagNameAll; | ||||
|  | ||||
|     /**是否稍后读 0不是 1是**/ | ||||
|     private Integer seeYouLater; | ||||
|  | ||||
|     private Long parentId; | ||||
|  | ||||
|     /** 书签的类型 星标 稍后看 最新书签 **/ | ||||
|     private String type; | ||||
|  | ||||
|     /** 排序的方式 **/ | ||||
|     private String sort; | ||||
|  | ||||
|     /** 搜索 **/ | ||||
|     private String sousuo; | ||||
|  | ||||
|     /** 标签ID **/ | ||||
|     private Long tagId; | ||||
|  | ||||
|  | ||||
|  | ||||
|     private List<Map<String,Object>> sqTags; | ||||
|     public SqBookmarkReq(){ | ||||
|     } | ||||
|  | ||||
|     public SqBookmarkReq(String url, Long userid){ | ||||
|         this.url = url; | ||||
|         this.userid = userid; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,45 @@ | ||||
| package com.ruoyi.bookmark.pojo; | ||||
|  | ||||
| import com.fasterxml.jackson.annotation.JsonFormat; | ||||
| import com.ruoyi.common.annotation.Excel; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| import javax.persistence.Column; | ||||
| import javax.persistence.GeneratedValue; | ||||
| import javax.persistence.Id; | ||||
| import javax.persistence.Table; | ||||
| import java.util.Date; | ||||
|  | ||||
| /** | ||||
|  * 书签_标签对象 sq_tag | ||||
|  * | ||||
|  * @author ruoyi | ||||
|  * @date 2020-09-05 | ||||
|  */ | ||||
| @Data | ||||
| public class SqTagReq | ||||
| { | ||||
|     /** 书签标签id */ | ||||
|     private Long id; | ||||
|  | ||||
|     /** 标签名字 */ | ||||
|     private String name; | ||||
|  | ||||
|     /** 链接 */ | ||||
|     private String url; | ||||
|  | ||||
|     /** 状态  0显示默认*/ | ||||
|     private Integer status; | ||||
|  | ||||
|  | ||||
|     /** 标签的字体颜色 */ | ||||
|     private String isFontColor; | ||||
|  | ||||
|     /** 标签的背景颜色 */ | ||||
|     private String isBgColor; | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -2,6 +2,7 @@ package com.ruoyi.bookmark.service; | ||||
|  | ||||
| import java.util.List; | ||||
| import com.ruoyi.bookmark.domain.SqBookmark; | ||||
| import com.ruoyi.bookmark.pojo.SqBookmarkReq; | ||||
| import com.ruoyi.common.utils.bookmarkhtml.HtmlName; | ||||
|  | ||||
| /** | ||||
| @@ -170,4 +171,12 @@ public interface ISqBookmarkService | ||||
|      * | ||||
|      */ | ||||
|     List<SqBookmark> listByUserAndPolymerization(SqBookmark sqBookmark); | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      *  用户根据标签ID 查询对应的书签 分页 | ||||
|      *  @param | ||||
|      * | ||||
|      */ | ||||
|     List<SqBookmark> getlistByTag(SqBookmarkReq sqBookmarkReq); | ||||
| } | ||||
|   | ||||
| @@ -19,6 +19,7 @@ import com.ruoyi.bookmark.mapper.SqBookmarkTagMapper; | ||||
| import com.ruoyi.bookmark.mapper.SqMenuMapper; | ||||
| import com.ruoyi.bookmark.mapper.SqTagMapper; | ||||
|  | ||||
| import com.ruoyi.bookmark.pojo.SqBookmarkReq; | ||||
| import com.ruoyi.bookmark.service.ISqTagService; | ||||
|  | ||||
| import com.ruoyi.common.utils.StringUtils; | ||||
| @@ -135,7 +136,7 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService | ||||
|         } catch (MalformedURLException e) { | ||||
|             logger.info("用户ID:"+sqBookmark.getUserid()+",新增书签"+sqBookmark.getUrl()+"获取网址的 主机信息 报错 -"+new Date()); | ||||
|         } | ||||
|         if(null==sqBookmark.getDescription()||"".equals(sqBookmark.getDescription())){ | ||||
|         if(StringUtils.isEmpty(sqBookmark.getDescription())){ | ||||
|             sqBookmark.setDescription(sqBookmark.getTitle()); | ||||
|         } | ||||
|         //转换传入的父级ID | ||||
| @@ -537,5 +538,11 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService | ||||
|         return sqBookmarkMapper.listByUserAndPolymerization(search); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<SqBookmark> getlistByTag(SqBookmarkReq sqBookmarkReq) { | ||||
|  | ||||
|         return sqBookmarkMapper.getlistByTag(sqBookmarkReq); | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -210,4 +210,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||||
|             </choose> | ||||
|         </where> | ||||
|     </select> | ||||
|  | ||||
|  | ||||
|     <select id="getlistByTag" parameterType="com.ruoyi.bookmark.pojo.SqBookmarkReq" resultMap="SqBookmarkResult"> | ||||
|     SELECT sb.* FROM sq_bookmark_tag as sbt LEFT JOIN sq_bookmark as sb ON sbt.bookmark_id = sb.bookmark_id | ||||
|     WHERE sbt.tag_id = #{tagId} AND sb.userid = #{userid} AND sb.idelete = 0 | ||||
|     ORDER BY | ||||
|         <choose> | ||||
|             <when test="sort == 0"> | ||||
|                 sb.create_time desc | ||||
|             </when> | ||||
|             <when test="sort == 1"> | ||||
|                 sb.create_time asc | ||||
|             </when> | ||||
|             <when test="sort == 2"> | ||||
|                 sb.CONVERT(sb.title USING GBK) asc | ||||
|             </when> | ||||
|             <when test="sort == 3"> | ||||
|                 sb.CONVERT(sb.title USING GBK) desc | ||||
|             </when> | ||||
|             <otherwise> | ||||
|                 sb.create_time desc | ||||
|             </otherwise> | ||||
|         </choose> | ||||
|     </select> | ||||
| </mapper> | ||||
|   | ||||
| @@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||||
|     <select id="selectSqTagList" parameterType="SqTag" resultMap="SqTagResult"> | ||||
|         <include refid="selectSqTagVo"/> | ||||
|         <where> | ||||
|             <if test="name != null  and name != ''"> and name =  #{name}</if> | ||||
|             <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if> | ||||
|             <if test="icount != null "> and icount = #{icount}</if> | ||||
|             <if test="userId != null "> and user_Id = #{userId}</if> | ||||
|             <if test="isFontColor != null  and isFontColor != ''"> and is_font_color = #{isFontColor}</if> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user