1.6 KiB
1.6 KiB
Projects 模块业务逻辑
模块职责
Projects 模块负责首页项目相关入口:
pm、project_edit:摄影师项目管理。pm_manager:店铺项目管理。
模块只保存项目列表、详情、编辑表单和上传中的临时状态,不写入 AppSession、AccountContext、TabBar 或首页全局状态。
摄影师项目
ProjectManagementViewModel 管理摄影师项目列表、搜索、分页、详情入口和删除动作。列表请求依赖当前景区 ID,缺少景区时清空本模块列表并停止请求。
ProjectEditorViewModel 管理新建和编辑表单。项目封面、轮播图先通过 OSSUploadService.uploadProjectImage 上传到 project/yyyyMMdd/scenicId/... 路径,再把最终 URL 提交给项目创建或编辑接口。
店铺项目
StoreProjectManagementViewModel 管理店铺项目列表和可管理景区。店铺项目按业务账号 ID 查询,缺少用户 ID 时不请求。
StoreProjectEditorViewModel 支持多点位项目和押金项目两种提交路径。多点位项目提交景区、点位、展示图和项目套餐;押金项目提交门店、押金金额、底片数量等字段。
接口边界
ProjectAPI 只封装项目模块需要的接口,包括摄影师项目列表/详情/创建/编辑/删除,以及店铺项目列表/详情/创建/更新/删除和可管理景区列表。
样片上传需要的轻量项目选择复用共享 PhotographerProjectItem,但不反向依赖 Projects 页面状态。
缓存边界
项目图片临时数据、OSS STS、编辑表单和分页状态都不落盘。网络图片展示继续交给 RemoteImage / Kingfisher。