/*
 * Author: wangjian
 * 生成entity
 */
package com.tofly.base.api.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tofly.common.core.annotation.Excel;
import com.tofly.common.core.constant.ToflySqlCondition;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 用户表
 *
 * @author wangjian
 * @date Mon Oct 21 00:00:00 CST 2019
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "TF_SMPN_USER_X",resultMap = "userMap")
@KeySequence("TF_SMPN_USER_X")
@ApiModel
public class User extends Model<User> {
    private static final long serialVersionUID = 1L;

        /**
     * 用户ID，主键
     */
        @TableId(value = "ID",type= IdType.INPUT)
        @ApiModelProperty(value = "用户ID，主键")
            private Long id;
        /**
     * 用户名
     */
        @ApiModelProperty(value = "用户名")
        @TableField(condition = ToflySqlCondition.LIKE)
        @Excel(name = "username")
            private String username;
        /**
     * 密码
     */
        @ApiModelProperty(value = "密码")
        @Excel(name = "password")
            private String password;
        /**
     * 随机数
     */
        @ApiModelProperty(value = "随机数")
            private String salt;
        /**
     * 电话
     */
        @ApiModelProperty(value = "电话")
        @Excel(name = "phone")
            private String phone;
        /**
     * 头像
     */
        @ApiModelProperty(value = "头像")
            private String avatar;
        /**
     * 部门ID
     */
        @ApiModelProperty(value = "部门ID")
        @Excel(name = "departmentId")
            private Long departmentId;

        @TableField(exist = false)
        private String departmentName;
        /**
     * 创建时间
     */
        @ApiModelProperty(value = "创建时间")
        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
            @TableField(value = "CREATE_TIME",fill = FieldFill.INSERT)
        private Date createTime;
        /**
     * 修改时间
     */
        @ApiModelProperty(value = "修改时间")
        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
            @TableField(value = "UPDATE_TIME",fill = FieldFill.INSERT_UPDATE)
        private Date updateTime;
        /**
     * 是否锁定，1正常，0锁定
     */
        @ApiModelProperty(value = "是否锁定，1正常，0锁定")
            private String lockFlag;
        /**
     * 是否启用禁用，1启用，0禁用
     */
        @ApiModelProperty(value = "是否启用禁用，1启用，0禁用")
            private String statusFlag;
        /**
     * 扩展功能，微信openid
     */
        @ApiModelProperty(value = "扩展功能，微信openid")
            private String wxOpenid;
        /**
     * 扩展功能，QQ openid
     */
        @ApiModelProperty(value = "扩展功能，QQ openid")
            private String qqOpenid;
        /**
     * 用户email
     */
        @ApiModelProperty(value = "用户email")
        @Excel(name = "email")
            private String email;
        /**
     * 用户姓名
     */
        @ApiModelProperty(value = "用户姓名")
        @TableField(condition = ToflySqlCondition.LIKE)
        @Excel(name = "realName")
            private String realName;
        /**
     * 最后一次登录时间
     */
        @ApiModelProperty(value = "最后一次登录时间")
        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
            private Date loginTime;
        /**
     * 最后一次访问IP
     */
        @ApiModelProperty(value = "最后一次访问IP")
            private String lastIp;
        /**
     * 密码错误次数
     */
        @ApiModelProperty(value = "密码错误次数")
            private Short pwderrtimes;
        /**
     * 工号
     */
        @ApiModelProperty(value = "工号")
            private String worknumber;
        /**
     * 找回密码关键字
     */
        @ApiModelProperty(value = "找回密码关键字")
            private String findpwdkey;
        /**
     * 别名
     */
        @ApiModelProperty(value = "别名")
            private String aliasname;
        /**
     * 生日
     */
        @ApiModelProperty(value = "生日")
        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
            private Date birthday;
        /**
     * 属于（学院/部门）
     */
        @ApiModelProperty(value = "属于（学院/部门）")
            private String belong;
        /**
     * 创建人
     */
        @ApiModelProperty(value = "创建人")
            @TableField(value = "CREATE_USER",fill = FieldFill.INSERT)
        private Long createUser;

    /**
     * 用户级别
     */
    @ApiModelProperty(value = "用户级别")
    @Excel(name = "userLevel")
    private String userLevel;
}
