xiaohuqwq
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 需求规格说明书 **<font size = 5>文档作者</font>** 主要编写者:李孟宇、汪楷涵、劳厚新、史珈豪 其他编写者:无 **<font size = 5>文档修改历史</font>** | 修改人员 | 日期 | 修改原因 | 版本号 | |:--------:| ------------- | --------------------------------------------------- | ------ | | 李孟宇 | 2024年3月20日 | 创建了需求规格说明书 | V1.0.0 | | 李孟宇 | 2024年4月1日 | 增加了总体描述、对外接口需求、非功能需求和其他功能 | V1.0.1 | | 劳厚新 | 2024年4月2日 | 补充了范围、用户特征 | V1.0.2 | | 汪楷涵 | 2024年4月2日 | 增加了功能需求3.2.1~3.2.3,增加了用户界面文字描述 | v1.0.3 | | 史珈豪 | 2024年4月2日 | 增加了功能需求3.2.4~3.2.6,增加了3.4数据需求部分 | v1.0.4 | | 劳厚新 | 2024年4月3日 | 增加了功能需求3.2.7~3.2.9,为用户界面描述添加了图片 | V1.0.5 | |汪楷涵|2024年6月3日|补充了用户界面文字描述|V1.1.0| |李孟宇|2024年6月5日|补充了总体描述和详细需求描述中的内容|V1.1.1| |汪楷涵|2024年6月5日|补充了功能需求3.2.10~3.2.13|V1.1.2| |史珈豪|2024年6月5日|补充了功能需求3.2.14~3.2.16并完善了数据需求部分|V1.1.3| |劳厚新|2024年6月6日|补充了功能需求3.2.17~3.2.19|V1.1.4| |劳厚新|2024年6月9日|补充了用户界面描述的图片|V1.1.5| [toc] ## 1. 引言 ### 1.1 目的 本文档描述了 **南鲸网购平台管理系统** 的功能需求和非功能需求。开发小组的软件系统实现与验证工作都以此文档为依据。 除特殊说明之外,本文档所包含的需求都是高优先级需求。 ### 1.2 范围 - 本商场管理系统是为南京某商场开发的网购平台管理系统,开发的目的是帮助该商场处理日常的重点服务,包括商店商品信息查看及管理、订单处理、报表查询,方便顾客购买、方便商家经营。 - 通过商场管理系统的应用,期望为这家商场提高管理商店效率、降低管理运营成本,为其提高曝光率、吸引回头客并提高满意度、提高销售额和利润,并帮助其打造具有中国特色的网购平台。 ### 1.3 参考文献 - 《软件开发的技术基础》丁二玉、刘钦编著 - IEEE标准 - 南鲸网购平台管理系统用例文档 ## 2. 总体描述 ### 2.1 项目前景 #### 2.1.1 背景与机遇 - 在当前经济低迷和新冠疫情对传统零售业的冲击下,国产品牌面临着前所未有的挑战和压力。同时,国产品牌的无私奉献使得国人对国产品牌的热情空前高涨。 - 为了弘扬国产品牌、顺应国货热潮,商场决定打造一个专注于销售国货、具有中国特色的网购平台,通过与线下购物方式结合,满足用户的各种需求,促进对国货的消费,助力国货再创辉煌。 #### 2.1.2 业务需求 - BR1:在系统使用3个月后,门店工作人员、商场管理人员、经理的工作效率提高30% - BR2:在系统使用1周后,用户可以熟练地使用包括优惠券在内的平台各种功能 - BR3:在系统使用6个月后,商场商品的总销售量增加20% - BR4:在系统使用6个月后,运营成本要降低15% - 范围:人力成本和时间成本。 - 度量:检查平均工作人员数量和商品购买需要的时间 - BR5:在系统使用6个月后,商场的总收入额提高20% - 最好情况:提高40% - 最可能情况:提高20% - 最坏情况:提高10% ### 2.2 项目功能 - SF1:帮助用户(含顾客、门店工作人员、商场管理人员、经理)维护个人信息 - SF2:帮助商场管理人员管理商店 - SF3:帮助用户(含顾客、门店工作人员、经理)处理订单 - SF4:帮助工作人员(含门店工作人员、经理)查看对应商店经营情况 - SF5:帮助工作人员(含门店工作人员、经理)制定对应优惠券策略 - SF6:帮助工作人员(含门店工作人员、经理)查看对应报表信息 - SF7:帮助顾客浏览商店的详细信息(包括商店的商品列表) - SF8:帮助顾客搜索并浏览商品的详细信息 - SF9:帮助顾客购买商品 - SF10:帮助顾客评价商品和查看商品评论区 - SF11:帮助门店工作人员维护商店基本信息 - SF12:帮助门店工作人员更新商品及其基本信息(创建商品、增加商品库存) - SF13:帮助顾客领取、查看和使用优惠券 ### 2.3 用户特征 | 用户角色 | 用户特征 | | ------------ | ------------------------------------------------------------ | | 顾客 | 整个系统有若干顾客,他们是系统的重要使用者。在进行注册和登录操作后,顾客可以进行商店搜索、查看,个人信息修改,订单创建、更改、评价等操作。客户包含各种技术层次的人,不需要很好的计算机方面的技能。对于不太熟悉的顾客,这些人也可以快速上手。 | | 门店工作人员 | 整个系统有若干门店工作人员,也是系统的重要使用者。在进行注册认证和登录操作后,门店工作人员可以进行本店内的商品管理、库存管理、订单处理。门店工作人员同样不需要很好的计算机技能,对于系统同样能快速上手。同一家商店可以拥有若干员工账号,员工账号除了可以管理商店,还拥有顾客的一切权利。 | | 商场管理人员 | 整个系统有1~2名商场管理人员。他们需要管理门店工作人员和顾客,及时处理来自外部的商店加盟申请,管理商店、顾客信息,定期对商场数据库进行检查、更新。商场管理人员是计算机专业维护人员,计算机技能很好。 | | 经理 | 整个系统有1名经理。他需要定期查看并分析网站经营情况,每季度制定、修改网站促销策略,每年有几次需要根据网站业务推广和城市环境变更而制定商圈。经理可以按照日、周、月、季、年等时间单位查看系统生成的报表。经理不需要很高的计算机水平,在经过简单的培训后即可上手该系统。 | ### 2.4 约束 - CON1:客户端系统运行在使用ES6的浏览器上 - CON2:开发者需要在3个月内完成开发任务和测试。 - CON3:开发过程中,开发者要提交用例文档、软件需求规格说明文档、体系结构文档、详细设计说明文档和测试报告。 - CON4:项目前端使用Vue框架。 - CON5:项目后端使用Springboot + JPA + MySQL框架。 ### 2.5 假设与依赖 - AE1:网络畅通,不会发生故障 - AE2:所有操作任务的完成时间不会超过1个小时,即使用暂停与中断不会超过1个小时 - AE3:每天平台登录用户数不会有太大的波动,系统被访问次数稳定。 - AE4:用户的异常订单申诉不需要系统处理,完全线下进行 - AE5:商场不能存在相同名字的两个不同商店 - AE6:门店工作人员删除商品的操作不会影响现有订单 - AE7:商场管理人员、经理在系统内已经预留好。 ## 3. 详细需求描述 ### 3.1 对外接口需求 #### 3.1.1 用户界面 - UI1 用户登录/注册:在用户进入网站之后,系统应展开登录界面,如图: - UI1.1 在用户选择注册时,系统应展开注册界面![image-20240609182710979](需求规格说明书.assets/image-20240609182710979.png) - UI2 用户登录后,系统根据用户类型,转跳到不同用户类型的主界面上: - UI2.1 客户:上方是导航栏用于快捷转跳,下方是商店列表便于客户选择心仪的商店![image-20240609182833100](需求规格说明书.assets/image-20240609182833100.png) - UI2.2 经理、门店工作人员:与用户相同![image-20240609184134257](需求规格说明书.assets/image-20240609184134257.png)![image-20240609183302750](需求规格说明书.assets/image-20240609183302750.png) - UI2.3 商场管理人员:在商店列表上方有“创建商店”按钮便于管理人员创建商店![image-20240609183609176](需求规格说明书.assets/image-20240609183609176.png) - UI3 用户通过顶部导航栏可以转跳到个人信息界面,根据不同用户类型有不同的显示: - UI3.1客户: 左边是相关个人信息板块,右边是修改个人信息、修改密码板块![image-20240609182848604](需求规格说明书.assets/image-20240609182848604.png) - UI3.2 经理、商场管理人员:与客户相同![image-20240609184149303](需求规格说明书.assets/image-20240609184149303.png)![image-20240609183633332](需求规格说明书.assets/image-20240609183633332.png) - UI3.3 门店工作人员:左侧显示所属商店并可查看”我的商店“![image-20240609183326296](需求规格说明书.assets/image-20240609183326296.png) - UI4 用户在主界面点击对应商店即可进入商店详情页面,根据不同用户类型有不同的显示: - UI4.1 客户:左侧是商店基本信息,右侧是商品列表![image-20240609182939287](需求规格说明书.assets/image-20240609182939287.png) - UI4.2 经理、商场管理人员:与客户相同![image-20240609184209704](需求规格说明书.assets/image-20240609184209704.png)![image-20240609183700607](需求规格说明书.assets/image-20240609183700607.png) - UI4.3 门店工作人员:左上显示“添加商品”按钮![image-20240609183513077](需求规格说明书.assets/image-20240609183513077.png) - UI5 用户在主商店详情点击对应商品即可进入商品详情页面,根据不同用户类型有不同的显示: - UI5.1 客户:左侧栏是商品基本信息与“购买商品”按钮,右侧是商品大图和评论区![image-20240609183115138](需求规格说明书.assets/image-20240609183115138.png) - UI5.2 经理、商场管理人员:与客户相同![image-20240609184218790](需求规格说明书.assets/image-20240609184218790.png)![image-20240609183716659](需求规格说明书.assets/image-20240609183716659.png) - UI5.3 门店工作人员:左侧显示“修改库存”按钮![image-20240609183345315](需求规格说明书.assets/image-20240609183345315.png) - UI6 用户通过顶部导航栏可以转跳到商品搜索界面,如图: - UI6.1 上方为搜索栏,下方为搜索结果展示区![image-20240609183134474](需求规格说明书.assets/image-20240609183134474.png) - UI7 用户通过顶部导航栏可以转跳到订单详情界面,根据不同用户类型有不同的显示: - UI7.1 用户:页面分布着订单卡片,包含订单的详情信息与交互按钮![image-20240609183151369](需求规格说明书.assets/image-20240609183151369.png) - UI7.2 商场管理人员:和用户相同,但可以查看所有订单![image-20240609183753762](需求规格说明书.assets/image-20240609183753762.png) - UI7.3 经理、门店工作人员:在订单上方显示“获取商店报表”按钮![image-20240609184243981](需求规格说明书.assets/image-20240609184243981.png)![image-20240609183441225](需求规格说明书.assets/image-20240609183441225.png) - UI8 用户通过顶部导航栏可以转跳到优惠券界面,根据不同用户类型有不同的显示: - UI8.1 用户:页面分布着优惠券卡片,包含优惠券信息和领取按钮![image-20240609183208684](需求规格说明书.assets/image-20240609183208684.png) - UI8.2 商场管理人员:不可见![image-20240609184013404](需求规格说明书.assets/image-20240609184013404.png) - UI8.3 经理、门店工作人员:在优惠券上方显示“创建优惠券”按钮![image-20240609184258635](需求规格说明书.assets/image-20240609184258635.png)![image-20240609183547211](需求规格说明书.assets/image-20240609183547211.png) #### 3.1.2 硬件接口 目前南鲸网购平台管理系统的主要功能和交互都是基于软件接口实现,暂时不需要硬件接口 #### 3.1.3 软件接口 - 后端使用REST风格的接口,由前端AXIOS调用并返回 - 使用MySQL作为底层数据库存储各类数据 - 图片存储使用阿里云oss云服务 - 支付功能使用了支付宝沙箱支付Alipay的API #### 3.1.4 通信接口 - 客户端与服务器进行HTTP的方式进行通信 ### 3.2 功能需求 #### 3.2.1 客户登录与注册平台账号 ##### 3.2.1.1 特性描述 1. 在客户选择登录与注册平台账号时,用户在注册界面输入注册信息,系统保存信息完成注册,用户在登陆界面输入相关信息,系统处理客户登陆需求,完成登录 2. 优先级 = 高 ##### 3.2.1.2 刺激 / 响应序列 - 刺激:客户输入注册信息 - 响应:系统保存客户注册信息完成注册 - 刺激:客户输入登录信息 - 响应:系统验证客户信息进入系统完成登录 ##### 3.2.1.3 相关功能需求 | 编号 | 功能描述 | | :-----------------------------: | :----------------------------------------------------------: | | Client.Register.Input | 系统允许客户在注册平台账号用例中进行输入 | | Client.Register.Input.Address | 客户输入地址,系统显示输入的地址 | | Client.Register.Input.Name | 客户输入名称,系统显示名称 | | Client.Register.Input.Telephone | 客户输入联系电话,系统显示联系电话 | | Client.Register.Input.Password | 客户输入密码,系统显示密码 | | Client.Register.Input.Valid | 客户完成输入注册信息时,系统监测输入符合规范(Format4),系统记录注册信息 | | Client.Register.Input.Invalid | 客户完成输入注册信息时,系统监测输入不符合规范(Format4),系统记录提示错误并拒绝注册 | | Client.Register.Input.Cancel | 用户输入取消命令,系统关闭注册页面,返回登录界面,参见Client.Login.Input | | Client.Login.Input | 系统允许客户在登录平台账号用例中进行输入 | | Client.Login.Input.Telephone | 客户输入联系电话,系统显示联系电话 | | Client.Login.Input.Password | 客户输入密码,系统显示密码 | | Client.Login.Input.Valid | 客户完成输入注册信息时,系统监测输入符合规范(Format4),系统验证客户信息完成登录 | | Client.Login.Input.Invalid | 客户完成输入注册信息时,系统监测输入不符合规范(Format4),系统提示错误并拒绝登录 | | Client.Login.Input.Cancel | 用户输入取消命令,系统关闭登录页面,返回注册界面,参见Client.Register.Input | | Client.End | 系统允许客户要求结束登陆与注册平台账号的任务 | #### 3.2.2 客户维护个人基本信息 ##### 3.2.2.1. 特征描述 1. 在客户选择维护个人基本信息时,系统开始处理客户的请求,完成查看个人信息、修改个人信息、修改密码 2. 优先级 = 高 ##### 3.2.2.2. 刺激/响应序列 - 刺激:客户选择查看个人信息 - 响应:系统显示客户个人信息,包括昵称、联系方式 - 刺激:客户选择个人相关信息修改并提交个人信息表单 - 响应:系统显示修改后的个人信息,包括昵称、联系方式并且提示操作状态 - 刺激:客户选择修改密码 - 响应:系统显示修改密码表单,包括新密码和再次输入新密码 - 刺激:客户填写修改密码表单并提交 - 响应:系统显示修改密码成功。 ##### 3.2.2.3. 相关功能需求 | 编号 | 功能描述 | | ------------------------ | ------------------------------------------------------------ | | Client.Me.Input | 系统允许客户在维护个人信息用例中进行输入 | | Client.Me.Input.Info | 客户请求查看个人信息,系统显示客户个人信息 | | Client.Me.Input.Update | 客户请求修改个人信息,系统应该执行修改个人信息任务,参见Client.Me.Update | | Clien.Me.Input.Pwd | 客户选择修改个人密码,系统应该执行修改个人密码任务,参见Client.Me.Pwd | | Client.Me.Input.Invalid | 系统选择进行其他操作时,系统显示输入无效 | | Client.Me.Update.Valid | 在客户完成个人信息修改表单填写确认后,系统更新该客户的个人信息 | | Client.Me.Update.Invalid | 在客户进行其他的输入时,系统提示输入无效 | | Client.Me.Update.Cancel | 客户取消维护个人信息时,系统关闭维护个人信息,系统返回显示个人信息界面,参见Client.Me.Input | | Client.Me.Pwd.Valid | 在客户输入旧密码和新密码并确认后,系统检查合法,系统更新该客户的密码信息 | | Client.Me.Pwd.Invalid | 在客户输入旧密码和新密码并确认后,系统检查不合法,系统提示密码无效 | | Client.Me.Pwd.Cancel | 在客户取消修改密码后,系统返回到显示个人信息界面,参见Client.Me.Input | | Client.Me.End | 系统应该允许客户要求结束维护个人信息任务 | #### 3.2.3 客户查看商店信息 ##### 3.2.3.1. 特征描述 1. 在客户决定寻找合适的商店时,系统向客户展示所有商店供客户进一步查看 2. 优先级 = 高 ##### 3.2.3.2. 刺激/响应序列 - 刺激:客户选择具体商店进行查看 - 响应:系统转跳到商店详情信息界面 - 刺激:客户退出具体商店 - 响应:系统转跳到所有商店页面 ##### 3.2.3.3. 相关功能需求 | 编号 | 功能描述 | | ------------------------- | ------------------------------------------------------------ | | Client.SearchStore | 客户要求查看所有商店界面,系统返回所有商店界面 | | Client.SearchStore.Detail | 客户要求查看对应商店详细信息界面,系统返回商店详细信息界面 | | Client.SearchStore.Cancel | 客户不再查看商店详情信息,系统返回所有商店界面,参见Client.SearchStore | | Client.SearchStore.Close | 系统允许客户结束客户查看商店信息的任务 | #### 3.2.4 客户查看商店商品 ##### 3.2.4.1 特性描述 1.客户在网购平台上能够查看商店下的所有商品,并浏览其详细信息。 2.优先级=高 ##### 3.2.4.2 刺激 / 响应序列 1. **刺激:** 客户进入商店页面或使用搜索功能。 **响应:** 系统根据客户的请求,显示商店下的所有商品列表或匹配的商品。 2. **刺激:** 客户点击特定商品以查看详细信息。 **响应:** 系统显示所选商品的详细信息页面,包括商品名称、价格、描述、图片等。 ##### 3.2.4.3 相关功能需求 | 编号 | 功能描述 | | ------------------------------------ | ------------------------------------------------------------ | | Client.ViewShopProducts.ShowProducts | 系统应该在客户访问商店页面时显示商店下的所有商品列表。 | | Client.ViewShopProducts.Search | 系统应该允许客户使用搜索功能查找特定商品,搜索结果应该包括与关键词匹配的商品。 | | Client.ViewShopProducts.ShowDetails | 当客户点击特定商品时,系统应该显示该商品的详细信息页面,包括商品名称、价格、描述、图片等。 | | Client.ViewShopProducts.ViewReviews | 系统应该允许客户查看其他用户对商品的评价和评论。 | | Client.ViewShopProducts.Filter | 系统应该允许客户使用过滤功能,根据价格、类别等条件对商品列表进行筛选。 | | Client.ViewShopProducts.Sort | 系统应该允许客户使用排序功能,按照价格、销量、评分等条件对商品列表进行排序。 | #### 3.2.5 商场管理人员维护个人信息 ##### 3.2.5.1 特性描述 1.商场管理人员能够在系统中维护个人信息,包括但不限于姓名、联系方式、职务等。 2.优先级=中 ##### 3.2.5.2 刺激 / 响应序列 1. **刺激:** 商场管理人员登录系统。 **响应:** 系统验证登录信息,显示管理人员的个人信息页面,包括已存储的姓名、联系方式、职务等信息。 2. **刺激:** 商场管理人员查看个人信息。 **响应:** 系统允许管理人员查看个人信息,并显示姓名、联系方式、职务等详细信息。 3. **刺激:** 商场管理人员修改个人信息。 **响应:** 系统提供编辑个人信息的界面,允许管理人员修改姓名、联系方式、职务等信息,并保存更新后的数据。 4. **刺激:** 商场管理人员更改登录密码。 **响应:** 系统提供更改密码的选项,允许管理人员输入新密码并确认修改。 ##### 3.2.5.3 相关功能需求 | 编号 | 功能描述 | | ------------------------------------ | ------------------------------------------------------------ | | Manager.ManageProfile.View | 系统应该允许商场管理人员查看自己的个人信息,包括姓名、联系方式、职务等。 | | Manager.ManageProfile.Edit | 系统应该允许商场管理人员编辑个人信息,并保存修改后的信息。 | | Manager.ManageProfile.ChangePassword | 系统应该允许商场管理人员更改登录密码。 | | Manager.ManageProfile.AccessLogs | 系统应该记录并显示商场管理人员的登录日志,包括登录时间、IP地址等信息。 | #### 3.2.6 商场管理员新建商店 ##### 3.2.6.1 特性描述 1.商场管理员能够在系统中新建商店,以便向客户展示商店的产品和服务。 2.优先级=高 ##### 3.2.6.2 刺激 / 响应序列 1. **刺激:** 商场管理员登录系统。 **响应:** 系统验证登录信息,并显示管理员的主界面。 2. **刺激:** 商场管理员选择新建商店选项。 **响应:** 系统显示商店新建页面,包括填写商店名称、位置、联系方式等信息的表单。 3. **刺激:** 商场管理员填写商店信息并提交。 **响应:** 系统保存商店信息,并将商店添加到商场的商店列表中。 4. **刺激:** 商场管理员查看商店列表。 **响应:** 系统显示商场中所有商店的列表,包括名称、位置、联系方式等信息。 ##### 3.2.6.3 相关功能需求 | 编号 | 功能描述 | | ---------------------------- | ------------------------------------------------------------ | | Manager.CreateStore.ViewForm | 系统应该提供商场管理员新建商店的表单页面,包括商店名称、位置、联系方式等信息的填写选项。 | | Manager.CreateStore.Submit | 系统应该允许商场管理员提交填写好的商店信息。 | | Manager.CreateStore.SaveData | 系统应该保存商店信息,并将新建的商店添加到商场的商店列表中。 | | Manager.ViewStoreList | 系统应该允许商场管理员查看商场中所有商店的列表,包括名称、位置、联系方式等信息。 | #### 3.2.7 商店工作人员维护个人信息 ##### 3.2.7.1 特性描述 1.在商店工作人员选择维护个人基本信息时,系统开始处理请求,完成查看个人信息、修改个人信息、修改密码 2.优先级 = 中 ##### 3.2.7.2 刺激 / 响应序列 1. **刺激:** 商店工作人员登录系统。 **响应:** 系统验证登录信息,并显示该工作人员的主界面。 2. **刺激:** 商店工作人员进入个人信息页面。 **响应:** 系统显示该工作人员信息,包括昵称、电话号码、地址、所属商店。 3. **刺激:** 商店工作人员选择修改密码。 **响应:** 系统验证新旧密码并将新密码覆盖旧密码。 4. **刺激:** 商店工作人员选择查看本商店。 **响应:** 系统进入该商店界面,工作人员拥有商品相关的权限。 ##### 3.2.7.3 相关功能需求 | 编号 | 功能描述 | |-------------------------|-----------------------------------------------------------| | Staff.Me.Input | 系统允许商店工作人员在维护个人信息用例中进行输入 | | Staff.Me.Input.Info | 商店工作人员请求查看个人信息,系统显示商店工作人员个人信息 | | Staff.Me.Input.Update | 商店工作人员请求修改个人信息,系统应该执行修改个人信息任务,参见Staff.Me.Update | | Staff.Me.Input.Pwd | 商店工作人员选择修改个人密码,系统应该执行修改个人密码任务,参见Staff.Me.Pwd | | Staff.Me.Input.Invalid | 系统选择进行其他操作时,系统显示输入无效 | | Staff.Me.Update.Valid | 在商店工作人员完成个人信息修改表单填写确认后,系统更新该商店工作人员的个人信息 | | Staff.Me.Update.Invalid | 在商店工作人员进行其他的输入时,系统提示输入无效 | | Staff.Me.Update.Cancel | 商店工作人员取消维护个人信息时,系统关闭维护个人信息,系统返回显示个人信息界面,参见Staff.Me.Input | | Staff.Me.Pwd.Valid | 在商店工作人员输入旧密码和新密码并确认后,系统检查合法(参见format?),系统更新该客户的密码信息 | | Staff.Me.Pwd.Invalid | 在商店工作人员输入旧密码和新密码并确认后,系统检查不合法(参见Format?),系统提示密码无效 | | Staff.Me.Pwd.Cancel | 在商店工作人员取消修改密码后,系统返回到显示个人信息界面,参见Staff.Me.Input | | Staff.Me.End | 系统应该允许商店工作人员要求结束维护个人信息任务 | | Staff.Me.GoToMyStore | 系统应该允许商店工作人员在个人信息界面进入自己的商店 | #### 3.2.8 商店工作人员新建商品 ##### 3.2.8.1 特性描述 1.商店工作人员在本商店界面有新建商品的选项,点击进入后可以为商店添加新的商品。 2.优先级 = 中 ##### 3.2.8.2 刺激 / 响应序列 1. **刺激:** 商店工作人员进入所属商店页面。 **响应:** 系统验证身份,为其显示新建商品的选项。 2. **刺激:** 商店工作人员选择添加商品。 **响应:** 系统显示添加商品页面,要求输入名称、初始库存、价格、商品图片等信息。 3. **刺激:** 商店工作人员确定添加商品。 **响应:** 系统将商品信息纳入数据库。 ##### 3.2.8.3 相关功能需求 | 编号 | 功能描述 | |------------------------------|-------------------------| | Staff.CreateProduct.ViewForm | 系统允许工作人员在添加商品用例的表单中进行输入 | | Staff.CreateProduct.Submit | 系统允许工作人员提交新商品的信息并录入数据库 | | Staff.CreateProduct.AssignID | 系统为商品提供统一的编号ID | #### 3.2.9 商店工作人员修改库存 ##### 3.2.9.1 特性描述 1.商店工作人员可以在所属商店商品详情页面中修改库存信息。 2.优先级 = 中 ##### 3.2.9.2 刺激 / 响应序列 1. **刺激:** 商店工作人员进入所属商店的相应商品页面。 **响应:** 系统验证身份,为其显示修改库存的选项。 2. **刺激:** 商店工作人员选择修改库存。 **响应:** 系统显示修改库存页面,要求填入修改后的库存量。 3. **刺激:** 商店工作人员确定修改库存。 **响应:** 系统将商品信息纳入数据库。 ##### 3.2.9.3 相关功能需求 | 编号 | 功能描述 | |---------------------------|-------------------------| | Staff.AddStorage.View | 系统允许工作人员在修改库存界面中的表单进行输入 | | Staff.AddStorage.Submit | 系统允许工作人员提交商品的库存信息并录入数据库 | #### 3.2.10 经理发布全局优惠券组并查看优惠券组信息 ##### 3.2.10.1 特性描述 1.经理可以在优惠券界面查看优惠券组信息并发布全局优惠券组。 2.优先级 = 低 ##### 3.2.10.2 刺激 / 响应序列 1. **刺激:** 经理进入优惠券界面。 **响应:** 系统展示优惠券组信息。 2. **刺激:** 经理选择发布优惠券组。 **响应:** 系统显示发布优惠券组详情界面,要求填入相关信息。 3. **刺激:** 经理确定发布优惠券组。 **响应:** 系统将优惠券组信息纳入数据库。 ##### 3.2.10.3 相关功能需求 | 编号 | 功能描述 | | ---------------------------- | ---------------------------------- | | Ceo.ViewCouponGroup | 系统显示优惠券组信息 | | Ceo.CreateCouponGroup.Input | 系统允许经理输入创建的优惠券组信息 | | Ceo.CreateCouponGroup.Submit | 系统将优惠券组信息录入数据库 | #### 3.2.11 门店工作人员发布本门店内的优惠券组并查看优惠券组信息 ##### 3.2.11.1 特性描述 1.门店工作人员可以在优惠券界面查看优惠券组信息并发布本门店内的优惠券组。 2.优先级 = 低 ##### 3.2.11.2 刺激 / 响应序列 1. **刺激:** 门店工作人员进入优惠券界面。 **响应:** 系统展示优惠券组信息。 2. **刺激:** 门店工作人员选择发布优惠券组。 **响应:** 系统显示发布优惠券组详情界面,要求填入相关信息。 3. **刺激:** 门店工作人员确定发布优惠券组。 **响应:** 系统将优惠券组信息纳入数据库。 ##### 3.2.11.3 相关功能需求 | 编号 | 功能描述 | | ------------------------------ | ------------------------------------------ | | Staff.ViewCouponGroup | 系统显示优惠券组信息 | | Staff.CreateCouponGroup.Input | 系统允许门店工作人员输入创建的优惠券组信息 | | Staff.CreateCouponGroup.Submit | 系统将优惠券组信息录入数据库 | #### 3.2.12 顾客领取并查看优惠券 ##### 3.2.12.1 特性描述 1.顾客可以在优惠券界面查看优惠券组信息并领取优惠券。 2.优先级 = 低 ##### 3.2.12.2 刺激 / 响应序列 1. **刺激:** 顾客进入优惠券界面。 **响应:** 系统展示优惠券组信息。 2. **刺激:** 顾客选择领取优惠券。 **响应:** 系统将领取优惠券信息存入数据库。 ##### 3.2.12.3 相关功能需求 | 编号 | 功能描述 | | ---------------------- | ---------------------------------------- | | Client.ViewCouponGroup | 系统显示优惠券组信息 | | Client.GetCoupon | 系统允许顾客领取优惠券并将信息存入数据库 | #### 3.2.13 顾客在支付时使用优惠券 ##### 3.2.13.1 特性描述 1.顾客可以在支付界面选择使用优惠券。 2.优先级 = 中 ##### 3.2.13.2 刺激 / 响应序列 1. **刺激:** 顾客进入支付界面。 **响应:** 系统验证身份,为其显示可用优惠券选项。 2. **刺激:** 顾客选择优惠券。 **响应:** 系统接收订单,并显示使用该优惠券后总金额。 3. **刺激:** 顾客支付订单。 **响应:** 系统进入支付页面。 ##### 3.2.13.3 相关功能需求 | 编号 | 功能描述 | | ----------------------------- | -------------------------------------------- | | Client.Pay.GetAvailableCoupon | 系统显示可用优惠券 | | Client.Pay.ChooseCoupon | 系统接收选择优惠券信息并显示使用优惠券后金额 | | Client.Pay.PayWithCoupon | 系统接收订单信息并进入支付界面 | #### 3.2.14 用户可以根据关键词搜索商品 ##### 3.2.14.1 特性描述 1. 用户可以在系统中根据关键词搜索商品,检索商品信息,包括但不限于商品名称、描述、类别等。 2. 优先级 = 高 ##### 3.2.14.2 刺激 / 响应序列 1. **刺激:** 用户输入关键词进行搜索。 **响应:** 系统接受关键词,并显示与关键词匹配的商品列表,包括商品名称、描述、价格、库存状态等信息。 2. **刺激:** 用户查看搜索结果中的商品详情。 **响应:** 系统显示所选商品的详细信息,包括商品名称、描述、价格、库存状态、用户评价等。 3. **刺激:** 用户调整搜索关键词或使用高级搜索选项。 **响应:** 系统根据新的关键词或高级搜索选项重新检索,并更新显示的商品列表。 ##### 3.2.14.3 相关功能需求 |编号 |功能描述| |---------------------------|-------------------------| |User.SearchProduct.ByKeyword| 系统应该允许用户根据关键词搜索商品,显示与关键词匹配的商品列表| |User.SearchProduct.ViewDetails |系统应该允许用户查看搜索结果中的商品详情,包括商品名称、描述、价格、库存状态等| |User.SearchProduct.Advanced| 系统应该提供高级搜索选项,允许用户通过多个条件(如类别、价格范围等)进行商品搜索| |User.SearchProduct.Suggestions |系统应该在用户输入关键词时提供搜索建议,帮助用户更快地找到相关商品| #### 3.2.15 顾客可以创建并支付订单 ##### 3.2.15.1 特性描述 1. 顾客可以在系统中创建订单,并使用多种支付方式完成支付。 2. 优先级 = 高 ##### 3.2.15.2 刺激 / 响应序列 1. **刺激:** 顾客购买商品。 **响应:** 系统显示商品清单、总价等信息,并提供结算选项。 2. **刺激:** 顾客填写收货信息并选择支付方式。 **响应:** 系统显示订单确认页面,包括商品信息、收货信息、支付方式和总价,供顾客确认。 3. **刺激:** 顾客确认订单并进行支付。 **响应:** 系统处理支付请求,并在支付成功后生成订单确认页面,显示订单详情。 4. **刺激:** 顾客查看订单状态。 **响应:** 系统允许顾客查看订单状态,包括订单确认、支付成功、发货、运输和交付等信息。 ##### 3.2.15.3 相关功能需求 |编号 |功能描述| |---------------------------|-------------------------| |Customer.Order.Create |系统应该允许顾客创建订单。| |Customer.Order.Checkout |系统应该允许顾客选择结算,填写收货信息并选择支付方式。| |Customer.Order.Payment |系统处理顾客的支付请求。| |Customer.Order.Confirmation |系统应该在支付成功后生成订单确认页面,并显示订单详情和预计送达时间。| |Customer.Order.Status |系统应该允许顾客查看订单状态,包括订单确认、支付成功、发货、运输和交付等信息。| #### 3.2.16 门店工作人员可以进行订单发货 ##### 3.2.16.1 特性描述 1. 门店工作人员可以在系统中处理订单发货,更新订单状态并生成相关物流信息。 2. 优先级 = 中 ##### 3.2.16.2 刺激 / 响应序列 1. **刺激:** 门店工作人员登录系统并查看待发货订单。 **响应:** 系统验证登录信息,并显示待发货订单列表,包括订单号、商品信息、顾客收货地址等。 2. **刺激:** 门店工作人员选择处理某一订单发货。 **响应:** 系统显示订单详细信息,并提供发货选项。 3. **刺激:** 门店工作人员确认订单发货,并填写物流信息。 **响应:** 系统更新订单状态为已发货,生成物流信息,并将物流信息通知顾客。 4. **刺激:** 门店工作人员查看已发货订单。 **响应:** 系统显示已发货订单列表,包括订单号、发货时间等。 ##### 3.2.16.3 相关功能需求 |编号| 功能描述| |---------------------------|-------------------------| |Staff.Order.Ship.ViewPending| 系统应该允许门店工作人员查看待发货订单列表,包括订单号、商品信息、顾客收货地址等。| |Staff.Order.Ship.Process| 系统应该允许门店工作人员选择处理某一订单的发货,并显示订单详细信息和发货选项。| |Staff.Order.Ship.Confirm| 系统应该允许门店工作人员确认订单发货,并填写物流信息,更新订单状态为已发货,并通知顾客。| |Staff.Order.Ship.ViewShipped| 系统应该允许门店工作人员查看已发货订单列表,包括订单号、发货时间、物流信息等。| #### 3.2.17 顾客可以评价已完成的订单 ##### 3.2.17.1 特性描述 1.顾客收货之后可以对该次交易评分并发表评论。 2.优先级=中 ##### 3.2.17.2 刺激/相应序列 1. **刺激:** 顾客点击已收货订单的“去评价”按钮。 **响应:** 系统弹出评价弹窗,要求用户填写评分、评论信息。 2. **刺激:** 顾客填写完成,点击提交评价。 **响应:** 系统将评价写入数据库并提示订单已完成。 ##### 3.2.17.3 相关功能需求 | 编号 | 功能描述 | | --------------------------- | ---------------------------------------------------- | | Client.Order.Comment.Handle | 系统应该检查订单状态并对符合条件的订单开放评论功能。 | | Client.Order.Comment.Submit | 系统应该允许顾客提交评价。 | #### 3.2.18 门店工作人员可查看本门店报表 ##### 3.2.18.1 特性描述 1.门店工作人员可于订单界面下载本店报表 2.优先级=中 ##### 3.2.18.2 刺激/响应序列 1. **刺激:** 工作人员在订单界面点击下载报表。 **响应:** 系统生成报表并弹出报表的下载链接。 ##### 3.2.18.3 相关功能需求 | 编号 | 功能描述 | | ---------------------- | ---------------------------------------------------------- | | Staff.Order.Table.Make | 系统生成该门店下所有订单的报表,包含商品、金额等必要信息。 | | Staff.Order.Table.Link | 系统生成报表链接并提示下载。 | #### 3.2.19 商场经理可查看全商场报表 ##### 3.2.19.1 特性描述 1.经理可于订单界面下载所有商店的总报表 2.优先级=中 ##### 3.2.19.2 刺激/响应序列 1. **刺激:** 经理在订单界面点击下载报表。 **响应:** 系统生成报表并弹出报表的下载链接。 ##### 3.2.19.3 相关功能需求 | 编号 | 功能描述 | | -------------------- | ------------------------------------------------------ | | CEO.Order.Table.Make | 系统生成商场所有订单的报表,包含商品、金额等必要信息。 | | CEO.Order.Table.Link | 系统生成报表链接并提示下载。 | ### 3.3 非功能需求 #### 3.3.1 安全性 - Safety1:系统应该只允许经过验证和授权的用户访问。 - Safety2:系统应该按照用户身份验证用户的访问权限。 - Safety3:用户只能查看和维护自己的信息。 - Safety4:门店工作人员只能处理自己商店的工作。 - Safety5:为防信息泄露,用户的账号、密码、姓名(名称)、联系方式必须密文存储 #### 3.3.2 可维护性 - Modifiability1:如果系统需要增加新的消费服务功能,要能够在3人一天内完成 - Modifiability2:如果系统要增加优惠券的发放,要能够在2人一天内完成 #### 3.3.3 易用性 - Usability1:顾客可以在30分钟内完成购买商品和支付订单。 - Usability2:门店工作人员可以在20分钟内完成创建商品和增加库存。 - Usability3:商场管理人员可以在20分钟内完成创建商店。 - Usability4:经理和门店工作人员可以在20分钟内完成优惠券发布。 - Usability5:用户可以在20分钟内完成个人信息维护。 #### 3.3.4 可靠性 Reliability:当客户端与服务端通信时,如果网络出现故障,系统不能出现故障,能保持稳定状态。 #### 3.3.5 业务规则 - BR1:维护个人信息的规则 - 个人信息中的电话号码为中国大陆11位电话号码 - BR2:创建商店、商品的规则 - 不同的商店不能使用同样的商店名称 - 系统中创建商店时,商店照片只能上传一张 - 系统中创建商品时,商品照片至少上传两张 - BR3:订单完成时间规则 - 订单完成时间=该订单评论创建时间 - BR4:优惠券规则 - “蓝鲸券”的使用规则 | 价格区间 | 折扣 | | -------- | ------ | | 0-100元 | 九五折 | | 100-200元 | 九折 | | 200-300元 | 八五折 | | 300-400元 | 八折 | | 400-500元 | 七五折 | | 500元以上 | 七折 | #### 3.3.6 约束 - IC1:系统要在网络上分布为一个服务器和多个网页端(客户端) ### 3.4 数据需求 #### 3.4.1 数据定义 DR1: 系统需要存储的数据实体及其关系 ```java user(id, name, phone, password, storeId, address, role, createname) store(id, name, description, address, telephone, createTime, imageUrl, rating, ratesAmount) product(id, price, description, storeId, name, curretnNum, category, subCategory, imageUrlList, rating, salesAmount, ratesAmount) order(id, userId, storeId, productId, createTime, finishTime, deliveryMethod, state, unitPrice, totalPrice, actualPrice, salesNum, rating comment, deliveryAddress, userPhone) coupon(id, couponGroupId, userId, isUsed) conponGroup(id, storeId,lastCount, usedCount, couponGroupType, couponType, fullNum, reduceNum) comment(id, userId, userName, orderId, productId, rating, comment, time, parentId) address(id, userId, userAddress, phoneNum) ``` DR2:系统需要存储1年内的订单信息 DR3:系统需要记录用户1年内的购买记录 DR4:系统要存储全部优惠策略 DR5:系统要记录所有商店以及商店的信息 DR6:系统要记录所有商品的剩余库存数量 DR7:系统要记录所有优惠券组的剩余数量以及其他信息 DR6:系统要记录所有优惠券的使用情况以及其他信息 #### 3.4.2 默认数据 默认数据用于以下两种情况: 1. 系统新增加数据的时候。 2. 编辑数据时不小心将相关内容清空时。 - Default1: 用户的默认身份为客户 - Default2: 商店的默认商品为无商品 - Default3: 商品的默认库存为0 - Default4: 订单的默认状态为待处理 - Default5: 优惠卷默认为未被使用 - Default6: 支付默认为不使用优惠券 #### 3.4.3 数据格式要求 - Format1: 订单的总金额必须是大于等于0、精确到小数点后2位的浮点数,单位为人民币。 - Format2: 订单中商品数量的格式必须为正整数。 - Format3: 评论的内容长度限制在500字以内。 - Format4: 用户的电话号码格式必须为11位数字。 - Format5: 商品价格必须大于0、精确到小数点后2位的浮点数,单位为人民币。 - Format6: 商品库存必须为非负整数。 - Format7: 优惠券组中剩余优惠券数量必须为非负整数 ### 3.5 其他需求 暂无

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully