Skip to content

feat: Phase 4c/4d — Campaign 运营活动 + Ecosystem 生态洞察模块#61

Merged
ZhengZhenyu merged 4 commits intoopensourceways:mainfrom
ZhengZhenyu:main
Feb 22, 2026
Merged

feat: Phase 4c/4d — Campaign 运营活动 + Ecosystem 生态洞察模块#61
ZhengZhenyu merged 4 commits intoopensourceways:mainfrom
ZhengZhenyu:main

Conversation

@ZhengZhenyu
Copy link
Collaborator

  • Phase 4c: Campaign 运营活动模块(联系人管理、活动导入、状态跟踪)
  • Phase 4d: Ecosystem 生态洞察模块(GitHub 项目监控、贡献者排行、一键导入人脉)
  • fix: Ecosystem 模块补充 community_id 多租户隔离(迁移 009)
  • fix: campaigns.py N+1 查询优化、Event/Person 存在性校验、字段白名单
  • fix: event.py Enum 名称冲突修复
  • fix: LIKE 通配符注入转义
  • fix: EcosystemDetail.vue 定时器内存泄漏
  • fix: 无社区时各页面报错和双重 toast 问题

变更说明

关联 Issue:#

Checklist

  • 功能实现正确,无明显 Bug
  • 测试通过(新增/修改功能已补充测试,覆盖率 ≥ 80%)
  • 无敏感信息硬编码(密钥、密码、Token)
  • 数据库有变更时迁移文件已生成并测试
  • 必要的文档已同步更新

- Phase 4c: Campaign 运营活动模块(联系人管理、活动导入、状态跟踪)
- Phase 4d: Ecosystem 生态洞察模块(GitHub 项目监控、贡献者排行、一键导入人脉)
- fix: Ecosystem 模块补充 community_id 多租户隔离(迁移 009)
- fix: campaigns.py N+1 查询优化、Event/Person 存在性校验、字段白名单
- fix: event.py Enum 名称冲突修复
- fix: LIKE 通配符注入转义
- fix: EcosystemDetail.vue 定时器内存泄漏
- fix: 无社区时各页面报错和双重 toast 问题
@opensourceways-bot
Copy link
Contributor

Linking Issue Notice

@ZhengZhenyu , the pull request must be linked to at least one issue.
If an issue has already been linked, but the needs-issue label remains, you can remove the label by commenting /check-issue .

@opensourceways-bot
Copy link
Contributor

CLA Signature Guide

@ZhengZhenyu , thanks for your pull request.

The following commit(s) are not associated with a signed Contributor License Agreement (CLA).

Commit Reason
1587432f feat: Phase 4c/4d — Campaign �... the email used in the commit is not linked to a signed CLA!
please verify that it matches the email you used when signing the CLA.

To sign CLA, click here.

To check if your email is configured correctly, refer to the FAQs.

Once you've signed the CLA or updating your email, please comment /check-cla to revalidate CLA status.

- 后端:修复 ruff lint 错误(I001/F401/C416)
  - campaign.py/ecosystem.py/campaign schema: 修复 import 排序,移除未使用导入
  - models/__init__.py: 修复 import 排序
  - api/campaigns.py: dict comprehension 改写为 dict()
- 前端:修复 TypeScript 编译错误
  - ecosystem.ts: './client' 改为 './index'(修复 7 个隐式 any 错误)
  - EcosystemList.vue: payload 类型改为 ProjectCreateData
  - EcosystemDetail.vue: 修复 project.value 可能为 null 的访问
@opensourceways-bot
Copy link
Contributor

CLA Signature Guide

@ZhengZhenyu , thanks for your pull request.

The following commit(s) are not associated with a signed Contributor License Agreement (CLA).

Commit Reason
1587432f feat: Phase 4c/4d — Campaign �... the email used in the commit is not linked to a signed CLA!
please verify that it matches the email you used when signing the CLA.

To sign CLA, click here.

To check if your email is configured correctly, refer to the FAQs.

Once you've signed the CLA or updating your email, please comment /check-cla to revalidate CLA status.

- 009迁移:移除行内匿名 ForeignKey,改为命名 create_foreign_key,修复 batch alter 报错
- github_crawler.py: Optional[str] 改为 str | None (UP007),移除未使用的 typing 导入
- schemas/ecosystem.py: 移除未使用的 Optional 导入,修复 import 排序 (I001)
@opensourceways-bot
Copy link
Contributor

CLA Signature Guide

@ZhengZhenyu , thanks for your pull request.

The following commit(s) are not associated with a signed Contributor License Agreement (CLA).

Commit Reason
1587432f feat: Phase 4c/4d — Campaign �... the email used in the commit is not linked to a signed CLA!
please verify that it matches the email you used when signing the CLA.

To sign CLA, click here.

To check if your email is configured correctly, refer to the FAQs.

Once you've signed the CLA or updating your email, please comment /check-cla to revalidate CLA status.

- 新增 test_campaigns_api.py(35 个测试):覆盖 Campaign CRUD、漏斗统计、联系人管理、批量导入、活动记录
- 新增 test_ecosystem_api.py(22 个测试):覆盖项目 CRUD、sync(mock)、贡献者搜索过滤、一键导入人脉
- test_services.py 追加 TestGithubCrawlerService(8 个测试):覆盖 sync_project 创建/更新/跳过/异常、sync_all_projects 聚合
- 总覆盖率:77.20% → 81.91%(超过 80% CI 要求)
@opensourceways-bot
Copy link
Contributor

CLA Signature Guide

@ZhengZhenyu , thanks for your pull request.

The following commit(s) are not associated with a signed Contributor License Agreement (CLA).

Commit Reason
1587432f feat: Phase 4c/4d — Campaign �... the email used in the commit is not linked to a signed CLA!
please verify that it matches the email you used when signing the CLA.

To sign CLA, click here.

To check if your email is configured correctly, refer to the FAQs.

Once you've signed the CLA or updating your email, please comment /check-cla to revalidate CLA status.

@ZhengZhenyu ZhengZhenyu merged commit b61f348 into opensourceways:main Feb 22, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants