微信书的分月存储

书籍开本的大小是以印刷纸的全张为计算单位,每全张纸切成多少小张,就叫多少开本。
由于纸面的幅度不一样,同样开本的尺寸是不一样的,所以选择开本时要注明全张纸的幅面尺寸。
版心是版面上容纳的文字、图表(一般不包括书眉、中缝和页码)的部位。

书籍内页:指除了封面以外的所有页面称为内页,一般编排顺序为:封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外键,继承自书本',
templetidbigint(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 ······

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值