书签管理模块

This commit is contained in:
WangHao 2020-08-02 23:12:48 +08:00
parent 9d816391db
commit c4b4684e68
26 changed files with 743 additions and 1246 deletions

53
pom.xml
View File

@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi</artifactId>
<version>3.0.0</version>
@ -11,7 +11,7 @@
<name>ruoyi</name>
<url>http://www.ruoyi.vip</url>
<description>若依管理系统</description>
<properties>
<ruoyi.version>3.0.0</ruoyi.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@ -31,11 +31,11 @@
<velocity.version>1.7</velocity.version>
<jwt.version>0.9.0</jwt.version>
</properties>
<!-- 依赖声明 -->
<dependencyManagement>
<dependencies>
<!-- SpringBoot的依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
@ -44,35 +44,35 @@
<type>pom</type>
<scope>import</scope>
</dependency>
<!--阿里数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- 解析客户端操作系统、浏览器等 -->
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
<version>${bitwalker.version}</version>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.boot.version}</version>
</dependency>
<!-- 获取系统信息 -->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>${oshi.version}</version>
</dependency>
<!-- swagger2-->
<dependency>
<groupId>io.springfox</groupId>
@ -89,84 +89,84 @@
</exclusion>
</exclusions>
</dependency>
<!-- swagger2-UI-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<!--文件上传工具类 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons.fileupload.version}</version>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
<!--velocity代码生成使用模板 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>${velocity.version}</version>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!--Token生成与解析-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<!--验证码 -->
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
</dependency>
<!-- 定时任务-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-quartz</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 代码生成-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-generator</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 核心模块-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 系统模块-->
<dependency>
<groupId>com.ruoyi</groupId>
@ -174,13 +174,13 @@
<version>${ruoyi.version}</version>
</dependency>
<!-- 系统模块-->
<!-- yunbookmark系统模块-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-bookmark</artifactId>
<artifactId>ruoyi-yunbookmark</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 通用工具-->
<dependency>
<groupId>com.ruoyi</groupId>
@ -198,7 +198,8 @@
<module>ruoyi-quartz</module>
<module>ruoyi-generator</module>
<module>ruoyi-common</module>
<module>ruoyi-bookmark</module>
<module>ruoyi-yunbookmark</module>
</modules>
<packaging>pom</packaging>
@ -247,4 +248,4 @@
</pluginRepository>
</pluginRepositories>
</project>
</project>

View File

@ -72,10 +72,7 @@
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-generator</artifactId>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-bookmark</artifactId>
</dependency>
</dependencies>
<build>
@ -95,17 +92,17 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
</project>
</project>

View File

