feat: 更新CC码监管方案业务版文档,新增摘要、UGC专项、直播专项、存量处置、误判申诉、水印嵌入、CC码生命周期、组织保障等章节;同步macode到cccode重命名及其他代码变更

This commit is contained in:
freedakgmail
2026-07-20 22:25:40 +08:00
parent 9f1e2d0a21
commit eb4a82a877
76 changed files with 2600 additions and 2122 deletions
+8 -8
View File
@@ -16,7 +16,7 @@ import (
)
// Catalog 目录库查询服务。
// 提供四种维度的标识信息查询:MA码、Hash、省级编码、片库文件ID。
// 提供四种维度的标识信息查询:CC码、Hash、省级编码、片库文件ID。
type Catalog struct {
client chain.Client
store CatalogStore // 可选独立存储(为 nil 时委托 chain.Client
@@ -39,14 +39,14 @@ func NewWithStore(c chain.Client, s CatalogStore) *Catalog {
return &Catalog{client: c, store: s}
}
// QueryByMA 根据MA码查询标识信息及映射关系。
func (cat *Catalog) QueryByMA(maCode string) (model.ContentQueryResult, error) {
c, err := cat.client.QueryContent(maCode)
// QueryByMA 根据CC码查询标识信息及映射关系。
func (cat *Catalog) QueryByMA(ccCode string) (model.ContentQueryResult, error) {
c, err := cat.client.QueryContent(ccCode)
if err != nil {
return model.ContentQueryResult{Found: false}, err
}
mr, _ := cat.client.QueryMappings(maCode)
eps, _ := cat.client.ListEpisodes(maCode)
mr, _ := cat.client.QueryMappings(ccCode)
eps, _ := cat.client.ListEpisodes(ccCode)
bindings := eps
return model.ContentQueryResult{
Found: true,
@@ -81,6 +81,6 @@ func (cat *Catalog) QueryByLibraryFileID(libraryID string) (model.ContentQueryRe
}
// QueryAll 批量查询:按 MA 码返回全部关联信息(含绑定、映射、集级哈希)。
func (cat *Catalog) QueryAll(maCode string) (model.ContentQueryResult, error) {
return cat.QueryByMA(maCode)
func (cat *Catalog) QueryAll(ccCode string) (model.ContentQueryResult, error) {
return cat.QueryByMA(ccCode)
}
+7 -7
View File
@@ -15,7 +15,7 @@ func TestCatalog_QueryByMA(t *testing.T) {
// 发码
_, err := c.IssueMA(chain.RoleRegulator, chain.IssueRequest{
MACode: "MA.156.8531.6101/WD/20260000001", ContentTwinID: "ctid-cat-001",
CCCode: "MA.156.8531.6101/WD/20260000001", ContentTwinID: "ctid-cat-001",
FileHash: "fh-cat-001", MerkleRoot: "mr-cat-001",
Content: model.Content{Title: "目录库测试剧", EpisodeCount: 2, MAType: "WD", Issuer: "测试局"},
})
@@ -33,7 +33,7 @@ func TestCatalog_QueryByHash(t *testing.T) {
cat := New(c)
_, err := c.IssueMA(chain.RoleRegulator, chain.IssueRequest{
MACode: "MA.156.8531.6101/WD/20260000002", ContentTwinID: "ctid-cat-002",
CCCode: "MA.156.8531.6101/WD/20260000002", ContentTwinID: "ctid-cat-002",
FileHash: "fh-cat-002", MerkleRoot: "mr-cat-002",
Content: model.Content{Title: "Hash查询测试", MAType: "WD", Issuer: "测试局"},
})
@@ -43,7 +43,7 @@ func TestCatalog_QueryByHash(t *testing.T) {
res, err := cat.QueryByHash("fh-cat-002")
require.NoError(t, err)
assert.True(t, res.Found)
assert.Equal(t, "MA.156.8531.6101/WD/20260000002", res.Content.MACode)
assert.Equal(t, "MA.156.8531.6101/WD/20260000002", res.Content.CCCode)
// 不存在的 Hash
_, err = cat.QueryByHash("nonexistent")
@@ -55,7 +55,7 @@ func TestCatalog_QueryByProvincialCode(t *testing.T) {
cat := New(c)
_, err := c.IssueMA(chain.RoleRegulator, chain.IssueRequest{
MACode: "MA.156.8531.6101/WD/20260000003", ContentTwinID: "ctid-cat-003",
CCCode: "MA.156.8531.6101/WD/20260000003", ContentTwinID: "ctid-cat-003",
FileHash: "fh-cat-003", MerkleRoot: "mr-cat-003",
Content: model.Content{Title: "省级编码查询测试", MAType: "WD", Issuer: "测试局"},
})
@@ -71,7 +71,7 @@ func TestCatalog_QueryByProvincialCode(t *testing.T) {
res, err := cat.QueryByProvincialCode("PROV-CAT-001")
require.NoError(t, err)
assert.True(t, res.Found)
assert.Equal(t, "MA.156.8531.6101/WD/20260000003", res.Content.MACode)
assert.Equal(t, "MA.156.8531.6101/WD/20260000003", res.Content.CCCode)
}
func TestCatalog_QueryByLibraryFileID(t *testing.T) {
@@ -79,7 +79,7 @@ func TestCatalog_QueryByLibraryFileID(t *testing.T) {
cat := New(c)
_, err := c.IssueMA(chain.RoleRegulator, chain.IssueRequest{
MACode: "MA.156.8531.6101/WD/20260000004", ContentTwinID: "ctid-cat-004",
CCCode: "MA.156.8531.6101/WD/20260000004", ContentTwinID: "ctid-cat-004",
FileHash: "fh-cat-004", MerkleRoot: "mr-cat-004",
Content: model.Content{Title: "片库ID查询测试", MAType: "WD", Issuer: "测试局"},
})
@@ -95,5 +95,5 @@ func TestCatalog_QueryByLibraryFileID(t *testing.T) {
res, err := cat.QueryByLibraryFileID("LIB-CAT-001")
require.NoError(t, err)
assert.True(t, res.Found)
assert.Equal(t, "MA.156.8531.6101/WD/20260000004", res.Content.MACode)
assert.Equal(t, "MA.156.8531.6101/WD/20260000004", res.Content.CCCode)
}