收藏 分销(赏)

一个电子商务网站的需求分析报告基于用例.doc

上传人:人****来 文档编号:3529321 上传时间:2024-07-08 格式:DOC 页数:39 大小:507KB
下载 相关 举报
一个电子商务网站的需求分析报告基于用例.doc_第1页
第1页 / 共39页
一个电子商务网站的需求分析报告基于用例.doc_第2页
第2页 / 共39页
一个电子商务网站的需求分析报告基于用例.doc_第3页
第3页 / 共39页
一个电子商务网站的需求分析报告基于用例.doc_第4页
第4页 / 共39页
一个电子商务网站的需求分析报告基于用例.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、需求说明书1系统需求31.1基于经销商的电子商务网站31.1.1功能分析31.1.2系统顶层活动图。51.1.3用例图61.1.3.1参与者61.1.3.2用例61.1.3.3顶层用例图71.1.4用例分析与描述81.1.4.1登录(logon)81.1.4.2注销(logout)81.1.4.3修改经销商信息(modify dealer info)81.1.4.4浏览目录(view category)91.1.4.5搜索产品(search items)101.1.4.6查看产品(view item)111.1.4.7加入购物车(add cart)121.1.4.8查看购物车(view car

2、t)121.1.4.9修改购物车中的商品(modify cart items)131.1.4.10删除购物车中的商品(delete cart item)141.1.4.11清空购物车(empty cart)141.1.4.12结帐(check out)151.1.4.13配置收货地址信息(configure recipient)151.1.4.14配置送货方式(configure shipment)161.1.4.15配置付款方式(configure payment method)171.1.4.16确认订单(affirm order)181.1.4.17查看订单(view order)191

3、.1.4.18修改订单(modify order)201.1.4.19删除订单(delete order)201.1.4.20查看新品(view latest item)211.1.4.21查看特价品(view special price item)221.1.4.22查看积分(view history record and grade)221.1.4.23经销商反馈(feedback)231.1.4.24查看反馈答复(view feedback answer)241.2静态结构模型251.2.1包图251.2.1.1web 包251.2.1.2business login包261.2.1.3

4、data service包261.2.2类图271.2.2.1db类271.2.2.2dealer类271.2.3password 类291.2.4Category类291.2.5Cart类301.2.6Item类311.2.7Orders类331.2.8Payment类351.2.9Recipient类361.2.10Shipment类371.2.11Feedback类371.2.12BankAccount类391 系统需求根据对系统的分析,把该系统划分为四个子系统:基于客户的电子商务网站、基于经销商的电子商务网站,后台管理网站以及数据库管理子系统。1.1 基于经销商的电子商务网站1.1.1

5、 功能分析根据对该系统的分析,该系统应具有如下功能1 经销商登录经销商登录并经过身份验证合法后,经销商能执行该子系统的所有功能。2 经销商信息管理(1) 配置经销商的收货信息(收货人、收货地址、邮编),每个经销商允许有多个收货信息,下订单时如果是第一次下订单,则要求添加收货信息。否则使用最近使用过的收货信息,允许对最近使用的收货信息进行修改。(2) 配置经销商的送货方式,每个经销商允许有多个送货方式,下订单时如果是第一次下订单,则要求添加送货方式。否则使用最近使用过的送货方式,允许对最近使用的送货方式进行修改。(3) 修改经销商的基本信息,除了分配给该经销商的用户名外,经销商可以修改所有其他信

6、息。3 浏览目录:经销商能够浏览目录。在主页上,应向经销商显示目录清单,经销商选择了一个目录之后,应能显示该类别下的实际商品的图片(如果有)、名称、简单描述、价格信息,并允许把商品加入购物车,不同级别的经销商浏览产品的价格信息应不同4 显示商品详情:显示商品的较大图片和/或该产品的详细说明、价格信息,并允许把商品加入购物车。5 搜索商品:经销商能够根据商品的特征搜索符合条件的商品。6 购买商品:经销商能够把商品放入购物车。7 管理购物车(1) 删除购物车中的商品。(2) 更改某些商品的数量。(3) 清空购物车。8 结帐:结帐前必须再次验证经销商,验证合法后,可以配置经销商的收货信息、送货方式、

7、付款方式、接下来就可下订单。9 下订单:计算订单的运费、税金和总计,显示订单的订单号、日期、运费、税金和总计、收货信息、送货方式、付款方式、以及订单项目明细。10 订单管理(1) 查看订单。1) 经销商可基于订单号、时间段、订单状态的组合条件查找2)查看所有订单,当订单数超过一页时,要提供“第一页、上一页、下一页、最后一页”的页浏览功能。(2) 修改订单,只允许对未审核的订单进行修改。(3) 删除订单,只允许对未审核的订单进行修改11 经销商反馈经销商可以可以给总部提一些建议。12查看反馈信息:经销商可查看所有的反馈信息,也可基于时间段查看反馈信息。12 显示新品、特价品:向经销商展示最新的产

8、品和特价品。13 查看积分经销商可以查看其积分情况。14 修改经销商信息,不能修改经销商的ID。1.1.2 系统顶层活动图。1.1.3 用例图1.1.3.1 参与者1经销商(loginedUser):描述:该参与者的信息已保存在数据库中,经过合法性验证后,能够执行该系统中的所有功能。1.1.3.2 用例1. 登录(logon)2. 注销(logout)3. 修改经销商信息(modify dealer info)4. 浏览目录(view category)5. 搜索产品(search item)6. 查看产品(view item)7. 加入购物车(add cart)8. 查看购物车(view c

9、art)9. 修改购物车中的商品(modify cart items)10. 删除购物车中的商品(delete cart item)11. 清空购物车(empty cart)12. 结帐(check out)13. 配置收货人信息(configure recipient)14. 配置送货方式(configure shipment)15. 配置付款方式(configure payment method)16. 确认订单(affirm order)17. 查看订单(view order)18. 修改订单(modify order)19. 删除订单(delete order)20. 查看新品(vie

10、w latest item)21. 查看特价品(view special price item)22. 查看积分(view grade)23. 经销商反馈(feedback)24. 查看反馈(view feedback)1.1.3.3 顶层用例图1.1.4 用例分析与描述1.1.4.1 登录(logon)1. 用例图2. 用例的事件流描述2.1. 简单描述:本用例描述了用户如何登录到系统中。2.2. 前置条件无。2.3. 后置条件如果用例成功,用例登录到系统中,否则系统的状态不变。2.4. 扩充点无。2.5. 事件流2.5.1. 基流(1) 经销商登录到基于经销商的网站时,用例启动。(2) 系

11、统提示用户输入用户名和密码(3) 用户输入自己的用户名和密码,提交(E-1)。(4) 系统验证输入的名字和密码(E-2),用户登录系统成功。2.5.2. 替代流E-1:包含了单引号、双引号或为空,系统提示错误。E-2:系统检索不到该用户的密码,系统提示错误。1.1.4.2 注销(logout)用例描述:清除内存中用户名、购物车信息,并返回到登录页。1.1.4.3 修改经销商信息(modify dealer info)1 用例图2 用例的事件流描述2.1 简单描述:该用例描述了如何修改经销商的信息,但经销商的用户名不允许修改。2.2 前置条件经销商已登录。2.3 后置条件用例成功,把经销商的信息

12、保存到数据库中。2.4 扩充点无。2.5 事件流2.5.1 基流(1) 系统提示输入经销商的信息。(2) 经销商输入所需信息,提交(E-1)。(3) 系统把所需的信息保存到数据库中。2.5.2 替代流E-1:系统验证输入的数据不合法(不能包含单引号、双引号,邮箱必须满足要求),提示错误。1.1.4.4 浏览目录(view category)1 用例图2 用例的事件流描述2.1 简单描述:经销商选择一目录,显示该商品目录的商品信息(商品的价格与给该经销商的折扣有关)。2.2 前置条件经销商已登录。2.3 后置条件用例成功,显示对应商品目录商品信息。2.4 扩充点无2.5 事件流2.5.1 基流(

13、1) 系统提示选择一目录。(2) 经销商单击一目录。(3) 系统检索该经销商的折扣。(4) 系统检索对应该目录的商品,商品的价格与给该经销商的折扣有关。存在(S-1),不存在(S-2)。2.5.2 分支流S-1:小图显示所有商品图片(如果有),商品名称,商品简单描述,单价,加入购物车提示。如果产品不能在一页显示完,系统显示“第一页、上一页,下一页、最后一页”页浏览提示。S-2:系统提示不存在该目录的产品。1.1.4.5 搜索产品(search items)1 用例图2 用例的事件流描述2.1 简单描述:经销商可基于商品的类别和商品的名称的组合条件进行模糊查找。2.2 前置条件经销商已登录。2.

