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
+11 -11
View File
@@ -32,25 +32,25 @@ func (m *memorySink) UpsertContent(c model.Content) error {
m.mu.Lock()
defer m.mu.Unlock()
if m.conflict {
if _, exists := m.contents[c.MACode]; exists {
if _, exists := m.contents[c.CCCode]; exists {
return ErrConflict
}
}
m.contents[c.MACode] = c
m.contents[c.CCCode] = c
return nil
}
func (m *memorySink) UpsertBinding(maCode string, b model.HashBinding) error {
func (m *memorySink) UpsertBinding(ccCode string, b model.HashBinding) error {
m.mu.Lock()
defer m.mu.Unlock()
m.bindings[maCode] = append(m.bindings[maCode], b)
m.bindings[ccCode] = append(m.bindings[ccCode], b)
return nil
}
func (m *memorySink) UpsertMapping(maCode string, mp model.Mapping) error {
func (m *memorySink) UpsertMapping(ccCode string, mp model.Mapping) error {
m.mu.Lock()
defer m.mu.Unlock()
m.mappings[maCode] = append(m.mappings[maCode], mp)
m.mappings[ccCode] = append(m.mappings[ccCode], mp)
return nil
}
@@ -60,7 +60,7 @@ func TestSyncService_FullSync(t *testing.T) {
// 在源端发码
_, err := src.Client.IssueMA(chain.RoleRegulator, chain.IssueRequest{
MACode: "MA.156.8531.6101/WD/20260000001", ContentTwinID: "ctid-sync-001",
CCCode: "MA.156.8531.6101/WD/20260000001", ContentTwinID: "ctid-sync-001",
FileHash: "fh-sync-001", MerkleRoot: "mr-sync-001",
Episodes: []model.EpisodeHash{
{Episode: 1, FileSHA256: "fh-sync-001-E1"},
@@ -97,7 +97,7 @@ func TestSyncService_ConflictSkip(t *testing.T) {
// 源端发码
_, err := src.Client.IssueMA(chain.RoleRegulator, chain.IssueRequest{
MACode: "MA.156.8531.6101/WD/20260000002", ContentTwinID: "ctid-sync-002",
CCCode: "MA.156.8531.6101/WD/20260000002", ContentTwinID: "ctid-sync-002",
FileHash: "fh-sync-002", MerkleRoot: "mr-sync-002",
Content: model.Content{Title: "冲突测试剧", MAType: "WD", Issuer: "测试局"},
})
@@ -105,7 +105,7 @@ func TestSyncService_ConflictSkip(t *testing.T) {
// 远端预先存在同 MA 码
sink.contents["MA.156.8531.6101/WD/20260000002"] = model.Content{
MACode: "MA.156.8531.6101/WD/20260000002", Title: "远端已有",
CCCode: "MA.156.8531.6101/WD/20260000002", Title: "远端已有",
}
// 冲突跳过策略
@@ -122,14 +122,14 @@ func TestSyncService_ConflictFail(t *testing.T) {
sink.conflict = true
_, err := src.Client.IssueMA(chain.RoleRegulator, chain.IssueRequest{
MACode: "MA.156.8531.6101/WD/20260000003", ContentTwinID: "ctid-sync-003",
CCCode: "MA.156.8531.6101/WD/20260000003", ContentTwinID: "ctid-sync-003",
FileHash: "fh-sync-003", MerkleRoot: "mr-sync-003",
Content: model.Content{Title: "冲突Fail测试", MAType: "WD", Issuer: "测试局"},
})
require.NoError(t, err)
sink.contents["MA.156.8531.6101/WD/20260000003"] = model.Content{
MACode: "MA.156.8531.6101/WD/20260000003", Title: "远端已有",
CCCode: "MA.156.8531.6101/WD/20260000003", Title: "远端已有",
}
svc := New(src, sink)