feat: 后台小说管理

This commit is contained in:
xiongxiaoyang 2023-04-14 18:07:05 +08:00
parent 0c59adf23b
commit 9f23f817b1
8 changed files with 1313 additions and 1333 deletions

View File

@ -90,3 +90,16 @@ INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 500); VALUES (1, 500);
INSERT INTO sys_role_menu (role_id, menu_id) INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 501); VALUES (1, 501);
INSERT INTO sys_menu (menu_id, parent_id, name, url, perms, type, icon, order_num, gmt_create, gmt_modified)
VALUES (600, 0, '小说管理', '', '', 0, 'fa fa-book', 15, null, null);
INSERT
INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
VALUES (601, 600, '小说列表', 'novel/book', 'novel:book:book', '1', 'fa', '6');
INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 600);
INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 601);

View File

@ -2920,3 +2920,15 @@ INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 500); VALUES (1, 500);
INSERT INTO sys_role_menu (role_id, menu_id) INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 501); VALUES (1, 501);
INSERT INTO sys_menu (menu_id, parent_id, name, url, perms, type, icon, order_num, gmt_create, gmt_modified)
VALUES (600, 0, '小说管理', '', '', 0, 'fa fa-book', 15, null, null);
INSERT
INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
VALUES (601, 600, '小说列表', 'novel/book', 'novel:book:book', '1', 'fa', '6');
INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 600);
INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 601);

View File

