From eeb249146bb793f0ff0d0fcc584c4f5e1b833028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=96=B9=E6=88=90?= Date: Mon, 27 Oct 2025 20:35:32 +0800 Subject: [PATCH] cc --- app/api/v1/app_valuations/app_valuations.py | 21 ++- app/utils/universal_api_manager.py | 4 +- 需求文档.md | 156 +++++++++++++++++--- 3 files changed, 147 insertions(+), 34 deletions(-) diff --git a/app/api/v1/app_valuations/app_valuations.py b/app/api/v1/app_valuations/app_valuations.py index 1f9f27d..5e920f9 100644 --- a/app/api/v1/app_valuations/app_valuations.py +++ b/app/api/v1/app_valuations/app_valuations.py @@ -283,7 +283,6 @@ async def calculate_valuation( try: # 添加后台任务 - esg_obj = await ESG.filter(name=data.industry).first() background_tasks.add_task(_perform_valuation_calculation, user_id, data) logger.info("valuation.task_queued user_id={} asset_name={} industry={}", @@ -476,14 +475,14 @@ async def _extract_calculation_params_c(data: UserValuationCreate) -> Dict[str, # transaction_data: 交易数据字典(API获取) # manual_bids: 手动收集的竞价列表(用户填写) # expert_valuations: 专家估值列表(系统配置) - transaction_data: Dict = None - manual_bids: List[float] = None + transaction_data: Dict = {} + manual_bids: List[float] = [] # 处理月交易额波动区间的三个关键数值:最高价、最低价、中位数 # 已实现:从data.price_fluctuation中提取并计算三个数值 - price_fluctuation_median = None # 中位数 - price_fluctuation_max = None # 最高价 - price_fluctuation_min = None # 最低价 + price_fluctuation_median = 0 # 中位数 + price_fluctuation_max = 0 # 最高价 + price_fluctuation_min = 0 # 最低价 if hasattr(data, 'price_fluctuation') and data.price_fluctuation: try: @@ -491,13 +490,17 @@ async def _extract_calculation_params_c(data: UserValuationCreate) -> Dict[str, price_values = [float(i) for i in data.price_fluctuation if i is not None] if price_values: price_fluctuation_max = max(price_values) + manual_bids.append(price_fluctuation_max) price_fluctuation_min = min(price_values) + manual_bids.append(price_fluctuation_min) price_fluctuation_median = statistics.median(price_values) + manual_bids.append(price_fluctuation_median) + except (ValueError, TypeError) as e: # 如果转换失败,记录日志但不中断程序 logger.warning(f"价格波动区间数据转换失败: {e}") - expert_valuations = None + expert_valuations = 0 # 浏览热度分 - 优化数据获取逻辑 daily_browse_volume = 0 # 默认值 @@ -554,10 +557,6 @@ async def _extract_calculation_params_c(data: UserValuationCreate) -> Dict[str, "weighted_average_price": transaction_data, "manual_bids": manual_bids, # 手动收集的竞价列表 (用户填写) "expert_valuations": expert_valuations, # 专家估值列表 (系统配置) - # 月交易额波动区间的三个关键数值 - "price_fluctuation_max": price_fluctuation_max, # 最高价 - "price_fluctuation_min": price_fluctuation_min, # 最低价 - "price_fluctuation_median": price_fluctuation_median, # 中位数 # 计算热度系数C2 "daily_browse_volume": daily_browse_volume, # 近7日日均浏览量 (API获取) "collection_count": collection_count, # 收藏数 diff --git a/app/utils/universal_api_manager.py b/app/utils/universal_api_manager.py index 9c086d3..38a19d6 100644 --- a/app/utils/universal_api_manager.py +++ b/app/utils/universal_api_manager.py @@ -402,7 +402,7 @@ class UniversalAPIManager: } return self.make_request('chinaz', 'copyright_software', params) - def query_patent_info(self, company_name: str, chinaz_ver: str = "1") -> Dict[str, Any]: + def query_patent_info(self, company_name: str, chinaz_ver: str = "2.0") -> Dict[str, Any]: """查询企业专利信息""" params = { 'searchKey': company_name, @@ -413,7 +413,7 @@ class UniversalAPIManager: } return self.make_request('chinaz', 'patent', params) - def query_judicial_data(self, company_name: str, chinaz_ver: str = "1") -> Dict[str, Any]: + def query_judicial_data(self, company_name: str, chinaz_ver: str = "1.0") -> Dict[str, Any]: """查询司法综合数据""" params = { 'q': company_name, diff --git a/需求文档.md b/需求文档.md index e48b27d..e8aef4a 100644 --- a/需求文档.md +++ b/需求文档.md @@ -1,14 +1,9 @@ -# 非物质文化遗产IP知识产权评估系统 - 需求文档 +# 需求文档 -### 1.1 项目目标 - -主要目标: -- 建立标准化的非遗IP价值评估体系 -- 提供准确、客观的非遗资产价值量化服务 - -### 1.3 项目范围 +### 1.1 项目范围 包含范围: + - 非遗IP价值评估计算引擎 - 用户管理和权限控制系统 - 评估申请和审核流程 @@ -17,15 +12,15 @@ - 第三方登录集成 - 第三方数据集成 - - ## 2. 用户角色定义 ### 2.1 管理端用户 #### 2.1.1 系统管理员 + 角色描述:负责系统整体管理和维护 主要职责: + - 用户账号管理和权限分配 - 系统配置和参数设置 - 基础数据维护(行业、ESG、政策等) @@ -33,14 +28,17 @@ - 第三方API配置管理 权限范围: + - 所有功能模块的完整访问权限 - 用户创建、编辑、删除权限 - 系统配置修改权限 - 数据导入导出权限 #### 2.1.2 业务审核员 + 角色描述:负责评估申请的审核和质量控制 主要职责: + - 评估申请的初步审核 - 数据完整性和合理性检查 - 计算结果的人工复核 @@ -48,6 +46,7 @@ - 异常情况的处理 权限范围: + - 评估申请查看和审核权限 - 审核状态修改权限 - 审核备注添加权限 @@ -56,8 +55,10 @@ ### 2.2 应用端用户 #### 2.2.1 个人用户 + 角色描述:非遗传承人、文化工作者等个人申请者 主要需求: + - 提交个人非遗资产评估申请 - 查看评估进度和结果 - 下载评估报告 @@ -74,16 +75,16 @@ 详细需求: FR-001 手机号注册 + - 用户可使用手机号进行注册 - 支持短信验证码验证 - 注册时需填写基本信息(姓名、机构等) - 系统自动分配默认权限 FR-002 手机号登录 + - 支持手机号+密码登录 - 支持手机号+验证码登录 -- 登录失败5次后账号临时锁定30分钟 -- 登录成功后生成JWT token #### 3.1.2 权限管理 @@ -92,15 +93,11 @@ FR-002 手机号登录 详细需求: FR-004 角色管理 + - 支持创建、编辑、删除角色 - 角色可分配菜单权限和API权限 - 预设系统管理员、审核员、普通用户角色 -FR-005 菜单权限 -- 动态菜单权限控制 -- 根据用户角色显示对应菜单 - - ### 3.2 估值评估系统 #### 3.2.1 评估申请提交 @@ -114,22 +111,24 @@ FR-005 菜单权限 详细需求: FR-015 结果存储 + - 完整计算过程和中间结果保存 - 输入参数和输出结果关联存储 - 计算时间和版本信息记录 FR-016 结果展示 + - 估值结果可视化展示 - 计算过程分步骤展示 - 各维度得分雷达图展示 - 风险评估结果展示 FR-017 报告生成 + - 自动生成详细评估报告 - 支持PDF格式导出 - 报告包含计算过程和结论 - ### 3.3 审核管理系统 ### 3.4 数据管理系统 @@ -141,17 +140,132 @@ FR-017 报告生成 详细需求: FR-024 行业数据管理 + - 行业分类标准维护 - 行业ROE系数管理 FR-025 ESG数据管理 + - ESG评级标准维护 - 行业ESG基准分管理 FR-026 政策数据管理 + - 政策匹配规则维护 - 资助政策数据库管理 + +## 4. 移动端开发 -验收标准: -- 基础数据准确完整 -- 数据更新及时有效 +### 4.1 微信小程序开发 + +#### 4.1.1 功能范围 + +功能描述:基于微信小程序平台的移动端应用开发 + +详细需求: + +FR-027 用户认证 + +- 支持微信授权登录 +- 支持手机号快速登录 +- 与PC端用户体系统一 +- 自动获取微信用户基本信息 + +FR-028 评估申请 + +- 移动端评估表单提交 +- 支持拍照上传证书材料 +- 表单数据与PC端保持一致 +- 支持草稿保存和续填 + +FR-029 进度查询 + +- 实时查看评估申请状态 +- 接收微信消息推送通知 +- 查看评估结果和报告 +- 支持报告分享功能 + +#### 4.1.2 技术要求 + +TR-001 开发框架 + +- 使用微信小程序原生开发或uni-app框架 +- 兼容微信小程序最新版本 +- 支持分包加载优化性能 + +TR-002 数据同步 + +- 与后端API保持一致的数据接口 +- 支持离线数据缓存 +- 实现数据实时同步 + +TR-003 用户体验 + +- 响应式设计适配不同屏幕尺寸 +- 流畅的页面切换动画 +- 友好的错误提示和加载状态 + +#### 4.1.3 页面结构 + +PS-001 主要页面 + +- 首页:功能导航和快速入口 +- 登录页:微信授权和手机号登录 +- 评估申请页:分步骤表单填写 +- 我的评估:申请列表和状态查看 +- 评估详情:结果展示和报告下载 +- 个人中心:用户信息和设置 + +PS-002 辅助页面 + +- 帮助中心:使用指南和常见问题 +- 关于我们:产品介绍和联系方式 +- 隐私政策:数据使用说明 + +### 4.2 H5移动端开发(可选) + +#### 4.2.1 功能范围 + +功能描述:基于H5技术的移动端网页应用 + +详细需求: + +FR-030 跨平台兼容 + +- 支持微信内置浏览器 +- 支持主流移动浏览器 +- 响应式布局适配 + +FR-031 功能对等 + +- 与小程序功能基本一致 +- 支持文件上传和预览 +- 支持微信分享功能 + +### 4.3 移动端特有功能 + +#### 4.3.1 消息推送 + +功能描述:基于微信模板消息的状态通知 + +详细需求: + +FR-032 推送场景 + +- 评估申请提交成功通知 +- 审核状态变更通知 +- 评估完成结果通知 +- 系统重要公告推送 + +#### 4.3.2 便民功能 + +功能描述:针对移动端用户习惯的便民功能 + +详细需求: + +FR-033 快捷操作 + +- 一键拨打客服电话 +- 快速分享评估结果 +- 扫码快速登录PC端 +- 语音输入辅助填写