前面的书房初始化的前端信息已经完善,所以现在开始实现DB的Script部分。

主要是参考豆瓣的图书查询接口:

昨晚完成了Web端新增图书信息的功能,现在就差DB的具体实现了。


本文中所有书籍均可提供电子版,如有需要请私信联系。

本文仅为个人爱好阅读,近年整理收藏,仅供参考哦~

A 小说

B 传记

C 杂文

D 散文

小程序开发的api写的已经很完善了,有问题可以底部留言讨论哦。以下记录自己碰到的坑。
1.小程序tabbar设置无效问题:
在设置tabbar的list的时候,list[0]必然是你小程序的首页,要不然就不会显示。因为如果不是首页,就会和程序最初设计项矛盾。
2.template 的点击事件要在外面包的view标签中定义
<view bindtap=”warn”>
<template is=”msgItem” data=”{{…item}}”> </template>
</view>

新增Action:Shelf_Init.sql

因为我把Book相关的信息拆分的比较多,所以更新有点小麻烦。


图片 1

返回内容如下:

首先,我需要创建一个Book Type的Matter;

A01 世界名著 奥地利 《一个陌生女人的来信》 茨威格

svc.sql

图片 2图片 3

然后,将图片路径保存到FileBank中,并返回FileBankID;

A02 世界名著 法国 《小王子》 安托万·德·圣埃克苏佩里

1 CREATE SCHEMA [svc]
2     AUTHORIZATION [dbo];
 1 {
 2     "rating": {
 3         "max": 10, 
 4         "numRaters": 361, 
 5         "average": "8.8", 
 6         "min": 0
 7     }, 
 8     "subtitle": "A Handbook of Agile Software Craftsmanship", 
 9     "author": [
10         "Robert C. Martin"
11     ], 
12     "pubdate": "2008-8-11", 
13     "tags": [
14         {
15             "count": 295, 
16             "name": "编程", 
17             "title": "编程"
18         }, 
19         {
20             "count": 257, 
21             "name": "programming", 
22             "title": "programming"
23         }, 
24         {
25             "count": 150, 
26             "name": "软件开发", 
27             "title": "软件开发"
28         }, 
29         {
30             "count": 109, 
31             "name": "程序设计", 
32             "title": "程序设计"
33         }, 
34         {
35             "count": 100, 
36             "name": "计算机", 
37             "title": "计算机"
38         }, 
39         {
40             "count": 87, 
41             "name": "软件工程", 
42             "title": "软件工程"
43         }, 
44         {
45             "count": 66, 
46             "name": "敏捷开发", 
47             "title": "敏捷开发"
48         }, 
49         {
50             "count": 55, 
51             "name": "agile", 
52             "title": "agile"
53         }
54     ], 
55     "origin_title": "", 
56     "image": "https://img3.doubanio.com/view/subject/m/public/s29624974.jpg", 
57     "binding": "Paperback", 
58     "translator": [ ], 
59     "catalog": "", 
60     "pages": "464", 
61     "images": {
62         "small": "https://img3.doubanio.com/view/subject/s/public/s29624974.jpg", 
63         "large": "https://img3.doubanio.com/view/subject/l/public/s29624974.jpg", 
64         "medium": "https://img3.doubanio.com/view/subject/m/public/s29624974.jpg"
65     }, 
66     "alt": "https://book.douban.com/subject/3032825/", 
67     "id": "3032825", 
68     "publisher": "Prentice Hall", 
69     "isbn10": "0132350882", 
70     "isbn13": "9780132350884", 
71     "title": "Clean Code", 
72     "url": "https://api.douban.com/v2/book/3032825", 
73     "alt_title": "", 
74     "author_intro": "Robert C. “Uncle Bob” Martin has been a software professional since 1970 and an international software consultant since 1990. He is founder and president of Object Mentor, Inc., a team of experienced consultants who mentor their clients worldwide in the fields of C++, Java, C#, Ruby, OO, Design Patterns, UML, Agile Methodologies, and eXtreme programming.", 
75     "summary": "Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
76 Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.
77 What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
78 Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
79 Readers will come away from this book understanding
80 How to tell the difference between good and bad code
81 How to write good code and how to transform bad code into good code
82 How to create good names, good functions, good objects, and good classes
83 How to format code for maximum readability
84 How to implement complete error handling without obscuring code logic
85 How to unit test and practice test-driven development
86 This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.", 
87     "price": "USD 49.99"
88 }

继续,插入Publisher信息(需要判断name不存在才会insert),然后返回PublisherID;

A03 世界名著 法国 《情人》 玛格丽特·杜拉斯

Shelf_Init.sql

豆瓣图书查询返回内容

 1 CREATE PROCEDURE [base].[Publisher#Insert](@json nvarchar(max), @id int out)
 2 WITH ENCRYPTION
 3 AS
 4 BEGIN
 5 ...
 6 
 7         declare    @name nvarchar(100);
 8         select    @name=Publisher from openjson(@json, '$') with (Publisher nvarchar(100))
 9 
10         -- insert Publisher
11         insert    base._Publisher(Name)select @name
12         where    not exists(select 1 from base._Publisher p where p.Name=@name);
13 
14         select    @id=ID from base.Publisher#Raw() where Name=@name;
15 ...
16 END

A04 世界名著 法国 《茶花女》 亚历山大小仲马

 1 CREATE PROCEDURE [svc].[Shelf$Init](@json nvarchar(max))
 2 WITH ENCRYPTION
 3 AS
 4 BEGIN
 5     SET    NOCOUNT    ON;
 6     SET XACT_ABORT ON;
 7     BEGIN TRY
 8         BEGIN    TRAN;
 9 
10         declare    @nickName nvarchar(20), @shelfName nvarchar(20);
11         select    @nickName=NickName,     @shelfName=ShelfName
12         from    openjson (@json, '$')
13         with (
14             NickName        nvarchar(20),
15             ShelfName        nvarchar(20)
16         );
17 
18         insert    core._Party(Type, Alias) select k._User, @nickName
19         from    core.Party#Type() k;
20         declare    @userID int=@@identity;
21 
22         
23         insert    core._Party(PID, Type, Alias) select @userID, k._Shelf, @shelfName
24         from    core.Party#Type() k;
25 
26         COMMIT    TRAN;
27     END TRY
28     BEGIN CATCH
29         if (xact_state() = -1) ROLLBACK TRAN; throw;
30     END CATCH
31 END

 

 

A05 外国小说 法国 《局外人》 阿尔贝加缪

好了,我去试试前端能不能初始化信息进DB

刚才出去拿纱窗了,等晚上设计DB的时候继续更新。

继续,插入Binding信息(也需要判断name不存在才insert),返回BindingID;

A06 外国小说 法国 《偷影子的人》 马克李维

….

 

 1 CREATE PROCEDURE [base].[Binding#Insert](@json nvarchar(max), @id int out)
 2 WITH ENCRYPTION
 3 AS
 4 BEGIN
 5 ...
 6 
 7         declare    @name nvarchar(100);
 8         select    @name=Binding from openjson(@json, '$') with (Binding nvarchar(100))
 9 
10         -- insert Binding
11         insert    base._Binding(Name)select @name
12         where    not exists(select 1 from base._Binding p where p.Name=@name);
13 
14         select    @id=ID from base.Binding#Raw() where Name=@name;
15 
16 ...
17 END

A07 世界名著 美国 《了不起的盖茨比》 菲茨杰拉德

在测试之前,我们需要实现一下Init Razor Pages代码:

基于豆瓣API获取的Response信息,所以抽取如下信息:

 

A08 世界名著 美国 《飘》 玛格丽特米切尔

Init.cshtml.cs

豆瓣图书API信息
字段名称 豆瓣字段 字段描述
Title title  
SubTitle subtitle  
Authors author  
Translator translator  
ISBN13 isbn13  
ISBN10 isbn10  
AuthorIntro author_intro  
Summary summary  
Publisher publisher  
Binding binding  
OriginTitle origin_title  
Pages pages  
ImageUrl image  
Pubdate pubdate  
Catalog catalog  
Tags tags  

继续,插入Book信息;

A09 外国小说 美国 《最美好的人间十日》 Adena

 1     using M = Shelf;
 2     public class InitModel : PageModel
 3     {
 4         private readonly IShelfRepo _shelfRepo;
 5         public InitModel(IShelfRepo shelfRepo)
 6         {
 7             _shelfRepo = shelfRepo;
 8         }
 9         [BindProperty]
10         public InitInputModel Input { get; set; }
11 
12         public void OnGet()
13         {
14 
15         }
16 
17         public async Task<IActionResult> OnPostAsync()
18         {
19             if (ModelState.IsValid)
20             {
21                 await _shelfRepo.InitAsync(new M.InitSpec
22                 {
23                     NickName = Input.NickName.Trim(),
24                     ShelfName = Input.ShelfName.Trim()
25                 });
26                 return RedirectToPage("New");
27             }
28             return Page();
29         }
30     }

 

继续,插入BookInfo的信息;

A10 外国小说 美国 《忽然七日》 奥利弗

页面内容也需要修改一下form部分

 

继续,插入BookNbr信息;

A11 外国小说 美国 《24个比利》 丹尼尔凯斯

Init.cshtml

 

继续,插入BookSupplement信息;

A12 外国小说 美国 《岛上书店》 加布瑞埃拉泽文

 1 <form method="post">
 2     <div class="form-group form-group-lg">
 3         <label asp-for="Input.NickName"></label>
 4         <input class="form-control form-control-lg" asp-for="Input.NickName" autocomplete="off">
 5         
 6     </div>
 7     <div class="form-group form-group-lg">
 8         <label asp-for="Input.ShelfName"></label>
 9         <input class="form-control form-control-lg" asp-for="Input.ShelfName" autocomplete="off">
10         
11     </div>
12     <div class="form-group text-right">
13         <button class="btn btn-warning btn-lg" type="submit">Save</button>
14     </div>
15 </form>

 

继续,插入BookTag信息;

A13 外国小说 美国 《追风筝的人》 卡勒德·胡赛尼

填写不动书房的信息:

 

 1 CREATE PROCEDURE [base].[BookTag#Insert](@json nvarchar(max), @bookID bigint)
 2 WITH ENCRYPTION
 3 AS
 4 BEGIN
 5 ...
 6 
 7         -- insert Tag
 8         insert    base._Tag(Name)select value
 9         from    openjson(@json, '$.Tags') x
10         where    not exists(select 1 from base._Tag p where p.Name=x.value);
11 
12         insert    base._BookTag(BookID, TagID) select @bookID, x.ID
13         from    openjson(@json, '$.Tags') j join base.Tag#Raw() x on x.Name=j.value
14 
15 ...
16 END

A14 外国小说 美国 《肖申克的救赎》 斯蒂芬金

图片 4

 

 

A15 悬疑/推理小说 美国 《达芬奇密码》 丹布朗

 

 

继续,插入BookAuthor信息;

A16 悬疑/推理小说 美国 《地狱》 丹布朗

 点击Save按钮提交,OK,正常提交了并跳转了。

 

 1 CREATE PROCEDURE [base].[BookAuthor#Insert](@json nvarchar(max), @bookID bigint)
 2 WITH ENCRYPTION
 3 AS
 4 BEGIN
 5 ...
 6 
 7         -- insert Author
 8         insert    base._Author(Name)select value
 9         from    openjson(@json, '$.Authors') x
10         where    not exists(select 1 from base._Author p where p.Name=x.value);
11 
12         insert    base._BookAuthor(BookID, AuthorID) select @bookID, x.ID
13         from    openjson(@json, '$.Authors') j join base.Author#Raw() x on x.Name=j.value
14 
15 ...
16 END

A17 外国小说 日本 《挪威的森林》 村上春树

查看下DB有没有数据:

 

 

A18 悬疑/推理小说 日本 《白夜行》 东野圭吾

图片 5

 

继续,插入BookTranslator信息;

A19 悬疑/推理小说 日本 《解忧杂货店》 东野圭吾

哈哈,看来一切正常。

 

 1 CREATE PROCEDURE [base].[BookTranslator#Insert](@json nvarchar(max), @bookID bigint)
 2 WITH ENCRYPTION
 3 AS
 4 BEGIN
 5 ...
 6 
 7         -- insert Translator
 8         insert    base._Author(Name)select value
 9         from    openjson(@json, '$.Translators') x
10         where    not exists(select 1 from base._Author p where p.Name=x.value);
11 
12         insert    base._BookTranslator(BookID, TranslatorID) select @bookID, x.ID
13         from    openjson(@json, '$.Translators') j join base.Author#Raw() x on x.Name=j.value
14 
15 ...
16 END

A20 悬疑/推理小说 日本 《黎明之街》 东野圭吾

 

 

 

A21 悬疑/推理小说 日本 《同级生》 东野圭吾

 

最后,关联新增的Book信息和Shelf,插入ShelfBook信息。

A22 悬疑/推理小说 日本 《嫌疑人x的献身》 东野圭吾

 

 

A23 悬疑/推理小说 日本 《虚无的十字架》 东野圭吾

 

现在放出Init Script

A24 悬疑/推理小说 日本 《假面饭店》 东野圭吾

 

Book_Init.sql

A25 悬疑/推理小说 日本 《矮子》 江户川乱步

 

 1 CREATE PROCEDURE [svc].[Book$Init](@json nvarchar(max))
 2 WITH ENCRYPTION
 3 AS
 4 BEGIN
 5 ...
 6 
 7         declare    @stringID varchar(36), @userID int,  @shelfID int;
 8         select    @stringID=u.StringID,  @userID=u.ID, @shelfID=s.ID
 9         from    openjson (@json, '$') with (StringID varchar(36))
10         cross    apply core.User#For(StringID) u
11         join    core.Party#Raw() s on s.PID=u.ID;
12 
13         declare    @stateID int=(select BookCreated from core.Status#ID());
14 
15         -- init Matter
16         insert    core._Matter(Type, UserID, StateID)
17         select    k._Book, @userID, @stateID from core.Matter#Type() k;
18         declare    @matterID int=@@identity;
19 
20         -- init FileBank
21         insert    base._FileBank(Type, Url)
22         select    k._BookImage, ImageUrl
23         from    openjson(@json, '$') with (ImageUrl varchar(200))
24         cross    apply base.FileBank#Type() k;
25         declare    @imageID int=@@identity;
26         
27         -- insert Publisher
28         declare    @publisherID int;
29         exec    base.Publisher#Insert @json=@json, @id=@publisherID out;
30         
31         -- insert Binding
32         declare    @bindingID int;
33         exec    base.Binding#Insert @json=@json, @id=@bindingID out;
34 
35         -- insert Book
36         insert    base._Book(ID, Title, PublisherID, BindingID, ImageID)
37         select    @matterID, Title, @publisherID, @bindingID, @imageID
38         from    openjson(@json, '$') with (Title nvarchar(100));
39         
40         -- insert BookInfo
41         insert    base._BookInfo(ID, OriginTitle, PageCnt, Pubdate, SubTitle)
42         select    @matterID, OriginTitle, Pages, Pubdate, SubTitle
43         from    openjson(@json, '$')
44         with (
45             Pages       int, 
46             Pubdate     char(10), 
47             SubTitle    nvarchar(150), 
48             OriginTitle nvarchar(150)
49         );
50         
51         -- insert BookNbr
52         insert    base._BookNbr(ID, Type, Number)
53         select    @matterID, k._ISBN13, Isbn13
54         from    base.BookNbr#Type() k, openjson(@json, '$') with (Isbn13 char(13));
55         
56         insert    base._BookNbr(ID, Type, Number)
57         select    @matterID, k._ISBN10, Isbn10
58         from    base.BookNbr#Type() k, openjson(@json, '$') with (Isbn10 char(10));
59         
60         -- insert BookSupplement
61         insert    base._BookSupplement(ID, Type, Supplement)
62         select    @matterID, k._AuthorIntro, AuthorIntro
63         from    base.BookSupplement#Type() k, openjson(@json, '$') with (AuthorIntro nvarchar(max));
64         
65         insert    base._BookSupplement(ID, Type, Supplement)
66         select    @matterID, k._Summary, Summary
67         from    base.BookSupplement#Type() k, openjson(@json, '$') with (Summary nvarchar(max));
68         
69         insert    base._BookSupplement(ID, Type, Supplement)
70         select    @matterID, k._Catalog, Catalog
71         from    base.BookSupplement#Type() k, openjson(@json, '$') with (Catalog nvarchar(max));
72 
73         -- insert BookTag
74         exec    base.BookTag#Insert @json=@json, @bookID=@matterID;
75         
76         -- insert BookAuthor
77         exec    base.BookAuthor#Insert @json=@json, @bookID=@matterID;
78 
79         -- insert BookTranslator
80         exec    base.BookTranslator#Insert @json=@json, @bookID=@matterID;
81         
82         -- insert ShelfBook
83         insert    base._ShelfBook(BookID, ShelfID) values(@matterID, @shelfID);
84 
85 ...
86 END

A26 悬疑/推理小说 日本 《暗室》 江户川乱步

拆分如上字段出来。

 

A27 悬疑/推理小说 日本 《巴诺拉马岛奇谈》 江户川乱步

 ……

好了,开始测试。

A28 悬疑/推理小说 日本 《魔术师》 江户川乱步

因为在看世界杯,所以设计有点断断续续的,放出DB的Diagram:

A29 悬疑/推理小说 日本 《阴兽》 江户川乱步

图片 6

查询DB,看看有没有数据进DB:

A30 悬疑/推理小说 日本 《罗生门》 芥川龙之介

 

图片 7

A31 世界名著 印度 《贫民窟的百万富翁》 维卡斯斯瓦鲁普

图片 8

图片 9

A32 世界名著 英国 《呼啸山庄》 艾米莉勃朗特

 

 

A33 世界名著 英国 《简爱》 夏洛蒂·勃朗特

当前的逻辑应该是没有问题了,现在需要丰富的是DB的内容,以及每条线的发展设计。

 截图中展示了部分查询结果,基本没什么问题了。

A34 外国小说 英国 《摆渡人》 克莱儿·麦克福尔

顺便放出几个Type的Script:

下面要做的是展示Shelf中的Book信息,要等今天活干完才能继续写了。

A35 外国小说 英国 《一个人的朝圣》 蕾秋乔伊斯

1 CREATE FUNCTION [core].[Matter#Type] ()
2 RETURNS TABLE
3 WITH SCHEMABINDING, ENCRYPTION
4 AS RETURN
5 (
6     select    1        as        _Book
7     ,         2        as        _ShelfBook
8     ,         4        as        _BookList
9 )

 1 CREATE FUNCTION [core].[Party#Type] ()
 2 RETURNS TABLE
 3 WITH SCHEMABINDING, ENCRYPTION
 4 AS RETURN
 5 (
 6     select    1        as        _Administrator
 7     ,         4        as        _User
 8     ---------------------------------------
 9     ,        16        as        _Shelf
10 )

1 CREATE FUNCTION [base].[BookInfo#Type] ()
2 RETURNS TABLE
3 WITH SCHEMABINDING, ENCRYPTION
4 AS RETURN
5 (
6     select    1        as        _Summary
7     ,         2        as        _Catalog
8     ,         4        as        _AuthorIntro
9 )

 

A36 悬疑/推理小说 英国 《无人生还》 阿加莎克里斯蒂

 

A37 悬疑/推理小说 英国 《尼罗河上的惨案》 阿加莎克里斯蒂

好的,今天就先到这吧。

A38 悬疑/推理小说 英国 《东方快车谋杀》 阿加莎克里斯蒂

 

A39 当代小说 中国 《明朝那些事儿》 当时明月

A40 当代小说 中国 《神的拉面》 多纪光

A41 当代小说 中国 《万物生长》 冯唐

A42 当代小说 中国 《千魂》 高铭

A43 当代小说 中国 《此间的少年》 江南

A44 当代小说 中国 《龙族I》 江南

A45 当代小说 中国 《悟空传》 今何在

A46 当代小说 中国 《西游日记》 今何在

A47 当代小说 中国 《红高粱》 莫言

A48 当代小说 中国 《边城》 沈从文

A49 当代小说 中国 《爱情公寓小说》 汪远

A50 当代小说 中国 《西游记》 吴承恩

A51 当代小说 中国 《离魂衣》 西岭雪

A52 当代小说 中国 《太阳黑子》 须一瓜

A53 当代小说 中国 《第七天》 余华

A54 都市小说 中国 《欢乐颂》 阿耐

A55 都市小说 中国 《失恋33天》 鲍鲸鲸

A56 古典小说 中国 《红楼梦》 曹雪芹

A57 古典小说 中国 《聂隐娘》 裴铏

A58 科幻小说 中国 《时间之墟》 宝树

A59 科幻小说 中国 《三体》 刘慈欣

A60 网络小说 中国 《权妃之帝医风华》 阿彩

A61 网络小说 中国 《界皇》 傲天无痕

A62 网络小说 中国 《美人图》 歌怨

A63 网络小说 中国 《法医妈咪快跑》 红薯小妖

A64 网络小说 中国 《芈月传》 京城说书匠

A65 网络小说 中国 《梦里已逝三千年》 璃华

A66 网络小说 中国 《甄嬛传》 流潋紫

A67 网络小说 中国 《如懿传》 流潋紫

A68 网络小说 中国 《魔妃太嚣张》 眉妩

A69 网络小说 中国 《予君倾城恋》 宁丞书

A70 网络小说 中国 《神的孩子在跳舞》 水色花铃

A71 网络小说 中国 《斗破苍穹》 天蚕土豆

A72 网络小说 中国 《武动乾坤》 天蚕土豆

A73 网络小说 中国 《饕餮娘子》 佟婕

A74 网络小说 中国 《诛仙》 萧鼎

A75 网络小说 中国 《哑舍I》 玄色

A76 网络小说 中国 《哑舍ii》 玄色

A77 网络小说 中国 《哑舍iii》 玄色

A78 网络小说 中国 《哑舍IV》 玄色

A79 网络小说 中国 《穿成男神电脑怎么破》 烟花不是花

A80 网络小说 中国 《废柴狂妃驯冷王》 欲念无罪

A81 网络小说 中国 《苏染染追夫记》 云葭

A82 武侠小说 中国 《大旗英雄传》 古龙

A83 武侠小说 中国 《绝代双骄》 古龙

A84 武侠小说 中国 《多情剑客无情剑》 古龙

A85 武侠小说 中国 《楚留香传奇》 古龙

A86 武侠小说 中国 《蝙蝠传奇》 古龙

A87 武侠小说 中国 《萧十一郎》 古龙

A88 武侠小说 中国 《桃花传奇》 古龙

A89 武侠小说 中国 《边城浪子》 古龙

A90 武侠小说 中国 《陆小凤传奇》 古龙

A91 武侠小说 中国 《长生剑》 古龙

A92 武侠小说 中国 《孔雀翎》 古龙

A93 武侠小说 中国 《碧玉刀》 古龙

A94 武侠小说 中国 《多情环》 古龙

A95 武侠小说 中国 《霸王枪》 古龙

A96 武侠小说 中国 《拳头》 古龙

A97 武侠小说 中国 《离别钩》 古龙

A98 武侠小说 中国 《凤舞九天》 古龙

A99 武侠小说 中国 《新月传奇》 古龙

A100 武侠小说 中国 《英雄无泪》 古龙

A101 武侠小说 中国 《午夜兰花》 古龙

A102 武侠小说 中国 《剑神一笑》 古龙

A103 武侠小说 中国 《决战前后》 古龙

A104 武侠小说 中国 《剑毒梅香》 古龙

A105 武侠小说 中国 《大沙漠》 古龙

A106 武侠小说 中国 《失魂引》 古龙

A107 武侠小说 中国 《幽灵山庄》 古龙

A108 武侠小说 中国 《猎鹰。赌局》 古龙

A109 武侠小说 中国 《绣花大盗》 古龙

A110 武侠小说 中国 《血海飘香》 古龙

A111 武侠小说 中国 《银钩赌坊》 古龙

A112 武侠小说 中国 《画眉鸟》 古龙

A113 武侠小说 中国 《财神与短刀》 古龙

A114 武侠小说 中国 《大武侠时代》 古龙

A115 武侠小说 中国 《护花铃》 古龙

A116 武侠小说 中国 《笑傲江湖》 金庸

A117 武侠小说 中国 《鸳鸯刀》 金庸

A118 武侠小说 中国 《连城诀》 金庸

A119 武侠小说 中国 《碧血剑》 金庸

A120 悬疑/推理小说 中国 《女法医之活体贩卖者》 戴西

A121 悬疑/推理小说 中国 《刑警手记之异案侦探组》 风雨如书

A122 悬疑/推理小说 中国 《读心诡探》 风雨如书

A123 悬疑/推理小说 中国 《刑警手记之异案现场》 风雨如书

A124 悬疑/推理小说 中国 《409特别班》 风雨如书

A125 悬疑/推理小说 中国 《犯罪心理档案》 刚雪印

A126 悬疑/推理小说 中国 《犯罪心理档案Ⅱ》 刚雪印

A127 悬疑/推理小说 中国 《犯罪心理档案Ⅲ》 刚雪印

A128 悬疑/推理小说 中国 《催眠师手记》 高铭

A129 悬疑/推理小说 中国 《暗黑神探》 何马

A130 悬疑/推理小说 中国 《那些年,我们一起追过的女孩》 九把刀

A131 悬疑/推理小说 中国 《心理罪之第七个读者》 雷米

A132 悬疑/推理小说 中国 《心理罪之暗河》 雷米

A133 悬疑/推理小说 中国 《心理罪之画像》 雷米

A134 悬疑/推理小说 中国 《心理罪之城市之光》 雷米

A135 悬疑/推理小说 中国 《心理罪之教化场》 雷米

A136 悬疑/推理小说 中国 《刑警手记之犯罪现场》 刘栋

A137 悬疑/推理小说 中国 《古董局中局1》 马伯庸

A138 悬疑/推理小说 中国 《古董局中局2》 马伯庸

A139 悬疑/推理小说 中国 《古董局中局3》 马伯庸

A140 悬疑/推理小说 中国 《古董局中局4》 马伯庸

A141 悬疑/推理小说 中国 《盗墓笔记》 南派三叔

A142 悬疑/推理小说 中国 《黄河鬼棺》 南派三叔

A143 悬疑/推理小说 中国 《苗疆蛊事1》 南无袈裟理科佛

A144 悬疑/推理小说 中国 《苗疆蛊事2》 南无袈裟理科佛

A145 悬疑/推理小说 中国 《苗疆蛊事3》 南无袈裟理科佛

A146 悬疑/推理小说 中国 《苗疆蛊事4》 南无袈裟理科佛

A147 悬疑/推理小说 中国 《苗疆蛊事5》 南无袈裟理科佛

A148 悬疑/推理小说 中国 《苗疆蛊事6》 南无袈裟理科佛

A149 悬疑/推理小说 中国 《苗疆蛊事7》 南无袈裟理科佛

A150 悬疑/推理小说 中国 《苗疆蛊事8》 南无袈裟理科佛

A151 悬疑/推理小说 中国 《苗疆蛊事9》 南无袈裟理科佛

A152 悬疑/推理小说 中国 《苗疆蛊事10》 南无袈裟理科佛

A153 悬疑/推理小说 中国 《苗疆蛊事11》 南无袈裟理科佛

A154 悬疑/推理小说 中国 《苗疆蛊事12》 南无袈裟理科佛

A155 悬疑/推理小说 中国 《苗疆蛊事大结局上》 南无袈裟理科佛

A156 悬疑/推理小说 中国 《苗疆蛊事大结局下》 南无袈裟理科佛

A157 悬疑/推理小说 中国 《超禁忌游戏》 宁航一

A158 悬疑/推理小说 中国 《尸语者》 秦明

A159 悬疑/推理小说 中国 《无声的证词》 秦明

A160 悬疑/推理小说 中国 《第十一根手指》 秦明

A161 悬疑/推理小说 中国 《清道夫》 秦明

A162 悬疑/推理小说 中国 《逝者证言》 秦明

A163 悬疑/推理小说 中国 《幸存者》 秦明

A164 悬疑/推理小说 中国 《诡案组》 求无欲

A165 悬疑/推理小说 中国 《奇货》 唐小豪

A166 悬疑/推理小说 中国 《鬼吹灯之精绝古城》 天下霸唱

A167 悬疑/推理小说 中国 《鬼吹灯之龙岭迷窟》 天下霸唱

A168 悬疑/推理小说 中国 《鬼吹灯之云南虫谷》 天下霸唱

A169 悬疑/推理小说 中国 《鬼吹灯之昆仑神宫》 天下霸唱

A170 悬疑/推理小说 中国 《鬼吹灯之黄皮子坟》 天下霸唱

A171 悬疑/推理小说 中国 《鬼吹灯之南海归墟》 天下霸唱

A172 悬疑/推理小说 中国 《扁鹊的禁方》 信周

A173 悬疑/推理小说 中国 《异闻录》 羊行屮

A174 悬疑/推理小说 中国 《刑警手记之虚拟谋杀》 野兵

A175 悬疑/推理小说 中国 《我是个算命先生》 易之

A176 悬疑/推理小说 中国 《最后的梵唱》 余显斌

A177 悬疑/推理小说 中国 《推理笔记II狐妖杀人事件》 早安夏天

A178 悬疑/推理小说 中国 《推理笔记III死亡笔记重现》 早安夏天

A179 悬疑/推理小说 中国 《推理笔记IV夜神月归来》 早安夏天

A180 悬疑/推理小说 中国 《推理笔记V最终游戏》 早安夏天

A181 悬疑/推理小说 中国 《推理笔记I》 早安夏天

A182 悬疑/推理小说 中国 《五大贼王》 张海帆

A183 悬疑/推理小说 中国 《十宗罪前传》 蜘蛛

A184 悬疑/推理小说 中国 《十宗罪》 蜘蛛(1~5)

A185 悬疑/推理小说 中国 《凶画》 周浩晖

A186 悬疑/推理小说 中国 《鬼望坡》 周浩晖

A187 悬疑/推理小说 中国 《摄魂谷》 周浩晖

A188 悬疑/推理小说 中国 《斗宴》 周浩晖

A189 悬疑/推理小说 中国 《邪恶催眠师》 周浩晖

A190 悬疑/推理小说 中国 《邪恶催眠师2》 周浩晖

A191 悬疑/推理小说 中国 《原罪之承诺》 周浩晖

A192 悬疑/推理小说 中国 《致命的遗嘱》 周浩晖

A193 悬疑/推理小说 中国 《死亡通知单》 周浩辉

A194 悬疑/推理小说 中国 《死亡通知单之宿命》 周浩辉

A195 悬疑/推理小说 中国 《死亡通知单之离别曲》 周浩辉

A196 言情小说 中国 《这咬人的爱》 安逸

A197 言情小说 中国 《星是夜空的眼》 彻夜流香

A198 言情小说 中国 《暖妻成瘾》 程小一

A199 言情小说 中国 《西决》 笛安

A200 言情小说 中国 《东霓》 笛安

A201 言情小说 中国 《南音》 笛安

A202 言情小说 中国 《他来了,请闭眼》 丁墨

A203 言情小说 中国 《一粒红尘》 独木舟

A204 言情小说 中国 《寂寞空庭春欲晚》 匪我思存

A205 言情小说 中国 《我会记得你,然后爱别人》 格子米

A206 言情小说 中国 《何以笙箫默》 顾漫

A207 言情小说 中国 《薇薇一笑很倾城》 顾漫

A208 言情小说 中国 《杉杉来吃》 顾漫

A209 言情小说 中国 《满满都是我对你的爱》 顾西爵

A210 言情小说 中国 《何所冬暖,何所夏凉》 顾西爵

A211 言情小说 中国 《悲伤逆流成河》 郭敬明

A212 言情小说 中国 《小时代》 郭敬明(1~3)

A213 言情小说 中国 《废物们:给失败者的情书》 金陵雪

A214 言情小说 中国 《宁负流年不负卿》 连三月

A215 言情小说 中国 《慈悲客栈》 连三月

A216 言情小说 中国 《吾家囧徒初长成》 连三月

A217 言情小说 中国 《泡沫之夏》 明晓溪

A218 言情小说 中国 《翻译官》 缪娟

A219 言情小说 中国 《良言写意》 木浮生

A220 言情小说 中国 《原来我很爱你》 木浮生

A221 言情小说 中国 《独家记忆》 木浮生

A222 言情小说 中国 《莫忘莫失》 七微

A223 言情小说 中国 《南风知我意》 七微

A224 言情小说 中国 《朝朝暮暮》 七微

A225 言情小说 中国 《一霎风雨我爱过你》 晴空蓝兮

A226 言情小说 中国 《末路相逢》 晴空蓝兮

A227 言情小说 中国 《良辰讵可待》 晴空蓝兮

A228 言情小说 中国 《这么远,那么近》 晴空蓝兮

A229 言情小说 中国 《如果没有遇见你》 晴空蓝兮

A230 言情小说 中国 《指间欢颜》 晴空蓝兮

A231 言情小说 中国 《左耳》 饶雪漫

A232 言情小说 中国 《沙漏》 饶雪漫

A233 言情小说 中国 《时擦》 笙离

A234 言情小说 中国 《七夜谈》 十四阙

A235 言情小说 中国 《我的奇妙男友》 水阡墨

A236 言情小说 中国 《流经存在的邂逅》 苏小懒

A237 言情小说 中国 《如果你奋不顾身爱上一个人》 苏小懒

A238 言情小说 中国 《全世爱》 苏小懒(1~4)

A239 言情小说 中国 《三生三世枕上书》 唐七

A240 言情小说 中国 《三生三世十里桃花》 唐七

A241 言情小说 中国 《华胥引》 唐七公子

A242 言情小说 中国 《云中歌》 桐华

A243 言情小说 中国 《被时光掩埋的秘密》 桐华

A244 言情小说 中国 《曾许诺》 桐华

A245 言情小说 中国 《长相思》 桐华

A246 言情小说 中国 《大漠谣》 桐华

A247 言情小说 中国 《日界线》 夏茗悠

A248 言情小说 中国 《8分钟的温暖》 夏茗悠

A249 言情小说 中国 《曾有你的天气》 夏茗悠

A250 言情小说 中国 《再见,冥王星》 夏茗悠

A251 言情小说 中国 《妖孽只在夜里哭》 夏七夕

A252 言情小说 中国 《我和你的笑忘书》 夏七夕

A253 言情小说 中国 《致我们终将逝去的青春》 辛夷坞

A254 言情小说 中国 《十五年等待候鸟》 盈风

A255 言情小说 中国 《闺蜜时代》 周红艳

A256 言情小说 中国 《时光不老,我们不散》 祝小兔


B01 自传 中国 《我一年的8760小时》 艾力

B02 评传 中国 《你若安好便是晴天》 白落梅

B03 自传 中国 《白说》 白岩松

B04 自传 中国 《成龙:还没长大就老了》 成龙

B05 自传 中国 《在难搞的日子笑出声来》 大鹏

B06 自传 中国 《先成为自己的英雄》 大鹏

B07 自传 中国 《过得刚好》 郭德纲

B08 自传 中国 《假如给我三天光明》 海伦凯勒

B09 自传 中国 《掷地有声》 金星

B10 评传 中国 《沉默与告白:钱钟书传》 孟语嫣

B11 评传 中国 《神秘的孝庄皇后》 孟昭信

B12 评传 中国 《圣人请卸妆》 咪蒙

B13 自传 韩国 《绝望锻炼了我:朴槿惠自传》 朴槿惠

B14 自传 中国 《为热爱而活》 苏芒

B15 评传 中国 《大秦宣太后:芈氏传奇》 萧盛

B16 自传 中国 《我们仨》 杨绛

B17 自传 中国 《敢问路在何方:我的30年西游路》 杨洁

B18 自传 中国 《世界很大,幸好有你》 杨澜

B19 评传 中国 《林徽因的会客厅》 杨楠楠

B20 评传 中国 《普京全传》 赵一峰

B21 自传 中国 《妞妞:一个父亲的札记》 周国平

B22 自传 苏联 《母亲》 高尔基

B23 自传 苏联 《童年》 高尔基

B24 自传 苏联 《我的大学》 高尔基

B25 自传 中国 《亲爱的安德烈》 龙应台

B26 评传 中国 《盛世烟花独憔悴:历代奇女子传奇》 唐婉

B27 自传 中国 《撒哈拉的故事》 三毛


C01 哲学 奥地利 《梦的解析》 弗洛伊德

C02 采访 中国 《天才在左,疯子在右》 高铭

C03 医学 中国 《百草纲目》 李时珍

C04 宗教 中国 《金刚经》 鸠摩罗什

C05 文学 中国 《三字经》

C06 文学 中国 《弟子规》

C07 宗教 中国 《心经》

C08 哲学 挪威 《苏菲的世界》 乔斯坦贾德

C09 旅游 中国 《国家地理100最美瞬间》 梦想之旅编委会

C10 美食 中国 《恋恋咖啡》 希望工作室

C11 电影 中国 《春风沉醉的夜晚:经典情爱电影记录》 央北第二影子

C12 戏剧 中国 《窦娥冤》 关汉卿

C13 戏剧 中国 《木兰辞》 汉乐府

C14 戏剧 中国 《孔雀东南飞》 汉乐府

C15 神话 德国 《希腊神话故事》 古斯塔夫施瓦布


D01 随笔 中国 《你幸福吗》 白岩松

D02 随笔 中国 《行走在爱与恨之间》 白岩松

D03 故事 中国 《乖,摸摸头》 大冰

D04 故事 中国 《他们最幸福》 大冰

D05 故事 中国 《阿弥陀佛么么哒》 大冰

D06 故事 中国 《我有故事,你有酒吗?》 关东野客

D07 故事 中国 《三重门》 韩寒

D08 生活 中国 《一顿自己的晚餐》 韩梅梅

D09 成长 中国 《念一个人,想一个人,恋一座城》 杭小婧

D10 成长 中国 《世界上的烦恼都是自找的》 李默然

D11 故事 中国 《像狗一样奔跑》 里则林

D12 成长 中国 《你的孤独,虽败犹容》 刘同

D13 成长 中国 《谁的青春不迷茫》 刘同

D14 成长 中国 《人生百忌1》 刘墉

D15 成长 中国 《人生百忌2》 刘墉

D16 成长 中国 《人生百忌3》 刘墉

D17 成长 中国 《愿有人陪你颠肺流离》 卢思浩

D18 随笔 中国 《清醒的老子,浪漫的庄子》 陆杰峰,张莉

D19 成长 中国 《趁现在年少如花》 千喜

D20 生活 中国 《糖与香料》 萨菲娜

D21 生活 中国 《唯爱与美食不可辜负》 山亭夜宴

D22 生活 中国 《如花美眷,终抵不过似水流年》 山亭夜宴

D23 成长 中国 《不畏将来,不念过去》 十二

D24 成长 中国 《只要活着,就会有好事发生》 十三

D25 故事 中国 《我爱你,时间没什么了不起》 宋小君等

D26 生活 中国 《一切有情,一食而往》 唐七,浅白色

D27 故事 中国 《练习一个人》 陶立夏

D28 故事 中国 《穿靴子的猫》 吴笛

D29 故事 中国 《晚安,我亲爱的人》 午歌

D30 成长 中国 《你所希望的,终有一天会实现》 夏晨曦

D31 故事 中国 《呼兰河传》 萧红

D32 旅游 中国 《背包十年》 小鹏

D33 故事 中国 《滚蛋吧,肿瘤君》 熊顿

D34 成长 中国 《残酷翻篇,即是温柔》 杨樾

D35 成长 中国 《再美也美不过想象》 耀一

D36 成长 中国 《和喜欢的一切在一起》 一个工作室

D37 成长 中国 《在这复杂的世界里》 一个工作室

D38 生活 中国 《你的地铁阅读书单情怀》 伊单

D39 成长 中国 《我们都一样,年轻又彷徨》 苑子文,苑子壕

D40 故事 中国 《不正常人类症候群》 张寒寺

D41 故事 中国 《从你的世界全路过》 张嘉佳

D42 故事 中国 《下一站,拉萨》 赵丰超

D43 成长 中国 《时光会把最好的留在最后》 这么远这么近

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图