14、3 后置条件用例成功,显示满足查找条件的所有记录。2.4 扩充点无2.5 事件流2.5.1 基流(1) 系统提示输入商品的类别和搜索的关键字。(2) 经销商输入商品的类别和搜索的关键字,提交。(3) 检索该经销商的折扣。(4) 系统检索满足条件的商品。如果存在(S-1),不存在(S-2)。2.5.2 分支流S-1:小图显示所有商品图片(如果有),商品名称,商品简单描述,单价,加入购物车提示。如果产品不能在一页显示完,系统显示“第一页、上一页,下一页、最后一页”页浏览提示。S-2:系统提示不存在该目录的产品。1.1.4.6 查看产品(view item)1 用例图2 用例的事件流描述2.1 简单

15、描述:经销商查看某一产品的详细描述。2.2 前置条件经销商已登录,且系统处于商品页显示状态。2.3 后置条件用例成功,显示对应商品的详细信息。2.4 扩充点无。2.5 事件流2.5.1 基流(1) 系统提示经销商选择一商品。(2) 经销商选定一商品,确认。(3) 系统检索该经销商的权限。(4) 系统检索该商品的详细信息。(5) 系统以大图显示该商品的图象、商品名称、商品价格、加入购物车提示。1.1.4.7 加入购物车(add cart)1 用例图2 用例的事件流描述2.1 简单描述经销商把所需的商品加入购物车。2.2 前置条件经销商已登录且处于商品显示页中。2.3 后置条件用例成功,进入到查看

16、购物车页。2.4 扩充点无2.5 事件流2.5.1 基流(1) 在商品显示页中,系统提示加入购物车。(2) 确认加入购物车。1.1.4.8 查看购物车(view cart)1 用例图2 用例的事件流描述2.1 简单描述:经销商查看购物车。2.2 前置条件用户已登录。2.3 后置条件显示购物车中所有商品的编号、名称、数量、单价、金额。扩充点无2.4 事件流2.4.1 基流(1) 用户确认查看购物车。(2) 系统显示购物车中的所有商品的编号、名称、数量、单价、金额以及合计(商品的数量可修改)。(3) 系统显示经销商可修改商品的数量,删除商品、清空购物车、继续购物以及结帐。1.1.4.9 修改购物车

17、中的商品(modify cart items)1 用例图2 用例的事件流描述2.1 简单描述:经销商修改购物车中商品的数量。2.2 前置条件系统处于查看购物车状态。2.3 后置条件用例成功,购物车中商品的数量被更改。2.4 扩充点无。2.5 事件流2.5.1 基流(1) 系统提示更改商品的数量。(2) 经销商输入要更改商品的数量,确认更改(E-1)。(3) 系统刷新购物车。2.5.2 替代流E-1:经销商输入的商品数量只能是(1-50)间的整数。否则提示错误。1.1.4.10 删除购物车中的商品(delete cart item)1 用例图2 用例的事件流描述2.1 简单描述:删除购物车中的某

18、个商品。2.2 前置条件系统处于查看购物车状态。2.3 后置条件用例成功,删除商品。2.4 扩充点无。2.5 事件流2.5.1 基流(1) 系统提示删除商品。(2) 经销商删除商品,确认(3) 系统刷新购物车。1.1.4.11 清空购物车(empty cart)1 用例图2 用例的事件流描述2.1 简单描述:经销商清空购物车中的商品。2.2 前置条件系统处于查看购物车状态。2.3 后置条件用例成功,系统清空购物车。2.4 扩充点无2.5 事件流2.5.1 基流(1) 系统提示清空购物车。(2) 经销商清空购物车。(3) 系统刷新购物车。1.1.4.12 结帐(check out)1 用例图2

