tianyunperfect 3 rokov pred
rodič
commit
41327ed38d
73 zmenil súbory, kde vykonal 8450 pridanie a 2332 odobranie
  1. 75 47
      book-dao/pom.xml
  2. 1 3
      book-dao/src/main/java/com/book/dao/VO/BlockRes.java
  3. 21 21
      book-dao/src/main/java/com/book/dao/VO/BookContent.java
  4. 1 1
      book-dao/src/main/java/com/book/dao/VO/BookContentVO.java
  5. 2 2
      book-dao/src/main/java/com/book/dao/VO/BookRes.java
  6. 1 1
      book-dao/src/main/java/com/book/dao/VO/Chapter.java
  7. 2 2
      book-dao/src/main/java/com/book/dao/VO/ManageBlockResourceRes.java
  8. 1 1
      book-dao/src/main/java/com/book/dao/VO/QueryVO.java
  9. 3 3
      book-dao/src/main/java/com/book/dao/cps/mapper/BookCategoryMapper.java
  10. 4 3
      book-dao/src/main/java/com/book/dao/cps/mapper/BookMapper.java
  11. 3 3
      book-dao/src/main/java/com/book/dao/cps/mapper/BookMapper2.java
  12. 4 3
      book-dao/src/main/java/com/book/dao/cps/mapper/BookshelfRecommandMapper.java
  13. 4 3
      book-dao/src/main/java/com/book/dao/cps/mapper/ManageBlockMapper.java
  14. 3 4
      book-dao/src/main/java/com/book/dao/cps/mapper/ManageBlockResource2Mapper.java
  15. 4 3
      book-dao/src/main/java/com/book/dao/cps/mapper/ManageBlockResourceMapper.java
  16. 4 3
      book-dao/src/main/java/com/book/dao/cps/mapper/ReturnRecommandMapper.java
  17. 3 3
      book-dao/src/main/java/com/book/dao/cps/mapper/SearchKeywordMapper.java
  18. 4 3
      book-dao/src/main/java/com/book/dao/cps/mapper/SmartRecommandMapper.java
  19. 4 3
      book-dao/src/main/java/com/book/dao/cps/mapper/UserMapper.java
  20. 1 1
      book-dao/src/main/java/com/book/dao/cps/pojo/Book.java
  21. 1 1
      book-dao/src/main/java/com/book/dao/cps/pojo/BookCategory.java
  22. 1 1
      book-dao/src/main/java/com/book/dao/cps/pojo/BookshelfRecommand.java
  23. 1 1
      book-dao/src/main/java/com/book/dao/cps/pojo/ManageBlock.java
  24. 1 1
      book-dao/src/main/java/com/book/dao/cps/pojo/ManageBlockResource.java
  25. 1 1
      book-dao/src/main/java/com/book/dao/cps/pojo/ReturnRecommand.java
  26. 1 1
      book-dao/src/main/java/com/book/dao/cps/pojo/SearchKeyword.java
  27. 1 1
      book-dao/src/main/java/com/book/dao/cps/pojo/SmartRecommand.java
  28. 1 1
      book-dao/src/main/java/com/book/dao/cps/pojo/User.java
  29. 3 3
      book-dao/src/main/java/com/book/dao/cps/pojo/example/BookCategoryExample.java
  30. 3 3
      book-dao/src/main/java/com/book/dao/cps/pojo/example/BookExample.java
  31. 3 3
      book-dao/src/main/java/com/book/dao/cps/pojo/example/BookshelfRecommandExample.java
  32. 3 3
      book-dao/src/main/java/com/book/dao/cps/pojo/example/ManageBlockExample.java
  33. 3 3
      book-dao/src/main/java/com/book/dao/cps/pojo/example/ManageBlockResourceExample.java
  34. 3 3
      book-dao/src/main/java/com/book/dao/cps/pojo/example/ReturnRecommandExample.java
  35. 3 3
      book-dao/src/main/java/com/book/dao/cps/pojo/example/SearchKeywordExample.java
  36. 3 3
      book-dao/src/main/java/com/book/dao/cps/pojo/example/SmartRecommandExample.java
  37. 3 3
      book-dao/src/main/java/com/book/dao/cps/pojo/example/UserExample.java
  38. 107 0
      book-dao/src/main/resources/mapper/cps/Book2Mapper.xml
  39. 676 0
      book-dao/src/main/resources/mapper/cps/BookCategoryMapper.xml
  40. 1960 0
      book-dao/src/main/resources/mapper/cps/BookMapper.xml
  41. 648 0
      book-dao/src/main/resources/mapper/cps/BookshelfRecommandMapper.xml
  42. 676 0
      book-dao/src/main/resources/mapper/cps/ManageBlockMapper.xml
  43. 42 0
      book-dao/src/main/resources/mapper/cps/ManageBlockResource2Mapper.xml
  44. 738 0
      book-dao/src/main/resources/mapper/cps/ManageBlockResourceMapper.xml
  45. 648 0
      book-dao/src/main/resources/mapper/cps/ReturnRecommandMapper.xml
  46. 648 0
      book-dao/src/main/resources/mapper/cps/SearchKeywordMapper.xml
  47. 767 0
      book-dao/src/main/resources/mapper/cps/SmartRecommandMapper.xml
  48. 1244 0
      book-dao/src/main/resources/mapper/cps/UserMapper.xml
  49. 1 1
      book-dao/src/main/resources/mybatis-generator.xml
  50. 8 48
      book-server/pom.xml
  51. 2 0
      book-server/src/main/java/com/book/server/Application.java
  52. 2 8
      book-server/src/main/java/com/book/server/controller/BookController.java
  53. 1 1
      book-server/src/main/java/com/book/server/controller/UserController.java
  54. 0 471
      book-server/src/main/java/com/book/server/dao/entity/Config.java
  55. 0 1351
      book-server/src/main/java/com/book/server/dao/entity/example/ConfigExample.java
  56. 0 204
      book-server/src/main/java/com/book/server/dao/mapper/ConfigMapper.java
  57. 2 4
      book-server/src/main/java/com/book/server/service/BookService.java
  58. 2 1
      book-server/src/main/java/com/book/server/service/UserService.java
  59. 7 5
      book-server/src/main/java/com/book/server/service/impl/BookServiceImpl.java
  60. 3 3
      book-server/src/main/java/com/book/server/service/impl/UserServiceImpl.java
  61. 1 1
      book-server/src/main/resources/mapper/Book2Mapper.xml
  62. 8 8
      book-server/src/main/resources/mapper/BookCategoryMapper.xml
  63. 8 8
      book-server/src/main/resources/mapper/BookMapper.xml
  64. 8 8
      book-server/src/main/resources/mapper/BookshelfRecommandMapper.xml
  65. 13 13
      book-server/src/main/resources/mapper/ConfigMapper.xml
  66. 8 8
      book-server/src/main/resources/mapper/ManageBlockMapper.xml
  67. 1 1
      book-server/src/main/resources/mapper/ManageBlockResource2Mapper.xml
  68. 8 8
      book-server/src/main/resources/mapper/ManageBlockResourceMapper.xml
  69. 8 8
      book-server/src/main/resources/mapper/ReturnRecommandMapper.xml
  70. 8 8
      book-server/src/main/resources/mapper/SearchKeywordMapper.xml
  71. 8 8
      book-server/src/main/resources/mapper/SmartRecommandMapper.xml
  72. 8 8
      book-server/src/main/resources/mapper/UserMapper.xml
  73. 1 0
      pom.xml

+ 75 - 47
book-dao/pom.xml

@@ -1,48 +1,76 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>book-store</artifactId>
-        <groupId>com.bookstore</groupId>
-        <version>1.0</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>book-dao</artifactId>
-
-    <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-    </properties>
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter</artifactId>
-            <version>2.1.5.RELEASE</version>
-        </dependency>
-
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mybatis.spring.boot</groupId>
-            <artifactId>mybatis-spring-boot-starter</artifactId>
-            <version>1.3.2</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.junit.vintage</groupId>
-                    <artifactId>junit-vintage-engine</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-    </dependencies>
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>book-store</artifactId>
+        <groupId>com.bookstore</groupId>
+        <version>1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>book-dao</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+    <build>
+        <plugins>
+            <!--mybatis.generator maven插件-->
+            <plugin>
+                <groupId>org.mybatis.generator</groupId>
+                <artifactId>mybatis-generator-maven-plugin</artifactId>
+                <version>1.3.7</version>
+
+                <configuration>
+                    <configurationFile>src/main/resources/mybatis-generator.xml</configurationFile>
+                    <overwrite>true</overwrite>
+                </configuration>
+
+                <dependencies>
+                    <dependency>
+                        <groupId>mysql</groupId>
+                        <artifactId>mysql-connector-java</artifactId>
+                        <version>8.0.16</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>com.itfsw</groupId>
+                        <artifactId>mybatis-generator-plugin</artifactId>
+                        <version>1.3.7</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+            <version>2.1.5.RELEASE</version>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>1.3.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.1.10</version>
+        </dependency>
+
+        <!-- lombok -->
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.4</version>
+        </dependency>
+    </dependencies>
 </project>

+ 1 - 3
book-server/src/main/java/com/book/server/model/VO/BlockRes.java → book-dao/src/main/java/com/book/dao/VO/BlockRes.java

@@ -1,9 +1,7 @@
-package com.book.server.model.VO;
+package com.book.dao.VO;
 
-import com.book.server.dao.entity.ManageBlockResource;
 import lombok.Data;
 
-import java.util.List;
 import java.util.TreeSet;
 
 @Data

+ 21 - 21
book-server/src/main/java/com/book/server/model/VO/BookContent.java → book-dao/src/main/java/com/book/dao/VO/BookContent.java

@@ -1,21 +1,21 @@
-package com.book.server.model.VO;
-
-import lombok.Data;
-
-/**
- * created in 2021/8/21
- * Project: book-store
- *书籍内容
- * @author win7
- */
-@Data
-public class BookContent {
-
- private String bookId;
- private String chapterId;
- private String content;
- private String name;
- private String isPay;
-
-
-}
+package com.book.dao.VO;
+
+import lombok.Data;
+
+/**
+ * created in 2021/8/21
+ * Project: book-store
+ *书籍内容
+ * @author win7
+ */
+@Data
+public class BookContent {
+
+ private String bookId;
+ private String chapterId;
+ private String content;
+ private String name;
+ private String isPay;
+
+
+}

+ 1 - 1
book-server/src/main/java/com/book/server/model/VO/BookContentVO.java → book-dao/src/main/java/com/book/dao/VO/BookContentVO.java

@@ -1,4 +1,4 @@
-package com.book.server.model.VO;
+package com.book.dao.VO;
 
 import lombok.Data;
 

+ 2 - 2
book-server/src/main/java/com/book/server/model/VO/BookRes.java → book-dao/src/main/java/com/book/dao/VO/BookRes.java

@@ -1,6 +1,6 @@
-package com.book.server.model.VO;
+package com.book.dao.VO;
 
-import com.book.server.dao.entity.Book;
+import com.book.dao.cps.pojo.Book;
 import lombok.Data;
 
 @Data

+ 1 - 1
book-server/src/main/java/com/book/server/model/VO/Chapter.java → book-dao/src/main/java/com/book/dao/VO/Chapter.java

@@ -1,4 +1,4 @@
-package com.book.server.model.VO;
+package com.book.dao.VO;
 
 import lombok.Data;
 

+ 2 - 2
book-server/src/main/java/com/book/server/model/VO/ManageBlockResourceRes.java → book-dao/src/main/java/com/book/dao/VO/ManageBlockResourceRes.java

@@ -1,6 +1,6 @@
-package com.book.server.model.VO;
+package com.book.dao.VO;
 
-import com.book.server.dao.entity.ManageBlockResource;
+import com.book.dao.cps.pojo.ManageBlockResource;
 import lombok.Data;
 
 @Data

+ 1 - 1
book-server/src/main/java/com/book/server/model/VO/QueryVO.java → book-dao/src/main/java/com/book/dao/VO/QueryVO.java

@@ -1,4 +1,4 @@
-package com.book.server.model.VO;
+package com.book.dao.VO;
 
 import lombok.Data;
 

+ 3 - 3
book-server/src/main/java/com/book/server/dao/mapper/BookCategoryMapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/BookCategoryMapper.java

@@ -1,7 +1,7 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.BookCategory;
-import com.book.server.dao.entity.example.BookCategoryExample;
+import com.book.dao.cps.pojo.BookCategory;
+import com.book.dao.cps.pojo.example.BookCategoryExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 4 - 3
book-server/src/main/java/com/book/server/dao/mapper/BookMapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/BookMapper.java

@@ -1,7 +1,8 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.Book;
-import com.book.server.dao.entity.example.BookExample;
+
+import com.book.dao.cps.pojo.Book;
+import com.book.dao.cps.pojo.example.BookExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 3 - 3
book-server/src/main/java/com/book/server/dao/mapper/BookMapper2.java → book-dao/src/main/java/com/book/dao/cps/mapper/BookMapper2.java

@@ -1,7 +1,7 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.model.VO.BookRes;
-import com.book.server.model.VO.QueryVO;
+import com.book.dao.VO.BookRes;
+import com.book.dao.VO.QueryVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;

+ 4 - 3
book-server/src/main/java/com/book/server/dao/mapper/BookshelfRecommandMapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/BookshelfRecommandMapper.java

@@ -1,7 +1,8 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.BookshelfRecommand;
-import com.book.server.dao.entity.example.BookshelfRecommandExample;
+
+import com.book.dao.cps.pojo.BookshelfRecommand;
+import com.book.dao.cps.pojo.example.BookshelfRecommandExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 4 - 3
book-server/src/main/java/com/book/server/dao/mapper/ManageBlockMapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/ManageBlockMapper.java

@@ -1,7 +1,8 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.ManageBlock;
-import com.book.server.dao.entity.example.ManageBlockExample;
+
+import com.book.dao.cps.pojo.ManageBlock;
+import com.book.dao.cps.pojo.example.ManageBlockExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 3 - 4
book-server/src/main/java/com/book/server/dao/mapper/ManageBlockResource2Mapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/ManageBlockResource2Mapper.java

@@ -1,8 +1,7 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.ManageBlockResource;
-import com.book.server.dao.entity.example.ManageBlockResourceExample;
-import com.book.server.model.VO.ManageBlockResourceRes;
+
+import com.book.dao.VO.ManageBlockResourceRes;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;

+ 4 - 3
book-server/src/main/java/com/book/server/dao/mapper/ManageBlockResourceMapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/ManageBlockResourceMapper.java

@@ -1,7 +1,8 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.ManageBlockResource;
-import com.book.server.dao.entity.example.ManageBlockResourceExample;
+
+import com.book.dao.cps.pojo.ManageBlockResource;
+import com.book.dao.cps.pojo.example.ManageBlockResourceExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 4 - 3
book-server/src/main/java/com/book/server/dao/mapper/ReturnRecommandMapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/ReturnRecommandMapper.java

@@ -1,7 +1,8 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.ReturnRecommand;
-import com.book.server.dao.entity.example.ReturnRecommandExample;
+
+import com.book.dao.cps.pojo.ReturnRecommand;
+import com.book.dao.cps.pojo.example.ReturnRecommandExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 3 - 3
book-server/src/main/java/com/book/server/dao/mapper/SearchKeywordMapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/SearchKeywordMapper.java

@@ -1,7 +1,7 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.SearchKeyword;
-import com.book.server.dao.entity.example.SearchKeywordExample;
+import com.book.dao.cps.pojo.SearchKeyword;
+import com.book.dao.cps.pojo.example.SearchKeywordExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 4 - 3
book-server/src/main/java/com/book/server/dao/mapper/SmartRecommandMapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/SmartRecommandMapper.java

@@ -1,7 +1,8 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.SmartRecommand;
-import com.book.server.dao.entity.example.SmartRecommandExample;
+
+import com.book.dao.cps.pojo.SmartRecommand;
+import com.book.dao.cps.pojo.example.SmartRecommandExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 4 - 3
book-server/src/main/java/com/book/server/dao/mapper/UserMapper.java → book-dao/src/main/java/com/book/dao/cps/mapper/UserMapper.java

@@ -1,7 +1,8 @@
-package com.book.server.dao.mapper;
+package com.book.dao.cps.mapper;
 
-import com.book.server.dao.entity.User;
-import com.book.server.dao.entity.example.UserExample;
+
+import com.book.dao.cps.pojo.User;
+import com.book.dao.cps.pojo.example.UserExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 1 - 1
book-server/src/main/java/com/book/server/dao/entity/Book.java → book-dao/src/main/java/com/book/dao/cps/pojo/Book.java

@@ -1,4 +1,4 @@
-package com.book.server.dao.entity;
+package com.book.dao.cps.pojo;
 
 import java.io.Serializable;
 import java.util.ArrayList;

+ 1 - 1
book-server/src/main/java/com/book/server/dao/entity/BookCategory.java → book-dao/src/main/java/com/book/dao/cps/pojo/BookCategory.java

@@ -1,4 +1,4 @@
-package com.book.server.dao.entity;
+package com.book.dao.cps.pojo;
 
 import java.io.Serializable;
 import java.util.ArrayList;

+ 1 - 1
book-server/src/main/java/com/book/server/dao/entity/BookshelfRecommand.java → book-dao/src/main/java/com/book/dao/cps/pojo/BookshelfRecommand.java

@@ -1,4 +1,4 @@
-package com.book.server.dao.entity;
+package com.book.dao.cps.pojo;
 
 import java.io.Serializable;
 import java.util.ArrayList;

+ 1 - 1
book-server/src/main/java/com/book/server/dao/entity/ManageBlock.java → book-dao/src/main/java/com/book/dao/cps/pojo/ManageBlock.java

@@ -1,4 +1,4 @@
-package com.book.server.dao.entity;
+package com.book.dao.cps.pojo;
 
 import java.io.Serializable;
 import java.util.ArrayList;

+ 1 - 1
book-server/src/main/java/com/book/server/dao/entity/ManageBlockResource.java → book-dao/src/main/java/com/book/dao/cps/pojo/ManageBlockResource.java

@@ -1,4 +1,4 @@
-package com.book.server.dao.entity;
+package com.book.dao.cps.pojo;
 
 import java.io.Serializable;
 import java.util.ArrayList;

+ 1 - 1
book-server/src/main/java/com/book/server/dao/entity/ReturnRecommand.java → book-dao/src/main/java/com/book/dao/cps/pojo/ReturnRecommand.java

@@ -1,4 +1,4 @@
-package com.book.server.dao.entity;
+package com.book.dao.cps.pojo;
 
 import java.io.Serializable;
 import java.util.ArrayList;

+ 1 - 1
book-server/src/main/java/com/book/server/dao/entity/SearchKeyword.java → book-dao/src/main/java/com/book/dao/cps/pojo/SearchKeyword.java

@@ -1,4 +1,4 @@
-package com.book.server.dao.entity;
+package com.book.dao.cps.pojo;
 
 import java.io.Serializable;
 import java.util.ArrayList;

+ 1 - 1
book-server/src/main/java/com/book/server/dao/entity/SmartRecommand.java → book-dao/src/main/java/com/book/dao/cps/pojo/SmartRecommand.java

@@ -1,4 +1,4 @@
-package com.book.server.dao.entity;
+package com.book.dao.cps.pojo;
 
 import java.io.Serializable;
 import java.util.ArrayList;

+ 1 - 1
book-server/src/main/java/com/book/server/dao/entity/User.java → book-dao/src/main/java/com/book/dao/cps/pojo/User.java

@@ -1,4 +1,4 @@
-package com.book.server.dao.entity;
+package com.book.dao.cps.pojo;
 
 import java.io.Serializable;
 import java.util.ArrayList;

+ 3 - 3
book-server/src/main/java/com/book/server/dao/entity/example/BookCategoryExample.java → book-dao/src/main/java/com/book/dao/cps/pojo/example/BookCategoryExample.java

@@ -1,6 +1,6 @@
-package com.book.server.dao.entity.example;
+package com.book.dao.cps.pojo.example;
 
-import com.book.server.dao.entity.BookCategory;
+import com.book.dao.cps.pojo.BookCategory;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -1316,6 +1316,6 @@ public class BookCategoryExample {
          *
          * @mbg.generated Mon Aug 16 23:54:49 CST 2021
          */
-        void example(com.book.server.dao.entity.example.BookCategoryExample example);
+        void example(com.book.dao.cps.pojo.example.BookCategoryExample example);
     }
 }

+ 3 - 3
book-server/src/main/java/com/book/server/dao/entity/example/BookExample.java → book-dao/src/main/java/com/book/dao/cps/pojo/example/BookExample.java

@@ -1,6 +1,6 @@
-package com.book.server.dao.entity.example;
+package com.book.dao.cps.pojo.example;
 
-import com.book.server.dao.entity.Book;
+import com.book.dao.cps.pojo.Book;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -5378,6 +5378,6 @@ public class BookExample {
          *
          * @mbg.generated Thu Aug 12 00:28:56 CST 2021
          */
-        void example(com.book.server.dao.entity.example.BookExample example);
+        void example(com.book.dao.cps.pojo.example.BookExample example);
     }
 }

+ 3 - 3
book-server/src/main/java/com/book/server/dao/entity/example/BookshelfRecommandExample.java → book-dao/src/main/java/com/book/dao/cps/pojo/example/BookshelfRecommandExample.java

@@ -1,6 +1,6 @@
-package com.book.server.dao.entity.example;
+package com.book.dao.cps.pojo.example;
 
-import com.book.server.dao.entity.BookshelfRecommand;
+import com.book.dao.cps.pojo.BookshelfRecommand;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -1216,6 +1216,6 @@ public class BookshelfRecommandExample {
          *
          * @mbg.generated Fri Aug 20 19:52:17 CST 2021
          */
-        void example(com.book.server.dao.entity.example.BookshelfRecommandExample example);
+        void example(com.book.dao.cps.pojo.example.BookshelfRecommandExample example);
     }
 }

+ 3 - 3
book-server/src/main/java/com/book/server/dao/entity/example/ManageBlockExample.java → book-dao/src/main/java/com/book/dao/cps/pojo/example/ManageBlockExample.java

@@ -1,6 +1,6 @@
-package com.book.server.dao.entity.example;
+package com.book.dao.cps.pojo.example;
 
-import com.book.server.dao.entity.ManageBlock;
+import com.book.dao.cps.pojo.ManageBlock;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -1306,6 +1306,6 @@ public class ManageBlockExample {
          *
          * @mbg.generated Sun Aug 15 14:43:42 CST 2021
          */
-        void example(com.book.server.dao.entity.example.ManageBlockExample example);
+        void example(com.book.dao.cps.pojo.example.ManageBlockExample example);
     }
 }

+ 3 - 3
book-server/src/main/java/com/book/server/dao/entity/example/ManageBlockResourceExample.java → book-dao/src/main/java/com/book/dao/cps/pojo/example/ManageBlockResourceExample.java

@@ -1,6 +1,6 @@
-package com.book.server.dao.entity.example;
+package com.book.dao.cps.pojo.example;
 
-import com.book.server.dao.entity.ManageBlockResource;
+import com.book.dao.cps.pojo.ManageBlockResource;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -1486,6 +1486,6 @@ public class ManageBlockResourceExample {
          *
          * @mbg.generated Sun Aug 15 14:43:42 CST 2021
          */
-        void example(com.book.server.dao.entity.example.ManageBlockResourceExample example);
+        void example(com.book.dao.cps.pojo.example.ManageBlockResourceExample example);
     }
 }

+ 3 - 3
book-server/src/main/java/com/book/server/dao/entity/example/ReturnRecommandExample.java → book-dao/src/main/java/com/book/dao/cps/pojo/example/ReturnRecommandExample.java

@@ -1,6 +1,6 @@
-package com.book.server.dao.entity.example;
+package com.book.dao.cps.pojo.example;
 
-import com.book.server.dao.entity.ReturnRecommand;
+import com.book.dao.cps.pojo.ReturnRecommand;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -1216,6 +1216,6 @@ public class ReturnRecommandExample {
          *
          * @mbg.generated Fri Aug 20 19:52:17 CST 2021
          */
-        void example(com.book.server.dao.entity.example.ReturnRecommandExample example);
+        void example(com.book.dao.cps.pojo.example.ReturnRecommandExample example);
     }
 }

+ 3 - 3
book-server/src/main/java/com/book/server/dao/entity/example/SearchKeywordExample.java → book-dao/src/main/java/com/book/dao/cps/pojo/example/SearchKeywordExample.java

@@ -1,6 +1,6 @@
-package com.book.server.dao.entity.example;
+package com.book.dao.cps.pojo.example;
 
-import com.book.server.dao.entity.SearchKeyword;
+import com.book.dao.cps.pojo.SearchKeyword;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -1206,6 +1206,6 @@ public class SearchKeywordExample {
          *
          * @mbg.generated Tue Aug 17 22:58:15 CST 2021
          */
-        void example(com.book.server.dao.entity.example.SearchKeywordExample example);
+        void example(com.book.dao.cps.pojo.example.SearchKeywordExample example);
     }
 }

+ 3 - 3
book-server/src/main/java/com/book/server/dao/entity/example/SmartRecommandExample.java → book-dao/src/main/java/com/book/dao/cps/pojo/example/SmartRecommandExample.java

@@ -1,6 +1,6 @@
-package com.book.server.dao.entity.example;
+package com.book.dao.cps.pojo.example;
 
-import com.book.server.dao.entity.SmartRecommand;
+import com.book.dao.cps.pojo.SmartRecommand;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -1616,6 +1616,6 @@ public class SmartRecommandExample {
          *
          * @mbg.generated Fri Aug 20 19:52:17 CST 2021
          */
-        void example(com.book.server.dao.entity.example.SmartRecommandExample example);
+        void example(com.book.dao.cps.pojo.example.SmartRecommandExample example);
     }
 }

