瀏覽代碼

阳光数据接口调试

lijilei 3 年之前
父節點
當前提交
61dfb6ae96

+ 909 - 0
book-dao/src/main/java/com/book/dao/polardb/entity/SunUser.java

@@ -0,0 +1,909 @@
+package com.book.dao.polardb.entity;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import lombok.Data;
+
+@Data
+public class SunUser implements Serializable {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.id
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Integer id;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.user_id
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String userId;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.nickname
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String nickname;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.openid
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String openid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.mobile
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String mobile;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.province
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String province;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.city
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String city;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.sex
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String sex;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.is_subscribe
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String isSubscribe;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.operatetime
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String operatetime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.registertime
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String registertime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.authorizer_nickname
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String authorizerNickname;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.authorizer_appid
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String authorizerAppid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.subscribe_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String subscribeTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.channel_id
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String channelId;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.vip_end_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String vipEndTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.recharge_amount
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Long rechargeAmount;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.recharge_num
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Integer rechargeNum;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.first_pay
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Long firstPay;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.last_recharge_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String lastRechargeTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.total_kandian
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Integer totalKandian;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.kandian
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Integer kandian;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.referral_id
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String referralId;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.referral_id_permanent
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String referralIdPermanent;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.register_ip
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String registerIp;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.user_agent
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String userAgent;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.start_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Date startTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.end_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Date endTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user.insert_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Date insertTime;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public static SunUser.Builder builder() {
+        return new SunUser.Builder();
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public static class Builder {
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private SunUser obj;
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder() {
+            this.obj = new SunUser();
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.id
+         *
+         * @param id the value for sun_user.id
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user.user_id
+         *
+         * @param userId the value for sun_user.user_id
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder userId(String userId) {
+            obj.setUserId(userId);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.nickname
+         *
+         * @param nickname the value for sun_user.nickname
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder nickname(String nickname) {
+            obj.setNickname(nickname);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.openid
+         *
+         * @param openid the value for sun_user.openid
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder openid(String openid) {
+            obj.setOpenid(openid);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.mobile
+         *
+         * @param mobile the value for sun_user.mobile
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder mobile(String mobile) {
+            obj.setMobile(mobile);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.province
+         *
+         * @param province the value for sun_user.province
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder province(String province) {
+            obj.setProvince(province);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.city
+         *
+         * @param city the value for sun_user.city
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder city(String city) {
+            obj.setCity(city);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.sex
+         *
+         * @param sex the value for sun_user.sex
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder sex(String sex) {
+            obj.setSex(sex);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.is_subscribe
+         *
+         * @param isSubscribe the value for sun_user.is_subscribe
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder isSubscribe(String isSubscribe) {
+            obj.setIsSubscribe(isSubscribe);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.operatetime
+         *
+         * @param operatetime the value for sun_user.operatetime
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder operatetime(String operatetime) {
+            obj.setOperatetime(operatetime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.registertime
+         *
+         * @param registertime the value for sun_user.registertime
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder registertime(String registertime) {
+            obj.setRegistertime(registertime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.authorizer_nickname
+         *
+         * @param authorizerNickname the value for sun_user.authorizer_nickname
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder authorizerNickname(String authorizerNickname) {
+            obj.setAuthorizerNickname(authorizerNickname);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.authorizer_appid
+         *
+         * @param authorizerAppid the value for sun_user.authorizer_appid
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder authorizerAppid(String authorizerAppid) {
+            obj.setAuthorizerAppid(authorizerAppid);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.subscribe_time
+         *
+         * @param subscribeTime the value for sun_user.subscribe_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder subscribeTime(String subscribeTime) {
+            obj.setSubscribeTime(subscribeTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.channel_id
+         *
+         * @param channelId the value for sun_user.channel_id
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder channelId(String channelId) {
+            obj.setChannelId(channelId);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.vip_end_time
+         *
+         * @param vipEndTime the value for sun_user.vip_end_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder vipEndTime(String vipEndTime) {
+            obj.setVipEndTime(vipEndTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.recharge_amount
+         *
+         * @param rechargeAmount the value for sun_user.recharge_amount
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder rechargeAmount(Long rechargeAmount) {
+            obj.setRechargeAmount(rechargeAmount);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.recharge_num
+         *
+         * @param rechargeNum the value for sun_user.recharge_num
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder rechargeNum(Integer rechargeNum) {
+            obj.setRechargeNum(rechargeNum);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.first_pay
+         *
+         * @param firstPay the value for sun_user.first_pay
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder firstPay(Long firstPay) {
+            obj.setFirstPay(firstPay);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.last_recharge_time
+         *
+         * @param lastRechargeTime the value for sun_user.last_recharge_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder lastRechargeTime(String lastRechargeTime) {
+            obj.setLastRechargeTime(lastRechargeTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.total_kandian
+         *
+         * @param totalKandian the value for sun_user.total_kandian
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder totalKandian(Integer totalKandian) {
+            obj.setTotalKandian(totalKandian);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.kandian
+         *
+         * @param kandian the value for sun_user.kandian
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder kandian(Integer kandian) {
+            obj.setKandian(kandian);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.referral_id
+         *
+         * @param referralId the value for sun_user.referral_id
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder referralId(String referralId) {
+            obj.setReferralId(referralId);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.referral_id_permanent
+         *
+         * @param referralIdPermanent the value for sun_user.referral_id_permanent
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder referralIdPermanent(String referralIdPermanent) {
+            obj.setReferralIdPermanent(referralIdPermanent);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.register_ip
+         *
+         * @param registerIp the value for sun_user.register_ip
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder registerIp(String registerIp) {
+            obj.setRegisterIp(registerIp);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.user_agent
+         *
+         * @param userAgent the value for sun_user.user_agent
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder userAgent(String userAgent) {
+            obj.setUserAgent(userAgent);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.start_time
+         *
+         * @param startTime the value for sun_user.start_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder startTime(Date startTime) {
+            obj.setStartTime(startTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.end_time
+         *
+         * @param endTime the value for sun_user.end_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder endTime(Date endTime) {
+            obj.setEndTime(endTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user.insert_time
+         *
+         * @param insertTime the value for sun_user.insert_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder insertTime(Date insertTime) {
+            obj.setInsertTime(insertTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public SunUser build() {
+            return this.obj;
+        }
+    }
+
+    /**
+     * This enum was generated by MyBatis Generator.
+     * This enum corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public enum Column {
+        id("id", "id", "INTEGER", false),
+        userId("user_id", "userId", "VARCHAR", false),
+        nickname("nickname", "nickname", "VARCHAR", false),
+        openid("openid", "openid", "VARCHAR", false),
+        mobile("mobile", "mobile", "VARCHAR", false),
+        province("province", "province", "VARCHAR", false),
+        city("city", "city", "VARCHAR", false),
+        sex("sex", "sex", "VARCHAR", false),
+        isSubscribe("is_subscribe", "isSubscribe", "VARCHAR", false),
+        operatetime("operatetime", "operatetime", "VARCHAR", false),
+        registertime("registertime", "registertime", "VARCHAR", false),
+        authorizerNickname("authorizer_nickname", "authorizerNickname", "VARCHAR", false),
+        authorizerAppid("authorizer_appid", "authorizerAppid", "VARCHAR", false),
+        subscribeTime("subscribe_time", "subscribeTime", "VARCHAR", false),
+        channelId("channel_id", "channelId", "VARCHAR", false),
+        vipEndTime("vip_end_time", "vipEndTime", "VARCHAR", false),
+        rechargeAmount("recharge_amount", "rechargeAmount", "DECIMAL", false),
+        rechargeNum("recharge_num", "rechargeNum", "INTEGER", false),
+        firstPay("first_pay", "firstPay", "DECIMAL", false),
+        lastRechargeTime("last_recharge_time", "lastRechargeTime", "VARCHAR", false),
+        totalKandian("total_kandian", "totalKandian", "INTEGER", false),
+        kandian("kandian", "kandian", "INTEGER", false),
+        referralId("referral_id", "referralId", "VARCHAR", false),
+        referralIdPermanent("referral_id_permanent", "referralIdPermanent", "VARCHAR", false),
+        registerIp("register_ip", "registerIp", "VARCHAR", false),
+        userAgent("user_agent", "userAgent", "VARCHAR", false),
+        startTime("start_time", "startTime", "TIMESTAMP", false),
+        endTime("end_time", "endTime", "TIMESTAMP", false),
+        insertTime("insert_time", "insertTime", "TIMESTAMP", false);
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private static final String BEGINNING_DELIMITER = "\"";
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private static final String ENDING_DELIMITER = "\"";
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private final String column;
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private final boolean isColumnNameDelimited;
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private final String javaProperty;
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private final String jdbcType;
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String value() {
+            return this.column;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String getValue() {
+            return this.column;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String getJavaProperty() {
+            return this.javaProperty;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String getJdbcType() {
+            return this.jdbcType;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String desc() {
+            return this.getEscapedColumnName() + " DESC";
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String asc() {
+            return this.getEscapedColumnName() + " ASC";
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public static Column[] all() {
+            return Column.values();
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String getAliasedEscapedColumnName() {
+            return this.getEscapedColumnName();
+        }
+    }
+}

+ 886 - 0
book-dao/src/main/java/com/book/dao/polardb/entity/SunUserActive.java

@@ -0,0 +1,886 @@
+package com.book.dao.polardb.entity;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import lombok.Data;
+
+@Data
+public class SunUserActive implements Serializable {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.id
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Integer id;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.user_id
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String userId;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.nickname
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String nickname;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.openid
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String openid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.mobile
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String mobile;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.province
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String province;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.city
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String city;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.sex
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String sex;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.is_subscribe
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String isSubscribe;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.operatetime
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String operatetime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.registertime
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String registertime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.authorizer_nickname
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String authorizerNickname;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.authorizer_appid
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String authorizerAppid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.subscribe_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String subscribeTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.channel_id
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String channelId;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.vip_end_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String vipEndTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.recharge_amount
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Long rechargeAmount;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.recharge_num
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Integer rechargeNum;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.first_pay
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Long firstPay;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.last_recharge_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String lastRechargeTime;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.total_kandian
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Integer totalKandian;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.kandian
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Integer kandian;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.referral_id
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String referralId;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.referral_id_permanent
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String referralIdPermanent;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.register_ip
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String registerIp;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.user_agent
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private String userAgent;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.collect_date
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Date collectDate;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column sun_user_active.insert_time
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private Date insertTime;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public static SunUserActive.Builder builder() {
+        return new SunUserActive.Builder();
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public static class Builder {
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private SunUserActive obj;
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder() {
+            this.obj = new SunUserActive();
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.id
+         *
+         * @param id the value for sun_user_active.id
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active.user_id
+         *
+         * @param userId the value for sun_user_active.user_id
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder userId(String userId) {
+            obj.setUserId(userId);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.nickname
+         *
+         * @param nickname the value for sun_user_active.nickname
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder nickname(String nickname) {
+            obj.setNickname(nickname);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.openid
+         *
+         * @param openid the value for sun_user_active.openid
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder openid(String openid) {
+            obj.setOpenid(openid);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.mobile
+         *
+         * @param mobile the value for sun_user_active.mobile
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder mobile(String mobile) {
+            obj.setMobile(mobile);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.province
+         *
+         * @param province the value for sun_user_active.province
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder province(String province) {
+            obj.setProvince(province);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.city
+         *
+         * @param city the value for sun_user_active.city
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder city(String city) {
+            obj.setCity(city);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.sex
+         *
+         * @param sex the value for sun_user_active.sex
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder sex(String sex) {
+            obj.setSex(sex);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.is_subscribe
+         *
+         * @param isSubscribe the value for sun_user_active.is_subscribe
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder isSubscribe(String isSubscribe) {
+            obj.setIsSubscribe(isSubscribe);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.operatetime
+         *
+         * @param operatetime the value for sun_user_active.operatetime
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder operatetime(String operatetime) {
+            obj.setOperatetime(operatetime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.registertime
+         *
+         * @param registertime the value for sun_user_active.registertime
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder registertime(String registertime) {
+            obj.setRegistertime(registertime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.authorizer_nickname
+         *
+         * @param authorizerNickname the value for sun_user_active.authorizer_nickname
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder authorizerNickname(String authorizerNickname) {
+            obj.setAuthorizerNickname(authorizerNickname);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.authorizer_appid
+         *
+         * @param authorizerAppid the value for sun_user_active.authorizer_appid
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder authorizerAppid(String authorizerAppid) {
+            obj.setAuthorizerAppid(authorizerAppid);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.subscribe_time
+         *
+         * @param subscribeTime the value for sun_user_active.subscribe_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder subscribeTime(String subscribeTime) {
+            obj.setSubscribeTime(subscribeTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.channel_id
+         *
+         * @param channelId the value for sun_user_active.channel_id
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder channelId(String channelId) {
+            obj.setChannelId(channelId);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.vip_end_time
+         *
+         * @param vipEndTime the value for sun_user_active.vip_end_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder vipEndTime(String vipEndTime) {
+            obj.setVipEndTime(vipEndTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.recharge_amount
+         *
+         * @param rechargeAmount the value for sun_user_active.recharge_amount
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder rechargeAmount(Long rechargeAmount) {
+            obj.setRechargeAmount(rechargeAmount);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.recharge_num
+         *
+         * @param rechargeNum the value for sun_user_active.recharge_num
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder rechargeNum(Integer rechargeNum) {
+            obj.setRechargeNum(rechargeNum);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.first_pay
+         *
+         * @param firstPay the value for sun_user_active.first_pay
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder firstPay(Long firstPay) {
+            obj.setFirstPay(firstPay);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.last_recharge_time
+         *
+         * @param lastRechargeTime the value for sun_user_active.last_recharge_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder lastRechargeTime(String lastRechargeTime) {
+            obj.setLastRechargeTime(lastRechargeTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.total_kandian
+         *
+         * @param totalKandian the value for sun_user_active.total_kandian
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder totalKandian(Integer totalKandian) {
+            obj.setTotalKandian(totalKandian);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.kandian
+         *
+         * @param kandian the value for sun_user_active.kandian
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder kandian(Integer kandian) {
+            obj.setKandian(kandian);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.referral_id
+         *
+         * @param referralId the value for sun_user_active.referral_id
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder referralId(String referralId) {
+            obj.setReferralId(referralId);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.referral_id_permanent
+         *
+         * @param referralIdPermanent the value for sun_user_active.referral_id_permanent
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder referralIdPermanent(String referralIdPermanent) {
+            obj.setReferralIdPermanent(referralIdPermanent);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.register_ip
+         *
+         * @param registerIp the value for sun_user_active.register_ip
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder registerIp(String registerIp) {
+            obj.setRegisterIp(registerIp);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.user_agent
+         *
+         * @param userAgent the value for sun_user_active.user_agent
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder userAgent(String userAgent) {
+            obj.setUserAgent(userAgent);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.collect_date
+         *
+         * @param collectDate the value for sun_user_active.collect_date
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder collectDate(Date collectDate) {
+            obj.setCollectDate(collectDate);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method sets the value of the database column sun_user_active.insert_time
+         *
+         * @param insertTime the value for sun_user_active.insert_time
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public Builder insertTime(Date insertTime) {
+            obj.setInsertTime(insertTime);
+            return this;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public SunUserActive build() {
+            return this.obj;
+        }
+    }
+
+    /**
+     * This enum was generated by MyBatis Generator.
+     * This enum corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public enum Column {
+        id("id", "id", "INTEGER", false),
+        userId("user_id", "userId", "VARCHAR", false),
+        nickname("nickname", "nickname", "VARCHAR", false),
+        openid("openid", "openid", "VARCHAR", false),
+        mobile("mobile", "mobile", "VARCHAR", false),
+        province("province", "province", "VARCHAR", false),
+        city("city", "city", "VARCHAR", false),
+        sex("sex", "sex", "VARCHAR", false),
+        isSubscribe("is_subscribe", "isSubscribe", "VARCHAR", false),
+        operatetime("operatetime", "operatetime", "VARCHAR", false),
+        registertime("registertime", "registertime", "VARCHAR", false),
+        authorizerNickname("authorizer_nickname", "authorizerNickname", "VARCHAR", false),
+        authorizerAppid("authorizer_appid", "authorizerAppid", "VARCHAR", false),
+        subscribeTime("subscribe_time", "subscribeTime", "VARCHAR", false),
+        channelId("channel_id", "channelId", "VARCHAR", false),
+        vipEndTime("vip_end_time", "vipEndTime", "VARCHAR", false),
+        rechargeAmount("recharge_amount", "rechargeAmount", "DECIMAL", false),
+        rechargeNum("recharge_num", "rechargeNum", "INTEGER", false),
+        firstPay("first_pay", "firstPay", "DECIMAL", false),
+        lastRechargeTime("last_recharge_time", "lastRechargeTime", "VARCHAR", false),
+        totalKandian("total_kandian", "totalKandian", "INTEGER", false),
+        kandian("kandian", "kandian", "INTEGER", false),
+        referralId("referral_id", "referralId", "VARCHAR", false),
+        referralIdPermanent("referral_id_permanent", "referralIdPermanent", "VARCHAR", false),
+        registerIp("register_ip", "registerIp", "VARCHAR", false),
+        userAgent("user_agent", "userAgent", "VARCHAR", false),
+        collectDate("collect_date", "collectDate", "TIMESTAMP", false),
+        insertTime("insert_time", "insertTime", "TIMESTAMP", false);
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private static final String BEGINNING_DELIMITER = "\"";
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private static final String ENDING_DELIMITER = "\"";
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private final String column;
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private final boolean isColumnNameDelimited;
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private final String javaProperty;
+
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private final String jdbcType;
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String value() {
+            return this.column;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String getValue() {
+            return this.column;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String getJavaProperty() {
+            return this.javaProperty;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String getJdbcType() {
+            return this.jdbcType;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String desc() {
+            return this.getEscapedColumnName() + " DESC";
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String asc() {
+            return this.getEscapedColumnName() + " ASC";
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public static Column[] all() {
+            return Column.values();
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public String getAliasedEscapedColumnName() {
+            return this.getEscapedColumnName();
+        }
+    }
+}

+ 164 - 0
book-dao/src/main/java/com/book/dao/polardb/mapper/SunUserActiveMapper.java

@@ -0,0 +1,164 @@
+package com.book.dao.polardb.mapper;
+
+import com.book.dao.polardb.entity.SunUserActive;
+import com.book.dao.polardb.pojo.example.SunUserActiveExample;
+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 SunUserActiveMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    long countByExample(SunUserActiveExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int deleteByExample(SunUserActiveExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int deleteByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int insert(SunUserActive record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int insertSelective(@Param("record") SunUserActive record, @Param("selective") SunUserActive.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    SunUserActive selectOneByExample(SunUserActiveExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    SunUserActive selectOneByExampleSelective(@Param("example") SunUserActiveExample example, @Param("selective") SunUserActive.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    List<SunUserActive> selectByExampleSelective(@Param("example") SunUserActiveExample example, @Param("selective") SunUserActive.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    List<SunUserActive> selectByExample(SunUserActiveExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    SunUserActive selectByPrimaryKeySelective(@Param("id") Integer id, @Param("selective") SunUserActive.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    SunUserActive selectByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int updateByExampleSelective(@Param("record") SunUserActive record, @Param("example") SunUserActiveExample example, @Param("selective") SunUserActive.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int updateByExample(@Param("record") SunUserActive record, @Param("example") SunUserActiveExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int updateByPrimaryKeySelective(@Param("record") SunUserActive record, @Param("selective") SunUserActive.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int updateByPrimaryKey(SunUserActive record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int batchInsert(@Param("list") List<SunUserActive> list);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int batchInsertSelective(@Param("list") List<SunUserActive> list, @Param("selective") SunUserActive.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int upsert(SunUserActive record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int upsertSelective(@Param("record") SunUserActive record, @Param("selective") SunUserActive.Column ... selective);
+}

+ 164 - 0
book-dao/src/main/java/com/book/dao/polardb/mapper/SunUserMapper.java

@@ -0,0 +1,164 @@
+package com.book.dao.polardb.mapper;
+
+import com.book.dao.polardb.entity.SunUser;
+import com.book.dao.polardb.pojo.example.SunUserExample;
+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 SunUserMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    long countByExample(SunUserExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int deleteByExample(SunUserExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int deleteByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int insert(SunUser record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int insertSelective(@Param("record") SunUser record, @Param("selective") SunUser.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    SunUser selectOneByExample(SunUserExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    SunUser selectOneByExampleSelective(@Param("example") SunUserExample example, @Param("selective") SunUser.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    List<SunUser> selectByExampleSelective(@Param("example") SunUserExample example, @Param("selective") SunUser.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    List<SunUser> selectByExample(SunUserExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    SunUser selectByPrimaryKeySelective(@Param("id") Integer id, @Param("selective") SunUser.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    SunUser selectByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int updateByExampleSelective(@Param("record") SunUser record, @Param("example") SunUserExample example, @Param("selective") SunUser.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int updateByExample(@Param("record") SunUser record, @Param("example") SunUserExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int updateByPrimaryKeySelective(@Param("record") SunUser record, @Param("selective") SunUser.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int updateByPrimaryKey(SunUser record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int batchInsert(@Param("list") List<SunUser> list);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int batchInsertSelective(@Param("list") List<SunUser> list, @Param("selective") SunUser.Column ... selective);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int upsert(SunUser record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    int upsertSelective(@Param("record") SunUser record, @Param("selective") SunUser.Column ... selective);
+}

+ 3282 - 0
book-dao/src/main/java/com/book/dao/polardb/pojo/example/SunUserActiveExample.java

@@ -0,0 +1,3282 @@
+package com.book.dao.polardb.pojo.example;
+
+import com.book.dao.polardb.entity.SunUserActive;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class SunUserActiveExample {
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected String orderByClause;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected boolean distinct;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected List<Criteria> oredCriteria;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected Integer offset;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected Integer rows;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserActiveExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserActiveExample orderBy(String orderByClause) {
+        this.setOrderByClause(orderByClause);
+        return this;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserActiveExample 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 sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void setOffset(Integer offset) {
+        this.offset = offset;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public Integer getOffset() {
+        return this.offset;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void setRows(Integer rows) {
+        this.rows = rows;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public Integer getRows() {
+        return this.rows;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserActiveExample limit(Integer rows) {
+        this.rows = rows;
+        return this;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserActiveExample 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 sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserActiveExample 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 sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public static Criteria newAndCreateCriteria() {
+        SunUserActiveExample example = new SunUserActiveExample();
+        return example.createCriteria();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserActiveExample 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 sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserActiveExample 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 sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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(SunUserActive.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(SunUserActive.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(SunUserActive.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(SunUserActive.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(SunUserActive.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(SunUserActive.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 andUserIdIsNull() {
+            addCriterion("user_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIsNotNull() {
+            addCriterion("user_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdEqualTo(String value) {
+            addCriterion("user_id =", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_id = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotEqualTo(String value) {
+            addCriterion("user_id <>", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_id <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThan(String value) {
+            addCriterion("user_id >", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_id > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanOrEqualTo(String value) {
+            addCriterion("user_id >=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_id >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThan(String value) {
+            addCriterion("user_id <", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_id < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanOrEqualTo(String value) {
+            addCriterion("user_id <=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_id <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLike(String value) {
+            addCriterion("user_id like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotLike(String value) {
+            addCriterion("user_id not like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIn(List<String> values) {
+            addCriterion("user_id in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotIn(List<String> values) {
+            addCriterion("user_id not in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdBetween(String value1, String value2) {
+            addCriterion("user_id between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotBetween(String value1, String value2) {
+            addCriterion("user_id not between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameIsNull() {
+            addCriterion("nickname is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameIsNotNull() {
+            addCriterion("nickname is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameEqualTo(String value) {
+            addCriterion("nickname =", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("nickname = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotEqualTo(String value) {
+            addCriterion("nickname <>", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("nickname <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameGreaterThan(String value) {
+            addCriterion("nickname >", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("nickname > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameGreaterThanOrEqualTo(String value) {
+            addCriterion("nickname >=", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("nickname >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLessThan(String value) {
+            addCriterion("nickname <", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("nickname < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLessThanOrEqualTo(String value) {
+            addCriterion("nickname <=", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("nickname <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLike(String value) {
+            addCriterion("nickname like", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotLike(String value) {
+            addCriterion("nickname not like", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameIn(List<String> values) {
+            addCriterion("nickname in", values, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotIn(List<String> values) {
+            addCriterion("nickname not in", values, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameBetween(String value1, String value2) {
+            addCriterion("nickname between", value1, value2, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotBetween(String value1, String value2) {
+            addCriterion("nickname not between", value1, value2, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidIsNull() {
+            addCriterion("openid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidIsNotNull() {
+            addCriterion("openid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidEqualTo(String value) {
+            addCriterion("openid =", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("openid = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotEqualTo(String value) {
+            addCriterion("openid <>", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("openid <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidGreaterThan(String value) {
+            addCriterion("openid >", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("openid > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidGreaterThanOrEqualTo(String value) {
+            addCriterion("openid >=", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("openid >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLessThan(String value) {
+            addCriterion("openid <", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("openid < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLessThanOrEqualTo(String value) {
+            addCriterion("openid <=", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("openid <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLike(String value) {
+            addCriterion("openid like", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotLike(String value) {
+            addCriterion("openid not like", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidIn(List<String> values) {
+            addCriterion("openid in", values, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotIn(List<String> values) {
+            addCriterion("openid not in", values, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidBetween(String value1, String value2) {
+            addCriterion("openid between", value1, value2, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotBetween(String value1, String value2) {
+            addCriterion("openid not between", value1, value2, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileIsNull() {
+            addCriterion("mobile is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileIsNotNull() {
+            addCriterion("mobile is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileEqualTo(String value) {
+            addCriterion("mobile =", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("mobile = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotEqualTo(String value) {
+            addCriterion("mobile <>", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("mobile <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileGreaterThan(String value) {
+            addCriterion("mobile >", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("mobile > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileGreaterThanOrEqualTo(String value) {
+            addCriterion("mobile >=", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("mobile >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLessThan(String value) {
+            addCriterion("mobile <", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("mobile < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLessThanOrEqualTo(String value) {
+            addCriterion("mobile <=", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("mobile <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLike(String value) {
+            addCriterion("mobile like", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotLike(String value) {
+            addCriterion("mobile not like", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileIn(List<String> values) {
+            addCriterion("mobile in", values, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotIn(List<String> values) {
+            addCriterion("mobile not in", values, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileBetween(String value1, String value2) {
+            addCriterion("mobile between", value1, value2, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotBetween(String value1, String value2) {
+            addCriterion("mobile not between", value1, value2, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIsNull() {
+            addCriterion("province is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIsNotNull() {
+            addCriterion("province is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceEqualTo(String value) {
+            addCriterion("province =", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("province = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotEqualTo(String value) {
+            addCriterion("province <>", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("province <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceGreaterThan(String value) {
+            addCriterion("province >", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("province > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceGreaterThanOrEqualTo(String value) {
+            addCriterion("province >=", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("province >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLessThan(String value) {
+            addCriterion("province <", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("province < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLessThanOrEqualTo(String value) {
+            addCriterion("province <=", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("province <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLike(String value) {
+            addCriterion("province like", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotLike(String value) {
+            addCriterion("province not like", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIn(List<String> values) {
+            addCriterion("province in", values, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotIn(List<String> values) {
+            addCriterion("province not in", values, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceBetween(String value1, String value2) {
+            addCriterion("province between", value1, value2, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotBetween(String value1, String value2) {
+            addCriterion("province not between", value1, value2, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIsNull() {
+            addCriterion("city is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIsNotNull() {
+            addCriterion("city is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityEqualTo(String value) {
+            addCriterion("city =", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("city = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotEqualTo(String value) {
+            addCriterion("city <>", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("city <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityGreaterThan(String value) {
+            addCriterion("city >", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("city > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityGreaterThanOrEqualTo(String value) {
+            addCriterion("city >=", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("city >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLessThan(String value) {
+            addCriterion("city <", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("city < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLessThanOrEqualTo(String value) {
+            addCriterion("city <=", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("city <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLike(String value) {
+            addCriterion("city like", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotLike(String value) {
+            addCriterion("city not like", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIn(List<String> values) {
+            addCriterion("city in", values, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotIn(List<String> values) {
+            addCriterion("city not in", values, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityBetween(String value1, String value2) {
+            addCriterion("city between", value1, value2, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotBetween(String value1, String value2) {
+            addCriterion("city not between", value1, value2, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexIsNull() {
+            addCriterion("sex is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexIsNotNull() {
+            addCriterion("sex is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexEqualTo(String value) {
+            addCriterion("sex =", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("sex = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotEqualTo(String value) {
+            addCriterion("sex <>", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("sex <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexGreaterThan(String value) {
+            addCriterion("sex >", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("sex > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexGreaterThanOrEqualTo(String value) {
+            addCriterion("sex >=", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("sex >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLessThan(String value) {
+            addCriterion("sex <", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("sex < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLessThanOrEqualTo(String value) {
+            addCriterion("sex <=", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("sex <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLike(String value) {
+            addCriterion("sex like", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotLike(String value) {
+            addCriterion("sex not like", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexIn(List<String> values) {
+            addCriterion("sex in", values, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotIn(List<String> values) {
+            addCriterion("sex not in", values, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexBetween(String value1, String value2) {
+            addCriterion("sex between", value1, value2, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotBetween(String value1, String value2) {
+            addCriterion("sex not between", value1, value2, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeIsNull() {
+            addCriterion("is_subscribe is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeIsNotNull() {
+            addCriterion("is_subscribe is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeEqualTo(String value) {
+            addCriterion("is_subscribe =", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("is_subscribe = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotEqualTo(String value) {
+            addCriterion("is_subscribe <>", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("is_subscribe <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeGreaterThan(String value) {
+            addCriterion("is_subscribe >", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("is_subscribe > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeGreaterThanOrEqualTo(String value) {
+            addCriterion("is_subscribe >=", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("is_subscribe >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLessThan(String value) {
+            addCriterion("is_subscribe <", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("is_subscribe < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLessThanOrEqualTo(String value) {
+            addCriterion("is_subscribe <=", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("is_subscribe <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLike(String value) {
+            addCriterion("is_subscribe like", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotLike(String value) {
+            addCriterion("is_subscribe not like", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeIn(List<String> values) {
+            addCriterion("is_subscribe in", values, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotIn(List<String> values) {
+            addCriterion("is_subscribe not in", values, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeBetween(String value1, String value2) {
+            addCriterion("is_subscribe between", value1, value2, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotBetween(String value1, String value2) {
+            addCriterion("is_subscribe not between", value1, value2, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeIsNull() {
+            addCriterion("operatetime is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeIsNotNull() {
+            addCriterion("operatetime is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeEqualTo(String value) {
+            addCriterion("operatetime =", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("operatetime = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotEqualTo(String value) {
+            addCriterion("operatetime <>", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("operatetime <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeGreaterThan(String value) {
+            addCriterion("operatetime >", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("operatetime > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeGreaterThanOrEqualTo(String value) {
+            addCriterion("operatetime >=", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("operatetime >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLessThan(String value) {
+            addCriterion("operatetime <", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("operatetime < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLessThanOrEqualTo(String value) {
+            addCriterion("operatetime <=", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("operatetime <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLike(String value) {
+            addCriterion("operatetime like", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotLike(String value) {
+            addCriterion("operatetime not like", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeIn(List<String> values) {
+            addCriterion("operatetime in", values, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotIn(List<String> values) {
+            addCriterion("operatetime not in", values, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeBetween(String value1, String value2) {
+            addCriterion("operatetime between", value1, value2, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotBetween(String value1, String value2) {
+            addCriterion("operatetime not between", value1, value2, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeIsNull() {
+            addCriterion("registertime is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeIsNotNull() {
+            addCriterion("registertime is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeEqualTo(String value) {
+            addCriterion("registertime =", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("registertime = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotEqualTo(String value) {
+            addCriterion("registertime <>", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("registertime <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeGreaterThan(String value) {
+            addCriterion("registertime >", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("registertime > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeGreaterThanOrEqualTo(String value) {
+            addCriterion("registertime >=", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("registertime >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLessThan(String value) {
+            addCriterion("registertime <", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("registertime < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLessThanOrEqualTo(String value) {
+            addCriterion("registertime <=", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("registertime <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLike(String value) {
+            addCriterion("registertime like", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotLike(String value) {
+            addCriterion("registertime not like", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeIn(List<String> values) {
+            addCriterion("registertime in", values, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotIn(List<String> values) {
+            addCriterion("registertime not in", values, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeBetween(String value1, String value2) {
+            addCriterion("registertime between", value1, value2, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotBetween(String value1, String value2) {
+            addCriterion("registertime not between", value1, value2, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameIsNull() {
+            addCriterion("authorizer_nickname is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameIsNotNull() {
+            addCriterion("authorizer_nickname is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameEqualTo(String value) {
+            addCriterion("authorizer_nickname =", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotEqualTo(String value) {
+            addCriterion("authorizer_nickname <>", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameGreaterThan(String value) {
+            addCriterion("authorizer_nickname >", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameGreaterThanOrEqualTo(String value) {
+            addCriterion("authorizer_nickname >=", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLessThan(String value) {
+            addCriterion("authorizer_nickname <", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLessThanOrEqualTo(String value) {
+            addCriterion("authorizer_nickname <=", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLike(String value) {
+            addCriterion("authorizer_nickname like", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotLike(String value) {
+            addCriterion("authorizer_nickname not like", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameIn(List<String> values) {
+            addCriterion("authorizer_nickname in", values, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotIn(List<String> values) {
+            addCriterion("authorizer_nickname not in", values, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameBetween(String value1, String value2) {
+            addCriterion("authorizer_nickname between", value1, value2, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotBetween(String value1, String value2) {
+            addCriterion("authorizer_nickname not between", value1, value2, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidIsNull() {
+            addCriterion("authorizer_appid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidIsNotNull() {
+            addCriterion("authorizer_appid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidEqualTo(String value) {
+            addCriterion("authorizer_appid =", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotEqualTo(String value) {
+            addCriterion("authorizer_appid <>", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidGreaterThan(String value) {
+            addCriterion("authorizer_appid >", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidGreaterThanOrEqualTo(String value) {
+            addCriterion("authorizer_appid >=", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLessThan(String value) {
+            addCriterion("authorizer_appid <", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLessThanOrEqualTo(String value) {
+            addCriterion("authorizer_appid <=", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLike(String value) {
+            addCriterion("authorizer_appid like", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotLike(String value) {
+            addCriterion("authorizer_appid not like", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidIn(List<String> values) {
+            addCriterion("authorizer_appid in", values, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotIn(List<String> values) {
+            addCriterion("authorizer_appid not in", values, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidBetween(String value1, String value2) {
+            addCriterion("authorizer_appid between", value1, value2, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotBetween(String value1, String value2) {
+            addCriterion("authorizer_appid not between", value1, value2, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeIsNull() {
+            addCriterion("subscribe_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeIsNotNull() {
+            addCriterion("subscribe_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeEqualTo(String value) {
+            addCriterion("subscribe_time =", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("subscribe_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotEqualTo(String value) {
+            addCriterion("subscribe_time <>", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("subscribe_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeGreaterThan(String value) {
+            addCriterion("subscribe_time >", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("subscribe_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("subscribe_time >=", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("subscribe_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLessThan(String value) {
+            addCriterion("subscribe_time <", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("subscribe_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLessThanOrEqualTo(String value) {
+            addCriterion("subscribe_time <=", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("subscribe_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLike(String value) {
+            addCriterion("subscribe_time like", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotLike(String value) {
+            addCriterion("subscribe_time not like", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeIn(List<String> values) {
+            addCriterion("subscribe_time in", values, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotIn(List<String> values) {
+            addCriterion("subscribe_time not in", values, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeBetween(String value1, String value2) {
+            addCriterion("subscribe_time between", value1, value2, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotBetween(String value1, String value2) {
+            addCriterion("subscribe_time not between", value1, value2, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdIsNull() {
+            addCriterion("channel_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdIsNotNull() {
+            addCriterion("channel_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdEqualTo(String value) {
+            addCriterion("channel_id =", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("channel_id = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotEqualTo(String value) {
+            addCriterion("channel_id <>", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("channel_id <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdGreaterThan(String value) {
+            addCriterion("channel_id >", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("channel_id > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdGreaterThanOrEqualTo(String value) {
+            addCriterion("channel_id >=", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("channel_id >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLessThan(String value) {
+            addCriterion("channel_id <", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("channel_id < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLessThanOrEqualTo(String value) {
+            addCriterion("channel_id <=", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("channel_id <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLike(String value) {
+            addCriterion("channel_id like", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotLike(String value) {
+            addCriterion("channel_id not like", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdIn(List<String> values) {
+            addCriterion("channel_id in", values, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotIn(List<String> values) {
+            addCriterion("channel_id not in", values, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdBetween(String value1, String value2) {
+            addCriterion("channel_id between", value1, value2, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotBetween(String value1, String value2) {
+            addCriterion("channel_id not between", value1, value2, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeIsNull() {
+            addCriterion("vip_end_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeIsNotNull() {
+            addCriterion("vip_end_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeEqualTo(String value) {
+            addCriterion("vip_end_time =", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("vip_end_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotEqualTo(String value) {
+            addCriterion("vip_end_time <>", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("vip_end_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeGreaterThan(String value) {
+            addCriterion("vip_end_time >", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("vip_end_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("vip_end_time >=", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("vip_end_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLessThan(String value) {
+            addCriterion("vip_end_time <", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("vip_end_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLessThanOrEqualTo(String value) {
+            addCriterion("vip_end_time <=", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("vip_end_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLike(String value) {
+            addCriterion("vip_end_time like", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotLike(String value) {
+            addCriterion("vip_end_time not like", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeIn(List<String> values) {
+            addCriterion("vip_end_time in", values, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotIn(List<String> values) {
+            addCriterion("vip_end_time not in", values, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeBetween(String value1, String value2) {
+            addCriterion("vip_end_time between", value1, value2, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotBetween(String value1, String value2) {
+            addCriterion("vip_end_time not between", value1, value2, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountIsNull() {
+            addCriterion("recharge_amount is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountIsNotNull() {
+            addCriterion("recharge_amount is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountEqualTo(Long value) {
+            addCriterion("recharge_amount =", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_amount = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountNotEqualTo(Long value) {
+            addCriterion("recharge_amount <>", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_amount <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountGreaterThan(Long value) {
+            addCriterion("recharge_amount >", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_amount > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountGreaterThanOrEqualTo(Long value) {
+            addCriterion("recharge_amount >=", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_amount >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountLessThan(Long value) {
+            addCriterion("recharge_amount <", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_amount < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountLessThanOrEqualTo(Long value) {
+            addCriterion("recharge_amount <=", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_amount <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountIn(List<Long> values) {
+            addCriterion("recharge_amount in", values, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountNotIn(List<Long> values) {
+            addCriterion("recharge_amount not in", values, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountBetween(Long value1, Long value2) {
+            addCriterion("recharge_amount between", value1, value2, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountNotBetween(Long value1, Long value2) {
+            addCriterion("recharge_amount not between", value1, value2, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumIsNull() {
+            addCriterion("recharge_num is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumIsNotNull() {
+            addCriterion("recharge_num is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumEqualTo(Integer value) {
+            addCriterion("recharge_num =", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_num = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumNotEqualTo(Integer value) {
+            addCriterion("recharge_num <>", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_num <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumGreaterThan(Integer value) {
+            addCriterion("recharge_num >", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_num > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumGreaterThanOrEqualTo(Integer value) {
+            addCriterion("recharge_num >=", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_num >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumLessThan(Integer value) {
+            addCriterion("recharge_num <", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_num < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumLessThanOrEqualTo(Integer value) {
+            addCriterion("recharge_num <=", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("recharge_num <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumIn(List<Integer> values) {
+            addCriterion("recharge_num in", values, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumNotIn(List<Integer> values) {
+            addCriterion("recharge_num not in", values, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumBetween(Integer value1, Integer value2) {
+            addCriterion("recharge_num between", value1, value2, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumNotBetween(Integer value1, Integer value2) {
+            addCriterion("recharge_num not between", value1, value2, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayIsNull() {
+            addCriterion("first_pay is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayIsNotNull() {
+            addCriterion("first_pay is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayEqualTo(Long value) {
+            addCriterion("first_pay =", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("first_pay = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayNotEqualTo(Long value) {
+            addCriterion("first_pay <>", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("first_pay <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayGreaterThan(Long value) {
+            addCriterion("first_pay >", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("first_pay > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayGreaterThanOrEqualTo(Long value) {
+            addCriterion("first_pay >=", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("first_pay >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayLessThan(Long value) {
+            addCriterion("first_pay <", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("first_pay < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayLessThanOrEqualTo(Long value) {
+            addCriterion("first_pay <=", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("first_pay <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayIn(List<Long> values) {
+            addCriterion("first_pay in", values, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayNotIn(List<Long> values) {
+            addCriterion("first_pay not in", values, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayBetween(Long value1, Long value2) {
+            addCriterion("first_pay between", value1, value2, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayNotBetween(Long value1, Long value2) {
+            addCriterion("first_pay not between", value1, value2, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeIsNull() {
+            addCriterion("last_recharge_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeIsNotNull() {
+            addCriterion("last_recharge_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeEqualTo(String value) {
+            addCriterion("last_recharge_time =", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotEqualTo(String value) {
+            addCriterion("last_recharge_time <>", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeGreaterThan(String value) {
+            addCriterion("last_recharge_time >", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("last_recharge_time >=", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLessThan(String value) {
+            addCriterion("last_recharge_time <", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLessThanOrEqualTo(String value) {
+            addCriterion("last_recharge_time <=", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLike(String value) {
+            addCriterion("last_recharge_time like", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotLike(String value) {
+            addCriterion("last_recharge_time not like", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeIn(List<String> values) {
+            addCriterion("last_recharge_time in", values, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotIn(List<String> values) {
+            addCriterion("last_recharge_time not in", values, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeBetween(String value1, String value2) {
+            addCriterion("last_recharge_time between", value1, value2, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotBetween(String value1, String value2) {
+            addCriterion("last_recharge_time not between", value1, value2, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianIsNull() {
+            addCriterion("total_kandian is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianIsNotNull() {
+            addCriterion("total_kandian is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianEqualTo(Integer value) {
+            addCriterion("total_kandian =", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("total_kandian = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianNotEqualTo(Integer value) {
+            addCriterion("total_kandian <>", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("total_kandian <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianGreaterThan(Integer value) {
+            addCriterion("total_kandian >", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("total_kandian > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianGreaterThanOrEqualTo(Integer value) {
+            addCriterion("total_kandian >=", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("total_kandian >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianLessThan(Integer value) {
+            addCriterion("total_kandian <", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("total_kandian < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianLessThanOrEqualTo(Integer value) {
+            addCriterion("total_kandian <=", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("total_kandian <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianIn(List<Integer> values) {
+            addCriterion("total_kandian in", values, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianNotIn(List<Integer> values) {
+            addCriterion("total_kandian not in", values, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianBetween(Integer value1, Integer value2) {
+            addCriterion("total_kandian between", value1, value2, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianNotBetween(Integer value1, Integer value2) {
+            addCriterion("total_kandian not between", value1, value2, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianIsNull() {
+            addCriterion("kandian is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianIsNotNull() {
+            addCriterion("kandian is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianEqualTo(Integer value) {
+            addCriterion("kandian =", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("kandian = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianNotEqualTo(Integer value) {
+            addCriterion("kandian <>", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("kandian <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianGreaterThan(Integer value) {
+            addCriterion("kandian >", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("kandian > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianGreaterThanOrEqualTo(Integer value) {
+            addCriterion("kandian >=", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("kandian >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianLessThan(Integer value) {
+            addCriterion("kandian <", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("kandian < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianLessThanOrEqualTo(Integer value) {
+            addCriterion("kandian <=", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("kandian <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianIn(List<Integer> values) {
+            addCriterion("kandian in", values, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianNotIn(List<Integer> values) {
+            addCriterion("kandian not in", values, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianBetween(Integer value1, Integer value2) {
+            addCriterion("kandian between", value1, value2, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianNotBetween(Integer value1, Integer value2) {
+            addCriterion("kandian not between", value1, value2, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdIsNull() {
+            addCriterion("referral_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdIsNotNull() {
+            addCriterion("referral_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdEqualTo(String value) {
+            addCriterion("referral_id =", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotEqualTo(String value) {
+            addCriterion("referral_id <>", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdGreaterThan(String value) {
+            addCriterion("referral_id >", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdGreaterThanOrEqualTo(String value) {
+            addCriterion("referral_id >=", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLessThan(String value) {
+            addCriterion("referral_id <", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLessThanOrEqualTo(String value) {
+            addCriterion("referral_id <=", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLike(String value) {
+            addCriterion("referral_id like", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotLike(String value) {
+            addCriterion("referral_id not like", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdIn(List<String> values) {
+            addCriterion("referral_id in", values, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotIn(List<String> values) {
+            addCriterion("referral_id not in", values, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdBetween(String value1, String value2) {
+            addCriterion("referral_id between", value1, value2, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotBetween(String value1, String value2) {
+            addCriterion("referral_id not between", value1, value2, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentIsNull() {
+            addCriterion("referral_id_permanent is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentIsNotNull() {
+            addCriterion("referral_id_permanent is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentEqualTo(String value) {
+            addCriterion("referral_id_permanent =", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotEqualTo(String value) {
+            addCriterion("referral_id_permanent <>", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentGreaterThan(String value) {
+            addCriterion("referral_id_permanent >", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentGreaterThanOrEqualTo(String value) {
+            addCriterion("referral_id_permanent >=", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLessThan(String value) {
+            addCriterion("referral_id_permanent <", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLessThanOrEqualTo(String value) {
+            addCriterion("referral_id_permanent <=", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLike(String value) {
+            addCriterion("referral_id_permanent like", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotLike(String value) {
+            addCriterion("referral_id_permanent not like", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentIn(List<String> values) {
+            addCriterion("referral_id_permanent in", values, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotIn(List<String> values) {
+            addCriterion("referral_id_permanent not in", values, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentBetween(String value1, String value2) {
+            addCriterion("referral_id_permanent between", value1, value2, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotBetween(String value1, String value2) {
+            addCriterion("referral_id_permanent not between", value1, value2, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpIsNull() {
+            addCriterion("register_ip is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpIsNotNull() {
+            addCriterion("register_ip is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpEqualTo(String value) {
+            addCriterion("register_ip =", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("register_ip = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotEqualTo(String value) {
+            addCriterion("register_ip <>", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("register_ip <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpGreaterThan(String value) {
+            addCriterion("register_ip >", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("register_ip > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpGreaterThanOrEqualTo(String value) {
+            addCriterion("register_ip >=", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("register_ip >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLessThan(String value) {
+            addCriterion("register_ip <", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("register_ip < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLessThanOrEqualTo(String value) {
+            addCriterion("register_ip <=", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("register_ip <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLike(String value) {
+            addCriterion("register_ip like", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotLike(String value) {
+            addCriterion("register_ip not like", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpIn(List<String> values) {
+            addCriterion("register_ip in", values, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotIn(List<String> values) {
+            addCriterion("register_ip not in", values, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpBetween(String value1, String value2) {
+            addCriterion("register_ip between", value1, value2, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotBetween(String value1, String value2) {
+            addCriterion("register_ip not between", value1, value2, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentIsNull() {
+            addCriterion("user_agent is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentIsNotNull() {
+            addCriterion("user_agent is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentEqualTo(String value) {
+            addCriterion("user_agent =", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_agent = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotEqualTo(String value) {
+            addCriterion("user_agent <>", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_agent <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentGreaterThan(String value) {
+            addCriterion("user_agent >", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_agent > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentGreaterThanOrEqualTo(String value) {
+            addCriterion("user_agent >=", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_agent >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLessThan(String value) {
+            addCriterion("user_agent <", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_agent < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLessThanOrEqualTo(String value) {
+            addCriterion("user_agent <=", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("user_agent <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLike(String value) {
+            addCriterion("user_agent like", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotLike(String value) {
+            addCriterion("user_agent not like", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentIn(List<String> values) {
+            addCriterion("user_agent in", values, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotIn(List<String> values) {
+            addCriterion("user_agent not in", values, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentBetween(String value1, String value2) {
+            addCriterion("user_agent between", value1, value2, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotBetween(String value1, String value2) {
+            addCriterion("user_agent not between", value1, value2, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateIsNull() {
+            addCriterion("collect_date is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateIsNotNull() {
+            addCriterion("collect_date is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateEqualTo(Date value) {
+            addCriterion("collect_date =", value, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("collect_date = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateNotEqualTo(Date value) {
+            addCriterion("collect_date <>", value, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("collect_date <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateGreaterThan(Date value) {
+            addCriterion("collect_date >", value, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("collect_date > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateGreaterThanOrEqualTo(Date value) {
+            addCriterion("collect_date >=", value, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("collect_date >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateLessThan(Date value) {
+            addCriterion("collect_date <", value, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("collect_date < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateLessThanOrEqualTo(Date value) {
+            addCriterion("collect_date <=", value, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("collect_date <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateIn(List<Date> values) {
+            addCriterion("collect_date in", values, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateNotIn(List<Date> values) {
+            addCriterion("collect_date not in", values, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateBetween(Date value1, Date value2) {
+            addCriterion("collect_date between", value1, value2, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andCollectDateNotBetween(Date value1, Date value2) {
+            addCriterion("collect_date not between", value1, value2, "collectDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeIsNull() {
+            addCriterion("insert_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeIsNotNull() {
+            addCriterion("insert_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeEqualTo(Date value) {
+            addCriterion("insert_time =", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("insert_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeNotEqualTo(Date value) {
+            addCriterion("insert_time <>", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeNotEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("insert_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeGreaterThan(Date value) {
+            addCriterion("insert_time >", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeGreaterThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("insert_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("insert_time >=", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeGreaterThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("insert_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeLessThan(Date value) {
+            addCriterion("insert_time <", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeLessThanColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("insert_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeLessThanOrEqualTo(Date value) {
+            addCriterion("insert_time <=", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeLessThanOrEqualToColumn(SunUserActive.Column column) {
+            addCriterion(new StringBuilder("insert_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeIn(List<Date> values) {
+            addCriterion("insert_time in", values, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeNotIn(List<Date> values) {
+            addCriterion("insert_time not in", values, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeBetween(Date value1, Date value2) {
+            addCriterion("insert_time between", value1, value2, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeNotBetween(Date value1, Date value2) {
+            addCriterion("insert_time not between", value1, value2, "insertTime");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table sun_user_active
+     *
+     * @mbg.generated do_not_delete_during_merge Sat Oct 09 18:15:43 CST 2021
+     */
+    public static class Criteria extends GeneratedCriteria {
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private SunUserActiveExample example;
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        protected Criteria(SunUserActiveExample example) {
+            super();
+            this.example = example;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public SunUserActiveExample example() {
+            return this.example;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+             *
+             * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+             */
+            Criteria add(Criteria add);
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table sun_user_active
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        void criteria(Criteria criteria);
+    }
+
+    public interface IExampleWhen {
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user_active
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        void example(com.book.dao.polardb.pojo.example.SunUserActiveExample example);
+    }
+}

+ 3372 - 0
book-dao/src/main/java/com/book/dao/polardb/pojo/example/SunUserExample.java

@@ -0,0 +1,3372 @@
+package com.book.dao.polardb.pojo.example;
+
+import com.book.dao.polardb.entity.SunUser;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class SunUserExample {
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected String orderByClause;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected boolean distinct;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected List<Criteria> oredCriteria;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected Integer offset;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    protected Integer rows;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserExample orderBy(String orderByClause) {
+        this.setOrderByClause(orderByClause);
+        return this;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserExample 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 sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void setOffset(Integer offset) {
+        this.offset = offset;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public Integer getOffset() {
+        return this.offset;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public void setRows(Integer rows) {
+        this.rows = rows;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public Integer getRows() {
+        return this.rows;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserExample limit(Integer rows) {
+        this.rows = rows;
+        return this;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserExample 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 sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserExample 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 sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public static Criteria newAndCreateCriteria() {
+        SunUserExample example = new SunUserExample();
+        return example.createCriteria();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserExample 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 sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+     */
+    public SunUserExample 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 sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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(SunUser.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(SunUser.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(SunUser.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(SunUser.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(SunUser.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(SunUser.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 andUserIdIsNull() {
+            addCriterion("user_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIsNotNull() {
+            addCriterion("user_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdEqualTo(String value) {
+            addCriterion("user_id =", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_id = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotEqualTo(String value) {
+            addCriterion("user_id <>", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_id <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThan(String value) {
+            addCriterion("user_id >", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_id > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanOrEqualTo(String value) {
+            addCriterion("user_id >=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_id >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThan(String value) {
+            addCriterion("user_id <", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_id < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanOrEqualTo(String value) {
+            addCriterion("user_id <=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_id <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLike(String value) {
+            addCriterion("user_id like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotLike(String value) {
+            addCriterion("user_id not like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIn(List<String> values) {
+            addCriterion("user_id in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotIn(List<String> values) {
+            addCriterion("user_id not in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdBetween(String value1, String value2) {
+            addCriterion("user_id between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotBetween(String value1, String value2) {
+            addCriterion("user_id not between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameIsNull() {
+            addCriterion("nickname is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameIsNotNull() {
+            addCriterion("nickname is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameEqualTo(String value) {
+            addCriterion("nickname =", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("nickname = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotEqualTo(String value) {
+            addCriterion("nickname <>", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("nickname <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameGreaterThan(String value) {
+            addCriterion("nickname >", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("nickname > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameGreaterThanOrEqualTo(String value) {
+            addCriterion("nickname >=", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("nickname >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLessThan(String value) {
+            addCriterion("nickname <", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("nickname < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLessThanOrEqualTo(String value) {
+            addCriterion("nickname <=", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("nickname <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameLike(String value) {
+            addCriterion("nickname like", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotLike(String value) {
+            addCriterion("nickname not like", value, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameIn(List<String> values) {
+            addCriterion("nickname in", values, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotIn(List<String> values) {
+            addCriterion("nickname not in", values, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameBetween(String value1, String value2) {
+            addCriterion("nickname between", value1, value2, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andNicknameNotBetween(String value1, String value2) {
+            addCriterion("nickname not between", value1, value2, "nickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidIsNull() {
+            addCriterion("openid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidIsNotNull() {
+            addCriterion("openid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidEqualTo(String value) {
+            addCriterion("openid =", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("openid = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotEqualTo(String value) {
+            addCriterion("openid <>", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("openid <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidGreaterThan(String value) {
+            addCriterion("openid >", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("openid > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidGreaterThanOrEqualTo(String value) {
+            addCriterion("openid >=", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("openid >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLessThan(String value) {
+            addCriterion("openid <", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("openid < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLessThanOrEqualTo(String value) {
+            addCriterion("openid <=", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("openid <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidLike(String value) {
+            addCriterion("openid like", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotLike(String value) {
+            addCriterion("openid not like", value, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidIn(List<String> values) {
+            addCriterion("openid in", values, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotIn(List<String> values) {
+            addCriterion("openid not in", values, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidBetween(String value1, String value2) {
+            addCriterion("openid between", value1, value2, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andOpenidNotBetween(String value1, String value2) {
+            addCriterion("openid not between", value1, value2, "openid");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileIsNull() {
+            addCriterion("mobile is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileIsNotNull() {
+            addCriterion("mobile is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileEqualTo(String value) {
+            addCriterion("mobile =", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("mobile = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotEqualTo(String value) {
+            addCriterion("mobile <>", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("mobile <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileGreaterThan(String value) {
+            addCriterion("mobile >", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("mobile > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileGreaterThanOrEqualTo(String value) {
+            addCriterion("mobile >=", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("mobile >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLessThan(String value) {
+            addCriterion("mobile <", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("mobile < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLessThanOrEqualTo(String value) {
+            addCriterion("mobile <=", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("mobile <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileLike(String value) {
+            addCriterion("mobile like", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotLike(String value) {
+            addCriterion("mobile not like", value, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileIn(List<String> values) {
+            addCriterion("mobile in", values, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotIn(List<String> values) {
+            addCriterion("mobile not in", values, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileBetween(String value1, String value2) {
+            addCriterion("mobile between", value1, value2, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andMobileNotBetween(String value1, String value2) {
+            addCriterion("mobile not between", value1, value2, "mobile");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIsNull() {
+            addCriterion("province is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIsNotNull() {
+            addCriterion("province is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceEqualTo(String value) {
+            addCriterion("province =", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("province = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotEqualTo(String value) {
+            addCriterion("province <>", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("province <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceGreaterThan(String value) {
+            addCriterion("province >", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("province > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceGreaterThanOrEqualTo(String value) {
+            addCriterion("province >=", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("province >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLessThan(String value) {
+            addCriterion("province <", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("province < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLessThanOrEqualTo(String value) {
+            addCriterion("province <=", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("province <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceLike(String value) {
+            addCriterion("province like", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotLike(String value) {
+            addCriterion("province not like", value, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIn(List<String> values) {
+            addCriterion("province in", values, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotIn(List<String> values) {
+            addCriterion("province not in", values, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceBetween(String value1, String value2) {
+            addCriterion("province between", value1, value2, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceNotBetween(String value1, String value2) {
+            addCriterion("province not between", value1, value2, "province");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIsNull() {
+            addCriterion("city is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIsNotNull() {
+            addCriterion("city is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityEqualTo(String value) {
+            addCriterion("city =", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("city = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotEqualTo(String value) {
+            addCriterion("city <>", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("city <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityGreaterThan(String value) {
+            addCriterion("city >", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("city > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityGreaterThanOrEqualTo(String value) {
+            addCriterion("city >=", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("city >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLessThan(String value) {
+            addCriterion("city <", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("city < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLessThanOrEqualTo(String value) {
+            addCriterion("city <=", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("city <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andCityLike(String value) {
+            addCriterion("city like", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotLike(String value) {
+            addCriterion("city not like", value, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIn(List<String> values) {
+            addCriterion("city in", values, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotIn(List<String> values) {
+            addCriterion("city not in", values, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityBetween(String value1, String value2) {
+            addCriterion("city between", value1, value2, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNotBetween(String value1, String value2) {
+            addCriterion("city not between", value1, value2, "city");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexIsNull() {
+            addCriterion("sex is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexIsNotNull() {
+            addCriterion("sex is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexEqualTo(String value) {
+            addCriterion("sex =", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("sex = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotEqualTo(String value) {
+            addCriterion("sex <>", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("sex <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexGreaterThan(String value) {
+            addCriterion("sex >", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("sex > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexGreaterThanOrEqualTo(String value) {
+            addCriterion("sex >=", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("sex >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLessThan(String value) {
+            addCriterion("sex <", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("sex < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLessThanOrEqualTo(String value) {
+            addCriterion("sex <=", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("sex <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSexLike(String value) {
+            addCriterion("sex like", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotLike(String value) {
+            addCriterion("sex not like", value, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexIn(List<String> values) {
+            addCriterion("sex in", values, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotIn(List<String> values) {
+            addCriterion("sex not in", values, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexBetween(String value1, String value2) {
+            addCriterion("sex between", value1, value2, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andSexNotBetween(String value1, String value2) {
+            addCriterion("sex not between", value1, value2, "sex");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeIsNull() {
+            addCriterion("is_subscribe is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeIsNotNull() {
+            addCriterion("is_subscribe is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeEqualTo(String value) {
+            addCriterion("is_subscribe =", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("is_subscribe = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotEqualTo(String value) {
+            addCriterion("is_subscribe <>", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("is_subscribe <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeGreaterThan(String value) {
+            addCriterion("is_subscribe >", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("is_subscribe > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeGreaterThanOrEqualTo(String value) {
+            addCriterion("is_subscribe >=", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("is_subscribe >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLessThan(String value) {
+            addCriterion("is_subscribe <", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("is_subscribe < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLessThanOrEqualTo(String value) {
+            addCriterion("is_subscribe <=", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("is_subscribe <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeLike(String value) {
+            addCriterion("is_subscribe like", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotLike(String value) {
+            addCriterion("is_subscribe not like", value, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeIn(List<String> values) {
+            addCriterion("is_subscribe in", values, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotIn(List<String> values) {
+            addCriterion("is_subscribe not in", values, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeBetween(String value1, String value2) {
+            addCriterion("is_subscribe between", value1, value2, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsSubscribeNotBetween(String value1, String value2) {
+            addCriterion("is_subscribe not between", value1, value2, "isSubscribe");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeIsNull() {
+            addCriterion("operatetime is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeIsNotNull() {
+            addCriterion("operatetime is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeEqualTo(String value) {
+            addCriterion("operatetime =", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("operatetime = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotEqualTo(String value) {
+            addCriterion("operatetime <>", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("operatetime <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeGreaterThan(String value) {
+            addCriterion("operatetime >", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("operatetime > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeGreaterThanOrEqualTo(String value) {
+            addCriterion("operatetime >=", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("operatetime >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLessThan(String value) {
+            addCriterion("operatetime <", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("operatetime < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLessThanOrEqualTo(String value) {
+            addCriterion("operatetime <=", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("operatetime <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeLike(String value) {
+            addCriterion("operatetime like", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotLike(String value) {
+            addCriterion("operatetime not like", value, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeIn(List<String> values) {
+            addCriterion("operatetime in", values, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotIn(List<String> values) {
+            addCriterion("operatetime not in", values, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeBetween(String value1, String value2) {
+            addCriterion("operatetime between", value1, value2, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andOperatetimeNotBetween(String value1, String value2) {
+            addCriterion("operatetime not between", value1, value2, "operatetime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeIsNull() {
+            addCriterion("registertime is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeIsNotNull() {
+            addCriterion("registertime is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeEqualTo(String value) {
+            addCriterion("registertime =", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("registertime = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotEqualTo(String value) {
+            addCriterion("registertime <>", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("registertime <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeGreaterThan(String value) {
+            addCriterion("registertime >", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("registertime > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeGreaterThanOrEqualTo(String value) {
+            addCriterion("registertime >=", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("registertime >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLessThan(String value) {
+            addCriterion("registertime <", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("registertime < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLessThanOrEqualTo(String value) {
+            addCriterion("registertime <=", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("registertime <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeLike(String value) {
+            addCriterion("registertime like", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotLike(String value) {
+            addCriterion("registertime not like", value, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeIn(List<String> values) {
+            addCriterion("registertime in", values, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotIn(List<String> values) {
+            addCriterion("registertime not in", values, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeBetween(String value1, String value2) {
+            addCriterion("registertime between", value1, value2, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegistertimeNotBetween(String value1, String value2) {
+            addCriterion("registertime not between", value1, value2, "registertime");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameIsNull() {
+            addCriterion("authorizer_nickname is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameIsNotNull() {
+            addCriterion("authorizer_nickname is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameEqualTo(String value) {
+            addCriterion("authorizer_nickname =", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotEqualTo(String value) {
+            addCriterion("authorizer_nickname <>", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameGreaterThan(String value) {
+            addCriterion("authorizer_nickname >", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameGreaterThanOrEqualTo(String value) {
+            addCriterion("authorizer_nickname >=", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLessThan(String value) {
+            addCriterion("authorizer_nickname <", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLessThanOrEqualTo(String value) {
+            addCriterion("authorizer_nickname <=", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_nickname <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameLike(String value) {
+            addCriterion("authorizer_nickname like", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotLike(String value) {
+            addCriterion("authorizer_nickname not like", value, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameIn(List<String> values) {
+            addCriterion("authorizer_nickname in", values, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotIn(List<String> values) {
+            addCriterion("authorizer_nickname not in", values, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameBetween(String value1, String value2) {
+            addCriterion("authorizer_nickname between", value1, value2, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerNicknameNotBetween(String value1, String value2) {
+            addCriterion("authorizer_nickname not between", value1, value2, "authorizerNickname");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidIsNull() {
+            addCriterion("authorizer_appid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidIsNotNull() {
+            addCriterion("authorizer_appid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidEqualTo(String value) {
+            addCriterion("authorizer_appid =", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotEqualTo(String value) {
+            addCriterion("authorizer_appid <>", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidGreaterThan(String value) {
+            addCriterion("authorizer_appid >", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidGreaterThanOrEqualTo(String value) {
+            addCriterion("authorizer_appid >=", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLessThan(String value) {
+            addCriterion("authorizer_appid <", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLessThanOrEqualTo(String value) {
+            addCriterion("authorizer_appid <=", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("authorizer_appid <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidLike(String value) {
+            addCriterion("authorizer_appid like", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotLike(String value) {
+            addCriterion("authorizer_appid not like", value, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidIn(List<String> values) {
+            addCriterion("authorizer_appid in", values, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotIn(List<String> values) {
+            addCriterion("authorizer_appid not in", values, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidBetween(String value1, String value2) {
+            addCriterion("authorizer_appid between", value1, value2, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorizerAppidNotBetween(String value1, String value2) {
+            addCriterion("authorizer_appid not between", value1, value2, "authorizerAppid");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeIsNull() {
+            addCriterion("subscribe_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeIsNotNull() {
+            addCriterion("subscribe_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeEqualTo(String value) {
+            addCriterion("subscribe_time =", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("subscribe_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotEqualTo(String value) {
+            addCriterion("subscribe_time <>", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("subscribe_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeGreaterThan(String value) {
+            addCriterion("subscribe_time >", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("subscribe_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("subscribe_time >=", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("subscribe_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLessThan(String value) {
+            addCriterion("subscribe_time <", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("subscribe_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLessThanOrEqualTo(String value) {
+            addCriterion("subscribe_time <=", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("subscribe_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeLike(String value) {
+            addCriterion("subscribe_time like", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotLike(String value) {
+            addCriterion("subscribe_time not like", value, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeIn(List<String> values) {
+            addCriterion("subscribe_time in", values, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotIn(List<String> values) {
+            addCriterion("subscribe_time not in", values, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeBetween(String value1, String value2) {
+            addCriterion("subscribe_time between", value1, value2, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andSubscribeTimeNotBetween(String value1, String value2) {
+            addCriterion("subscribe_time not between", value1, value2, "subscribeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdIsNull() {
+            addCriterion("channel_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdIsNotNull() {
+            addCriterion("channel_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdEqualTo(String value) {
+            addCriterion("channel_id =", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("channel_id = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotEqualTo(String value) {
+            addCriterion("channel_id <>", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("channel_id <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdGreaterThan(String value) {
+            addCriterion("channel_id >", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("channel_id > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdGreaterThanOrEqualTo(String value) {
+            addCriterion("channel_id >=", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("channel_id >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLessThan(String value) {
+            addCriterion("channel_id <", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("channel_id < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLessThanOrEqualTo(String value) {
+            addCriterion("channel_id <=", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("channel_id <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdLike(String value) {
+            addCriterion("channel_id like", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotLike(String value) {
+            addCriterion("channel_id not like", value, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdIn(List<String> values) {
+            addCriterion("channel_id in", values, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotIn(List<String> values) {
+            addCriterion("channel_id not in", values, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdBetween(String value1, String value2) {
+            addCriterion("channel_id between", value1, value2, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChannelIdNotBetween(String value1, String value2) {
+            addCriterion("channel_id not between", value1, value2, "channelId");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeIsNull() {
+            addCriterion("vip_end_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeIsNotNull() {
+            addCriterion("vip_end_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeEqualTo(String value) {
+            addCriterion("vip_end_time =", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("vip_end_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotEqualTo(String value) {
+            addCriterion("vip_end_time <>", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("vip_end_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeGreaterThan(String value) {
+            addCriterion("vip_end_time >", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("vip_end_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("vip_end_time >=", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("vip_end_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLessThan(String value) {
+            addCriterion("vip_end_time <", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("vip_end_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLessThanOrEqualTo(String value) {
+            addCriterion("vip_end_time <=", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("vip_end_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeLike(String value) {
+            addCriterion("vip_end_time like", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotLike(String value) {
+            addCriterion("vip_end_time not like", value, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeIn(List<String> values) {
+            addCriterion("vip_end_time in", values, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotIn(List<String> values) {
+            addCriterion("vip_end_time not in", values, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeBetween(String value1, String value2) {
+            addCriterion("vip_end_time between", value1, value2, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andVipEndTimeNotBetween(String value1, String value2) {
+            addCriterion("vip_end_time not between", value1, value2, "vipEndTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountIsNull() {
+            addCriterion("recharge_amount is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountIsNotNull() {
+            addCriterion("recharge_amount is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountEqualTo(Long value) {
+            addCriterion("recharge_amount =", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_amount = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountNotEqualTo(Long value) {
+            addCriterion("recharge_amount <>", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_amount <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountGreaterThan(Long value) {
+            addCriterion("recharge_amount >", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_amount > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountGreaterThanOrEqualTo(Long value) {
+            addCriterion("recharge_amount >=", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_amount >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountLessThan(Long value) {
+            addCriterion("recharge_amount <", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_amount < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountLessThanOrEqualTo(Long value) {
+            addCriterion("recharge_amount <=", value, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_amount <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountIn(List<Long> values) {
+            addCriterion("recharge_amount in", values, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountNotIn(List<Long> values) {
+            addCriterion("recharge_amount not in", values, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountBetween(Long value1, Long value2) {
+            addCriterion("recharge_amount between", value1, value2, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeAmountNotBetween(Long value1, Long value2) {
+            addCriterion("recharge_amount not between", value1, value2, "rechargeAmount");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumIsNull() {
+            addCriterion("recharge_num is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumIsNotNull() {
+            addCriterion("recharge_num is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumEqualTo(Integer value) {
+            addCriterion("recharge_num =", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_num = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumNotEqualTo(Integer value) {
+            addCriterion("recharge_num <>", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_num <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumGreaterThan(Integer value) {
+            addCriterion("recharge_num >", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_num > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumGreaterThanOrEqualTo(Integer value) {
+            addCriterion("recharge_num >=", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_num >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumLessThan(Integer value) {
+            addCriterion("recharge_num <", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_num < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumLessThanOrEqualTo(Integer value) {
+            addCriterion("recharge_num <=", value, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("recharge_num <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumIn(List<Integer> values) {
+            addCriterion("recharge_num in", values, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumNotIn(List<Integer> values) {
+            addCriterion("recharge_num not in", values, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumBetween(Integer value1, Integer value2) {
+            addCriterion("recharge_num between", value1, value2, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andRechargeNumNotBetween(Integer value1, Integer value2) {
+            addCriterion("recharge_num not between", value1, value2, "rechargeNum");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayIsNull() {
+            addCriterion("first_pay is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayIsNotNull() {
+            addCriterion("first_pay is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayEqualTo(Long value) {
+            addCriterion("first_pay =", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("first_pay = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayNotEqualTo(Long value) {
+            addCriterion("first_pay <>", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("first_pay <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayGreaterThan(Long value) {
+            addCriterion("first_pay >", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("first_pay > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayGreaterThanOrEqualTo(Long value) {
+            addCriterion("first_pay >=", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("first_pay >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayLessThan(Long value) {
+            addCriterion("first_pay <", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("first_pay < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayLessThanOrEqualTo(Long value) {
+            addCriterion("first_pay <=", value, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("first_pay <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayIn(List<Long> values) {
+            addCriterion("first_pay in", values, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayNotIn(List<Long> values) {
+            addCriterion("first_pay not in", values, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayBetween(Long value1, Long value2) {
+            addCriterion("first_pay between", value1, value2, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andFirstPayNotBetween(Long value1, Long value2) {
+            addCriterion("first_pay not between", value1, value2, "firstPay");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeIsNull() {
+            addCriterion("last_recharge_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeIsNotNull() {
+            addCriterion("last_recharge_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeEqualTo(String value) {
+            addCriterion("last_recharge_time =", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotEqualTo(String value) {
+            addCriterion("last_recharge_time <>", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeGreaterThan(String value) {
+            addCriterion("last_recharge_time >", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("last_recharge_time >=", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLessThan(String value) {
+            addCriterion("last_recharge_time <", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLessThanOrEqualTo(String value) {
+            addCriterion("last_recharge_time <=", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("last_recharge_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeLike(String value) {
+            addCriterion("last_recharge_time like", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotLike(String value) {
+            addCriterion("last_recharge_time not like", value, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeIn(List<String> values) {
+            addCriterion("last_recharge_time in", values, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotIn(List<String> values) {
+            addCriterion("last_recharge_time not in", values, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeBetween(String value1, String value2) {
+            addCriterion("last_recharge_time between", value1, value2, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andLastRechargeTimeNotBetween(String value1, String value2) {
+            addCriterion("last_recharge_time not between", value1, value2, "lastRechargeTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianIsNull() {
+            addCriterion("total_kandian is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianIsNotNull() {
+            addCriterion("total_kandian is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianEqualTo(Integer value) {
+            addCriterion("total_kandian =", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("total_kandian = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianNotEqualTo(Integer value) {
+            addCriterion("total_kandian <>", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("total_kandian <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianGreaterThan(Integer value) {
+            addCriterion("total_kandian >", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("total_kandian > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianGreaterThanOrEqualTo(Integer value) {
+            addCriterion("total_kandian >=", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("total_kandian >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianLessThan(Integer value) {
+            addCriterion("total_kandian <", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("total_kandian < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianLessThanOrEqualTo(Integer value) {
+            addCriterion("total_kandian <=", value, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("total_kandian <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianIn(List<Integer> values) {
+            addCriterion("total_kandian in", values, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianNotIn(List<Integer> values) {
+            addCriterion("total_kandian not in", values, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianBetween(Integer value1, Integer value2) {
+            addCriterion("total_kandian between", value1, value2, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andTotalKandianNotBetween(Integer value1, Integer value2) {
+            addCriterion("total_kandian not between", value1, value2, "totalKandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianIsNull() {
+            addCriterion("kandian is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianIsNotNull() {
+            addCriterion("kandian is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianEqualTo(Integer value) {
+            addCriterion("kandian =", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("kandian = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianNotEqualTo(Integer value) {
+            addCriterion("kandian <>", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("kandian <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianGreaterThan(Integer value) {
+            addCriterion("kandian >", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("kandian > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianGreaterThanOrEqualTo(Integer value) {
+            addCriterion("kandian >=", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("kandian >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianLessThan(Integer value) {
+            addCriterion("kandian <", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("kandian < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianLessThanOrEqualTo(Integer value) {
+            addCriterion("kandian <=", value, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("kandian <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianIn(List<Integer> values) {
+            addCriterion("kandian in", values, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianNotIn(List<Integer> values) {
+            addCriterion("kandian not in", values, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianBetween(Integer value1, Integer value2) {
+            addCriterion("kandian between", value1, value2, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andKandianNotBetween(Integer value1, Integer value2) {
+            addCriterion("kandian not between", value1, value2, "kandian");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdIsNull() {
+            addCriterion("referral_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdIsNotNull() {
+            addCriterion("referral_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdEqualTo(String value) {
+            addCriterion("referral_id =", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotEqualTo(String value) {
+            addCriterion("referral_id <>", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdGreaterThan(String value) {
+            addCriterion("referral_id >", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdGreaterThanOrEqualTo(String value) {
+            addCriterion("referral_id >=", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLessThan(String value) {
+            addCriterion("referral_id <", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLessThanOrEqualTo(String value) {
+            addCriterion("referral_id <=", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdLike(String value) {
+            addCriterion("referral_id like", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotLike(String value) {
+            addCriterion("referral_id not like", value, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdIn(List<String> values) {
+            addCriterion("referral_id in", values, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotIn(List<String> values) {
+            addCriterion("referral_id not in", values, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdBetween(String value1, String value2) {
+            addCriterion("referral_id between", value1, value2, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdNotBetween(String value1, String value2) {
+            addCriterion("referral_id not between", value1, value2, "referralId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentIsNull() {
+            addCriterion("referral_id_permanent is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentIsNotNull() {
+            addCriterion("referral_id_permanent is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentEqualTo(String value) {
+            addCriterion("referral_id_permanent =", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotEqualTo(String value) {
+            addCriterion("referral_id_permanent <>", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentGreaterThan(String value) {
+            addCriterion("referral_id_permanent >", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentGreaterThanOrEqualTo(String value) {
+            addCriterion("referral_id_permanent >=", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLessThan(String value) {
+            addCriterion("referral_id_permanent <", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLessThanOrEqualTo(String value) {
+            addCriterion("referral_id_permanent <=", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("referral_id_permanent <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentLike(String value) {
+            addCriterion("referral_id_permanent like", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotLike(String value) {
+            addCriterion("referral_id_permanent not like", value, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentIn(List<String> values) {
+            addCriterion("referral_id_permanent in", values, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotIn(List<String> values) {
+            addCriterion("referral_id_permanent not in", values, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentBetween(String value1, String value2) {
+            addCriterion("referral_id_permanent between", value1, value2, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andReferralIdPermanentNotBetween(String value1, String value2) {
+            addCriterion("referral_id_permanent not between", value1, value2, "referralIdPermanent");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpIsNull() {
+            addCriterion("register_ip is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpIsNotNull() {
+            addCriterion("register_ip is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpEqualTo(String value) {
+            addCriterion("register_ip =", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("register_ip = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotEqualTo(String value) {
+            addCriterion("register_ip <>", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("register_ip <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpGreaterThan(String value) {
+            addCriterion("register_ip >", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("register_ip > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpGreaterThanOrEqualTo(String value) {
+            addCriterion("register_ip >=", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("register_ip >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLessThan(String value) {
+            addCriterion("register_ip <", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("register_ip < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLessThanOrEqualTo(String value) {
+            addCriterion("register_ip <=", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("register_ip <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpLike(String value) {
+            addCriterion("register_ip like", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotLike(String value) {
+            addCriterion("register_ip not like", value, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpIn(List<String> values) {
+            addCriterion("register_ip in", values, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotIn(List<String> values) {
+            addCriterion("register_ip not in", values, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpBetween(String value1, String value2) {
+            addCriterion("register_ip between", value1, value2, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andRegisterIpNotBetween(String value1, String value2) {
+            addCriterion("register_ip not between", value1, value2, "registerIp");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentIsNull() {
+            addCriterion("user_agent is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentIsNotNull() {
+            addCriterion("user_agent is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentEqualTo(String value) {
+            addCriterion("user_agent =", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_agent = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotEqualTo(String value) {
+            addCriterion("user_agent <>", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_agent <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentGreaterThan(String value) {
+            addCriterion("user_agent >", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_agent > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentGreaterThanOrEqualTo(String value) {
+            addCriterion("user_agent >=", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_agent >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLessThan(String value) {
+            addCriterion("user_agent <", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_agent < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLessThanOrEqualTo(String value) {
+            addCriterion("user_agent <=", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("user_agent <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentLike(String value) {
+            addCriterion("user_agent like", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotLike(String value) {
+            addCriterion("user_agent not like", value, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentIn(List<String> values) {
+            addCriterion("user_agent in", values, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotIn(List<String> values) {
+            addCriterion("user_agent not in", values, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentBetween(String value1, String value2) {
+            addCriterion("user_agent between", value1, value2, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserAgentNotBetween(String value1, String value2) {
+            addCriterion("user_agent not between", value1, value2, "userAgent");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeIsNull() {
+            addCriterion("start_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeIsNotNull() {
+            addCriterion("start_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeEqualTo(Date value) {
+            addCriterion("start_time =", value, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("start_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeNotEqualTo(Date value) {
+            addCriterion("start_time <>", value, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("start_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeGreaterThan(Date value) {
+            addCriterion("start_time >", value, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("start_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("start_time >=", value, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("start_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeLessThan(Date value) {
+            addCriterion("start_time <", value, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("start_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeLessThanOrEqualTo(Date value) {
+            addCriterion("start_time <=", value, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("start_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeIn(List<Date> values) {
+            addCriterion("start_time in", values, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeNotIn(List<Date> values) {
+            addCriterion("start_time not in", values, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeBetween(Date value1, Date value2) {
+            addCriterion("start_time between", value1, value2, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andStartTimeNotBetween(Date value1, Date value2) {
+            addCriterion("start_time not between", value1, value2, "startTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeIsNull() {
+            addCriterion("end_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeIsNotNull() {
+            addCriterion("end_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeEqualTo(Date value) {
+            addCriterion("end_time =", value, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("end_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeNotEqualTo(Date value) {
+            addCriterion("end_time <>", value, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("end_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeGreaterThan(Date value) {
+            addCriterion("end_time >", value, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("end_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("end_time >=", value, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("end_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeLessThan(Date value) {
+            addCriterion("end_time <", value, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("end_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeLessThanOrEqualTo(Date value) {
+            addCriterion("end_time <=", value, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("end_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeIn(List<Date> values) {
+            addCriterion("end_time in", values, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeNotIn(List<Date> values) {
+            addCriterion("end_time not in", values, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeBetween(Date value1, Date value2) {
+            addCriterion("end_time between", value1, value2, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andEndTimeNotBetween(Date value1, Date value2) {
+            addCriterion("end_time not between", value1, value2, "endTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeIsNull() {
+            addCriterion("insert_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeIsNotNull() {
+            addCriterion("insert_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeEqualTo(Date value) {
+            addCriterion("insert_time =", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("insert_time = ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeNotEqualTo(Date value) {
+            addCriterion("insert_time <>", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeNotEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("insert_time <> ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeGreaterThan(Date value) {
+            addCriterion("insert_time >", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeGreaterThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("insert_time > ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("insert_time >=", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeGreaterThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("insert_time >= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeLessThan(Date value) {
+            addCriterion("insert_time <", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeLessThanColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("insert_time < ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeLessThanOrEqualTo(Date value) {
+            addCriterion("insert_time <=", value, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeLessThanOrEqualToColumn(SunUser.Column column) {
+            addCriterion(new StringBuilder("insert_time <= ").append(column.getEscapedColumnName()).toString());
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeIn(List<Date> values) {
+            addCriterion("insert_time in", values, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeNotIn(List<Date> values) {
+            addCriterion("insert_time not in", values, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeBetween(Date value1, Date value2) {
+            addCriterion("insert_time between", value1, value2, "insertTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andInsertTimeNotBetween(Date value1, Date value2) {
+            addCriterion("insert_time not between", value1, value2, "insertTime");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table sun_user
+     *
+     * @mbg.generated do_not_delete_during_merge Sat Oct 09 18:15:43 CST 2021
+     */
+    public static class Criteria extends GeneratedCriteria {
+        /**
+         * This field was generated by MyBatis Generator.
+         * This field corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        private SunUserExample example;
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        protected Criteria(SunUserExample example) {
+            super();
+            this.example = example;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        public SunUserExample example() {
+            return this.example;
+        }
+
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+             *
+             * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+             */
+            Criteria add(Criteria add);
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table sun_user
+     *
+     * @mbg.generated Sat Oct 09 18:15:43 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 sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        void criteria(Criteria criteria);
+    }
+
+    public interface IExampleWhen {
+        /**
+         * This method was generated by MyBatis Generator.
+         * This method corresponds to the database table sun_user
+         *
+         * @mbg.generated Sat Oct 09 18:15:43 CST 2021
+         */
+        void example(com.book.dao.polardb.pojo.example.SunUserExample example);
+    }
+}

+ 1277 - 0
book-dao/src/main/resources/mapper/polar/SunUserActiveMapper.xml

@@ -0,0 +1,1277 @@
+<?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.polardb.mapper.SunUserActiveMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.polardb.entity.SunUserActive">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="user_id" jdbcType="VARCHAR" property="userId" />
+    <result column="nickname" jdbcType="VARCHAR" property="nickname" />
+    <result column="openid" jdbcType="VARCHAR" property="openid" />
+    <result column="mobile" jdbcType="VARCHAR" property="mobile" />
+    <result column="province" jdbcType="VARCHAR" property="province" />
+    <result column="city" jdbcType="VARCHAR" property="city" />
+    <result column="sex" jdbcType="VARCHAR" property="sex" />
+    <result column="is_subscribe" jdbcType="VARCHAR" property="isSubscribe" />
+    <result column="operatetime" jdbcType="VARCHAR" property="operatetime" />
+    <result column="registertime" jdbcType="VARCHAR" property="registertime" />
+    <result column="authorizer_nickname" jdbcType="VARCHAR" property="authorizerNickname" />
+    <result column="authorizer_appid" jdbcType="VARCHAR" property="authorizerAppid" />
+    <result column="subscribe_time" jdbcType="VARCHAR" property="subscribeTime" />
+    <result column="channel_id" jdbcType="VARCHAR" property="channelId" />
+    <result column="vip_end_time" jdbcType="VARCHAR" property="vipEndTime" />
+    <result column="recharge_amount" jdbcType="DECIMAL" property="rechargeAmount" />
+    <result column="recharge_num" jdbcType="INTEGER" property="rechargeNum" />
+    <result column="first_pay" jdbcType="DECIMAL" property="firstPay" />
+    <result column="last_recharge_time" jdbcType="VARCHAR" property="lastRechargeTime" />
+    <result column="total_kandian" jdbcType="INTEGER" property="totalKandian" />
+    <result column="kandian" jdbcType="INTEGER" property="kandian" />
+    <result column="referral_id" jdbcType="VARCHAR" property="referralId" />
+    <result column="referral_id_permanent" jdbcType="VARCHAR" property="referralIdPermanent" />
+    <result column="register_ip" jdbcType="VARCHAR" property="registerIp" />
+    <result column="user_agent" jdbcType="VARCHAR" property="userAgent" />
+    <result column="collect_date" jdbcType="TIMESTAMP" property="collectDate" />
+    <result column="insert_time" jdbcType="TIMESTAMP" property="insertTime" />
+  </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 Sat Oct 09 18:15:43 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 Sat Oct 09 18:15:43 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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    id, user_id, nickname, openid, mobile, province, city, sex, is_subscribe, operatetime, 
+    registertime, authorizer_nickname, authorizer_appid, subscribe_time, channel_id, 
+    vip_end_time, recharge_amount, recharge_num, first_pay, last_recharge_time, total_kandian, 
+    kandian, referral_id, referral_id_permanent, register_ip, user_agent, collect_date, 
+    insert_time
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.polardb.pojo.example.SunUserActiveExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from sun_user_active
+    <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 Sat Oct 09 18:15:43 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 sun_user_active
+    <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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from sun_user_active
+    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 Sat Oct 09 18:15:43 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 sun_user_active
+    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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    delete from sun_user_active
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.polardb.pojo.example.SunUserActiveExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    delete from sun_user_active
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.polardb.entity.SunUserActive">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_user_active (id, user_id, nickname, 
+      openid, mobile, province, 
+      city, sex, is_subscribe, 
+      operatetime, registertime, authorizer_nickname, 
+      authorizer_appid, subscribe_time, channel_id, 
+      vip_end_time, recharge_amount, recharge_num, 
+      first_pay, last_recharge_time, total_kandian, 
+      kandian, referral_id, referral_id_permanent, 
+      register_ip, user_agent, collect_date, 
+      insert_time)
+    values (#{id,jdbcType=INTEGER}, #{userId,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, 
+      #{openid,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, 
+      #{city,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{isSubscribe,jdbcType=VARCHAR}, 
+      #{operatetime,jdbcType=VARCHAR}, #{registertime,jdbcType=VARCHAR}, #{authorizerNickname,jdbcType=VARCHAR}, 
+      #{authorizerAppid,jdbcType=VARCHAR}, #{subscribeTime,jdbcType=VARCHAR}, #{channelId,jdbcType=VARCHAR}, 
+      #{vipEndTime,jdbcType=VARCHAR}, #{rechargeAmount,jdbcType=DECIMAL}, #{rechargeNum,jdbcType=INTEGER}, 
+      #{firstPay,jdbcType=DECIMAL}, #{lastRechargeTime,jdbcType=VARCHAR}, #{totalKandian,jdbcType=INTEGER}, 
+      #{kandian,jdbcType=INTEGER}, #{referralId,jdbcType=VARCHAR}, #{referralIdPermanent,jdbcType=VARCHAR}, 
+      #{registerIp,jdbcType=VARCHAR}, #{userAgent,jdbcType=VARCHAR}, #{collectDate,jdbcType=TIMESTAMP}, 
+      #{insertTime,jdbcType=TIMESTAMP})
+  </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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_user_active
+    <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.userId != null">
+            user_id,
+          </if>
+          <if test="record.nickname != null">
+            nickname,
+          </if>
+          <if test="record.openid != null">
+            openid,
+          </if>
+          <if test="record.mobile != null">
+            mobile,
+          </if>
+          <if test="record.province != null">
+            province,
+          </if>
+          <if test="record.city != null">
+            city,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe,
+          </if>
+          <if test="record.operatetime != null">
+            operatetime,
+          </if>
+          <if test="record.registertime != null">
+            registertime,
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname,
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid,
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time,
+          </if>
+          <if test="record.channelId != null">
+            channel_id,
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time,
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount,
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num,
+          </if>
+          <if test="record.firstPay != null">
+            first_pay,
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time,
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian,
+          </if>
+          <if test="record.kandian != null">
+            kandian,
+          </if>
+          <if test="record.referralId != null">
+            referral_id,
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent,
+          </if>
+          <if test="record.registerIp != null">
+            register_ip,
+          </if>
+          <if test="record.userAgent != null">
+            user_agent,
+          </if>
+          <if test="record.collectDate != null">
+            collect_date,
+          </if>
+          <if test="record.insertTime != null">
+            insert_time,
+          </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.userId != null">
+            #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            #{record.mobile,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.sex != null">
+            #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.collectDate != null">
+            #{record.collectDate,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            #{record.insertTime,jdbcType=TIMESTAMP},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.polardb.pojo.example.SunUserActiveExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    select count(*) from sun_user_active
+    <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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    update sun_user_active
+    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.userId != null">
+            user_id = #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            nickname = #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            openid = #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            mobile = #{record.mobile,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.sex != null">
+            sex = #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe = #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            operatetime = #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            registertime = #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname = #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid = #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time = #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            channel_id = #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time = #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount = #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num = #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            first_pay = #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time = #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian = #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            kandian = #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            referral_id = #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent = #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            register_ip = #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            user_agent = #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.collectDate != null">
+            collect_date = #{record.collectDate,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            insert_time = #{record.insertTime,jdbcType=TIMESTAMP},
+          </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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    update sun_user_active
+    set id = #{record.id,jdbcType=INTEGER},
+      user_id = #{record.userId,jdbcType=VARCHAR},
+      nickname = #{record.nickname,jdbcType=VARCHAR},
+      openid = #{record.openid,jdbcType=VARCHAR},
+      mobile = #{record.mobile,jdbcType=VARCHAR},
+      province = #{record.province,jdbcType=VARCHAR},
+      city = #{record.city,jdbcType=VARCHAR},
+      sex = #{record.sex,jdbcType=VARCHAR},
+      is_subscribe = #{record.isSubscribe,jdbcType=VARCHAR},
+      operatetime = #{record.operatetime,jdbcType=VARCHAR},
+      registertime = #{record.registertime,jdbcType=VARCHAR},
+      authorizer_nickname = #{record.authorizerNickname,jdbcType=VARCHAR},
+      authorizer_appid = #{record.authorizerAppid,jdbcType=VARCHAR},
+      subscribe_time = #{record.subscribeTime,jdbcType=VARCHAR},
+      channel_id = #{record.channelId,jdbcType=VARCHAR},
+      vip_end_time = #{record.vipEndTime,jdbcType=VARCHAR},
+      recharge_amount = #{record.rechargeAmount,jdbcType=DECIMAL},
+      recharge_num = #{record.rechargeNum,jdbcType=INTEGER},
+      first_pay = #{record.firstPay,jdbcType=DECIMAL},
+      last_recharge_time = #{record.lastRechargeTime,jdbcType=VARCHAR},
+      total_kandian = #{record.totalKandian,jdbcType=INTEGER},
+      kandian = #{record.kandian,jdbcType=INTEGER},
+      referral_id = #{record.referralId,jdbcType=VARCHAR},
+      referral_id_permanent = #{record.referralIdPermanent,jdbcType=VARCHAR},
+      register_ip = #{record.registerIp,jdbcType=VARCHAR},
+      user_agent = #{record.userAgent,jdbcType=VARCHAR},
+      collect_date = #{record.collectDate,jdbcType=TIMESTAMP},
+      insert_time = #{record.insertTime,jdbcType=TIMESTAMP}
+    <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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    update sun_user_active
+    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.userId != null">
+            user_id = #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            nickname = #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            openid = #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            mobile = #{record.mobile,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.sex != null">
+            sex = #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe = #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            operatetime = #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            registertime = #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname = #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid = #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time = #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            channel_id = #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time = #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount = #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num = #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            first_pay = #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time = #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian = #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            kandian = #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            referral_id = #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent = #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            register_ip = #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            user_agent = #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.collectDate != null">
+            collect_date = #{record.collectDate,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            insert_time = #{record.insertTime,jdbcType=TIMESTAMP},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.polardb.entity.SunUserActive">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    update sun_user_active
+    set user_id = #{userId,jdbcType=VARCHAR},
+      nickname = #{nickname,jdbcType=VARCHAR},
+      openid = #{openid,jdbcType=VARCHAR},
+      mobile = #{mobile,jdbcType=VARCHAR},
+      province = #{province,jdbcType=VARCHAR},
+      city = #{city,jdbcType=VARCHAR},
+      sex = #{sex,jdbcType=VARCHAR},
+      is_subscribe = #{isSubscribe,jdbcType=VARCHAR},
+      operatetime = #{operatetime,jdbcType=VARCHAR},
+      registertime = #{registertime,jdbcType=VARCHAR},
+      authorizer_nickname = #{authorizerNickname,jdbcType=VARCHAR},
+      authorizer_appid = #{authorizerAppid,jdbcType=VARCHAR},
+      subscribe_time = #{subscribeTime,jdbcType=VARCHAR},
+      channel_id = #{channelId,jdbcType=VARCHAR},
+      vip_end_time = #{vipEndTime,jdbcType=VARCHAR},
+      recharge_amount = #{rechargeAmount,jdbcType=DECIMAL},
+      recharge_num = #{rechargeNum,jdbcType=INTEGER},
+      first_pay = #{firstPay,jdbcType=DECIMAL},
+      last_recharge_time = #{lastRechargeTime,jdbcType=VARCHAR},
+      total_kandian = #{totalKandian,jdbcType=INTEGER},
+      kandian = #{kandian,jdbcType=INTEGER},
+      referral_id = #{referralId,jdbcType=VARCHAR},
+      referral_id_permanent = #{referralIdPermanent,jdbcType=VARCHAR},
+      register_ip = #{registerIp,jdbcType=VARCHAR},
+      user_agent = #{userAgent,jdbcType=VARCHAR},
+      collect_date = #{collectDate,jdbcType=TIMESTAMP},
+      insert_time = #{insertTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.polardb.pojo.example.SunUserActiveExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from sun_user_active
+    <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 Sat Oct 09 18:15:43 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 sun_user_active
+    <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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_user_active
+    (id, user_id, nickname, openid, mobile, province, city, sex, is_subscribe, operatetime, 
+      registertime, authorizer_nickname, authorizer_appid, subscribe_time, channel_id, 
+      vip_end_time, recharge_amount, recharge_num, first_pay, last_recharge_time, total_kandian, 
+      kandian, referral_id, referral_id_permanent, register_ip, user_agent, collect_date, 
+      insert_time)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=INTEGER}, #{item.userId,jdbcType=VARCHAR}, #{item.nickname,jdbcType=VARCHAR}, 
+        #{item.openid,jdbcType=VARCHAR}, #{item.mobile,jdbcType=VARCHAR}, #{item.province,jdbcType=VARCHAR}, 
+        #{item.city,jdbcType=VARCHAR}, #{item.sex,jdbcType=VARCHAR}, #{item.isSubscribe,jdbcType=VARCHAR}, 
+        #{item.operatetime,jdbcType=VARCHAR}, #{item.registertime,jdbcType=VARCHAR}, #{item.authorizerNickname,jdbcType=VARCHAR}, 
+        #{item.authorizerAppid,jdbcType=VARCHAR}, #{item.subscribeTime,jdbcType=VARCHAR}, 
+        #{item.channelId,jdbcType=VARCHAR}, #{item.vipEndTime,jdbcType=VARCHAR}, #{item.rechargeAmount,jdbcType=DECIMAL}, 
+        #{item.rechargeNum,jdbcType=INTEGER}, #{item.firstPay,jdbcType=DECIMAL}, #{item.lastRechargeTime,jdbcType=VARCHAR}, 
+        #{item.totalKandian,jdbcType=INTEGER}, #{item.kandian,jdbcType=INTEGER}, #{item.referralId,jdbcType=VARCHAR}, 
+        #{item.referralIdPermanent,jdbcType=VARCHAR}, #{item.registerIp,jdbcType=VARCHAR}, 
+        #{item.userAgent,jdbcType=VARCHAR}, #{item.collectDate,jdbcType=TIMESTAMP}, #{item.insertTime,jdbcType=TIMESTAMP}
+        )
+    </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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_user_active (
+    <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="'user_id'.toString() == column.value">
+          #{item.userId,jdbcType=VARCHAR}
+        </if>
+        <if test="'nickname'.toString() == column.value">
+          #{item.nickname,jdbcType=VARCHAR}
+        </if>
+        <if test="'openid'.toString() == column.value">
+          #{item.openid,jdbcType=VARCHAR}
+        </if>
+        <if test="'mobile'.toString() == column.value">
+          #{item.mobile,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="'sex'.toString() == column.value">
+          #{item.sex,jdbcType=VARCHAR}
+        </if>
+        <if test="'is_subscribe'.toString() == column.value">
+          #{item.isSubscribe,jdbcType=VARCHAR}
+        </if>
+        <if test="'operatetime'.toString() == column.value">
+          #{item.operatetime,jdbcType=VARCHAR}
+        </if>
+        <if test="'registertime'.toString() == column.value">
+          #{item.registertime,jdbcType=VARCHAR}
+        </if>
+        <if test="'authorizer_nickname'.toString() == column.value">
+          #{item.authorizerNickname,jdbcType=VARCHAR}
+        </if>
+        <if test="'authorizer_appid'.toString() == column.value">
+          #{item.authorizerAppid,jdbcType=VARCHAR}
+        </if>
+        <if test="'subscribe_time'.toString() == column.value">
+          #{item.subscribeTime,jdbcType=VARCHAR}
+        </if>
+        <if test="'channel_id'.toString() == column.value">
+          #{item.channelId,jdbcType=VARCHAR}
+        </if>
+        <if test="'vip_end_time'.toString() == column.value">
+          #{item.vipEndTime,jdbcType=VARCHAR}
+        </if>
+        <if test="'recharge_amount'.toString() == column.value">
+          #{item.rechargeAmount,jdbcType=DECIMAL}
+        </if>
+        <if test="'recharge_num'.toString() == column.value">
+          #{item.rechargeNum,jdbcType=INTEGER}
+        </if>
+        <if test="'first_pay'.toString() == column.value">
+          #{item.firstPay,jdbcType=DECIMAL}
+        </if>
+        <if test="'last_recharge_time'.toString() == column.value">
+          #{item.lastRechargeTime,jdbcType=VARCHAR}
+        </if>
+        <if test="'total_kandian'.toString() == column.value">
+          #{item.totalKandian,jdbcType=INTEGER}
+        </if>
+        <if test="'kandian'.toString() == column.value">
+          #{item.kandian,jdbcType=INTEGER}
+        </if>
+        <if test="'referral_id'.toString() == column.value">
+          #{item.referralId,jdbcType=VARCHAR}
+        </if>
+        <if test="'referral_id_permanent'.toString() == column.value">
+          #{item.referralIdPermanent,jdbcType=VARCHAR}
+        </if>
+        <if test="'register_ip'.toString() == column.value">
+          #{item.registerIp,jdbcType=VARCHAR}
+        </if>
+        <if test="'user_agent'.toString() == column.value">
+          #{item.userAgent,jdbcType=VARCHAR}
+        </if>
+        <if test="'collect_date'.toString() == column.value">
+          #{item.collectDate,jdbcType=TIMESTAMP}
+        </if>
+        <if test="'insert_time'.toString() == column.value">
+          #{item.insertTime,jdbcType=TIMESTAMP}
+        </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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_user_active
+    <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.userId != null">
+            user_id,
+          </if>
+          <if test="record.nickname != null">
+            nickname,
+          </if>
+          <if test="record.openid != null">
+            openid,
+          </if>
+          <if test="record.mobile != null">
+            mobile,
+          </if>
+          <if test="record.province != null">
+            province,
+          </if>
+          <if test="record.city != null">
+            city,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe,
+          </if>
+          <if test="record.operatetime != null">
+            operatetime,
+          </if>
+          <if test="record.registertime != null">
+            registertime,
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname,
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid,
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time,
+          </if>
+          <if test="record.channelId != null">
+            channel_id,
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time,
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount,
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num,
+          </if>
+          <if test="record.firstPay != null">
+            first_pay,
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time,
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian,
+          </if>
+          <if test="record.kandian != null">
+            kandian,
+          </if>
+          <if test="record.referralId != null">
+            referral_id,
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent,
+          </if>
+          <if test="record.registerIp != null">
+            register_ip,
+          </if>
+          <if test="record.userAgent != null">
+            user_agent,
+          </if>
+          <if test="record.collectDate != null">
+            collect_date,
+          </if>
+          <if test="record.insertTime != null">
+            insert_time,
+          </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.userId != null">
+            #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            #{record.mobile,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.sex != null">
+            #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.collectDate != null">
+            #{record.collectDate,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            #{record.insertTime,jdbcType=TIMESTAMP},
+          </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.userId != null">
+            user_id = #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            nickname = #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            openid = #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            mobile = #{record.mobile,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.sex != null">
+            sex = #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe = #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            operatetime = #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            registertime = #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname = #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid = #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time = #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            channel_id = #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time = #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount = #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num = #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            first_pay = #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time = #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian = #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            kandian = #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            referral_id = #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent = #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            register_ip = #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            user_agent = #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.collectDate != null">
+            collect_date = #{record.collectDate,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            insert_time = #{record.insertTime,jdbcType=TIMESTAMP},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.polardb.entity.SunUserActive">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_user_active
+    (id, user_id, nickname, openid, mobile, province, city, sex, is_subscribe, operatetime, 
+      registertime, authorizer_nickname, authorizer_appid, subscribe_time, channel_id, 
+      vip_end_time, recharge_amount, recharge_num, first_pay, last_recharge_time, total_kandian, 
+      kandian, referral_id, referral_id_permanent, register_ip, user_agent, collect_date, 
+      insert_time)
+    values
+    (#{id,jdbcType=INTEGER}, #{userId,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, 
+      #{openid,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, 
+      #{city,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{isSubscribe,jdbcType=VARCHAR}, 
+      #{operatetime,jdbcType=VARCHAR}, #{registertime,jdbcType=VARCHAR}, #{authorizerNickname,jdbcType=VARCHAR}, 
+      #{authorizerAppid,jdbcType=VARCHAR}, #{subscribeTime,jdbcType=VARCHAR}, #{channelId,jdbcType=VARCHAR}, 
+      #{vipEndTime,jdbcType=VARCHAR}, #{rechargeAmount,jdbcType=DECIMAL}, #{rechargeNum,jdbcType=INTEGER}, 
+      #{firstPay,jdbcType=DECIMAL}, #{lastRechargeTime,jdbcType=VARCHAR}, #{totalKandian,jdbcType=INTEGER}, 
+      #{kandian,jdbcType=INTEGER}, #{referralId,jdbcType=VARCHAR}, #{referralIdPermanent,jdbcType=VARCHAR}, 
+      #{registerIp,jdbcType=VARCHAR}, #{userAgent,jdbcType=VARCHAR}, #{collectDate,jdbcType=TIMESTAMP}, 
+      #{insertTime,jdbcType=TIMESTAMP})
+    on duplicate key update 
+    id = #{id,jdbcType=INTEGER}, 
+    user_id = #{userId,jdbcType=VARCHAR}, 
+    nickname = #{nickname,jdbcType=VARCHAR}, 
+    openid = #{openid,jdbcType=VARCHAR}, 
+    mobile = #{mobile,jdbcType=VARCHAR}, 
+    province = #{province,jdbcType=VARCHAR}, 
+    city = #{city,jdbcType=VARCHAR}, 
+    sex = #{sex,jdbcType=VARCHAR}, 
+    is_subscribe = #{isSubscribe,jdbcType=VARCHAR}, 
+    operatetime = #{operatetime,jdbcType=VARCHAR}, 
+    registertime = #{registertime,jdbcType=VARCHAR}, 
+    authorizer_nickname = #{authorizerNickname,jdbcType=VARCHAR}, 
+    authorizer_appid = #{authorizerAppid,jdbcType=VARCHAR}, 
+    subscribe_time = #{subscribeTime,jdbcType=VARCHAR}, 
+    channel_id = #{channelId,jdbcType=VARCHAR}, 
+    vip_end_time = #{vipEndTime,jdbcType=VARCHAR}, 
+    recharge_amount = #{rechargeAmount,jdbcType=DECIMAL}, 
+    recharge_num = #{rechargeNum,jdbcType=INTEGER}, 
+    first_pay = #{firstPay,jdbcType=DECIMAL}, 
+    last_recharge_time = #{lastRechargeTime,jdbcType=VARCHAR}, 
+    total_kandian = #{totalKandian,jdbcType=INTEGER}, 
+    kandian = #{kandian,jdbcType=INTEGER}, 
+    referral_id = #{referralId,jdbcType=VARCHAR}, 
+    referral_id_permanent = #{referralIdPermanent,jdbcType=VARCHAR}, 
+    register_ip = #{registerIp,jdbcType=VARCHAR}, 
+    user_agent = #{userAgent,jdbcType=VARCHAR}, 
+    collect_date = #{collectDate,jdbcType=TIMESTAMP}, 
+    insert_time = #{insertTime,jdbcType=TIMESTAMP}
+  </insert>
+</mapper>

+ 1305 - 0
book-dao/src/main/resources/mapper/polar/SunUserMapper.xml

@@ -0,0 +1,1305 @@
+<?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.polardb.mapper.SunUserMapper">
+  <resultMap id="BaseResultMap" type="com.book.dao.polardb.entity.SunUser">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="user_id" jdbcType="VARCHAR" property="userId" />
+    <result column="nickname" jdbcType="VARCHAR" property="nickname" />
+    <result column="openid" jdbcType="VARCHAR" property="openid" />
+    <result column="mobile" jdbcType="VARCHAR" property="mobile" />
+    <result column="province" jdbcType="VARCHAR" property="province" />
+    <result column="city" jdbcType="VARCHAR" property="city" />
+    <result column="sex" jdbcType="VARCHAR" property="sex" />
+    <result column="is_subscribe" jdbcType="VARCHAR" property="isSubscribe" />
+    <result column="operatetime" jdbcType="VARCHAR" property="operatetime" />
+    <result column="registertime" jdbcType="VARCHAR" property="registertime" />
+    <result column="authorizer_nickname" jdbcType="VARCHAR" property="authorizerNickname" />
+    <result column="authorizer_appid" jdbcType="VARCHAR" property="authorizerAppid" />
+    <result column="subscribe_time" jdbcType="VARCHAR" property="subscribeTime" />
+    <result column="channel_id" jdbcType="VARCHAR" property="channelId" />
+    <result column="vip_end_time" jdbcType="VARCHAR" property="vipEndTime" />
+    <result column="recharge_amount" jdbcType="DECIMAL" property="rechargeAmount" />
+    <result column="recharge_num" jdbcType="INTEGER" property="rechargeNum" />
+    <result column="first_pay" jdbcType="DECIMAL" property="firstPay" />
+    <result column="last_recharge_time" jdbcType="VARCHAR" property="lastRechargeTime" />
+    <result column="total_kandian" jdbcType="INTEGER" property="totalKandian" />
+    <result column="kandian" jdbcType="INTEGER" property="kandian" />
+    <result column="referral_id" jdbcType="VARCHAR" property="referralId" />
+    <result column="referral_id_permanent" jdbcType="VARCHAR" property="referralIdPermanent" />
+    <result column="register_ip" jdbcType="VARCHAR" property="registerIp" />
+    <result column="user_agent" jdbcType="VARCHAR" property="userAgent" />
+    <result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
+    <result column="end_time" jdbcType="TIMESTAMP" property="endTime" />
+    <result column="insert_time" jdbcType="TIMESTAMP" property="insertTime" />
+  </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 Sat Oct 09 18:15:43 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 Sat Oct 09 18:15:43 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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    id, user_id, nickname, openid, mobile, province, city, sex, is_subscribe, operatetime, 
+    registertime, authorizer_nickname, authorizer_appid, subscribe_time, channel_id, 
+    vip_end_time, recharge_amount, recharge_num, first_pay, last_recharge_time, total_kandian, 
+    kandian, referral_id, referral_id_permanent, register_ip, user_agent, start_time, 
+    end_time, insert_time
+  </sql>
+  <select id="selectByExample" parameterType="com.book.dao.polardb.pojo.example.SunUserExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from sun_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 Sat Oct 09 18:15:43 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 sun_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.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from sun_user
+    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 Sat Oct 09 18:15:43 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 sun_user
+    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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    delete from sun_user
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.book.dao.polardb.pojo.example.SunUserExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    delete from sun_user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.book.dao.polardb.entity.SunUser">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_user (id, user_id, nickname, 
+      openid, mobile, province, 
+      city, sex, is_subscribe, 
+      operatetime, registertime, authorizer_nickname, 
+      authorizer_appid, subscribe_time, channel_id, 
+      vip_end_time, recharge_amount, recharge_num, 
+      first_pay, last_recharge_time, total_kandian, 
+      kandian, referral_id, referral_id_permanent, 
+      register_ip, user_agent, start_time, 
+      end_time, insert_time)
+    values (#{id,jdbcType=INTEGER}, #{userId,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, 
+      #{openid,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, 
+      #{city,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{isSubscribe,jdbcType=VARCHAR}, 
+      #{operatetime,jdbcType=VARCHAR}, #{registertime,jdbcType=VARCHAR}, #{authorizerNickname,jdbcType=VARCHAR}, 
+      #{authorizerAppid,jdbcType=VARCHAR}, #{subscribeTime,jdbcType=VARCHAR}, #{channelId,jdbcType=VARCHAR}, 
+      #{vipEndTime,jdbcType=VARCHAR}, #{rechargeAmount,jdbcType=DECIMAL}, #{rechargeNum,jdbcType=INTEGER}, 
+      #{firstPay,jdbcType=DECIMAL}, #{lastRechargeTime,jdbcType=VARCHAR}, #{totalKandian,jdbcType=INTEGER}, 
+      #{kandian,jdbcType=INTEGER}, #{referralId,jdbcType=VARCHAR}, #{referralIdPermanent,jdbcType=VARCHAR}, 
+      #{registerIp,jdbcType=VARCHAR}, #{userAgent,jdbcType=VARCHAR}, #{startTime,jdbcType=TIMESTAMP}, 
+      #{endTime,jdbcType=TIMESTAMP}, #{insertTime,jdbcType=TIMESTAMP})
+  </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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_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.userId != null">
+            user_id,
+          </if>
+          <if test="record.nickname != null">
+            nickname,
+          </if>
+          <if test="record.openid != null">
+            openid,
+          </if>
+          <if test="record.mobile != null">
+            mobile,
+          </if>
+          <if test="record.province != null">
+            province,
+          </if>
+          <if test="record.city != null">
+            city,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe,
+          </if>
+          <if test="record.operatetime != null">
+            operatetime,
+          </if>
+          <if test="record.registertime != null">
+            registertime,
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname,
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid,
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time,
+          </if>
+          <if test="record.channelId != null">
+            channel_id,
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time,
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount,
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num,
+          </if>
+          <if test="record.firstPay != null">
+            first_pay,
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time,
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian,
+          </if>
+          <if test="record.kandian != null">
+            kandian,
+          </if>
+          <if test="record.referralId != null">
+            referral_id,
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent,
+          </if>
+          <if test="record.registerIp != null">
+            register_ip,
+          </if>
+          <if test="record.userAgent != null">
+            user_agent,
+          </if>
+          <if test="record.startTime != null">
+            start_time,
+          </if>
+          <if test="record.endTime != null">
+            end_time,
+          </if>
+          <if test="record.insertTime != null">
+            insert_time,
+          </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.userId != null">
+            #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            #{record.mobile,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.sex != null">
+            #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.startTime != null">
+            #{record.startTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.endTime != null">
+            #{record.endTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            #{record.insertTime,jdbcType=TIMESTAMP},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <select id="countByExample" parameterType="com.book.dao.polardb.pojo.example.SunUserExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    select count(*) from sun_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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    update sun_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=INTEGER},
+          </if>
+          <if test="record.userId != null">
+            user_id = #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            nickname = #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            openid = #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            mobile = #{record.mobile,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.sex != null">
+            sex = #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe = #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            operatetime = #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            registertime = #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname = #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid = #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time = #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            channel_id = #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time = #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount = #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num = #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            first_pay = #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time = #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian = #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            kandian = #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            referral_id = #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent = #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            register_ip = #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            user_agent = #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.startTime != null">
+            start_time = #{record.startTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.endTime != null">
+            end_time = #{record.endTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            insert_time = #{record.insertTime,jdbcType=TIMESTAMP},
+          </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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    update sun_user
+    set id = #{record.id,jdbcType=INTEGER},
+      user_id = #{record.userId,jdbcType=VARCHAR},
+      nickname = #{record.nickname,jdbcType=VARCHAR},
+      openid = #{record.openid,jdbcType=VARCHAR},
+      mobile = #{record.mobile,jdbcType=VARCHAR},
+      province = #{record.province,jdbcType=VARCHAR},
+      city = #{record.city,jdbcType=VARCHAR},
+      sex = #{record.sex,jdbcType=VARCHAR},
+      is_subscribe = #{record.isSubscribe,jdbcType=VARCHAR},
+      operatetime = #{record.operatetime,jdbcType=VARCHAR},
+      registertime = #{record.registertime,jdbcType=VARCHAR},
+      authorizer_nickname = #{record.authorizerNickname,jdbcType=VARCHAR},
+      authorizer_appid = #{record.authorizerAppid,jdbcType=VARCHAR},
+      subscribe_time = #{record.subscribeTime,jdbcType=VARCHAR},
+      channel_id = #{record.channelId,jdbcType=VARCHAR},
+      vip_end_time = #{record.vipEndTime,jdbcType=VARCHAR},
+      recharge_amount = #{record.rechargeAmount,jdbcType=DECIMAL},
+      recharge_num = #{record.rechargeNum,jdbcType=INTEGER},
+      first_pay = #{record.firstPay,jdbcType=DECIMAL},
+      last_recharge_time = #{record.lastRechargeTime,jdbcType=VARCHAR},
+      total_kandian = #{record.totalKandian,jdbcType=INTEGER},
+      kandian = #{record.kandian,jdbcType=INTEGER},
+      referral_id = #{record.referralId,jdbcType=VARCHAR},
+      referral_id_permanent = #{record.referralIdPermanent,jdbcType=VARCHAR},
+      register_ip = #{record.registerIp,jdbcType=VARCHAR},
+      user_agent = #{record.userAgent,jdbcType=VARCHAR},
+      start_time = #{record.startTime,jdbcType=TIMESTAMP},
+      end_time = #{record.endTime,jdbcType=TIMESTAMP},
+      insert_time = #{record.insertTime,jdbcType=TIMESTAMP}
+    <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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    update sun_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.userId != null">
+            user_id = #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            nickname = #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            openid = #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            mobile = #{record.mobile,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.sex != null">
+            sex = #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe = #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            operatetime = #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            registertime = #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname = #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid = #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time = #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            channel_id = #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time = #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount = #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num = #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            first_pay = #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time = #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian = #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            kandian = #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            referral_id = #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent = #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            register_ip = #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            user_agent = #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.startTime != null">
+            start_time = #{record.startTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.endTime != null">
+            end_time = #{record.endTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            insert_time = #{record.insertTime,jdbcType=TIMESTAMP},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+    where id = #{record.id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.book.dao.polardb.entity.SunUser">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    update sun_user
+    set user_id = #{userId,jdbcType=VARCHAR},
+      nickname = #{nickname,jdbcType=VARCHAR},
+      openid = #{openid,jdbcType=VARCHAR},
+      mobile = #{mobile,jdbcType=VARCHAR},
+      province = #{province,jdbcType=VARCHAR},
+      city = #{city,jdbcType=VARCHAR},
+      sex = #{sex,jdbcType=VARCHAR},
+      is_subscribe = #{isSubscribe,jdbcType=VARCHAR},
+      operatetime = #{operatetime,jdbcType=VARCHAR},
+      registertime = #{registertime,jdbcType=VARCHAR},
+      authorizer_nickname = #{authorizerNickname,jdbcType=VARCHAR},
+      authorizer_appid = #{authorizerAppid,jdbcType=VARCHAR},
+      subscribe_time = #{subscribeTime,jdbcType=VARCHAR},
+      channel_id = #{channelId,jdbcType=VARCHAR},
+      vip_end_time = #{vipEndTime,jdbcType=VARCHAR},
+      recharge_amount = #{rechargeAmount,jdbcType=DECIMAL},
+      recharge_num = #{rechargeNum,jdbcType=INTEGER},
+      first_pay = #{firstPay,jdbcType=DECIMAL},
+      last_recharge_time = #{lastRechargeTime,jdbcType=VARCHAR},
+      total_kandian = #{totalKandian,jdbcType=INTEGER},
+      kandian = #{kandian,jdbcType=INTEGER},
+      referral_id = #{referralId,jdbcType=VARCHAR},
+      referral_id_permanent = #{referralIdPermanent,jdbcType=VARCHAR},
+      register_ip = #{registerIp,jdbcType=VARCHAR},
+      user_agent = #{userAgent,jdbcType=VARCHAR},
+      start_time = #{startTime,jdbcType=TIMESTAMP},
+      end_time = #{endTime,jdbcType=TIMESTAMP},
+      insert_time = #{insertTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectOneByExample" parameterType="com.book.dao.polardb.pojo.example.SunUserExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    select
+    <include refid="Base_Column_List" />
+    from sun_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 Sat Oct 09 18:15:43 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 sun_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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_user
+    (id, user_id, nickname, openid, mobile, province, city, sex, is_subscribe, operatetime, 
+      registertime, authorizer_nickname, authorizer_appid, subscribe_time, channel_id, 
+      vip_end_time, recharge_amount, recharge_num, first_pay, last_recharge_time, total_kandian, 
+      kandian, referral_id, referral_id_permanent, register_ip, user_agent, start_time, 
+      end_time, insert_time)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.id,jdbcType=INTEGER}, #{item.userId,jdbcType=VARCHAR}, #{item.nickname,jdbcType=VARCHAR}, 
+        #{item.openid,jdbcType=VARCHAR}, #{item.mobile,jdbcType=VARCHAR}, #{item.province,jdbcType=VARCHAR}, 
+        #{item.city,jdbcType=VARCHAR}, #{item.sex,jdbcType=VARCHAR}, #{item.isSubscribe,jdbcType=VARCHAR}, 
+        #{item.operatetime,jdbcType=VARCHAR}, #{item.registertime,jdbcType=VARCHAR}, #{item.authorizerNickname,jdbcType=VARCHAR}, 
+        #{item.authorizerAppid,jdbcType=VARCHAR}, #{item.subscribeTime,jdbcType=VARCHAR}, 
+        #{item.channelId,jdbcType=VARCHAR}, #{item.vipEndTime,jdbcType=VARCHAR}, #{item.rechargeAmount,jdbcType=DECIMAL}, 
+        #{item.rechargeNum,jdbcType=INTEGER}, #{item.firstPay,jdbcType=DECIMAL}, #{item.lastRechargeTime,jdbcType=VARCHAR}, 
+        #{item.totalKandian,jdbcType=INTEGER}, #{item.kandian,jdbcType=INTEGER}, #{item.referralId,jdbcType=VARCHAR}, 
+        #{item.referralIdPermanent,jdbcType=VARCHAR}, #{item.registerIp,jdbcType=VARCHAR}, 
+        #{item.userAgent,jdbcType=VARCHAR}, #{item.startTime,jdbcType=TIMESTAMP}, #{item.endTime,jdbcType=TIMESTAMP}, 
+        #{item.insertTime,jdbcType=TIMESTAMP})
+    </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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_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=INTEGER}
+        </if>
+        <if test="'user_id'.toString() == column.value">
+          #{item.userId,jdbcType=VARCHAR}
+        </if>
+        <if test="'nickname'.toString() == column.value">
+          #{item.nickname,jdbcType=VARCHAR}
+        </if>
+        <if test="'openid'.toString() == column.value">
+          #{item.openid,jdbcType=VARCHAR}
+        </if>
+        <if test="'mobile'.toString() == column.value">
+          #{item.mobile,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="'sex'.toString() == column.value">
+          #{item.sex,jdbcType=VARCHAR}
+        </if>
+        <if test="'is_subscribe'.toString() == column.value">
+          #{item.isSubscribe,jdbcType=VARCHAR}
+        </if>
+        <if test="'operatetime'.toString() == column.value">
+          #{item.operatetime,jdbcType=VARCHAR}
+        </if>
+        <if test="'registertime'.toString() == column.value">
+          #{item.registertime,jdbcType=VARCHAR}
+        </if>
+        <if test="'authorizer_nickname'.toString() == column.value">
+          #{item.authorizerNickname,jdbcType=VARCHAR}
+        </if>
+        <if test="'authorizer_appid'.toString() == column.value">
+          #{item.authorizerAppid,jdbcType=VARCHAR}
+        </if>
+        <if test="'subscribe_time'.toString() == column.value">
+          #{item.subscribeTime,jdbcType=VARCHAR}
+        </if>
+        <if test="'channel_id'.toString() == column.value">
+          #{item.channelId,jdbcType=VARCHAR}
+        </if>
+        <if test="'vip_end_time'.toString() == column.value">
+          #{item.vipEndTime,jdbcType=VARCHAR}
+        </if>
+        <if test="'recharge_amount'.toString() == column.value">
+          #{item.rechargeAmount,jdbcType=DECIMAL}
+        </if>
+        <if test="'recharge_num'.toString() == column.value">
+          #{item.rechargeNum,jdbcType=INTEGER}
+        </if>
+        <if test="'first_pay'.toString() == column.value">
+          #{item.firstPay,jdbcType=DECIMAL}
+        </if>
+        <if test="'last_recharge_time'.toString() == column.value">
+          #{item.lastRechargeTime,jdbcType=VARCHAR}
+        </if>
+        <if test="'total_kandian'.toString() == column.value">
+          #{item.totalKandian,jdbcType=INTEGER}
+        </if>
+        <if test="'kandian'.toString() == column.value">
+          #{item.kandian,jdbcType=INTEGER}
+        </if>
+        <if test="'referral_id'.toString() == column.value">
+          #{item.referralId,jdbcType=VARCHAR}
+        </if>
+        <if test="'referral_id_permanent'.toString() == column.value">
+          #{item.referralIdPermanent,jdbcType=VARCHAR}
+        </if>
+        <if test="'register_ip'.toString() == column.value">
+          #{item.registerIp,jdbcType=VARCHAR}
+        </if>
+        <if test="'user_agent'.toString() == column.value">
+          #{item.userAgent,jdbcType=VARCHAR}
+        </if>
+        <if test="'start_time'.toString() == column.value">
+          #{item.startTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="'end_time'.toString() == column.value">
+          #{item.endTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="'insert_time'.toString() == column.value">
+          #{item.insertTime,jdbcType=TIMESTAMP}
+        </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 Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_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.userId != null">
+            user_id,
+          </if>
+          <if test="record.nickname != null">
+            nickname,
+          </if>
+          <if test="record.openid != null">
+            openid,
+          </if>
+          <if test="record.mobile != null">
+            mobile,
+          </if>
+          <if test="record.province != null">
+            province,
+          </if>
+          <if test="record.city != null">
+            city,
+          </if>
+          <if test="record.sex != null">
+            sex,
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe,
+          </if>
+          <if test="record.operatetime != null">
+            operatetime,
+          </if>
+          <if test="record.registertime != null">
+            registertime,
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname,
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid,
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time,
+          </if>
+          <if test="record.channelId != null">
+            channel_id,
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time,
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount,
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num,
+          </if>
+          <if test="record.firstPay != null">
+            first_pay,
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time,
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian,
+          </if>
+          <if test="record.kandian != null">
+            kandian,
+          </if>
+          <if test="record.referralId != null">
+            referral_id,
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent,
+          </if>
+          <if test="record.registerIp != null">
+            register_ip,
+          </if>
+          <if test="record.userAgent != null">
+            user_agent,
+          </if>
+          <if test="record.startTime != null">
+            start_time,
+          </if>
+          <if test="record.endTime != null">
+            end_time,
+          </if>
+          <if test="record.insertTime != null">
+            insert_time,
+          </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.userId != null">
+            #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            #{record.mobile,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.sex != null">
+            #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.startTime != null">
+            #{record.startTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.endTime != null">
+            #{record.endTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            #{record.insertTime,jdbcType=TIMESTAMP},
+          </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.userId != null">
+            user_id = #{record.userId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.nickname != null">
+            nickname = #{record.nickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.openid != null">
+            openid = #{record.openid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.mobile != null">
+            mobile = #{record.mobile,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.sex != null">
+            sex = #{record.sex,jdbcType=VARCHAR},
+          </if>
+          <if test="record.isSubscribe != null">
+            is_subscribe = #{record.isSubscribe,jdbcType=VARCHAR},
+          </if>
+          <if test="record.operatetime != null">
+            operatetime = #{record.operatetime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registertime != null">
+            registertime = #{record.registertime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerNickname != null">
+            authorizer_nickname = #{record.authorizerNickname,jdbcType=VARCHAR},
+          </if>
+          <if test="record.authorizerAppid != null">
+            authorizer_appid = #{record.authorizerAppid,jdbcType=VARCHAR},
+          </if>
+          <if test="record.subscribeTime != null">
+            subscribe_time = #{record.subscribeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.channelId != null">
+            channel_id = #{record.channelId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.vipEndTime != null">
+            vip_end_time = #{record.vipEndTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.rechargeAmount != null">
+            recharge_amount = #{record.rechargeAmount,jdbcType=DECIMAL},
+          </if>
+          <if test="record.rechargeNum != null">
+            recharge_num = #{record.rechargeNum,jdbcType=INTEGER},
+          </if>
+          <if test="record.firstPay != null">
+            first_pay = #{record.firstPay,jdbcType=DECIMAL},
+          </if>
+          <if test="record.lastRechargeTime != null">
+            last_recharge_time = #{record.lastRechargeTime,jdbcType=VARCHAR},
+          </if>
+          <if test="record.totalKandian != null">
+            total_kandian = #{record.totalKandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.kandian != null">
+            kandian = #{record.kandian,jdbcType=INTEGER},
+          </if>
+          <if test="record.referralId != null">
+            referral_id = #{record.referralId,jdbcType=VARCHAR},
+          </if>
+          <if test="record.referralIdPermanent != null">
+            referral_id_permanent = #{record.referralIdPermanent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.registerIp != null">
+            register_ip = #{record.registerIp,jdbcType=VARCHAR},
+          </if>
+          <if test="record.userAgent != null">
+            user_agent = #{record.userAgent,jdbcType=VARCHAR},
+          </if>
+          <if test="record.startTime != null">
+            start_time = #{record.startTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.endTime != null">
+            end_time = #{record.endTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="record.insertTime != null">
+            insert_time = #{record.insertTime,jdbcType=TIMESTAMP},
+          </if>
+        </trim>
+      </otherwise>
+    </choose>
+  </insert>
+  <insert id="upsert" parameterType="com.book.dao.polardb.entity.SunUser">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Sat Oct 09 18:15:43 CST 2021.
+    -->
+    insert into sun_user
+    (id, user_id, nickname, openid, mobile, province, city, sex, is_subscribe, operatetime, 
+      registertime, authorizer_nickname, authorizer_appid, subscribe_time, channel_id, 
+      vip_end_time, recharge_amount, recharge_num, first_pay, last_recharge_time, total_kandian, 
+      kandian, referral_id, referral_id_permanent, register_ip, user_agent, start_time, 
+      end_time, insert_time)
+    values
+    (#{id,jdbcType=INTEGER}, #{userId,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, 
+      #{openid,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, 
+      #{city,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{isSubscribe,jdbcType=VARCHAR}, 
+      #{operatetime,jdbcType=VARCHAR}, #{registertime,jdbcType=VARCHAR}, #{authorizerNickname,jdbcType=VARCHAR}, 
+      #{authorizerAppid,jdbcType=VARCHAR}, #{subscribeTime,jdbcType=VARCHAR}, #{channelId,jdbcType=VARCHAR}, 
+      #{vipEndTime,jdbcType=VARCHAR}, #{rechargeAmount,jdbcType=DECIMAL}, #{rechargeNum,jdbcType=INTEGER}, 
+      #{firstPay,jdbcType=DECIMAL}, #{lastRechargeTime,jdbcType=VARCHAR}, #{totalKandian,jdbcType=INTEGER}, 
+      #{kandian,jdbcType=INTEGER}, #{referralId,jdbcType=VARCHAR}, #{referralIdPermanent,jdbcType=VARCHAR}, 
+      #{registerIp,jdbcType=VARCHAR}, #{userAgent,jdbcType=VARCHAR}, #{startTime,jdbcType=TIMESTAMP}, 
+      #{endTime,jdbcType=TIMESTAMP}, #{insertTime,jdbcType=TIMESTAMP})
+    on duplicate key update 
+    id = #{id,jdbcType=INTEGER}, 
+    user_id = #{userId,jdbcType=VARCHAR}, 
+    nickname = #{nickname,jdbcType=VARCHAR}, 
+    openid = #{openid,jdbcType=VARCHAR}, 
+    mobile = #{mobile,jdbcType=VARCHAR}, 
+    province = #{province,jdbcType=VARCHAR}, 
+    city = #{city,jdbcType=VARCHAR}, 
+    sex = #{sex,jdbcType=VARCHAR}, 
+    is_subscribe = #{isSubscribe,jdbcType=VARCHAR}, 
+    operatetime = #{operatetime,jdbcType=VARCHAR}, 
+    registertime = #{registertime,jdbcType=VARCHAR}, 
+    authorizer_nickname = #{authorizerNickname,jdbcType=VARCHAR}, 
+    authorizer_appid = #{authorizerAppid,jdbcType=VARCHAR}, 
+    subscribe_time = #{subscribeTime,jdbcType=VARCHAR}, 
+    channel_id = #{channelId,jdbcType=VARCHAR}, 
+    vip_end_time = #{vipEndTime,jdbcType=VARCHAR}, 
+    recharge_amount = #{rechargeAmount,jdbcType=DECIMAL}, 
+    recharge_num = #{rechargeNum,jdbcType=INTEGER}, 
+    first_pay = #{firstPay,jdbcType=DECIMAL}, 
+    last_recharge_time = #{lastRechargeTime,jdbcType=VARCHAR}, 
+    total_kandian = #{totalKandian,jdbcType=INTEGER}, 
+    kandian = #{kandian,jdbcType=INTEGER}, 
+    referral_id = #{referralId,jdbcType=VARCHAR}, 
+    referral_id_permanent = #{referralIdPermanent,jdbcType=VARCHAR}, 
+    register_ip = #{registerIp,jdbcType=VARCHAR}, 
+    user_agent = #{userAgent,jdbcType=VARCHAR}, 
+    start_time = #{startTime,jdbcType=TIMESTAMP}, 
+    end_time = #{endTime,jdbcType=TIMESTAMP}, 
+    insert_time = #{insertTime,jdbcType=TIMESTAMP}
+  </insert>
+</mapper>

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

@@ -133,7 +133,8 @@
         <!--        <table tableName="sun_user_collect"/>-->
         <!--        <table tableName="sun_order"/>-->
         <!--        <table tableName="sun_order_collect"/>-->
-        <table tableName="sun_channel"></table>
+        <table tableName="sun_user"></table>
+        <table tableName="sun_user_active"></table>
     </context>
 
 </generatorConfiguration>

+ 1 - 1
book-push/src/main/java/com/book/push/controller/KefuTestController.java

@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
 /**
  * created in 2021/9/28
  * Project: book-store
- * http://mp.esalary.com.cn/kefu/send?appid=wxe1271417b2ff5b1c&openid=ou1lt1YlMHsrUSm1FJ98PCd31yFI
+ * http://mp.esalary.com.cn/kefu/send?appid=wxe1271417b2ff5b1c&openid=ou1lt1dL4yDiCZ_3aq2CQio4Hgqs
  * @author win7
  */
 @Slf4j

+ 3 - 0
book-push/src/main/java/com/book/push/handler/MenuHandler.java

@@ -63,7 +63,10 @@ public class MenuHandler extends AbstractHandler {
 //        String msg = "<a href=\"weixin://bizmsgmenu?msgmenucontent=签到&msgmenuid=0\">点我签到</a>";
         if ("签到".equals(wxMessage.getEventKey())) {
 //            msg = "<a href=\"weixin://bizmsgmenu?msgmenucontent=签到&msgmenuid=0\">\uD83D\uDC49\uD83D\uDC49点击领取免费书币</a>";
+            //安卓手机
             msg = "<a href=\"weixin://kefumenu?kefumenucontent=签到&kefumenuid=0\">\uD83D\uDC49\uD83D\uDC49点击领取免费书币</a>";
+            //苹果手机
+          //  < a href="weixin://bizmsgmenu?msgmenucontent=签到&msgmenuid= ">点我签到领取书币</ a>
 //            weixin://kefumenu?kefumenucontent=蓝字开口测试&kefumenuid=0
             WxMpXmlOutTextMessage wxMpXmlOutTextMessage = WxMpXmlOutMessage.TEXT().content(msg)
                     .fromUser(appid).toUser(openid)

+ 26 - 4
book-push/src/main/java/com/book/push/task/CacheTask.java

@@ -9,16 +9,21 @@ package com.book.push.task;
  */
 
 import com.book.dao.cps.pojo.AdminConfig;
-import com.book.dao.cps.pojo.Platform;
 import com.book.push.service.dao.AdminConfigService;
 import com.book.push.service.dao.PlatformService;
+import com.book.push.utils.HttpTool;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
 
 import java.util.Map;
 
-
+@EnableScheduling
+@Component("cacheTask")
 public class CacheTask {
+
+    boolean success =false;
     @Autowired
     private AdminConfigService adminConfigService;
 
@@ -29,9 +34,26 @@ public class CacheTask {
         Map<String, AdminConfig> stringAdminConfigMap = adminConfigService.selectAll();
     }
 
-//    @Scheduled(cron = "0 0/20 * * * ?")
+    @Scheduled(cron = "0 0/10 * * * ?")
     public void refreshPlatform(){
-        Map<Integer, Platform> integerPlatformMap = platformService.selectAll();
+        if (success){
+            return;
+        }
+       // Map<Integer, Platform> integerPlatformMap = platformService.selectAll();
+        String u = "http://mp.esalary.com.cn/kefu/send?appid=wxe1271417b2ff5b1c&openid=ou1lt1bwxaev7-EQorPD4q2dOH_A";
+
+       String result = HttpTool.sendGet(u,null);
+        System.out.println(result);
+       if (result.contains("错误代码")){
+           success =false;
+           System.out.println("继续");
+       }else {
+           success=true;
+       }
+    }
+
+    public static void main(String[] args) {
+        new CacheTask().refreshPlatform();
     }
 
 }

+ 452 - 0
book-push/src/main/java/com/book/push/utils/HttpTool.java

@@ -0,0 +1,452 @@
+package com.book.push.utils;
+
+
+import javax.net.ssl.HttpsURLConnection;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.*;
+
+public class HttpTool {
+    public static final String GET = "GET";
+    public static final String POST = "POST";
+    // 签名key
+    public final static String SIGNATURE = "sign";
+    // 签名方法key
+    public final static String SIGN_METHOD = "sign_type";
+    // =
+    public static final String QSTRING_EQUAL = "=";
+    // &
+    public static final String QSTRING_SPLIT = "&";
+
+    /**
+     * 向指定URL发送GET方法的请求
+     *
+     * @param address 发送请求的URL
+     * @param form    请求参数,请求参数应该是name1=value1&name2=value2的形式。
+     * @return URL所代表远程资源的响应
+     */
+
+    public static String sendGet(final String address, String form) {
+        String req = address + "?" + form;
+        if (form==null||form.length()==0){
+            req = address;
+        }
+        System.out.println("请求:" + req);
+        StringBuilder response = new StringBuilder();
+        HttpURLConnection connection = null;
+        InputStream in = null;
+        try {
+            // 创建一个URL对象并传入地址
+            URL url = new URL(req);
+            // 用地址打开连接通道
+            connection = (HttpURLConnection) url.openConnection();
+            // 设置请求方式为get
+            connection.setRequestMethod("GET");
+            // 设置连接超时为8秒
+            connection.setConnectTimeout(8000);
+            // 设置读取超时为8秒
+            connection.setReadTimeout(8000);
+            connection.setRequestProperty("Charset", "utf-8");
+            // 设置可取
+//			connection.setDoInput(true);
+//			// 设置可读
+//			connection.setDoOutput(true);
+//			// 得到输入流
+            in = connection.getInputStream();
+
+            // 创建高效流对象
+            BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));
+            // 创建StringBuilder对象存储数据
+
+            String line;// 一次读取一行
+            while ((line = reader.readLine()) != null) {
+                response.append(line);// 得到的数据存入StringBuilder
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (connection != null) {// 通道不为null
+                connection.disconnect();// 关闭通道
+            }
+            try {
+                if (in != null) {
+                    in.close();
+                }
+
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return response.toString();
+    }
+    public static List<String> sendGet(final String address) {
+        StringBuilder response = new StringBuilder();
+        List<String> list = new ArrayList();
+        HttpURLConnection connection = null;
+        InputStream in = null;
+        try {
+            // 创建一个URL对象并传入地址
+            URL url = new URL(address);
+            // 用地址打开连接通道
+            connection = (HttpURLConnection) url.openConnection();
+            // 设置请求方式为get
+            connection.setRequestMethod("GET");
+            // 设置连接超时为8秒
+            connection.setConnectTimeout(8000);
+            // 设置读取超时为8秒
+            connection.setReadTimeout(8000);
+            connection.setRequestProperty("Charset", "utf-8");
+            // 设置可取
+//			connection.setDoInput(true);
+//			// 设置可读
+//			connection.setDoOutput(true);
+//			// 得到输入流
+            in = connection.getInputStream();
+
+            // 创建高效流对象
+            BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));
+            // 创建StringBuilder对象存储数据
+
+            String line;// 一次读取一行
+            while ((line = reader.readLine()) != null) {
+                response.append(line);// 得到的数据存入StringBuilder
+                list.add(line);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (connection != null) {// 通道不为null
+                connection.disconnect();// 关闭通道
+            }
+            try {
+                if (in != null) {
+                    in.close();
+                }
+
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+//        return response.toString();
+        return list;
+    }
+
+    /**
+     * 向指定URL发送GET方法的请求
+     *
+     * @param url   发送请求的URL
+     * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
+     * @return URL所代表远程资源的响应
+     */
+
+    public static String sendGetCookie(String url, String param, String cookie) {
+        String result = "";
+        BufferedReader in = null;
+        try {
+            String urlName = url + "?" + param;
+            System.out.println(urlName);
+            URL realUrl = new URL(urlName);
+            // 打开和URL之间的连接
+            URLConnection conn = realUrl.openConnection();
+            // 设置通用的请求属性
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent",
+                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
+            conn.setRequestProperty("Cookie", cookie);
+            // 建立实际的连接
+            conn.connect();
+            // 获取所有响应头字段
+            Map<String, List<String>> map = conn.getHeaderFields();
+            // 遍历所有的响应头字段
+            // for (String key : map.keySet()) {
+            // System.out.println(key + "--->" + map.get(key));
+            // }
+            // 定义BufferedReader输入流来读取URL的响应
+            in = new BufferedReader(
+                    new InputStreamReader(conn.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result += line;
+                // result += "/n" + line;
+            }
+        } catch (Exception e) {
+            System.out.println("发送GET请求出现异常!" + e);
+            e.printStackTrace();
+        }
+        // 使用finally块来关闭输入流
+        finally {
+            try {
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                ex.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 向指定URL发送POST方法的请求
+     *
+     * @param url   发送请求的URL
+     * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
+     * @return URL所代表远程资源的响应
+     */
+    public static String sendPost(String url, String param) {
+        PrintWriter out = null;
+        BufferedReader in = null;
+        String result = "";
+        try {
+            URL realUrl = new URL(url);
+            // 打开和URL之间的连接
+            URLConnection conn = realUrl.openConnection();
+            // 设置通用的请求属性
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent",
+                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
+            // 发送POST请求必须设置如下两行
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+            // 获取URLConnection对象对应的输出流
+            out = new PrintWriter(conn.getOutputStream());
+            // 发送请求参数
+            out.print(param);
+            // flush输出流的缓冲
+            out.flush();
+            // 定义BufferedReader输入流来读取URL的响应
+            in = new BufferedReader(
+                    new InputStreamReader(conn.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result += line;
+                // result += "/n" + line;
+            }
+        } catch (Exception e) {
+            System.out.println("发送POST请求出现异常!" + e);
+            e.printStackTrace();
+        }
+        // 使用finally块来关闭输出流、输入流
+        finally {
+            try {
+                if (out != null) {
+                    out.close();
+                }
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                ex.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 向指定URL发送POST方法的请求
+     *
+     * @param url   发送请求的URL
+     * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
+     * @return URL所代表远程资源的响应
+     */
+    public static String sendPostCookie(String url, String param, String cookie) {
+        PrintWriter out = null;
+        BufferedReader in = null;
+        String result = "";
+        try {
+            URL realUrl = new URL(url);
+            // 打开和URL之间的连接
+            URLConnection conn = realUrl.openConnection();
+            // 设置通用的请求属性
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent",
+                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
+            conn.setRequestProperty("Cookie", cookie);
+            // 发送POST请求必须设置如下两行
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+            // 获取URLConnection对象对应的输出流
+            out = new PrintWriter(conn.getOutputStream());
+            // 发送请求参数
+            out.print(param);
+            // flush输出流的缓冲
+            out.flush();
+            // 定义BufferedReader输入流来读取URL的响应
+            in = new BufferedReader(
+                    new InputStreamReader(conn.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result += line;
+                // result += "/n" + line;
+            }
+        } catch (Exception e) {
+            System.out.println("发送POST请求出现异常!" + e);
+            e.printStackTrace();
+        }
+        // 使用finally块来关闭输出流、输入流
+        finally {
+            try {
+                if (out != null) {
+                    out.close();
+                }
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                ex.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+    /**
+     * https访问
+     */
+    public static String doHttps(String httpurl, String method, String param) {
+        try {
+            URL reqURL = new URL(httpurl + param); // 创建URL对象
+            HttpsURLConnection httpsConn = (HttpsURLConnection) reqURL
+                    .openConnection();
+
+            /*
+             * 下面这段代码实现向Web页面发送数据,实现与网页的交互访问 httpsConn.setDoOutput(true);
+             * OutputStreamWriter out = new
+             * OutputStreamWriter(huc.getOutputStream(), "8859_1"); out.write(
+             * "……" ); out.flush(); out.close();
+             */
+
+            // 取得该连接的输入流,以读取响应内容
+            InputStreamReader insr = new InputStreamReader(
+                    httpsConn.getInputStream());
+
+            // 读取服务器的响应内容并显示
+            int respInt = insr.read();
+            while (respInt != -1) {
+                System.out.print((char) respInt);
+                respInt = insr.read();
+            }
+        } catch (Exception e) {
+            // TODO: handle exception
+        }
+
+        return "";
+    }
+
+
+    /**
+     * 除去请求要素中的空值和签名参数
+     *
+     * @param para 请求要素
+     * @return 去掉空值与签名参数后的请求要素
+     */
+    public static Map<String, String> paraFilter(Map<String, String> para) {
+
+        Map<String, String> result = new HashMap<String, String>();
+
+        if (para == null || para.size() <= 0) {
+            return result;
+        }
+
+        for (String key : para.keySet()) {
+            String value = para.get(key);
+            if (value == null || value.equals("")
+                    || key.equalsIgnoreCase(SIGNATURE)
+                    || key.equalsIgnoreCase(SIGN_METHOD)) {
+                continue;
+            }
+            result.put(key, value);
+        }
+
+        return result;
+    }
+
+    /**
+     * 把请求要素按照“参数=参数值”的模式用“&”字符拼接成字符串
+     *
+     * @param para   请求要素
+     * @param sort   是否需要根据key值作升序排列
+     * @param encode 是否需要URL编码
+     * @return 拼接成的字符串
+     */
+    public static String createLinkString(Map<String, String> para,
+                                          boolean sort, boolean encode) {
+
+        List<String> keys = new ArrayList<String>(para.keySet());
+
+        if (sort)
+            Collections.sort(keys);
+
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < keys.size(); i++) {
+            String key = keys.get(i);
+            String value = para.get(key);
+
+            if (encode) {
+                try {
+                    value = URLEncoder.encode(value, "utf-8");
+                } catch (UnsupportedEncodingException e) {
+                }
+            }
+
+            if (i == keys.size() - 1) {// 拼接时,不包括最后一个&字符
+                sb.append(key).append(QSTRING_EQUAL).append(value);
+            } else {
+                sb.append(key).append(QSTRING_EQUAL).append(value)
+                        .append(QSTRING_SPLIT);
+            }
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 对传入的参数进行MD5摘要
+     *
+     * @param str 需进行MD5摘要的数据
+     * @return MD5摘要值
+     */
+    public static String md5Summary(String str) {
+
+        if (str == null) {
+            return null;
+        }
+
+        MessageDigest messageDigest = null;
+
+        try {
+            messageDigest = MessageDigest.getInstance("MD5");
+            messageDigest.reset();
+            messageDigest.update(str.getBytes(StandardCharsets.UTF_8));
+        } catch (NoSuchAlgorithmException e) {
+
+            return str;
+        }
+
+        byte[] byteArray = messageDigest.digest();
+
+        StringBuffer md5StrBuff = new StringBuffer();
+
+        for (int i = 0; i < byteArray.length; i++) {
+            if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
+                md5StrBuff.append("0").append(
+                        Integer.toHexString(0xFF & byteArray[i]));
+            else
+                md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
+        }
+
+        return md5StrBuff.toString();
+    }
+
+
+
+}

+ 79 - 19
book-server/src/main/java/com/book/server/service/impl/SunDataServiceImpl.java

@@ -1,20 +1,9 @@
 package com.book.server.service.impl;
 
-import com.alibaba.druid.support.json.JSONUtils;
 import com.book.dao.VO.SunVO;
-import com.book.dao.polardb.entity.SunChannel;
-import com.book.dao.polardb.entity.SunOrder;
-import com.book.dao.polardb.entity.SunOrderCollect;
-import com.book.dao.polardb.entity.SunUserCollect;
-import com.book.dao.polardb.mapper.SunChannelMapper;
-import com.book.dao.polardb.mapper.SunOrderCollectMapper;
-import com.book.dao.polardb.mapper.SunOrderMapper;
-import com.book.dao.polardb.mapper.SunUserCollectMapper;
-import com.book.dao.polardb.pojo.example.SunChannelExample;
-import com.book.dao.polardb.pojo.example.SunOrderCollectExample;
-import com.book.dao.polardb.pojo.example.SunOrderExample;
-import com.book.dao.polardb.pojo.example.SunUserCollectExample;
-import com.book.dao.utils.DateUtils;
+import com.book.dao.polardb.entity.*;
+import com.book.dao.polardb.mapper.*;
+import com.book.dao.polardb.pojo.example.*;
 import com.book.dao.utils.TimeUtil;
 import com.book.server.common.entity.PageResult;
 import com.book.server.common.entity.Result;
@@ -33,11 +22,9 @@ import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
-import java.text.ParseException;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -64,7 +51,10 @@ public class SunDataServiceImpl implements SunDataService {
 
     @Autowired
     private SunOrderCollectMapper sunOrderCollectMapper;
-
+    @Autowired
+    private SunUserMapper sunUserMapper;
+    @Autowired
+    private SunUserActiveMapper sunUserActiveMapper;
 
     @Override
     public Result requestData(SunRequest request, SunTypeEnum sunTypeEnum) {
@@ -130,9 +120,11 @@ public class SunDataServiceImpl implements SunDataService {
 
             switch (sunTypeEnum) {
                 case user:
+                    handleUser(list, taskId);
+                    break;
                 case user_active:
-                    result = caverStr2Obj(list, SunTypeUser.class);
-
+//                    result = caverStr2Obj(list, SunTypeUser.class);
+                    handleUserActive(list, taskId);
                     break;
                 case user_collect:
                 case user_day_collect:
@@ -177,6 +169,74 @@ public class SunDataServiceImpl implements SunDataService {
         }
     }
 
+    private void handleUserActive(List<String> list, Integer taskId) {
+
+        List<SunUserActive> result = new ArrayList<>();
+        SunRequest request = taskMap.get(taskId);
+        for (int i = 0; i < list.size(); i++) {
+            String line = list.get(i);
+            try {
+                GsonBuilder gsonBuilder = new GsonBuilder();
+                gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
+                Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss").create();
+                SunUserActive sunUserActive = gson.fromJson(line, SunUserActive.class);
+                sunUserActive.setInsertTime(new Date());
+                sunUserActive.setCollectDate(TimeUtil.dateFromStr(request.getSearch_date(),TimeUtil.YYYYMMDD1));
+
+                result.add(sunUserActive);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error(e.getMessage());
+            }
+
+
+        }
+        try {
+            if (result.size()!=0){
+                SunUserActiveExample example = SunUserActiveExample.newAndCreateCriteria()
+                        .andCollectDateBetween(TimeUtil.dateFromStr(request.getSearch_date(), TimeUtil.YYYYMMDD1), new Date()).example();
+                sunUserActiveMapper.deleteByExample(example);
+                sunUserActiveMapper.batchInsert(result);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error(e.getMessage());
+        }
+
+        taskMap.remove(taskId);
+
+
+    }
+
+    private void handleUser(List<String> list, Integer taskId) {
+        List<SunUser> result = new ArrayList<>();
+        SunRequest request = taskMap.get(taskId);
+        for (int i = 0; i < list.size(); i++) {
+            String line = list.get(i);
+            try {
+                GsonBuilder gsonBuilder = new GsonBuilder();
+                gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
+                Gson gson = gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss").create();
+                SunUser sunUser = gson.fromJson(line, SunUser.class);
+                sunUser.setInsertTime(new Date());
+                sunUser.setStartTime(TimeUtil.dateFromStr(request.getStart_time(), TimeUtil.YYYY_MM_DD_HH_MM_SS));
+                sunUser.setEndTime(TimeUtil.dateFromStr(request.getEnd_time(), TimeUtil.YYYY_MM_DD_HH_MM_SS));
+
+                result.add(sunUser);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error(e.getMessage());
+            }
+
+
+        }
+
+        sunUserMapper.batchInsert(result);
+        taskMap.remove(taskId);
+
+
+    }
+
     @Autowired
     private SunChannelMapper sunChannelMapper;
 

+ 40 - 4
book-server/src/main/java/com/book/server/task/SunDataTask.java

@@ -1,8 +1,6 @@
 package com.book.server.task;
 
-import com.book.dao.utils.DateUtils;
 import com.book.dao.utils.TimeUtil;
-import com.book.server.common.entity.Result;
 import com.book.server.config.SunTypeEnum;
 import com.book.server.service.SunDataService;
 import com.book.server.vo.SunRequest;
@@ -13,6 +11,7 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import java.util.Calendar;
+import java.util.Date;
 
 /**
  * created in 2021/9/28
@@ -43,13 +42,18 @@ public class SunDataTask {
             SunRequest request = new SunRequest();
 
             switch (sunTypeEnum) {
-
-
                 case user_collect:
+
+                case user:
                     request.setStart_time(timeFrom);
                     request.setEnd_time(timeNow);
                     sunDataService.requestData(request, sunTypeEnum);
 
+                    break;
+                case user_active:
+                    request.setSearch_date(dateNow);
+                    sunDataService.requestData(request, sunTypeEnum);
+
                     break;
 
                 case order:
@@ -67,4 +71,36 @@ public class SunDataTask {
 
         }
     }
+
+
+
+    @Scheduled(cron = "0 30 0 * * ?")
+    private void getYesterdayData() {
+        log.info("定时拉取sun昨日数据");
+
+        Date yesterday = TimeUtil.getYesterday(-1);
+        String date = TimeUtil.dateToStr(yesterday,TimeUtil.YYYYMMDD1);
+
+
+        for (SunTypeEnum sunTypeEnum : SunTypeEnum.values()) {
+            SunRequest request = new SunRequest();
+
+            switch (sunTypeEnum) {
+
+                case user_active:
+                    request.setSearch_date(date);
+                    sunDataService.requestData(request, sunTypeEnum);
+
+                    break;
+
+
+
+                default:
+                    break;
+
+            }
+
+
+        }
+    }
 }

+ 3 - 3
book-server/src/test/java/com/book/server/controller/SunControllerTest.java

@@ -77,15 +77,15 @@ public class SunControllerTest {
         System.out.println(jsonStr);
         Map he = new HashMap();
         he.put("Content-Type","application/json");
-        HttpUtils.sendPost("http://api.griacxv.cn/api/sun/getData/user_collect",he,jsonStr.getBytes(StandardCharsets.UTF_8));
+        HttpUtils.sendPost("http://api.griacxv.cn/api/sun/getData/order",he,jsonStr.getBytes(StandardCharsets.UTF_8));
 
 
         start.add(Calendar.HOUR_OF_DAY,1);
         end.add(Calendar.HOUR_OF_DAY,1);
-        if ("2021-09-30 12:00:00".equals(TimeUtil.dateToStr(start.getTime(),TimeUtil.YYYY_MM_DD_HH_MM_SS))){
+        if ("2021-09-30 17:00:00".equals(TimeUtil.dateToStr(start.getTime(),TimeUtil.YYYY_MM_DD_HH_MM_SS))){
             return;
         }
-        Thread.sleep(1000);
+        Thread.sleep(2100);
         loadData(TimeUtil.dateToStr(start.getTime(),TimeUtil.YYYY_MM_DD_HH_MM_SS),TimeUtil.dateToStr(end.getTime(),TimeUtil.YYYY_MM_DD_HH_MM_SS));
     }