19、用例的事件流描述2.1 简单描述:加入购物车完毕,即可进入结帐状态。2.2 前置条件系统处于查看购物车状态。2.3 后置条件用例成功,便可进入配置经销上的收货地址、送货方式、付款方式的配置页。2.4 扩充点无2.5 事件流2.5.1 基流(1) 系统提示经销商结帐。(2) 经销商确认结帐。(3) 系统检查购物车是否为空(E-1)。(4) 系统进入该经销商的登录界面,经销商输入密码确认。(5) 检索成功(S-1),不成功(S-2)2.5.2 替代流E-1:购物车为空,系统提示错误,并转入至首页。2.5.3 分支流S-1:系统进入配置经销商的收货地址、送货方式、付款方式的页面。S-2:停留在登录界

20、面。1.1.4.13 配置收货地址信息(configure recipient)1 用例图2 用例的事件流描述2.1 简单描述:配置经销商的收货地址信息。2.2 前置条件结帐用例成功。2.3 后置条件用例成功,如果送货方式和付款方式配置好、则可下订单。2.4 扩充点不存在该经销商的收货地址。2.5 事件流2.5.1 基流(1) 系统检索该经销商最近的收货地址,存在(S-1),不存在(S-2)。2.5.2 分支流S-1:(1) 系统显示该收货地址(包含收货人、收货地址、邮编、联系电话)。(2) 用户可修改该收货地址(使用修改收货地址用例)。S-2:(1) 系统提示输入收货地址。(2) 用户输入收

21、货地址确认(E-1)。(3) 把该地址存储到数据库中。(4) 回到配置页2.5.3 替代流E-1:输入数据有一项为空,邮编,联系电话不符合要求,系统提示错误。1.1.4.14 配置送货方式(configure shipment)1 用例图2 用例的事件流描述2.1 简单描述:配置经销商的送货方式。2.2 前置条件结帐用例成功。2.3 后置条件用例成功,如果收货地址和付款方式配置好、则可下订单。2.4 扩充点不存在经销商的送货地址。2.5 事件流2.5.1 基流(1) 系统检索该经销商的送货方式,存在(S-1),不存在(S-2)。2.5.2 分支流S-1:系统显示检索到的送货方式,经销商可修改送

22、货方式。S-2:1) 系统提示输入一送货方式。2) 用户输入送货方式,提交。3) 系统存储该送货方式。4) 回到配置页。1.1.4.15 配置付款方式(configure payment method)1. 用例图2. 用例的事件流描述2.1. 简单描述:经销商配置其付款方式。2.2. 前置条件结帐用例成功。2.3. 后置条件用例成功,如果配置收货地址用例和配置送货方式用例成功,经销商可下订单。2.4. 扩充点该用户的付款方式不存在。2.5. 事件流2.5.1. 基流(1)系统检索该经销商的付款方式,存在(S-1),不存在(S-2)。2.5.2. 替代流2.5.3. 分支流S-1:系统显示检索

23、到的付款方式。S-2:(1)系统提示输入一付款方式。(2) 用户输入一付款方式,提交。(3) 系统把该付款方式存储到数据库中。(4) 回到配置页。1.1.4.16 确认订单(affirm order)1. 用例图2. 用例的事件流描述2.1. 简单描述:确认生成订单。2.2. 前置条件配置收货地址、送货方式、付款方式用例成功。2.3. 后置条件用例成功,把订单数据存储到数据库中。2.4. 扩充点无。2.5. 事件流2.5.1. 基流(1) 系统提示确认订单。(2) 经销商确认订单。(3) 系统生成订单号。(4) 系统生成订单记录并存入数据库中。(5) 系统清空购物车。(6) 系统显示订单情况、