+ 3 - 3
book-server/src/main/java/com/book/server/dao/entity/example/UserExample.java → book-dao/src/main/java/com/book/dao/cps/pojo/example/UserExample.java

@@ -1,6 +1,6 @@
-package com.book.server.dao.entity.example;
+package com.book.dao.cps.pojo.example;
 
-import com.book.server.dao.entity.User;
+import com.book.dao.cps.pojo.User;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -3166,6 +3166,6 @@ public class UserExample {
          *
          * @mbg.generated Tue Aug 17 22:19:18 CST 2021
          */
-        void example(com.book.server.dao.entity.example.UserExample example);
+        void example(com.book.dao.cps.pojo.example.UserExample example);
     }
 }

+ 107 - 0
book-dao/src/main/resources/mapper/cps/Book2Mapper.xml

@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.BookMapper2">
+    <resultMap id="BaseResultMap" type="com.book.dao.VO.BookRes">
+        <!--
+          WARNING - @mbg.generated
+          This element is automatically generated by MyBatis Generator, do not modify.
+          This element was generated on Thu Aug 12 00:28:56 CST 2021.
+        -->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="is_audio" jdbcType="TINYINT" property="isAudio"/>
+        <result column="book_category_id" jdbcType="INTEGER" property="bookCategoryId"/>
+        <result column="name" jdbcType="VARCHAR" property="name"/>
+        <result column="realname" jdbcType="VARCHAR" property="realname"/>
+        <result column="title" jdbcType="VARCHAR" property="title"/>
+        <result column="author" jdbcType="VARCHAR" property="author"/>
+        <result column="image" jdbcType="VARCHAR" property="image"/>
+        <result column="big_cover" jdbcType="VARCHAR" property="bigCover"/>
+        <result column="small_cover" jdbcType="VARCHAR" property="smallCover"/>
+        <result column="description" jdbcType="VARCHAR" property="description"/>
+        <result column="idx" jdbcType="INTEGER" property="idx"/>
+        <result column="referral_num" jdbcType="TINYINT" property="referralNum"/>
+        <result column="idxx" jdbcType="INTEGER" property="idxx"/>
+        <result column="state" jdbcType="CHAR" property="state"/>
+        <result column="free_stime" jdbcType="INTEGER" property="freeStime"/>
+        <result column="free_etime" jdbcType="INTEGER" property="freeEtime"/>
+        <result column="sex" jdbcType="CHAR" property="sex"/>
+        <result column="billing_type" jdbcType="CHAR" property="billingType"/>
+        <result column="price" jdbcType="INTEGER" property="price"/>
+        <result column="app_price" jdbcType="INTEGER" property="appPrice"/>
+        <result column="is_finish" jdbcType="CHAR" property="isFinish"/>
+        <result column="free_chapter_num" jdbcType="INTEGER" property="freeChapterNum"/>
+        <result column="word_count" jdbcType="VARCHAR" property="wordCount"/>
+        <result column="chapter_num" jdbcType="INTEGER" property="chapterNum"/>
+        <result column="first_chapter_id" jdbcType="BIGINT" property="firstChapterId"/>
+        <result column="first_chapter_name" jdbcType="VARCHAR" property="firstChapterName"/>
+        <result column="last_chapter_id" jdbcType="BIGINT" property="lastChapterId"/>
+        <result column="last_chapter_name" jdbcType="VARCHAR" property="lastChapterName"/>
+        <result column="last_chapter_utime" jdbcType="INTEGER" property="lastChapterUtime"/>
+        <result column="read_num" jdbcType="INTEGER" property="readNum"/>
+        <result column="article_chapter_order" jdbcType="INTEGER" property="articleChapterOrder"/>
+        <result column="attent_chapter_order" jdbcType="INTEGER" property="attentChapterOrder"/>
+        <result column="corner_mark" jdbcType="CHAR" property="cornerMark"/>
+        <result column="recommand_book_id" jdbcType="BIGINT" property="recommandBookId"/>
+        <result column="createtime" jdbcType="INTEGER" property="createtime"/>
+        <result column="updatetime" jdbcType="INTEGER" property="updatetime"/>
+        <result column="keywords" jdbcType="VARCHAR" property="keywords"/>
+        <result column="cansee" jdbcType="CHAR" property="cansee"/>
+        <result column="rank" jdbcType="TINYINT" property="rank"/>
+        <result column="check_rank" jdbcType="TINYINT" property="checkRank"/>
+        <result column="check_remark" jdbcType="VARCHAR" property="checkRemark"/>
+        <result column="editor_recommand" jdbcType="VARCHAR" property="editorRecommand"/>
+        <result column="book_tags" jdbcType="VARCHAR" property="bookTags"/>
+        <result column="a" jdbcType="TINYINT" property="a"/>
+        <result column="expire_time" jdbcType="INTEGER" property="expireTime"/>
+        <result column="cp_id" jdbcType="INTEGER" property="cpId"/>
+        <result column="cp_name" jdbcType="VARCHAR" property="cpName"/>
+        <result column="tags" jdbcType="VARCHAR" property="tags"/>
+        <result column="classify_white_list" jdbcType="TINYINT" property="classifyWhiteList"/>
+        <result column="put_ad_set" jdbcType="TINYINT" property="putAdSet"/>
+        <result column="categoryName" jdbcType="VARCHAR" property="categoryName"/>
+    </resultMap>
+
+    <select id="queryBookRes" resultMap="BaseResultMap">
+        SELECT t.*, c.`name` as "categoryName"
+        from book t
+                 left join book_category c on t.`book_category_id` = c.`id`
+        where t.state = '1'
+          and (t.`name` like #{queryVO.query} or t.author like #{queryVO.query}) limit #{page}
+            , #{size};
+    </select>
+    <select id="topRecommend" resultMap="BaseResultMap">
+        SELECT t.*,
+               c.`name`  as "categoryName"
+        FROM book t
+                 LEFT JOIN book_category c ON t.`book_category_id` = c.`id`
+        WHERE t.id IN (
+            SELECT book_id
+            FROM return_recommand
+            WHERE sex = #{queryVO.sex}
+              AND STATUS = 'normal'
+        ) LIMIT #{page},#{size}
+    </select>
+    <select id="novelEndRecommend" resultMap="BaseResultMap">
+        SELECT t.*,c.name AS "categoryName"  FROM
+            (
+                SELECT t.*,b.*  FROM
+                    (
+                        SELECT book_id,weight FROM novel_end_recommend
+                        WHERE sex = #{queryVO.sex} AND STATUS = 'normal'
+                    ) t
+                        LEFT JOIN book b ON b.id = t.book_id
+            ) t JOIN book_category c on t.book_category_id=c.id ORDER BY weight DESC  LIMIT #{page},#{size}
+    </select>
+    <select id="smartRecommand" resultMap="BaseResultMap">
+        SELECT t.*,c.name AS "categoryName"  FROM
+            (
+                SELECT t.*,b.*  FROM
+                    (
+                        SELECT book_id FROM smart_recommand
+                        WHERE sex = #{queryVO.sex} AND STATUS = 'normal'
+                    ) t
+                        LEFT JOIN book b ON b.id = t.book_id
+            ) t JOIN book_category c on t.book_category_id=c.id
+    </select>
+
+</mapper>

+ 676 - 0
book-dao/src/main/resources/mapper/cps/BookCategoryMapper.xml

@@ -0,0 +1,676 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.BookCategoryMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.BookCategory">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="image" jdbcType="VARCHAR" property="image" />
+    <result column="sex" jdbcType="CHAR" property="sex" />
+    <result column="weigh" jdbcType="INTEGER" property="weigh" />
+    <result column="status" jdbcType="CHAR" property="status" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    id, name, image, sex, weigh, status, createtime, updatetime
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.BookCategoryExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from book_category
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="rows != null">
+      <if test="offset != null">
+        limit ${offset}, ${rows}
+      </if>
+      <if test="offset == null">
+        limit ${rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from book_category
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    <if test="example != null and example.rows != null">
+      <if test="example.offset != null">
+        limit ${example.offset}, ${example.rows}
+      </if>
+      <if test="example.offset == null">
+        limit ${example.rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from book_category
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <select id="selectByPrimaryKeySelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from book_category
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    delete from book_category
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.BookCategoryExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    delete from book_category
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.BookCategory">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    insert into book_category (id, name, image, 
+      sex, weigh, status, createtime, 
+      updatetime)
+    values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{image,jdbcType=VARCHAR}, 
+      #{sex,jdbcType=CHAR}, #{weigh,jdbcType=INTEGER}, #{status,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    insert into book_category
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.name != null">
+            name,
+          </if>
+          <if test="record.image != null">
+            image,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.weigh != null">
+            weigh,
+          </if>
+          <if test="record.status != null">
+            status,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.status != null">
+            #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.BookCategoryExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    select count(*) from book_category
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    update book_category
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            name = #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    update book_category
+    set id = #{record.id,jdbcType=INTEGER},
+      name = #{record.name,jdbcType=VARCHAR},
+      image = #{record.image,jdbcType=VARCHAR},
+      sex = #{record.sex,jdbcType=CHAR},
+      weigh = #{record.weigh,jdbcType=INTEGER},
+      status = #{record.status,jdbcType=CHAR},
+      createtime = #{record.createtime,jdbcType=INTEGER},
+      updatetime = #{record.updatetime,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    update book_category
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.name != null">
+            name = #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.BookCategory">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    update book_category
+    set name = #{name,jdbcType=VARCHAR},
+      image = #{image,jdbcType=VARCHAR},
+      sex = #{sex,jdbcType=CHAR},
+      weigh = #{weigh,jdbcType=INTEGER},
+      status = #{status,jdbcType=CHAR},
+      createtime = #{createtime,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.BookCategoryExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from book_category
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    limit 1
+  </select>
+  <select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from book_category
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    limit 1
+  </select>
+  <insert id="batchInsert" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    insert into book_category
+    (id, name, image, sex, weigh, status, createtime, updatetime)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=INTEGER}, #{item.name,jdbcType=VARCHAR}, #{item.image,jdbcType=VARCHAR}, 
+        #{item.sex,jdbcType=CHAR}, #{item.weigh,jdbcType=INTEGER}, #{item.status,jdbcType=CHAR}, 
+        #{item.createtime,jdbcType=INTEGER}, #{item.updatetime,jdbcType=INTEGER})
+    </foreach>
+  </insert>
+  <insert id="batchInsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    insert into book_category (
+    <foreach collection="selective" item="column" separator=",">
+      ${column.escapedColumnName}
+    </foreach>
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      <foreach collection="selective" item="column" separator=",">
+        <if test="'id'.toString() == column.value">
+          #{item.id,jdbcType=INTEGER}
+        </if>
+        <if test="'name'.toString() == column.value">
+          #{item.name,jdbcType=VARCHAR}
+        </if>
+        <if test="'image'.toString() == column.value">
+          #{item.image,jdbcType=VARCHAR}
+        </if>
+        <if test="'sex'.toString() == column.value">
+          #{item.sex,jdbcType=CHAR}
+        </if>
+        <if test="'weigh'.toString() == column.value">
+          #{item.weigh,jdbcType=INTEGER}
+        </if>
+        <if test="'status'.toString() == column.value">
+          #{item.status,jdbcType=CHAR}
+        </if>
+        <if test="'createtime'.toString() == column.value">
+          #{item.createtime,jdbcType=INTEGER}
+        </if>
+        <if test="'updatetime'.toString() == column.value">
+          #{item.updatetime,jdbcType=INTEGER}
+        </if>
+      </foreach>
+      )
+    </foreach>
+  </insert>
+  <insert id="upsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    insert into book_category
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.name != null">
+            name,
+          </if>
+          <if test="record.image != null">
+            image,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.weigh != null">
+            weigh,
+          </if>
+          <if test="record.status != null">
+            status,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.status != null">
+            #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    on duplicate key update 
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            name = #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.BookCategory">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Mon Aug 16 23:54:49 CST 2021.
+    -->
+    insert into book_category
+    (id, name, image, sex, weigh, status, createtime, updatetime)
+    values
+    (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{image,jdbcType=VARCHAR}, #{sex,jdbcType=CHAR}, 
+      #{weigh,jdbcType=INTEGER}, #{status,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+    on duplicate key update 
+    id = #{id,jdbcType=INTEGER}, 
+    name = #{name,jdbcType=VARCHAR}, 
+    image = #{image,jdbcType=VARCHAR}, 
+    sex = #{sex,jdbcType=CHAR}, 
+    weigh = #{weigh,jdbcType=INTEGER}, 
+    status = #{status,jdbcType=CHAR}, 
+    createtime = #{createtime,jdbcType=INTEGER}, 
+    updatetime = #{updatetime,jdbcType=INTEGER}
+  </insert>
+</mapper>

+ 1960 - 0
book-dao/src/main/resources/mapper/cps/BookMapper.xml

@@ -0,0 +1,1960 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.BookMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.Book">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="is_audio" jdbcType="TINYINT" property="isAudio" />
+    <result column="book_category_id" jdbcType="INTEGER" property="bookCategoryId" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="realname" jdbcType="VARCHAR" property="realname" />
+    <result column="title" jdbcType="VARCHAR" property="title" />
+    <result column="author" jdbcType="VARCHAR" property="author" />
+    <result column="image" jdbcType="VARCHAR" property="image" />
+    <result column="big_cover" jdbcType="VARCHAR" property="bigCover" />
+    <result column="small_cover" jdbcType="VARCHAR" property="smallCover" />
+    <result column="description" jdbcType="VARCHAR" property="description" />
+    <result column="idx" jdbcType="INTEGER" property="idx" />
+    <result column="referral_num" jdbcType="TINYINT" property="referralNum" />
+    <result column="idxx" jdbcType="INTEGER" property="idxx" />
+    <result column="state" jdbcType="CHAR" property="state" />
+    <result column="free_stime" jdbcType="INTEGER" property="freeStime" />
+    <result column="free_etime" jdbcType="INTEGER" property="freeEtime" />
+    <result column="sex" jdbcType="CHAR" property="sex" />
+    <result column="billing_type" jdbcType="CHAR" property="billingType" />
+    <result column="price" jdbcType="INTEGER" property="price" />
+    <result column="app_price" jdbcType="INTEGER" property="appPrice" />
+    <result column="is_finish" jdbcType="CHAR" property="isFinish" />
+    <result column="free_chapter_num" jdbcType="INTEGER" property="freeChapterNum" />
+    <result column="word_count" jdbcType="VARCHAR" property="wordCount" />
+    <result column="chapter_num" jdbcType="INTEGER" property="chapterNum" />
+    <result column="first_chapter_id" jdbcType="BIGINT" property="firstChapterId" />
+    <result column="first_chapter_name" jdbcType="VARCHAR" property="firstChapterName" />
+    <result column="last_chapter_id" jdbcType="BIGINT" property="lastChapterId" />
+    <result column="last_chapter_name" jdbcType="VARCHAR" property="lastChapterName" />
+    <result column="last_chapter_utime" jdbcType="INTEGER" property="lastChapterUtime" />
+    <result column="read_num" jdbcType="INTEGER" property="readNum" />
+    <result column="article_chapter_order" jdbcType="INTEGER" property="articleChapterOrder" />
+    <result column="attent_chapter_order" jdbcType="INTEGER" property="attentChapterOrder" />
+    <result column="corner_mark" jdbcType="CHAR" property="cornerMark" />
+    <result column="recommand_book_id" jdbcType="BIGINT" property="recommandBookId" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+    <result column="keywords" jdbcType="VARCHAR" property="keywords" />
+    <result column="cansee" jdbcType="CHAR" property="cansee" />
+    <result column="rank" jdbcType="TINYINT" property="rank" />
+    <result column="check_rank" jdbcType="TINYINT" property="checkRank" />
+    <result column="check_remark" jdbcType="VARCHAR" property="checkRemark" />
+    <result column="editor_recommand" jdbcType="VARCHAR" property="editorRecommand" />
+    <result column="book_tags" jdbcType="VARCHAR" property="bookTags" />
+    <result column="a" jdbcType="TINYINT" property="a" />
+    <result column="expire_time" jdbcType="INTEGER" property="expireTime" />
+    <result column="cp_id" jdbcType="INTEGER" property="cpId" />
+    <result column="cp_name" jdbcType="VARCHAR" property="cpName" />
+    <result column="tags" jdbcType="VARCHAR" property="tags" />
+    <result column="classify_white_list" jdbcType="TINYINT" property="classifyWhiteList" />
+    <result column="put_ad_set" jdbcType="TINYINT" property="putAdSet" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    id, is_audio, book_category_id, name, realname, title, author, image, big_cover, 
+    small_cover, description, idx, referral_num, idxx, state, free_stime, free_etime, 
+    sex, billing_type, price, app_price, is_finish, free_chapter_num, word_count, chapter_num, 
+    first_chapter_id, first_chapter_name, last_chapter_id, last_chapter_name, last_chapter_utime, 
+    read_num, article_chapter_order, attent_chapter_order, corner_mark, recommand_book_id, 
+    createtime, updatetime, keywords, cansee, rank, check_rank, check_remark, editor_recommand, 
+    book_tags, a, expire_time, cp_id, cp_name, tags, classify_white_list, put_ad_set
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.BookExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from book
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="rows != null">
+      <if test="offset != null">
+        limit ${offset}, ${rows}
+      </if>
+      <if test="offset == null">
+        limit ${rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from book
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    <if test="example != null and example.rows != null">
+      <if test="example.offset != null">
+        limit ${example.offset}, ${example.rows}
+      </if>
+      <if test="example.offset == null">
+        limit ${example.rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from book
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectByPrimaryKeySelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from book
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    delete from book
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.BookExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    delete from book
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.Book">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    insert into book (id, is_audio, book_category_id, 
+      name, realname, title, 
+      author, image, big_cover, 
+      small_cover, description, idx, 
+      referral_num, idxx, state, 
+      free_stime, free_etime, sex, 
+      billing_type, price, app_price, 
+      is_finish, free_chapter_num, word_count, 
+      chapter_num, first_chapter_id, first_chapter_name, 
+      last_chapter_id, last_chapter_name, last_chapter_utime, 
+      read_num, article_chapter_order, attent_chapter_order, 
+      corner_mark, recommand_book_id, createtime, 
+      updatetime, keywords, cansee, 
+      rank, check_rank, check_remark, 
+      editor_recommand, book_tags, a, 
+      expire_time, cp_id, cp_name, 
+      tags, classify_white_list, put_ad_set
+      )
+    values (#{id,jdbcType=BIGINT}, #{isAudio,jdbcType=TINYINT}, #{bookCategoryId,jdbcType=INTEGER}, 
+      #{name,jdbcType=VARCHAR}, #{realname,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, 
+      #{author,jdbcType=VARCHAR}, #{image,jdbcType=VARCHAR}, #{bigCover,jdbcType=VARCHAR}, 
+      #{smallCover,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{idx,jdbcType=INTEGER}, 
+      #{referralNum,jdbcType=TINYINT}, #{idxx,jdbcType=INTEGER}, #{state,jdbcType=CHAR}, 
+      #{freeStime,jdbcType=INTEGER}, #{freeEtime,jdbcType=INTEGER}, #{sex,jdbcType=CHAR}, 
+      #{billingType,jdbcType=CHAR}, #{price,jdbcType=INTEGER}, #{appPrice,jdbcType=INTEGER}, 
+      #{isFinish,jdbcType=CHAR}, #{freeChapterNum,jdbcType=INTEGER}, #{wordCount,jdbcType=VARCHAR}, 
+      #{chapterNum,jdbcType=INTEGER}, #{firstChapterId,jdbcType=BIGINT}, #{firstChapterName,jdbcType=VARCHAR}, 
+      #{lastChapterId,jdbcType=BIGINT}, #{lastChapterName,jdbcType=VARCHAR}, #{lastChapterUtime,jdbcType=INTEGER}, 
+      #{readNum,jdbcType=INTEGER}, #{articleChapterOrder,jdbcType=INTEGER}, #{attentChapterOrder,jdbcType=INTEGER}, 
+      #{cornerMark,jdbcType=CHAR}, #{recommandBookId,jdbcType=BIGINT}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER}, #{keywords,jdbcType=VARCHAR}, #{cansee,jdbcType=CHAR}, 
+      #{rank,jdbcType=TINYINT}, #{checkRank,jdbcType=TINYINT}, #{checkRemark,jdbcType=VARCHAR}, 
+      #{editorRecommand,jdbcType=VARCHAR}, #{bookTags,jdbcType=VARCHAR}, #{a,jdbcType=TINYINT}, 
+      #{expireTime,jdbcType=INTEGER}, #{cpId,jdbcType=INTEGER}, #{cpName,jdbcType=VARCHAR}, 
+      #{tags,jdbcType=VARCHAR}, #{classifyWhiteList,jdbcType=TINYINT}, #{putAdSet,jdbcType=TINYINT}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    insert into book
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.isAudio != null">
+            is_audio,
+          </if>
+          <if test="record.bookCategoryId != null">
+            book_category_id,
+          </if>
+          <if test="record.name != null">
+            name,
+          </if>
+          <if test="record.realname != null">
+            realname,
+          </if>
+          <if test="record.title != null">
+            title,
+          </if>
+          <if test="record.author != null">
+            author,
+          </if>
+          <if test="record.image != null">
+            image,
+          </if>
+          <if test="record.bigCover != null">
+            big_cover,
+          </if>
+          <if test="record.smallCover != null">
+            small_cover,
+          </if>
+          <if test="record.description != null">
+            description,
+          </if>
+          <if test="record.idx != null">
+            idx,
+          </if>
+          <if test="record.referralNum != null">
+            referral_num,
+          </if>
+          <if test="record.idxx != null">
+            idxx,
+          </if>
+          <if test="record.state != null">
+            state,
+          </if>
+          <if test="record.freeStime != null">
+            free_stime,
+          </if>
+          <if test="record.freeEtime != null">
+            free_etime,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.billingType != null">
+            billing_type,
+          </if>
+          <if test="record.price != null">
+            price,
+          </if>
+          <if test="record.appPrice != null">
+            app_price,
+          </if>
+          <if test="record.isFinish != null">
+            is_finish,
+          </if>
+          <if test="record.freeChapterNum != null">
+            free_chapter_num,
+          </if>
+          <if test="record.wordCount != null">
+            word_count,
+          </if>
+          <if test="record.chapterNum != null">
+            chapter_num,
+          </if>
+          <if test="record.firstChapterId != null">
+            first_chapter_id,
+          </if>
+          <if test="record.firstChapterName != null">
+            first_chapter_name,
+          </if>
+          <if test="record.lastChapterId != null">
+            last_chapter_id,
+          </if>
+          <if test="record.lastChapterName != null">
+            last_chapter_name,
+          </if>
+          <if test="record.lastChapterUtime != null">
+            last_chapter_utime,
+          </if>
+          <if test="record.readNum != null">
+            read_num,
+          </if>
+          <if test="record.articleChapterOrder != null">
+            article_chapter_order,
+          </if>
+          <if test="record.attentChapterOrder != null">
+            attent_chapter_order,
+          </if>
+          <if test="record.cornerMark != null">
+            corner_mark,
+          </if>
+          <if test="record.recommandBookId != null">
+            recommand_book_id,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+          <if test="record.keywords != null">
+            keywords,
+          </if>
+          <if test="record.cansee != null">
+            cansee,
+          </if>
+          <if test="record.rank != null">
+            rank,
+          </if>
+          <if test="record.checkRank != null">
+            check_rank,
+          </if>
+          <if test="record.checkRemark != null">
+            check_remark,
+          </if>
+          <if test="record.editorRecommand != null">
+            editor_recommand,
+          </if>
+          <if test="record.bookTags != null">
+            book_tags,
+          </if>
+          <if test="record.a != null">
+            a,
+          </if>
+          <if test="record.expireTime != null">
+            expire_time,
+          </if>
+          <if test="record.cpId != null">
+            cp_id,
+          </if>
+          <if test="record.cpName != null">
+            cp_name,
+          </if>
+          <if test="record.tags != null">
+            tags,
+          </if>
+          <if test="record.classifyWhiteList != null">
+            classify_white_list,
+          </if>
+          <if test="record.putAdSet != null">
+            put_ad_set,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=BIGINT},
+          </if>
+          <if test="record.isAudio != null">
+            #{record.isAudio,jdbcType=TINYINT},
+          </if>
+          <if test="record.bookCategoryId != null">
+            #{record.bookCategoryId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.realname != null">
+            #{record.realname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.author != null">
+            #{record.author,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bigCover != null">
+            #{record.bigCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.smallCover != null">
+            #{record.smallCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.idx != null">
+            #{record.idx,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralNum != null">
+            #{record.referralNum,jdbcType=TINYINT},
+          </if>
+          <if test="record.idxx != null">
+            #{record.idxx,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.freeStime != null">
+            #{record.freeStime,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeEtime != null">
+            #{record.freeEtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.billingType != null">
+            #{record.billingType,jdbcType=CHAR},
+          </if>
+          <if test="record.price != null">
+            #{record.price,jdbcType=INTEGER},
+          </if>
+          <if test="record.appPrice != null">
+            #{record.appPrice,jdbcType=INTEGER},
+          </if>
+          <if test="record.isFinish != null">
+            #{record.isFinish,jdbcType=CHAR},
+          </if>
+          <if test="record.freeChapterNum != null">
+            #{record.freeChapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.wordCount != null">
+            #{record.wordCount,jdbcType=VARCHAR},
+          </if>
+          <if test="record.chapterNum != null">
+            #{record.chapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstChapterId != null">
+            #{record.firstChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.firstChapterName != null">
+            #{record.firstChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterId != null">
+            #{record.lastChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.lastChapterName != null">
+            #{record.lastChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterUtime != null">
+            #{record.lastChapterUtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.readNum != null">
+            #{record.readNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.articleChapterOrder != null">
+            #{record.articleChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.attentChapterOrder != null">
+            #{record.attentChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.cornerMark != null">
+            #{record.cornerMark,jdbcType=CHAR},
+          </if>
+          <if test="record.recommandBookId != null">
+            #{record.recommandBookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.keywords != null">
+            #{record.keywords,jdbcType=VARCHAR},
+          </if>
+          <if test="record.cansee != null">
+            #{record.cansee,jdbcType=CHAR},
+          </if>
+          <if test="record.rank != null">
+            #{record.rank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRank != null">
+            #{record.checkRank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRemark != null">
+            #{record.checkRemark,jdbcType=VARCHAR},
+          </if>
+          <if test="record.editorRecommand != null">
+            #{record.editorRecommand,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookTags != null">
+            #{record.bookTags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.a != null">
+            #{record.a,jdbcType=TINYINT},
+          </if>
+          <if test="record.expireTime != null">
+            #{record.expireTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpId != null">
+            #{record.cpId,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpName != null">
+            #{record.cpName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.tags != null">
+            #{record.tags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.classifyWhiteList != null">
+            #{record.classifyWhiteList,jdbcType=TINYINT},
+          </if>
+          <if test="record.putAdSet != null">
+            #{record.putAdSet,jdbcType=TINYINT},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.BookExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    select count(*) from book
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    update book
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=BIGINT},
+          </if>
+          <if test="record.isAudio != null">
+            is_audio = #{record.isAudio,jdbcType=TINYINT},
+          </if>
+          <if test="record.bookCategoryId != null">
+            book_category_id = #{record.bookCategoryId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            name = #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.realname != null">
+            realname = #{record.realname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            title = #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.author != null">
+            author = #{record.author,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bigCover != null">
+            big_cover = #{record.bigCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.smallCover != null">
+            small_cover = #{record.smallCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            description = #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.idx != null">
+            idx = #{record.idx,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralNum != null">
+            referral_num = #{record.referralNum,jdbcType=TINYINT},
+          </if>
+          <if test="record.idxx != null">
+            idxx = #{record.idxx,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            state = #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.freeStime != null">
+            free_stime = #{record.freeStime,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeEtime != null">
+            free_etime = #{record.freeEtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.billingType != null">
+            billing_type = #{record.billingType,jdbcType=CHAR},
+          </if>
+          <if test="record.price != null">
+            price = #{record.price,jdbcType=INTEGER},
+          </if>
+          <if test="record.appPrice != null">
+            app_price = #{record.appPrice,jdbcType=INTEGER},
+          </if>
+          <if test="record.isFinish != null">
+            is_finish = #{record.isFinish,jdbcType=CHAR},
+          </if>
+          <if test="record.freeChapterNum != null">
+            free_chapter_num = #{record.freeChapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.wordCount != null">
+            word_count = #{record.wordCount,jdbcType=VARCHAR},
+          </if>
+          <if test="record.chapterNum != null">
+            chapter_num = #{record.chapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstChapterId != null">
+            first_chapter_id = #{record.firstChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.firstChapterName != null">
+            first_chapter_name = #{record.firstChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterId != null">
+            last_chapter_id = #{record.lastChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.lastChapterName != null">
+            last_chapter_name = #{record.lastChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterUtime != null">
+            last_chapter_utime = #{record.lastChapterUtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.readNum != null">
+            read_num = #{record.readNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.articleChapterOrder != null">
+            article_chapter_order = #{record.articleChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.attentChapterOrder != null">
+            attent_chapter_order = #{record.attentChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.cornerMark != null">
+            corner_mark = #{record.cornerMark,jdbcType=CHAR},
+          </if>
+          <if test="record.recommandBookId != null">
+            recommand_book_id = #{record.recommandBookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.keywords != null">
+            keywords = #{record.keywords,jdbcType=VARCHAR},
+          </if>
+          <if test="record.cansee != null">
+            cansee = #{record.cansee,jdbcType=CHAR},
+          </if>
+          <if test="record.rank != null">
+            rank = #{record.rank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRank != null">
+            check_rank = #{record.checkRank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRemark != null">
+            check_remark = #{record.checkRemark,jdbcType=VARCHAR},
+          </if>
+          <if test="record.editorRecommand != null">
+            editor_recommand = #{record.editorRecommand,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookTags != null">
+            book_tags = #{record.bookTags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.a != null">
+            a = #{record.a,jdbcType=TINYINT},
+          </if>
+          <if test="record.expireTime != null">
+            expire_time = #{record.expireTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpId != null">
+            cp_id = #{record.cpId,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpName != null">
+            cp_name = #{record.cpName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.tags != null">
+            tags = #{record.tags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.classifyWhiteList != null">
+            classify_white_list = #{record.classifyWhiteList,jdbcType=TINYINT},
+          </if>
+          <if test="record.putAdSet != null">
+            put_ad_set = #{record.putAdSet,jdbcType=TINYINT},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    update book
+    set id = #{record.id,jdbcType=BIGINT},
+      is_audio = #{record.isAudio,jdbcType=TINYINT},
+      book_category_id = #{record.bookCategoryId,jdbcType=INTEGER},
+      name = #{record.name,jdbcType=VARCHAR},
+      realname = #{record.realname,jdbcType=VARCHAR},
+      title = #{record.title,jdbcType=VARCHAR},
+      author = #{record.author,jdbcType=VARCHAR},
+      image = #{record.image,jdbcType=VARCHAR},
+      big_cover = #{record.bigCover,jdbcType=VARCHAR},
+      small_cover = #{record.smallCover,jdbcType=VARCHAR},
+      description = #{record.description,jdbcType=VARCHAR},
+      idx = #{record.idx,jdbcType=INTEGER},
+      referral_num = #{record.referralNum,jdbcType=TINYINT},
+      idxx = #{record.idxx,jdbcType=INTEGER},
+      state = #{record.state,jdbcType=CHAR},
+      free_stime = #{record.freeStime,jdbcType=INTEGER},
+      free_etime = #{record.freeEtime,jdbcType=INTEGER},
+      sex = #{record.sex,jdbcType=CHAR},
+      billing_type = #{record.billingType,jdbcType=CHAR},
+      price = #{record.price,jdbcType=INTEGER},
+      app_price = #{record.appPrice,jdbcType=INTEGER},
+      is_finish = #{record.isFinish,jdbcType=CHAR},
+      free_chapter_num = #{record.freeChapterNum,jdbcType=INTEGER},
+      word_count = #{record.wordCount,jdbcType=VARCHAR},
+      chapter_num = #{record.chapterNum,jdbcType=INTEGER},
+      first_chapter_id = #{record.firstChapterId,jdbcType=BIGINT},
+      first_chapter_name = #{record.firstChapterName,jdbcType=VARCHAR},
+      last_chapter_id = #{record.lastChapterId,jdbcType=BIGINT},
+      last_chapter_name = #{record.lastChapterName,jdbcType=VARCHAR},
+      last_chapter_utime = #{record.lastChapterUtime,jdbcType=INTEGER},
+      read_num = #{record.readNum,jdbcType=INTEGER},
+      article_chapter_order = #{record.articleChapterOrder,jdbcType=INTEGER},
+      attent_chapter_order = #{record.attentChapterOrder,jdbcType=INTEGER},
+      corner_mark = #{record.cornerMark,jdbcType=CHAR},
+      recommand_book_id = #{record.recommandBookId,jdbcType=BIGINT},
+      createtime = #{record.createtime,jdbcType=INTEGER},
+      updatetime = #{record.updatetime,jdbcType=INTEGER},
+      keywords = #{record.keywords,jdbcType=VARCHAR},
+      cansee = #{record.cansee,jdbcType=CHAR},
+      rank = #{record.rank,jdbcType=TINYINT},
+      check_rank = #{record.checkRank,jdbcType=TINYINT},
+      check_remark = #{record.checkRemark,jdbcType=VARCHAR},
+      editor_recommand = #{record.editorRecommand,jdbcType=VARCHAR},
+      book_tags = #{record.bookTags,jdbcType=VARCHAR},
+      a = #{record.a,jdbcType=TINYINT},
+      expire_time = #{record.expireTime,jdbcType=INTEGER},
+      cp_id = #{record.cpId,jdbcType=INTEGER},
+      cp_name = #{record.cpName,jdbcType=VARCHAR},
+      tags = #{record.tags,jdbcType=VARCHAR},
+      classify_white_list = #{record.classifyWhiteList,jdbcType=TINYINT},
+      put_ad_set = #{record.putAdSet,jdbcType=TINYINT}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    update book
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.isAudio != null">
+            is_audio = #{record.isAudio,jdbcType=TINYINT},
+          </if>
+          <if test="record.bookCategoryId != null">
+            book_category_id = #{record.bookCategoryId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            name = #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.realname != null">
+            realname = #{record.realname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            title = #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.author != null">
+            author = #{record.author,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bigCover != null">
+            big_cover = #{record.bigCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.smallCover != null">
+            small_cover = #{record.smallCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            description = #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.idx != null">
+            idx = #{record.idx,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralNum != null">
+            referral_num = #{record.referralNum,jdbcType=TINYINT},
+          </if>
+          <if test="record.idxx != null">
+            idxx = #{record.idxx,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            state = #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.freeStime != null">
+            free_stime = #{record.freeStime,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeEtime != null">
+            free_etime = #{record.freeEtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.billingType != null">
+            billing_type = #{record.billingType,jdbcType=CHAR},
+          </if>
+          <if test="record.price != null">
+            price = #{record.price,jdbcType=INTEGER},
+          </if>
+          <if test="record.appPrice != null">
+            app_price = #{record.appPrice,jdbcType=INTEGER},
+          </if>
+          <if test="record.isFinish != null">
+            is_finish = #{record.isFinish,jdbcType=CHAR},
+          </if>
+          <if test="record.freeChapterNum != null">
+            free_chapter_num = #{record.freeChapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.wordCount != null">
+            word_count = #{record.wordCount,jdbcType=VARCHAR},
+          </if>
+          <if test="record.chapterNum != null">
+            chapter_num = #{record.chapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstChapterId != null">
+            first_chapter_id = #{record.firstChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.firstChapterName != null">
+            first_chapter_name = #{record.firstChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterId != null">
+            last_chapter_id = #{record.lastChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.lastChapterName != null">
+            last_chapter_name = #{record.lastChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterUtime != null">
+            last_chapter_utime = #{record.lastChapterUtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.readNum != null">
+            read_num = #{record.readNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.articleChapterOrder != null">
+            article_chapter_order = #{record.articleChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.attentChapterOrder != null">
+            attent_chapter_order = #{record.attentChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.cornerMark != null">
+            corner_mark = #{record.cornerMark,jdbcType=CHAR},
+          </if>
+          <if test="record.recommandBookId != null">
+            recommand_book_id = #{record.recommandBookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.keywords != null">
+            keywords = #{record.keywords,jdbcType=VARCHAR},
+          </if>
+          <if test="record.cansee != null">
+            cansee = #{record.cansee,jdbcType=CHAR},
+          </if>
+          <if test="record.rank != null">
+            rank = #{record.rank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRank != null">
+            check_rank = #{record.checkRank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRemark != null">
+            check_remark = #{record.checkRemark,jdbcType=VARCHAR},
+          </if>
+          <if test="record.editorRecommand != null">
+            editor_recommand = #{record.editorRecommand,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookTags != null">
+            book_tags = #{record.bookTags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.a != null">
+            a = #{record.a,jdbcType=TINYINT},
+          </if>
+          <if test="record.expireTime != null">
+            expire_time = #{record.expireTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpId != null">
+            cp_id = #{record.cpId,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpName != null">
+            cp_name = #{record.cpName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.tags != null">
+            tags = #{record.tags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.classifyWhiteList != null">
+            classify_white_list = #{record.classifyWhiteList,jdbcType=TINYINT},
+          </if>
+          <if test="record.putAdSet != null">
+            put_ad_set = #{record.putAdSet,jdbcType=TINYINT},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.Book">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    update book
+    set is_audio = #{isAudio,jdbcType=TINYINT},
+      book_category_id = #{bookCategoryId,jdbcType=INTEGER},
+      name = #{name,jdbcType=VARCHAR},
+      realname = #{realname,jdbcType=VARCHAR},
+      title = #{title,jdbcType=VARCHAR},
+      author = #{author,jdbcType=VARCHAR},
+      image = #{image,jdbcType=VARCHAR},
+      big_cover = #{bigCover,jdbcType=VARCHAR},
+      small_cover = #{smallCover,jdbcType=VARCHAR},
+      description = #{description,jdbcType=VARCHAR},
+      idx = #{idx,jdbcType=INTEGER},
+      referral_num = #{referralNum,jdbcType=TINYINT},
+      idxx = #{idxx,jdbcType=INTEGER},
+      state = #{state,jdbcType=CHAR},
+      free_stime = #{freeStime,jdbcType=INTEGER},
+      free_etime = #{freeEtime,jdbcType=INTEGER},
+      sex = #{sex,jdbcType=CHAR},
+      billing_type = #{billingType,jdbcType=CHAR},
+      price = #{price,jdbcType=INTEGER},
+      app_price = #{appPrice,jdbcType=INTEGER},
+      is_finish = #{isFinish,jdbcType=CHAR},
+      free_chapter_num = #{freeChapterNum,jdbcType=INTEGER},
+      word_count = #{wordCount,jdbcType=VARCHAR},
+      chapter_num = #{chapterNum,jdbcType=INTEGER},
+      first_chapter_id = #{firstChapterId,jdbcType=BIGINT},
+      first_chapter_name = #{firstChapterName,jdbcType=VARCHAR},
+      last_chapter_id = #{lastChapterId,jdbcType=BIGINT},
+      last_chapter_name = #{lastChapterName,jdbcType=VARCHAR},
+      last_chapter_utime = #{lastChapterUtime,jdbcType=INTEGER},
+      read_num = #{readNum,jdbcType=INTEGER},
+      article_chapter_order = #{articleChapterOrder,jdbcType=INTEGER},
+      attent_chapter_order = #{attentChapterOrder,jdbcType=INTEGER},
+      corner_mark = #{cornerMark,jdbcType=CHAR},
+      recommand_book_id = #{recommandBookId,jdbcType=BIGINT},
+      createtime = #{createtime,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=INTEGER},
+      keywords = #{keywords,jdbcType=VARCHAR},
+      cansee = #{cansee,jdbcType=CHAR},
+      rank = #{rank,jdbcType=TINYINT},
+      check_rank = #{checkRank,jdbcType=TINYINT},
+      check_remark = #{checkRemark,jdbcType=VARCHAR},
+      editor_recommand = #{editorRecommand,jdbcType=VARCHAR},
+      book_tags = #{bookTags,jdbcType=VARCHAR},
+      a = #{a,jdbcType=TINYINT},
+      expire_time = #{expireTime,jdbcType=INTEGER},
+      cp_id = #{cpId,jdbcType=INTEGER},
+      cp_name = #{cpName,jdbcType=VARCHAR},
+      tags = #{tags,jdbcType=VARCHAR},
+      classify_white_list = #{classifyWhiteList,jdbcType=TINYINT},
+      put_ad_set = #{putAdSet,jdbcType=TINYINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.BookExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from book
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    limit 1
+  </select>
+  <select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from book
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    limit 1
+  </select>
+  <insert id="batchInsert" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    insert into book
+    (id, is_audio, book_category_id, name, realname, title, author, image, big_cover, 
+      small_cover, description, idx, referral_num, idxx, state, free_stime, free_etime, 
+      sex, billing_type, price, app_price, is_finish, free_chapter_num, word_count, chapter_num, 
+      first_chapter_id, first_chapter_name, last_chapter_id, last_chapter_name, last_chapter_utime, 
+      read_num, article_chapter_order, attent_chapter_order, corner_mark, recommand_book_id, 
+      createtime, updatetime, keywords, cansee, rank, check_rank, check_remark, editor_recommand, 
+      book_tags, a, expire_time, cp_id, cp_name, tags, classify_white_list, put_ad_set
+      )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=BIGINT}, #{item.isAudio,jdbcType=TINYINT}, #{item.bookCategoryId,jdbcType=INTEGER}, 
+        #{item.name,jdbcType=VARCHAR}, #{item.realname,jdbcType=VARCHAR}, #{item.title,jdbcType=VARCHAR}, 
+        #{item.author,jdbcType=VARCHAR}, #{item.image,jdbcType=VARCHAR}, #{item.bigCover,jdbcType=VARCHAR}, 
+        #{item.smallCover,jdbcType=VARCHAR}, #{item.description,jdbcType=VARCHAR}, #{item.idx,jdbcType=INTEGER}, 
+        #{item.referralNum,jdbcType=TINYINT}, #{item.idxx,jdbcType=INTEGER}, #{item.state,jdbcType=CHAR}, 
+        #{item.freeStime,jdbcType=INTEGER}, #{item.freeEtime,jdbcType=INTEGER}, #{item.sex,jdbcType=CHAR}, 
+        #{item.billingType,jdbcType=CHAR}, #{item.price,jdbcType=INTEGER}, #{item.appPrice,jdbcType=INTEGER}, 
+        #{item.isFinish,jdbcType=CHAR}, #{item.freeChapterNum,jdbcType=INTEGER}, #{item.wordCount,jdbcType=VARCHAR}, 
+        #{item.chapterNum,jdbcType=INTEGER}, #{item.firstChapterId,jdbcType=BIGINT}, #{item.firstChapterName,jdbcType=VARCHAR}, 
+        #{item.lastChapterId,jdbcType=BIGINT}, #{item.lastChapterName,jdbcType=VARCHAR}, 
+        #{item.lastChapterUtime,jdbcType=INTEGER}, #{item.readNum,jdbcType=INTEGER}, #{item.articleChapterOrder,jdbcType=INTEGER}, 
+        #{item.attentChapterOrder,jdbcType=INTEGER}, #{item.cornerMark,jdbcType=CHAR}, 
+        #{item.recommandBookId,jdbcType=BIGINT}, #{item.createtime,jdbcType=INTEGER}, #{item.updatetime,jdbcType=INTEGER}, 
+        #{item.keywords,jdbcType=VARCHAR}, #{item.cansee,jdbcType=CHAR}, #{item.rank,jdbcType=TINYINT}, 
+        #{item.checkRank,jdbcType=TINYINT}, #{item.checkRemark,jdbcType=VARCHAR}, #{item.editorRecommand,jdbcType=VARCHAR}, 
+        #{item.bookTags,jdbcType=VARCHAR}, #{item.a,jdbcType=TINYINT}, #{item.expireTime,jdbcType=INTEGER}, 
+        #{item.cpId,jdbcType=INTEGER}, #{item.cpName,jdbcType=VARCHAR}, #{item.tags,jdbcType=VARCHAR}, 
+        #{item.classifyWhiteList,jdbcType=TINYINT}, #{item.putAdSet,jdbcType=TINYINT})
+    </foreach>
+  </insert>
+  <insert id="batchInsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    insert into book (
+    <foreach collection="selective" item="column" separator=",">
+      ${column.escapedColumnName}
+    </foreach>
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      <foreach collection="selective" item="column" separator=",">
+        <if test="'id'.toString() == column.value">
+          #{item.id,jdbcType=BIGINT}
+        </if>
+        <if test="'is_audio'.toString() == column.value">
+          #{item.isAudio,jdbcType=TINYINT}
+        </if>
+        <if test="'book_category_id'.toString() == column.value">
+          #{item.bookCategoryId,jdbcType=INTEGER}
+        </if>
+        <if test="'name'.toString() == column.value">
+          #{item.name,jdbcType=VARCHAR}
+        </if>
+        <if test="'realname'.toString() == column.value">
+          #{item.realname,jdbcType=VARCHAR}
+        </if>
+        <if test="'title'.toString() == column.value">
+          #{item.title,jdbcType=VARCHAR}
+        </if>
+        <if test="'author'.toString() == column.value">
+          #{item.author,jdbcType=VARCHAR}
+        </if>
+        <if test="'image'.toString() == column.value">
+          #{item.image,jdbcType=VARCHAR}
+        </if>
+        <if test="'big_cover'.toString() == column.value">
+          #{item.bigCover,jdbcType=VARCHAR}
+        </if>
+        <if test="'small_cover'.toString() == column.value">
+          #{item.smallCover,jdbcType=VARCHAR}
+        </if>
+        <if test="'description'.toString() == column.value">
+          #{item.description,jdbcType=VARCHAR}
+        </if>
+        <if test="'idx'.toString() == column.value">
+          #{item.idx,jdbcType=INTEGER}
+        </if>
+        <if test="'referral_num'.toString() == column.value">
+          #{item.referralNum,jdbcType=TINYINT}
+        </if>
+        <if test="'idxx'.toString() == column.value">
+          #{item.idxx,jdbcType=INTEGER}
+        </if>
+        <if test="'state'.toString() == column.value">
+          #{item.state,jdbcType=CHAR}
+        </if>
+        <if test="'free_stime'.toString() == column.value">
+          #{item.freeStime,jdbcType=INTEGER}
+        </if>
+        <if test="'free_etime'.toString() == column.value">
+          #{item.freeEtime,jdbcType=INTEGER}
+        </if>
+        <if test="'sex'.toString() == column.value">
+          #{item.sex,jdbcType=CHAR}
+        </if>
+        <if test="'billing_type'.toString() == column.value">
+          #{item.billingType,jdbcType=CHAR}
+        </if>
+        <if test="'price'.toString() == column.value">
+          #{item.price,jdbcType=INTEGER}
+        </if>
+        <if test="'app_price'.toString() == column.value">
+          #{item.appPrice,jdbcType=INTEGER}
+        </if>
+        <if test="'is_finish'.toString() == column.value">
+          #{item.isFinish,jdbcType=CHAR}
+        </if>
+        <if test="'free_chapter_num'.toString() == column.value">
+          #{item.freeChapterNum,jdbcType=INTEGER}
+        </if>
+        <if test="'word_count'.toString() == column.value">
+          #{item.wordCount,jdbcType=VARCHAR}
+        </if>
+        <if test="'chapter_num'.toString() == column.value">
+          #{item.chapterNum,jdbcType=INTEGER}
+        </if>
+        <if test="'first_chapter_id'.toString() == column.value">
+          #{item.firstChapterId,jdbcType=BIGINT}
+        </if>
+        <if test="'first_chapter_name'.toString() == column.value">
+          #{item.firstChapterName,jdbcType=VARCHAR}
+        </if>
+        <if test="'last_chapter_id'.toString() == column.value">
+          #{item.lastChapterId,jdbcType=BIGINT}
+        </if>
+        <if test="'last_chapter_name'.toString() == column.value">
+          #{item.lastChapterName,jdbcType=VARCHAR}
+        </if>
+        <if test="'last_chapter_utime'.toString() == column.value">
+          #{item.lastChapterUtime,jdbcType=INTEGER}
+        </if>
+        <if test="'read_num'.toString() == column.value">
+          #{item.readNum,jdbcType=INTEGER}
+        </if>
+        <if test="'article_chapter_order'.toString() == column.value">
+          #{item.articleChapterOrder,jdbcType=INTEGER}
+        </if>
+        <if test="'attent_chapter_order'.toString() == column.value">
+          #{item.attentChapterOrder,jdbcType=INTEGER}
+        </if>
+        <if test="'corner_mark'.toString() == column.value">
+          #{item.cornerMark,jdbcType=CHAR}
+        </if>
+        <if test="'recommand_book_id'.toString() == column.value">
+          #{item.recommandBookId,jdbcType=BIGINT}
+        </if>
+        <if test="'createtime'.toString() == column.value">
+          #{item.createtime,jdbcType=INTEGER}
+        </if>
+        <if test="'updatetime'.toString() == column.value">
+          #{item.updatetime,jdbcType=INTEGER}
+        </if>
+        <if test="'keywords'.toString() == column.value">
+          #{item.keywords,jdbcType=VARCHAR}
+        </if>
+        <if test="'cansee'.toString() == column.value">
+          #{item.cansee,jdbcType=CHAR}
+        </if>
+        <if test="'rank'.toString() == column.value">
+          #{item.rank,jdbcType=TINYINT}
+        </if>
+        <if test="'check_rank'.toString() == column.value">
+          #{item.checkRank,jdbcType=TINYINT}
+        </if>
+        <if test="'check_remark'.toString() == column.value">
+          #{item.checkRemark,jdbcType=VARCHAR}
+        </if>
+        <if test="'editor_recommand'.toString() == column.value">
+          #{item.editorRecommand,jdbcType=VARCHAR}
+        </if>
+        <if test="'book_tags'.toString() == column.value">
+          #{item.bookTags,jdbcType=VARCHAR}
+        </if>
+        <if test="'a'.toString() == column.value">
+          #{item.a,jdbcType=TINYINT}
+        </if>
+        <if test="'expire_time'.toString() == column.value">
+          #{item.expireTime,jdbcType=INTEGER}
+        </if>
+        <if test="'cp_id'.toString() == column.value">
+          #{item.cpId,jdbcType=INTEGER}
+        </if>
+        <if test="'cp_name'.toString() == column.value">
+          #{item.cpName,jdbcType=VARCHAR}
+        </if>
+        <if test="'tags'.toString() == column.value">
+          #{item.tags,jdbcType=VARCHAR}
+        </if>
+        <if test="'classify_white_list'.toString() == column.value">
+          #{item.classifyWhiteList,jdbcType=TINYINT}
+        </if>
+        <if test="'put_ad_set'.toString() == column.value">
+          #{item.putAdSet,jdbcType=TINYINT}
+        </if>
+      </foreach>
+      )
+    </foreach>
+  </insert>
+  <insert id="upsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    insert into book
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.isAudio != null">
+            is_audio,
+          </if>
+          <if test="record.bookCategoryId != null">
+            book_category_id,
+          </if>
+          <if test="record.name != null">
+            name,
+          </if>
+          <if test="record.realname != null">
+            realname,
+          </if>
+          <if test="record.title != null">
+            title,
+          </if>
+          <if test="record.author != null">
+            author,
+          </if>
+          <if test="record.image != null">
+            image,
+          </if>
+          <if test="record.bigCover != null">
+            big_cover,
+          </if>
+          <if test="record.smallCover != null">
+            small_cover,
+          </if>
+          <if test="record.description != null">
+            description,
+          </if>
+          <if test="record.idx != null">
+            idx,
+          </if>
+          <if test="record.referralNum != null">
+            referral_num,
+          </if>
+          <if test="record.idxx != null">
+            idxx,
+          </if>
+          <if test="record.state != null">
+            state,
+          </if>
+          <if test="record.freeStime != null">
+            free_stime,
+          </if>
+          <if test="record.freeEtime != null">
+            free_etime,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.billingType != null">
+            billing_type,
+          </if>
+          <if test="record.price != null">
+            price,
+          </if>
+          <if test="record.appPrice != null">
+            app_price,
+          </if>
+          <if test="record.isFinish != null">
+            is_finish,
+          </if>
+          <if test="record.freeChapterNum != null">
+            free_chapter_num,
+          </if>
+          <if test="record.wordCount != null">
+            word_count,
+          </if>
+          <if test="record.chapterNum != null">
+            chapter_num,
+          </if>
+          <if test="record.firstChapterId != null">
+            first_chapter_id,
+          </if>
+          <if test="record.firstChapterName != null">
+            first_chapter_name,
+          </if>
+          <if test="record.lastChapterId != null">
+            last_chapter_id,
+          </if>
+          <if test="record.lastChapterName != null">
+            last_chapter_name,
+          </if>
+          <if test="record.lastChapterUtime != null">
+            last_chapter_utime,
+          </if>
+          <if test="record.readNum != null">
+            read_num,
+          </if>
+          <if test="record.articleChapterOrder != null">
+            article_chapter_order,
+          </if>
+          <if test="record.attentChapterOrder != null">
+            attent_chapter_order,
+          </if>
+          <if test="record.cornerMark != null">
+            corner_mark,
+          </if>
+          <if test="record.recommandBookId != null">
+            recommand_book_id,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+          <if test="record.keywords != null">
+            keywords,
+          </if>
+          <if test="record.cansee != null">
+            cansee,
+          </if>
+          <if test="record.rank != null">
+            rank,
+          </if>
+          <if test="record.checkRank != null">
+            check_rank,
+          </if>
+          <if test="record.checkRemark != null">
+            check_remark,
+          </if>
+          <if test="record.editorRecommand != null">
+            editor_recommand,
+          </if>
+          <if test="record.bookTags != null">
+            book_tags,
+          </if>
+          <if test="record.a != null">
+            a,
+          </if>
+          <if test="record.expireTime != null">
+            expire_time,
+          </if>
+          <if test="record.cpId != null">
+            cp_id,
+          </if>
+          <if test="record.cpName != null">
+            cp_name,
+          </if>
+          <if test="record.tags != null">
+            tags,
+          </if>
+          <if test="record.classifyWhiteList != null">
+            classify_white_list,
+          </if>
+          <if test="record.putAdSet != null">
+            put_ad_set,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=BIGINT},
+          </if>
+          <if test="record.isAudio != null">
+            #{record.isAudio,jdbcType=TINYINT},
+          </if>
+          <if test="record.bookCategoryId != null">
+            #{record.bookCategoryId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.realname != null">
+            #{record.realname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.author != null">
+            #{record.author,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bigCover != null">
+            #{record.bigCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.smallCover != null">
+            #{record.smallCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.idx != null">
+            #{record.idx,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralNum != null">
+            #{record.referralNum,jdbcType=TINYINT},
+          </if>
+          <if test="record.idxx != null">
+            #{record.idxx,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.freeStime != null">
+            #{record.freeStime,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeEtime != null">
+            #{record.freeEtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.billingType != null">
+            #{record.billingType,jdbcType=CHAR},
+          </if>
+          <if test="record.price != null">
+            #{record.price,jdbcType=INTEGER},
+          </if>
+          <if test="record.appPrice != null">
+            #{record.appPrice,jdbcType=INTEGER},
+          </if>
+          <if test="record.isFinish != null">
+            #{record.isFinish,jdbcType=CHAR},
+          </if>
+          <if test="record.freeChapterNum != null">
+            #{record.freeChapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.wordCount != null">
+            #{record.wordCount,jdbcType=VARCHAR},
+          </if>
+          <if test="record.chapterNum != null">
+            #{record.chapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstChapterId != null">
+            #{record.firstChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.firstChapterName != null">
+            #{record.firstChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterId != null">
+            #{record.lastChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.lastChapterName != null">
+            #{record.lastChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterUtime != null">
+            #{record.lastChapterUtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.readNum != null">
+            #{record.readNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.articleChapterOrder != null">
+            #{record.articleChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.attentChapterOrder != null">
+            #{record.attentChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.cornerMark != null">
+            #{record.cornerMark,jdbcType=CHAR},
+          </if>
+          <if test="record.recommandBookId != null">
+            #{record.recommandBookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.keywords != null">
+            #{record.keywords,jdbcType=VARCHAR},
+          </if>
+          <if test="record.cansee != null">
+            #{record.cansee,jdbcType=CHAR},
+          </if>
+          <if test="record.rank != null">
+            #{record.rank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRank != null">
+            #{record.checkRank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRemark != null">
+            #{record.checkRemark,jdbcType=VARCHAR},
+          </if>
+          <if test="record.editorRecommand != null">
+            #{record.editorRecommand,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookTags != null">
+            #{record.bookTags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.a != null">
+            #{record.a,jdbcType=TINYINT},
+          </if>
+          <if test="record.expireTime != null">
+            #{record.expireTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpId != null">
+            #{record.cpId,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpName != null">
+            #{record.cpName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.tags != null">
+            #{record.tags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.classifyWhiteList != null">
+            #{record.classifyWhiteList,jdbcType=TINYINT},
+          </if>
+          <if test="record.putAdSet != null">
+            #{record.putAdSet,jdbcType=TINYINT},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    on duplicate key update 
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=BIGINT},
+          </if>
+          <if test="record.isAudio != null">
+            is_audio = #{record.isAudio,jdbcType=TINYINT},
+          </if>
+          <if test="record.bookCategoryId != null">
+            book_category_id = #{record.bookCategoryId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            name = #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.realname != null">
+            realname = #{record.realname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            title = #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.author != null">
+            author = #{record.author,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bigCover != null">
+            big_cover = #{record.bigCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.smallCover != null">
+            small_cover = #{record.smallCover,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            description = #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.idx != null">
+            idx = #{record.idx,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralNum != null">
+            referral_num = #{record.referralNum,jdbcType=TINYINT},
+          </if>
+          <if test="record.idxx != null">
+            idxx = #{record.idxx,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            state = #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.freeStime != null">
+            free_stime = #{record.freeStime,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeEtime != null">
+            free_etime = #{record.freeEtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.billingType != null">
+            billing_type = #{record.billingType,jdbcType=CHAR},
+          </if>
+          <if test="record.price != null">
+            price = #{record.price,jdbcType=INTEGER},
+          </if>
+          <if test="record.appPrice != null">
+            app_price = #{record.appPrice,jdbcType=INTEGER},
+          </if>
+          <if test="record.isFinish != null">
+            is_finish = #{record.isFinish,jdbcType=CHAR},
+          </if>
+          <if test="record.freeChapterNum != null">
+            free_chapter_num = #{record.freeChapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.wordCount != null">
+            word_count = #{record.wordCount,jdbcType=VARCHAR},
+          </if>
+          <if test="record.chapterNum != null">
+            chapter_num = #{record.chapterNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstChapterId != null">
+            first_chapter_id = #{record.firstChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.firstChapterName != null">
+            first_chapter_name = #{record.firstChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterId != null">
+            last_chapter_id = #{record.lastChapterId,jdbcType=BIGINT},
+          </if>
+          <if test="record.lastChapterName != null">
+            last_chapter_name = #{record.lastChapterName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.lastChapterUtime != null">
+            last_chapter_utime = #{record.lastChapterUtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.readNum != null">
+            read_num = #{record.readNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.articleChapterOrder != null">
+            article_chapter_order = #{record.articleChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.attentChapterOrder != null">
+            attent_chapter_order = #{record.attentChapterOrder,jdbcType=INTEGER},
+          </if>
+          <if test="record.cornerMark != null">
+            corner_mark = #{record.cornerMark,jdbcType=CHAR},
+          </if>
+          <if test="record.recommandBookId != null">
+            recommand_book_id = #{record.recommandBookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.keywords != null">
+            keywords = #{record.keywords,jdbcType=VARCHAR},
+          </if>
+          <if test="record.cansee != null">
+            cansee = #{record.cansee,jdbcType=CHAR},
+          </if>
+          <if test="record.rank != null">
+            rank = #{record.rank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRank != null">
+            check_rank = #{record.checkRank,jdbcType=TINYINT},
+          </if>
+          <if test="record.checkRemark != null">
+            check_remark = #{record.checkRemark,jdbcType=VARCHAR},
+          </if>
+          <if test="record.editorRecommand != null">
+            editor_recommand = #{record.editorRecommand,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookTags != null">
+            book_tags = #{record.bookTags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.a != null">
+            a = #{record.a,jdbcType=TINYINT},
+          </if>
+          <if test="record.expireTime != null">
+            expire_time = #{record.expireTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpId != null">
+            cp_id = #{record.cpId,jdbcType=INTEGER},
+          </if>
+          <if test="record.cpName != null">
+            cp_name = #{record.cpName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.tags != null">
+            tags = #{record.tags,jdbcType=VARCHAR},
+          </if>
+          <if test="record.classifyWhiteList != null">
+            classify_white_list = #{record.classifyWhiteList,jdbcType=TINYINT},
+          </if>
+          <if test="record.putAdSet != null">
+            put_ad_set = #{record.putAdSet,jdbcType=TINYINT},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.Book">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Aug 12 00:28:56 CST 2021.
+    -->
+    insert into book
+    (id, is_audio, book_category_id, name, realname, title, author, image, big_cover, 
+      small_cover, description, idx, referral_num, idxx, state, free_stime, free_etime, 
+      sex, billing_type, price, app_price, is_finish, free_chapter_num, word_count, chapter_num, 
+      first_chapter_id, first_chapter_name, last_chapter_id, last_chapter_name, last_chapter_utime, 
+      read_num, article_chapter_order, attent_chapter_order, corner_mark, recommand_book_id, 
+      createtime, updatetime, keywords, cansee, rank, check_rank, check_remark, editor_recommand, 
+      book_tags, a, expire_time, cp_id, cp_name, tags, classify_white_list, put_ad_set
+      )
+    values
+    (#{id,jdbcType=BIGINT}, #{isAudio,jdbcType=TINYINT}, #{bookCategoryId,jdbcType=INTEGER}, 
+      #{name,jdbcType=VARCHAR}, #{realname,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, 
+      #{author,jdbcType=VARCHAR}, #{image,jdbcType=VARCHAR}, #{bigCover,jdbcType=VARCHAR}, 
+      #{smallCover,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{idx,jdbcType=INTEGER}, 
+      #{referralNum,jdbcType=TINYINT}, #{idxx,jdbcType=INTEGER}, #{state,jdbcType=CHAR}, 
+      #{freeStime,jdbcType=INTEGER}, #{freeEtime,jdbcType=INTEGER}, #{sex,jdbcType=CHAR}, 
+      #{billingType,jdbcType=CHAR}, #{price,jdbcType=INTEGER}, #{appPrice,jdbcType=INTEGER}, 
+      #{isFinish,jdbcType=CHAR}, #{freeChapterNum,jdbcType=INTEGER}, #{wordCount,jdbcType=VARCHAR}, 
+      #{chapterNum,jdbcType=INTEGER}, #{firstChapterId,jdbcType=BIGINT}, #{firstChapterName,jdbcType=VARCHAR}, 
+      #{lastChapterId,jdbcType=BIGINT}, #{lastChapterName,jdbcType=VARCHAR}, #{lastChapterUtime,jdbcType=INTEGER}, 
+      #{readNum,jdbcType=INTEGER}, #{articleChapterOrder,jdbcType=INTEGER}, #{attentChapterOrder,jdbcType=INTEGER}, 
+      #{cornerMark,jdbcType=CHAR}, #{recommandBookId,jdbcType=BIGINT}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER}, #{keywords,jdbcType=VARCHAR}, #{cansee,jdbcType=CHAR}, 
+      #{rank,jdbcType=TINYINT}, #{checkRank,jdbcType=TINYINT}, #{checkRemark,jdbcType=VARCHAR}, 
+      #{editorRecommand,jdbcType=VARCHAR}, #{bookTags,jdbcType=VARCHAR}, #{a,jdbcType=TINYINT}, 
+      #{expireTime,jdbcType=INTEGER}, #{cpId,jdbcType=INTEGER}, #{cpName,jdbcType=VARCHAR}, 
+      #{tags,jdbcType=VARCHAR}, #{classifyWhiteList,jdbcType=TINYINT}, #{putAdSet,jdbcType=TINYINT}
+      )
+    on duplicate key update 
+    id = #{id,jdbcType=BIGINT}, 
+    is_audio = #{isAudio,jdbcType=TINYINT}, 
+    book_category_id = #{bookCategoryId,jdbcType=INTEGER}, 
+    name = #{name,jdbcType=VARCHAR}, 
+    realname = #{realname,jdbcType=VARCHAR}, 
+    title = #{title,jdbcType=VARCHAR}, 
+    author = #{author,jdbcType=VARCHAR}, 
+    image = #{image,jdbcType=VARCHAR}, 
+    big_cover = #{bigCover,jdbcType=VARCHAR}, 
+    small_cover = #{smallCover,jdbcType=VARCHAR}, 
+    description = #{description,jdbcType=VARCHAR}, 
+    idx = #{idx,jdbcType=INTEGER}, 
+    referral_num = #{referralNum,jdbcType=TINYINT}, 
+    idxx = #{idxx,jdbcType=INTEGER}, 
+    state = #{state,jdbcType=CHAR}, 
+    free_stime = #{freeStime,jdbcType=INTEGER}, 
+    free_etime = #{freeEtime,jdbcType=INTEGER}, 
+    sex = #{sex,jdbcType=CHAR}, 
+    billing_type = #{billingType,jdbcType=CHAR}, 
+    price = #{price,jdbcType=INTEGER}, 
+    app_price = #{appPrice,jdbcType=INTEGER}, 
+    is_finish = #{isFinish,jdbcType=CHAR}, 
+    free_chapter_num = #{freeChapterNum,jdbcType=INTEGER}, 
+    word_count = #{wordCount,jdbcType=VARCHAR}, 
+    chapter_num = #{chapterNum,jdbcType=INTEGER}, 
+    first_chapter_id = #{firstChapterId,jdbcType=BIGINT}, 
+    first_chapter_name = #{firstChapterName,jdbcType=VARCHAR}, 
+    last_chapter_id = #{lastChapterId,jdbcType=BIGINT}, 
+    last_chapter_name = #{lastChapterName,jdbcType=VARCHAR}, 
+    last_chapter_utime = #{lastChapterUtime,jdbcType=INTEGER}, 
+    read_num = #{readNum,jdbcType=INTEGER}, 
+    article_chapter_order = #{articleChapterOrder,jdbcType=INTEGER}, 
+    attent_chapter_order = #{attentChapterOrder,jdbcType=INTEGER}, 
+    corner_mark = #{cornerMark,jdbcType=CHAR}, 
+    recommand_book_id = #{recommandBookId,jdbcType=BIGINT}, 
+    createtime = #{createtime,jdbcType=INTEGER}, 
+    updatetime = #{updatetime,jdbcType=INTEGER}, 
+    keywords = #{keywords,jdbcType=VARCHAR}, 
+    cansee = #{cansee,jdbcType=CHAR}, 
+    rank = #{rank,jdbcType=TINYINT}, 
+    check_rank = #{checkRank,jdbcType=TINYINT}, 
+    check_remark = #{checkRemark,jdbcType=VARCHAR}, 
+    editor_recommand = #{editorRecommand,jdbcType=VARCHAR}, 
+    book_tags = #{bookTags,jdbcType=VARCHAR}, 
+    a = #{a,jdbcType=TINYINT}, 
+    expire_time = #{expireTime,jdbcType=INTEGER}, 
+    cp_id = #{cpId,jdbcType=INTEGER}, 
+    cp_name = #{cpName,jdbcType=VARCHAR}, 
+    tags = #{tags,jdbcType=VARCHAR}, 
+    classify_white_list = #{classifyWhiteList,jdbcType=TINYINT}, 
+    put_ad_set = #{putAdSet,jdbcType=TINYINT}
+  </insert>
+</mapper>

