From 5854536c704f9a7f4ef10e0bf00cfb9916703eeb Mon Sep 17 00:00:00 2001 From: xiongxiaoyang <1179705413@qq.com> Date: Fri, 14 Apr 2023 22:06:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2nb/common/dao/GeneratorMapper.java | 37 +-- .../controller/BookCommentController.java | 135 +++++++++++ .../com/java2nb/novel/dao/BookCommentDao.java | 32 +++ .../java2nb/novel/domain/BookCommentDO.java | 137 +++++++++++ .../novel/service/BookCommentService.java | 30 +++ .../service/impl/BookCommentServiceImpl.java | 55 +++++ .../src/main/resources/application-dev.yml | 19 +- .../mybatis/novel/BookCommentMapper.xml | 117 ++++++++++ .../static/js/appjs/novel/bookComment/add.js | 107 +++++++++ .../js/appjs/novel/bookComment/bookComment.js | 213 ++++++++++++++++++ .../static/js/appjs/novel/bookComment/edit.js | 103 +++++++++ .../static/sql/novel/bookComment/menu.js | 18 ++ .../templates/novel/bookComment/add.html | 84 +++++++ .../novel/bookComment/bookComment.html | 66 ++++++ .../templates/novel/bookComment/detail.html | 81 +++++++ .../templates/novel/bookComment/edit.html | 86 +++++++ 16 files changed, 1297 insertions(+), 23 deletions(-) create mode 100644 novel-admin/src/main/java/com/java2nb/novel/controller/BookCommentController.java create mode 100644 novel-admin/src/main/java/com/java2nb/novel/dao/BookCommentDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/novel/domain/BookCommentDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/novel/service/BookCommentService.java create mode 100644 novel-admin/src/main/java/com/java2nb/novel/service/impl/BookCommentServiceImpl.java create mode 100644 novel-admin/src/main/resources/mybatis/novel/BookCommentMapper.xml create mode 100644 novel-admin/src/main/resources/static/js/appjs/novel/bookComment/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/novel/bookComment/bookComment.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/novel/bookComment/edit.js create mode 100644 novel-admin/src/main/resources/static/sql/novel/bookComment/menu.js create mode 100644 novel-admin/src/main/resources/templates/novel/bookComment/add.html create mode 100644 novel-admin/src/main/resources/templates/novel/bookComment/bookComment.html create mode 100644 novel-admin/src/main/resources/templates/novel/bookComment/detail.html create mode 100644 novel-admin/src/main/resources/templates/novel/bookComment/edit.html diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/GeneratorMapper.java b/novel-admin/src/main/java/com/java2nb/common/dao/GeneratorMapper.java index 7b360fc..38996bb 100644 --- a/novel-admin/src/main/java/com/java2nb/common/dao/GeneratorMapper.java +++ b/novel-admin/src/main/java/com/java2nb/common/dao/GeneratorMapper.java @@ -1,28 +1,33 @@ package com.java2nb.common.dao; -import java.util.List; -import java.util.Map; - import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; +import java.util.Map; + public interface GeneratorMapper { - @Select("select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables" - + " where table_schema = (select database()) and table_name like concat('%',#{tableName},'%')") - List> list(@Param("tableName") String tableName); - @Select("select count(*) from information_schema.tables where table_schema = (select database())") - int count(Map map); + @Select( + "select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables" + + " where table_schema = 'novel_plus' and table_name like concat('%',#{tableName},'%')") + List> list(@Param("tableName") String tableName); - @Select("select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables \r\n" - + " where table_schema = (select database()) and table_name = #{tableName}") - Map get(String tableName); + @Select("select count(*) from information_schema.tables where table_schema = 'novel_plus'") + int count(Map map); - @Select("select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra from information_schema.columns\r\n" - + " where table_name = #{tableName} and table_schema = (select database()) order by ordinal_position") - List> listColumns(String tableName); + @Select( + "select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables \r\n" + + " where table_schema = 'novel_plus' and table_name = #{tableName}") + Map get(String tableName); - @Select("select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra from information_schema.columns\r\n" - + " where table_name = #{tableName} and table_schema = (select database()) and column_key = 'PRI' limit 1") + @Select( + "select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra from information_schema.columns\r\n" + + " where table_name = #{tableName} and table_schema = 'novel_plus' order by ordinal_position") + List> listColumns(String tableName); + + @Select( + "select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra from information_schema.columns\r\n" + + " where table_name = #{tableName} and table_schema = 'novel_plus' and column_key = 'PRI' limit 1") Map getPriColumn(String tableName); } diff --git a/novel-admin/src/main/java/com/java2nb/novel/controller/BookCommentController.java b/novel-admin/src/main/java/com/java2nb/novel/controller/BookCommentController.java new file mode 100644 index 0000000..cc0175a --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/novel/controller/BookCommentController.java @@ -0,0 +1,135 @@ +package com.java2nb.novel.controller; + +import java.util.List; +import java.util.Map; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import io.swagger.annotations.ApiOperation; + + +import com.java2nb.novel.domain.BookCommentDO; +import com.java2nb.novel.service.BookCommentService; +import com.java2nb.common.utils.PageBean; +import com.java2nb.common.utils.Query; +import com.java2nb.common.utils.R; + +/** + * 小说评论表 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2023-04-14 21:59:28 + */ + +@Controller +@RequestMapping("/novel/bookComment") +public class BookCommentController { + @Autowired + private BookCommentService bookCommentService; + + @GetMapping() + @RequiresPermissions("novel:bookComment:bookComment") + String BookComment() { + return "novel/bookComment/bookComment"; + } + + @ApiOperation(value = "获取小说评论表列表", notes = "获取小说评论表列表") + @ResponseBody + @GetMapping("/list") + @RequiresPermissions("novel:bookComment:bookComment") + public R list(@RequestParam Map params) { + //查询列表数据 + Query query = new Query(params); + List bookCommentList = bookCommentService.list(query); + int total = bookCommentService.count(query); + PageBean pageBean = new PageBean(bookCommentList, total); + return R.ok().put("data", pageBean); + } + + @ApiOperation(value = "新增小说评论表页面", notes = "新增小说评论表页面") + @GetMapping("/add") + @RequiresPermissions("novel:bookComment:add") + String add() { + return "novel/bookComment/add"; + } + + @ApiOperation(value = "修改小说评论表页面", notes = "修改小说评论表页面") + @GetMapping("/edit/{id}") + @RequiresPermissions("novel:bookComment:edit") + String edit(@PathVariable("id") Long id, Model model) { + BookCommentDO bookComment = bookCommentService.get(id); + model.addAttribute("bookComment", bookComment); + return "novel/bookComment/edit"; + } + + @ApiOperation(value = "查看小说评论表页面", notes = "查看小说评论表页面") + @GetMapping("/detail/{id}") + @RequiresPermissions("novel:bookComment:detail") + String detail(@PathVariable("id") Long id, Model model) { + BookCommentDO bookComment = bookCommentService.get(id); + model.addAttribute("bookComment", bookComment); + return "novel/bookComment/detail"; + } + + /** + * 保存 + */ + @ApiOperation(value = "新增小说评论表", notes = "新增小说评论表") + @ResponseBody + @PostMapping("/save") + @RequiresPermissions("novel:bookComment:add") + public R save( BookCommentDO bookComment) { + if (bookCommentService.save(bookComment) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 修改 + */ + @ApiOperation(value = "修改小说评论表", notes = "修改小说评论表") + @ResponseBody + @RequestMapping("/update") + @RequiresPermissions("novel:bookComment:edit") + public R update( BookCommentDO bookComment) { + bookCommentService.update(bookComment); + return R.ok(); + } + + /** + * 删除 + */ + @ApiOperation(value = "删除小说评论表", notes = "删除小说评论表") + @PostMapping("/remove") + @ResponseBody + @RequiresPermissions("novel:bookComment:remove") + public R remove( Long id) { + if (bookCommentService.remove(id) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 删除 + */ + @ApiOperation(value = "批量删除小说评论表", notes = "批量删除小说评论表") + @PostMapping("/batchRemove") + @ResponseBody + @RequiresPermissions("novel:bookComment:batchRemove") + public R remove(@RequestParam("ids[]") Long[] ids) { + bookCommentService.batchRemove(ids); + return R.ok(); + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/BookCommentDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/BookCommentDao.java new file mode 100644 index 0000000..24dd6fd --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/BookCommentDao.java @@ -0,0 +1,32 @@ +package com.java2nb.novel.dao; + +import com.java2nb.novel.domain.BookCommentDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 小说评论表 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2023-04-14 21:59:28 + */ +@Mapper +public interface BookCommentDao { + + BookCommentDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(BookCommentDO bookComment); + + int update(BookCommentDO bookComment); + + int remove(Long id); + + int batchRemove(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/novel/domain/BookCommentDO.java b/novel-admin/src/main/java/com/java2nb/novel/domain/BookCommentDO.java new file mode 100644 index 0000000..a7d3a7e --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/novel/domain/BookCommentDO.java @@ -0,0 +1,137 @@ +package com.java2nb.novel.domain; + +import java.io.Serializable; + + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.java2nb.common.jsonserializer.LongToStringSerializer; + + +import org.springframework.format.annotation.DateTimeFormat; +import java.util.Date; + + + +/** + * 小说评论表 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2023-04-14 21:59:28 + */ +public class BookCommentDO implements Serializable { + private static final long serialVersionUID = 1L; + + + //主键 + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long id; + //小说ID + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long bookId; + //评价内容 + private String commentContent; + //回复数量 + private Integer replyCount; + //审核状态,0:待审核,1:审核通过,2:审核不通过 + private Integer auditStatus; + //评价时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + //评价人 + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long createUserId; + + /** + * 设置:主键 + */ + public void setId(Long id) { + this.id = id; + } + /** + * 获取:主键 + */ + public Long getId() { + return id; + } + /** + * 设置:小说ID + */ + public void setBookId(Long bookId) { + this.bookId = bookId; + } + /** + * 获取:小说ID + */ + public Long getBookId() { + return bookId; + } + /** + * 设置:评价内容 + */ + public void setCommentContent(String commentContent) { + this.commentContent = commentContent; + } + /** + * 获取:评价内容 + */ + public String getCommentContent() { + return commentContent; + } + /** + * 设置:回复数量 + */ + public void setReplyCount(Integer replyCount) { + this.replyCount = replyCount; + } + /** + * 获取:回复数量 + */ + public Integer getReplyCount() { + return replyCount; + } + /** + * 设置:审核状态,0:待审核,1:审核通过,2:审核不通过 + */ + public void setAuditStatus(Integer auditStatus) { + this.auditStatus = auditStatus; + } + /** + * 获取:审核状态,0:待审核,1:审核通过,2:审核不通过 + */ + public Integer getAuditStatus() { + return auditStatus; + } + /** + * 设置:评价时间 + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + /** + * 获取:评价时间 + */ + public Date getCreateTime() { + return createTime; + } + /** + * 设置:评价人 + */ + public void setCreateUserId(Long createUserId) { + this.createUserId = createUserId; + } + /** + * 获取:评价人 + */ + public Long getCreateUserId() { + return createUserId; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/novel/service/BookCommentService.java b/novel-admin/src/main/java/com/java2nb/novel/service/BookCommentService.java new file mode 100644 index 0000000..baae317 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/novel/service/BookCommentService.java @@ -0,0 +1,30 @@ +package com.java2nb.novel.service; + +import com.java2nb.novel.domain.BookCommentDO; + +import java.util.List; +import java.util.Map; + +/** + * 小说评论表 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2023-04-14 21:59:28 + */ +public interface BookCommentService { + + BookCommentDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(BookCommentDO bookComment); + + int update(BookCommentDO bookComment); + + int remove(Long id); + + int batchRemove(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/novel/service/impl/BookCommentServiceImpl.java b/novel-admin/src/main/java/com/java2nb/novel/service/impl/BookCommentServiceImpl.java new file mode 100644 index 0000000..08fd1d4 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/novel/service/impl/BookCommentServiceImpl.java @@ -0,0 +1,55 @@ +package com.java2nb.novel.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +import com.java2nb.novel.dao.BookCommentDao; +import com.java2nb.novel.domain.BookCommentDO; +import com.java2nb.novel.service.BookCommentService; + + + +@Service +public class BookCommentServiceImpl implements BookCommentService { + @Autowired + private BookCommentDao bookCommentDao; + + @Override + public BookCommentDO get(Long id){ + return bookCommentDao.get(id); + } + + @Override + public List list(Map map){ + return bookCommentDao.list(map); + } + + @Override + public int count(Map map){ + return bookCommentDao.count(map); + } + + @Override + public int save(BookCommentDO bookComment){ + return bookCommentDao.save(bookComment); + } + + @Override + public int update(BookCommentDO bookComment){ + return bookCommentDao.update(bookComment); + } + + @Override + public int remove(Long id){ + return bookCommentDao.remove(id); + } + + @Override + public int batchRemove(Long[] ids){ + return bookCommentDao.batchRemove(ids); + } + +} diff --git a/novel-admin/src/main/resources/application-dev.yml b/novel-admin/src/main/resources/application-dev.yml index 08eb963..0ea1099 100644 --- a/novel-admin/src/main/resources/application-dev.yml +++ b/novel-admin/src/main/resources/application-dev.yml @@ -62,19 +62,19 @@ spring: sharding: jdbc: datasource: - names: ds0 #,ds1 + names: ds0,ds1 ds0: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver jdbc-url: jdbc:mysql://localhost:3306/novel_plus?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: test123456 - # ds1: - # type: com.alibaba.druid.pool.DruidDataSource - # driver-class-name: com.mysql.jdbc.Driver - # url: jdbc:mysql://localhost:3306/novel_plus2 - # username: root - # password: test123456 + ds1: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://localhost:3306/information_schema?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai + username: root + password: test123456 config: sharding: props: @@ -91,3 +91,8 @@ sharding: inline: shardingColumn: index_id algorithm-expression: book_content${index_id % 10} + tables: + actual-data-nodes: ds${1}.tables + columns: + actual-data-nodes: ds${1}.columns + default-data-source-name: ds0 \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/novel/BookCommentMapper.xml b/novel-admin/src/main/resources/mybatis/novel/BookCommentMapper.xml new file mode 100644 index 0000000..9604092 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/novel/BookCommentMapper.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + insert into book_comment + ( + `id`, + `book_id`, + `comment_content`, + `reply_count`, + `audit_status`, + `create_time`, + `create_user_id` + ) + values + ( + #{id}, + #{bookId}, + #{commentContent}, + #{replyCount}, + #{auditStatus}, + #{createTime}, + #{createUserId} + ) + + + + insert into book_comment + ( + `id`, + `book_id`, + `comment_content`, + `reply_count`, + `audit_status`, + `create_time`, + `create_user_id` + ) + values + ( + #{id}, + #{bookId}, + #{commentContent}, + #{replyCount}, + #{auditStatus}, + #{createTime}, + #{createUserId} + ) + + + + update book_comment + + `book_id` = #{bookId}, + `comment_content` = #{commentContent}, + `reply_count` = #{replyCount}, + `audit_status` = #{auditStatus}, + `create_time` = #{createTime}, + `create_user_id` = #{createUserId} + + where id = #{id} + + + + delete from book_comment where id = #{value} + + + + delete from book_comment where id in + + #{id} + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/add.js b/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/add.js new file mode 100644 index 0000000..de0a1d4 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/add.js @@ -0,0 +1,107 @@ +var E = window.wangEditor; +$("[id^='contentEditor']").each(function (index, ele) { + var relName = $(ele).attr("id").substring(13); + var editor = new E('#contentEditor' + relName); +// 自定义菜单配置 + editor.customConfig.menus = [ + 'head', // 标题 + 'bold', // 粗体 + 'fontSize', // 字号 + 'fontName', // 字体 + 'italic', // 斜体 + 'underline', // 下划线 + 'strikeThrough', // 删除线 + 'foreColor', // 文字颜色 + //'backColor', // 背景颜色 + //'link', // 插入链接 + 'list', // 列表 + 'justify', // 对齐方式 + 'quote', // 引用 + 'emoticon', // 表情 + 'image', // 插入图片 + //'table', // 表格 + //'video', // 插入视频 + //'code', // 插入代码 + 'undo', // 撤销 + 'redo' // 重复 + ]; + editor.customConfig.onchange = function (html) { + // html 即变化之后的内容 + $("#" + relName).val(html); + } + editor.customConfig.uploadImgShowBase64 = true; + editor.create(); + +}) + +$("[id^='picImage']").each(function (index, ele) { + var relName = $(ele).attr("id").substring(8); + layui.use('upload', function () { + var upload = layui.upload; + //执行实例 + var uploadInst = upload.render({ + elem: '#picImage' + relName, //绑定元素 + url: '/common/sysFile/upload', //上传接口 + size: 1000, + accept: 'file', + done: function (r) { + $("#picImage" + relName).attr("src", r.fileName); + $("#" + relName).val(r.fileName); + }, + error: function (r) { + layer.msg(r.msg); + } + }); + }); + +}); + + + + + + +$().ready(function () { + validateRule(); +}); + +$.validator.setDefaults({ + submitHandler: function () { + save(); + } +}); +function save() { + $.ajax({ + cache: true, + type: "POST", + url: "/novel/bookComment/save", + data: $('#signupForm').serialize(),// 你的formid + async: false, + error: function (request) { + parent.layer.alert("Connection error"); + }, + success: function (data) { + if (data.code == 0) { + parent.layer.msg("操作成功"); + parent.reLoad(); + var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引 + parent.layer.close(index); + + } else { + parent.layer.alert(data.msg) + } + + } + }); + +} +function validateRule() { + var icon = " "; + $("#signupForm").validate({ + ignore: "", + rules: { + }, + messages: { + } +}) +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/bookComment.js b/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/bookComment.js new file mode 100644 index 0000000..8adfe45 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/bookComment.js @@ -0,0 +1,213 @@ +var prefix = "/novel/bookComment" +$(function () { + load(); +}); + +function load() { + $('#exampleTable') + .bootstrapTable( + { + method: 'get', // 服务器数据的请求方式 get or post + url: prefix + "/list", // 服务器数据的加载地址 + // showRefresh : true, + // showToggle : true, + // showColumns : true, + iconSize: 'outline', + toolbar: '#exampleToolbar', + striped: true, // 设置为true会有隔行变色效果 + dataType: "json", // 服务器返回的数据类型 + pagination: true, // 设置为true会在底部显示分页条 + // queryParamsType : "limit", + // //设置为limit则会发送符合RESTFull格式的参数 + singleSelect: false, // 设置为true将禁止多选 + // contentType : "application/x-www-form-urlencoded", + // //发送到服务器的数据编码类型 + pageSize: 10, // 如果设置了分页,每页数据条数 + pageNumber: 1, // 如果设置了分布,首页页码 + //search : true, // 是否显示搜索框 + showColumns: false, // 是否显示内容下拉框(选择显示的列) + sidePagination: "server", // 设置在哪里进行分页,可选值为"client" 或者 "server" + queryParams: function (params) { + //说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对 + var queryParams = getFormJson("searchForm"); + queryParams.limit = params.limit; + queryParams.offset = params.offset; + return queryParams; + }, + // //请求服务器数据时,你可以通过重写参数的方式添加一些额外的参数,例如 toolbar 中的参数 如果 + // queryParamsType = 'limit' ,返回参数必须包含 + // limit, offset, search, sort, order 否则, 需要包含: + // pageSize, pageNumber, searchText, sortName, + // sortOrder. + // 返回false将会终止请求 + responseHandler: function (rs) { + + if (rs.code == 0) { + return rs.data; + } else { + parent.layer.alert(rs.msg) + return {total: 0, rows: []}; + } + }, + columns: [ + { + checkbox: true + }, + { + title: '序号', + formatter: function () { + return arguments[2] + 1; + } + }, + { + field: 'id', + title: '主键' + }, + + + { + field: 'bookId', + title: '小说ID' + }, + + + { + field: 'commentContent', + title: '评价内容' + }, + + + { + field: 'replyCount', + title: '回复数量' + }, + + + { + field: 'auditStatus', + title: '审核状态,0:待审核,1:审核通过,2:审核不通过' + }, + + + { + field: 'createTime', + title: '评价时间' + }, + + + { + field: 'createUserId', + title: '评价人' + }, + + + { + title: '操作', + field: 'id', + align: 'center', + formatter: function (value, row, index) { + var d = ' '; + var e = ' '; + var r = ' '; + return d + e + r; + } + }] + }); +} +function reLoad() { + $('#exampleTable').bootstrapTable('refresh'); +} +function add() { + layer.open({ + type: 2, + title: '增加', + maxmin: true, + shadeClose: false, // 点击遮罩关闭层 + area: ['800px', '520px'], + content: prefix + '/add' // iframe的url + }); +} +function detail(id) { + layer.open({ + type: 2, + title: '详情', + maxmin: true, + shadeClose: false, // 点击遮罩关闭层 + area: ['800px', '520px'], + content: prefix + '/detail/' + id // iframe的url + }); +} +function edit(id) { + layer.open({ + type: 2, + title: '编辑', + maxmin: true, + shadeClose: false, // 点击遮罩关闭层 + area: ['800px', '520px'], + content: prefix + '/edit/' + id // iframe的url + }); +} +function remove(id) { + layer.confirm('确定要删除选中的记录?', { + btn: ['确定', '取消'] + }, function () { + $.ajax({ + url: prefix + "/remove", + type: "post", + data: { + 'id': id + }, + success: function (r) { + if (r.code == 0) { + layer.msg(r.msg); + reLoad(); + } else { + layer.msg(r.msg); + } + } + }); + }) +} + +function resetPwd(id) { +} +function batchRemove() { + var rows = $('#exampleTable').bootstrapTable('getSelections'); // 返回所有选择的行,当没有选择的记录时,返回一个空数组 + if (rows.length == 0) { + layer.msg("请选择要删除的数据"); + return; + } + layer.confirm("确认要删除选中的'" + rows.length + "'条数据吗?", { + btn: ['确定', '取消'] + // 按钮 + }, function () { + var ids = new Array(); + // 遍历所有选择的行数据,取每条数据对应的ID + $.each(rows, function (i, row) { + ids[i] = row['id']; + }); + $.ajax({ + type: 'POST', + data: { + "ids": ids + }, + url: prefix + '/batchRemove', + success: function (r) { + if (r.code == 0) { + layer.msg(r.msg); + reLoad(); + } else { + layer.msg(r.msg); + } + } + }); + }, function () { + + }); +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/edit.js b/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/edit.js new file mode 100644 index 0000000..b156a1f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/appjs/novel/bookComment/edit.js @@ -0,0 +1,103 @@ +var E = window.wangEditor; +$("[id^='contentEditor']").each(function (index, ele) { + var relName = $(ele).attr("id").substring(13); + var editor = new E('#contentEditor' + relName); +// 自定义菜单配置 + editor.customConfig.menus = [ + 'head', // 标题 + 'bold', // 粗体 + 'fontSize', // 字号 + 'fontName', // 字体 + 'italic', // 斜体 + 'underline', // 下划线 + 'strikeThrough', // 删除线 + 'foreColor', // 文字颜色 + //'backColor', // 背景颜色 + //'link', // 插入链接 + 'list', // 列表 + 'justify', // 对齐方式 + 'quote', // 引用 + 'emoticon', // 表情 + 'image', // 插入图片 + //'table', // 表格 + //'video', // 插入视频 + //'code', // 插入代码 + 'undo', // 撤销 + 'redo' // 重复 + ]; + editor.customConfig.onchange = function (html) { + // html 即变化之后的内容 + $("#" + relName).val(html); + } + editor.customConfig.uploadImgShowBase64 = true; + editor.create(); + editor.txt.html($("#" + relName).val()); + +}) + +$("[id^='picImage']").each(function (index, ele) { + var relName = $(ele).attr("id").substring(8); + layui.use('upload', function () { + var upload = layui.upload; + //执行实例 + var uploadInst = upload.render({ + elem: '#picImage' + relName, //绑定元素 + url: '/common/sysFile/upload', //上传接口 + size: 1000, + accept: 'file', + done: function (r) { + $("#picImage" + relName).attr("src", r.fileName); + $("#" + relName).val(r.fileName); + }, + error: function (r) { + layer.msg(r.msg); + } + }); + }); + +}); + +$().ready(function () { + validateRule(); +}); + +$.validator.setDefaults({ + submitHandler: function () { + update(); + } +}); +function update() { + $.ajax({ + cache: true, + type: "POST", + url: "/novel/bookComment/update", + data: $('#signupForm').serialize(),// 你的formid + async: false, + error: function (request) { + parent.layer.alert("Connection error"); + }, + success: function (data) { + if (data.code == 0) { + parent.layer.msg("操作成功"); + parent.reLoad(); + var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引 + parent.layer.close(index); + + } else { + parent.layer.alert(data.msg) + } + + } + }); + +} +function validateRule() { + var icon = " "; + $("#signupForm").validate({ + ignore: "", + rules: { + }, + messages: { + } +}) +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/sql/novel/bookComment/menu.js b/novel-admin/src/main/resources/static/sql/novel/bookComment/menu.js new file mode 100644 index 0000000..82131d3 --- /dev/null +++ b/novel-admin/src/main/resources/static/sql/novel/bookComment/menu.js @@ -0,0 +1,18 @@ +-- 菜单SQL +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + VALUES ('1', '小说评论表', 'novel/bookComment', 'novel:bookComment:bookComment', '1', 'fa', '6'); + +-- 按钮父菜单ID +set @parentId = @@identity; + +-- 菜单对应按钮SQL +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '查看', null, 'novel:bookComment:detail', '2', null, '6'; +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '新增', null, 'novel:bookComment:add', '2', null, '6'; +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '修改', null, 'novel:bookComment:edit', '2', null, '6'; +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '删除', null, 'novel:bookComment:remove', '2', null, '6'; +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '批量删除', null, 'novel:bookComment:batchRemove', '2', null, '6'; diff --git a/novel-admin/src/main/resources/templates/novel/bookComment/add.html b/novel-admin/src/main/resources/templates/novel/bookComment/add.html new file mode 100644 index 0000000..0edb8e9 --- /dev/null +++ b/novel-admin/src/main/resources/templates/novel/bookComment/add.html @@ -0,0 +1,84 @@ + + + + + +
+
+
+
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ +
+
+
+
+
+
+
+
+
+ + + + diff --git a/novel-admin/src/main/resources/templates/novel/bookComment/bookComment.html b/novel-admin/src/main/resources/templates/novel/bookComment/bookComment.html new file mode 100644 index 0000000..79dea21 --- /dev/null +++ b/novel-admin/src/main/resources/templates/novel/bookComment/bookComment.html @@ -0,0 +1,66 @@ + + + + + +
+
+
+
+
+
+ + +
+
+ +
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/novel/bookComment/detail.html b/novel-admin/src/main/resources/templates/novel/bookComment/detail.html new file mode 100644 index 0000000..6124dd6 --- /dev/null +++ b/novel-admin/src/main/resources/templates/novel/bookComment/detail.html @@ -0,0 +1,81 @@ + + + + + +
+
+
+
+
+
+ +
+ + +
+
+ + + +
+
+ + +
+
+ + + +
+
+ + +
+
+ + + +
+
+ + +
+
+ + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+
+
+
+
+
+
+
+ + diff --git a/novel-admin/src/main/resources/templates/novel/bookComment/edit.html b/novel-admin/src/main/resources/templates/novel/bookComment/edit.html new file mode 100644 index 0000000..4c0cf1a --- /dev/null +++ b/novel-admin/src/main/resources/templates/novel/bookComment/edit.html @@ -0,0 +1,86 @@ + + + + + +
+
+
+
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+
+ + + +