@ -1,97 +0,0 @@
package com.ruoyi.web.controller.bookmark;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.sq.domain.SqLabel;
import com.ruoyi.sq.service.ISqLabelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 书签_标签Controller
*
* @author wanghao
* @date 2020-07-26
*/
@RestController
@RequestMapping("/bookmark/label")
public class SqLabelController extends BaseController
{
@Autowired
private ISqLabelService sqLabelService;
/**
* 查询书签_标签列表
*/
@PreAuthorize("@ss.hasPermi('bookmark:label:list')")
@GetMapping("/list")
public TableDataInfo list(SqLabel sqLabel)
{
startPage();
List<SqLabel> list = sqLabelService.selectSqLabelList(sqLabel);
return getDataTable(list);
}
/**
* 导出书签_标签列表
*/
@PreAuthorize("@ss.hasPermi('bookmark:label:export')")
@Log(title = "书签_标签", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(SqLabel sqLabel)
{
List<SqLabel> list = sqLabelService.selectSqLabelList(sqLabel);
ExcelUtil<SqLabel> util = new ExcelUtil<SqLabel>(SqLabel.class);
return util.exportExcel(list, "label");
}
/**
* 获取书签_标签详细信息
*/
@PreAuthorize("@ss.hasPermi('bookmark:label:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(sqLabelService.selectSqLabelById(id));
}
/**
* 新增书签_标签
*/
@PreAuthorize("@ss.hasPermi('bookmark:label:add')")
@Log(title = "书签_标签", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SqLabel sqLabel)
{
return toAjax(sqLabelService.insertSqLabel(sqLabel));
}
/**
* 修改书签_标签
*/
@PreAuthorize("@ss.hasPermi('bookmark:label:edit')")
@Log(title = "书签_标签", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SqLabel sqLabel)
{
return toAjax(sqLabelService.updateSqLabel(sqLabel));
}
/**
* 删除书签_标签
*/
@PreAuthorize("@ss.hasPermi('bookmark:label:remove')")
@Log(title = "书签_标签", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(sqLabelService.deleteSqLabelByIds(ids));
}
}

View File

@ -1,97 +0,0 @@
package com.ruoyi.web.controller.bookmark;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.sq.domain.SqMenu;
import com.ruoyi.sq.service.ISqMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 书签_菜单Controller
*
* @author wanghao
* @date 2020-07-26
*/
@RestController
@RequestMapping("/bookmark/menu")
public class SqMenuController extends BaseController
{
@Autowired
private ISqMenuService sqMenuService;
/**
* 查询书签_菜单列表
*/
@PreAuthorize("@ss.hasPermi('bookmark:menu:list')")
@GetMapping("/list")
public TableDataInfo list(SqMenu sqMenu)
{
startPage();
List<SqMenu> list = sqMenuService.selectSqMenuList(sqMenu);
return getDataTable(list);
}
/**
* 导出书签_菜单列表
*/
@PreAuthorize("@ss.hasPermi('bookmark:menu:export')")
@Log(title = "书签_菜单", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(SqMenu sqMenu)
{
List<SqMenu> list = sqMenuService.selectSqMenuList(sqMenu);
ExcelUtil<SqMenu> util = new ExcelUtil<SqMenu>(SqMenu.class);
return util.exportExcel(list, "menu");
}
/**
* 获取书签_菜单详细信息
*/
@PreAuthorize("@ss.hasPermi('bookmark:menu:query')")
@GetMapping(value = "/{menuId}")
public AjaxResult getInfo(@PathVariable("menuId") Long menuId)
{
return AjaxResult.success(sqMenuService.selectSqMenuById(menuId));
}
/**
* 新增书签_菜单
*/
@PreAuthorize("@ss.hasPermi('bookmark:menu:add')")
@Log(title = "书签_菜单", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SqMenu sqMenu)
{
return toAjax(sqMenuService.insertSqMenu(sqMenu));
}
/**
* 修改书签_菜单
*/
@PreAuthorize("@ss.hasPermi('bookmark:menu:edit')")
@Log(title = "书签_菜单", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SqMenu sqMenu)
{
return toAjax(sqMenuService.updateSqMenu(sqMenu));
}
/**
* 删除书签_菜单
*/
@PreAuthorize("@ss.hasPermi('bookmark:menu:remove')")
@Log(title = "书签_菜单", businessType = BusinessType.DELETE)
@DeleteMapping("/{menuIds}")
public AjaxResult remove(@PathVariable Long[] menuIds)
{
return toAjax(sqMenuService.deleteSqMenuByIds(menuIds));
}
}

View File

@ -1,26 +1,32 @@
package com.ruoyi.web.controller.bookmark;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.sq.domain.SqBookmark;
import com.ruoyi.sq.service.ISqBookmarkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
package com.ruoyi.web.controller.yunbookmark;
import java.util.List;
import com.ruoyi.bookmark.domain.SqBookmark;
import com.ruoyi.bookmark.service.ISqBookmarkService;
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 com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 书签Controller
*
* 书签管理Controller
*
* @author wanghao
* @date 2020-07-26
* @date 2020-08-02
*/
@RestController
@RequestMapping("/bookmark/bookmark")
@ -29,10 +35,23 @@ public class SqBookmarkController extends BaseController
@Autowired
private ISqBookmarkService sqBookmarkService;
/**
* 查询书签列表
* 查询用户栏目下的书签
* @return
*/
@GetMapping("/selectBymenuIdUserID")
public TableDataInfo selectBymenuIdUserID(Long menuID, Long userID) {
startPage();
List<SqBookmark> list = sqBookmarkService.selectBymenuIdUserID(menuID,userID);
return getDataTable(list);
}
/**
* 查询书签管理列表
*/
@Log(title = "用户管理", businessType = BusinessType.SELECT)
@PreAuthorize("@ss.hasPermi('bookmark:bookmark:list')")
@GetMapping("/list")
public TableDataInfo list(SqBookmark sqBookmark)
@ -43,10 +62,10 @@ public class SqBookmarkController extends BaseController
}
/**
* 导出书签列表
* 导出书签管理列表
*/
@PreAuthorize("@ss.hasPermi('bookmark:bookmark:export')")
@Log(title = "书签", businessType = BusinessType.EXPORT)
@Log(title = "书签管理", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(SqBookmark sqBookmark)
{
@ -56,9 +75,8 @@ public class SqBookmarkController extends BaseController
}
/**
* 获取书签详细信息
* 获取书签管理详细信息
*/
@Log(title = "查询书签信息ID", businessType = BusinessType.SELECT)
@PreAuthorize("@ss.hasPermi('bookmark:bookmark:query')")
@GetMapping(value = "/{bookmarkId}")
public AjaxResult getInfo(@PathVariable("bookmarkId") Long bookmarkId)
@ -67,10 +85,10 @@ public class SqBookmarkController extends BaseController
}
/**
* 新增书签
* 新增书签管理
*/
@PreAuthorize("@ss.hasPermi('bookmark:bookmark:add')")
@Log(title = "新增书签", businessType = BusinessType.INSERT)
@Log(title = "书签管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SqBookmark sqBookmark)
{
@ -78,10 +96,10 @@ public class SqBookmarkController extends BaseController
}
/**
* 修改书签
* 修改书签管理
*/
@PreAuthorize("@ss.hasPermi('bookmark:bookmark:edit')")
@Log(title = "修改书签", businessType = BusinessType.UPDATE)
@Log(title = "书签管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SqBookmark sqBookmark)
{
@ -89,10 +107,10 @@ public class SqBookmarkController extends BaseController
}
/**
* 删除书签
* 删除书签管理
*/
@PreAuthorize("@ss.hasPermi('bookmark:bookmark:remove')")
@Log(title = "删除书签", businessType = BusinessType.DELETE)
@Log(title = "书签管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{bookmarkIds}")
public AjaxResult remove(@PathVariable Long[] bookmarkIds)
{

View File

@ -1,94 +0,0 @@
package com.ruoyi.sq.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 书签_标签对象 sq_label
*
* @author wanghao
* @date 2020-07-26
*/
public class SqLabel extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 书签所属id */
@Excel(name = "书签所属id")
private Integer userId;
/** 书签名字 */
@Excel(name = "书签名字")
private String labelName;
/** 排序 */
@Excel(name = "排序")
private Integer order;
/** 使用数量 */
@Excel(name = "使用数量")
private Long labelCount;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setUserId(Integer userId)
{
this.userId = userId;
}
public Integer getUserId()
{
return userId;
}
public void setLabelName(String labelName)
{
this.labelName = labelName;
}
public String getLabelName()
{
return labelName;
}
public void setOrder(Integer order)
{
this.order = order;
}
public Integer getOrder()
{
return order;
}
public void setLabelCount(Long labelCount)
{
this.labelCount = labelCount;
}
public Long getLabelCount()
{
return labelCount;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("userId", getUserId())
.append("labelName", getLabelName())
.append("order", getOrder())
.append("createTime", getCreateTime())
.append("labelCount", getLabelCount())
.toString();
}
}

View File

@ -1,122 +0,0 @@
package com.ruoyi.sq.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 书签_菜单对象 sq_menu
*
* @author wanghao
* @date 2020-07-26
*/
public class SqMenu extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long menuId;
/** 归属用户ID */
@Excel(name = "归属用户ID")
private Long userId;
/** 分类名称 */
@Excel(name = "分类名称")
private String menuName;
/** 菜单url */
@Excel(name = "菜单url")
private String menuUrl;
/** 菜单图标 */
@Excel(name = "菜单图标")
private String menuIcon;
/** 父菜单id */
@Excel(name = "父菜单id")
private Long parentId;
/** 菜单顺序 */
@Excel(name = "菜单顺序")
private Integer menuOrder;
public void setMenuId(Long menuId)
{
this.menuId = menuId;
}
public Long getMenuId()
{
return menuId;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Long getUserId()
{
return userId;
}
public void setMenuName(String menuName)
{
this.menuName = menuName;
}
public String getMenuName()
{
return menuName;
}
public void setMenuUrl(String menuUrl)
{
this.menuUrl = menuUrl;
}
public String getMenuUrl()
{
return menuUrl;
}
public void setMenuIcon(String menuIcon)
{
this.menuIcon = menuIcon;
}
public String getMenuIcon()
{
return menuIcon;
}
public void setParentId(Long parentId)
{
this.parentId = parentId;
}
public Long getParentId()
{
return parentId;
}
public void setMenuOrder(Integer menuOrder)
{
this.menuOrder = menuOrder;
}
public Integer getMenuOrder()
{
return menuOrder;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("menuId", getMenuId())
.append("userId", getUserId())
.append("menuName", getMenuName())
.append("menuUrl", getMenuUrl())
.append("menuIcon", getMenuIcon())
.append("parentId", getParentId())
.append("menuOrder", getMenuOrder())
.append("createTime", getCreateTime())
.toString();
}
}

View File

@ -1,61 +0,0 @@
package com.ruoyi.sq.mapper;
import java.util.List;
import com.ruoyi.sq.domain.SqBookmark;
/**
* 书签Mapper接口
*
* @author wanghao
* @date 2020-07-26
*/
public interface SqBookmarkMapper
{
/**
* 查询书签
*
* @param bookmarkId 书签ID
* @return 书签
*/
public SqBookmark selectSqBookmarkById(Long bookmarkId);
/**
* 查询书签列表
*
* @param sqBookmark 书签
* @return 书签集合
*/
public List<SqBookmark> selectSqBookmarkList(SqBookmark sqBookmark);
/**
* 新增书签
*
* @param sqBookmark 书签
* @return 结果
*/
public int insertSqBookmark(SqBookmark sqBookmark);
/**
* 修改书签
*
* @param sqBookmark 书签
* @return 结果
*/
public int updateSqBookmark(SqBookmark sqBookmark);
/**
* 删除书签
*
* @param bookmarkId 书签ID
* @return 结果
*/
public int deleteSqBookmarkById(Long bookmarkId);
/**
* 批量删除书签
*
* @param bookmarkIds 需要删除的数据ID
* @return 结果
*/
public int deleteSqBookmarkByIds(Long[] bookmarkIds);
}

View File

@ -1,62 +0,0 @@
package com.ruoyi.sq.mapper;
import com.ruoyi.sq.domain.SqLabel;
import java.util.List;
/**
* 书签_标签Mapper接口
*
* @author wanghao
* @date 2020-07-26
*/
public interface SqLabelMapper
{
/**
* 查询书签_标签
*
* @param id 书签_标签ID
* @return 书签_标签
*/
public SqLabel selectSqLabelById(Long id);
/**
* 查询书签_标签列表
*
* @param sqLabel 书签_标签
* @return 书签_标签集合
*/
public List<SqLabel> selectSqLabelList(SqLabel sqLabel);
/**
* 新增书签_标签
*
* @param sqLabel 书签_标签
* @return 结果
*/
public int insertSqLabel(SqLabel sqLabel);
/**
* 修改书签_标签
*
* @param sqLabel 书签_标签
* @return 结果
*/
public int updateSqLabel(SqLabel sqLabel);
/**
* 删除书签_标签
*
* @param id 书签_标签ID
* @return 结果
*/
public int deleteSqLabelById(Long id);
/**
* 批量删除书签_标签
*
* @param ids 需要删除的数据ID
* @return 结果
*/
public int deleteSqLabelByIds(Long[] ids);
}

View File

@ -1,61 +0,0 @@
package com.ruoyi.sq.mapper;
import java.util.List;
import com.ruoyi.sq.domain.SqMenu;
/**
* 书签_菜单Mapper接口
*
* @author wanghao
* @date 2020-07-26
*/
public interface SqMenuMapper
{
/**
* 查询书签_菜单
*
* @param menuId 书签_菜单ID
* @return 书签_菜单
*/
public SqMenu selectSqMenuById(Long menuId);
/**
* 查询书签_菜单列表
*
* @param sqMenu 书签_菜单
* @return 书签_菜单集合
*/
public List<SqMenu> selectSqMenuList(SqMenu sqMenu);
/**
* 新增书签_菜单
*
* @param sqMenu 书签_菜单
* @return 结果
*/
public int insertSqMenu(SqMenu sqMenu);
/**
* 修改书签_菜单
*
* @param sqMenu 书签_菜单
* @return 结果
*/
public int updateSqMenu(SqMenu sqMenu);
/**
* 删除书签_菜单
*
* @param menuId 书签_菜单ID
* @return 结果
*/
public int deleteSqMenuById(Long menuId);
/**
* 批量删除书签_菜单
*
* @param menuIds 需要删除的数据ID
* @return 结果
*/
public int deleteSqMenuByIds(Long[] menuIds);
}

View File

@ -1,61 +0,0 @@
package com.ruoyi.sq.service;
import java.util.List;
import com.ruoyi.sq.domain.SqBookmark;
/**
* 书签Service接口
*
* @author wanghao
* @date 2020-07-26
*/
public interface ISqBookmarkService
{
/**
* 查询书签
*
* @param bookmarkId 书签ID
* @return 书签
*/
public SqBookmark selectSqBookmarkById(Long bookmarkId);
/**
* 查询书签列表
*
* @param sqBookmark 书签
* @return 书签集合
*/
public List<SqBookmark> selectSqBookmarkList(SqBookmark sqBookmark);
/**
* 新增书签
*
* @param sqBookmark 书签
* @return 结果
*/
public int insertSqBookmark(SqBookmark sqBookmark);
/**
* 修改书签
*
* @param sqBookmark 书签
* @return 结果
*/
public int updateSqBookmark(SqBookmark sqBookmark);
/**
* 批量删除书签
*
* @param bookmarkIds 需要删除的书签ID
* @return 结果
*/
public int deleteSqBookmarkByIds(Long[] bookmarkIds);
/**
* 删除书签信息
*
* @param bookmarkId 书签ID
* @return 结果
*/
public int deleteSqBookmarkById(Long bookmarkId);
}

View File

@ -1,62 +0,0 @@
package com.ruoyi.sq.service;
import com.ruoyi.sq.domain.SqLabel;
import java.util.List;
/**
* 书签_标签Service接口
*
* @author wanghao
* @date 2020-07-26
*/
public interface ISqLabelService
{
/**
* 查询书签_标签
*
* @param id 书签_标签ID
* @return 书签_标签
*/
public SqLabel selectSqLabelById(Long id);
/**
* 查询书签_标签列表
*
* @param sqLabel 书签_标签
* @return 书签_标签集合
*/
public List<SqLabel> selectSqLabelList(SqLabel sqLabel);
/**
* 新增书签_标签
*
* @param sqLabel 书签_标签
* @return 结果
*/
public int insertSqLabel(SqLabel sqLabel);
/**
* 修改书签_标签
*
* @param sqLabel 书签_标签
* @return 结果
*/
public int updateSqLabel(SqLabel sqLabel);
/**
* 批量删除书签_标签
*
* @param ids 需要删除的书签_标签ID
* @return 结果
*/
public int deleteSqLabelByIds(Long[] ids);
/**
* 删除书签_标签信息
*
* @param id 书签_标签ID
* @return 结果
*/
public int deleteSqLabelById(Long id);
}

View File

@ -1,62 +0,0 @@
package com.ruoyi.sq.service;
import com.ruoyi.sq.domain.SqMenu;
import java.util.List;
/**
* 书签_菜单Service接口
*
* @author wanghao
* @date 2020-07-26
*/
public interface ISqMenuService
{
/**
* 查询书签_菜单
*
* @param menuId 书签_菜单ID
* @return 书签_菜单
*/
public SqMenu selectSqMenuById(Long menuId);
/**
* 查询书签_菜单列表
*
* @param sqMenu 书签_菜单
* @return 书签_菜单集合
*/
public List<SqMenu> selectSqMenuList(SqMenu sqMenu);
/**
* 新增书签_菜单
*
* @param sqMenu 书签_菜单
* @return 结果
*/
public int insertSqMenu(SqMenu sqMenu);
/**
* 修改书签_菜单
*
* @param sqMenu 书签_菜单
* @return 结果
*/
public int updateSqMenu(SqMenu sqMenu);
/**
* 批量删除书签_菜单
*
* @param menuIds 需要删除的书签_菜单ID
* @return 结果
*/
public int deleteSqMenuByIds(Long[] menuIds);
/**
* 删除书签_菜单信息
*
* @param menuId 书签_菜单ID
* @return 结果
*/
public int deleteSqMenuById(Long menuId);
}

View File

@ -1,96 +0,0 @@
package com.ruoyi.sq.service.impl;
import com.ruoyi.sq.domain.SqLabel;
import com.ruoyi.sq.service.ISqLabelService;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.sq.mapper.SqLabelMapper;
/**
* 书签_标签Service业务层处理
*
* @author wanghao
* @date 2020-07-26
*/
@Service
public class SqLabelServiceImpl implements ISqLabelService
{
@Autowired
private SqLabelMapper sqLabelMapper;
/**
* 查询书签_标签
*
* @param id 书签_标签ID
* @return 书签_标签
*/
@Override
public SqLabel selectSqLabelById(Long id)
{
return sqLabelMapper.selectSqLabelById(id);
}
/**
* 查询书签_标签列表
*
* @param sqLabel 书签_标签
* @return 书签_标签
*/
@Override
public List<SqLabel> selectSqLabelList(SqLabel sqLabel)
{
return sqLabelMapper.selectSqLabelList(sqLabel);
}
/**
* 新增书签_标签
*
* @param sqLabel 书签_标签
* @return 结果
*/
@Override
public int insertSqLabel(SqLabel sqLabel)
{
sqLabel.setCreateTime(DateUtils.getNowDate());
return sqLabelMapper.insertSqLabel(sqLabel);
}
/**
* 修改书签_标签
*
* @param sqLabel 书签_标签
* @return 结果
*/
@Override
public int updateSqLabel(SqLabel sqLabel)
{
return sqLabelMapper.updateSqLabel(sqLabel);
}
/**
* 批量删除书签_标签
*
* @param ids 需要删除的书签_标签ID
* @return 结果
*/
@Override
public int deleteSqLabelByIds(Long[] ids)
{
return sqLabelMapper.deleteSqLabelByIds(ids);
}
/**
* 删除书签_标签信息
*
* @param id 书签_标签ID
* @return 结果
*/
@Override
public int deleteSqLabelById(Long id)
{
return sqLabelMapper.deleteSqLabelById(id);
}
}

View File

@ -1,97 +0,0 @@
package com.ruoyi.sq.service.impl;
import com.ruoyi.sq.domain.SqMenu;
import com.ruoyi.sq.mapper.SqMenuMapper;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.sq.service.ISqMenuService;
/**
* 书签_菜单Service业务层处理
*
* @author wanghao
* @date 2020-07-26
*/
@Service
public class SqMenuServiceImpl implements ISqMenuService
{
@Autowired
private SqMenuMapper sqMenuMapper;
/**
* 查询书签_菜单
*
* @param menuId 书签_菜单ID
* @return 书签_菜单
*/
@Override
public SqMenu selectSqMenuById(Long menuId)
{
return sqMenuMapper.selectSqMenuById(menuId);
}
/**
* 查询书签_菜单列表
*
* @param sqMenu 书签_菜单
* @return 书签_菜单
*/
@Override
public List<SqMenu> selectSqMenuList(SqMenu sqMenu)
{
return sqMenuMapper.selectSqMenuList(sqMenu);
}
/**
* 新增书签_菜单
*
* @param sqMenu 书签_菜单
* @return 结果
*/
@Override
public int insertSqMenu(SqMenu sqMenu)
{
sqMenu.setCreateTime(DateUtils.getNowDate());
return sqMenuMapper.insertSqMenu(sqMenu);
}
/**
* 修改书签_菜单
*
* @param sqMenu 书签_菜单
* @return 结果
*/
@Override
public int updateSqMenu(SqMenu sqMenu)
{
return sqMenuMapper.updateSqMenu(sqMenu);
}
/**
* 批量删除书签_菜单
*
* @param menuIds 需要删除的书签_菜单ID
* @return 结果
*/
@Override
public int deleteSqMenuByIds(Long[] menuIds)
{
return sqMenuMapper.deleteSqMenuByIds(menuIds);
}
/**
* 删除书签_菜单信息
*
* @param menuId 书签_菜单ID
* @return 结果
*/
@Override
public int deleteSqMenuById(Long menuId)
{
return sqMenuMapper.deleteSqMenuById(menuId);
}
}

View File

@ -1,76 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.sq.mapper.SqLabelMapper">
<resultMap type="SqLabel" id="SqLabelResult">
<result property="id" column="id" />
<result property="userId" column="user_id" />
<result property="labelName" column="label_name" />
<result property="order" column="order" />
<result property="createTime" column="create_time" />
<result property="labelCount" column="label_count" />
</resultMap>
<sql id="selectSqLabelVo">
select id, user_id, label_name, order, create_time, label_count from sq_label
</sql>
<select id="selectSqLabelList" parameterType="SqLabel" resultMap="SqLabelResult">
<include refid="selectSqLabelVo"/>
<where>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="labelName != null and labelName != ''"> and label_name like concat('%', #{labelName}, '%')</if>
<if test="order != null "> and order = #{order}</if>
<if test="labelCount != null "> and label_count = #{labelCount}</if>
</where>
</select>
<select id="selectSqLabelById" parameterType="Long" resultMap="SqLabelResult">
<include refid="selectSqLabelVo"/>
where id = #{id}
</select>
<insert id="insertSqLabel" parameterType="SqLabel" useGeneratedKeys="true" keyProperty="id">
insert into sq_label
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userId != null">user_id,</if>
<if test="labelName != null">label_name,</if>
<if test="order != null">order,</if>
<if test="createTime != null">create_time,</if>
<if test="labelCount != null">label_count,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">#{userId},</if>
<if test="labelName != null">#{labelName},</if>
<if test="order != null">#{order},</if>
<if test="createTime != null">#{createTime},</if>
<if test="labelCount != null">#{labelCount},</if>
</trim>
</insert>
<update id="updateSqLabel" parameterType="SqLabel">
update sq_label
<trim prefix="SET" suffixOverrides=",">
<if test="userId != null">user_id = #{userId},</if>
<if test="labelName != null">label_name = #{labelName},</if>
<if test="order != null">order = #{order},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="labelCount != null">label_count = #{labelCount},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSqLabelById" parameterType="Long">
delete from sq_label where id = #{id}
</delete>
<delete id="deleteSqLabelByIds" parameterType="String">
delete from sq_label where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -1,86 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.sq.mapper.SqMenuMapper">
<resultMap type="SqMenu" id="SqMenuResult">
<result property="menuId" column="menu_id" />
<result property="userId" column="user_id" />
<result property="menuName" column="menu_name" />
<result property="menuUrl" column="menu_url" />
<result property="menuIcon" column="menu_icon" />
<result property="parentId" column="parent_id" />
<result property="menuOrder" column="menu_order" />
<result property="createTime" column="create_time" />
</resultMap>
<sql id="selectSqMenuVo">
select menu_id, user_id, menu_name, menu_url, menu_icon, parent_id, menu_order, create_time from sq_menu
</sql>
<select id="selectSqMenuList" parameterType="SqMenu" resultMap="SqMenuResult">
<include refid="selectSqMenuVo"/>
<where>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="menuName != null and menuName != ''"> and menu_name like concat('%', #{menuName}, '%')</if>
<if test="menuUrl != null and menuUrl != ''"> and menu_url = #{menuUrl}</if>
<if test="menuIcon != null and menuIcon != ''"> and menu_icon = #{menuIcon}</if>
<if test="parentId != null "> and parent_id = #{parentId}</if>
<if test="menuOrder != null "> and menu_order = #{menuOrder}</if>
</where>
</select>
<select id="selectSqMenuById" parameterType="Long" resultMap="SqMenuResult">
<include refid="selectSqMenuVo"/>
where menu_id = #{menuId}
</select>
<insert id="insertSqMenu" parameterType="SqMenu" useGeneratedKeys="true" keyProperty="menuId">
insert into sq_menu
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userId != null">user_id,</if>
<if test="menuName != null">menu_name,</if>
<if test="menuUrl != null">menu_url,</if>
<if test="menuIcon != null">menu_icon,</if>
<if test="parentId != null">parent_id,</if>
<if test="menuOrder != null">menu_order,</if>
<if test="createTime != null">create_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">#{userId},</if>
<if test="menuName != null">#{menuName},</if>
<if test="menuUrl != null">#{menuUrl},</if>
<if test="menuIcon != null">#{menuIcon},</if>
<if test="parentId != null">#{parentId},</if>
<if test="menuOrder != null">#{menuOrder},</if>
<if test="createTime != null">#{createTime},</if>
</trim>
</insert>
<update id="updateSqMenu" parameterType="SqMenu">
update sq_menu
<trim prefix="SET" suffixOverrides=",">
<if test="userId != null">user_id = #{userId},</if>
<if test="menuName != null">menu_name = #{menuName},</if>
<if test="menuUrl != null">menu_url = #{menuUrl},</if>
<if test="menuIcon != null">menu_icon = #{menuIcon},</if>
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="menuOrder != null">menu_order = #{menuOrder},</if>
<if test="createTime != null">create_time = #{createTime},</if>
</trim>
where menu_id = #{menuId}
</update>
<delete id="deleteSqMenuById" parameterType="Long">
delete from sq_menu where menu_id = #{menuId}
</delete>
<delete id="deleteSqMenuByIds" parameterType="String">
delete from sq_menu where menu_id in
<foreach item="menuId" collection="array" open="(" separator="," close=")">
#{menuId}
</foreach>
</delete>
</mapper>

View File

@ -68,7 +68,11 @@
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId>
</dependency>
<!-- 系统模块-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-yunbookmark</artifactId>
</dependency>
</dependencies>
</project>
</project>

View File

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询书签管理列表
export function listBookmark(query) {
return request({
url: '/bookmark/bookmark/list',
method: 'get',
params: query
})
}
// 查询书签管理详细
export function getBookmark(bookmarkId) {
return request({
url: '/bookmark/bookmark/' + bookmarkId,
method: 'get'
})
}
// 新增书签管理
export function addBookmark(data) {
return request({
url: '/bookmark/bookmark',
method: 'post',
data: data
})
}
// 修改书签管理
export function updateBookmark(data) {
return request({
url: '/bookmark/bookmark',
method: 'put',
data: data
})
}
// 删除书签管理
export function delBookmark(bookmarkId) {
return request({
url: '/bookmark/bookmark/' + bookmarkId,
method: 'delete'
})
}
// 导出书签管理
export function exportBookmark(query) {
return request({
url: '/bookmark/bookmark/export',
method: 'get',
params: query
})
}

View File

@ -0,0 +1,398 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
<el-form-item label="用户ID" prop="userid">
<el-input
v-model="queryParams.userid"
placeholder="请输入所属用户ID"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="标题" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入书签标题"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="书签地址" prop="url">-->
<!-- <el-input-->
<!-- v-model="queryParams.url"-->
<!-- placeholder="请输入书签地址"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="书签地址" prop="urls">-->
<!-- <el-input-->
<!-- v-model="queryParams.urls"-->
<!-- placeholder="请输入书签地址"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="书签描述" prop="description">-->
<!-- <el-input-->
<!-- v-model="queryParams.description"-->
<!-- placeholder="请输入书签描述"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="书签描述" prop="image">-->
<!-- <el-input-->
<!-- v-model="queryParams.image"-->
<!-- placeholder="请输入书签描述"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="标签" prop="label">-->
<!-- <el-input-->
<!-- v-model="queryParams.label"-->
<!-- placeholder="请输入标签"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="分类ID" prop="menuId">-->
<!-- <el-input-->
<!-- v-model="queryParams.menuId"-->
<!-- placeholder="请输入分类ID"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="点赞数" prop="zcount">-->
<!-- <el-input-->
<!-- v-model="queryParams.zcount"-->
<!-- placeholder="请输入点赞数"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="0 未删除 1表示删除" prop="idelete">-->
<!-- <el-input-->
<!-- v-model="queryParams.idelete"-->
<!-- placeholder="请输入0 未删除 1表示删除"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="0公开显示 1隐藏显示 2好友显示 3稍后再看" prop="start">-->
<!-- <el-input-->
<!-- v-model="queryParams.start"-->
<!-- placeholder="请输入0公开显示 1隐藏显示 2好友显示 3稍后再看"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['bookmark:bookmark:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['bookmark:bookmark:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['bookmark:bookmark:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['bookmark:bookmark:export']"
>导出</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="bookmarkList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="bookmarkId" />
<el-table-column label="用户ID" align="center" prop="userid" />
<el-table-column label="书签标题" align="center" prop="title" />
<el-table-column label="标签" align="center" prop="label" />
<el-table-column label="点赞数" align="center" prop="zcount" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['bookmark:bookmark:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['bookmark:bookmark:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改书签管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属用户ID" prop="userid">
<el-input v-model="form.userid" placeholder="请输入所属用户ID" />
</el-form-item>
<el-form-item label="书签标题" prop="title">
<el-input v-model="form.title" placeholder="请输入书签标题" />
</el-form-item>
<el-form-item label="书签地址" prop="url">
<el-input v-model="form.url" placeholder="请输入书签地址" />
</el-form-item>
<el-form-item label="书签地址" prop="urls">
<el-input v-model="form.urls" placeholder="请输入书签地址" />
</el-form-item>
<el-form-item label="书签描述" prop="description">
<el-input v-model="form.description" placeholder="请输入书签描述" />
</el-form-item>
<el-form-item label="书签描述" prop="image">
<el-input v-model="form.image" placeholder="请输入书签描述" />
</el-form-item>
<el-form-item label="标签" prop="label">
<el-input v-model="form.label" placeholder="请输入标签" />
</el-form-item>
<el-form-item label="分类ID" prop="menuId">
<el-input v-model="form.menuId" placeholder="请输入分类ID" />
</el-form-item>
<el-form-item label="点赞数" prop="zcount">
<el-input v-model="form.zcount" placeholder="请输入点赞数" />
</el-form-item>
<el-form-item label="0 未删除 1表示删除" prop="idelete">
<el-input v-model="form.idelete" placeholder="请输入0 未删除 1表示删除" />
</el-form-item>
<el-form-item label="0公开显示 1隐藏显示 2好友显示 3稍后再看" prop="start">
<el-input v-model="form.start" placeholder="请输入0公开显示 1隐藏显示 2好友显示 3稍后再看" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listBookmark, getBookmark, delBookmark, addBookmark, updateBookmark, exportBookmark } from "@/api/bookmark/bookmark";
export default {
name: "Bookmark",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
total: 0,
//
bookmarkList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
userid: undefined,
title: undefined,
url: undefined,
urls: undefined,
description: undefined,
image: undefined,
label: undefined,
menuId: undefined,
zcount: undefined,
idelete: undefined,
start: undefined,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询书签管理列表 */
getList() {
this.loading = true;
listBookmark(this.queryParams).then(response => {
this.bookmarkList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
bookmarkId: undefined,
userid: undefined,
title: undefined,
url: undefined,
urls: undefined,
description: undefined,
image: undefined,
label: undefined,
menuId: undefined,
zcount: undefined,
idelete: undefined,
start: undefined,
createTime: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.bookmarkId)
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加书签管理";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const bookmarkId = row.bookmarkId || this.ids
getBookmark(bookmarkId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改书签管理";
});
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.bookmarkId != undefined) {
updateBookmark(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addBookmark(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const bookmarkIds = row.bookmarkId || this.ids;
this.$confirm('是否确认删除书签管理编号为"' + bookmarkIds + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delBookmark(bookmarkIds);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(function() {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有书签管理数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportBookmark(queryParams);
}).then(response => {
this.download(response.msg);
}).catch(function() {});
}
}
};
</script>

View File

@ -9,11 +9,15 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-bookmark</artifactId>
<artifactId>ruoyi-yunbookmark</artifactId>
<description>
bookmark系统模块
yunbookmark系统模块
</description>
<dependencies>
<!-- 通用工具-->
@ -24,4 +28,4 @@
</dependencies>
</project>
</project>

View File

@ -1,4 +1,4 @@
package com.ruoyi.sq.domain;
package com.ruoyi.bookmark.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -6,10 +6,10 @@ import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 书签对象 sq_bookmark
* 书签管理对象 sq_bookmark
*
* @author wanghao
* @date 2020-07-26
* @date 2020-08-02
*/
public class SqBookmark extends BaseEntity
{

View File

@ -0,0 +1,70 @@
package com.ruoyi.bookmark.mapper;
import java.util.List;
import com.ruoyi.bookmark.domain.SqBookmark;
import org.apache.ibatis.annotations.Param;
/**
* 书签管理Mapper接口
*
* @author wanghao
* @date 2020-08-02
*/
public interface SqBookmarkMapper
{
/**
* 查询栏目下书签管理
*
* @param menuID 栏目ID
* @param userID 用户ID
* @return 书签管理
*/
public List<SqBookmark> selectBymenuIdUserID(@Param("menuID") Long menuID,@Param("userID") Long userID);
/**
* 查询书签管理
*
* @param bookmarkId 书签管理ID
* @return 书签管理
*/
public SqBookmark selectSqBookmarkById(Long bookmarkId);
/**
* 查询书签管理列表
*
* @param sqBookmark 书签管理
* @return 书签管理集合
*/
public List<SqBookmark> selectSqBookmarkList(SqBookmark sqBookmark);
/**
* 新增书签管理
*
* @param sqBookmark 书签管理
* @return 结果
*/
public int insertSqBookmark(SqBookmark sqBookmark);
/**
* 修改书签管理
*
* @param sqBookmark 书签管理
* @return 结果
*/
public int updateSqBookmark(SqBookmark sqBookmark);
/**
* 删除书签管理
*
* @param bookmarkId 书签管理ID
* @return 结果
*/
public int deleteSqBookmarkById(Long bookmarkId);
/**
* 批量删除书签管理
*
* @param bookmarkIds 需要删除的数据ID
* @return 结果
*/
public int deleteSqBookmarkByIds(Long[] bookmarkIds);
}

View File

@ -0,0 +1,72 @@
package com.ruoyi.bookmark.service;
import java.util.List;
import com.ruoyi.bookmark.domain.SqBookmark;
/**
* 书签管理Service接口
*
* @author wanghao
* @date 2020-08-02
*/
public interface ISqBookmarkService
{
/**
* 查询用户栏目下书签管理
*
* @param menuID 栏目ID
* @param userID 用户ID
* @return 书签管理
*/
public List<SqBookmark> selectBymenuIdUserID(Long menuID,Long userID);
/**
* 查询书签管理
*
* @param bookmarkId 书签管理ID
* @return 书签管理
*/
public SqBookmark selectSqBookmarkById(Long bookmarkId);
/**
* 查询书签管理列表
*
* @param sqBookmark 书签管理
* @return 书签管理集合
*/
public List<SqBookmark> selectSqBookmarkList(SqBookmark sqBookmark);
/**
* 新增书签管理
*
* @param sqBookmark 书签管理
* @return 结果
*/
public int insertSqBookmark(SqBookmark sqBookmark);
/**
* 修改书签管理
*
* @param sqBookmark 书签管理
* @return 结果
*/
public int updateSqBookmark(SqBookmark sqBookmark);
/**
* 批量删除书签管理
*
* @param bookmarkIds 需要删除的书签管理ID
* @return 结果
*/
public int deleteSqBookmarkByIds(Long[] bookmarkIds);
/**
* 删除书签管理信息
*
* @param bookmarkId 书签管理ID
* @return 结果
*/
public int deleteSqBookmarkById(Long bookmarkId);
}

View File

@ -1,20 +1,18 @@
package com.ruoyi.sq.service.impl;
import com.ruoyi.sq.mapper.SqBookmarkMapper;
import com.ruoyi.sq.service.ISqBookmarkService;
package com.ruoyi.bookmark.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.sq.domain.SqBookmark;
import com.ruoyi.bookmark.mapper.SqBookmarkMapper;
import com.ruoyi.bookmark.domain.SqBookmark;
import com.ruoyi.bookmark.service.ISqBookmarkService;
/**
* 书签Service业务层处理
*
* 书签管理Service业务层处理
*
* @author wanghao
* @date 2020-07-26
* @date 2020-08-02
*/
@Service
public class SqBookmarkServiceImpl implements ISqBookmarkService
@ -23,10 +21,22 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
private SqBookmarkMapper sqBookmarkMapper;
/**
* 查询书签
*
* @param bookmarkId 书签ID
* @return 书签
* 查询书签管理
*
* @param menuID 栏目ID
* @param userID 用户ID
* @return 书签管理
*/
@Override
public List<SqBookmark> selectBymenuIdUserID(Long menuID, Long userID) {
return sqBookmarkMapper.selectBymenuIdUserID(menuID,userID);
}
/**
* 查询书签管理
*
* @param bookmarkId 书签管理ID
* @return 书签管理
*/
@Override
public SqBookmark selectSqBookmarkById(Long bookmarkId)
@ -35,10 +45,10 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
}
/**
* 查询书签列表
*
* @param sqBookmark 书签
* @return 书签
* 查询书签管理列表
*
* @param sqBookmark 书签管理
* @return 书签管理
*/
@Override
public List<SqBookmark> selectSqBookmarkList(SqBookmark sqBookmark)
@ -47,9 +57,9 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
}
/**
* 新增书签
*
* @param sqBookmark 书签
* 新增书签管理
*
* @param sqBookmark 书签管理
* @return 结果
*/
@Override
@ -60,9 +70,9 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
}
/**
* 修改书签
*
* @param sqBookmark 书签
* 修改书签管理
*
* @param sqBookmark 书签管理
* @return 结果
*/
@Override
@ -72,9 +82,9 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
}
/**
* 批量删除书签
*
* @param bookmarkIds 需要删除的书签ID
* 批量删除书签管理
*
* @param bookmarkIds 需要删除的书签管理ID
* @return 结果
*/
@Override
@ -84,9 +94,9 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
}
/**
* 删除书签信息
*
* @param bookmarkId 书签ID
* 删除书签管理信息
*
* @param bookmarkId 书签管理ID
* @return 结果
*/
@Override

View File

@ -2,8 +2,8 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.sq.mapper.SqBookmarkMapper">
<mapper namespace="com.ruoyi.bookmark.mapper.SqBookmarkMapper">
<resultMap type="SqBookmark" id="SqBookmarkResult">
<result property="bookmarkId" column="bookmark_id" />
<result property="userid" column="userid" />
@ -26,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectSqBookmarkList" parameterType="SqBookmark" resultMap="SqBookmarkResult">
<include refid="selectSqBookmarkVo"/>
<where>
<where>
<if test="userid != null "> and userid = #{userid}</if>
<if test="title != null and title != ''"> and title = #{title}</if>
<if test="url != null and url != ''"> and url = #{url}</if>
@ -40,12 +40,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="start != null "> and Start = #{start}</if>
</where>
</select>
<select id="selectSqBookmarkById" parameterType="Long" resultMap="SqBookmarkResult">
<include refid="selectSqBookmarkVo"/>
where bookmark_id = #{bookmarkId}
</select>
<insert id="insertSqBookmark" parameterType="SqBookmark" useGeneratedKeys="true" keyProperty="bookmarkId">
insert into sq_bookmark
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -102,10 +102,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteSqBookmarkByIds" parameterType="String">
delete from sq_bookmark where bookmark_id in
delete from sq_bookmark where bookmark_id in
<foreach item="bookmarkId" collection="array" open="(" separator="," close=")">
#{bookmarkId}
</foreach>
</delete>
</mapper>
<select id="selectBymenuIdUserID" parameterType="SqBookmark" resultMap="SqBookmarkResult">
<include refid="selectSqBookmarkVo"/>
where menu_id = #{menuID} and userid=#{userID}
</select>
</mapper>