Ver código fonte

添加用户阅读配置

tianyun 3 anos atrás
pai
commit
6203420cd9

+ 384 - 0
book-dao/src/main/java/com/book/dao/cps/entity/UserReadConfig.java

@@ -0,0 +1,384 @@
+package com.book.dao.cps.entity;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+@Data
+public class UserReadConfig implements Serializable {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_read_config.id
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    @JsonIgnore
+    private Long id;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_read_config.user_id
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    private Long userId;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_read_config.fontsize
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    private String fontsize;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_read_config.bg
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    private String bg;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_read_config.create_time
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    @JsonIgnore
+    private Integer createTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_read_config.update_time
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    @JsonIgnore
+    private Integer updateTime;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public static UserReadConfig.Builder builder() {
+        return new UserReadConfig.Builder();
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public static class Builder {
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        private UserReadConfig obj;
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public Builder() {
+            this.obj = new UserReadConfig();
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column user_read_config.id
+         *
+         * @param id the value for user_read_config.id
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public Builder id(Long id) {
+            obj.setId(id);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column user_read_config.user_id
+         *
+         * @param userId the value for user_read_config.user_id
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public Builder userId(Long userId) {
+            obj.setUserId(userId);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column user_read_config.fontsize
+         *
+         * @param fontsize the value for user_read_config.fontsize
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public Builder fontsize(String fontsize) {
+            obj.setFontsize(fontsize);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column user_read_config.bg
+         *
+         * @param bg the value for user_read_config.bg
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public Builder bg(String bg) {
+            obj.setBg(bg);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column user_read_config.create_time
+         *
+         * @param createTime the value for user_read_config.create_time
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public Builder createTime(Integer createTime) {
+            obj.setCreateTime(createTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column user_read_config.update_time
+         *
+         * @param updateTime the value for user_read_config.update_time
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public Builder updateTime(Integer updateTime) {
+            obj.setUpdateTime(updateTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public UserReadConfig build() {
+            return this.obj;
+        }
+    }
+
+    /**
+     * This enum was generated by MyBatis Generator.
+     * This enum corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public enum Column {
+        id("id", "id", "BIGINT", false),
+        userId("user_id", "userId", "BIGINT", false),
+        fontsize("fontsize", "fontsize", "VARCHAR", false),
+        bg("bg", "bg", "VARCHAR", false),
+        createTime("create_time", "createTime", "INTEGER", false),
+        updateTime("update_time", "updateTime", "INTEGER", false);
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        private static final String BEGINNING_DELIMITER = "\"";
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        private static final String ENDING_DELIMITER = "\"";
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        private final String column;
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        private final boolean isColumnNameDelimited;
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        private final String javaProperty;
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        private final String jdbcType;
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public String value() {
+            return this.column;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public String getValue() {
+            return this.column;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public String getJavaProperty() {
+            return this.javaProperty;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public String getJdbcType() {
+            return this.jdbcType;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public String desc() {
+            return this.getEscapedColumnName() + " DESC";
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public String asc() {
+            return this.getEscapedColumnName() + " ASC";
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public static Column[] all() {
+            return Column.values();
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public String getAliasedEscapedColumnName() {
+            return this.getEscapedColumnName();
+        }
+    }
+}

+ 164 - 0
book-dao/src/main/java/com/book/dao/cps/mapper/UserReadConfigMapper.java

@@ -0,0 +1,164 @@
+package com.book.dao.cps.mapper;
+
+import com.book.dao.cps.entity.UserReadConfig;
+import com.book.dao.cps.pojo.example.UserReadConfigExample;
+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 UserReadConfigMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    long countByExample(UserReadConfigExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int deleteByExample(UserReadConfigExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int deleteByPrimaryKey(Long id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int insert(UserReadConfig record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int insertSelective(@Param("record") UserReadConfig record, @Param("selective") UserReadConfig.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    UserReadConfig selectOneByExample(UserReadConfigExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    UserReadConfig selectOneByExampleSelective(@Param("example") UserReadConfigExample example, @Param("selective") UserReadConfig.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    List<UserReadConfig> selectByExampleSelective(@Param("example") UserReadConfigExample example, @Param("selective") UserReadConfig.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    List<UserReadConfig> selectByExample(UserReadConfigExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    UserReadConfig selectByPrimaryKeySelective(@Param("id") Long id, @Param("selective") UserReadConfig.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    UserReadConfig selectByPrimaryKey(Long id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int updateByExampleSelective(@Param("record") UserReadConfig record, @Param("example") UserReadConfigExample example, @Param("selective") UserReadConfig.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int updateByExample(@Param("record") UserReadConfig record, @Param("example") UserReadConfigExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int updateByPrimaryKeySelective(@Param("record") UserReadConfig record, @Param("selective") UserReadConfig.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int updateByPrimaryKey(UserReadConfig record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int batchInsert(@Param("list") List<UserReadConfig> list);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int batchInsertSelective(@Param("list") List<UserReadConfig> list, @Param("selective") UserReadConfig.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int upsert(UserReadConfig record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    int upsertSelective(@Param("record") UserReadConfig record, @Param("selective") UserReadConfig.Column ... selective);
+}

+ 1121 - 0
book-dao/src/main/java/com/book/dao/cps/pojo/example/UserReadConfigExample.java

@@ -0,0 +1,1121 @@
+package com.book.dao.cps.pojo.example;
+
+import com.book.dao.cps.entity.UserReadConfig;
+import java.util.ArrayList;
+import java.util.List;
+
+public class UserReadConfigExample {
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    protected String orderByClause;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    protected boolean distinct;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    protected List<Criteria> oredCriteria;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    protected Integer offset;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    protected Integer rows;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public UserReadConfigExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public UserReadConfigExample orderBy(String orderByClause) {
+        this.setOrderByClause(orderByClause);
+        return this;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public UserReadConfigExample 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 user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public void setOffset(Integer offset) {
+        this.offset = offset;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public Integer getOffset() {
+        return this.offset;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public void setRows(Integer rows) {
+        this.rows = rows;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public Integer getRows() {
+        return this.rows;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public UserReadConfigExample limit(Integer rows) {
+        this.rows = rows;
+        return this;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public UserReadConfigExample 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 user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public UserReadConfigExample 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 user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public static Criteria newAndCreateCriteria() {
+        UserReadConfigExample example = new UserReadConfigExample();
+        return example.createCriteria();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public UserReadConfigExample 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 user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+     */
+    public UserReadConfigExample 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 user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 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(Long value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("id = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Long value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("id <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Long value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("id > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("id >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Long value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("id < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Long value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("id <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Long> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Long> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Long value1, Long value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Long value1, Long value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIsNull() {
+            addCriterion("user_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIsNotNull() {
+            addCriterion("user_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdEqualTo(Long value) {
+            addCriterion("user_id =", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("user_id = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotEqualTo(Long value) {
+            addCriterion("user_id <>", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("user_id <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThan(Long value) {
+            addCriterion("user_id >", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("user_id > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("user_id >=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("user_id >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThan(Long value) {
+            addCriterion("user_id <", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("user_id < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanOrEqualTo(Long value) {
+            addCriterion("user_id <=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("user_id <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIn(List<Long> values) {
+            addCriterion("user_id in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotIn(List<Long> values) {
+            addCriterion("user_id not in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdBetween(Long value1, Long value2) {
+            addCriterion("user_id between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotBetween(Long value1, Long value2) {
+            addCriterion("user_id not between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeIsNull() {
+            addCriterion("fontsize is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeIsNotNull() {
+            addCriterion("fontsize is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeEqualTo(String value) {
+            addCriterion("fontsize =", value, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("fontsize = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeNotEqualTo(String value) {
+            addCriterion("fontsize <>", value, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeNotEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("fontsize <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeGreaterThan(String value) {
+            addCriterion("fontsize >", value, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeGreaterThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("fontsize > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeGreaterThanOrEqualTo(String value) {
+            addCriterion("fontsize >=", value, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeGreaterThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("fontsize >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeLessThan(String value) {
+            addCriterion("fontsize <", value, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeLessThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("fontsize < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeLessThanOrEqualTo(String value) {
+            addCriterion("fontsize <=", value, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeLessThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("fontsize <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeLike(String value) {
+            addCriterion("fontsize like", value, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeNotLike(String value) {
+            addCriterion("fontsize not like", value, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeIn(List<String> values) {
+            addCriterion("fontsize in", values, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeNotIn(List<String> values) {
+            addCriterion("fontsize not in", values, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeBetween(String value1, String value2) {
+            addCriterion("fontsize between", value1, value2, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andFontsizeNotBetween(String value1, String value2) {
+            addCriterion("fontsize not between", value1, value2, "fontsize");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgIsNull() {
+            addCriterion("bg is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgIsNotNull() {
+            addCriterion("bg is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgEqualTo(String value) {
+            addCriterion("bg =", value, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("bg = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andBgNotEqualTo(String value) {
+            addCriterion("bg <>", value, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgNotEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("bg <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andBgGreaterThan(String value) {
+            addCriterion("bg >", value, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgGreaterThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("bg > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andBgGreaterThanOrEqualTo(String value) {
+            addCriterion("bg >=", value, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgGreaterThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("bg >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andBgLessThan(String value) {
+            addCriterion("bg <", value, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgLessThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("bg < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andBgLessThanOrEqualTo(String value) {
+            addCriterion("bg <=", value, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgLessThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("bg <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andBgLike(String value) {
+            addCriterion("bg like", value, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgNotLike(String value) {
+            addCriterion("bg not like", value, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgIn(List<String> values) {
+            addCriterion("bg in", values, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgNotIn(List<String> values) {
+            addCriterion("bg not in", values, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgBetween(String value1, String value2) {
+            addCriterion("bg between", value1, value2, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andBgNotBetween(String value1, String value2) {
+            addCriterion("bg not between", value1, value2, "bg");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Integer value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("create_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Integer value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("create_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Integer value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("create_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("create_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Integer value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("create_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Integer value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("create_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Integer> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Integer> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Integer value1, Integer value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Integer value1, Integer value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Integer value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("update_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Integer value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("update_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Integer value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("update_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Integer value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("update_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Integer value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("update_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Integer value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualToColumn(UserReadConfig.Column column) {
+            addCriterion(new StringBuilder("update_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Integer> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Integer> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Integer value1, Integer value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Integer value1, Integer value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table user_read_config
+     *
+     * @mbg.generated do_not_delete_during_merge Tue Aug 31 13:39:59 CST 2021
+     */
+    public static class Criteria extends GeneratedCriteria {
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        private UserReadConfigExample example;
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        protected Criteria(UserReadConfigExample example) {
+            super();
+            this.example = example;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        public UserReadConfigExample example() {
+            return this.example;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+             *
+             * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+             */
+            Criteria add(Criteria add);
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table user_read_config
+     *
+     * @mbg.generated Tue Aug 31 13:39:59 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 user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        void criteria(Criteria criteria);
+    }
+
+    public interface IExampleWhen {
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table user_read_config
+         *
+         * @mbg.generated Tue Aug 31 13:39:59 CST 2021
+         */
+        void example(com.book.dao.cps.pojo.example.UserReadConfigExample example);
+    }
+}

+ 620 - 0
book-dao/src/main/resources/mapper/cps/UserReadConfigMapper.xml

@@ -0,0 +1,620 @@
+<?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.dao.cps.mapper.UserReadConfigMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.cps.entity.UserReadConfig">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 31 13:39:59 CST 2021.
+    -->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="user_id" jdbcType="BIGINT" property="userId" />
+    <result column="fontsize" jdbcType="VARCHAR" property="fontsize" />
+    <result column="bg" jdbcType="VARCHAR" property="bg" />
+    <result column="create_time" jdbcType="INTEGER" property="createTime" />
+    <result column="update_time" 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 31 13:39:59 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 31 13:39:59 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 31 13:39:59 CST 2021.
+    -->
+    id, user_id, fontsize, bg, create_time, update_time
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.cps.pojo.example.UserReadConfigExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 31 13:39:59 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from user_read_config
+    <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 31 13:39:59 CST 2021.
+    -->
+    select
+    <if test="example != null and example.distinct">
+      distinct
+    </if>
+    <choose>
+      <when test="selective != null and selective.length &gt; 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from user_read_config
+    <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 31 13:39:59 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from user_read_config
+    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 31 13:39:59 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length &gt; 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from user_read_config
+    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 31 13:39:59 CST 2021.
+    -->
+    delete from user_read_config
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.cps.pojo.example.UserReadConfigExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 31 13:39:59 CST 2021.
+    -->
+    delete from user_read_config
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.cps.entity.UserReadConfig">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 31 13:39:59 CST 2021.
+    -->
+    insert into user_read_config (id, user_id, fontsize, 
+      bg, create_time, update_time
+      )
+    values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{fontsize,jdbcType=VARCHAR}, 
+      #{bg,jdbcType=VARCHAR}, #{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 31 13:39:59 CST 2021.
+    -->
+    insert into user_read_config
+    <choose>
+      <when test="selective != null and selective.length &gt; 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.userId != null">
+            user_id,
+          </if>
+          <if test="record.fontsize != null">
+            fontsize,
+          </if>
+          <if test="record.bg != null">
+            bg,
+          </if>
+          <if test="record.createTime != null">
+            create_time,
+          </if>
+          <if test="record.updateTime != null">
+            update_time,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length &gt; 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.userId != null">
+            #{record.userId,jdbcType=BIGINT},
+          </if>
+          <if test="record.fontsize != null">
+            #{record.fontsize,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bg != null">
+            #{record.bg,jdbcType=VARCHAR},
+          </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.UserReadConfigExample" 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 31 13:39:59 CST 2021.
+    -->
+    select count(*) from user_read_config
+    <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 31 13:39:59 CST 2021.
+    -->
+    update user_read_config
+    SET
+    <choose>
+      <when test="selective != null and selective.length &gt; 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.userId != null">
+            user_id = #{record.userId,jdbcType=BIGINT},
+          </if>
+          <if test="record.fontsize != null">
+            fontsize = #{record.fontsize,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bg != null">
+            bg = #{record.bg,jdbcType=VARCHAR},
+          </if>
+          <if test="record.createTime != null">
+            create_time = #{record.createTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updateTime != null">
+            update_time = #{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 31 13:39:59 CST 2021.
+    -->
+    update user_read_config
+    set id = #{record.id,jdbcType=BIGINT},
+      user_id = #{record.userId,jdbcType=BIGINT},
+      fontsize = #{record.fontsize,jdbcType=VARCHAR},
+      bg = #{record.bg,jdbcType=VARCHAR},
+      create_time = #{record.createTime,jdbcType=INTEGER},
+      update_time = #{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 31 13:39:59 CST 2021.
+    -->
+    update user_read_config
+    SET
+    <choose>
+      <when test="selective != null and selective.length &gt; 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.escapedColumnName} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}
+        </foreach>
+      </when>
+      <otherwise>
+        <trim suffixOverrides=",">
+          <if test="record.userId != null">
+            user_id = #{record.userId,jdbcType=BIGINT},
+          </if>
+          <if test="record.fontsize != null">
+            fontsize = #{record.fontsize,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bg != null">
+            bg = #{record.bg,jdbcType=VARCHAR},
+          </if>
+          <if test="record.createTime != null">
+            create_time = #{record.createTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updateTime != null">
+            update_time = #{record.updateTime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.cps.entity.UserReadConfig">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 31 13:39:59 CST 2021.
+    -->
+    update user_read_config
+    set user_id = #{userId,jdbcType=BIGINT},
+      fontsize = #{fontsize,jdbcType=VARCHAR},
+      bg = #{bg,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=INTEGER},
+      update_time = #{updateTime,jdbcType=INTEGER}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.cps.pojo.example.UserReadConfigExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 31 13:39:59 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from user_read_config
+    <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 31 13:39:59 CST 2021.
+    -->
+    select
+    <choose>
+      <when test="selective != null and selective.length &gt; 0">
+        <foreach collection="selective" item="column" separator=",">
+          ${column.aliasedEscapedColumnName}
+        </foreach>
+      </when>
+      <otherwise>
+        <include refid="Base_Column_List" />
+      </otherwise>
+    </choose>
+    from user_read_config
+    <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 31 13:39:59 CST 2021.
+    -->
+    insert into user_read_config
+    (id, user_id, fontsize, bg, create_time, update_time)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=BIGINT}, #{item.userId,jdbcType=BIGINT}, #{item.fontsize,jdbcType=VARCHAR}, 
+        #{item.bg,jdbcType=VARCHAR}, #{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 31 13:39:59 CST 2021.
+    -->
+    insert into user_read_config (
+    <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="'user_id'.toString() == column.value">
+          #{item.userId,jdbcType=BIGINT}
+        </if>
+        <if test="'fontsize'.toString() == column.value">
+          #{item.fontsize,jdbcType=VARCHAR}
+        </if>
+        <if test="'bg'.toString() == column.value">
+          #{item.bg,jdbcType=VARCHAR}
+        </if>
+        <if test="'create_time'.toString() == column.value">
+          #{item.createTime,jdbcType=INTEGER}
+        </if>
+        <if test="'update_time'.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 31 13:39:59 CST 2021.
+    -->
+    insert into user_read_config
+    <choose>
+      <when test="selective != null and selective.length &gt; 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.userId != null">
+            user_id,
+          </if>
+          <if test="record.fontsize != null">
+            fontsize,
+          </if>
+          <if test="record.bg != null">
+            bg,
+          </if>
+          <if test="record.createTime != null">
+            create_time,
+          </if>
+          <if test="record.updateTime != null">
+            update_time,
+          </if>
+        </trim>
+        <trim prefix="(" suffix=")" suffixOverrides="," />
+      </otherwise>
+    </choose>
+    values
+    <choose>
+      <when test="selective != null and selective.length &gt; 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.userId != null">
+            #{record.userId,jdbcType=BIGINT},
+          </if>
+          <if test="record.fontsize != null">
+            #{record.fontsize,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bg != null">
+            #{record.bg,jdbcType=VARCHAR},
+          </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 &gt; 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.userId != null">
+            user_id = #{record.userId,jdbcType=BIGINT},
+          </if>
+          <if test="record.fontsize != null">
+            fontsize = #{record.fontsize,jdbcType=VARCHAR},
+          </if>
+          <if test="record.bg != null">
+            bg = #{record.bg,jdbcType=VARCHAR},
+          </if>
+          <if test="record.createTime != null">
+            create_time = #{record.createTime,jdbcType=INTEGER},
+          </if>
+          <if test="record.updateTime != null">
+            update_time = #{record.updateTime,jdbcType=INTEGER},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.cps.entity.UserReadConfig">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Tue Aug 31 13:39:59 CST 2021.
+    -->
+    insert into user_read_config
+    (id, user_id, fontsize, bg, create_time, update_time)
+    values
+    (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{fontsize,jdbcType=VARCHAR}, 
+      #{bg,jdbcType=VARCHAR}, #{createTime,jdbcType=INTEGER}, #{updateTime,jdbcType=INTEGER}
+      )
+    on duplicate key update 
+    id = #{id,jdbcType=BIGINT}, 
+    user_id = #{userId,jdbcType=BIGINT}, 
+    fontsize = #{fontsize,jdbcType=VARCHAR}, 
+    bg = #{bg,jdbcType=VARCHAR}, 
+    create_time = #{createTime,jdbcType=INTEGER}, 
+    update_time = #{updateTime,jdbcType=INTEGER}
+  </insert>
+</mapper>

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

@@ -130,7 +130,8 @@
 <!--        <table tableName="smart_recommand"></table>-->
 <!--        <table tableName="upload_book"></table>-->
 <!--        <table tableName="edit_book"></table>-->
-        <table tableName="goods"></table>
+<!--        <table tableName="goods"></table>-->
+        <table tableName="user_read_config"></table>
 
     </context>
 

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

@@ -1,14 +1,12 @@
 package com.book.server.controller;
 
+import com.book.dao.cps.entity.UserReadConfig;
 import com.book.dao.cps.pojo.User;
 import com.book.server.common.entity.Result;
 import com.book.server.service.UserService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * 用户
@@ -43,4 +41,25 @@ public class UserController extends BaseController {
         return Result.byObject(user);
     }
 
+    /**
+     * 获取用户阅读设置:颜色、字体
+     * @return
+     */
+    @GetMapping("/getReadConfig")
+    public Result<UserReadConfig> getUserReadConfigByUserId(Long userId) {
+        return Result.success(userService.getUserReadConfigByUserId(userId));
+    }
+
+    /**
+     * 设置用户阅读习惯:颜色、字体
+     * @return
+     */
+    @PostMapping("/setReadConfig")
+    public Result setUserReadConfigByUserId(@RequestBody UserReadConfig readConfig) {
+        if (readConfig.getUserId() == null) {
+            return Result.failure();
+        }
+        return Result.success(userService.setUserReadConfigByUserId(readConfig));
+    }
+
 }

+ 5 - 0
book-server/src/main/java/com/book/server/service/UserService.java

@@ -1,10 +1,15 @@
 package com.book.server.service;
 
 
+import com.book.dao.cps.entity.UserReadConfig;
 import com.book.dao.cps.pojo.User;
 
 public interface UserService {
     User getUserByOpenId(String openid);
 
     User getUserByUserId(Long userId);
+
+    UserReadConfig getUserReadConfigByUserId(Long userId);
+
+    Boolean setUserReadConfigByUserId(UserReadConfig readConfig);
 }

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

@@ -1,7 +1,11 @@
 package com.book.server.service.impl;
 
+import com.book.dao.cps.entity.UserReadConfig;
 import com.book.dao.cps.mapper.UserMapper;
+import com.book.dao.cps.mapper.UserReadConfigMapper;
 import com.book.dao.cps.pojo.User;
+import com.book.dao.cps.pojo.example.UserReadConfigExample;
+import com.book.dao.utils.DateUtils;
 import com.book.server.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -21,4 +25,33 @@ public class UserServiceImpl implements UserService {
     public User getUserByUserId(Long userId) {
         return userMapper.selectByPrimaryKey(userId);
     }
+
+    @Autowired
+    private UserReadConfigMapper userReadConfigMapper;
+
+    @Override
+    public UserReadConfig getUserReadConfigByUserId(Long userId) {
+        UserReadConfig userReadConfig = userReadConfigMapper.selectOneByExample(
+                UserReadConfigExample.newAndCreateCriteria()
+                        .andUserIdEqualTo(userId)
+                        .example()
+        );
+        return userReadConfig;
+    }
+
+    @Override
+    public Boolean setUserReadConfigByUserId(UserReadConfig readConfig) {
+        readConfig.setUpdateTime(DateUtils.getNow());
+        int i = userReadConfigMapper.updateByExample(
+                readConfig,
+                UserReadConfigExample.newAndCreateCriteria()
+                        .andUserIdEqualTo(readConfig.getUserId())
+                        .example()
+        );
+        if (i <= 0) {
+            readConfig.setCreateTime(DateUtils.getNow());
+            i = userReadConfigMapper.insert(readConfig);
+        }
+        return i > 0;
+    }
 }