@ -1,17 +1,11 @@
package com.java2nb.novel.domain; package com.java2nb.novel.domain;
import java.io.Serializable;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.java2nb.common.jsonserializer.LongToStringSerializer; import com.java2nb.common.jsonserializer.LongToStringSerializer;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
import java.util.Date;
/** /**
@ -19,9 +13,10 @@ import java.util.Date;
* *
* @author xiongxy * @author xiongxy
* @email 1179705413@qq.com * @email 1179705413@qq.com
* @date 2020-12-01 03:49:46 * @date 2023-04-14 17:42:55
*/ */
public class BookDO implements Serializable { public class BookDO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -36,22 +31,10 @@ public class BookDO implements Serializable {
private Integer catId; private Integer catId;
//分类名 //分类名
private String catName; private String catName;
//子分类ID
private Integer catChildId;
//子分类名
private String catChildName;
//小说封面 //小说封面
private String picUrl; private String picUrl;
//小说名 //小说名
private String bookName; private String bookName;
//男主角姓名
private String heroName;
//女主角姓名
private String ladyName;
//作品风格0甜宠1虐恋2其他
private Integer bookStyle;
//作品标签
private String bookLabel;
//作者id //作者id
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决 //所以通过序列化成字符串来解决
@ -112,378 +95,357 @@ public class BookDO implements Serializable {
public void setId(Long id) { public void setId(Long id) {
this.id = id; this.id = id;
} }
/** /**
* 获取主键 * 获取主键
*/ */
public Long getId() { public Long getId() {
return id; return id;
} }
/** /**
* 设置作品方向0男频1女频' * 设置作品方向0男频1女频'
*/ */
public void setWorkDirection(Integer workDirection) { public void setWorkDirection(Integer workDirection) {
this.workDirection = workDirection; this.workDirection = workDirection;
} }
/** /**
* 获取作品方向0男频1女频' * 获取作品方向0男频1女频'
*/ */
public Integer getWorkDirection() { public Integer getWorkDirection() {
return workDirection; return workDirection;
} }
/** /**
* 设置分类ID * 设置分类ID
*/ */
public void setCatId(Integer catId) { public void setCatId(Integer catId) {
this.catId = catId; this.catId = catId;
} }
/** /**
* 获取分类ID * 获取分类ID
*/ */
public Integer getCatId() { public Integer getCatId() {
return catId; return catId;
} }
/** /**
* 设置分类名 * 设置分类名
*/ */
public void setCatName(String catName) { public void setCatName(String catName) {
this.catName = catName; this.catName = catName;
} }
/** /**
* 获取分类名 * 获取分类名
*/ */
public String getCatName() { public String getCatName() {
return catName; return catName;
} }
/**
* 设置子分类ID
*/
public void setCatChildId(Integer catChildId) {
this.catChildId = catChildId;
}
/**
* 获取子分类ID
*/
public Integer getCatChildId() {
return catChildId;
}
/**
* 设置子分类名
*/
public void setCatChildName(String catChildName) {
this.catChildName = catChildName;
}
/**
* 获取子分类名
*/
public String getCatChildName() {
return catChildName;
}
/** /**
* 设置小说封面 * 设置小说封面
*/ */
public void setPicUrl(String picUrl) { public void setPicUrl(String picUrl) {
this.picUrl = picUrl; this.picUrl = picUrl;
} }
/** /**
* 获取小说封面 * 获取小说封面
*/ */
public String getPicUrl() { public String getPicUrl() {
return picUrl; return picUrl;
} }
/** /**
* 设置小说名 * 设置小说名
*/ */
public void setBookName(String bookName) { public void setBookName(String bookName) {
this.bookName = bookName; this.bookName = bookName;
} }
/** /**
* 获取小说名 * 获取小说名
*/ */
public String getBookName() { public String getBookName() {
return bookName; return bookName;
} }
/**
* 设置男主角姓名
*/
public void setHeroName(String heroName) {
this.heroName = heroName;
}
/**
* 获取男主角姓名
*/
public String getHeroName() {
return heroName;
}
/**
* 设置女主角姓名
*/
public void setLadyName(String ladyName) {
this.ladyName = ladyName;
}
/**
* 获取女主角姓名
*/
public String getLadyName() {
return ladyName;
}
/**
* 设置作品风格0甜宠1虐恋2其他
*/
public void setBookStyle(Integer bookStyle) {
this.bookStyle = bookStyle;
}
/**
* 获取作品风格0甜宠1虐恋2其他
*/
public Integer getBookStyle() {
return bookStyle;
}
/**
* 设置作品标签
*/
public void setBookLabel(String bookLabel) {
this.bookLabel = bookLabel;
}
/**
* 获取作品标签
*/
public String getBookLabel() {
return bookLabel;
}
/** /**
* 设置作者id * 设置作者id
*/ */
public void setAuthorId(Long authorId) { public void setAuthorId(Long authorId) {
this.authorId = authorId; this.authorId = authorId;
} }
/** /**
* 获取作者id * 获取作者id
*/ */
public Long getAuthorId() { public Long getAuthorId() {
return authorId; return authorId;
} }
/** /**
* 设置作者名 * 设置作者名
*/ */
public void setAuthorName(String authorName) { public void setAuthorName(String authorName) {
this.authorName = authorName; this.authorName = authorName;
} }
/** /**
* 获取作者名 * 获取作者名
*/ */
public String getAuthorName() { public String getAuthorName() {
return authorName; return authorName;
} }
/** /**
* 设置书籍描述 * 设置书籍描述
*/ */
public void setBookDesc(String bookDesc) { public void setBookDesc(String bookDesc) {
this.bookDesc = bookDesc; this.bookDesc = bookDesc;
} }
/** /**
* 获取书籍描述 * 获取书籍描述
*/ */
public String getBookDesc() { public String getBookDesc() {
return bookDesc; return bookDesc;
} }
/** /**
* 设置评分预留字段 * 设置评分预留字段
*/ */
public void setScore(Float score) { public void setScore(Float score) {
this.score = score; this.score = score;
} }
/** /**
* 获取评分预留字段 * 获取评分预留字段
*/ */
public Float getScore() { public Float getScore() {
return score; return score;
} }
/** /**
* 设置书籍状态0连载中1已完结 * 设置书籍状态0连载中1已完结
*/ */
public void setBookStatus(Integer bookStatus) { public void setBookStatus(Integer bookStatus) {
this.bookStatus = bookStatus; this.bookStatus = bookStatus;
} }
/** /**
* 获取书籍状态0连载中1已完结 * 获取书籍状态0连载中1已完结
*/ */
public Integer getBookStatus() { public Integer getBookStatus() {
return bookStatus; return bookStatus;
} }
/** /**
* 设置点击量 * 设置点击量
*/ */
public void setVisitCount(Long visitCount) { public void setVisitCount(Long visitCount) {
this.visitCount = visitCount; this.visitCount = visitCount;
} }
/** /**
* 获取点击量 * 获取点击量
*/ */
public Long getVisitCount() { public Long getVisitCount() {
return visitCount; return visitCount;
} }
/** /**
* 设置总字数 * 设置总字数
*/ */
public void setWordCount(Integer wordCount) { public void setWordCount(Integer wordCount) {
this.wordCount = wordCount; this.wordCount = wordCount;
} }
/** /**
* 获取总字数 * 获取总字数
*/ */
public Integer getWordCount() { public Integer getWordCount() {
return wordCount; return wordCount;
} }
/** /**
* 设置评论数 * 设置评论数
*/ */
public void setCommentCount(Integer commentCount) { public void setCommentCount(Integer commentCount) {
this.commentCount = commentCount; this.commentCount = commentCount;
} }
/** /**
* 获取评论数 * 获取评论数
*/ */
public Integer getCommentCount() { public Integer getCommentCount() {
return commentCount; return commentCount;
} }
/** /**
* 设置昨日订阅数 * 设置昨日订阅数
*/ */
public void setYesterdayBuy(Integer yesterdayBuy) { public void setYesterdayBuy(Integer yesterdayBuy) {
this.yesterdayBuy = yesterdayBuy; this.yesterdayBuy = yesterdayBuy;
} }
/** /**
* 获取昨日订阅数 * 获取昨日订阅数
*/ */
public Integer getYesterdayBuy() { public Integer getYesterdayBuy() {
return yesterdayBuy; return yesterdayBuy;
} }
/** /**
* 设置最新目录ID * 设置最新目录ID
*/ */
public void setLastIndexId(Long lastIndexId) { public void setLastIndexId(Long lastIndexId) {
this.lastIndexId = lastIndexId; this.lastIndexId = lastIndexId;
} }
/** /**
* 获取最新目录ID * 获取最新目录ID
*/ */
public Long getLastIndexId() { public Long getLastIndexId() {
return lastIndexId; return lastIndexId;
} }
/** /**
* 设置最新目录名 * 设置最新目录名
*/ */
public void setLastIndexName(String lastIndexName) { public void setLastIndexName(String lastIndexName) {
this.lastIndexName = lastIndexName; this.lastIndexName = lastIndexName;
} }
/** /**
* 获取最新目录名 * 获取最新目录名
*/ */
public String getLastIndexName() { public String getLastIndexName() {
return lastIndexName; return lastIndexName;
} }
/** /**
* 设置最新目录更新时间 * 设置最新目录更新时间
*/ */
public void setLastIndexUpdateTime(Date lastIndexUpdateTime) { public void setLastIndexUpdateTime(Date lastIndexUpdateTime) {
this.lastIndexUpdateTime = lastIndexUpdateTime; this.lastIndexUpdateTime = lastIndexUpdateTime;
} }
/** /**
* 获取最新目录更新时间 * 获取最新目录更新时间
*/ */
public Date getLastIndexUpdateTime() { public Date getLastIndexUpdateTime() {
return lastIndexUpdateTime; return lastIndexUpdateTime;
} }
/** /**
* 设置是否收费1收费0免费 * 设置是否收费1收费0免费
*/ */
public void setIsVip(Integer isVip) { public void setIsVip(Integer isVip) {
this.isVip = isVip; this.isVip = isVip;
} }
/** /**
* 获取是否收费1收费0免费 * 获取是否收费1收费0免费
*/ */
public Integer getIsVip() { public Integer getIsVip() {
return isVip; return isVip;
} }
/** /**
* 设置状态0入库1上架 * 设置状态0入库1上架
*/ */
public void setStatus(Integer status) { public void setStatus(Integer status) {
this.status = status; this.status = status;
} }
/** /**
* 获取状态0入库1上架 * 获取状态0入库1上架
*/ */
public Integer getStatus() { public Integer getStatus() {
return status; return status;
} }
/** /**
* 设置更新时间 * 设置更新时间
*/ */
public void setUpdateTime(Date updateTime) { public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime; this.updateTime = updateTime;
} }
/** /**
* 获取更新时间 * 获取更新时间
*/ */
public Date getUpdateTime() { public Date getUpdateTime() {
return updateTime; return updateTime;
} }
/** /**
* 设置创建时间 * 设置创建时间
*/ */
public void setCreateTime(Date createTime) { public void setCreateTime(Date createTime) {
this.createTime = createTime; this.createTime = createTime;
} }
/** /**
* 获取创建时间 * 获取创建时间
*/ */
public Date getCreateTime() { public Date getCreateTime() {
return createTime; return createTime;
} }
/** /**
* 设置爬虫源站ID * 设置爬虫源站ID
*/ */
public void setCrawlSourceId(Integer crawlSourceId) { public void setCrawlSourceId(Integer crawlSourceId) {
this.crawlSourceId = crawlSourceId; this.crawlSourceId = crawlSourceId;
} }
/** /**
* 获取爬虫源站ID * 获取爬虫源站ID
*/ */
public Integer getCrawlSourceId() { public Integer getCrawlSourceId() {
return crawlSourceId; return crawlSourceId;
} }
/** /**
* 设置抓取的源站小说ID * 设置抓取的源站小说ID
*/ */
public void setCrawlBookId(String crawlBookId) { public void setCrawlBookId(String crawlBookId) {
this.crawlBookId = crawlBookId; this.crawlBookId = crawlBookId;
} }
/** /**
* 获取抓取的源站小说ID * 获取抓取的源站小说ID
*/ */
public String getCrawlBookId() { public String getCrawlBookId() {
return crawlBookId; return crawlBookId;
} }
/** /**
* 设置最后一次的抓取时间 * 设置最后一次的抓取时间
*/ */
public void setCrawlLastTime(Date crawlLastTime) { public void setCrawlLastTime(Date crawlLastTime) {
this.crawlLastTime = crawlLastTime; this.crawlLastTime = crawlLastTime;
} }
/** /**
* 获取最后一次的抓取时间 * 获取最后一次的抓取时间
*/ */
public Date getCrawlLastTime() { public Date getCrawlLastTime() {
return crawlLastTime; return crawlLastTime;
} }
/** /**
* 设置是否已停止更新0未停止1已停止 * 设置是否已停止更新0未停止1已停止
*/ */
public void setCrawlIsStop(Integer crawlIsStop) { public void setCrawlIsStop(Integer crawlIsStop) {
this.crawlIsStop = crawlIsStop; this.crawlIsStop = crawlIsStop;
} }
/** /**
* 获取是否已停止更新0未停止1已停止 * 获取是否已停止更新0未停止1已停止
*/ */

View File

@ -4,24 +4,47 @@
<mapper namespace="com.java2nb.novel.dao.BookDao"> <mapper namespace="com.java2nb.novel.dao.BookDao">
<select id="get" resultType="com.java2nb.novel.domain.BookDO"> <select id="get" resultType="com.java2nb.novel.domain.BookDO">
select `id`,`work_direction`,`cat_id`,`cat_name`,`cat_child_id`,`cat_child_name`,`pic_url`,`book_name`,`hero_name`,`lady_name`,`book_style`,`book_label`,`author_id`,`author_name`,`book_desc`,`score`,`book_status`,`visit_count`,`word_count`,`comment_count`,`yesterday_buy`,`last_index_id`,`last_index_name`,`last_index_update_time`,`is_vip`,`status`,`update_time`,`create_time`,`crawl_source_id`,`crawl_book_id`,`crawl_last_time`,`crawl_is_stop` from book where id = #{value} select `id`,
`work_direction`,
`cat_id`,
`cat_name`,
`pic_url`,
`book_name`,
`author_id`,
`author_name`,
`book_desc`,
`score`,
`book_status`,
`visit_count`,
`word_count`,
`comment_count`,
`yesterday_buy`,
`last_index_id`,
`last_index_name`,
`last_index_update_time`,
`is_vip`,
`status`,
`update_time`,
`create_time`,
`crawl_source_id`,
`crawl_book_id`,
`crawl_last_time`,
`crawl_is_stop`
from book
where id = #{value}
</select> </select>
<select id="list" resultType="com.java2nb.novel.domain.BookDO"> <select id="list" resultType="com.java2nb.novel.domain.BookDO">
select `id`,`work_direction`,`cat_id`,`cat_name`,`cat_child_id`,`cat_child_name`,`pic_url`,`book_name`,`hero_name`,`lady_name`,`book_style`,`book_label`,`author_id`,`author_name`,`book_desc`,`score`,`book_status`,`visit_count`,`word_count`,`comment_count`,`yesterday_buy`,`last_index_id`,`last_index_name`,`last_index_update_time`,`is_vip`,`status`,`update_time`,`create_time`,`crawl_source_id`,`crawl_book_id`,`crawl_last_time`,`crawl_is_stop` from book select
`id`,`work_direction`,`cat_id`,`cat_name`,`pic_url`,`book_name`,`author_id`,`author_name`,`book_desc`,`score`,`book_status`,`visit_count`,`word_count`,`comment_count`,`yesterday_buy`,`last_index_id`,`last_index_name`,`last_index_update_time`,`is_vip`,`status`,`update_time`,`create_time`,`crawl_source_id`,`crawl_book_id`,`crawl_last_time`,`crawl_is_stop`
from book
<where> <where>
<if test="id != null and id != ''">and id = #{id}</if> <if test="id != null and id != ''">and id = #{id}</if>
<if test="workDirection != null and workDirection != ''">and work_direction = #{workDirection}</if> <if test="workDirection != null and workDirection != ''">and work_direction = #{workDirection}</if>
<if test="catId != null and catId != ''">and cat_id = #{catId}</if> <if test="catId != null and catId != ''">and cat_id = #{catId}</if>
<if test="catName != null and catName != ''">and cat_name = #{catName}</if> <if test="catName != null and catName != ''">and cat_name = #{catName}</if>
<if test="catChildId != null and catChildId != ''"> and cat_child_id = #{catChildId} </if>
<if test="catChildName != null and catChildName != ''"> and cat_child_name = #{catChildName} </if>
<if test="picUrl != null and picUrl != ''">and pic_url = #{picUrl}</if> <if test="picUrl != null and picUrl != ''">and pic_url = #{picUrl}</if>
<if test="bookName != null and bookName != ''">and book_name = #{bookName}</if> <if test="bookName != null and bookName != ''">and book_name = #{bookName}</if>
<if test="heroName != null and heroName != ''"> and hero_name = #{heroName} </if>
<if test="ladyName != null and ladyName != ''"> and lady_name = #{ladyName} </if>
<if test="bookStyle != null and bookStyle != ''"> and book_style = #{bookStyle} </if>
<if test="bookLabel != null and bookLabel != ''"> and book_label = #{bookLabel} </if>
<if test="authorId != null and authorId != ''">and author_id = #{authorId}</if> <if test="authorId != null and authorId != ''">and author_id = #{authorId}</if>
<if test="authorName != null and authorName != ''">and author_name = #{authorName}</if> <if test="authorName != null and authorName != ''">and author_name = #{authorName}</if>
<if test="bookDesc != null and bookDesc != ''">and book_desc = #{bookDesc}</if> <if test="bookDesc != null and bookDesc != ''">and book_desc = #{bookDesc}</if>
@ -33,7 +56,9 @@
<if test="yesterdayBuy != null and yesterdayBuy != ''">and yesterday_buy = #{yesterdayBuy}</if> <if test="yesterdayBuy != null and yesterdayBuy != ''">and yesterday_buy = #{yesterdayBuy}</if>
<if test="lastIndexId != null and lastIndexId != ''">and last_index_id = #{lastIndexId}</if> <if test="lastIndexId != null and lastIndexId != ''">and last_index_id = #{lastIndexId}</if>
<if test="lastIndexName != null and lastIndexName != ''">and last_index_name = #{lastIndexName}</if> <if test="lastIndexName != null and lastIndexName != ''">and last_index_name = #{lastIndexName}</if>
<if test="lastIndexUpdateTime != null and lastIndexUpdateTime != ''"> and last_index_update_time = #{lastIndexUpdateTime} </if> <if test="lastIndexUpdateTime != null and lastIndexUpdateTime != ''">and last_index_update_time =
#{lastIndexUpdateTime}
</if>
<if test="isVip != null and isVip != ''">and is_vip = #{isVip}</if> <if test="isVip != null and isVip != ''">and is_vip = #{isVip}</if>
<if test="status != null and status != ''">and status = #{status}</if> <if test="status != null and status != ''">and status = #{status}</if>
<if test="updateTime != null and updateTime != ''">and update_time = #{updateTime}</if> <if test="updateTime != null and updateTime != ''">and update_time = #{updateTime}</if>
@ -63,14 +88,8 @@
<if test="workDirection != null and workDirection != ''">and work_direction = #{workDirection}</if> <if test="workDirection != null and workDirection != ''">and work_direction = #{workDirection}</if>
<if test="catId != null and catId != ''">and cat_id = #{catId}</if> <if test="catId != null and catId != ''">and cat_id = #{catId}</if>
<if test="catName != null and catName != ''">and cat_name = #{catName}</if> <if test="catName != null and catName != ''">and cat_name = #{catName}</if>
<if test="catChildId != null and catChildId != ''"> and cat_child_id = #{catChildId} </if>
<if test="catChildName != null and catChildName != ''"> and cat_child_name = #{catChildName} </if>
<if test="picUrl != null and picUrl != ''">and pic_url = #{picUrl}</if> <if test="picUrl != null and picUrl != ''">and pic_url = #{picUrl}</if>
<if test="bookName != null and bookName != ''">and book_name = #{bookName}</if> <if test="bookName != null and bookName != ''">and book_name = #{bookName}</if>
<if test="heroName != null and heroName != ''"> and hero_name = #{heroName} </if>
<if test="ladyName != null and ladyName != ''"> and lady_name = #{ladyName} </if>
<if test="bookStyle != null and bookStyle != ''"> and book_style = #{bookStyle} </if>
<if test="bookLabel != null and bookLabel != ''"> and book_label = #{bookLabel} </if>
<if test="authorId != null and authorId != ''">and author_id = #{authorId}</if> <if test="authorId != null and authorId != ''">and author_id = #{authorId}</if>
<if test="authorName != null and authorName != ''">and author_name = #{authorName}</if> <if test="authorName != null and authorName != ''">and author_name = #{authorName}</if>
<if test="bookDesc != null and bookDesc != ''">and book_desc = #{bookDesc}</if> <if test="bookDesc != null and bookDesc != ''">and book_desc = #{bookDesc}</if>
@ -82,7 +101,9 @@
<if test="yesterdayBuy != null and yesterdayBuy != ''">and yesterday_buy = #{yesterdayBuy}</if> <if test="yesterdayBuy != null and yesterdayBuy != ''">and yesterday_buy = #{yesterdayBuy}</if>
<if test="lastIndexId != null and lastIndexId != ''">and last_index_id = #{lastIndexId}</if> <if test="lastIndexId != null and lastIndexId != ''">and last_index_id = #{lastIndexId}</if>
<if test="lastIndexName != null and lastIndexName != ''">and last_index_name = #{lastIndexName}</if> <if test="lastIndexName != null and lastIndexName != ''">and last_index_name = #{lastIndexName}</if>
<if test="lastIndexUpdateTime != null and lastIndexUpdateTime != ''"> and last_index_update_time = #{lastIndexUpdateTime} </if> <if test="lastIndexUpdateTime != null and lastIndexUpdateTime != ''">and last_index_update_time =
#{lastIndexUpdateTime}
</if>
<if test="isVip != null and isVip != ''">and is_vip = #{isVip}</if> <if test="isVip != null and isVip != ''">and is_vip = #{isVip}</if>
<if test="status != null and status != ''">and status = #{status}</if> <if test="status != null and status != ''">and status = #{status}</if>
<if test="updateTime != null and updateTime != ''">and update_time = #{updateTime}</if> <if test="updateTime != null and updateTime != ''">and update_time = #{updateTime}</if>
@ -96,19 +117,12 @@
<insert id="save" parameterType="com.java2nb.novel.domain.BookDO"> <insert id="save" parameterType="com.java2nb.novel.domain.BookDO">
insert into book insert into book
( (`id`,
`id`,
`work_direction`, `work_direction`,
`cat_id`, `cat_id`,
`cat_name`, `cat_name`,
`cat_child_id`,
`cat_child_name`,
`pic_url`, `pic_url`,
`book_name`, `book_name`,
`hero_name`,
`lady_name`,
`book_style`,
`book_label`,
`author_id`, `author_id`,
`author_name`, `author_name`,
`book_desc`, `book_desc`,
@ -128,22 +142,13 @@
`crawl_source_id`, `crawl_source_id`,
`crawl_book_id`, `crawl_book_id`,
`crawl_last_time`, `crawl_last_time`,
`crawl_is_stop` `crawl_is_stop`)
) values (#{id},
values
(
#{id},
#{workDirection}, #{workDirection},
#{catId}, #{catId},
#{catName}, #{catName},
#{catChildId},
#{catChildName},
#{picUrl}, #{picUrl},
#{bookName}, #{bookName},
#{heroName},
#{ladyName},
#{bookStyle},
#{bookLabel},
#{authorId}, #{authorId},
#{authorName}, #{authorName},
#{bookDesc}, #{bookDesc},
@ -163,8 +168,7 @@
#{crawlSourceId}, #{crawlSourceId},
#{crawlBookId}, #{crawlBookId},
#{crawlLastTime}, #{crawlLastTime},
#{crawlIsStop} #{crawlIsStop})
)
</insert> </insert>
<insert id="saveSelective" parameterType="com.java2nb.novel.domain.BookDO"> <insert id="saveSelective" parameterType="com.java2nb.novel.domain.BookDO">
@ -174,14 +178,8 @@
<if test="workDirection != null">`work_direction`,</if> <if test="workDirection != null">`work_direction`,</if>
<if test="catId != null">`cat_id`,</if> <if test="catId != null">`cat_id`,</if>
<if test="catName != null">`cat_name`,</if> <if test="catName != null">`cat_name`,</if>
<if test="catChildId != null"> `cat_child_id`, </if>
<if test="catChildName != null"> `cat_child_name`, </if>
<if test="picUrl != null">`pic_url`,</if> <if test="picUrl != null">`pic_url`,</if>
<if test="bookName != null">`book_name`,</if> <if test="bookName != null">`book_name`,</if>
<if test="heroName != null"> `hero_name`, </if>
<if test="ladyName != null"> `lady_name`, </if>
<if test="bookStyle != null"> `book_style`, </if>
<if test="bookLabel != null"> `book_label`, </if>
<if test="authorId != null">`author_id`,</if> <if test="authorId != null">`author_id`,</if>
<if test="authorName != null">`author_name`,</if> <if test="authorName != null">`author_name`,</if>
<if test="bookDesc != null">`book_desc`,</if> <if test="bookDesc != null">`book_desc`,</if>
@ -209,14 +207,8 @@
<if test="workDirection != null">#{workDirection},</if> <if test="workDirection != null">#{workDirection},</if>
<if test="catId != null">#{catId},</if> <if test="catId != null">#{catId},</if>
<if test="catName != null">#{catName},</if> <if test="catName != null">#{catName},</if>
<if test="catChildId != null"> #{catChildId}, </if>
<if test="catChildName != null"> #{catChildName}, </if>
<if test="picUrl != null">#{picUrl},</if> <if test="picUrl != null">#{picUrl},</if>
<if test="bookName != null">#{bookName},</if> <if test="bookName != null">#{bookName},</if>
<if test="heroName != null"> #{heroName}, </if>
<if test="ladyName != null"> #{ladyName}, </if>
<if test="bookStyle != null"> #{bookStyle}, </if>
<if test="bookLabel != null"> #{bookLabel}, </if>
<if test="authorId != null">#{authorId},</if> <if test="authorId != null">#{authorId},</if>
<if test="authorName != null">#{authorName},</if> <if test="authorName != null">#{authorName},</if>
<if test="bookDesc != null">#{bookDesc},</if> <if test="bookDesc != null">#{bookDesc},</if>
@ -246,14 +238,8 @@
<if test="workDirection != null">`work_direction` = #{workDirection},</if> <if test="workDirection != null">`work_direction` = #{workDirection},</if>
<if test="catId != null">`cat_id` = #{catId},</if> <if test="catId != null">`cat_id` = #{catId},</if>
<if test="catName != null">`cat_name` = #{catName},</if> <if test="catName != null">`cat_name` = #{catName},</if>
<if test="catChildId != null">`cat_child_id` = #{catChildId}, </if>
<if test="catChildName != null">`cat_child_name` = #{catChildName}, </if>
<if test="picUrl != null">`pic_url` = #{picUrl},</if> <if test="picUrl != null">`pic_url` = #{picUrl},</if>
<if test="bookName != null">`book_name` = #{bookName},</if> <if test="bookName != null">`book_name` = #{bookName},</if>
<if test="heroName != null">`hero_name` = #{heroName}, </if>
<if test="ladyName != null">`lady_name` = #{ladyName}, </if>
<if test="bookStyle != null">`book_style` = #{bookStyle}, </if>
<if test="bookLabel != null">`book_label` = #{bookLabel}, </if>
<if test="authorId != null">`author_id` = #{authorId},</if> <if test="authorId != null">`author_id` = #{authorId},</if>
<if test="authorName != null">`author_name` = #{authorName},</if> <if test="authorName != null">`author_name` = #{authorName},</if>
<if test="bookDesc != null">`book_desc` = #{bookDesc},</if> <if test="bookDesc != null">`book_desc` = #{bookDesc},</if>
@ -279,7 +265,9 @@
</update> </update>
<delete id="remove"> <delete id="remove">
delete from book where id = #{value} delete
from book
where id = #{value}
</delete> </delete>
<delete id="batchRemove"> <delete id="batchRemove">
@ -290,17 +278,12 @@
</delete> </delete>
<select id="tableSta" resultType="map"> <select id="tableSta" resultType="map">
SELECT SELECT DATE_FORMAT(create_time, "%Y-%m-%d") AS staDate,
DATE_FORMAT( create_time, "%Y-%m-%d" ) AS staDate,
COUNT(1) bookCount COUNT(1) bookCount
FROM FROM book
book WHERE create_time >= #{minDate}
WHERE GROUP BY DATE_FORMAT(create_time, "%Y-%m-%d")
create_time >= #{minDate} ORDER BY staDate
GROUP BY
DATE_FORMAT( create_time, "%Y-%m-%d" )
ORDER BY
staDate
</select> </select>
</mapper> </mapper>

View File

@ -59,220 +59,91 @@ function load() {
return arguments[2] + 1; return arguments[2] + 1;
} }
}, },
{
field: 'id',
title: '主键'
},
{ {
field: 'workDirection', field: 'workDirection',
title: '作品方向0男频1女频' title: '作品方向',
formatter: function (value, row, index) {
return value === 0 ? '男频' : '女频';
}
}, },
{
field: 'catId',
title: '分类ID'
},
{ {
field: 'catName', field: 'catName',
title: '分类名' title: '分类名'
}, },
{
field: 'catChildId',
title: '子分类ID'
},
{
field: 'catChildName',
title: '子分类名'
},
{
field: 'picUrl',
title: '小说封面'
},
{ {
field: 'bookName', field: 'bookName',
title: '小说名' title: '小说名'
}, },
{
field: 'heroName',
title: '男主角姓名'
},
{
field: 'ladyName',
title: '女主角姓名'
},
{
field: 'bookStyle',
title: '作品风格0甜宠1虐恋2其他'
},
{
field: 'bookLabel',
title: '作品标签'
},
{
field: 'authorId',
title: '作者id'
},
{ {
field: 'authorName', field: 'authorName',
title: '作者名' title: '作者名'
}, },
{
field: 'bookDesc',
title: '书籍描述'
},
{
field: 'score',
title: '评分预留字段'
},
{ {
field: 'bookStatus', field: 'bookStatus',
title: '书籍状态0连载中1已完结' title: '书籍状态',
formatter: function (value, row, index) {
return value === 0 ? '连载中' : '已完结';
}
}, },
{ {
field: 'visitCount', field: 'visitCount',
title: '点击量' title: '点击量'
}, },
{ {
field: 'wordCount', field: 'wordCount',
title: '总字数' title: '总字数'
}, },
{ {
field: 'commentCount', field: 'commentCount',
title: '评论数' title: '评论数'
}, },
{ {
field: 'yesterdayBuy', field: 'yesterdayBuy',
title: '昨日订阅数' title: '昨日订阅数'
}, },
{
field: 'lastIndexId',
title: '最新目录ID'
},
{ {
field: 'lastIndexName', field: 'lastIndexName',
title: '最新目录名' title: '最新章节'
}, },
{ {
field: 'lastIndexUpdateTime', field: 'lastIndexUpdateTime',
title: '最新目录更新时间' title: '最新章节更新时间'
}, },
{ {
field: 'isVip', field: 'isVip',
title: '是否收费1收费0免费' title: '是否收费',
formatter: function (value, row, index) {
return value === 1 ? '收费' : '免费';
}
}, },
{
field: 'status',
title: '状态0入库1上架'
},
{
field: 'updateTime',
title: '更新时间'
},
{ {
field: 'createTime', field: 'createTime',
title: '创建时间' title: '入库时间'
},
{
field: 'crawlSourceId',
title: '爬虫源站ID'
},
{
field: 'crawlBookId',
title: '抓取的源站小说ID'
},
{
field: 'crawlLastTime',
title: '最后一次的抓取时间'
},
{
field: 'crawlIsStop',
title: '是否已停止更新0未停止1已停止'
},
{
title: '操作',
field: 'id',
align: 'center',
formatter: function (value, row, index) {
var d = '<a class="btn btn-primary btn-sm ' + s_detail_h + '" href="#" mce_href="#" title="详情" onclick="detail(\''
+ row.id
+ '\')"><i class="fa fa-file"></i></a> ';
var e = '<a class="btn btn-primary btn-sm ' + s_edit_h + '" href="#" mce_href="#" title="编辑" onclick="edit(\''
+ row.id
+ '\')"><i class="fa fa-edit"></i></a> ';
var r = '<a class="btn btn-warning btn-sm ' + s_remove_h + '" href="#" title="删除" mce_href="#" onclick="remove(\''
+ row.id
+ '\')"><i class="fa fa-remove"></i></a> ';
return d + e + r;
} }
}]
]
}); });
} }
function reLoad() { function reLoad() {
$('#exampleTable').bootstrapTable('refresh'); $('#exampleTable').bootstrapTable('refresh');
} }
function add() { function add() {
layer.open({ layer.open({
type: 2, type: 2,
@ -283,6 +154,7 @@ function add() {
content: prefix + '/add' // iframe的url content: prefix + '/add' // iframe的url
}); });
} }
function detail(id) { function detail(id) {
layer.open({ layer.open({
type: 2, type: 2,
@ -293,6 +165,7 @@ function detail(id) {
content: prefix + '/detail/' + id // iframe的url content: prefix + '/detail/' + id // iframe的url
}); });
} }
function edit(id) { function edit(id) {
layer.open({ layer.open({
type: 2, type: 2,
@ -303,6 +176,7 @@ function edit(id) {
content: prefix + '/edit/' + id // iframe的url content: prefix + '/edit/' + id // iframe的url
}); });
} }
function remove(id) { function remove(id) {
layer.confirm('确定要删除选中的记录', { layer.confirm('确定要删除选中的记录', {
btn: ['确定', '取消'] btn: ['确定', '取消']
@ -327,6 +201,7 @@ function remove(id) {
function resetPwd(id) { function resetPwd(id) {
} }
function batchRemove() { function batchRemove() {
var rows = $('#exampleTable').bootstrapTable('getSelections'); // 返回所有选择的行当没有选择的记录时返回一个空数组 var rows = $('#exampleTable').bootstrapTable('getSelections'); // 返回所有选择的行当没有选择的记录时返回一个空数组
if (rows.length == 0) { if (rows.length == 0) {

View File

@ -10,28 +10,142 @@
<link rel="stylesheet" href="/layuimini/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all"> <link rel="stylesheet" href="/layuimini/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<link rel="stylesheet" href="/layuimini/css/public.css" media="all"> <link rel="stylesheet" href="/layuimini/css/public.css" media="all">
<style> <style>
.layui-card {border:1px solid #f2f2f2;border-radius:5px;} .layui-card {
.icon {margin-right:10px;color:#1aa094;} border: 1px solid #f2f2f2;
.icon-cray {color:#ffb800!important;} border-radius: 5px;
.icon-blue {color:#1e9fff!important;} }
.icon-tip {color:#ff5722!important;}
.layuimini-qiuck-module {text-align:center;margin-top: 10px} .icon {
.layuimini-qiuck-module a i {display:inline-block;width:100%;height:60px;line-height:60px;text-align:center;border-radius:2px;font-size:30px;background-color:#F8F8F8;color:#333;transition:all .3s;-webkit-transition:all .3s;} margin-right: 10px;
.layuimini-qiuck-module a cite {position:relative;top:2px;display:block;color:#666;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:14px;} color: #1aa094;
.welcome-module {width:100%;height:210px;} }
.panel {background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}
.panel-body {padding:10px} .icon-cray {
.panel-title {margin-top:0;margin-bottom:0;font-size:12px;color:inherit} color: #ffb800 !important;
.label {display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;margin-top: .3em;} }
.layui-red {color:red}
.main_btn > p {height:40px;} .icon-blue {
.layui-bg-number {background-color:#F8F8F8;} color: #1e9fff !important;
.layuimini-notice:hover {background:#f6f6f6;} }
.layuimini-notice {padding:7px 16px;clear:both;font-size:12px !important;cursor:pointer;position:relative;transition:background 0.2s ease-in-out;}
.icon-tip {
color: #ff5722 !important;
}
.layuimini-qiuck-module {
text-align: center;
margin-top: 10px
}
.layuimini-qiuck-module a i {
display: inline-block;
width: 100%;
height: 60px;
line-height: 60px;
text-align: center;
border-radius: 2px;
font-size: 30px;
background-color: #F8F8F8;
color: #333;
transition: all .3s;
-webkit-transition: all .3s;
}
.layuimini-qiuck-module a cite {
position: relative;
top: 2px;
display: block;
color: #666;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 14px;
}
.welcome-module {
width: 100%;
height: 210px;
}
.panel {
background-color: #fff;
border: 1px solid transparent;
border-radius: 3px;
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
box-shadow: 0 1px 1px rgba(0, 0, 0, .05)
}
.panel-body {
padding: 10px
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 12px;
color: inherit
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: 700;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
margin-top: .3em;
}
.layui-red {
color: red
}
.main_btn > p {
height: 40px;
}
.layui-bg-number {
background-color: #F8F8F8;
}
.layuimini-notice:hover {
background: #f6f6f6;
}
.layuimini-notice {
padding: 7px 16px;
clear: both;
font-size: 12px !important;
cursor: pointer;
position: relative;
transition: background 0.2s ease-in-out;
}
.layuimini-notice-title, .layuimini-notice-label { .layuimini-notice-title, .layuimini-notice-label {
padding-right: 70px !important;text-overflow:ellipsis!important;overflow:hidden!important;white-space:nowrap!important;} padding-right: 70px !important;
.layuimini-notice-title {line-height:28px;font-size:14px;} text-overflow: ellipsis !important;
.layuimini-notice-extra {position:absolute;top:50%;margin-top:-8px;right:16px;display:inline-block;height:16px;color:#999;} overflow: hidden !important;
white-space: nowrap !important;
}
.layuimini-notice-title {
line-height: 28px;
font-size: 14px;
}
.layuimini-notice-extra {
position: absolute;
top: 50%;
margin-top: -8px;
right: 16px;
display: inline-block;
height: 16px;
color: #999;
}
</style> </style>
</head> </head>
<body> <body>
@ -133,7 +247,7 @@
<tr> <tr>
<td>项目名称</td> <td>项目名称</td>
<td> <td>
小说精品屋 novel
</td> </td>
</tr> </tr>
<tr> <tr>
@ -142,21 +256,25 @@
</tr> </tr>
<tr> <tr>
<td>主要特色</td> <td>主要特色</td>
<td>小说 / 漫画 / 自适应 / 弹幕 / 采集</td> <td>Spring Boot 3 / Vue 3 / 项目实战 / 保姆级教程</td>
</tr> </tr>
<tr> <tr>
<td>下载地址</td> <td>下载地址</td>
<td> <td>
<a href="https://gitee.com/novel_dev_team/fiction_house" target="_blank">Gitee</a> / <a href="https://gitee.com/novel_dev_team/novel" target="_blank">Gitee</a> /
<a href="https://github.com/201206030/fiction_house" target="_blank">Github</a> <a href="https://github.com/201206030/novel" target="_blank">Github</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>Gitee</td> <td>Gitee</td>
<td style="padding-bottom: 0;"> <td style="padding-bottom: 0;">
<div class="layui-btn-container"> <div class="layui-btn-container">
<a href='https://gitee.com/novel_dev_team/fiction_house/stargazers'><img src='https://gitee.com/novel_dev_team/fiction_house/badge/star.svg?theme=dark' alt='star'></img></a> <a href='https://gitee.com/novel_dev_team/novel/stargazers'><img
<a href='https://gitee.com/novel_dev_team/fiction_house/members'><img src='https://gitee.com/novel_dev_team/fiction_house/badge/fork.svg?theme=dark' alt='fork'></img></a> src='https://gitee.com/novel_dev_team/novel/badge/star.svg?theme=dark'
alt='star'></img></a>
<a href='https://gitee.com/novel_dev_team/novel/members'><img
src='https://gitee.com/novel_dev_team/novel/badge/fork.svg?theme=dark'
alt='fork'></img></a>
</div> </div>
</td> </td>
</tr> </tr>
@ -164,8 +282,10 @@
<td>Github</td> <td>Github</td>
<td style="padding-bottom: 0;"> <td style="padding-bottom: 0;">
<div class="layui-btn-container"> <div class="layui-btn-container">
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=fiction_house&type=star&count=true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe> <iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel&type=star&count=true"
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=fiction_house&type=fork&count=true" frameborder="0" scrolling="0" width="101px" height="20px"></iframe> frameborder="0" scrolling="0" width="110px" height="20px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel&type=fork&count=true"
frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
</div> </div>
</td> </td>
</tr> </tr>
@ -186,7 +306,7 @@
<tr> <tr>
<td>项目名称</td> <td>项目名称</td>
<td> <td>
小说精品屋-plus novel-plus
</td> </td>
</tr> </tr>
<tr> <tr>
@ -208,8 +328,12 @@
<td>Gitee</td> <td>Gitee</td>
<td style="padding-bottom: 0;"> <td style="padding-bottom: 0;">
<div class="layui-btn-container"> <div class="layui-btn-container">
<a href='https://gitee.com/novel_dev_team/novel-plus/stargazers'><img src='https://gitee.com/novel_dev_team/novel-plus/badge/star.svg?theme=dark' alt='star'></img></a> <a href='https://gitee.com/novel_dev_team/novel-plus/stargazers'><img
<a href='https://gitee.com/novel_dev_team/novel-plus/members'><img src='https://gitee.com/novel_dev_team/novel-plus/badge/fork.svg?theme=dark' alt='fork'></img></a> src='https://gitee.com/novel_dev_team/novel-plus/badge/star.svg?theme=dark'
alt='star'></img></a>
<a href='https://gitee.com/novel_dev_team/novel-plus/members'><img
src='https://gitee.com/novel_dev_team/novel-plus/badge/fork.svg?theme=dark'
alt='fork'></img></a>
</div> </div>
</td> </td>
</tr> </tr>
@ -217,8 +341,10 @@
<td>Github</td> <td>Github</td>
<td style="padding-bottom: 0;"> <td style="padding-bottom: 0;">
<div class="layui-btn-container"> <div class="layui-btn-container">
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-plus&type=star&count=true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe> <iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-plus&type=star&count=true"
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-plus&type=fork&count=true" frameborder="0" scrolling="0" width="101px" height="20px"></iframe> frameborder="0" scrolling="0" width="110px" height="20px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-plus&type=fork&count=true"
frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
</div> </div>
</td> </td>
</tr> </tr>
@ -239,7 +365,7 @@
<tr> <tr>
<td>项目名称</td> <td>项目名称</td>
<td> <td>
小说精品屋-微服务版 novel-cloud
</td> </td>
</tr> </tr>
<tr> <tr>
@ -248,7 +374,7 @@
</tr> </tr>
<tr> <tr>
<td>主要特色</td> <td>主要特色</td>
<td>SpringCloudAlibaba / Redis / RabbitMq / ElasticSearch / Sharding-Jdbc / Docker</td> <td>微服务 / Spring Cloud 2022 / Spring Cloud Alibaba 2022</td>
</tr> </tr>
<tr> <tr>
<td>下载地址</td> <td>下载地址</td>
@ -261,8 +387,12 @@
<td>Gitee</td> <td>Gitee</td>
<td style="padding-bottom: 0;"> <td style="padding-bottom: 0;">
<div class="layui-btn-container"> <div class="layui-btn-container">
<a href='https://gitee.com/novel_dev_team/novel-cloud/stargazers'><img src='https://gitee.com/novel_dev_team/novel-cloud/badge/star.svg?theme=dark' alt='star'></img></a> <a href='https://gitee.com/novel_dev_team/novel-cloud/stargazers'><img
<a href='https://gitee.com/novel_dev_team/novel-cloud/members'><img src='https://gitee.com/novel_dev_team/novel-cloud/badge/fork.svg?theme=dark' alt='fork'></img></a> src='https://gitee.com/novel_dev_team/novel-cloud/badge/star.svg?theme=dark'
alt='star'></img></a>
<a href='https://gitee.com/novel_dev_team/novel-cloud/members'><img
src='https://gitee.com/novel_dev_team/novel-cloud/badge/fork.svg?theme=dark'
alt='fork'></img></a>
</div> </div>
</td> </td>
</tr> </tr>
@ -270,8 +400,10 @@
<td>Github</td> <td>Github</td>
<td style="padding-bottom: 0;"> <td style="padding-bottom: 0;">
<div class="layui-btn-container"> <div class="layui-btn-container">
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-cloud&type=star&count=true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe> <iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-cloud&type=star&count=true"
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-cloud&type=fork&count=true" frameborder="0" scrolling="0" width="101px" height="20px"></iframe> frameborder="0" scrolling="0" width="110px" height="20px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-cloud&type=fork&count=true"
frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
</div> </div>
</td> </td>
</tr> </tr>
@ -387,7 +519,6 @@
} }
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden'); var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
var optionRecords = { var optionRecords = {
tooltip: { tooltip: {

View File

@ -8,7 +8,7 @@
<div class="ibox"> <div class="ibox">
<div class="ibox-body"> <div class="ibox-body">
<div class="fixed-table-toolbar"> <div class="fixed-table-toolbar">
<div class="columns pull-left"> <!--<div class="columns pull-left">
<button shiro:hasPermission="novel:book:add" type="button" <button shiro:hasPermission="novel:book:add" type="button"
class="btn btn-primary" onclick="add()"> class="btn btn-primary" onclick="add()">
<i class="fa fa-plus" aria-hidden="true"></i>添加 <i class="fa fa-plus" aria-hidden="true"></i>添加
@ -18,15 +18,19 @@
onclick="batchRemove()"> onclick="batchRemove()">
<i class="fa fa-trash" aria-hidden="true"></i>删除 <i class="fa fa-trash" aria-hidden="true"></i>删除
</button> </button>
</div> </div>-->
<div class="columns pull-right"> <div class="columns pull-right">
<button class="btn btn-success" onclick="reLoad()">查询</button> <button class="btn btn-success" onclick="reLoad()">查询</button>
</div> </div>
<form id="searchForm"> <form id="searchForm">
<div class="columns pull-right col-md-2"> <div class="columns pull-right col-md-2">
<input id="id" name="id" type="text" class="form-control" <input id="bookName" name="bookName" type="text" class="form-control"
placeholder="主键"> placeholder="小说名">
</div>
<div class="columns pull-right col-md-2">
<input id="authorName" name="authorName" type="text" class="form-control"
placeholder="作者名">
</div> </div>
</form> </form>