24、收货地址、送货方式、付款方式。1.1.4.17 查看订单(view order)1. 用例图2. 用例的事件流描述2.1. 简单描述:查看该经销商的所有订单或基于组合条件的订单。2.2. 前置条件经销商已登录。2.3. 后置条件用例成功,系统显示该经销商的订单情况。2.4. 扩充点无2.5. 事件流2.5.1. 基流(1) 经销商选择查看所有订单(S-1),或基于组合条件查看订单(S-2)。分支流S-1:(1) 系统检索该经销商的所有订单(2) 系统显示所有订单,当显示的订单超过一页时,系统显示“第一页、上一页、下一页、最后一页”的页浏览提示。S-2:(1) 系统提示用户输入订单号、发生订单的

25、时间段、或订单的状态(已执行、部分执行、未执行)(2) 用户输入所需信息,提交(E-1)。(3) 系统检索满足组合条件的所有订单。(4) 系统显示满足条件的订单。E-1:系统验证输入的合法性,不合法系统提示错误1.1.4.18 修改订单(modify order)1. 用例图2. 用例的事件流描述2.1. 简单描述:经销商修改订单的订单明细,收货地址、送货方式、付款方式。2.2. 前置条件系统处于查看订单状态中。2.3. 后置条件用例成功,把修改的订单存储到数据库中。2.4. 扩充点无。2.5. 事件流2.5.1. 基流(1) 系统提示修改订单。(2) 经销商确认修改(E-1)。(3) 系统提

26、示输入要修改的订单。(4) 经销商输入修改信息,提交(E-2)(5) 系统存储订单情况至数据库中。2.5.2. 替代流E-1:已审核的订单不能修改,否则提示错误。E-2:不合法输入,系统提示错误。1.1.4.19 删除订单(delete order)1. 用例图2. 用例的事件流描述2.1. 简单描述:经销商删除不需要的订单。2.2. 前置条件系统处于查看订单状态中。2.3. 后置条件用例成功,系统删除该订单。2.4. 扩充点无2.5. 事件流2.5.1. 基流(1) 系统提示删除该订单。(2) 经销确认删除该订单(E-1)。(3) 系统从数据库中删除该订单。2.5.2. 替代流E-1:已审核

27、的订单不能删除,否则提示错误。1.1.4.20 查看新品(view latest item)1. 用例图2. 用例的事件流描述2.1. 简单描述:经销商浏览最新出现的产品。2.2. 前置条件经销商已登录。2.3. 后置条件用例成功,系统显示最新的商品。2.4. 扩充点无。2.5. 事件流2.5.1. 基流(1)系统检索最新商品信息,存在(S-1),不存在(S-2)。2.5.2 分支流S-1:系统显示检索的最新商品,当商品超过一页时,系统提供“第一页、上一页、下一页、最后一页”的页浏览提示。S-2:系统显示最新商品不存在。(1)1.1.4.21 查看特价品(view special price

28、item)1 用例图2 用例的事件流描述2.1 简单描述:经销商浏览特价产品。2.2 前置条件经销商已登录。2.3 后置条件用例成功,系统显示特价的商品。2.4 扩充点无。2.5 事件流2.5.1 基流(1)系统检索特价的商品信息,存在(S-1),不存在(S-2)。2.5.3 分支流S-1:系统显示检索的商品,当商品超过一页时,系统提供“第一页、上一页、下一页、最后一页”的页浏览提示。S-2:系统显示特价商品不存在。1.1.4.22 查看积分(view history record and grade)1. 用例图2. 用例的事件流描述2.1. 简单描述:查看该经销商的积分情况。2.2. 前置

29、条件经销商已等录。2.3. 后置条件用例成功,系统显示该经销商的积分情况。2.4. 扩充点无。2.5. 事件流2.5.1. 基流(1) 系统检索该经销商的积分情况。(2) 系统显示积分情况。1.1.4.23 经销商反馈(feedback)2 用例图3 用例的事件流描述3.5 简单描述:经销商提出反馈意见。3.6 前置条件经销商已登录。3.7 后置条件用例成功,把该经销商的反馈信息存储到数据库中。3.8 扩充点无。3.9 事件流3.9.2 基流(1) 系统提示输入反馈信息。(2) 经销商输入反馈信息,提交(E-1)。(3) 系统存储反馈信息到数据库中。3.9.3 替代流E-1:系统验证输入的合法

