package com.mortals.xhx.module.operate.model;

import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.base.framework.CustomJsonDateDeserializer;
import com.mortals.xhx.module.operate.model.vo.OperateLogVo;
/**
* 平台用户操作日志业务实体对象
*
* @author zxfei
* @date 2022-08-17
*/

public class OperateLogEntity extends OperateLogVo {
    private static final long serialVersionUID = 1L;

    /**
    * 平台标识
    */
    private String platformMark;
    /**
    * 用户id
    */
    private Long userId;
    /**
    * 用户名称
    */
    private String userName;
    /**
    * 用户登录名
    */
    private String loginName;
    /**
    * 请求地址
    */
    private String requestUrl;
    /**
    * 操作内容，记录操作具体信息，如修改前修改或的数据
    */
    private String content;
    /**
    * 操作IP地址
    */
    private String ip;
    /**
    * 操作时间
    */
    //@JsonDeserialize(using = CustomJsonDateDeserializer.class)
    private Date logDate;
    /**
    * 操作类型，0：新增，1：修改，2：删除
    */
    private Integer operType;



    public OperateLogEntity(){}
    /**
    * 获取 平台标识
    * @return String
    */
    public String getPlatformMark(){
        return platformMark;
    }
    /**
    * 设置 平台标识
    * @param platformMark
    */
    public void setPlatformMark(String platformMark){
        this.platformMark = platformMark;
    }
    /**
    * 获取 用户id
    * @return Long
    */
    public Long getUserId(){
        return userId;
    }
    /**
    * 设置 用户id
    * @param userId
    */
    public void setUserId(Long userId){
        this.userId = userId;
    }
    /**
    * 获取 用户名称
    * @return String
    */
    public String getUserName(){
        return userName;
    }
    /**
    * 设置 用户名称
    * @param userName
    */
    public void setUserName(String userName){
        this.userName = userName;
    }
    /**
    * 获取 用户登录名
    * @return String
    */
    public String getLoginName(){
        return loginName;
    }
    /**
    * 设置 用户登录名
    * @param loginName
    */
    public void setLoginName(String loginName){
        this.loginName = loginName;
    }
    /**
    * 获取 请求地址
    * @return String
    */
    public String getRequestUrl(){
        return requestUrl;
    }
    /**
    * 设置 请求地址
    * @param requestUrl
    */
    public void setRequestUrl(String requestUrl){
        this.requestUrl = requestUrl;
    }
    /**
    * 获取 操作内容，记录操作具体信息，如修改前修改或的数据
    * @return String
    */
    public String getContent(){
        return content;
    }
    /**
    * 设置 操作内容，记录操作具体信息，如修改前修改或的数据
    * @param content
    */
    public void setContent(String content){
        this.content = content;
    }
    /**
    * 获取 操作IP地址
    * @return String
    */
    public String getIp(){
        return ip;
    }
    /**
    * 设置 操作IP地址
    * @param ip
    */
    public void setIp(String ip){
        this.ip = ip;
    }
    /**
    * 获取 操作时间
    * @return Date
    */
    public Date getLogDate(){
        return logDate;
    }
    /**
    * 设置 操作时间
    * @param logDate
    */
    public void setLogDate(Date logDate){
        this.logDate = logDate;
    }
    /**
    * 获取 操作类型，0：新增，1：修改，2：删除
    * @return Integer
    */
    public Integer getOperType(){
        return operType;
    }
    /**
    * 设置 操作类型，0：新增，1：修改，2：删除
    * @param operType
    */
    public void setOperType(Integer operType){
        this.operType = operType;
    }




    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof OperateLogEntity) {
            OperateLogEntity tmp = (OperateLogEntity) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",platformMark:").append(getPlatformMark());
        sb.append(",userId:").append(getUserId());
        sb.append(",userName:").append(getUserName());
        sb.append(",loginName:").append(getLoginName());
        sb.append(",requestUrl:").append(getRequestUrl());
        sb.append(",content:").append(getContent());
        sb.append(",ip:").append(getIp());
        sb.append(",logDate:").append(getLogDate());
        sb.append(",operType:").append(getOperType());
        return sb.toString();
    }

    public void initAttrValue(){

            this.platformMark = "";

            this.userId = null;

            this.userName = "";

            this.loginName = "";

            this.requestUrl = "";

            this.content = "";

            this.ip = "";

            this.logDate = null;

            this.operType = null;
    }
}