package com.ruoyi.system.domain; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.common.core.xss.Xss; /** * 协议版本表 sys_agreement * * 追加式表:一行 = 一个已发布的版本,发布新版本是插入新行,旧版本永不被修改, * 故实体里没有 status/del_flag,也没有任何 update 语义。 * * @author ruoyi */ public class SysAgreement extends BaseEntity { private static final long serialVersionUID = 1L; /** 协议编号 */ private Long agreementId; /** 协议类型(1用户协议 2隐私权限 3供货协议 4购买协议) */ private String agreementType; /** 版本号(原样存文本,如 1.1.01,不做格式校验) */ private String version; /** 协议内容(富文本 HTML) */ private String content; /** * 是否当前版本(1是 0否)。 * * 不是表里的列:由 mapper 按「同类型中编号最大」实时算出。 * 因此它既是列表的返回字段,也是列表的查询条件(筛「当前版本/历史版本」)。 */ private String latestFlag; public Long getAgreementId() { return agreementId; } public void setAgreementId(Long agreementId) { this.agreementId = agreementId; } public void setAgreementType(String agreementType) { this.agreementType = agreementType; } @NotBlank(message = "协议类型不能为空") @Size(min = 0, max = 1, message = "协议类型长度不能超过1个字符") public String getAgreementType() { return agreementType; } public void setVersion(String version) { this.version = version; } @Xss(message = "版本号不能包含脚本字符") @NotBlank(message = "版本号不能为空") @Size(min = 0, max = 32, message = "版本号长度不能超过32个字符") public String getVersion() { return version; } public void setContent(String content) { this.content = content; } /** * 内容刻意不加 @Xss:它承载的就是富文本 HTML,转了义编辑器插进来的图片/样式就没了。 * 展示侧由前端富文本组件渲染,不走 v-html 直出。 */ public String getContent() { return content; } public void setLatestFlag(String latestFlag) { this.latestFlag = latestFlag; } public String getLatestFlag() { return latestFlag; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("agreementId", getAgreementId()) .append("agreementType", getAgreementType()) .append("version", getVersion()) .append("content", getContent()) .append("latestFlag", getLatestFlag()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("remark", getRemark()) .toString(); } }