30、性,不合法,系统提示错误。1.1.4.24 查看反馈答复(view feedback answer)1 用例图2 用例的事件流描述2.1 简单描述:经销商查看反馈答复。2.2 前置条件经销商已登录。2.3 后置条件用例成功,显示该经销商的反馈答复。2.4 扩充点无。2.5 事件流2.5.1 基流(1) 统提示选择查看所有回复和基于时间段的回复。(2)经销商选择查看所有回复(S-1),基于时间段的回复(S-2)。2.5.2 分支流S-1:系统显示所有回复,当回复超过一页时,系统提供“第一页、上一页、下一页、最后一页”的浏览提示。S-2:(1) 用户输入时间段,提交(E-1)。(2) 系统检索该时

31、间段的所有回复,存在(S-3),不存在(S-4)。2.5.3 替代流E-1:系统验证输入的合法性,不合法,系统提示错误。2.5.4 分支流S-3:系统显示所有回复,当回复超过一页时,系统提供“第一页、上一页、下一页、最后一页”的浏览提示。S-4:系统提示该时间段的回复不存在。1.2 静态结构模型1.2.1 包图根据对系统的分析,系统可分成三个包:1.2.1.1 web 包web包中的类1.2.1.2 business login包1.2.1.3 data service包说明:获取对象的属性用get+属性名,无参数,返回值为属性的类型,设置对象的属性用set+属性名,参数列表:a+属性名:属性

32、的类型,无返回值。以下类的get、set操作依照此标准,不再加以说明。1.2.2 类图1.2.2.1 db类类说明ConnectString:配置数据库的连接串Connection connect():配置与后台数据库的连接。1.2.2.2 dealer类类属性说明类方法DealerId:经销商的用户名DealerName:经销商的名称ContractMan:联系人BuildDate:建立日期Grade:经销商的等级(总代理,一级代理,二级代理)Mark:积分Discount:折扣ExpireDate:终止日期IsExpired:是否终止Problem:提问Answer:答案void inse

33、rt()功能:把dealer对象的属性值(dealerId,password,dealerName,address,phone,email,zip,contractMan,buildDate,problem,answer)写入数据库dealer表中。注意事项:调用DB类建立数据库的连接,调用数据库的存储对象把对象的属性值写入后台数据库1 Void update(aDealerId:string):更新指定对象的值(password,dealerName,address,phone,email,zip,contractMan)于数据库中。注意事项:调用DB类建立数据库的连接,调用数据库的存储对象

34、把对象的属性值写入后台数据库2 Void delete(aDealerId:string)功能:从数据库的dealer表中删除指定对象的数据。注意事项:调用DB类建立数据库的连接,调用数据库的存储对象删除数据库对应对象的值。3 String getGradeByName(aDealerId:string)功能:从数据库中检索指定用户的等级4 String getPasswordByName(aDealerId:string):从数据库中检索指定用户的密码1.2.3 password 类1 String encrypt():对明文加密获得密文。2 Bool comparePassword(aPa

35、ssword):比较密码,匹配返回真,否则返回假。1.2.4 Category类1 GetCategory():Recordset:从数据库中检索所有目录21.2.5 Cart类ItemId:商品IDQuantity:商品数量Void addItem(itemId:string):购买商品Void delete(itemId:string):删除商品Void empty():清空购物车Bool isExistItem(itemId:string):购物车中是否存在商品。1.2.6 Item类ImageFile:商品的图象文件。UnitCost:成本价UnitPrice:市场价IsAppendi

36、x:是否配送品IsLastest:是否最新商品IsSpecialPrice:是否特价品1Recordset GetItemByCategory(aCategoryId:string):检索对应目录的商品的itemId,name,imageFile,description,unitPrice3 Recordset getItemByItemId(aItemId:string):检索对应商品itemId的商品的itemId,name,imageFile,description,unitPrice1.2.7 Orders类RecipientId:1.2.8 Payment类1.2.9 Recipient类1.2.10 Shipment类1.2.11 Feedback类1.2.12 BankAccount类

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服