package com.ruoyi.system.domain; import java.util.Date; import java.util.List; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.fasterxml.jackson.annotation.JsonIgnore; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; /** * 学生花名册对象 cj_student * * 说明:学号仅班级内唯一(全校可重复),学生唯一性 = 所属班级 + 学号; * Excel 导入/导出通过 “学院名称→专业名称→班级名称” 引用班级,不再使用数字班级ID。 * * @author ruoyi * @date 2026-09-03 */ public class CjStudent extends BaseEntity { private static final long serialVersionUID = 1L; /** 所属学院名称(非表字段:导入模板/导出列,解析出 classId) */ @Excel(name = "所属学院") private String collegeName; /** 所属专业名称(非表字段) */ @Excel(name = "所属专业") private String majorName; /** 班级名称(非表字段) */ @Excel(name = "班级名称") private String className; /** 学生ID */ private Long studentId; /** 所属班级ID */ private Long classId; /** 学号(班级内唯一,全校可重复;库内唯一键=class_id+student_no) */ @Excel(name = "学号") private String studentNo; /** 姓名 */ @Excel(name = "姓名") private String name; /** 性别(0男 1女 2未知,存码值) */ private String gender; /** 性别中文(非表字段:导入接收“男/女/未知”,导出展示文本) */ @Excel(name = "性别") private String genderText; /** 联系电话(花名册登记,列表展示时脱敏) */ @Excel(name = "联系电话") private String phone; /** 状态(0正常 1停用) */ private String status; /** 删除标志(0存在 2删除) */ private String delFlag; /** 数据权限:班级ID集合(非表字段,用于教师仅见本班) */ private List classIds; /** 查询过滤:所属学院ID(非表字段,配合 cj_class->cj_major 级联) */ private Long collegeId; /** 查询过滤:所属专业ID(非表字段) */ private Long majorId; /** 登录密码(BCrypt)。JsonIgnore:既不随 JSON 返回,也不接受外部直接写入(改密只走专用 SQL) */ @JsonIgnore private String password; /** 需强制改密(1是 0否) */ private String pwdResetFlag; /** 账号激活时间 */ private Date registerTime; /** 最近登录时间 */ private Date loginDate; /** 账号是否已激活(非表字段:list 查询由 password 是否为空派生,1已激活 0未激活) */ private String activated; /** 查询过滤:学号模糊匹配(非表字段,支持输局部;判重等精确匹配仍走 studentNo) */ private String studentNoLike; /** 查询过滤:账号状态(非表字段,0未激活 1正常 2待改密) */ private String accountState; public void setStudentId(Long studentId) { this.studentId = studentId; } public Long getStudentId() { return studentId; } public void setClassId(Long classId) { this.classId = classId; } public Long getClassId() { return classId; } public void setStudentNo(String studentNo) { this.studentNo = studentNo; } public String getStudentNo() { return studentNo; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setGender(String gender) { this.gender = gender; } public String getGender() { return gender; } public void setGenderText(String genderText) { this.genderText = genderText; } public String getGenderText() { return genderText; } public void setPhone(String phone) { this.phone = phone; } public String getPhone() { return phone; } public void setStatus(String status) { this.status = status; } public String getStatus() { return status; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getDelFlag() { return delFlag; } public void setClassIds(List classIds) { this.classIds = classIds; } public List getClassIds() { return classIds; } public void setCollegeId(Long collegeId) { this.collegeId = collegeId; } public Long getCollegeId() { return collegeId; } public void setMajorId(Long majorId) { this.majorId = majorId; } public Long getMajorId() { return majorId; } public void setCollegeName(String collegeName) { this.collegeName = collegeName; } public String getCollegeName() { return collegeName; } public void setMajorName(String majorName) { this.majorName = majorName; } public String getMajorName() { return majorName; } public void setClassName(String className) { this.className = className; } public String getClassName() { return className; } public void setPassword(String password) { this.password = password; } public String getPassword() { return password; } public void setPwdResetFlag(String pwdResetFlag) { this.pwdResetFlag = pwdResetFlag; } public String getPwdResetFlag() { return pwdResetFlag; } public void setRegisterTime(Date registerTime) { this.registerTime = registerTime; } public Date getRegisterTime() { return registerTime; } public void setLoginDate(Date loginDate) { this.loginDate = loginDate; } public Date getLoginDate() { return loginDate; } public void setActivated(String activated) { this.activated = activated; } public String getActivated() { return activated; } public void setStudentNoLike(String studentNoLike) { this.studentNoLike = studentNoLike; } public String getStudentNoLike() { return studentNoLike; } public void setAccountState(String accountState) { this.accountState = accountState; } public String getAccountState() { return accountState; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("studentId", getStudentId()) .append("classId", getClassId()) .append("studentNo", getStudentNo()) .append("name", getName()) .append("gender", getGender()) .append("phone", getPhone()) .append("status", getStatus()) .append("delFlag", getDelFlag()) .append("collegeName", getCollegeName()) .append("majorName", getMajorName()) .append("className", getClassName()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .toString(); } }