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

@ -89,4 +89,17 @@ VALUES (501, 500, '订单列表', 'novel/pay', 'novel:pay:pay', '1', 'fa', '6');
INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 500);
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

@ -2919,4 +2919,16 @@ VALUES (501, 500, '订单列表', 'novel/pay', 'novel:pay:pay', '1', 'fa', '6');
INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 500);
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,493 +1,455 @@
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;
import java.io.Serializable;
import java.util.Date;
/**
* 小说表
*
*
* @author xiongxy
* @email 1179705413@qq.com
* @date 2020-12-01 03:49:46
* @date 2023-04-14 17:42:55
*/
public class BookDO implements Serializable {
private static final long serialVersionUID = 1L;
//主键
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long id;
//作品方向0男频1女频'
private Integer workDirection;
//分类ID
private Integer catId;
//分类名
private String catName;
//子分类ID
private Integer catChildId;
//子分类名
private String catChildName;
//小说封面
private String picUrl;
//小说名
private String bookName;
//男主角姓名
private String heroName;
//女主角姓名
private String ladyName;
//作品风格0甜宠1虐恋2其他
private Integer bookStyle;
//作品标签
private String bookLabel;
//作者id
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long authorId;
//作者名
private String authorName;
//书籍描述
private String bookDesc;
//评分预留字段
private Float score;
//书籍状态0连载中1已完结
private Integer bookStatus;
//点击量
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long visitCount;
//总字数
private Integer wordCount;
//评论数
private Integer commentCount;
//昨日订阅数
private Integer yesterdayBuy;
//最新目录ID
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long lastIndexId;
//最新目录名
private String lastIndexName;
//最新目录更新时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastIndexUpdateTime;
//是否收费1收费0免费
private Integer isVip;
//状态0入库1上架
private Integer status;
//更新时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
//创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//爬虫源站ID
private Integer crawlSourceId;
//抓取的源站小说ID
private String crawlBookId;
//最后一次的抓取时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date crawlLastTime;
//是否已停止更新0未停止1已停止
private Integer crawlIsStop;
private static final long serialVersionUID = 1L;
/**
* 设置主键
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取主键
*/
public Long getId() {
return id;
}
/**
* 设置作品方向0男频1女频'
*/
public void setWorkDirection(Integer workDirection) {
this.workDirection = workDirection;
}
/**
* 获取作品方向0男频1女频'
*/
public Integer getWorkDirection() {
return workDirection;
}
/**
* 设置分类ID
*/
public void setCatId(Integer catId) {
this.catId = catId;
}
/**
* 获取分类ID
*/
public Integer getCatId() {
return catId;
}
/**
* 设置分类名
*/
public void setCatName(String catName) {
this.catName = catName;
}
/**
* 获取分类名
*/
public String getCatName() {
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) {
this.picUrl = picUrl;
}
/**
* 获取小说封面
*/
public String getPicUrl() {
return picUrl;
}
/**
* 设置小说名
*/
public void setBookName(String bookName) {
this.bookName = bookName;
}
/**
* 获取小说名
*/
public String getBookName() {
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
*/
public void setAuthorId(Long authorId) {
this.authorId = authorId;
}
/**
* 获取作者id
*/
public Long getAuthorId() {
return authorId;
}
/**
* 设置作者名
*/
public void setAuthorName(String authorName) {
this.authorName = authorName;
}
/**
* 获取作者名
*/
public String getAuthorName() {
return authorName;
}
/**
* 设置书籍描述
*/
public void setBookDesc(String bookDesc) {
this.bookDesc = bookDesc;
}
/**
* 获取书籍描述
*/
public String getBookDesc() {
return bookDesc;
}
/**
* 设置评分预留字段
*/
public void setScore(Float score) {
this.score = score;
}
/**
* 获取评分预留字段
*/
public Float getScore() {
return score;
}
/**
* 设置书籍状态0连载中1已完结
*/
public void setBookStatus(Integer bookStatus) {
this.bookStatus = bookStatus;
}
/**
* 获取书籍状态0连载中1已完结
*/
public Integer getBookStatus() {
return bookStatus;
}
/**
* 设置点击量
*/
public void setVisitCount(Long visitCount) {
this.visitCount = visitCount;
}
/**
* 获取点击量
*/
public Long getVisitCount() {
return visitCount;
}
/**
* 设置总字数
*/
public void setWordCount(Integer wordCount) {
this.wordCount = wordCount;
}
/**
* 获取总字数
*/
public Integer getWordCount() {
return wordCount;
}
/**
* 设置评论数
*/
public void setCommentCount(Integer commentCount) {
this.commentCount = commentCount;
}
/**
* 获取评论数
*/
public Integer getCommentCount() {
return commentCount;
}
/**
* 设置昨日订阅数
*/
public void setYesterdayBuy(Integer yesterdayBuy) {
this.yesterdayBuy = yesterdayBuy;
}
/**
* 获取昨日订阅数
*/
public Integer getYesterdayBuy() {
return yesterdayBuy;
}
/**
* 设置最新目录ID
*/
public void setLastIndexId(Long lastIndexId) {
this.lastIndexId = lastIndexId;
}
/**
* 获取最新目录ID
*/
public Long getLastIndexId() {
return lastIndexId;
}
/**
* 设置最新目录名
*/
public void setLastIndexName(String lastIndexName) {
this.lastIndexName = lastIndexName;
}
/**
* 获取最新目录名
*/
public String getLastIndexName() {
return lastIndexName;
}
/**
* 设置最新目录更新时间
*/
public void setLastIndexUpdateTime(Date lastIndexUpdateTime) {
this.lastIndexUpdateTime = lastIndexUpdateTime;
}
/**
* 获取最新目录更新时间
*/
public Date getLastIndexUpdateTime() {
return lastIndexUpdateTime;
}
/**
* 设置是否收费1收费0免费
*/
public void setIsVip(Integer isVip) {
this.isVip = isVip;
}
/**
* 获取是否收费1收费0免费
*/
public Integer getIsVip() {
return isVip;
}
/**
* 设置状态0入库1上架
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 获取状态0入库1上架
*/
public Integer getStatus() {
return status;
}
/**
* 设置更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* 获取更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* 设置创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置爬虫源站ID
*/
public void setCrawlSourceId(Integer crawlSourceId) {
this.crawlSourceId = crawlSourceId;
}
/**
* 获取爬虫源站ID
*/
public Integer getCrawlSourceId() {
return crawlSourceId;
}
/**
* 设置抓取的源站小说ID
*/
public void setCrawlBookId(String crawlBookId) {
this.crawlBookId = crawlBookId;
}
/**
* 获取抓取的源站小说ID
*/
public String getCrawlBookId() {
return crawlBookId;
}
/**
* 设置最后一次的抓取时间
*/
public void setCrawlLastTime(Date crawlLastTime) {
this.crawlLastTime = crawlLastTime;
}
/**
* 获取最后一次的抓取时间
*/
public Date getCrawlLastTime() {
return crawlLastTime;
}
/**
* 设置是否已停止更新0未停止1已停止
*/
public void setCrawlIsStop(Integer crawlIsStop) {
this.crawlIsStop = crawlIsStop;
}
/**
* 获取是否已停止更新0未停止1已停止
*/
public Integer getCrawlIsStop() {
return crawlIsStop;
}
//主键
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long id;
//作品方向0男频1女频'
private Integer workDirection;
//分类ID
private Integer catId;
//分类名
private String catName;
//小说封面
private String picUrl;
//小说名
private String bookName;
//作者id
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long authorId;
//作者名
private String authorName;
//书籍描述
private String bookDesc;
//评分预留字段
private Float score;
//书籍状态0连载中1已完结
private Integer bookStatus;
//点击量
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long visitCount;
//总字数
private Integer wordCount;
//评论数
private Integer commentCount;
//昨日订阅数
private Integer yesterdayBuy;
//最新目录ID
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long lastIndexId;
//最新目录名
private String lastIndexName;
//最新目录更新时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastIndexUpdateTime;
//是否收费1收费0免费
private Integer isVip;
//状态0入库1上架
private Integer status;
//更新时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
//创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//爬虫源站ID
private Integer crawlSourceId;
//抓取的源站小说ID
private String crawlBookId;
//最后一次的抓取时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date crawlLastTime;
//是否已停止更新0未停止1已停止
private Integer crawlIsStop;
/**
* 设置主键
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取主键
*/
public Long getId() {
return id;
}
/**
* 设置作品方向0男频1女频'
*/
public void setWorkDirection(Integer workDirection) {
this.workDirection = workDirection;
}
/**
* 获取作品方向0男频1女频'
*/
public Integer getWorkDirection() {
return workDirection;
}
/**
* 设置分类ID
*/
public void setCatId(Integer catId) {
this.catId = catId;
}
/**
* 获取分类ID
*/
public Integer getCatId() {
return catId;
}
/**
* 设置分类名
*/
public void setCatName(String catName) {
this.catName = catName;
}
/**
* 获取分类名
*/
public String getCatName() {
return catName;
}
/**
* 设置小说封面
*/
public void setPicUrl(String picUrl) {
this.picUrl = picUrl;
}
/**
* 获取小说封面
*/
public String getPicUrl() {
return picUrl;
}
/**
* 设置小说名
*/
public void setBookName(String bookName) {
this.bookName = bookName;
}
/**
* 获取小说名
*/
public String getBookName() {
return bookName;
}
/**
* 设置作者id
*/
public void setAuthorId(Long authorId) {
this.authorId = authorId;
}
/**
* 获取作者id
*/
public Long getAuthorId() {
return authorId;
}
/**
* 设置作者名
*/
public void setAuthorName(String authorName) {
this.authorName = authorName;
}
/**
* 获取作者名
*/
public String getAuthorName() {
return authorName;
}
/**
* 设置书籍描述
*/
public void setBookDesc(String bookDesc) {
this.bookDesc = bookDesc;
}
/**
* 获取书籍描述
*/
public String getBookDesc() {
return bookDesc;
}
/**
* 设置评分预留字段
*/
public void setScore(Float score) {
this.score = score;
}
/**
* 获取评分预留字段
*/
public Float getScore() {
return score;
}
/**
* 设置书籍状态0连载中1已完结
*/
public void setBookStatus(Integer bookStatus) {
this.bookStatus = bookStatus;
}
/**
* 获取书籍状态0连载中1已完结
*/
public Integer getBookStatus() {
return bookStatus;
}
/**
* 设置点击量
*/
public void setVisitCount(Long visitCount) {
this.visitCount = visitCount;
}
/**
* 获取点击量
*/
public Long getVisitCount() {
return visitCount;
}
/**
* 设置总字数
*/
public void setWordCount(Integer wordCount) {
this.wordCount = wordCount;
}
/**
* 获取总字数
*/
public Integer getWordCount() {
return wordCount;
}
/**
* 设置评论数
*/
public void setCommentCount(Integer commentCount) {
this.commentCount = commentCount;
}
/**
* 获取评论数
*/
public Integer getCommentCount() {
return commentCount;
}
/**
* 设置昨日订阅数
*/
public void setYesterdayBuy(Integer yesterdayBuy) {
this.yesterdayBuy = yesterdayBuy;
}
/**
* 获取昨日订阅数
*/
public Integer getYesterdayBuy() {
return yesterdayBuy;
}
/**
* 设置最新目录ID
*/
public void setLastIndexId(Long lastIndexId) {
this.lastIndexId = lastIndexId;
}
/**
* 获取最新目录ID
*/
public Long getLastIndexId() {
return lastIndexId;
}
/**
* 设置最新目录名
*/
public void setLastIndexName(String lastIndexName) {
this.lastIndexName = lastIndexName;
}
/**
* 获取最新目录名
*/
public String getLastIndexName() {
return lastIndexName;
}
/**
* 设置最新目录更新时间
*/
public void setLastIndexUpdateTime(Date lastIndexUpdateTime) {
this.lastIndexUpdateTime = lastIndexUpdateTime;
}
/**
* 获取最新目录更新时间
*/
public Date getLastIndexUpdateTime() {
return lastIndexUpdateTime;
}
/**
* 设置是否收费1收费0免费
*/
public void setIsVip(Integer isVip) {
this.isVip = isVip;
}
/**
* 获取是否收费1收费0免费
*/
public Integer getIsVip() {
return isVip;
}
/**
* 设置状态0入库1上架
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 获取状态0入库1上架
*/
public Integer getStatus() {
return status;
}
/**
* 设置更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* 获取更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* 设置创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置爬虫源站ID
*/
public void setCrawlSourceId(Integer crawlSourceId) {
this.crawlSourceId = crawlSourceId;
}
/**
* 获取爬虫源站ID
*/
public Integer getCrawlSourceId() {
return crawlSourceId;
}
/**
* 设置抓取的源站小说ID
*/
public void setCrawlBookId(String crawlBookId) {
this.crawlBookId = crawlBookId;
}
/**
* 获取抓取的源站小说ID
*/
public String getCrawlBookId() {
return crawlBookId;
}
/**
* 设置最后一次的抓取时间
*/
public void setCrawlLastTime(Date crawlLastTime) {
this.crawlLastTime = crawlLastTime;
}
/**
* 获取最后一次的抓取时间
*/
public Date getCrawlLastTime() {
return crawlLastTime;
}
/**
* 设置是否已停止更新0未停止1已停止
*/
public void setCrawlIsStop(Integer crawlIsStop) {
this.crawlIsStop = crawlIsStop;
}
/**
* 获取是否已停止更新0未停止1已停止
*/
public Integer getCrawlIsStop() {
return crawlIsStop;
}
}

View File

@ -3,304 +3,287 @@
<mapper namespace="com.java2nb.novel.dao.BookDao">
<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>
<select id="get" resultType="com.java2nb.novel.domain.BookDO">
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 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
<where>
<if test="id != null and id != ''"> and id = #{id} </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="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="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="authorName != null and authorName != ''"> and author_name = #{authorName} </if>
<if test="bookDesc != null and bookDesc != ''"> and book_desc = #{bookDesc} </if>
<if test="score != null and score != ''"> and score = #{score} </if>
<if test="bookStatus != null and bookStatus != ''"> and book_status = #{bookStatus} </if>
<if test="visitCount != null and visitCount != ''"> and visit_count = #{visitCount} </if>
<if test="wordCount != null and wordCount != ''"> and word_count = #{wordCount} </if>
<if test="commentCount != null and commentCount != ''"> and comment_count = #{commentCount} </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="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="isVip != null and isVip != ''"> and is_vip = #{isVip} </if>
<if test="status != null and status != ''"> and status = #{status} </if>
<if test="updateTime != null and updateTime != ''"> and update_time = #{updateTime} </if>
<if test="createTime != null and createTime != ''"> and create_time = #{createTime} </if>
<if test="crawlSourceId != null and crawlSourceId != ''"> and crawl_source_id = #{crawlSourceId} </if>
<if test="crawlBookId != null and crawlBookId != ''"> and crawl_book_id = #{crawlBookId} </if>
<if test="crawlLastTime != null and crawlLastTime != ''"> and crawl_last_time = #{crawlLastTime} </if>
<if test="crawlIsStop != null and crawlIsStop != ''"> and crawl_is_stop = #{crawlIsStop} </if>
</where>
<select id="list" resultType="com.java2nb.novel.domain.BookDO">
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>
<if test="id != null and id != ''">and id = #{id}</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="catName != null and catName != ''">and cat_name = #{catName}</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="authorId != null and authorId != ''">and author_id = #{authorId}</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="score != null and score != ''">and score = #{score}</if>
<if test="bookStatus != null and bookStatus != ''">and book_status = #{bookStatus}</if>
<if test="visitCount != null and visitCount != ''">and visit_count = #{visitCount}</if>
<if test="wordCount != null and wordCount != ''">and word_count = #{wordCount}</if>
<if test="commentCount != null and commentCount != ''">and comment_count = #{commentCount}</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="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="isVip != null and isVip != ''">and is_vip = #{isVip}</if>
<if test="status != null and status != ''">and status = #{status}</if>
<if test="updateTime != null and updateTime != ''">and update_time = #{updateTime}</if>
<if test="createTime != null and createTime != ''">and create_time = #{createTime}</if>
<if test="crawlSourceId != null and crawlSourceId != ''">and crawl_source_id = #{crawlSourceId}</if>
<if test="crawlBookId != null and crawlBookId != ''">and crawl_book_id = #{crawlBookId}</if>
<if test="crawlLastTime != null and crawlLastTime != ''">and crawl_last_time = #{crawlLastTime}</if>
<if test="crawlIsStop != null and crawlIsStop != ''">and crawl_is_stop = #{crawlIsStop}</if>
</where>
<choose>
<when test="sort != null and sort.trim() != ''">
order by ${sort} ${order}
</when>
<otherwise>
<otherwise>
order by id desc
</otherwise>
</otherwise>
</choose>
<if test="offset != null and limit != null">
limit #{offset}, #{limit}
</if>
</select>
<select id="count" resultType="int">
select count(*) from book
<where>
<if test="id != null and id != ''"> and id = #{id} </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="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="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="authorName != null and authorName != ''"> and author_name = #{authorName} </if>
<if test="bookDesc != null and bookDesc != ''"> and book_desc = #{bookDesc} </if>
<if test="score != null and score != ''"> and score = #{score} </if>
<if test="bookStatus != null and bookStatus != ''"> and book_status = #{bookStatus} </if>
<if test="visitCount != null and visitCount != ''"> and visit_count = #{visitCount} </if>
<if test="wordCount != null and wordCount != ''"> and word_count = #{wordCount} </if>
<if test="commentCount != null and commentCount != ''"> and comment_count = #{commentCount} </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="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="isVip != null and isVip != ''"> and is_vip = #{isVip} </if>
<if test="status != null and status != ''"> and status = #{status} </if>
<if test="updateTime != null and updateTime != ''"> and update_time = #{updateTime} </if>
<if test="createTime != null and createTime != ''"> and create_time = #{createTime} </if>
<if test="crawlSourceId != null and crawlSourceId != ''"> and crawl_source_id = #{crawlSourceId} </if>
<if test="crawlBookId != null and crawlBookId != ''"> and crawl_book_id = #{crawlBookId} </if>
<if test="crawlLastTime != null and crawlLastTime != ''"> and crawl_last_time = #{crawlLastTime} </if>
<if test="crawlIsStop != null and crawlIsStop != ''"> and crawl_is_stop = #{crawlIsStop} </if>
</where>
</select>
<insert id="save" parameterType="com.java2nb.novel.domain.BookDO">
insert into book
(
`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`
)
values
(
#{id},
#{workDirection},
#{catId},
#{catName},
#{catChildId},
#{catChildName},
#{picUrl},
#{bookName},
#{heroName},
#{ladyName},
#{bookStyle},
#{bookLabel},
#{authorId},
#{authorName},
#{bookDesc},
#{score},
#{bookStatus},
#{visitCount},
#{wordCount},
#{commentCount},
#{yesterdayBuy},
#{lastIndexId},
#{lastIndexName},
#{lastIndexUpdateTime},
#{isVip},
#{status},
#{updateTime},
#{createTime},
#{crawlSourceId},
#{crawlBookId},
#{crawlLastTime},
#{crawlIsStop}
)
</insert>
<if test="offset != null and limit != null">
limit #{offset}, #{limit}
</if>
</select>
<insert id="saveSelective" parameterType="com.java2nb.novel.domain.BookDO">
insert into book
(
<if test="id != null"> `id`, </if>
<if test="workDirection != null"> `work_direction`, </if>
<if test="catId != null"> `cat_id`, </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="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="authorName != null"> `author_name`, </if>
<if test="bookDesc != null"> `book_desc`, </if>
<if test="score != null"> `score`, </if>
<if test="bookStatus != null"> `book_status`, </if>
<if test="visitCount != null"> `visit_count`, </if>
<if test="wordCount != null"> `word_count`, </if>
<if test="commentCount != null"> `comment_count`, </if>
<if test="yesterdayBuy != null"> `yesterday_buy`, </if>
<if test="lastIndexId != null"> `last_index_id`, </if>
<if test="lastIndexName != null"> `last_index_name`, </if>
<if test="lastIndexUpdateTime != null"> `last_index_update_time`, </if>
<if test="isVip != null"> `is_vip`, </if>
<if test="status != null"> `status`, </if>
<if test="updateTime != null"> `update_time`, </if>
<if test="createTime != null"> `create_time`, </if>
<if test="crawlSourceId != null"> `crawl_source_id`, </if>
<if test="crawlBookId != null"> `crawl_book_id`, </if>
<if test="crawlLastTime != null"> `crawl_last_time`, </if>
<if test="crawlIsStop != null"> `crawl_is_stop` </if>
)
values
(
<if test="id != null"> #{id}, </if>
<if test="workDirection != null"> #{workDirection}, </if>
<if test="catId != null"> #{catId}, </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="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="authorName != null"> #{authorName}, </if>
<if test="bookDesc != null"> #{bookDesc}, </if>
<if test="score != null"> #{score}, </if>
<if test="bookStatus != null"> #{bookStatus}, </if>
<if test="visitCount != null"> #{visitCount}, </if>
<if test="wordCount != null"> #{wordCount}, </if>
<if test="commentCount != null"> #{commentCount}, </if>
<if test="yesterdayBuy != null"> #{yesterdayBuy}, </if>
<if test="lastIndexId != null"> #{lastIndexId}, </if>
<if test="lastIndexName != null"> #{lastIndexName}, </if>
<if test="lastIndexUpdateTime != null"> #{lastIndexUpdateTime}, </if>
<if test="isVip != null"> #{isVip}, </if>
<if test="status != null"> #{status}, </if>
<if test="updateTime != null"> #{updateTime}, </if>
<if test="createTime != null"> #{createTime}, </if>
<if test="crawlSourceId != null"> #{crawlSourceId}, </if>
<if test="crawlBookId != null"> #{crawlBookId}, </if>
<if test="crawlLastTime != null"> #{crawlLastTime}, </if>
<if test="crawlIsStop != null"> #{crawlIsStop} </if>
)
</insert>
<update id="update" parameterType="com.java2nb.novel.domain.BookDO">
update book
<set>
<if test="workDirection != null">`work_direction` = #{workDirection}, </if>
<if test="catId != null">`cat_id` = #{catId}, </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="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="authorName != null">`author_name` = #{authorName}, </if>
<if test="bookDesc != null">`book_desc` = #{bookDesc}, </if>
<if test="score != null">`score` = #{score}, </if>
<if test="bookStatus != null">`book_status` = #{bookStatus}, </if>
<if test="visitCount != null">`visit_count` = #{visitCount}, </if>
<if test="wordCount != null">`word_count` = #{wordCount}, </if>
<if test="commentCount != null">`comment_count` = #{commentCount}, </if>
<if test="yesterdayBuy != null">`yesterday_buy` = #{yesterdayBuy}, </if>
<if test="lastIndexId != null">`last_index_id` = #{lastIndexId}, </if>
<if test="lastIndexName != null">`last_index_name` = #{lastIndexName}, </if>
<if test="lastIndexUpdateTime != null">`last_index_update_time` = #{lastIndexUpdateTime}, </if>
<if test="isVip != null">`is_vip` = #{isVip}, </if>
<if test="status != null">`status` = #{status}, </if>
<if test="updateTime != null">`update_time` = #{updateTime}, </if>
<if test="createTime != null">`create_time` = #{createTime}, </if>
<if test="crawlSourceId != null">`crawl_source_id` = #{crawlSourceId}, </if>
<if test="crawlBookId != null">`crawl_book_id` = #{crawlBookId}, </if>
<if test="crawlLastTime != null">`crawl_last_time` = #{crawlLastTime}, </if>
<if test="crawlIsStop != null">`crawl_is_stop` = #{crawlIsStop}</if>
</set>
where id = #{id}
</update>
<delete id="remove">
delete from book where id = #{value}
</delete>
<delete id="batchRemove">
delete from book where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="count" resultType="int">
select count(*) from book
<where>
<if test="id != null and id != ''">and id = #{id}</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="catName != null and catName != ''">and cat_name = #{catName}</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="authorId != null and authorId != ''">and author_id = #{authorId}</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="score != null and score != ''">and score = #{score}</if>
<if test="bookStatus != null and bookStatus != ''">and book_status = #{bookStatus}</if>
<if test="visitCount != null and visitCount != ''">and visit_count = #{visitCount}</if>
<if test="wordCount != null and wordCount != ''">and word_count = #{wordCount}</if>
<if test="commentCount != null and commentCount != ''">and comment_count = #{commentCount}</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="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="isVip != null and isVip != ''">and is_vip = #{isVip}</if>
<if test="status != null and status != ''">and status = #{status}</if>
<if test="updateTime != null and updateTime != ''">and update_time = #{updateTime}</if>
<if test="createTime != null and createTime != ''">and create_time = #{createTime}</if>
<if test="crawlSourceId != null and crawlSourceId != ''">and crawl_source_id = #{crawlSourceId}</if>
<if test="crawlBookId != null and crawlBookId != ''">and crawl_book_id = #{crawlBookId}</if>
<if test="crawlLastTime != null and crawlLastTime != ''">and crawl_last_time = #{crawlLastTime}</if>
<if test="crawlIsStop != null and crawlIsStop != ''">and crawl_is_stop = #{crawlIsStop}</if>
</where>
</select>
<select id="tableSta" resultType="map">
SELECT
DATE_FORMAT( create_time, "%Y-%m-%d" ) AS staDate,
COUNT( 1 ) bookCount
FROM
book
WHERE
create_time >= #{minDate}
GROUP BY
DATE_FORMAT( create_time, "%Y-%m-%d" )
ORDER BY
staDate
</select>
<insert id="save" parameterType="com.java2nb.novel.domain.BookDO">
insert into book
(`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`)
values (#{id},
#{workDirection},
#{catId},
#{catName},
#{picUrl},
#{bookName},
#{authorId},
#{authorName},
#{bookDesc},
#{score},
#{bookStatus},
#{visitCount},
#{wordCount},
#{commentCount},
#{yesterdayBuy},
#{lastIndexId},
#{lastIndexName},
#{lastIndexUpdateTime},
#{isVip},
#{status},
#{updateTime},
#{createTime},
#{crawlSourceId},
#{crawlBookId},
#{crawlLastTime},
#{crawlIsStop})
</insert>
<insert id="saveSelective" parameterType="com.java2nb.novel.domain.BookDO">
insert into book
(
<if test="id != null">`id`,</if>
<if test="workDirection != null">`work_direction`,</if>
<if test="catId != null">`cat_id`,</if>
<if test="catName != null">`cat_name`,</if>
<if test="picUrl != null">`pic_url`,</if>
<if test="bookName != null">`book_name`,</if>
<if test="authorId != null">`author_id`,</if>
<if test="authorName != null">`author_name`,</if>
<if test="bookDesc != null">`book_desc`,</if>
<if test="score != null">`score`,</if>
<if test="bookStatus != null">`book_status`,</if>
<if test="visitCount != null">`visit_count`,</if>
<if test="wordCount != null">`word_count`,</if>
<if test="commentCount != null">`comment_count`,</if>
<if test="yesterdayBuy != null">`yesterday_buy`,</if>
<if test="lastIndexId != null">`last_index_id`,</if>
<if test="lastIndexName != null">`last_index_name`,</if>
<if test="lastIndexUpdateTime != null">`last_index_update_time`,</if>
<if test="isVip != null">`is_vip`,</if>
<if test="status != null">`status`,</if>
<if test="updateTime != null">`update_time`,</if>
<if test="createTime != null">`create_time`,</if>
<if test="crawlSourceId != null">`crawl_source_id`,</if>
<if test="crawlBookId != null">`crawl_book_id`,</if>
<if test="crawlLastTime != null">`crawl_last_time`,</if>
<if test="crawlIsStop != null">`crawl_is_stop`</if>
)
values
(
<if test="id != null">#{id},</if>
<if test="workDirection != null">#{workDirection},</if>
<if test="catId != null">#{catId},</if>
<if test="catName != null">#{catName},</if>
<if test="picUrl != null">#{picUrl},</if>
<if test="bookName != null">#{bookName},</if>
<if test="authorId != null">#{authorId},</if>
<if test="authorName != null">#{authorName},</if>
<if test="bookDesc != null">#{bookDesc},</if>
<if test="score != null">#{score},</if>
<if test="bookStatus != null">#{bookStatus},</if>
<if test="visitCount != null">#{visitCount},</if>
<if test="wordCount != null">#{wordCount},</if>
<if test="commentCount != null">#{commentCount},</if>
<if test="yesterdayBuy != null">#{yesterdayBuy},</if>
<if test="lastIndexId != null">#{lastIndexId},</if>
<if test="lastIndexName != null">#{lastIndexName},</if>
<if test="lastIndexUpdateTime != null">#{lastIndexUpdateTime},</if>
<if test="isVip != null">#{isVip},</if>
<if test="status != null">#{status},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="createTime != null">#{createTime},</if>
<if test="crawlSourceId != null">#{crawlSourceId},</if>
<if test="crawlBookId != null">#{crawlBookId},</if>
<if test="crawlLastTime != null">#{crawlLastTime},</if>
<if test="crawlIsStop != null">#{crawlIsStop}</if>
)
</insert>
<update id="update" parameterType="com.java2nb.novel.domain.BookDO">
update book
<set>
<if test="workDirection != null">`work_direction` = #{workDirection},</if>
<if test="catId != null">`cat_id` = #{catId},</if>
<if test="catName != null">`cat_name` = #{catName},</if>
<if test="picUrl != null">`pic_url` = #{picUrl},</if>
<if test="bookName != null">`book_name` = #{bookName},</if>
<if test="authorId != null">`author_id` = #{authorId},</if>
<if test="authorName != null">`author_name` = #{authorName},</if>
<if test="bookDesc != null">`book_desc` = #{bookDesc},</if>
<if test="score != null">`score` = #{score},</if>
<if test="bookStatus != null">`book_status` = #{bookStatus},</if>
<if test="visitCount != null">`visit_count` = #{visitCount},</if>
<if test="wordCount != null">`word_count` = #{wordCount},</if>
<if test="commentCount != null">`comment_count` = #{commentCount},</if>
<if test="yesterdayBuy != null">`yesterday_buy` = #{yesterdayBuy},</if>
<if test="lastIndexId != null">`last_index_id` = #{lastIndexId},</if>
<if test="lastIndexName != null">`last_index_name` = #{lastIndexName},</if>
<if test="lastIndexUpdateTime != null">`last_index_update_time` = #{lastIndexUpdateTime},</if>
<if test="isVip != null">`is_vip` = #{isVip},</if>
<if test="status != null">`status` = #{status},</if>
<if test="updateTime != null">`update_time` = #{updateTime},</if>
<if test="createTime != null">`create_time` = #{createTime},</if>
<if test="crawlSourceId != null">`crawl_source_id` = #{crawlSourceId},</if>
<if test="crawlBookId != null">`crawl_book_id` = #{crawlBookId},</if>
<if test="crawlLastTime != null">`crawl_last_time` = #{crawlLastTime},</if>
<if test="crawlIsStop != null">`crawl_is_stop` = #{crawlIsStop}</if>
</set>
where id = #{id}
</update>
<delete id="remove">
delete
from book
where id = #{value}
</delete>
<delete id="batchRemove">
delete from book where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="tableSta" resultType="map">
SELECT DATE_FORMAT(create_time, "%Y-%m-%d") AS staDate,
COUNT(1) bookCount
FROM book
WHERE create_time >= #{minDate}
GROUP BY DATE_FORMAT(create_time, "%Y-%m-%d")
ORDER BY staDate
</select>
</mapper>

View File

@ -59,220 +59,91 @@ function load() {
return arguments[2] + 1;
}
},
{
field: 'id',
title: '主键'
},
{
field: 'workDirection',
title: '作品方向0男频1女频'
},
{
field: 'catId',
title: '分类ID'
},
{
field: 'catName',
title: '分类名'
},
{
field: 'catChildId',
title: '子分类ID'
},
{
field: 'catChildName',
title: '子分类名'
},
{
field: 'picUrl',
title: '小说封面'
},
{
field: 'bookName',
title: '小说名'
},
{
field: 'heroName',
title: '男主角姓名'
},
{
field: 'ladyName',
title: '女主角姓名'
},
{
field: 'bookStyle',
title: '作品风格0甜宠1虐恋2其他'
},
{
field: 'bookLabel',
title: '作品标签'
},
{
field: 'authorId',
title: '作者id'
},
{
field: 'authorName',
title: '作者名'
},
{
field: 'bookDesc',
title: '书籍描述'
},
{
field: 'score',
title: '评分预留字段'
},
{
field: 'bookStatus',
title: '书籍状态0连载中1已完结'
},
{
field: 'visitCount',
title: '点击量'
},
{
field: 'wordCount',
title: '总字数'
},
{
field: 'commentCount',
title: '评论数'
},
{
field: 'yesterdayBuy',
title: '昨日订阅数'
},
{
field: 'lastIndexId',
title: '最新目录ID'
},
{
field: 'lastIndexName',
title: '最新目录名'
},
{
field: 'lastIndexUpdateTime',
title: '最新目录更新时间'
},
{
field: 'isVip',
title: '是否收费1收费0免费'
},
{
field: 'status',
title: '状态0入库1上架'
},
{
field: 'updateTime',
title: '更新时间'
},
{
field: 'createTime',
title: '创建时间'
},
{
field: 'crawlSourceId',
title: '爬虫源站ID'
},
{
field: 'crawlBookId',
title: '抓取的源站小说ID'
},
{
field: 'crawlLastTime',
title: '最后一次的抓取时间'
},
{
field: 'crawlIsStop',
title: '是否已停止更新0未停止1已停止'
},
{
title: '操作',
field: 'id',
align: 'center',
{
field: 'workDirection',
title: '作品方向',
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;
return value === 0 ? '男频' : '女频';
}
}]
},
{
field: 'catName',
title: '分类名'
},
{
field: 'bookName',
title: '小说名'
},
{
field: 'authorName',
title: '作者名'
},
{
field: 'bookStatus',
title: '书籍状态',
formatter: function (value, row, index) {
return value === 0 ? '连载中' : '已完结';
}
},
{
field: 'visitCount',
title: '点击量'
},
{
field: 'wordCount',
title: '总字数'
},
{
field: 'commentCount',
title: '评论数'
},
{
field: 'yesterdayBuy',
title: '昨日订阅数'
},
{
field: 'lastIndexName',
title: '最新章节'
},
{
field: 'lastIndexUpdateTime',
title: '最新章节更新时间'
},
{
field: 'isVip',
title: '是否收费',
formatter: function (value, row, index) {
return value === 1 ? '收费' : '免费';
}
},
{
field: 'createTime',
title: '入库时间'
}
]
});
}
function reLoad() {
$('#exampleTable').bootstrapTable('refresh');
}
function add() {
layer.open({
type: 2,
@ -283,6 +154,7 @@ function add() {
content: prefix + '/add' // iframe的url
});
}
function detail(id) {
layer.open({
type: 2,
@ -293,6 +165,7 @@ function detail(id) {
content: prefix + '/detail/' + id // iframe的url
});
}
function edit(id) {
layer.open({
type: 2,
@ -303,6 +176,7 @@ function edit(id) {
content: prefix + '/edit/' + id // iframe的url
});
}
function remove(id) {
layer.confirm('确定要删除选中的记录', {
btn: ['确定', '取消']
@ -327,6 +201,7 @@ function remove(id) {
function resetPwd(id) {
}
function batchRemove() {
var rows = $('#exampleTable').bootstrapTable('getSelections'); // 返回所有选择的行当没有选择的记录时返回一个空数组
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/css/public.css" media="all">
<style>
.layui-card {border:1px solid #f2f2f2;border-radius:5px;}
.icon {margin-right:10px;color:#1aa094;}
.icon-cray {color:#ffb800!important;}
.icon-blue {color:#1e9fff!important;}
.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 {
padding-right: 70px !important;text-overflow:ellipsis!important;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;}
.layui-card {
border: 1px solid #f2f2f2;
border-radius: 5px;
}
.icon {
margin-right: 10px;
color: #1aa094;
}
.icon-cray {
color: #ffb800 !important;
}
.icon-blue {
color: #1e9fff !important;
}
.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 {
padding-right: 70px !important;
text-overflow: ellipsis !important;
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>
</head>
<body>
@ -133,7 +247,7 @@
<tr>
<td>项目名称</td>
<td>
小说精品屋
novel
</td>
</tr>
<tr>
@ -142,21 +256,25 @@
</tr>
<tr>
<td>主要特色</td>
<td>小说 / 漫画 / 自适应 / 弹幕 / 采集</td>
<td>Spring Boot 3 / Vue 3 / 项目实战 / 保姆级教程</td>
</tr>
<tr>
<td>下载地址</td>
<td>
<a href="https://gitee.com/novel_dev_team/fiction_house" target="_blank">Gitee</a> /
<a href="https://github.com/201206030/fiction_house" target="_blank">Github</a>
<a href="https://gitee.com/novel_dev_team/novel" target="_blank">Gitee</a> /
<a href="https://github.com/201206030/novel" target="_blank">Github</a>
</td>
</tr>
<tr>
<td>Gitee</td>
<td style="padding-bottom: 0;">
<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/fiction_house/members'><img src='https://gitee.com/novel_dev_team/fiction_house/badge/fork.svg?theme=dark' alt='fork'></img></a>
<a href='https://gitee.com/novel_dev_team/novel/stargazers'><img
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>
</td>
</tr>
@ -164,8 +282,10 @@
<td>Github</td>
<td style="padding-bottom: 0;">
<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=fiction_house&type=fork&count=true" frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel&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=fork&count=true"
frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
</div>
</td>
</tr>
@ -186,7 +306,7 @@
<tr>
<td>项目名称</td>
<td>
小说精品屋-plus
novel-plus
</td>
</tr>
<tr>
@ -208,8 +328,12 @@
<td>Gitee</td>
<td style="padding-bottom: 0;">
<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/members'><img src='https://gitee.com/novel_dev_team/novel-plus/badge/fork.svg?theme=dark' alt='fork'></img></a>
<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/members'><img
src='https://gitee.com/novel_dev_team/novel-plus/badge/fork.svg?theme=dark'
alt='fork'></img></a>
</div>
</td>
</tr>
@ -217,8 +341,10 @@
<td>Github</td>
<td style="padding-bottom: 0;">
<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=fork&count=true" frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
<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=fork&count=true"
frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
</div>
</td>
</tr>
@ -239,7 +365,7 @@
<tr>
<td>项目名称</td>
<td>
小说精品屋-微服务版
novel-cloud
</td>
</tr>
<tr>
@ -248,7 +374,7 @@
</tr>
<tr>
<td>主要特色</td>
<td>SpringCloudAlibaba / Redis / RabbitMq / ElasticSearch / Sharding-Jdbc / Docker</td>
<td>微服务 / Spring Cloud 2022 / Spring Cloud Alibaba 2022</td>
</tr>
<tr>
<td>下载地址</td>
@ -261,8 +387,12 @@
<td>Gitee</td>
<td style="padding-bottom: 0;">
<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/members'><img src='https://gitee.com/novel_dev_team/novel-cloud/badge/fork.svg?theme=dark' alt='fork'></img></a>
<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/members'><img
src='https://gitee.com/novel_dev_team/novel-cloud/badge/fork.svg?theme=dark'
alt='fork'></img></a>
</div>
</td>
</tr>
@ -270,8 +400,10 @@
<td>Github</td>
<td style="padding-bottom: 0;">
<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=fork&count=true" frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
<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=fork&count=true"
frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
</div>
</td>
</tr>
@ -303,7 +435,7 @@
},
});
layui.use(['layer', 'layuimini','echarts'], function () {
layui.use(['layer', 'layuimini', 'echarts'], function () {
var $ = layui.jquery,
layer = layui.layer,
layuimini = layui.layuimini,
@ -322,14 +454,14 @@
'</div>\n';
parent.layer.open({
type: 1,
title: '系统公告'+'<span style="float: right;right: 1px;font-size: 12px;color: #b1b3b9;margin-top: 1px">'+noticeTime+'</span>',
title: '系统公告' + '<span style="float: right;right: 1px;font-size: 12px;color: #b1b3b9;margin-top: 1px">' + noticeTime + '</span>',
area: '300px;',
shade: 0.8,
id: 'layuimini-notice',
btn: ['查看', '取消'],
btnAlign: 'c',
moveType: 1,
content:html,
content: html,
success: function (layero) {
var btn = layero.find('.layui-layer-btn');
btn.find('.layui-layer-btn0').attr({
@ -349,52 +481,51 @@
data: {},
success: function (r) {
if (r.code == 0) {
var legendData = ['会员新增','作家新增','作品新增','交易新增'];
var legendData = ['会员新增', '作家新增', '作品新增', '交易新增'];
var userSeries = [
{
name:'会员新增',
type:'line',
data:[]
},{
name:'作家新增',
type:'line',
data:[]
},{
name:'作品新增',
type:'line',
data:[]
},{
name:'交易新增',
type:'line',
data:[]
name: '会员新增',
type: 'line',
data: []
}, {
name: '作家新增',
type: 'line',
data: []
}, {
name: '作品新增',
type: 'line',
data: []
}, {
name: '交易新增',
type: 'line',
data: []
}];
var xAxisData = r.dateList;
var userTableSta = r.userTableSta;
for(var i = 0 ; i < xAxisData.length ; i++){
for (var i = 0; i < xAxisData.length; i++) {
userSeries[0].data[i] = userTableSta[xAxisData[i]] ? userTableSta[xAxisData[i]] : 0;
}
var authorTableSta = r.authorTableSta;
for(var i = 0 ; i < xAxisData.length ; i++){
for (var i = 0; i < xAxisData.length; i++) {
userSeries[1].data[i] = authorTableSta[xAxisData[i]] ? authorTableSta[xAxisData[i]] : 0;
}
var bookTableSta = r.bookTableSta;
for(var i = 0 ; i < xAxisData.length ; i++){
for (var i = 0; i < xAxisData.length; i++) {
userSeries[2].data[i] = bookTableSta[xAxisData[i]] ? bookTableSta[xAxisData[i]] : 0;
}
var orderTableSta = r.orderTableSta;
for(var i = 0 ; i < xAxisData.length ; i++){
for (var i = 0; i < xAxisData.length; i++) {
userSeries[3].data[i] = orderTableSta[xAxisData[i]] ? orderTableSta[xAxisData[i]] : 0;
}
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
var optionRecords = {
tooltip: {
trigger: 'axis'
},
legend: {
data:legendData
data: legendData
},
grid: {
left: '3%',
@ -420,7 +551,7 @@
echartsRecords.setOption(optionRecords);
// echarts 窗口缩放自适应
window.onresize = function(){
window.onresize = function () {
echartsRecords.resize();
}

View File

@ -9,294 +9,294 @@
<div class="ibox float-e-margins">
<div class="ibox-content">
<form class="form-horizontal m-t" id="signupForm">
<div class="form-group">
<label class="col-sm-3 control-label">作品方向0男频1女频</label>
<div class="col-sm-8">
<input id="workDirection" name="workDirection"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">分类ID</label>
<div class="col-sm-8">
<input id="catId" name="catId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">分类名:</label>
<div class="col-sm-8">
<input id="catName" name="catName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">子分类ID</label>
<div class="col-sm-8">
<input id="catChildId" name="catChildId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">子分类名:</label>
<div class="col-sm-8">
<input id="catChildName" name="catChildName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">小说封面:</label>
<div class="col-sm-8">
<input id="picUrl" name="picUrl"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">小说名:</label>
<div class="col-sm-8">
<input id="bookName" name="bookName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">男主角姓名:</label>
<div class="col-sm-8">
<input id="heroName" name="heroName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">女主角姓名:</label>
<div class="col-sm-8">
<input id="ladyName" name="ladyName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">作品风格0甜宠1虐恋2其他</label>
<div class="col-sm-8">
<input id="bookStyle" name="bookStyle"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">作品标签:</label>
<div class="col-sm-8">
<input id="bookLabel" name="bookLabel"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">作者id</label>
<div class="col-sm-8">
<input id="authorId" name="authorId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">作者名:</label>
<div class="col-sm-8">
<input id="authorName" name="authorName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">书籍描述:</label>
<div class="col-sm-8">
<input id="bookDesc" name="bookDesc"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">评分,预留字段:</label>
<div class="col-sm-8">
<input id="score" name="score"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">书籍状态0连载中1已完结</label>
<div class="col-sm-8">
<input id="bookStatus" name="bookStatus"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">点击量:</label>
<div class="col-sm-8">
<input id="visitCount" name="visitCount"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">总字数:</label>
<div class="col-sm-8">
<input id="wordCount" name="wordCount"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">评论数:</label>
<div class="col-sm-8">
<input id="commentCount" name="commentCount"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">昨日订阅数:</label>
<div class="col-sm-8">
<input id="yesterdayBuy" name="yesterdayBuy"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">最新目录ID</label>
<div class="col-sm-8">
<input id="lastIndexId" name="lastIndexId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">最新目录名:</label>
<div class="col-sm-8">
<input id="lastIndexName" name="lastIndexName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">最新目录更新时间:</label>
<div class="col-sm-8">
<input type="text" class="laydate-icon layer-date form-control"
id="lastIndexUpdateTime"
name="lastIndexUpdateTime"
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
style="background-color: #fff;" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否收费1收费0免费</label>
<div class="col-sm-8">
<input id="isVip" name="isVip"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态0入库1上架</label>
<div class="col-sm-8">
<input id="status" name="status"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">更新时间:</label>
<div class="col-sm-8">
<input type="text" class="laydate-icon layer-date form-control"
id="updateTime"
name="updateTime"
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
style="background-color: #fff;" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">创建时间:</label>
<div class="col-sm-8">
<input type="text" class="laydate-icon layer-date form-control"
id="createTime"
name="createTime"
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
style="background-color: #fff;" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">爬虫源站ID</label>
<div class="col-sm-8">
<input id="crawlSourceId" name="crawlSourceId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">抓取的源站小说ID</label>
<div class="col-sm-8">
<input id="crawlBookId" name="crawlBookId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">最后一次的抓取时间:</label>
<div class="col-sm-8">
<input type="text" class="laydate-icon layer-date form-control"
id="crawlLastTime"
name="crawlLastTime"
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
style="background-color: #fff;" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否已停止更新0未停止1已停止</label>
<div class="col-sm-8">
<input id="crawlIsStop" name="crawlIsStop"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">作品方向0男频1女频</label>
<div class="col-sm-8">
<input id="workDirection" name="workDirection"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">分类ID</label>
<div class="col-sm-8">
<input id="catId" name="catId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">分类名:</label>
<div class="col-sm-8">
<input id="catName" name="catName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">子分类ID</label>
<div class="col-sm-8">
<input id="catChildId" name="catChildId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">子分类名:</label>
<div class="col-sm-8">
<input id="catChildName" name="catChildName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">小说封面:</label>
<div class="col-sm-8">
<input id="picUrl" name="picUrl"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">小说名:</label>
<div class="col-sm-8">
<input id="bookName" name="bookName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">男主角姓名:</label>
<div class="col-sm-8">
<input id="heroName" name="heroName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">女主角姓名:</label>
<div class="col-sm-8">
<input id="ladyName" name="ladyName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">作品风格0甜宠1虐恋2其他</label>
<div class="col-sm-8">
<input id="bookStyle" name="bookStyle"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">作品标签:</label>
<div class="col-sm-8">
<input id="bookLabel" name="bookLabel"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">作者id</label>
<div class="col-sm-8">
<input id="authorId" name="authorId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">作者名:</label>
<div class="col-sm-8">
<input id="authorName" name="authorName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">书籍描述:</label>
<div class="col-sm-8">
<input id="bookDesc" name="bookDesc"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">评分,预留字段:</label>
<div class="col-sm-8">
<input id="score" name="score"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">书籍状态0连载中1已完结</label>
<div class="col-sm-8">
<input id="bookStatus" name="bookStatus"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">点击量:</label>
<div class="col-sm-8">
<input id="visitCount" name="visitCount"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">总字数:</label>
<div class="col-sm-8">
<input id="wordCount" name="wordCount"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">评论数:</label>
<div class="col-sm-8">
<input id="commentCount" name="commentCount"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">昨日订阅数:</label>
<div class="col-sm-8">
<input id="yesterdayBuy" name="yesterdayBuy"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">最新目录ID</label>
<div class="col-sm-8">
<input id="lastIndexId" name="lastIndexId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">最新目录名:</label>
<div class="col-sm-8">
<input id="lastIndexName" name="lastIndexName"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">最新目录更新时间:</label>
<div class="col-sm-8">
<input type="text" class="laydate-icon layer-date form-control"
id="lastIndexUpdateTime"
name="lastIndexUpdateTime"
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
style="background-color: #fff;" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否收费1收费0免费</label>
<div class="col-sm-8">
<input id="isVip" name="isVip"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态0入库1上架</label>
<div class="col-sm-8">
<input id="status" name="status"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">更新时间:</label>
<div class="col-sm-8">
<input type="text" class="laydate-icon layer-date form-control"
id="updateTime"
name="updateTime"
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
style="background-color: #fff;" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">创建时间:</label>
<div class="col-sm-8">
<input type="text" class="laydate-icon layer-date form-control"
id="createTime"
name="createTime"
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
style="background-color: #fff;" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">爬虫源站ID</label>
<div class="col-sm-8">
<input id="crawlSourceId" name="crawlSourceId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">抓取的源站小说ID</label>
<div class="col-sm-8">
<input id="crawlBookId" name="crawlBookId"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">最后一次的抓取时间:</label>
<div class="col-sm-8">
<input type="text" class="laydate-icon layer-date form-control"
id="crawlLastTime"
name="crawlLastTime"
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
style="background-color: #fff;" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否已停止更新0未停止1已停止</label>
<div class="col-sm-8">
<input id="crawlIsStop" name="crawlIsStop"
class="form-control"
type="text">
</div>
</div>
<div class="form-group">
<div class="col-sm-8 col-sm-offset-3">
<button type="submit" class="btn btn-primary">提交</button>
</div>

View File

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