+ 648 - 0
book-dao/src/main/resources/mapper/cps/BookshelfRecommandMapper.xml

@@ -0,0 +1,648 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.BookshelfRecommandMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.BookshelfRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="book_id" jdbcType="BIGINT" property="bookId" />
+    <result column="book_name" jdbcType="VARCHAR" property="bookName" />
+    <result column="sex" jdbcType="CHAR" property="sex" />
+    <result column="status" jdbcType="CHAR" property="status" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    id, book_id, book_name, sex, status, createtime, updatetime
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.BookshelfRecommandExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from bookshelf_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="rows != null">
+      <if test="offset != null">
+        limit ${offset}, ${rows}
+      </if>
+      <if test="offset == null">
+        limit ${rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from bookshelf_recommand
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    <if test="example != null and example.rows != null">
+      <if test="example.offset != null">
+        limit ${example.offset}, ${example.rows}
+      </if>
+      <if test="example.offset == null">
+        limit ${example.rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from bookshelf_recommand
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <select id="selectByPrimaryKeySelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from bookshelf_recommand
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    delete from bookshelf_recommand
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.BookshelfRecommandExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    delete from bookshelf_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.BookshelfRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into bookshelf_recommand (id, book_id, book_name, 
+      sex, status, createtime, 
+      updatetime)
+    values (#{id,jdbcType=INTEGER}, #{bookId,jdbcType=BIGINT}, #{bookName,jdbcType=VARCHAR}, 
+      #{sex,jdbcType=CHAR}, #{status,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into bookshelf_recommand
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.bookName != null">
+            book_name,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.status != null">
+            status,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.BookshelfRecommandExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select count(*) from bookshelf_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update bookshelf_recommand
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            book_name = #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update bookshelf_recommand
+    set id = #{record.id,jdbcType=INTEGER},
+      book_id = #{record.bookId,jdbcType=BIGINT},
+      book_name = #{record.bookName,jdbcType=VARCHAR},
+      sex = #{record.sex,jdbcType=CHAR},
+      status = #{record.status,jdbcType=CHAR},
+      createtime = #{record.createtime,jdbcType=INTEGER},
+      updatetime = #{record.updatetime,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update bookshelf_recommand
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            book_name = #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.BookshelfRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update bookshelf_recommand
+    set book_id = #{bookId,jdbcType=BIGINT},
+      book_name = #{bookName,jdbcType=VARCHAR},
+      sex = #{sex,jdbcType=CHAR},
+      status = #{status,jdbcType=CHAR},
+      createtime = #{createtime,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.BookshelfRecommandExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from bookshelf_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    limit 1
+  </select>
+  <select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from bookshelf_recommand
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    limit 1
+  </select>
+  <insert id="batchInsert" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into bookshelf_recommand
+    (id, book_id, book_name, sex, status, createtime, updatetime)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=INTEGER}, #{item.bookId,jdbcType=BIGINT}, #{item.bookName,jdbcType=VARCHAR}, 
+        #{item.sex,jdbcType=CHAR}, #{item.status,jdbcType=CHAR}, #{item.createtime,jdbcType=INTEGER}, 
+        #{item.updatetime,jdbcType=INTEGER})
+    </foreach>
+  </insert>
+  <insert id="batchInsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into bookshelf_recommand (
+    <foreach collection="selective" item="column" separator=",">
+      ${column.escapedColumnName}
+    </foreach>
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      <foreach collection="selective" item="column" separator=",">
+        <if test="'id'.toString() == column.value">
+          #{item.id,jdbcType=INTEGER}
+        </if>
+        <if test="'book_id'.toString() == column.value">
+          #{item.bookId,jdbcType=BIGINT}
+        </if>
+        <if test="'book_name'.toString() == column.value">
+          #{item.bookName,jdbcType=VARCHAR}
+        </if>
+        <if test="'sex'.toString() == column.value">
+          #{item.sex,jdbcType=CHAR}
+        </if>
+        <if test="'status'.toString() == column.value">
+          #{item.status,jdbcType=CHAR}
+        </if>
+        <if test="'createtime'.toString() == column.value">
+          #{item.createtime,jdbcType=INTEGER}
+        </if>
+        <if test="'updatetime'.toString() == column.value">
+          #{item.updatetime,jdbcType=INTEGER}
+        </if>
+      </foreach>
+      )
+    </foreach>
+  </insert>
+  <insert id="upsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into bookshelf_recommand
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.bookName != null">
+            book_name,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.status != null">
+            status,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    on duplicate key update 
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            book_name = #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.BookshelfRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into bookshelf_recommand
+    (id, book_id, book_name, sex, status, createtime, updatetime)
+    values
+    (#{id,jdbcType=INTEGER}, #{bookId,jdbcType=BIGINT}, #{bookName,jdbcType=VARCHAR}, 
+      #{sex,jdbcType=CHAR}, #{status,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+    on duplicate key update 
+    id = #{id,jdbcType=INTEGER}, 
+    book_id = #{bookId,jdbcType=BIGINT}, 
+    book_name = #{bookName,jdbcType=VARCHAR}, 
+    sex = #{sex,jdbcType=CHAR}, 
+    status = #{status,jdbcType=CHAR}, 
+    createtime = #{createtime,jdbcType=INTEGER}, 
+    updatetime = #{updatetime,jdbcType=INTEGER}
+  </insert>
+</mapper>

+ 676 - 0
book-dao/src/main/resources/mapper/cps/ManageBlockMapper.xml

@@ -0,0 +1,676 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.ManageBlockMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.ManageBlock">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="page_id" jdbcType="INTEGER" property="pageId" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="second_name" jdbcType="VARCHAR" property="secondName" />
+    <result column="type" jdbcType="CHAR" property="type" />
+    <result column="weigh" jdbcType="INTEGER" property="weigh" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    id, page_id, name, second_name, type, weigh, createtime, updatetime
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from manage_block
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="rows != null">
+      <if test="offset != null">
+        limit ${offset}, ${rows}
+      </if>
+      <if test="offset == null">
+        limit ${rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from manage_block
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    <if test="example != null and example.rows != null">
+      <if test="example.offset != null">
+        limit ${example.offset}, ${example.rows}
+      </if>
+      <if test="example.offset == null">
+        limit ${example.rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from manage_block
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <select id="selectByPrimaryKeySelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from manage_block
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    delete from manage_block
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    delete from manage_block
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.ManageBlock">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block (id, page_id, name, 
+      second_name, type, weigh, 
+      createtime, updatetime)
+    values (#{id,jdbcType=INTEGER}, #{pageId,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, 
+      #{secondName,jdbcType=VARCHAR}, #{type,jdbcType=CHAR}, #{weigh,jdbcType=INTEGER}, 
+      #{createtime,jdbcType=INTEGER}, #{updatetime,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.pageId != null">
+            page_id,
+          </if>
+          <if test="record.name != null">
+            name,
+          </if>
+          <if test="record.secondName != null">
+            second_name,
+          </if>
+          <if test="record.type != null">
+            type,
+          </if>
+          <if test="record.weigh != null">
+            weigh,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.pageId != null">
+            #{record.pageId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.secondName != null">
+            #{record.secondName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.type != null">
+            #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select count(*) from manage_block
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    update manage_block
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.pageId != null">
+            page_id = #{record.pageId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            name = #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.secondName != null">
+            second_name = #{record.secondName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.type != null">
+            type = #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    update manage_block
+    set id = #{record.id,jdbcType=INTEGER},
+      page_id = #{record.pageId,jdbcType=INTEGER},
+      name = #{record.name,jdbcType=VARCHAR},
+      second_name = #{record.secondName,jdbcType=VARCHAR},
+      type = #{record.type,jdbcType=CHAR},
+      weigh = #{record.weigh,jdbcType=INTEGER},
+      createtime = #{record.createtime,jdbcType=INTEGER},
+      updatetime = #{record.updatetime,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    update manage_block
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.pageId != null">
+            page_id = #{record.pageId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            name = #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.secondName != null">
+            second_name = #{record.secondName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.type != null">
+            type = #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.ManageBlock">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    update manage_block
+    set page_id = #{pageId,jdbcType=INTEGER},
+      name = #{name,jdbcType=VARCHAR},
+      second_name = #{secondName,jdbcType=VARCHAR},
+      type = #{type,jdbcType=CHAR},
+      weigh = #{weigh,jdbcType=INTEGER},
+      createtime = #{createtime,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from manage_block
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    limit 1
+  </select>
+  <select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from manage_block
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    limit 1
+  </select>
+  <insert id="batchInsert" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block
+    (id, page_id, name, second_name, type, weigh, createtime, updatetime)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=INTEGER}, #{item.pageId,jdbcType=INTEGER}, #{item.name,jdbcType=VARCHAR}, 
+        #{item.secondName,jdbcType=VARCHAR}, #{item.type,jdbcType=CHAR}, #{item.weigh,jdbcType=INTEGER}, 
+        #{item.createtime,jdbcType=INTEGER}, #{item.updatetime,jdbcType=INTEGER})
+    </foreach>
+  </insert>
+  <insert id="batchInsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block (
+    <foreach collection="selective" item="column" separator=",">
+      ${column.escapedColumnName}
+    </foreach>
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      <foreach collection="selective" item="column" separator=",">
+        <if test="'id'.toString() == column.value">
+          #{item.id,jdbcType=INTEGER}
+        </if>
+        <if test="'page_id'.toString() == column.value">
+          #{item.pageId,jdbcType=INTEGER}
+        </if>
+        <if test="'name'.toString() == column.value">
+          #{item.name,jdbcType=VARCHAR}
+        </if>
+        <if test="'second_name'.toString() == column.value">
+          #{item.secondName,jdbcType=VARCHAR}
+        </if>
+        <if test="'type'.toString() == column.value">
+          #{item.type,jdbcType=CHAR}
+        </if>
+        <if test="'weigh'.toString() == column.value">
+          #{item.weigh,jdbcType=INTEGER}
+        </if>
+        <if test="'createtime'.toString() == column.value">
+          #{item.createtime,jdbcType=INTEGER}
+        </if>
+        <if test="'updatetime'.toString() == column.value">
+          #{item.updatetime,jdbcType=INTEGER}
+        </if>
+      </foreach>
+      )
+    </foreach>
+  </insert>
+  <insert id="upsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.pageId != null">
+            page_id,
+          </if>
+          <if test="record.name != null">
+            name,
+          </if>
+          <if test="record.secondName != null">
+            second_name,
+          </if>
+          <if test="record.type != null">
+            type,
+          </if>
+          <if test="record.weigh != null">
+            weigh,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.pageId != null">
+            #{record.pageId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.secondName != null">
+            #{record.secondName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.type != null">
+            #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    on duplicate key update 
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.pageId != null">
+            page_id = #{record.pageId,jdbcType=INTEGER},
+          </if>
+          <if test="record.name != null">
+            name = #{record.name,jdbcType=VARCHAR},
+          </if>
+          <if test="record.secondName != null">
+            second_name = #{record.secondName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.type != null">
+            type = #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.ManageBlock">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block
+    (id, page_id, name, second_name, type, weigh, createtime, updatetime)
+    values
+    (#{id,jdbcType=INTEGER}, #{pageId,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{secondName,jdbcType=VARCHAR}, 
+      #{type,jdbcType=CHAR}, #{weigh,jdbcType=INTEGER}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+    on duplicate key update 
+    id = #{id,jdbcType=INTEGER}, 
+    page_id = #{pageId,jdbcType=INTEGER}, 
+    name = #{name,jdbcType=VARCHAR}, 
+    second_name = #{secondName,jdbcType=VARCHAR}, 
+    type = #{type,jdbcType=CHAR}, 
+    weigh = #{weigh,jdbcType=INTEGER}, 
+    createtime = #{createtime,jdbcType=INTEGER}, 
+    updatetime = #{updatetime,jdbcType=INTEGER}
+  </insert>
+</mapper>

+ 42 - 0
book-dao/src/main/resources/mapper/cps/ManageBlockResource2Mapper.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.ManageBlockResource2Mapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.VO.ManageBlockResourceRes">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="block_id" jdbcType="INTEGER" property="blockId" />
+    <result column="type" jdbcType="CHAR" property="type" />
+    <result column="image" jdbcType="VARCHAR" property="image" />
+    <result column="book_id" jdbcType="BIGINT" property="bookId" />
+    <result column="url" jdbcType="VARCHAR" property="url" />
+    <result column="weigh" jdbcType="INTEGER" property="weigh" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+    <result column="special_id" jdbcType="INTEGER" property="specialId" />
+    <result column="bookName" jdbcType="VARCHAR" property="bookName" />
+    <result column="bookDescription" jdbcType="VARCHAR" property="bookDescription" />
+    <result column="isFinish" jdbcType="VARCHAR" property="isFinish" />
+  </resultMap>
+  <select id="getBooks" resultMap="BaseResultMap">
+    SELECT
+      m.*,
+      b.NAME AS bookName,
+      b.description AS bookDescription,
+      b.is_finish AS isFinish
+    FROM
+      manage_block_resource m
+        LEFT JOIN book b ON m.book_id = b.id
+    WHERE
+      m.block_id IN (
+    <foreach collection="blockIds" item="blockId" index="index" separator="," >
+      #{blockId,jdbcType=INTEGER}
+    </foreach>
+    )
+  </select>
+
+
+</mapper>

+ 738 - 0
book-dao/src/main/resources/mapper/cps/ManageBlockResourceMapper.xml

@@ -0,0 +1,738 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.ManageBlockResourceMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.ManageBlockResource">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="block_id" jdbcType="INTEGER" property="blockId" />
+    <result column="type" jdbcType="CHAR" property="type" />
+    <result column="image" jdbcType="VARCHAR" property="image" />
+    <result column="book_id" jdbcType="BIGINT" property="bookId" />
+    <result column="url" jdbcType="VARCHAR" property="url" />
+    <result column="weigh" jdbcType="INTEGER" property="weigh" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+    <result column="special_id" jdbcType="INTEGER" property="specialId" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    id, block_id, type, image, book_id, url, weigh, createtime, updatetime, special_id
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockResourceExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from manage_block_resource
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="rows != null">
+      <if test="offset != null">
+        limit ${offset}, ${rows}
+      </if>
+      <if test="offset == null">
+        limit ${rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from manage_block_resource
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    <if test="example != null and example.rows != null">
+      <if test="example.offset != null">
+        limit ${example.offset}, ${example.rows}
+      </if>
+      <if test="example.offset == null">
+        limit ${example.rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from manage_block_resource
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <select id="selectByPrimaryKeySelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from manage_block_resource
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    delete from manage_block_resource
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockResourceExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    delete from manage_block_resource
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.ManageBlockResource">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block_resource (id, block_id, type, 
+      image, book_id, url, 
+      weigh, createtime, updatetime, 
+      special_id)
+    values (#{id,jdbcType=INTEGER}, #{blockId,jdbcType=INTEGER}, #{type,jdbcType=CHAR}, 
+      #{image,jdbcType=VARCHAR}, #{bookId,jdbcType=BIGINT}, #{url,jdbcType=VARCHAR}, 
+      #{weigh,jdbcType=INTEGER}, #{createtime,jdbcType=INTEGER}, #{updatetime,jdbcType=INTEGER}, 
+      #{specialId,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block_resource
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.blockId != null">
+            block_id,
+          </if>
+          <if test="record.type != null">
+            type,
+          </if>
+          <if test="record.image != null">
+            image,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.url != null">
+            url,
+          </if>
+          <if test="record.weigh != null">
+            weigh,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+          <if test="record.specialId != null">
+            special_id,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.blockId != null">
+            #{record.blockId,jdbcType=INTEGER},
+          </if>
+          <if test="record.type != null">
+            #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.image != null">
+            #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.url != null">
+            #{record.url,jdbcType=VARCHAR},
+          </if>
+          <if test="record.weigh != null">
+            #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.specialId != null">
+            #{record.specialId,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockResourceExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select count(*) from manage_block_resource
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    update manage_block_resource
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.blockId != null">
+            block_id = #{record.blockId,jdbcType=INTEGER},
+          </if>
+          <if test="record.type != null">
+            type = #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.url != null">
+            url = #{record.url,jdbcType=VARCHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.specialId != null">
+            special_id = #{record.specialId,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    update manage_block_resource
+    set id = #{record.id,jdbcType=INTEGER},
+      block_id = #{record.blockId,jdbcType=INTEGER},
+      type = #{record.type,jdbcType=CHAR},
+      image = #{record.image,jdbcType=VARCHAR},
+      book_id = #{record.bookId,jdbcType=BIGINT},
+      url = #{record.url,jdbcType=VARCHAR},
+      weigh = #{record.weigh,jdbcType=INTEGER},
+      createtime = #{record.createtime,jdbcType=INTEGER},
+      updatetime = #{record.updatetime,jdbcType=INTEGER},
+      special_id = #{record.specialId,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    update manage_block_resource
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.blockId != null">
+            block_id = #{record.blockId,jdbcType=INTEGER},
+          </if>
+          <if test="record.type != null">
+            type = #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.url != null">
+            url = #{record.url,jdbcType=VARCHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.specialId != null">
+            special_id = #{record.specialId,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.ManageBlockResource">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    update manage_block_resource
+    set block_id = #{blockId,jdbcType=INTEGER},
+      type = #{type,jdbcType=CHAR},
+      image = #{image,jdbcType=VARCHAR},
+      book_id = #{bookId,jdbcType=BIGINT},
+      url = #{url,jdbcType=VARCHAR},
+      weigh = #{weigh,jdbcType=INTEGER},
+      createtime = #{createtime,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=INTEGER},
+      special_id = #{specialId,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockResourceExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from manage_block_resource
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    limit 1
+  </select>
+  <select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from manage_block_resource
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    limit 1
+  </select>
+  <insert id="batchInsert" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block_resource
+    (id, block_id, type, image, book_id, url, weigh, createtime, updatetime, special_id
+      )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=INTEGER}, #{item.blockId,jdbcType=INTEGER}, #{item.type,jdbcType=CHAR}, 
+        #{item.image,jdbcType=VARCHAR}, #{item.bookId,jdbcType=BIGINT}, #{item.url,jdbcType=VARCHAR}, 
+        #{item.weigh,jdbcType=INTEGER}, #{item.createtime,jdbcType=INTEGER}, #{item.updatetime,jdbcType=INTEGER}, 
+        #{item.specialId,jdbcType=INTEGER})
+    </foreach>
+  </insert>
+  <insert id="batchInsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block_resource (
+    <foreach collection="selective" item="column" separator=",">
+      ${column.escapedColumnName}
+    </foreach>
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      <foreach collection="selective" item="column" separator=",">
+        <if test="'id'.toString() == column.value">
+          #{item.id,jdbcType=INTEGER}
+        </if>
+        <if test="'block_id'.toString() == column.value">
+          #{item.blockId,jdbcType=INTEGER}
+        </if>
+        <if test="'type'.toString() == column.value">
+          #{item.type,jdbcType=CHAR}
+        </if>
+        <if test="'image'.toString() == column.value">
+          #{item.image,jdbcType=VARCHAR}
+        </if>
+        <if test="'book_id'.toString() == column.value">
+          #{item.bookId,jdbcType=BIGINT}
+        </if>
+        <if test="'url'.toString() == column.value">
+          #{item.url,jdbcType=VARCHAR}
+        </if>
+        <if test="'weigh'.toString() == column.value">
+          #{item.weigh,jdbcType=INTEGER}
+        </if>
+        <if test="'createtime'.toString() == column.value">
+          #{item.createtime,jdbcType=INTEGER}
+        </if>
+        <if test="'updatetime'.toString() == column.value">
+          #{item.updatetime,jdbcType=INTEGER}
+        </if>
+        <if test="'special_id'.toString() == column.value">
+          #{item.specialId,jdbcType=INTEGER}
+        </if>
+      </foreach>
+      )
+    </foreach>
+  </insert>
+  <insert id="upsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block_resource
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.blockId != null">
+            block_id,
+          </if>
+          <if test="record.type != null">
+            type,
+          </if>
+          <if test="record.image != null">
+            image,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.url != null">
+            url,
+          </if>
+          <if test="record.weigh != null">
+            weigh,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+          <if test="record.specialId != null">
+            special_id,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.blockId != null">
+            #{record.blockId,jdbcType=INTEGER},
+          </if>
+          <if test="record.type != null">
+            #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.image != null">
+            #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.url != null">
+            #{record.url,jdbcType=VARCHAR},
+          </if>
+          <if test="record.weigh != null">
+            #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.specialId != null">
+            #{record.specialId,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    on duplicate key update 
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.blockId != null">
+            block_id = #{record.blockId,jdbcType=INTEGER},
+          </if>
+          <if test="record.type != null">
+            type = #{record.type,jdbcType=CHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.url != null">
+            url = #{record.url,jdbcType=VARCHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+          <if test="record.specialId != null">
+            special_id = #{record.specialId,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.ManageBlockResource">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sun Aug 15 14:43:42 CST 2021.
+    -->
+    insert into manage_block_resource
+    (id, block_id, type, image, book_id, url, weigh, createtime, updatetime, special_id
+      )
+    values
+    (#{id,jdbcType=INTEGER}, #{blockId,jdbcType=INTEGER}, #{type,jdbcType=CHAR}, #{image,jdbcType=VARCHAR}, 
+      #{bookId,jdbcType=BIGINT}, #{url,jdbcType=VARCHAR}, #{weigh,jdbcType=INTEGER}, 
+      #{createtime,jdbcType=INTEGER}, #{updatetime,jdbcType=INTEGER}, #{specialId,jdbcType=INTEGER}
+      )
+    on duplicate key update 
+    id = #{id,jdbcType=INTEGER}, 
+    block_id = #{blockId,jdbcType=INTEGER}, 
+    type = #{type,jdbcType=CHAR}, 
+    image = #{image,jdbcType=VARCHAR}, 
+    book_id = #{bookId,jdbcType=BIGINT}, 
+    url = #{url,jdbcType=VARCHAR}, 
+    weigh = #{weigh,jdbcType=INTEGER}, 
+    createtime = #{createtime,jdbcType=INTEGER}, 
+    updatetime = #{updatetime,jdbcType=INTEGER}, 
+    special_id = #{specialId,jdbcType=INTEGER}
+  </insert>
+</mapper>

+ 648 - 0
book-dao/src/main/resources/mapper/cps/ReturnRecommandMapper.xml

@@ -0,0 +1,648 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.ReturnRecommandMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.ReturnRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="book_id" jdbcType="BIGINT" property="bookId" />
+    <result column="book_name" jdbcType="VARCHAR" property="bookName" />
+    <result column="sex" jdbcType="CHAR" property="sex" />
+    <result column="status" jdbcType="CHAR" property="status" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    id, book_id, book_name, sex, status, createtime, updatetime
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.ReturnRecommandExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from return_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="rows != null">
+      <if test="offset != null">
+        limit ${offset}, ${rows}
+      </if>
+      <if test="offset == null">
+        limit ${rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from return_recommand
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    <if test="example != null and example.rows != null">
+      <if test="example.offset != null">
+        limit ${example.offset}, ${example.rows}
+      </if>
+      <if test="example.offset == null">
+        limit ${example.rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from return_recommand
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <select id="selectByPrimaryKeySelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from return_recommand
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    delete from return_recommand
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.ReturnRecommandExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    delete from return_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.ReturnRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into return_recommand (id, book_id, book_name, 
+      sex, status, createtime, 
+      updatetime)
+    values (#{id,jdbcType=INTEGER}, #{bookId,jdbcType=BIGINT}, #{bookName,jdbcType=VARCHAR}, 
+      #{sex,jdbcType=CHAR}, #{status,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into return_recommand
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.bookName != null">
+            book_name,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.status != null">
+            status,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.ReturnRecommandExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select count(*) from return_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update return_recommand
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            book_name = #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update return_recommand
+    set id = #{record.id,jdbcType=INTEGER},
+      book_id = #{record.bookId,jdbcType=BIGINT},
+      book_name = #{record.bookName,jdbcType=VARCHAR},
+      sex = #{record.sex,jdbcType=CHAR},
+      status = #{record.status,jdbcType=CHAR},
+      createtime = #{record.createtime,jdbcType=INTEGER},
+      updatetime = #{record.updatetime,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update return_recommand
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            book_name = #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.ReturnRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update return_recommand
+    set book_id = #{bookId,jdbcType=BIGINT},
+      book_name = #{bookName,jdbcType=VARCHAR},
+      sex = #{sex,jdbcType=CHAR},
+      status = #{status,jdbcType=CHAR},
+      createtime = #{createtime,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.ReturnRecommandExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from return_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    limit 1
+  </select>
+  <select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from return_recommand
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    limit 1
+  </select>
+  <insert id="batchInsert" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into return_recommand
+    (id, book_id, book_name, sex, status, createtime, updatetime)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=INTEGER}, #{item.bookId,jdbcType=BIGINT}, #{item.bookName,jdbcType=VARCHAR}, 
+        #{item.sex,jdbcType=CHAR}, #{item.status,jdbcType=CHAR}, #{item.createtime,jdbcType=INTEGER}, 
+        #{item.updatetime,jdbcType=INTEGER})
+    </foreach>
+  </insert>
+  <insert id="batchInsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into return_recommand (
+    <foreach collection="selective" item="column" separator=",">
+      ${column.escapedColumnName}
+    </foreach>
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      <foreach collection="selective" item="column" separator=",">
+        <if test="'id'.toString() == column.value">
+          #{item.id,jdbcType=INTEGER}
+        </if>
+        <if test="'book_id'.toString() == column.value">
+          #{item.bookId,jdbcType=BIGINT}
+        </if>
+        <if test="'book_name'.toString() == column.value">
+          #{item.bookName,jdbcType=VARCHAR}
+        </if>
+        <if test="'sex'.toString() == column.value">
+          #{item.sex,jdbcType=CHAR}
+        </if>
+        <if test="'status'.toString() == column.value">
+          #{item.status,jdbcType=CHAR}
+        </if>
+        <if test="'createtime'.toString() == column.value">
+          #{item.createtime,jdbcType=INTEGER}
+        </if>
+        <if test="'updatetime'.toString() == column.value">
+          #{item.updatetime,jdbcType=INTEGER}
+        </if>
+      </foreach>
+      )
+    </foreach>
+  </insert>
+  <insert id="upsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into return_recommand
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.bookName != null">
+            book_name,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.status != null">
+            status,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    on duplicate key update 
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            book_name = #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.ReturnRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into return_recommand
+    (id, book_id, book_name, sex, status, createtime, updatetime)
+    values
+    (#{id,jdbcType=INTEGER}, #{bookId,jdbcType=BIGINT}, #{bookName,jdbcType=VARCHAR}, 
+      #{sex,jdbcType=CHAR}, #{status,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+    on duplicate key update 
+    id = #{id,jdbcType=INTEGER}, 
+    book_id = #{bookId,jdbcType=BIGINT}, 
+    book_name = #{bookName,jdbcType=VARCHAR}, 
+    sex = #{sex,jdbcType=CHAR}, 
+    status = #{status,jdbcType=CHAR}, 
+    createtime = #{createtime,jdbcType=INTEGER}, 
+    updatetime = #{updatetime,jdbcType=INTEGER}
+  </insert>
+</mapper>

+ 648 - 0
book-dao/src/main/resources/mapper/cps/SearchKeywordMapper.xml

@@ -0,0 +1,648 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.SearchKeywordMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.SearchKeyword">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="keyword" jdbcType="VARCHAR" property="keyword" />
+    <result column="book_id" jdbcType="BIGINT" property="bookId" />
+    <result column="sex" jdbcType="CHAR" property="sex" />
+    <result column="weigh" jdbcType="INTEGER" property="weigh" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    id, keyword, book_id, sex, weigh, createtime, updatetime
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.SearchKeywordExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from search_keyword
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="rows != null">
+      <if test="offset != null">
+        limit ${offset}, ${rows}
+      </if>
+      <if test="offset == null">
+        limit ${rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from search_keyword
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    <if test="example != null and example.rows != null">
+      <if test="example.offset != null">
+        limit ${example.offset}, ${example.rows}
+      </if>
+      <if test="example.offset == null">
+        limit ${example.rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from search_keyword
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <select id="selectByPrimaryKeySelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from search_keyword
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    delete from search_keyword
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.SearchKeywordExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    delete from search_keyword
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.SearchKeyword">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    insert into search_keyword (id, keyword, book_id, 
+      sex, weigh, createtime, 
+      updatetime)
+    values (#{id,jdbcType=INTEGER}, #{keyword,jdbcType=VARCHAR}, #{bookId,jdbcType=BIGINT}, 
+      #{sex,jdbcType=CHAR}, #{weigh,jdbcType=INTEGER}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    insert into search_keyword
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.keyword != null">
+            keyword,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.weigh != null">
+            weigh,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.keyword != null">
+            #{record.keyword,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.SearchKeywordExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    select count(*) from search_keyword
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    update search_keyword
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.keyword != null">
+            keyword = #{record.keyword,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    update search_keyword
+    set id = #{record.id,jdbcType=INTEGER},
+      keyword = #{record.keyword,jdbcType=VARCHAR},
+      book_id = #{record.bookId,jdbcType=BIGINT},
+      sex = #{record.sex,jdbcType=CHAR},
+      weigh = #{record.weigh,jdbcType=INTEGER},
+      createtime = #{record.createtime,jdbcType=INTEGER},
+      updatetime = #{record.updatetime,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    update search_keyword
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.keyword != null">
+            keyword = #{record.keyword,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.SearchKeyword">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    update search_keyword
+    set keyword = #{keyword,jdbcType=VARCHAR},
+      book_id = #{bookId,jdbcType=BIGINT},
+      sex = #{sex,jdbcType=CHAR},
+      weigh = #{weigh,jdbcType=INTEGER},
+      createtime = #{createtime,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.SearchKeywordExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from search_keyword
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    limit 1
+  </select>
+  <select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from search_keyword
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    limit 1
+  </select>
+  <insert id="batchInsert" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    insert into search_keyword
+    (id, keyword, book_id, sex, weigh, createtime, updatetime)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=INTEGER}, #{item.keyword,jdbcType=VARCHAR}, #{item.bookId,jdbcType=BIGINT}, 
+        #{item.sex,jdbcType=CHAR}, #{item.weigh,jdbcType=INTEGER}, #{item.createtime,jdbcType=INTEGER}, 
+        #{item.updatetime,jdbcType=INTEGER})
+    </foreach>
+  </insert>
+  <insert id="batchInsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    insert into search_keyword (
+    <foreach collection="selective" item="column" separator=",">
+      ${column.escapedColumnName}
+    </foreach>
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      <foreach collection="selective" item="column" separator=",">
+        <if test="'id'.toString() == column.value">
+          #{item.id,jdbcType=INTEGER}
+        </if>
+        <if test="'keyword'.toString() == column.value">
+          #{item.keyword,jdbcType=VARCHAR}
+        </if>
+        <if test="'book_id'.toString() == column.value">
+          #{item.bookId,jdbcType=BIGINT}
+        </if>
+        <if test="'sex'.toString() == column.value">
+          #{item.sex,jdbcType=CHAR}
+        </if>
+        <if test="'weigh'.toString() == column.value">
+          #{item.weigh,jdbcType=INTEGER}
+        </if>
+        <if test="'createtime'.toString() == column.value">
+          #{item.createtime,jdbcType=INTEGER}
+        </if>
+        <if test="'updatetime'.toString() == column.value">
+          #{item.updatetime,jdbcType=INTEGER}
+        </if>
+      </foreach>
+      )
+    </foreach>
+  </insert>
+  <insert id="upsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    insert into search_keyword
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.keyword != null">
+            keyword,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.weigh != null">
+            weigh,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.keyword != null">
+            #{record.keyword,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    on duplicate key update 
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.keyword != null">
+            keyword = #{record.keyword,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.weigh != null">
+            weigh = #{record.weigh,jdbcType=INTEGER},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.SearchKeyword">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:58:15 CST 2021.
+    -->
+    insert into search_keyword
+    (id, keyword, book_id, sex, weigh, createtime, updatetime)
+    values
+    (#{id,jdbcType=INTEGER}, #{keyword,jdbcType=VARCHAR}, #{bookId,jdbcType=BIGINT}, 
+      #{sex,jdbcType=CHAR}, #{weigh,jdbcType=INTEGER}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+    on duplicate key update 
+    id = #{id,jdbcType=INTEGER}, 
+    keyword = #{keyword,jdbcType=VARCHAR}, 
+    book_id = #{bookId,jdbcType=BIGINT}, 
+    sex = #{sex,jdbcType=CHAR}, 
+    weigh = #{weigh,jdbcType=INTEGER}, 
+    createtime = #{createtime,jdbcType=INTEGER}, 
+    updatetime = #{updatetime,jdbcType=INTEGER}
+  </insert>
+</mapper>

+ 767 - 0
book-dao/src/main/resources/mapper/cps/SmartRecommandMapper.xml

@@ -0,0 +1,767 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.SmartRecommandMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.SmartRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="book_id" jdbcType="BIGINT" property="bookId" />
+    <result column="book_name" jdbcType="VARCHAR" property="bookName" />
+    <result column="title" jdbcType="VARCHAR" property="title" />
+    <result column="description" jdbcType="VARCHAR" property="description" />
+    <result column="image" jdbcType="VARCHAR" property="image" />
+    <result column="sex" jdbcType="CHAR" property="sex" />
+    <result column="status" jdbcType="CHAR" property="status" />
+    <result column="location" jdbcType="CHAR" property="location" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    id, book_id, book_name, title, description, image, sex, status, location, createtime, 
+    updatetime
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.SmartRecommandExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from smart_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="rows != null">
+      <if test="offset != null">
+        limit ${offset}, ${rows}
+      </if>
+      <if test="offset == null">
+        limit ${rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from smart_recommand
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    <if test="example != null and example.rows != null">
+      <if test="example.offset != null">
+        limit ${example.offset}, ${example.rows}
+      </if>
+      <if test="example.offset == null">
+        limit ${example.rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from smart_recommand
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <select id="selectByPrimaryKeySelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from smart_recommand
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    delete from smart_recommand
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.SmartRecommandExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    delete from smart_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.SmartRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into smart_recommand (id, book_id, book_name, 
+      title, description, image, 
+      sex, status, location, createtime, 
+      updatetime)
+    values (#{id,jdbcType=INTEGER}, #{bookId,jdbcType=BIGINT}, #{bookName,jdbcType=VARCHAR}, 
+      #{title,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{image,jdbcType=VARCHAR}, 
+      #{sex,jdbcType=CHAR}, #{status,jdbcType=CHAR}, #{location,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into smart_recommand
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.bookName != null">
+            book_name,
+          </if>
+          <if test="record.title != null">
+            title,
+          </if>
+          <if test="record.description != null">
+            description,
+          </if>
+          <if test="record.image != null">
+            image,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.status != null">
+            status,
+          </if>
+          <if test="record.location != null">
+            location,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.location != null">
+            #{record.location,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.SmartRecommandExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select count(*) from smart_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update smart_recommand
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            book_name = #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            title = #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            description = #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.location != null">
+            location = #{record.location,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update smart_recommand
+    set id = #{record.id,jdbcType=INTEGER},
+      book_id = #{record.bookId,jdbcType=BIGINT},
+      book_name = #{record.bookName,jdbcType=VARCHAR},
+      title = #{record.title,jdbcType=VARCHAR},
+      description = #{record.description,jdbcType=VARCHAR},
+      image = #{record.image,jdbcType=VARCHAR},
+      sex = #{record.sex,jdbcType=CHAR},
+      status = #{record.status,jdbcType=CHAR},
+      location = #{record.location,jdbcType=CHAR},
+      createtime = #{record.createtime,jdbcType=INTEGER},
+      updatetime = #{record.updatetime,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update smart_recommand
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            book_name = #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            title = #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            description = #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.location != null">
+            location = #{record.location,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.SmartRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    update smart_recommand
+    set book_id = #{bookId,jdbcType=BIGINT},
+      book_name = #{bookName,jdbcType=VARCHAR},
+      title = #{title,jdbcType=VARCHAR},
+      description = #{description,jdbcType=VARCHAR},
+      image = #{image,jdbcType=VARCHAR},
+      sex = #{sex,jdbcType=CHAR},
+      status = #{status,jdbcType=CHAR},
+      location = #{location,jdbcType=CHAR},
+      createtime = #{createtime,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.SmartRecommandExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from smart_recommand
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    limit 1
+  </select>
+  <select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from smart_recommand
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    limit 1
+  </select>
+  <insert id="batchInsert" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into smart_recommand
+    (id, book_id, book_name, title, description, image, sex, status, location, createtime, 
+      updatetime)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=INTEGER}, #{item.bookId,jdbcType=BIGINT}, #{item.bookName,jdbcType=VARCHAR}, 
+        #{item.title,jdbcType=VARCHAR}, #{item.description,jdbcType=VARCHAR}, #{item.image,jdbcType=VARCHAR}, 
+        #{item.sex,jdbcType=CHAR}, #{item.status,jdbcType=CHAR}, #{item.location,jdbcType=CHAR}, 
+        #{item.createtime,jdbcType=INTEGER}, #{item.updatetime,jdbcType=INTEGER})
+    </foreach>
+  </insert>
+  <insert id="batchInsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into smart_recommand (
+    <foreach collection="selective" item="column" separator=",">
+      ${column.escapedColumnName}
+    </foreach>
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      <foreach collection="selective" item="column" separator=",">
+        <if test="'id'.toString() == column.value">
+          #{item.id,jdbcType=INTEGER}
+        </if>
+        <if test="'book_id'.toString() == column.value">
+          #{item.bookId,jdbcType=BIGINT}
+        </if>
+        <if test="'book_name'.toString() == column.value">
+          #{item.bookName,jdbcType=VARCHAR}
+        </if>
+        <if test="'title'.toString() == column.value">
+          #{item.title,jdbcType=VARCHAR}
+        </if>
+        <if test="'description'.toString() == column.value">
+          #{item.description,jdbcType=VARCHAR}
+        </if>
+        <if test="'image'.toString() == column.value">
+          #{item.image,jdbcType=VARCHAR}
+        </if>
+        <if test="'sex'.toString() == column.value">
+          #{item.sex,jdbcType=CHAR}
+        </if>
+        <if test="'status'.toString() == column.value">
+          #{item.status,jdbcType=CHAR}
+        </if>
+        <if test="'location'.toString() == column.value">
+          #{item.location,jdbcType=CHAR}
+        </if>
+        <if test="'createtime'.toString() == column.value">
+          #{item.createtime,jdbcType=INTEGER}
+        </if>
+        <if test="'updatetime'.toString() == column.value">
+          #{item.updatetime,jdbcType=INTEGER}
+        </if>
+      </foreach>
+      )
+    </foreach>
+  </insert>
+  <insert id="upsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into smart_recommand
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.bookId != null">
+            book_id,
+          </if>
+          <if test="record.bookName != null">
+            book_name,
+          </if>
+          <if test="record.title != null">
+            title,
+          </if>
+          <if test="record.description != null">
+            description,
+          </if>
+          <if test="record.image != null">
+            image,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.status != null">
+            status,
+          </if>
+          <if test="record.location != null">
+            location,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.location != null">
+            #{record.location,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    on duplicate key update 
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookId != null">
+            book_id = #{record.bookId,jdbcType=BIGINT},
+          </if>
+          <if test="record.bookName != null">
+            book_name = #{record.bookName,jdbcType=VARCHAR},
+          </if>
+          <if test="record.title != null">
+            title = #{record.title,jdbcType=VARCHAR},
+          </if>
+          <if test="record.description != null">
+            description = #{record.description,jdbcType=VARCHAR},
+          </if>
+          <if test="record.image != null">
+            image = #{record.image,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.status != null">
+            status = #{record.status,jdbcType=CHAR},
+          </if>
+          <if test="record.location != null">
+            location = #{record.location,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.SmartRecommand">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Fri Aug 20 19:52:17 CST 2021.
+    -->
+    insert into smart_recommand
+    (id, book_id, book_name, title, description, image, sex, status, location, createtime, 
+      updatetime)
+    values
+    (#{id,jdbcType=INTEGER}, #{bookId,jdbcType=BIGINT}, #{bookName,jdbcType=VARCHAR}, 
+      #{title,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{image,jdbcType=VARCHAR}, 
+      #{sex,jdbcType=CHAR}, #{status,jdbcType=CHAR}, #{location,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, 
+      #{updatetime,jdbcType=INTEGER})
+    on duplicate key update 
+    id = #{id,jdbcType=INTEGER}, 
+    book_id = #{bookId,jdbcType=BIGINT}, 
+    book_name = #{bookName,jdbcType=VARCHAR}, 
+    title = #{title,jdbcType=VARCHAR}, 
+    description = #{description,jdbcType=VARCHAR}, 
+    image = #{image,jdbcType=VARCHAR}, 
+    sex = #{sex,jdbcType=CHAR}, 
+    status = #{status,jdbcType=CHAR}, 
+    location = #{location,jdbcType=CHAR}, 
+    createtime = #{createtime,jdbcType=INTEGER}, 
+    updatetime = #{updatetime,jdbcType=INTEGER}
+  </insert>
+</mapper>

+ 1244 - 0
book-dao/src/main/resources/mapper/cps/UserMapper.xml

@@ -0,0 +1,1244 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.book.server.dao.mapper.UserMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.User">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="openid" jdbcType="VARCHAR" property="openid" />
+    <result column="unionid" jdbcType="VARCHAR" property="unionid" />
+    <result column="visitor" jdbcType="VARCHAR" property="visitor" />
+    <result column="nickname" jdbcType="VARCHAR" property="nickname" />
+    <result column="sex" jdbcType="CHAR" property="sex" />
+    <result column="mobile" jdbcType="CHAR" property="mobile" />
+    <result column="avatar" jdbcType="VARCHAR" property="avatar" />
+    <result column="is_subscribe" jdbcType="CHAR" property="isSubscribe" />
+    <result column="subscription_extend" jdbcType="CHAR" property="subscriptionExtend" />
+    <result column="subscribe_time" jdbcType="INTEGER" property="subscribeTime" />
+    <result column="book_category_ids" jdbcType="VARCHAR" property="bookCategoryIds" />
+    <result column="operate_time" jdbcType="INTEGER" property="operateTime" />
+    <result column="is_pay" jdbcType="CHAR" property="isPay" />
+    <result column="kandian" jdbcType="INTEGER" property="kandian" />
+    <result column="free_kandian" jdbcType="INTEGER" property="freeKandian" />
+    <result column="vip_endtime" jdbcType="INTEGER" property="vipEndtime" />
+    <result column="register_ip" jdbcType="VARCHAR" property="registerIp" />
+    <result column="country" jdbcType="VARCHAR" property="country" />
+    <result column="area" jdbcType="VARCHAR" property="area" />
+    <result column="province" jdbcType="VARCHAR" property="province" />
+    <result column="city" jdbcType="VARCHAR" property="city" />
+    <result column="isp" jdbcType="VARCHAR" property="isp" />
+    <result column="channel_id" jdbcType="INTEGER" property="channelId" />
+    <result column="state" jdbcType="CHAR" property="state" />
+    <result column="createtime" jdbcType="INTEGER" property="createtime" />
+    <result column="updatetime" jdbcType="INTEGER" property="updatetime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    id, openid, unionid, visitor, nickname, sex, mobile, avatar, is_subscribe, subscription_extend, 
+    subscribe_time, book_category_ids, operate_time, is_pay, kandian, free_kandian, vip_endtime, 
+    register_ip, country, area, province, city, isp, channel_id, state, createtime, updatetime
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.UserExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    <if test="rows != null">
+      <if test="offset != null">
+        limit ${offset}, ${rows}
+      </if>
+      <if test="offset == null">
+        limit ${rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from user
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    <if test="example != null and example.rows != null">
+      <if test="example.offset != null">
+        limit ${example.offset}, ${example.rows}
+      </if>
+      <if test="example.offset == null">
+        limit ${example.rows}
+      </if>
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from user
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectByPrimaryKeySelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from user
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    delete from user
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.UserExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    delete from user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.User">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    insert into user (id, openid, unionid, 
+      visitor, nickname, sex, 
+      mobile, avatar, is_subscribe, 
+      subscription_extend, subscribe_time, book_category_ids, 
+      operate_time, is_pay, kandian, 
+      free_kandian, vip_endtime, register_ip, 
+      country, area, province, 
+      city, isp, channel_id, 
+      state, createtime, updatetime
+      )
+    values (#{id,jdbcType=BIGINT}, #{openid,jdbcType=VARCHAR}, #{unionid,jdbcType=VARCHAR}, 
+      #{visitor,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, #{sex,jdbcType=CHAR}, 
+      #{mobile,jdbcType=CHAR}, #{avatar,jdbcType=VARCHAR}, #{isSubscribe,jdbcType=CHAR}, 
+      #{subscriptionExtend,jdbcType=CHAR}, #{subscribeTime,jdbcType=INTEGER}, #{bookCategoryIds,jdbcType=VARCHAR}, 
+      #{operateTime,jdbcType=INTEGER}, #{isPay,jdbcType=CHAR}, #{kandian,jdbcType=INTEGER}, 
+      #{freeKandian,jdbcType=INTEGER}, #{vipEndtime,jdbcType=INTEGER}, #{registerIp,jdbcType=VARCHAR}, 
+      #{country,jdbcType=VARCHAR}, #{area,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, 
+      #{city,jdbcType=VARCHAR}, #{isp,jdbcType=VARCHAR}, #{channelId,jdbcType=INTEGER}, 
+      #{state,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, #{updatetime,jdbcType=INTEGER}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    insert into user
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.openid != null">
+            openid,
+          </if>
+          <if test="record.unionid != null">
+            unionid,
+          </if>
+          <if test="record.visitor != null">
+            visitor,
+          </if>
+          <if test="record.nickname != null">
+            nickname,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.mobile != null">
+            mobile,
+          </if>
+          <if test="record.avatar != null">
+            avatar,
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe,
+          </if>
+          <if test="record.subscriptionExtend != null">
+            subscription_extend,
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time,
+          </if>
+          <if test="record.bookCategoryIds != null">
+            book_category_ids,
+          </if>
+          <if test="record.operateTime != null">
+            operate_time,
+          </if>
+          <if test="record.isPay != null">
+            is_pay,
+          </if>
+          <if test="record.kandian != null">
+            kandian,
+          </if>
+          <if test="record.freeKandian != null">
+            free_kandian,
+          </if>
+          <if test="record.vipEndtime != null">
+            vip_endtime,
+          </if>
+          <if test="record.registerIp != null">
+            register_ip,
+          </if>
+          <if test="record.country != null">
+            country,
+          </if>
+          <if test="record.area != null">
+            area,
+          </if>
+          <if test="record.province != null">
+            province,
+          </if>
+          <if test="record.city != null">
+            city,
+          </if>
+          <if test="record.isp != null">
+            isp,
+          </if>
+          <if test="record.channelId != null">
+            channel_id,
+          </if>
+          <if test="record.state != null">
+            state,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=BIGINT},
+          </if>
+          <if test="record.openid != null">
+            #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.unionid != null">
+            #{record.unionid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.visitor != null">
+            #{record.visitor,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.mobile != null">
+            #{record.mobile,jdbcType=CHAR},
+          </if>
+          <if test="record.avatar != null">
+            #{record.avatar,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            #{record.isSubscribe,jdbcType=CHAR},
+          </if>
+          <if test="record.subscriptionExtend != null">
+            #{record.subscriptionExtend,jdbcType=CHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            #{record.subscribeTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookCategoryIds != null">
+            #{record.bookCategoryIds,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operateTime != null">
+            #{record.operateTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.isPay != null">
+            #{record.isPay,jdbcType=CHAR},
+          </if>
+          <if test="record.kandian != null">
+            #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeKandian != null">
+            #{record.freeKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.vipEndtime != null">
+            #{record.vipEndtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.registerIp != null">
+            #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.country != null">
+            #{record.country,jdbcType=VARCHAR},
+          </if>
+          <if test="record.area != null">
+            #{record.area,jdbcType=VARCHAR},
+          </if>
+          <if test="record.province != null">
+            #{record.province,jdbcType=VARCHAR},
+          </if>
+          <if test="record.city != null">
+            #{record.city,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isp != null">
+            #{record.isp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            #{record.channelId,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.UserExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    select count(*) from user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    update user
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=BIGINT},
+          </if>
+          <if test="record.openid != null">
+            openid = #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.unionid != null">
+            unionid = #{record.unionid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.visitor != null">
+            visitor = #{record.visitor,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            nickname = #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.mobile != null">
+            mobile = #{record.mobile,jdbcType=CHAR},
+          </if>
+          <if test="record.avatar != null">
+            avatar = #{record.avatar,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe = #{record.isSubscribe,jdbcType=CHAR},
+          </if>
+          <if test="record.subscriptionExtend != null">
+            subscription_extend = #{record.subscriptionExtend,jdbcType=CHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time = #{record.subscribeTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookCategoryIds != null">
+            book_category_ids = #{record.bookCategoryIds,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operateTime != null">
+            operate_time = #{record.operateTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.isPay != null">
+            is_pay = #{record.isPay,jdbcType=CHAR},
+          </if>
+          <if test="record.kandian != null">
+            kandian = #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeKandian != null">
+            free_kandian = #{record.freeKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.vipEndtime != null">
+            vip_endtime = #{record.vipEndtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.registerIp != null">
+            register_ip = #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.country != null">
+            country = #{record.country,jdbcType=VARCHAR},
+          </if>
+          <if test="record.area != null">
+            area = #{record.area,jdbcType=VARCHAR},
+          </if>
+          <if test="record.province != null">
+            province = #{record.province,jdbcType=VARCHAR},
+          </if>
+          <if test="record.city != null">
+            city = #{record.city,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isp != null">
+            isp = #{record.isp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            channel_id = #{record.channelId,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            state = #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    update user
+    set id = #{record.id,jdbcType=BIGINT},
+      openid = #{record.openid,jdbcType=VARCHAR},
+      unionid = #{record.unionid,jdbcType=VARCHAR},
+      visitor = #{record.visitor,jdbcType=VARCHAR},
+      nickname = #{record.nickname,jdbcType=VARCHAR},
+      sex = #{record.sex,jdbcType=CHAR},
+      mobile = #{record.mobile,jdbcType=CHAR},
+      avatar = #{record.avatar,jdbcType=VARCHAR},
+      is_subscribe = #{record.isSubscribe,jdbcType=CHAR},
+      subscription_extend = #{record.subscriptionExtend,jdbcType=CHAR},
+      subscribe_time = #{record.subscribeTime,jdbcType=INTEGER},
+      book_category_ids = #{record.bookCategoryIds,jdbcType=VARCHAR},
+      operate_time = #{record.operateTime,jdbcType=INTEGER},
+      is_pay = #{record.isPay,jdbcType=CHAR},
+      kandian = #{record.kandian,jdbcType=INTEGER},
+      free_kandian = #{record.freeKandian,jdbcType=INTEGER},
+      vip_endtime = #{record.vipEndtime,jdbcType=INTEGER},
+      register_ip = #{record.registerIp,jdbcType=VARCHAR},
+      country = #{record.country,jdbcType=VARCHAR},
+      area = #{record.area,jdbcType=VARCHAR},
+      province = #{record.province,jdbcType=VARCHAR},
+      city = #{record.city,jdbcType=VARCHAR},
+      isp = #{record.isp,jdbcType=VARCHAR},
+      channel_id = #{record.channelId,jdbcType=INTEGER},
+      state = #{record.state,jdbcType=CHAR},
+      createtime = #{record.createtime,jdbcType=INTEGER},
+      updatetime = #{record.updatetime,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    update user
+    SET
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.openid != null">
+            openid = #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.unionid != null">
+            unionid = #{record.unionid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.visitor != null">
+            visitor = #{record.visitor,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            nickname = #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.mobile != null">
+            mobile = #{record.mobile,jdbcType=CHAR},
+          </if>
+          <if test="record.avatar != null">
+            avatar = #{record.avatar,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe = #{record.isSubscribe,jdbcType=CHAR},
+          </if>
+          <if test="record.subscriptionExtend != null">
+            subscription_extend = #{record.subscriptionExtend,jdbcType=CHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time = #{record.subscribeTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookCategoryIds != null">
+            book_category_ids = #{record.bookCategoryIds,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operateTime != null">
+            operate_time = #{record.operateTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.isPay != null">
+            is_pay = #{record.isPay,jdbcType=CHAR},
+          </if>
+          <if test="record.kandian != null">
+            kandian = #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeKandian != null">
+            free_kandian = #{record.freeKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.vipEndtime != null">
+            vip_endtime = #{record.vipEndtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.registerIp != null">
+            register_ip = #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.country != null">
+            country = #{record.country,jdbcType=VARCHAR},
+          </if>
+          <if test="record.area != null">
+            area = #{record.area,jdbcType=VARCHAR},
+          </if>
+          <if test="record.province != null">
+            province = #{record.province,jdbcType=VARCHAR},
+          </if>
+          <if test="record.city != null">
+            city = #{record.city,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isp != null">
+            isp = #{record.isp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            channel_id = #{record.channelId,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            state = #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.User">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    update user
+    set openid = #{openid,jdbcType=VARCHAR},
+      unionid = #{unionid,jdbcType=VARCHAR},
+      visitor = #{visitor,jdbcType=VARCHAR},
+      nickname = #{nickname,jdbcType=VARCHAR},
+      sex = #{sex,jdbcType=CHAR},
+      mobile = #{mobile,jdbcType=CHAR},
+      avatar = #{avatar,jdbcType=VARCHAR},
+      is_subscribe = #{isSubscribe,jdbcType=CHAR},
+      subscription_extend = #{subscriptionExtend,jdbcType=CHAR},
+      subscribe_time = #{subscribeTime,jdbcType=INTEGER},
+      book_category_ids = #{bookCategoryIds,jdbcType=VARCHAR},
+      operate_time = #{operateTime,jdbcType=INTEGER},
+      is_pay = #{isPay,jdbcType=CHAR},
+      kandian = #{kandian,jdbcType=INTEGER},
+      free_kandian = #{freeKandian,jdbcType=INTEGER},
+      vip_endtime = #{vipEndtime,jdbcType=INTEGER},
+      register_ip = #{registerIp,jdbcType=VARCHAR},
+      country = #{country,jdbcType=VARCHAR},
+      area = #{area,jdbcType=VARCHAR},
+      province = #{province,jdbcType=VARCHAR},
+      city = #{city,jdbcType=VARCHAR},
+      isp = #{isp,jdbcType=VARCHAR},
+      channel_id = #{channelId,jdbcType=INTEGER},
+      state = #{state,jdbcType=CHAR},
+      createtime = #{createtime,jdbcType=INTEGER},
+      updatetime = #{updatetime,jdbcType=INTEGER}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.UserExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+    limit 1
+  </select>
+  <select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from user
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+    <if test="example != null and example.orderByClause != null">
+      order by ${example.orderByClause}
+    </if>
+    limit 1
+  </select>
+  <insert id="batchInsert" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    insert into user
+    (id, openid, unionid, visitor, nickname, sex, mobile, avatar, is_subscribe, subscription_extend, 
+      subscribe_time, book_category_ids, operate_time, is_pay, kandian, free_kandian, 
+      vip_endtime, register_ip, country, area, province, city, isp, channel_id, state, 
+      createtime, updatetime)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=BIGINT}, #{item.openid,jdbcType=VARCHAR}, #{item.unionid,jdbcType=VARCHAR}, 
+        #{item.visitor,jdbcType=VARCHAR}, #{item.nickname,jdbcType=VARCHAR}, #{item.sex,jdbcType=CHAR}, 
+        #{item.mobile,jdbcType=CHAR}, #{item.avatar,jdbcType=VARCHAR}, #{item.isSubscribe,jdbcType=CHAR}, 
+        #{item.subscriptionExtend,jdbcType=CHAR}, #{item.subscribeTime,jdbcType=INTEGER}, 
+        #{item.bookCategoryIds,jdbcType=VARCHAR}, #{item.operateTime,jdbcType=INTEGER}, 
+        #{item.isPay,jdbcType=CHAR}, #{item.kandian,jdbcType=INTEGER}, #{item.freeKandian,jdbcType=INTEGER}, 
+        #{item.vipEndtime,jdbcType=INTEGER}, #{item.registerIp,jdbcType=VARCHAR}, #{item.country,jdbcType=VARCHAR}, 
+        #{item.area,jdbcType=VARCHAR}, #{item.province,jdbcType=VARCHAR}, #{item.city,jdbcType=VARCHAR}, 
+        #{item.isp,jdbcType=VARCHAR}, #{item.channelId,jdbcType=INTEGER}, #{item.state,jdbcType=CHAR}, 
+        #{item.createtime,jdbcType=INTEGER}, #{item.updatetime,jdbcType=INTEGER})
+    </foreach>
+  </insert>
+  <insert id="batchInsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    insert into user (
+    <foreach collection="selective" item="column" separator=",">
+      ${column.escapedColumnName}
+    </foreach>
+    )
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      <foreach collection="selective" item="column" separator=",">
+        <if test="'id'.toString() == column.value">
+          #{item.id,jdbcType=BIGINT}
+        </if>
+        <if test="'openid'.toString() == column.value">
+          #{item.openid,jdbcType=VARCHAR}
+        </if>
+        <if test="'unionid'.toString() == column.value">
+          #{item.unionid,jdbcType=VARCHAR}
+        </if>
+        <if test="'visitor'.toString() == column.value">
+          #{item.visitor,jdbcType=VARCHAR}
+        </if>
+        <if test="'nickname'.toString() == column.value">
+          #{item.nickname,jdbcType=VARCHAR}
+        </if>
+        <if test="'sex'.toString() == column.value">
+          #{item.sex,jdbcType=CHAR}
+        </if>
+        <if test="'mobile'.toString() == column.value">
+          #{item.mobile,jdbcType=CHAR}
+        </if>
+        <if test="'avatar'.toString() == column.value">
+          #{item.avatar,jdbcType=VARCHAR}
+        </if>
+        <if test="'is_subscribe'.toString() == column.value">
+          #{item.isSubscribe,jdbcType=CHAR}
+        </if>
+        <if test="'subscription_extend'.toString() == column.value">
+          #{item.subscriptionExtend,jdbcType=CHAR}
+        </if>
+        <if test="'subscribe_time'.toString() == column.value">
+          #{item.subscribeTime,jdbcType=INTEGER}
+        </if>
+        <if test="'book_category_ids'.toString() == column.value">
+          #{item.bookCategoryIds,jdbcType=VARCHAR}
+        </if>
+        <if test="'operate_time'.toString() == column.value">
+          #{item.operateTime,jdbcType=INTEGER}
+        </if>
+        <if test="'is_pay'.toString() == column.value">
+          #{item.isPay,jdbcType=CHAR}
+        </if>
+        <if test="'kandian'.toString() == column.value">
+          #{item.kandian,jdbcType=INTEGER}
+        </if>
+        <if test="'free_kandian'.toString() == column.value">
+          #{item.freeKandian,jdbcType=INTEGER}
+        </if>
+        <if test="'vip_endtime'.toString() == column.value">
+          #{item.vipEndtime,jdbcType=INTEGER}
+        </if>
+        <if test="'register_ip'.toString() == column.value">
+          #{item.registerIp,jdbcType=VARCHAR}
+        </if>
+        <if test="'country'.toString() == column.value">
+          #{item.country,jdbcType=VARCHAR}
+        </if>
+        <if test="'area'.toString() == column.value">
+          #{item.area,jdbcType=VARCHAR}
+        </if>
+        <if test="'province'.toString() == column.value">
+          #{item.province,jdbcType=VARCHAR}
+        </if>
+        <if test="'city'.toString() == column.value">
+          #{item.city,jdbcType=VARCHAR}
+        </if>
+        <if test="'isp'.toString() == column.value">
+          #{item.isp,jdbcType=VARCHAR}
+        </if>
+        <if test="'channel_id'.toString() == column.value">
+          #{item.channelId,jdbcType=INTEGER}
+        </if>
+        <if test="'state'.toString() == column.value">
+          #{item.state,jdbcType=CHAR}
+        </if>
+        <if test="'createtime'.toString() == column.value">
+          #{item.createtime,jdbcType=INTEGER}
+        </if>
+        <if test="'updatetime'.toString() == column.value">
+          #{item.updatetime,jdbcType=INTEGER}
+        </if>
+      </foreach>
+      )
+    </foreach>
+  </insert>
+  <insert id="upsertSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    insert into user
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          ${column.escapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            id,
+          </if>
+          <if test="record.openid != null">
+            openid,
+          </if>
+          <if test="record.unionid != null">
+            unionid,
+          </if>
+          <if test="record.visitor != null">
+            visitor,
+          </if>
+          <if test="record.nickname != null">
+            nickname,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.mobile != null">
+            mobile,
+          </if>
+          <if test="record.avatar != null">
+            avatar,
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe,
+          </if>
+          <if test="record.subscriptionExtend != null">
+            subscription_extend,
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time,
+          </if>
+          <if test="record.bookCategoryIds != null">
+            book_category_ids,
+          </if>
+          <if test="record.operateTime != null">
+            operate_time,
+          </if>
+          <if test="record.isPay != null">
+            is_pay,
+          </if>
+          <if test="record.kandian != null">
+            kandian,
+          </if>
+          <if test="record.freeKandian != null">
+            free_kandian,
+          </if>
+          <if test="record.vipEndtime != null">
+            vip_endtime,
+          </if>
+          <if test="record.registerIp != null">
+            register_ip,
+          </if>
+          <if test="record.country != null">
+            country,
+          </if>
+          <if test="record.area != null">
+            area,
+          </if>
+          <if test="record.province != null">
+            province,
+          </if>
+          <if test="record.city != null">
+            city,
+          </if>
+          <if test="record.isp != null">
+            isp,
+          </if>
+          <if test="record.channelId != null">
+            channel_id,
+          </if>
+          <if test="record.state != null">
+            state,
+          </if>
+          <if test="record.createtime != null">
+            createtime,
+          </if>
+          <if test="record.updatetime != null">
+            updatetime,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach close=")" collection="selective" item="column" open="(" separator=",">
+          #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+          <if test="record.id != null">
+            #{record.id,jdbcType=BIGINT},
+          </if>
+          <if test="record.openid != null">
+            #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.unionid != null">
+            #{record.unionid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.visitor != null">
+            #{record.visitor,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.mobile != null">
+            #{record.mobile,jdbcType=CHAR},
+          </if>
+          <if test="record.avatar != null">
+            #{record.avatar,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            #{record.isSubscribe,jdbcType=CHAR},
+          </if>
+          <if test="record.subscriptionExtend != null">
+            #{record.subscriptionExtend,jdbcType=CHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            #{record.subscribeTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookCategoryIds != null">
+            #{record.bookCategoryIds,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operateTime != null">
+            #{record.operateTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.isPay != null">
+            #{record.isPay,jdbcType=CHAR},
+          </if>
+          <if test="record.kandian != null">
+            #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeKandian != null">
+            #{record.freeKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.vipEndtime != null">
+            #{record.vipEndtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.registerIp != null">
+            #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.country != null">
+            #{record.country,jdbcType=VARCHAR},
+          </if>
+          <if test="record.area != null">
+            #{record.area,jdbcType=VARCHAR},
+          </if>
+          <if test="record.province != null">
+            #{record.province,jdbcType=VARCHAR},
+          </if>
+          <if test="record.city != null">
+            #{record.city,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isp != null">
+            #{record.isp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            #{record.channelId,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    on duplicate key update 
+    <choose>
+      <when test="selective != null and selective.length > 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.id != null">
+            id = #{record.id,jdbcType=BIGINT},
+          </if>
+          <if test="record.openid != null">
+            openid = #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.unionid != null">
+            unionid = #{record.unionid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.visitor != null">
+            visitor = #{record.visitor,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            nickname = #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.sex != null">
+            sex = #{record.sex,jdbcType=CHAR},
+          </if>
+          <if test="record.mobile != null">
+            mobile = #{record.mobile,jdbcType=CHAR},
+          </if>
+          <if test="record.avatar != null">
+            avatar = #{record.avatar,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe = #{record.isSubscribe,jdbcType=CHAR},
+          </if>
+          <if test="record.subscriptionExtend != null">
+            subscription_extend = #{record.subscriptionExtend,jdbcType=CHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time = #{record.subscribeTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.bookCategoryIds != null">
+            book_category_ids = #{record.bookCategoryIds,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operateTime != null">
+            operate_time = #{record.operateTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.isPay != null">
+            is_pay = #{record.isPay,jdbcType=CHAR},
+          </if>
+          <if test="record.kandian != null">
+            kandian = #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.freeKandian != null">
+            free_kandian = #{record.freeKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.vipEndtime != null">
+            vip_endtime = #{record.vipEndtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.registerIp != null">
+            register_ip = #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.country != null">
+            country = #{record.country,jdbcType=VARCHAR},
+          </if>
+          <if test="record.area != null">
+            area = #{record.area,jdbcType=VARCHAR},
+          </if>
+          <if test="record.province != null">
+            province = #{record.province,jdbcType=VARCHAR},
+          </if>
+          <if test="record.city != null">
+            city = #{record.city,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isp != null">
+            isp = #{record.isp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            channel_id = #{record.channelId,jdbcType=INTEGER},
+          </if>
+          <if test="record.state != null">
+            state = #{record.state,jdbcType=CHAR},
+          </if>
+          <if test="record.createtime != null">
+            createtime = #{record.createtime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updatetime != null">
+            updatetime = #{record.updatetime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.User">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 17 22:19:18 CST 2021.
+    -->
+    insert into user
+    (id, openid, unionid, visitor, nickname, sex, mobile, avatar, is_subscribe, subscription_extend, 
+      subscribe_time, book_category_ids, operate_time, is_pay, kandian, free_kandian, 
+      vip_endtime, register_ip, country, area, province, city, isp, channel_id, state, 
+      createtime, updatetime)
+    values
+    (#{id,jdbcType=BIGINT}, #{openid,jdbcType=VARCHAR}, #{unionid,jdbcType=VARCHAR}, 
+      #{visitor,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, #{sex,jdbcType=CHAR}, 
+      #{mobile,jdbcType=CHAR}, #{avatar,jdbcType=VARCHAR}, #{isSubscribe,jdbcType=CHAR}, 
+      #{subscriptionExtend,jdbcType=CHAR}, #{subscribeTime,jdbcType=INTEGER}, #{bookCategoryIds,jdbcType=VARCHAR}, 
+      #{operateTime,jdbcType=INTEGER}, #{isPay,jdbcType=CHAR}, #{kandian,jdbcType=INTEGER}, 
+      #{freeKandian,jdbcType=INTEGER}, #{vipEndtime,jdbcType=INTEGER}, #{registerIp,jdbcType=VARCHAR}, 
+      #{country,jdbcType=VARCHAR}, #{area,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, 
+      #{city,jdbcType=VARCHAR}, #{isp,jdbcType=VARCHAR}, #{channelId,jdbcType=INTEGER}, 
+      #{state,jdbcType=CHAR}, #{createtime,jdbcType=INTEGER}, #{updatetime,jdbcType=INTEGER}
+      )
+    on duplicate key update 
+    id = #{id,jdbcType=BIGINT}, 
+    openid = #{openid,jdbcType=VARCHAR}, 
+    unionid = #{unionid,jdbcType=VARCHAR}, 
+    visitor = #{visitor,jdbcType=VARCHAR}, 
+    nickname = #{nickname,jdbcType=VARCHAR}, 
+    sex = #{sex,jdbcType=CHAR}, 
+    mobile = #{mobile,jdbcType=CHAR}, 
+    avatar = #{avatar,jdbcType=VARCHAR}, 
+    is_subscribe = #{isSubscribe,jdbcType=CHAR}, 
+    subscription_extend = #{subscriptionExtend,jdbcType=CHAR}, 
+    subscribe_time = #{subscribeTime,jdbcType=INTEGER}, 
+    book_category_ids = #{bookCategoryIds,jdbcType=VARCHAR}, 
+    operate_time = #{operateTime,jdbcType=INTEGER}, 
+    is_pay = #{isPay,jdbcType=CHAR}, 
+    kandian = #{kandian,jdbcType=INTEGER}, 
+    free_kandian = #{freeKandian,jdbcType=INTEGER}, 
+    vip_endtime = #{vipEndtime,jdbcType=INTEGER}, 
+    register_ip = #{registerIp,jdbcType=VARCHAR}, 
+    country = #{country,jdbcType=VARCHAR}, 
+    area = #{area,jdbcType=VARCHAR}, 
+    province = #{province,jdbcType=VARCHAR}, 
+    city = #{city,jdbcType=VARCHAR}, 
+    isp = #{isp,jdbcType=VARCHAR}, 
+    channel_id = #{channelId,jdbcType=INTEGER}, 
+    state = #{state,jdbcType=CHAR}, 
+    createtime = #{createtime,jdbcType=INTEGER}, 
+    updatetime = #{updatetime,jdbcType=INTEGER}
+  </insert>
+</mapper>

+ 1 - 1
book-server/src/main/resources/mybatis-generator.xml → book-dao/src/main/resources/mybatis-generator.xml

@@ -27,7 +27,7 @@
         <!-- Example 目标包修改插件 need to change-->
         <plugin type="com.itfsw.mybatis.generator.plugins.ExampleTargetPlugin">
             <!-- 修改Example类生成到目标包下 -->
-            <property name="targetPackage" value="com.book.server.dao.entity.example"/>
+            <property name="targetPackage" value="com.book.dao.cps.pojo.example"/>
         </plugin>
 
         <!-- 数据Model属性对应Column获取插件 -->

+ 8 - 48
book-server/pom.xml

@@ -26,31 +26,6 @@
                     <layout>ZIP</layout>
                 </configuration>
             </plugin>
-
-            <!--mybatis.generator maven插件-->
-            <plugin>
-                <groupId>org.mybatis.generator</groupId>
-                <artifactId>mybatis-generator-maven-plugin</artifactId>
-                <version>1.3.7</version>
-
-                <configuration>
-                    <configurationFile>src/main/resources/mybatis-generator.xml</configurationFile>
-                    <overwrite>true</overwrite>
-                </configuration>
-
-                <dependencies>
-                    <dependency>
-                        <groupId>mysql</groupId>
-                        <artifactId>mysql-connector-java</artifactId>
-                        <version>8.0.16</version>
-                    </dependency>
-                    <dependency>
-                        <groupId>com.itfsw</groupId>
-                        <artifactId>mybatis-generator-plugin</artifactId>
-                        <version>1.3.7</version>
-                    </dependency>
-                </dependencies>
-            </plugin>
         </plugins>
     </build>
 
@@ -98,13 +73,6 @@
             <version>3.3.7</version>
         </dependency>
 
-
-        <!-- lombok -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <version>1.18.4</version>
-        </dependency>
         <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
         <dependency>
             <groupId>com.google.code.gson</groupId>
@@ -141,25 +109,17 @@
             <artifactId>javax.mail</artifactId>
             <version>1.6.2</version>
         </dependency>
-
-        <!--mybatis-->
-        <dependency>
-            <groupId>org.mybatis.spring.boot</groupId>
-            <artifactId>mybatis-spring-boot-starter</artifactId>
-            <version>1.3.2</version>
-        </dependency>
+        <!-- lombok -->
         <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>druid-spring-boot-starter</artifactId>
-            <version>1.1.10</version>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.4</version>
         </dependency>
-
-        <!--mysql-->
         <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>8.0.16</version>
+            <groupId>com.bookstore</groupId>
+            <artifactId>book-dao</artifactId>
+            <version>1.0</version>
+            <scope>compile</scope>
         </dependency>
-
     </dependencies>
 </project>

+ 2 - 0
book-server/src/main/java/com/book/server/Application.java

@@ -1,10 +1,12 @@
 package com.book.server;
 
 import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.annotation.ComponentScan;
 
 @SpringBootApplication
 @EnableCaching

+ 2 - 8
book-server/src/main/java/com/book/server/controller/BookController.java

@@ -1,23 +1,17 @@
 package com.book.server.controller;
 
-import com.book.server.common.entity.PageResult;
+import com.book.dao.cps.pojo.SearchKeyword;
 import com.book.server.common.entity.Result;
 import com.book.server.common.entity.ResultCode;
-import com.book.server.dao.entity.Book;
-import com.book.server.dao.entity.SearchKeyword;
-import com.book.server.model.VO.*;
+import com.book.dao.VO.*;
 import com.book.server.service.BookService;
-import com.mysql.cj.QueryBindings;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.Cacheable;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 
 /**
  * 书籍

+ 1 - 1
book-server/src/main/java/com/book/server/controller/UserController.java

@@ -1,7 +1,7 @@
 package com.book.server.controller;
 
+import com.book.dao.cps.pojo.User;
 import com.book.server.common.entity.Result;
-import com.book.server.dao.entity.User;
 import com.book.server.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;

+ 0 - 471
book-server/src/main/java/com/book/server/dao/entity/Config.java

@@ -1,471 +0,0 @@
-package com.book.server.dao.entity;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import lombok.Data;
-
-@Data
-public class Config implements Serializable {
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.id
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private Integer id;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.name
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private String name;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.group
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private String group;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.title
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private String title;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.tip
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private String tip;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.type
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private String type;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.rule
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private String rule;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.extend
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private String extend;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.value
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private String value;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column config.content
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private String content;
-
-    /**
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public static Config.Builder builder() {
-        return new Config.Builder();
-    }
-
-    /**
-     * This class was generated by MyBatis Generator.
-     * This class corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public static class Builder {
-        /**
-         * This field was generated by MyBatis Generator.
-         * This field corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        private Config obj;
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder() {
-            this.obj = new Config();
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.id
-         *
-         * @param id the value for config.id
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder id(Integer id) {
-            obj.setId(id);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.name
-         *
-         * @param name the value for config.name
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder name(String name) {
-            obj.setName(name);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.group
-         *
-         * @param group the value for config.group
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder group(String group) {
-            obj.setGroup(group);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.title
-         *
-         * @param title the value for config.title
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder title(String title) {
-            obj.setTitle(title);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.tip
-         *
-         * @param tip the value for config.tip
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder tip(String tip) {
-            obj.setTip(tip);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.type
-         *
-         * @param type the value for config.type
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder type(String type) {
-            obj.setType(type);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.rule
-         *
-         * @param rule the value for config.rule
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder rule(String rule) {
-            obj.setRule(rule);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.extend
-         *
-         * @param extend the value for config.extend
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder extend(String extend) {
-            obj.setExtend(extend);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.value
-         *
-         * @param value the value for config.value
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder value(String value) {
-            obj.setValue(value);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method sets the value of the database column config.content
-         *
-         * @param content the value for config.content
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Builder content(String content) {
-            obj.setContent(content);
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Config build() {
-            return this.obj;
-        }
-    }
-
-    /**
-     * This enum was generated by MyBatis Generator.
-     * This enum corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public enum Column {
-        id("id", "id", "INTEGER", false),
-        name("name", "name", "VARCHAR", false),
-        group("group", "group", "VARCHAR", false),
-        title("title", "title", "VARCHAR", false),
-        tip("tip", "tip", "VARCHAR", false),
-        type("type", "type", "VARCHAR", false),
-        rule("rule", "rule", "VARCHAR", false),
-        extend("extend", "extend", "VARCHAR", false),
-        value("value", "value", "LONGVARCHAR", false),
-        content("content", "content", "LONGVARCHAR", false);
-
-        /**
-         * This field was generated by MyBatis Generator.
-         * This field corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        private static final String BEGINNING_DELIMITER = "\"";
-
-        /**
-         * This field was generated by MyBatis Generator.
-         * This field corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        private static final String ENDING_DELIMITER = "\"";
-
-        /**
-         * This field was generated by MyBatis Generator.
-         * This field corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        private final String column;
-
-        /**
-         * This field was generated by MyBatis Generator.
-         * This field corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        private final boolean isColumnNameDelimited;
-
-        /**
-         * This field was generated by MyBatis Generator.
-         * This field corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        private final String javaProperty;
-
-        /**
-         * This field was generated by MyBatis Generator.
-         * This field corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        private final String jdbcType;
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public String value() {
-            return this.column;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public String getValue() {
-            return this.column;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public String getJavaProperty() {
-            return this.javaProperty;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public String getJdbcType() {
-            return this.jdbcType;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        Column(String column, String javaProperty, String jdbcType, boolean isColumnNameDelimited) {
-            this.column = column;
-            this.javaProperty = javaProperty;
-            this.jdbcType = jdbcType;
-            this.isColumnNameDelimited = isColumnNameDelimited;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public String desc() {
-            return this.getEscapedColumnName() + " DESC";
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public String asc() {
-            return this.getEscapedColumnName() + " ASC";
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public static Column[] excludes(Column ... excludes) {
-            ArrayList<Column> columns = new ArrayList<>(Arrays.asList(Column.values()));
-            if (excludes != null && excludes.length > 0) {
-                columns.removeAll(new ArrayList<>(Arrays.asList(excludes)));
-            }
-            return columns.toArray(new Column[]{});
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public static Column[] all() {
-            return Column.values();
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public String getEscapedColumnName() {
-            if (this.isColumnNameDelimited) {
-                return new StringBuilder().append(BEGINNING_DELIMITER).append(this.column).append(ENDING_DELIMITER).toString();
-            } else {
-                return this.column;
-            }
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public String getAliasedEscapedColumnName() {
-            return this.getEscapedColumnName();
-        }
-    }
-}

+ 0 - 1351
book-server/src/main/java/com/book/server/dao/entity/example/ConfigExample.java

@@ -1,1351 +0,0 @@
-package com.book.server.dao.entity.example;
-
-import com.book.server.dao.entity.Config;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ConfigExample {
-    /**
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    protected String orderByClause;
-
-    /**
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    protected boolean distinct;
-
-    /**
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    protected List<Criteria> oredCriteria;
-
-    /**
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    protected Integer offset;
-
-    /**
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    protected Integer rows;
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public ConfigExample() {
-        oredCriteria = new ArrayList<Criteria>();
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public void setOrderByClause(String orderByClause) {
-        this.orderByClause = orderByClause;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public String getOrderByClause() {
-        return orderByClause;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public void setDistinct(boolean distinct) {
-        this.distinct = distinct;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public boolean isDistinct() {
-        return distinct;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public List<Criteria> getOredCriteria() {
-        return oredCriteria;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public void or(Criteria criteria) {
-        oredCriteria.add(criteria);
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public Criteria or() {
-        Criteria criteria = createCriteriaInternal();
-        oredCriteria.add(criteria);
-        return criteria;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public ConfigExample orderBy(String orderByClause) {
-        this.setOrderByClause(orderByClause);
-        return this;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public ConfigExample orderBy(String ... orderByClauses) {
-        StringBuffer sb = new StringBuffer();
-        for (int i = 0; i < orderByClauses.length; i++) {
-            sb.append(orderByClauses[i]);
-            if (i < orderByClauses.length - 1) {
-                sb.append(" , ");
-            }
-        }
-        this.setOrderByClause(sb.toString());
-        return this;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public Criteria createCriteria() {
-        Criteria criteria = createCriteriaInternal();
-        if (oredCriteria.size() == 0) {
-            oredCriteria.add(criteria);
-        }
-        return criteria;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    protected Criteria createCriteriaInternal() {
-        Criteria criteria = new Criteria(this);
-        return criteria;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public void clear() {
-        oredCriteria.clear();
-        orderByClause = null;
-        distinct = false;
-        rows = null;
-        offset = null;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public void setOffset(Integer offset) {
-        this.offset = offset;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public Integer getOffset() {
-        return this.offset;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public void setRows(Integer rows) {
-        this.rows = rows;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public Integer getRows() {
-        return this.rows;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public ConfigExample limit(Integer rows) {
-        this.rows = rows;
-        return this;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public ConfigExample limit(Integer offset, Integer rows) {
-        this.offset = offset;
-        this.rows = rows;
-        return this;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public ConfigExample page(Integer page, Integer pageSize) {
-        this.offset = page * pageSize;
-        this.rows = pageSize;
-        return this;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public static Criteria newAndCreateCriteria() {
-        ConfigExample example = new ConfigExample();
-        return example.createCriteria();
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public ConfigExample when(boolean condition, IExampleWhen then) {
-        if (condition) {
-            then.example(this);
-        }
-        return this;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public ConfigExample when(boolean condition, IExampleWhen then, IExampleWhen otherwise) {
-        if (condition) {
-            then.example(this);
-        } else {
-            otherwise.example(this);
-        }
-        return this;
-    }
-
-    /**
-     * This class was generated by MyBatis Generator.
-     * This class corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    protected abstract static class GeneratedCriteria {
-        protected List<Criterion> criteria;
-
-        protected GeneratedCriteria() {
-            super();
-            criteria = new ArrayList<Criterion>();
-        }
-
-        public boolean isValid() {
-            return criteria.size() > 0;
-        }
-
-        public List<Criterion> getAllCriteria() {
-            return criteria;
-        }
-
-        public List<Criterion> getCriteria() {
-            return criteria;
-        }
-
-        protected void addCriterion(String condition) {
-            if (condition == null) {
-                throw new RuntimeException("Value for condition cannot be null");
-            }
-            criteria.add(new Criterion(condition));
-        }
-
-        protected void addCriterion(String condition, Object value, String property) {
-            if (value == null) {
-                throw new RuntimeException("Value for " + property + " cannot be null");
-            }
-            criteria.add(new Criterion(condition, value));
-        }
-
-        protected void addCriterion(String condition, Object value1, Object value2, String property) {
-            if (value1 == null || value2 == null) {
-                throw new RuntimeException("Between values for " + property + " cannot be null");
-            }
-            criteria.add(new Criterion(condition, value1, value2));
-        }
-
-        public Criteria andIdIsNull() {
-            addCriterion("id is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdIsNotNull() {
-            addCriterion("id is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdEqualTo(Integer value) {
-            addCriterion("id =", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("id = ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andIdNotEqualTo(Integer value) {
-            addCriterion("id <>", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdNotEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("id <> ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andIdGreaterThan(Integer value) {
-            addCriterion("id >", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdGreaterThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("id > ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
-            addCriterion("id >=", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdGreaterThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("id >= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andIdLessThan(Integer value) {
-            addCriterion("id <", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdLessThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("id < ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andIdLessThanOrEqualTo(Integer value) {
-            addCriterion("id <=", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdLessThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("id <= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andIdIn(List<Integer> values) {
-            addCriterion("id in", values, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdNotIn(List<Integer> values) {
-            addCriterion("id not in", values, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdBetween(Integer value1, Integer value2) {
-            addCriterion("id between", value1, value2, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdNotBetween(Integer value1, Integer value2) {
-            addCriterion("id not between", value1, value2, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameIsNull() {
-            addCriterion("name is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameIsNotNull() {
-            addCriterion("name is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameEqualTo(String value) {
-            addCriterion("name =", value, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("name = ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andNameNotEqualTo(String value) {
-            addCriterion("name <>", value, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameNotEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("name <> ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andNameGreaterThan(String value) {
-            addCriterion("name >", value, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameGreaterThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("name > ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andNameGreaterThanOrEqualTo(String value) {
-            addCriterion("name >=", value, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameGreaterThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("name >= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andNameLessThan(String value) {
-            addCriterion("name <", value, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameLessThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("name < ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andNameLessThanOrEqualTo(String value) {
-            addCriterion("name <=", value, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameLessThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("name <= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andNameLike(String value) {
-            addCriterion("name like", value, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameNotLike(String value) {
-            addCriterion("name not like", value, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameIn(List<String> values) {
-            addCriterion("name in", values, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameNotIn(List<String> values) {
-            addCriterion("name not in", values, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameBetween(String value1, String value2) {
-            addCriterion("name between", value1, value2, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andNameNotBetween(String value1, String value2) {
-            addCriterion("name not between", value1, value2, "name");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupIsNull() {
-            addCriterion("group is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupIsNotNull() {
-            addCriterion("group is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupEqualTo(String value) {
-            addCriterion("group =", value, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("group = ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupNotEqualTo(String value) {
-            addCriterion("group <>", value, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupNotEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("group <> ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupGreaterThan(String value) {
-            addCriterion("group >", value, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupGreaterThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("group > ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupGreaterThanOrEqualTo(String value) {
-            addCriterion("group >=", value, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupGreaterThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("group >= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupLessThan(String value) {
-            addCriterion("group <", value, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupLessThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("group < ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupLessThanOrEqualTo(String value) {
-            addCriterion("group <=", value, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupLessThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("group <= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupLike(String value) {
-            addCriterion("group like", value, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupNotLike(String value) {
-            addCriterion("group not like", value, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupIn(List<String> values) {
-            addCriterion("group in", values, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupNotIn(List<String> values) {
-            addCriterion("group not in", values, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupBetween(String value1, String value2) {
-            addCriterion("group between", value1, value2, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andGroupNotBetween(String value1, String value2) {
-            addCriterion("group not between", value1, value2, "group");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleIsNull() {
-            addCriterion("title is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleIsNotNull() {
-            addCriterion("title is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleEqualTo(String value) {
-            addCriterion("title =", value, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("title = ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleNotEqualTo(String value) {
-            addCriterion("title <>", value, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleNotEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("title <> ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleGreaterThan(String value) {
-            addCriterion("title >", value, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleGreaterThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("title > ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleGreaterThanOrEqualTo(String value) {
-            addCriterion("title >=", value, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleGreaterThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("title >= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleLessThan(String value) {
-            addCriterion("title <", value, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleLessThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("title < ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleLessThanOrEqualTo(String value) {
-            addCriterion("title <=", value, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleLessThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("title <= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleLike(String value) {
-            addCriterion("title like", value, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleNotLike(String value) {
-            addCriterion("title not like", value, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleIn(List<String> values) {
-            addCriterion("title in", values, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleNotIn(List<String> values) {
-            addCriterion("title not in", values, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleBetween(String value1, String value2) {
-            addCriterion("title between", value1, value2, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTitleNotBetween(String value1, String value2) {
-            addCriterion("title not between", value1, value2, "title");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipIsNull() {
-            addCriterion("tip is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipIsNotNull() {
-            addCriterion("tip is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipEqualTo(String value) {
-            addCriterion("tip =", value, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("tip = ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTipNotEqualTo(String value) {
-            addCriterion("tip <>", value, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipNotEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("tip <> ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTipGreaterThan(String value) {
-            addCriterion("tip >", value, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipGreaterThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("tip > ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTipGreaterThanOrEqualTo(String value) {
-            addCriterion("tip >=", value, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipGreaterThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("tip >= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTipLessThan(String value) {
-            addCriterion("tip <", value, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipLessThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("tip < ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTipLessThanOrEqualTo(String value) {
-            addCriterion("tip <=", value, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipLessThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("tip <= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTipLike(String value) {
-            addCriterion("tip like", value, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipNotLike(String value) {
-            addCriterion("tip not like", value, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipIn(List<String> values) {
-            addCriterion("tip in", values, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipNotIn(List<String> values) {
-            addCriterion("tip not in", values, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipBetween(String value1, String value2) {
-            addCriterion("tip between", value1, value2, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTipNotBetween(String value1, String value2) {
-            addCriterion("tip not between", value1, value2, "tip");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeIsNull() {
-            addCriterion("type is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeIsNotNull() {
-            addCriterion("type is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeEqualTo(String value) {
-            addCriterion("type =", value, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("type = ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeNotEqualTo(String value) {
-            addCriterion("type <>", value, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeNotEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("type <> ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeGreaterThan(String value) {
-            addCriterion("type >", value, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeGreaterThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("type > ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeGreaterThanOrEqualTo(String value) {
-            addCriterion("type >=", value, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeGreaterThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("type >= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeLessThan(String value) {
-            addCriterion("type <", value, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeLessThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("type < ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeLessThanOrEqualTo(String value) {
-            addCriterion("type <=", value, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeLessThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("type <= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeLike(String value) {
-            addCriterion("type like", value, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeNotLike(String value) {
-            addCriterion("type not like", value, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeIn(List<String> values) {
-            addCriterion("type in", values, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeNotIn(List<String> values) {
-            addCriterion("type not in", values, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeBetween(String value1, String value2) {
-            addCriterion("type between", value1, value2, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andTypeNotBetween(String value1, String value2) {
-            addCriterion("type not between", value1, value2, "type");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleIsNull() {
-            addCriterion("rule is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleIsNotNull() {
-            addCriterion("rule is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleEqualTo(String value) {
-            addCriterion("rule =", value, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("rule = ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleNotEqualTo(String value) {
-            addCriterion("rule <>", value, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleNotEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("rule <> ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleGreaterThan(String value) {
-            addCriterion("rule >", value, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleGreaterThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("rule > ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleGreaterThanOrEqualTo(String value) {
-            addCriterion("rule >=", value, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleGreaterThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("rule >= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleLessThan(String value) {
-            addCriterion("rule <", value, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleLessThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("rule < ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleLessThanOrEqualTo(String value) {
-            addCriterion("rule <=", value, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleLessThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("rule <= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleLike(String value) {
-            addCriterion("rule like", value, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleNotLike(String value) {
-            addCriterion("rule not like", value, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleIn(List<String> values) {
-            addCriterion("rule in", values, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleNotIn(List<String> values) {
-            addCriterion("rule not in", values, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleBetween(String value1, String value2) {
-            addCriterion("rule between", value1, value2, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andRuleNotBetween(String value1, String value2) {
-            addCriterion("rule not between", value1, value2, "rule");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendIsNull() {
-            addCriterion("extend is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendIsNotNull() {
-            addCriterion("extend is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendEqualTo(String value) {
-            addCriterion("extend =", value, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("extend = ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendNotEqualTo(String value) {
-            addCriterion("extend <>", value, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendNotEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("extend <> ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendGreaterThan(String value) {
-            addCriterion("extend >", value, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendGreaterThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("extend > ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendGreaterThanOrEqualTo(String value) {
-            addCriterion("extend >=", value, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendGreaterThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("extend >= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendLessThan(String value) {
-            addCriterion("extend <", value, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendLessThanColumn(Config.Column column) {
-            addCriterion(new StringBuilder("extend < ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendLessThanOrEqualTo(String value) {
-            addCriterion("extend <=", value, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendLessThanOrEqualToColumn(Config.Column column) {
-            addCriterion(new StringBuilder("extend <= ").append(column.getEscapedColumnName()).toString());
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendLike(String value) {
-            addCriterion("extend like", value, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendNotLike(String value) {
-            addCriterion("extend not like", value, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendIn(List<String> values) {
-            addCriterion("extend in", values, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendNotIn(List<String> values) {
-            addCriterion("extend not in", values, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendBetween(String value1, String value2) {
-            addCriterion("extend between", value1, value2, "extend");
-            return (Criteria) this;
-        }
-
-        public Criteria andExtendNotBetween(String value1, String value2) {
-            addCriterion("extend not between", value1, value2, "extend");
-            return (Criteria) this;
-        }
-    }
-
-    /**
-     * This class was generated by MyBatis Generator.
-     * This class corresponds to the database table config
-     *
-     * @mbg.generated do_not_delete_during_merge Sat Aug 21 15:47:55 CST 2021
-     */
-    public static class Criteria extends GeneratedCriteria {
-        /**
-         * This field was generated by MyBatis Generator.
-         * This field corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        private ConfigExample example;
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        protected Criteria(ConfigExample example) {
-            super();
-            this.example = example;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public ConfigExample example() {
-            return this.example;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        @Deprecated
-        public Criteria andIf(boolean ifAdd, ICriteriaAdd add) {
-            if (ifAdd) {
-                add.add(this);
-            }
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Criteria when(boolean condition, ICriteriaWhen then) {
-            if (condition) {
-                then.criteria(this);
-            }
-            return this;
-        }
-
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        public Criteria when(boolean condition, ICriteriaWhen then, ICriteriaWhen otherwise) {
-            if (condition) {
-                then.criteria(this);
-            } else {
-                otherwise.criteria(this);
-            }
-            return this;
-        }
-
-        @Deprecated
-        public interface ICriteriaAdd {
-            /**
-             * This method was generated by MyBatis Generator.
-             * This method corresponds to the database table config
-             *
-             * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-             */
-            Criteria add(Criteria add);
-        }
-    }
-
-    /**
-     * This class was generated by MyBatis Generator.
-     * This class corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    public static class Criterion {
-        private String condition;
-
-        private Object value;
-
-        private Object secondValue;
-
-        private boolean noValue;
-
-        private boolean singleValue;
-
-        private boolean betweenValue;
-
-        private boolean listValue;
-
-        private String typeHandler;
-
-        public String getCondition() {
-            return condition;
-        }
-
-        public Object getValue() {
-            return value;
-        }
-
-        public Object getSecondValue() {
-            return secondValue;
-        }
-
-        public boolean isNoValue() {
-            return noValue;
-        }
-
-        public boolean isSingleValue() {
-            return singleValue;
-        }
-
-        public boolean isBetweenValue() {
-            return betweenValue;
-        }
-
-        public boolean isListValue() {
-            return listValue;
-        }
-
-        public String getTypeHandler() {
-            return typeHandler;
-        }
-
-        protected Criterion(String condition) {
-            super();
-            this.condition = condition;
-            this.typeHandler = null;
-            this.noValue = true;
-        }
-
-        protected Criterion(String condition, Object value, String typeHandler) {
-            super();
-            this.condition = condition;
-            this.value = value;
-            this.typeHandler = typeHandler;
-            if (value instanceof List<?>) {
-                this.listValue = true;
-            } else {
-                this.singleValue = true;
-            }
-        }
-
-        protected Criterion(String condition, Object value) {
-            this(condition, value, null);
-        }
-
-        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
-            super();
-            this.condition = condition;
-            this.value = value;
-            this.secondValue = secondValue;
-            this.typeHandler = typeHandler;
-            this.betweenValue = true;
-        }
-
-        protected Criterion(String condition, Object value, Object secondValue) {
-            this(condition, value, secondValue, null);
-        }
-    }
-
-    public interface ICriteriaWhen {
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        void criteria(Criteria criteria);
-    }
-
-    public interface IExampleWhen {
-        /**
-         * This method was generated by MyBatis Generator.
-         * This method corresponds to the database table config
-         *
-         * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-         */
-        void example(com.book.server.dao.entity.example.ConfigExample example);
-    }
-}

+ 0 - 204
book-server/src/main/java/com/book/server/dao/mapper/ConfigMapper.java

@@ -1,204 +0,0 @@
-package com.book.server.dao.mapper;
-
-import com.book.server.dao.entity.Config;
-import com.book.server.dao.entity.example.ConfigExample;
-import java.util.List;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Repository;
-
-@Mapper
-@Repository
-public interface ConfigMapper {
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    long countByExample(ConfigExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int deleteByExample(ConfigExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int deleteByPrimaryKey(Integer id);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int insert(Config record);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int insertSelective(@Param("record") Config record, @Param("selective") Config.Column ... selective);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    Config selectOneByExample(ConfigExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    Config selectOneByExampleSelective(@Param("example") ConfigExample example, @Param("selective") Config.Column ... selective);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    Config selectOneByExampleWithBLOBs(ConfigExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    List<Config> selectByExampleSelective(@Param("example") ConfigExample example, @Param("selective") Config.Column ... selective);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    List<Config> selectByExampleWithBLOBs(ConfigExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    List<Config> selectByExample(ConfigExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    Config selectByPrimaryKeySelective(@Param("id") Integer id, @Param("selective") Config.Column ... selective);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    Config selectByPrimaryKey(Integer id);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int updateByExampleSelective(@Param("record") Config record, @Param("example") ConfigExample example, @Param("selective") Config.Column ... selective);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int updateByExampleWithBLOBs(@Param("record") Config record, @Param("example") ConfigExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int updateByExample(@Param("record") Config record, @Param("example") ConfigExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int updateByPrimaryKeySelective(@Param("record") Config record, @Param("selective") Config.Column ... selective);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int updateByPrimaryKeyWithBLOBs(Config record);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int updateByPrimaryKey(Config record);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int batchInsert(@Param("list") List<Config> list);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int batchInsertSelective(@Param("list") List<Config> list, @Param("selective") Config.Column ... selective);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int upsert(Config record);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int upsertSelective(@Param("record") Config record, @Param("selective") Config.Column ... selective);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table config
-     *
-     * @mbg.generated Sat Aug 21 15:47:55 CST 2021
-     */
-    int upsertWithBLOBs(Config record);
-}

+ 2 - 4
book-server/src/main/java/com/book/server/service/BookService.java

@@ -1,9 +1,7 @@
 package com.book.server.service;
 
-import com.book.server.common.entity.PageResult;
-import com.book.server.dao.entity.Book;
-import com.book.server.dao.entity.SearchKeyword;
-import com.book.server.model.VO.*;
+import com.book.dao.VO.*;
+import com.book.dao.cps.pojo.SearchKeyword;
 
 import java.util.List;
 

+ 2 - 1
book-server/src/main/java/com/book/server/service/UserService.java

@@ -1,6 +1,7 @@
 package com.book.server.service;
 
-import com.book.server.dao.entity.User;
+
+import com.book.dao.cps.pojo.User;
 
 public interface UserService {
     User getUserByOpenId(String openid);

+ 7 - 5
book-server/src/main/java/com/book/server/service/impl/BookServiceImpl.java

@@ -1,11 +1,14 @@
 package com.book.server.service.impl;
 
 
+import com.book.dao.cps.mapper.*;
+import com.book.dao.cps.pojo.Book;
+import com.book.dao.cps.pojo.BookCategory;
+import com.book.dao.cps.pojo.ManageBlock;
+import com.book.dao.cps.pojo.SearchKeyword;
 import com.book.server.common.util.JsonUtils;
-import com.book.server.dao.entity.*;
-import com.book.server.dao.entity.example.*;
-import com.book.server.dao.mapper.*;
-import com.book.server.model.VO.*;
+import com.book.dao.cps.pojo.example.*;
+import com.book.dao.VO.*;
 import com.book.server.service.BookService;
 import com.book.server.utils.HttpTool;
 import com.google.gson.JsonArray;
@@ -15,7 +18,6 @@ import com.google.gson.JsonParser;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 

+ 3 - 3
book-server/src/main/java/com/book/server/service/impl/UserServiceImpl.java

@@ -1,8 +1,8 @@
 package com.book.server.service.impl;
 
-import com.book.server.dao.entity.User;
-import com.book.server.dao.entity.example.UserExample;
-import com.book.server.dao.mapper.UserMapper;
+import com.book.dao.cps.mapper.UserMapper;
+import com.book.dao.cps.pojo.User;
+import com.book.dao.cps.pojo.example.UserExample;
 import com.book.server.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 1 - 1
book-server/src/main/resources/mapper/Book2Mapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.BookMapper2">
-    <resultMap id="BaseResultMap" type="com.book.server.model.VO.BookRes">
+    <resultMap id="BaseResultMap" type="com.book.dao.VO.BookRes">
         <!--
           WARNING - @mbg.generated
           This element is automatically generated by MyBatis Generator, do not modify.

+ 8 - 8
book-server/src/main/resources/mapper/BookCategoryMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.BookCategoryMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.BookCategory">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.BookCategory">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -92,7 +92,7 @@
     -->
     id, name, image, sex, weigh, status, createtime, updatetime
   </sql>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.BookCategoryExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.BookCategoryExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -195,7 +195,7 @@
     delete from book_category
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.BookCategoryExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.BookCategoryExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -206,7 +206,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.BookCategory">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.BookCategory">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -299,7 +299,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.BookCategoryExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.BookCategoryExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -418,7 +418,7 @@
     </choose>
     where id = #{record.id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.BookCategory">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.BookCategory">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -434,7 +434,7 @@
       updatetime = #{updatetime,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.BookCategoryExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.BookCategoryExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -651,7 +651,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.BookCategory">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.BookCategory">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 8 - 8
book-server/src/main/resources/mapper/BookMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.BookMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.Book">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.Book">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -141,7 +141,7 @@
     createtime, updatetime, keywords, cansee, rank, check_rank, check_remark, editor_recommand, 
     book_tags, a, expire_time, cp_id, cp_name, tags, classify_white_list, put_ad_set
   </sql>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.BookExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.BookExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -244,7 +244,7 @@
     delete from book
     where id = #{id,jdbcType=BIGINT}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.BookExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.BookExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -255,7 +255,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.Book">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.Book">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -636,7 +636,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.BookExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.BookExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -1056,7 +1056,7 @@
     </choose>
     where id = #{record.id,jdbcType=BIGINT}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.Book">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.Book">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -1115,7 +1115,7 @@
       put_ad_set = #{putAdSet,jdbcType=TINYINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.BookExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.BookExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -1870,7 +1870,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.Book">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.Book">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 8 - 8
book-server/src/main/resources/mapper/BookshelfRecommandMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.BookshelfRecommandMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.BookshelfRecommand">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.BookshelfRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -91,7 +91,7 @@
     -->
     id, book_id, book_name, sex, status, createtime, updatetime
   </sql>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.BookshelfRecommandExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.BookshelfRecommandExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -194,7 +194,7 @@
     delete from bookshelf_recommand
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.BookshelfRecommandExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.BookshelfRecommandExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -205,7 +205,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.BookshelfRecommand">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.BookshelfRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -292,7 +292,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.BookshelfRecommandExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.BookshelfRecommandExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -404,7 +404,7 @@
     </choose>
     where id = #{record.id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.BookshelfRecommand">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.BookshelfRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -419,7 +419,7 @@
       updatetime = #{updatetime,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.BookshelfRecommandExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.BookshelfRecommandExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -624,7 +624,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.BookshelfRecommand">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.BookshelfRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 13 - 13
book-server/src/main/resources/mapper/ConfigMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.ConfigMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.Config">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.Config">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -16,7 +16,7 @@
     <result column="rule" jdbcType="VARCHAR" property="rule" />
     <result column="extend" jdbcType="VARCHAR" property="extend" />
   </resultMap>
-  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.book.server.dao.entity.Config">
+  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.book.dao.cps.pojo.Config">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -109,7 +109,7 @@
     -->
     value, content
   </sql>
-  <select id="selectByExampleWithBLOBs" parameterType="com.book.server.dao.entity.example.ConfigExample" resultMap="ResultMapWithBLOBs">
+  <select id="selectByExampleWithBLOBs" parameterType="com.book.dao.cps.pojo.example.ConfigExample" resultMap="ResultMapWithBLOBs">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -138,7 +138,7 @@
       </if>
     </if>
   </select>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.ConfigExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.ConfigExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -247,7 +247,7 @@
     delete from config
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.ConfigExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.ConfigExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -258,7 +258,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.Config">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.Config">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -365,7 +365,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.ConfigExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.ConfigExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -517,7 +517,7 @@
     </choose>
     where id = #{record.id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.book.server.dao.entity.Config">
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.book.dao.cps.pojo.Config">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -535,7 +535,7 @@
       content = #{content,jdbcType=LONGVARCHAR}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.Config">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.Config">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -551,7 +551,7 @@
       extend = #{extend,jdbcType=VARCHAR}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.ConfigExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.ConfigExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -568,7 +568,7 @@
     </if>
     limit 1
   </select>
-  <select id="selectOneByExampleWithBLOBs" parameterType="com.book.server.dao.entity.example.ConfigExample" resultMap="ResultMapWithBLOBs">
+  <select id="selectOneByExampleWithBLOBs" parameterType="com.book.dao.cps.pojo.example.ConfigExample" resultMap="ResultMapWithBLOBs">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -814,7 +814,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.Config">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.Config">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -836,7 +836,7 @@
     rule = #{rule,jdbcType=VARCHAR}, 
     extend = #{extend,jdbcType=VARCHAR}
   </insert>
-  <insert id="upsertWithBLOBs" parameterType="com.book.server.dao.entity.Config">
+  <insert id="upsertWithBLOBs" parameterType="com.book.dao.cps.pojo.Config">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 8 - 8
book-server/src/main/resources/mapper/ManageBlockMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.ManageBlockMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.ManageBlock">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.ManageBlock">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -92,7 +92,7 @@
     -->
     id, page_id, name, second_name, type, weigh, createtime, updatetime
   </sql>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.ManageBlockExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -195,7 +195,7 @@
     delete from manage_block
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.ManageBlockExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -206,7 +206,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.ManageBlock">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.ManageBlock">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -299,7 +299,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.ManageBlockExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -418,7 +418,7 @@
     </choose>
     where id = #{record.id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.ManageBlock">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.ManageBlock">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -434,7 +434,7 @@
       updatetime = #{updatetime,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.ManageBlockExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -651,7 +651,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.ManageBlock">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.ManageBlock">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 1 - 1
book-server/src/main/resources/mapper/ManageBlockResource2Mapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.ManageBlockResource2Mapper">
-  <resultMap id="BaseResultMap" type="com.book.server.model.VO.ManageBlockResourceRes">
+  <resultMap id="BaseResultMap" type="com.book.dao.VO.ManageBlockResourceRes">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 8 - 8
book-server/src/main/resources/mapper/ManageBlockResourceMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.ManageBlockResourceMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.ManageBlockResource">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.ManageBlockResource">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -94,7 +94,7 @@
     -->
     id, block_id, type, image, book_id, url, weigh, createtime, updatetime, special_id
   </sql>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.ManageBlockResourceExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockResourceExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -197,7 +197,7 @@
     delete from manage_block_resource
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.ManageBlockResourceExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockResourceExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -208,7 +208,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.ManageBlockResource">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.ManageBlockResource">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -315,7 +315,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.ManageBlockResourceExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockResourceExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -448,7 +448,7 @@
     </choose>
     where id = #{record.id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.ManageBlockResource">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.ManageBlockResource">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -466,7 +466,7 @@
       special_id = #{specialId,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.ManageBlockResourceExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.ManageBlockResourceExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -709,7 +709,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.ManageBlockResource">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.ManageBlockResource">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 8 - 8
book-server/src/main/resources/mapper/ReturnRecommandMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.ReturnRecommandMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.ReturnRecommand">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.ReturnRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -91,7 +91,7 @@
     -->
     id, book_id, book_name, sex, status, createtime, updatetime
   </sql>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.ReturnRecommandExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.ReturnRecommandExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -194,7 +194,7 @@
     delete from return_recommand
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.ReturnRecommandExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.ReturnRecommandExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -205,7 +205,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.ReturnRecommand">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.ReturnRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -292,7 +292,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.ReturnRecommandExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.ReturnRecommandExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -404,7 +404,7 @@
     </choose>
     where id = #{record.id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.ReturnRecommand">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.ReturnRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -419,7 +419,7 @@
       updatetime = #{updatetime,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.ReturnRecommandExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.ReturnRecommandExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -624,7 +624,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.ReturnRecommand">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.ReturnRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 8 - 8
book-server/src/main/resources/mapper/SearchKeywordMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.SearchKeywordMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.SearchKeyword">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.SearchKeyword">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -91,7 +91,7 @@
     -->
     id, keyword, book_id, sex, weigh, createtime, updatetime
   </sql>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.SearchKeywordExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.SearchKeywordExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -194,7 +194,7 @@
     delete from search_keyword
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.SearchKeywordExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.SearchKeywordExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -205,7 +205,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.SearchKeyword">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.SearchKeyword">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -292,7 +292,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.SearchKeywordExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.SearchKeywordExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -404,7 +404,7 @@
     </choose>
     where id = #{record.id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.SearchKeyword">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.SearchKeyword">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -419,7 +419,7 @@
       updatetime = #{updatetime,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.SearchKeywordExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.SearchKeywordExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -624,7 +624,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.SearchKeyword">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.SearchKeyword">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 8 - 8
book-server/src/main/resources/mapper/SmartRecommandMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.SmartRecommandMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.SmartRecommand">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.SmartRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -96,7 +96,7 @@
     id, book_id, book_name, title, description, image, sex, status, location, createtime, 
     updatetime
   </sql>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.SmartRecommandExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.SmartRecommandExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -199,7 +199,7 @@
     delete from smart_recommand
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.SmartRecommandExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.SmartRecommandExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -210,7 +210,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.SmartRecommand">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.SmartRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -323,7 +323,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.SmartRecommandExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.SmartRecommandExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -463,7 +463,7 @@
     </choose>
     where id = #{record.id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.SmartRecommand">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.SmartRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -482,7 +482,7 @@
       updatetime = #{updatetime,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.SmartRecommandExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.SmartRecommandExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -737,7 +737,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.SmartRecommand">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.SmartRecommand">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 8 - 8
book-server/src/main/resources/mapper/UserMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.book.server.dao.mapper.UserMapper">
-  <resultMap id="BaseResultMap" type="com.book.server.dao.entity.User">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.pojo.User">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -113,7 +113,7 @@
     subscribe_time, book_category_ids, operate_time, is_pay, kandian, free_kandian, vip_endtime, 
     register_ip, country, area, province, city, isp, channel_id, state, createtime, updatetime
   </sql>
-  <select id="selectByExample" parameterType="com.book.server.dao.entity.example.UserExample" resultMap="BaseResultMap">
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.UserExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -216,7 +216,7 @@
     delete from user
     where id = #{id,jdbcType=BIGINT}
   </delete>
-  <delete id="deleteByExample" parameterType="com.book.server.dao.entity.example.UserExample">
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.UserExample">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -227,7 +227,7 @@
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
-  <insert id="insert" parameterType="com.book.server.dao.entity.User">
+  <insert id="insert" parameterType="com.book.dao.cps.pojo.User">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -448,7 +448,7 @@
       </otherwise>
     </choose>
   </insert>
-  <select id="countByExample" parameterType="com.book.server.dao.entity.example.UserExample" resultType="java.lang.Long">
+  <select id="countByExample" parameterType="com.book.dao.cps.pojo.example.UserExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -700,7 +700,7 @@
     </choose>
     where id = #{record.id,jdbcType=BIGINT}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.book.server.dao.entity.User">
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.pojo.User">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -735,7 +735,7 @@
       updatetime = #{updatetime,jdbcType=INTEGER}
     where id = #{id,jdbcType=BIGINT}
   </update>
-  <select id="selectOneByExample" parameterType="com.book.server.dao.entity.example.UserExample" resultMap="BaseResultMap">
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.UserExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
@@ -1190,7 +1190,7 @@
       </otherwise>
     </choose>
   </insert>
-  <insert id="upsert" parameterType="com.book.server.dao.entity.User">
+  <insert id="upsert" parameterType="com.book.dao.cps.pojo.User">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.

+ 1 - 0
pom.xml

@@ -11,6 +11,7 @@
     <modules>
         <module>book-push</module>
         <module>book-server</module>
+        <module>book-dao</module>
     </modules>
 
     <properties>