书籍开本的大小是以印刷纸的全张为计算单位,每全张纸切成多少小张,就叫多少开本。
由于纸面的幅度不一样,同样开本的尺寸是不一样的,所以选择开本时要注明全张纸的幅面尺寸。
版心是版面上容纳的文字、图表(一般不包括书眉、中缝和页码)的部位。
书籍内页:指除了封面以外的所有页面称为内页,一般编排顺序为:封1 ,封2 ,内页 ,封3,封4
/**
* @param 删除bookid下的pagecontent
* @return
*/
public int deleteByBookid(long bookid) {
return Db.update(SqlKit.sql(“podpagecontent.deleteByBookid”), bookid);
}
1 分片存储 按照月份存储 参数: 用户的id 用户的书的id(一个月的所有的数据存储 直接放到数据库中 没有什么不同的)
按照月份获取 (先获取所有的数据 在利用java对所有的数据辨别 得到一个月份的数据
这样比带条件的sql的查询速度要快(从计算机的内存中去的数据))
请求参数 : 用户的id 一个月份的数据month
chack 请求参数
利用用户id查到所有的微信文章数据
如果update_time字段存在的话
利用数据中的update_time字段判断
不存在利用create_time字段判断数据
得到就是本月的数据子list
利用微信书的id得到所有的微信文章
利用微信书id得到以前的排版的数据(以前没有的话就建立podbook 填充数据)
然后将 articlelist json 数据 返回到前端
一个月为一个articleList
利用id month 请求参数得到 数据库中的参数
对这些参数进行排版 将排版之后的数据又一次存入数据库中
根据页面功能调整(预览时,添加编辑,删除某一条微信数据),
微信书的排版会被频繁调用,故需要分月存储微信的排版数据
pod_book的lastupdatetime值是 一个月的微信数据的 updatetime 的最大值
只要是传来的updatetime 大于 lastupdatetime 就认为修改了本月的数据
list pod_book -> pod_book 返回
BookinfoDto root
page
List<OnePageDto>
OnePageDto page
pageinfo ``````
pagecontent ``````
pageinfoDto
List<UIContent> pagecontent
wx_article
content 微信的正文段落
album 所属的微信书的id
wx_album
微信书 数据表
此表的id 会被用到pod_book中
此2张表作为原始的存储的数据
要对其数据进行处理 变成pod_book数据
pod—book
id 待排版的书籍数据
`contenttype` char(2) '1时光,2时光集,3混合(挑选自己的时光片形成自己的书),4书与时光、时光集无关;z模板套件,4.微信书,5.QQ空间书,6.时光圈书,7.预留时光圈碎片,8.通讯录书',
innertepletid 版心,pod_pagecontent外键,枚举值,内置。备用
kaibentempletid` 开本,pod_pagecontent外键,枚举值,内置。
Long booktemplateid = 21l;// 没有封面的模板
`booktemplateid` bigint(20DEFAULT NULL, // 书页模板信息。 可根据此获取:封面信息、版心信息、开本信息、广告位信息。
id
bigint(20 ‘pod书籍表。一个时光对应一本书,一个时光集对应一本书。页套件id’,
booktype
char(1) ‘类型:杂志,纪念册(卡通,浪漫等),通讯录等,枚举值1杂志,z封面页套件,备用’,
contenttype
char(2) ‘1时光,2时光集,3混合(挑选自己的时光片形成自己的书),4书与时光、时光集无关;z模板套件,4.微信书,5.QQ空间书,6.时光圈书,7.预留时光圈碎片,8.通讯录书’,
booktemplateid
bigint(20DEFAULT NULL,
levelid1
bigint(20) DEFAULT NULL COMMENT ‘时光id,或时光集id,当为1、2时有效,外键。’,
levelid2
bigint(20) DEFAULT NULL COMMENT ‘冗余,level1id为时光id时,记录时光所在的时光集id,外键。’,
userid
bigint(20) DEFAULT NULL COMMENT ‘创建者,用户表外键。一般被认为前台用户事件触发生成;或系统为用户生成,此时,创建者被认为是完全拥有者。’,
authorids
varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ‘用户id列表,多个逗号隔开,每个为用户表外键。冗余。见pod_bookuser’, suofanglv
float DEFAULT ‘1’,
adspos
bigint(20) DEFAULT NULL COMMENT ‘广告位位置信息,page表外键’,
innertempletid
bigint(20) DEFAULT NULL COMMENT ‘版心,pod_pagecontent外键,枚举值,内置。备用’,
kaibentempletid
bigint(20) DEFAULT NULL COMMENT ‘开本,pod_pagecontent外键,枚举值,内置。’,
creatime
datetime DEFAULT NULL COMMENT ‘创建时间’,
isownerread
bit(1) DEFAULT b’0’ COMMENT ‘用户是否读过。用户已阅,更改时光片时提示,覆盖还是保留原版。’,
isownerwrite
bit(1) DEFAULT b’0’ COMMENT ‘用户是否自己改过。用户已改过,更改时光片时提示,覆盖还是保留原版。’,
lastupdatetime
datetime DEFAULT NULL COMMENT ‘最近更新时间’,
pagenum
int(11) DEFAULT NULL COMMENT ‘冗余,页数,当为时光对应的书时有效。’,
isdelete
bit(1) DEFAULT b’0’ COMMENT ‘是否删除0没,1删除’,
islogicbook
bit(1) DEFAULT b’0’ COMMENT ‘是不是逻辑概念的书0不是,1是’,
lastpodxml
longtext COLLATE utf8mb4_unicode_ci,
totalpage
int(11) DEFAULT ‘0’,
pod_page
bookid 本页所属的那个书籍
contentType 枚举值,1时光、2话题、3自己制作的页(不属于任何最小单元的书)。不会是时光集(不是最小单元的书)。a封面模板上,b封面模板下,c页眉|页脚|广告位模板,d页模板表’,
templatename
varchar(300) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT ‘当contenttype为a、b、c、d(系统内置类型)时有效,模板说明’,
infoid
bigint(20) DEFAULT NULL COMMENT ‘当type为1时光、2话题时有效。话题、时光id’,
kaibentempletid
bigint(20) DEFAULT NULL COMMENT ‘开本id,pod_pagecontent外键,继承自书本’,
innertempletidbigint(20) DEFAULT NULL COMMENT '版心id,pod_pagecontent外键,继承自书本',
templetid
bigint(20) DEFAULT NULL COMMENT '书页使用的模板id,外键,自引用,只作备份',
lastpagexml` longtext COLLATE utf8_unicode_ci, 每一页的排版数据
pod_pagecontent
中存在pod-page的信息
id
bigint(20) ‘主键’,
pageid
bigint(20) ‘当contentflag 为1、2、3、4、c、d、e、f、g、h、i时有效,pod_page外键’,
contentflag
char(1) contentflag类型,1书页内容,2模板内容,3封面上,4封面下。a开本,b版心,c页眉,d页脚,e广告位1,f广告位2,g广告位3,h广告位4,i广告位5。广告位为左页面位置,当实际为右页面时,需要转换。’,
type
char(1) ‘内容类型,是文本还是图片标识,0图片说明文字,1图片,2截取文字’,
templatedecription
当contentflag为2、3、a、b、c、d、e、f、g、h、i(即为系统内置类型时)有效’,
infoid
bigint(20) DEFAULT NULL COMMENT ‘当为1时有效,图片id或时光片id’,
x
float DEFAULT NULL COMMENT ‘x坐标’,
y
float DEFAULT NULL COMMENT ‘y坐标’,
angle
float DEFAULT NULL COMMENT ‘旋转角度’,
depth
int(4) DEFAULT NULL COMMENT ‘内容显示层级,数字越高越在上面’,
content
text COLLATE utf8_unicode_ci COMMENT ‘当type为图片时,此值为图片地址;图片文字;时光片截取文本’,
‘书页|模板内容、页眉、页脚、广告位、开本、版心表’;
PageInfoDto
private String type;//pageid页面id
private long pageid;//pageid页面id
private long bookid;//书本id,最小单元
private long infoid;//碎片id,最小单元
private String pagetype;//页面类型,1左页,2右页,3封面1,4封面2,5封面3,6封4,7空白页
private float width;//wordpiclv 暂存
private float height;
private String bgColor;//背景颜色
private List adList=new ArrayList();//广告位
private int pagenum;//当前页码
private int pagesize ;//总共多少页
private String dealpnumI ;//起始段落
private String dealpnumIJ ;//起始段落的哪个字符
private String nextdealpnumI ;//起始段落
private String nextdealpnumIJ ;//起始段落的哪个字符
private String backgroundurl=”” ;//页面背景图片url,如果为空,则为白色
private float wordduiqilv=-1;//文本对其率,默认值,如果>0,则直接使用该值,无需计算
private float wordpianyilv=-1;//文本偏移率,默认值,如果>0,则直接使用该值,无需计算
private String picsId="" ;//当前页图片列表
private String templateId="" ;//当前页板式
private String randomnum="" ;//当前页排版位移的随机数
private String datestr=""; //为博客书的时候 为title
private long infoidUid;
private int infoidPageNum;
//
//
// SELECT * FROM pod_book WHERE contenttype=? 4 and levelid1 = ? contenttype 书的类型
// and isdelete =b’0’
//
2 ++++++++++++++++++++++++++++
1 date DATE NOT NULL, # date collected
INSERT INTO insect (name,date,origin) VALUES('cricket','2010-09-11','basement')
INSERT INTO insect (name,date,origin) VALUES('cricket','2010/09/11','basement');
INSERT INTO insect (name,date,origin) VALUES('cricket','2010:09:11','basement');
INSERT INTO insect (name,date,origin) VALUES('cricket','2010:09:111','basement');
CREATE TABLE temporal_val
(
d DATE,
dt DATETIME,
t TIME,
ts TIMESTAMP#auto filled with current datetime 这个字段不用赋值自用的填装当前的时间
);
INSERT INTO temporal_val (d, dt, t) VALUES('1970-01-01','1884-01-01 12:00:00','13:00:00');
INSERT INTO temporal_val (d) VALUES('1970-01-01');
mysql> select NOW(),CURDATE(),CURTIME();
45.+———————+————+———–+
46.| NOW() | CURDATE() | CURTIME() |
47.+———————+————+———–+
48.| 2014-06-20 22:54:13 | 2014-06-20 | 22:54:13 |
49.+———————+————+———–+
dao叫数据访问对象
DTO是数据传输对象
dao通常是将非对象数据(如关系数据库中的数据)以对象的方式操纵。
DTO通常用于不同层(ui层、服务层或者域模型层)直接的数据传输,以隔离不同层,降低层间耦合
2 插页id 插入的是一个月的所有的微信的信息
判断这个id ······