fix: return default moderation policy when unpublished

This commit is contained in:
richjohnrambo
2026-09-16 23:30:10 +08:00
parent fec2a43b9c
commit 5173bc0aad
@@ -162,12 +162,19 @@ func (c *cConfig) ModerationPolicy(ctx context.Context, req *api.ModerationPolic
PolicyVersion uint `json:"policy_version"`
SensitiveWordPolicy string `json:"sensitive_word_policy"`
}
if err = imtenant.RegistryDB().Model(dao.ImSecurityPolicy.Table()).Safe().Ctx(ctx).
record, err := imtenant.RegistryDB().Model(dao.ImSecurityPolicy.Table()).Safe().Ctx(ctx).
Fields(columns.PolicyVersion, "CAST("+columns.SensitiveWordPolicy+" AS CHAR) sensitive_word_policy").
Where(columns.TenantId, tenant.Id).Where(columns.PublishStatus, consts.ImSecurityPublishPublished).
WhereNull(columns.DeletedAt).OrderDesc(columns.PolicyVersion).Limit(1).Scan(&row); err != nil {
WhereNull(columns.DeletedAt).OrderDesc(columns.PolicyVersion).One()
if err != nil {
return nil, gerror.Wrap(err, "获取商户内容审核策略失败")
}
if record.IsEmpty() {
return res, nil
}
if err = record.Struct(&row); err != nil {
return nil, gerror.Wrap(err, "解析商户内容审核策略失败")
}
if row.PolicyVersion == 0 || strings.TrimSpace(row.SensitiveWordPolicy) == "" {
return res, nil
}