计算机科学与技术专业+超市管理系统分析与设计_第1页
计算机科学与技术专业+超市管理系统分析与设计_第2页
计算机科学与技术专业+超市管理系统分析与设计_第3页
计算机科学与技术专业+超市管理系统分析与设计_第4页
计算机科学与技术专业+超市管理系统分析与设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE1超市管理系统分析与设计——以O2O的线上超市管理系统为例目录TOC\o"1-3"\h\u25834摘要 117446第1章绪论 27786(一)系统开发背景及目标 2327421.系统开发背景 2169092.系统开发的目标 224950(二)系统的主要功能和特点 316013第2章系统规划 328984(一)初步需求分析 361011.系统描述 3179382.系统对象行为分析 431568(二)总体结构 426920(三)可行性研究 4201211.经济可行性 4190172.操作可行性 526719第3章系统分析 523326(一)系统功能分析 5231841.系统参与者分析 5228092.用例图 569293.用例规约 716354(二)概念数据建模和对象关系建模 1726354(三)动态建模 22287141.顺序图 22236752.活动图 2613832第4章系统设计 2727283(一)系统总体设计 2729516(二)系统详细设计 27266901.数据库设计 275490(三)I/O设计 35320931.后台索引页 35317662.商品增加页 3635013.小程序索引页 3623574第5章系统实现 428702(一)系统实现 4219660(二)系统测试 43263661.测试内容 43225292.测试结论 4522494总结 4627270参考文献 47摘要本文主要研究传统零售商店在电商趋势冲击下如何转型的问题,目的在于帮助传统零售商店线上功能的实现。在研究O2O线上超市管理系统情况的基础上,从实际情况出发,采用面向对象方法、B/S结构和python开发语言,基于pycharm开发平台、微信开发者工具、SQL数据库,完成对系统的设计和实现。系统主要分成两大部分,一、前台购物模块:这一模块主要通过微信小程序来实现,顾客通过这一微信小程序可以浏览、查看商品信息,可以将商品添加到购物车,可以完成对商品的线上支付,可以对商品进行评价,可以申请售后服务。二、后台管理模块:这一模块主要通过网页来实现,管理员在这一后台模块可以通过仪表盘查看超市的各种总营业数据、可以通过账号管理修改新增账号信息、可以通过商品管理对商品及商品分类进行增删改查、可以通过会员列表查看会员评价及部分个人信息、可以通过订单管理对订单状态进行修改,达到备货发货的效果、可以通过统计管理查看超市各种详细营业数据。本文介绍了系统从设计到怎么实现的过程,内容有系统背景、系统开发目的及意义、开发工具选择、系统需求分析、系统功能分析、系统总体设计、系统详细设计,并对过程中遇到的问题和解决方法进行总结。关键词:O2O;B/S模式;超市;微信小程序;面向对象PAGE43第1章绪论(一)系统开发背景及目标1.系统开发背景在近几年的时间里,电子商务在中国发展得如火如荼,在一定程度改变人们生活方式、购物习惯的同时,也对线下实体店产生了冲击,甚至引发了人们对实体店存亡的讨论。但我觉得无店铺的电子商务只是在影响着实体店的传统经营模式(好地段+好装修+好进店率+好体验+好成交率),并不会影响实体店的存亡。中团网副总裁刘新成就曾说过:“门店实体店不会消失,网络不可能取代实体店”。其实从古至今,无论时代如何变化,本质意义上的实体店是一直存在的,只是主流的经营模式在不断改变,或许只是你我不曾留意而已,从最开始的流动小摊、流动集市、固定门店、官方旗舰店到现在的体验店,这些从本质意义上来说都是实体店的不同存在形式[1]。O2O即OnlineToOffline,是线上/线下的意思,这个商业概念最早出现于美国,是指将线下的消费需求与互联网进行结合。简单点来说就是通过在线支付的方式,消费者和经营店家在线上已经完成了初步的交易活动,也就是让互联网成为线下商务机会的交易前台。通过这个新的商业模式,实体店可以打破传统经营理念带来的一些弊端,同时也吸收了来自电商的一些经营优势,从而在这个飞速发展的互联网时代走出一条属于实体店的出路。所以鉴于实体店的优势及O2O商业模式发展趋势的研究分析,本课题以O2O的线上超市管理系统设计与实现作为我的毕业设计主题。设计一个线上线下选购、体验感好、在线支付、线下取货等功能的超市管理系统,以小小的力量推动O2O商业模式的发展。2.系统开发的目标设计的系统主要运用于传统的零售型超市,系统在对超市的商品进行信息录入,可以让顾客在线浏览商品,在线进行支付,把原先的传统单线业务流程进行分割,让顾家可以随时随地进行商品浏览,把业务流程进行多线并进,如原先的超市购物要先进入店面,然后再选购商品,然后支付。但有了系统,顾客可以利用移动端在任何时间及任何空间进行商品的选购、支付,然后可以由商家进行打包,顾客到店即取(甚至可以由商家进行配送)。这样可以帮助实体超市突破时间空间的限制。同时把种类繁多的商品以新的方式展示给顾客,方便顾客的挑选,注重顾客购物体验。也在超市、顾客间搭起了一个桥梁,可以让超市收集到顾客脱敏的购物数据,也让顾客知道超市有什么,同时各种促销活动可以线下、线上同时开展,传播人群更广。通过这些业务场景的实现来帮助一些传统销售模式的零售超市实体店完成转型。(二)系统的主要功能和特点系统设计理念基于O2O模式,主要结合传统的零售型超市,来完成在线上下单,线下取货、送货的购物流程。系统本质是一个购物管理系统,所以必须考虑顾客的购物体验,因此系统需要拥有完善的购物流程、良好的操作界面来保证顾客在选购商品时的购物体验。首先后台管理系统为管理员提供验证登陆功能,因为不开放注册功能,账号新增只能通过管理员的账号管理来实现,系统也应向管理员提供基础的商品管理功能、订单管理功能,管理员可以通过商品管理功能对商品进行增删改查,此功能可以实现商家对商品的操作。也可以通过订单管理功能对订单进行查询修改,以实现购物流程中商家备货的业务需求[2]。在微信小程序系统中,系统作为一个购物平台,应能支撑完整的购物业务流程。因此系统应有登陆注册功能、商品展示查询功能、商品下单功能、和核心的在线支付功能,这四个主要功能支撑着系统最核心的购物流程。第2章系统规划(一)初步需求分析1.系统描述多数传统的零售超市只专于线下购物,业务流程是单线性的,顾客只能在特定时间地点先到店进行商品浏览、商品选择、商品选购、商品支付。对顾客购物行为存在时间性,空间性的约束,购物行为只能在线下进行。于是需要一个系统来补充传统零售超市的线上功能,满足人们日渐改变的购物需求。前台系统支持顾客在任何时间地点进行线上商品浏览、商品收藏、在线支付,可以在去往商店的途中已经完成购物,也可以选择在家等待配送,同时在超市与顾客中搭起一道桥梁,方便超市对顾客购物行为作个性化的分析,改善顾客留存率问题。后台管理系统可以协助管理员对超市商品进行管理,也对经营数据进行可视化统计。2.系统对象行为分析系统对象:管理员、顾客。管理员管理员通过登陆名、密码进行验证登陆,通过验证进入后台管理系统索引页,索引页显示可视化超市营业数据,通过功能导航栏可以在不同功能模块间进行切换,点击账号管理可以返回账号数据,然后对账号进行新增,修改,删除,恢复行为,点击商品管理对商品、商品分类进行增删改查行为,点击订单管理对订单进行查询、发货行为,点击统计管理对营业数据进行查询行为。顾客顾客通过微信端有注册登陆的行为,通过微信的授权登陆,进入购物界面进行选购行为,通过查询商品,进入商品详情页,了解商品信息,对满意的商品加入购物车,然后下单购买,去到个人页面查看订单信息及状态,当商品发货时,可以确认收货或退款。(二)总体结构系统主体采用python+Flask搭建,采用面向对象方法的编程思路进行编程,系统遵循MVC(ModelViewController)模式。本次系统前端分成顾客购物界面、后台管理界面。顾客购物界面通过微信小程序实现,后台管理界面通过html+css的布局以及JS的渲染实现。后端采用python+Flask实现。(三)可行性研究1.经济可行性基于O2O的线上超市管理系统使用微信端和网页端两大端口作为购物、管理的操作,对电脑配置及移动端的要求都不高,同时系统开发过程中的大部分工具均是免费使用,可在网上、官网寻得,因此经济上可行[3]。2.操作可行性系统的研发约耗费1人4月的工作量,采用微信小程序开发及Python工具,目前微信小程序开发已经趋于成熟,并具有完整的开发手册。同时网上有较多的优秀电商平台经验可以学习,所以开发该系统不具有不可克服的因素,因此系统开发可行。第3章系统分析(一)系统功能分析1.系统参与者分析通过对基于O2O的线上超市管理系统业务需求分析,分析出系统对象有两个:顾客、管理员。(1)顾客图3.1系统参与者顾客(2)管理者图3.2系统参与者管理者2.用例图为了在表述在系统中参与者的总体需求及系统提供的功能和服务,故用用例图来简单直观地表述参与者与系统进行了哪些交互。顾客在前端系统能体验的功能有登陆注册、用户信息管理、地址管理、订单管理因此确定用例用户注册、用户验证、查看用户信息、修改用户信息、新增地址、修改地址、删除地址、新建订单、查看订单信息、退货。图3.1顾客用例图 管理员在后台管理系统能体验的主要功能有登陆功能、账号管理、用户信息管理、管理员订单管理、商品分类管理、商品管理。因此确定用例验证登陆、密钥加密、新增账号、账号冻结、恢复账号、查看用户信息、修改用户信息、查看订单信息、订单状态修改、订单通知、新增商品分类、修改商品分类、删除商品分类、新增商品、商品信息修改、下架商品[4]。图3.2管理员用例图3.用例规约表3.1顾客注册系统规约用例名称顾客注册系统主参与者顾客层次海平面利益相关者顾客前置条件顾客访问微信小程序端最低保证回滚未完成的事务成功保证顾客成功注册触发器顾客点击微信授权登陆按钮主要的成功情节:1.顾客成功完成注册,并登陆系统扩展:a顾客不点击授权登陆1.a.1停留在授权登陆界面表3.2顾客登陆系统规约用例名称顾客登陆系统主参与者顾客层次海平面利益相关者顾客前置条件顾客访问微信小程序端并已完成注册最低保证回滚未完成的事务成功保证顾客成功登陆系统触发器顾客点击微信授走吧,去逛逛按钮主要的成功情节:1.顾客成功登陆系统扩展:1.a顾客不点击登陆1.a.1停留在小程序登陆界面表3.3查看用户信息规约用例名称查看用户信息主参与者顾客、管理员层次海平面利益相关者顾客、管理员前置条件用户成功登陆系统、查看用户信息最低保证回滚未完成的事务成功保证用户成功查看个人信息触发器用户进入个人中心主要的成功情节:1.用户进入个人信息界面,系统根据登录的用户获取该用户的基本信息并展示到界面上。扩展:1.a用户信息显示不完整1.a.1刷新界面1.a.2重新加载该界面表3.4修改用户信息规约用例名称修改用户信息主参与者顾客、管理员层次海平面利益相关者顾客、管理员前置条件用户成功登陆系统、用户查看个人信息最低保证回滚未完成的事务成功保证用户成功修改个人信息触发器用户进入个人中心主要的成功情节:用户进入个人信息修改界面,系统根据登录的用户获取该用户的基本信息并展示到界面上。用户根据情况编辑个人信息并点击保存。用户个人信息成功保存。扩展:1.a用户信息显示不完整1.a.1刷新界面1.a.2重新加载该界面2.a保存时必要字段未填写2.a.1保存失败,提示用户某字段不能为空3.a数据保存失败3.a.1回滚次用例操作,回到上一个操作页面3.a.2提醒用户数据保存失败,请重试表3.5新增地址规约用例名称新增地址主参与者顾客层次海平面利益相关者顾客前置条件用户成功登陆系统、查看个人地址信息最低保证回滚未完成的事务成功保证顾客成功新增地址触发器顾客点击新增地址按钮主要的成功情节:顾客输入联系人姓名、电话号码、地址顾客确认信息无误点击保存按钮顾客成功增加新地址扩展:a地址新增不成功1.a.1刷新界面1.a.2跳转到上一个操作页面2.a保存时必要字段未填写2.a.1保存失败,提示某些字段不能为空3.a数据保存失败3.a.1回滚次用例操作,回到上一个操作页面3.a.2提醒顾客系统繁忙,请重试表3.6删除地址规约用例名称删除地址主参与者顾客层次海平面利益相关者顾客前置条件用户成功登陆系统、查看个人地址信息最低保证回滚未完成的事务成功保证顾客成功删除地址触发器顾客点击删除地址按钮主要的成功情节:1.地址信息被删除扩展:1.a地址删除失败1.a.1刷新界面2.a.2提醒顾客系统繁忙,请重试表3.7新建订单规约用例名称新建订单主参与者顾客层次海平面利益相关者顾客前置条件用户成功登陆系统、查看商品信息或查看购物车最低保证回滚未完成的事务成功保证顾客成功下单触发器顾客点击提交订单按钮主要的成功情节:1.顾客成功提交订单扩展:1.a订单提交失败1.a.1刷新界面2.a.2提醒顾客系统繁忙,请重试表3.8查看订单信息规约用例名称查看订单信息主参与者顾客、管理员层次海平面利益相关者顾客、管理员前置条件用户成功登陆系统、查看商品信息或查看购物车最低保证回滚未完成的事务成功保证顾客成功下单触发器顾客点击提交订单按钮主要的成功情节:1.顾客成功提交订单扩展:1.a订单提交失败1.a.1刷新界面2.a.2提醒顾客系统繁忙,请重试表3.9取消未支付订单规约用例名称取消未支付订单主参与者顾客层次海平面利益相关者顾客前置条件用户成功登陆系统、查看未支付订单信息最低保证回滚未完成的事务成功保证顾客成功取消订单触发器顾客点击提交订单按钮主要的成功情节:顾客查看未支付订单信息顾客点击确定取消订单按钮顾客成功取消未支付订单扩展:1.取消未支付订单失败1.a.1刷新界面2.a.2提醒顾客系统繁忙,请重试表3.10提交退货申请规约用例名称提交退货申请主参与者顾客层次海平面利益相关者顾客前置条件用户成功登陆系统、查看订单信息最低保证回滚未完成的事务成功保证顾客成功提交退货申请触发器顾客点击确定退货按钮主要的成功情节:顾客查看已支付订单信息2.顾客点击确定退货按钮3.顾客成功提交退货申请扩展:1.a提交退货申请失败1.a.1刷新界面2.a.2提醒顾客系统繁忙,请重试表3.11管理员登陆系统规约用例名称管理员登陆系统主参与者管理员层次海平面利益相关者管理员前置条件管理员访问后台管理登陆端最低保证回滚未完成的事务成功保证管理员成功登陆系统触发器管理员点击登陆按钮主要的成功情节:管理员登陆系统扩展:1.a用户名不存在1.a.1提示管理员用户名或密码错误2.a.2刷新界面2.a密码不正确2.a.1提示管理员用户名或密码错误2.a.2刷新界面1.b用户名或密码为空1.b.1提示管理员请输入正确的用户名或密码1.b.2刷新界面表3.12新增账号规约用例名称新增账号主参与者管理员层次海平面利益相关者管理员前置条件用户成功登陆系统、管理员查看账号列表、管理员具有账号管理权限最低保证回滚未完成的事务成功保证管理员成功新增账号触发器管理员点击新增账号按钮主要的成功情节:管理员点击新增账号填写完整信息点击确定保存账号成功新增扩展:1.a用户名已存在1.a.1提示管理员用户名已存在,请重新输入新的用户名1.b部分必填信息为空1.b.1提示管理员有必填信息为空,请补充1.c数据保存失败1.c.1提醒系统繁忙,请重试1.c.2刷新界面表3.13账号冻结规约用例名称账号冻结主参与者管理员层次海平面利益相关者管理员前置条件用户成功登陆系统、管理员查看账号列表、管理员具有账号管理权限最低保证回滚未完成的事务成功保证管理员成功冻结账号触发器管理员点击确定账号冻结按钮主要的成功情节:管理员点击账号冻结按钮账号冻结成功扩展:1.a账号状态修改失败1.a.1提示管理员系统繁忙,请重试1.a.2刷新界面表3.14新增商品分类规约用例名称新增商品分类主参与者管理员层次海平面利益相关者管理员前置条件用户成功登陆系统、管理员查看商品分类列表最低保证回滚未完成的事务成功保证管理员成功新增商品分类触发器管理员点击新增商品分类按钮主要的成功情节:管理员点击新增商品分类按钮填写正确的商品分类信息,点击保存新增商品分类成功扩展:1.a商品分类信息填写不完整1.a.1提示管理员输入完整信息1.b商品分类信息添加失败1.b.1提示管理员系统繁忙,请重试1.b.2刷新界面表3.15修改商品分类规约用例名称修改商品分类主参与者管理员层次海平面利益相关者管理员前置条件用户成功登陆系统、管理员查看商品分类列表最低保证回滚未完成的事务成功保证管理员成功修改商品分类触发器管理员点击修改商品分类按钮主要的成功情节:管理员点击修改商品分类按钮填写正确的商品分类信息,点击保存修改商品分类成功扩展:1.a修改商品分类信息填写不完整1.a.1提示管理员输入完整信息1.b修改商品分类信息失败1.b.1提示管理员系统繁忙,请重试1.b.2刷新界面表3.16删除商品分类规约用例名称删除商品分类主参与者管理员层次海平面利益相关者管理员前置条件用户成功登陆系统、管理员查看商品分类列表最低保证回滚未完成的事务成功保证管理员成功删除商品分类触发器管理员点击删除商品分类按钮主要的成功情节:管理员点击删除商品分类按钮删除商品分类成功扩展:1.a删除商品分类信息失败1.a.1提示管理员系统繁忙,请重试1.a.2刷新界面表3.17新增商品规约用例名称新增商品主参与者管理员层次海平面利益相关者管理员前置条件用户成功登陆系统、管理员查看商品列表最低保证回滚未完成的事务成功保证管理员成功新增商品触发器管理员点击新增商品按钮主要的成功情节:管理员点击新增商品按钮填写正确的商品分类信息,点击保存新增商品成功扩展:1.a商品信息填写不完整1.a.1提示管理员输入完整信息1.b商品信息添加失败1.b.1提示管理员系统繁忙,请重试1.b.2刷新界面表3.18商品信息修改规约用例名称商品信息修改主参与者管理员层次海平面利益相关者管理员前置条件用户成功登陆系统、管理员查看商品列表最低保证回滚未完成的事务成功保证管理员成功修改商品信息触发器管理员点击修改商品信息按钮主要的成功情节:管理员点击修改商品信息按钮填写正确的商品信息,点击保存修改商品信息成功扩展:1.a修改商品信息填写不完整1.a.1提示管理员输入完整信息1.b修改商品信息失败1.b.1提示管理员系统繁忙,请重试1.b.2刷新界面表3.19删除商品分类规约用例名称删除商品分类主参与者管理员层次海平面利益相关者管理员前置条件用户成功登陆系统、管理员查看商品分类列表最低保证回滚未完成的事务成功保证管理员成功删除商品分类触发器管理员点击删除商品分类按钮主要的成功情节:管理员点击删除商品分类按钮删除商品分类成功扩展:1.a删除商品分类信息失败1.a.1提示管理员系统繁忙,请重试1.a.2刷新界面(二)概念数据建模和对象关系建模(1)订单管理对订单的业务场景进行分析,顾客对商品进行选购后进行下单,此时需要一个新建一个在线订单来对顾客进行关联,而一次只能新建一个订单,但订单中的商品是不固定的,因此不能直接用在线订单对商品进行关联,这样一个在线订单只能关联一个商品,这个时候需要一个中间表来进行关联,解决在线订单表的拥有多个商品信息的需求,创建一个订单详情表,订单详情表通过商品id,在线订单表id进行关联,一个订单详情表只能有一个商品,但一张在线订单表可以有多个订单详情表,这样利用这四张表,就可以满足订单管理中订单业务需求[5]。顾客表member的属性:(id,nickname,mobile,sex,avatar,salt,reg_ip,status,updated_time,created_time),会员表主要用于系统对不同顾客的识别。表3.20在线订单表是核心数据表字段名称数据类型主键/外键空/非空默认值说明idint主键非空订单IDorder_snvarchar(255)非空订单号member_idint外键非空会员IDtotal_pricedecimal(10,2)非空订单总价yun_pricedecimal(10,2)非空运费pay_pricedecimal(10,2)非空实付金额pay_snvarchar(255)非空支付单号prepay_idvarchar(255)非空预支付交易会话标识notevarchar(255)非空订单备注statusint非空订单状态express_statusint非空物流状态express_address_idint非空物流地址IDexpress_infovarchar(255)非空物流信息comment_statusint非空评价状态pay_timedatetime非空支付时间updated_timedatetime非空订单更新时间created_timedatetime非空订单创建时间商品详情表pay_order_item的属性:pay_order_item(id,goods_id,pay_order_id,member_id,quantity,price,note,status,updated_time,created_time)其中id用主键,goods_id、pay_orde_id为外键,gooods_id用于对商品表的绑定,从而知道商品信息。pay_orde_id用于在线订单表的绑定,从而确定这个商品详情表属于那个在线订单表。在线订单表与商品详情表是一对多的关系,商品详情表与商品表是一对一的关系。商品表goods的属性:goods(id,cat_id,name,price,main_image,summary,stock,tags,status,month_count,total_count,view_count,updated_time,created_time),其中id为主键,商品表用于商品信息的存放,然后通过商品详情表的绑定来确定商品信息。这样通过四张表的绑定,系统就能得知是这张订单属于那一个顾客,而这张订单又有什么商品,总金额多少、收货地址在那[6]。图3.3订单管理类图(2)顾客收货地址管理顾客收货地址管理主要通过顾客表、顾客收货地址表实现。表3.21顾客表member的属性属性名数据类型说明idint会员表主键nicknamevarchar顾客昵称mobilevarchar顾客手机号码sexvarchar顾客性别avatarvarchar顾客头像saltvarchar密码加盐reg_ipvarchar注册IP地址statusvarchar会员账号状态,如:已激活、未激活、已冻结等updated_timetimestamp最近一次更新时间created_timetimestamp创建时间顾客收货地址表member_address的属性member_address(id,member_id,nickname,mobile,province_id,province_str,city_id,city_str,area_id,area_str,address,status,is_default,updated_time,created_time),其中id为主键,member_id为外键,用于对顾客表的绑定,来确定这张收货地址表属于那个顾客。而顾客表与顾客收货地址表是一对多的关系[7]。这样通过这两张表就可以实现一个顾客有多个地址,并且进行与之对应的管理功能。图3.4顾客收货地址管理类图(3)购物车管理购物车管理主要通过顾客表、购物车表、商品表实现。顾客表member的属性:(id,nickname,mobile,sex,avatar,salt,reg_ip,status,updated_time,created_time),顾客表主要用于系统对不同顾客的识别。购物车表member_cart的属性:member_cart(id,member_id,goods_id,quantity,updated_time,created_time),其中id为主键,member_id、goods_id为外键,member_id用于顾客表的绑定,goods_id用于商品表的绑定。购物车表与顾客是一对一的关系,购物车与商品表是一对多的关系。商品表goods的属性:goods(id,cat_id,name,price,main_image,summary,stock,tags,status,month_count,total_count,view_count,updated_time,created_time),其中id为主键,商品表用于商品信息的存放,然后通过购物车的绑定来确定商品信息。通过这三张表的绑定,就可以实现顾客对购物的管理,可以知道购物车表属于那个顾客,顾客的购物车里有那些商品[7]。图3.5购物车管理类图(三)动态建模1.顺序图顾客购物顺序图图3.6顾客购物时序图新增商品时序图图3.7新增商品时序图小程序授权登陆时序图图3.8小程序授权登陆时序图

2.流程图图3.9订单活动图第4章系统设计(一)系统总体设计图4.1系统总体功能图(二)系统详细设计1.数据库设计本系统数据库采用的是关系型数据库模式。数据字典如下:管理员表(user)nametypedefaultcommentuidbigint(20)unsigned(非空)管理员IDnicknamevarchar(100)用户名mobilevarchar(20)手机号码emailvarchar(100)邮箱sextinyint(1)0性别1男2女0没填写avatarvarchar(64)头像keylogin_namevarchar(20)登录用户名login_pwdvarchar(32)密码login_saltvarchar(32)加密随机秘钥powerint(1)11:普通,2:超级statustinyint(4)1账号状态1有效0无效updated_timetimestamp0000-00-0000:00:00最后一次更新时间created_timetimestamp0000-00-0000:00:00插入时间成员表(member)nametypedefaultcommentidint(11)unsigned(非空)nicknamevarchar(100)顾客名mobilevarchar(11)顾客手机号码sextinyint(1)0性别1男2女0没填写avatarvarchar(200)顾客头像saltvarchar(32)随机saltreg_ipvarchar(100)注册ipstatustinyint(1)1状态1:有效0:无效updated_timetimestamp0000-00-0000:00:00最后一次更新时间created_timetimestamp0000-00-0000:00:00插入时间商品表(goods)nametypedefaultcommentidint(11)unsigned(非空)cat_idint(11)0分类idnamevarchar(100)商品名称pricedecimal(10,2)0售卖金额main_imagevarchar(100)主图summaryvarchar(10000)描述stockint(11)0库存量tagsvarchar(200)tag关键字,以","连接statustinyint(1)1状态1:有效0:无效total_countint(11)0总销量comment_countint(11)0总评论量updated_timetimestamp0000-00-0000:00:00最后更新时间created_timetimestamp0000-00-0000:00:00最后插入时间商品分类表(goods_cat)nametypedefaultcommentidint(11)unsigned(非空)namevarchar(50)类别名称weighttinyint(4)1权重statustinyint(1)1状态1:有效0:无效updated_timetimestamp0000-00-0000:00:00最后一次更新时间created_timetimestamp0000-00-0000:00:00插入时间商品销售情况表(goods_sale_change_log)nametypedefaultcommentidint(11)unsigned(非空)goods_idint(11)0商品idquantityint(11)0售卖数量pricedecimal(10,2)0售卖金额member_idint(11)0顾客idcreated_timetimestamp0000-00-0000:00:00售卖时间数据库存变更表(goods_stock_change_log)nametypedefaultcommentidint(11)unsigned(非空)goods_idint(11)(非空)商品idunitint(11)0变更多少total_stockint(11)0变更之后总量notevarchar(100)备注字段created_timedatetime0000-00-0000:00:00插入时间顾客收货地址表(member_address)nametypedefaultcommentidint(11)unsigned(非空)member_idint(11)0顾客idnicknamevarchar(20)收货人姓名mobilevarchar(11)收货人手机号码province_idint(11)0省idprovince_strvarchar(50)省名称city_idint(11)0城市idcity_strvarchar(50)市名称area_idint(11)0区域idarea_strvarchar(50)区域名称addressvarchar(100)详细地址statustinyint(1)1状态1:有效0:无效is_defaulttinyint(1)0默认地址updated_timetimestamp0000-00-0000:00:00最后一次更新时间created_timetimestamp0000-00-0000:00:00插入时间购物车表(member_cart)nametypedefaultcommentidint(11)unsigned(非空)member_idbigint(20)0顾客idgoods_idint(11)0商品idquantityint(11)0数量updated_timetimestamp0000-00-0000:00:00最后一次更新时间created_timetimestamp0000-00-0000:00:00插入时间在线购买订单表(pay_order)nametypedefaultcommentidint(11)unsignedorder_snvarchar(40)随机订单号member_idbigint(11)0会员idtotal_pricedecimal(10,2)0订单应付金额yun_pricedecimal(10,2)0运费金额pay_pricedecimal(10,2)0订单实付金额pay_snvarchar(128)第三方流水号prepay_idvarchar(128)第三方预付idnotetext备注信息statustinyint(4)01:支付完成,0:无效,-1:申请退款,-2:拒绝售后,-9:同意售后,-8:待支付express_statustinyint(4)0快递状态,-8待支付-7已付款待发货1:确认收货0:失败express_address_idint(11)0快递地址idexpress_infovarchar(1000)快递信息comment_statustinyint(1)0评论状态pay_timetimestamp0000-00-0000:00:00付款到账时间updated_timetimestamp0000-00-0000:00:00最近一次更新时间created_timetimestamp0000-00-0000:00:00插入时间订单详情表(pay_order_item)nametypedefaultcommentidint(11)unsignedpay_order_idint(11)0订单idmember_idbigint(11)0顾客idquantityint(11)1购买数量默认1份pricedecimal(10,2)0商品总价格:售价*数量goods_idint(11)0商品表idnotetext备注信息statustinyint(1)1状态:1:成功0失败updated_timetimestamp0000-00-0000:00:00最近一次更新时间created_timetimestamp0000-00-0000:00:00插入时间商品售卖日统计表(stat_daily_goods)nametypedefaultcommentidint(11)unsigneddatedategoods_idint(11)商品idtotal_countint(11)售卖总数量total_pay_moneydecimal(10,2)总售卖金额updated_timetimestamp0000-00-0000:00:00最后一次更新时间created_timetimestamp0000-00-0000:00:00插入时间顾客日统计表(stat_daily_membe)nametypedefaultcommentidint(11)unsigneddatedate日期member_idint(11)0顾客idtotal_pay_moneydecimal(10,2)0当日付款总金额updated_timetimestamp0000-00-0000:00:00最后一次更新时间created_timetimestamp0000-00-0000:00:00插入时间全站日统计表(stat_daily_site)nametypedefaultcommentidint(11)unsigneddatedate日期total_pay_moneydecimal(10,2)当日应收总金额total_member_countint(11)顾客总数total_new_member_countint(11)当日新增顾客数total_order_countint(11)当日订单数total_shared_countint(11)updated_timetimestamp0000-00-0000:00:00最后一次更新时间created_timetimestamp0000-00-0000:00:00插入时间第三方登录绑定关系表(oauth_member_bind)nametypedefaultcommentidint(11)unsigned(非空)member_idvarchar(20)0顾客idclient_typevarchar(20)0客户端来源类型。qq,weibo,weixintypetinyint(3)0类型type1:wechatopenidvarchar(80)第三方idunionidvarchar(100)extratext额外字段updated_timetimestamp0000-00-0000:00:00最后更新时间created_timetimestamp0000-00-0000:00:00插入时间用户访问记录表(app_access_log)nametypedefaultcommentidint(11)unsigned(非空)uidvarchar(20)0uidreferer_urltinyint(3)当前访问的refertarget_urlvarchar(80)访问的urlquery_paramsvarchar(100)get和post参数uatext访问uaiptimestamp0000-00-0000:00:00访问ipnotetimestamp0000-00-0000:00:00json格式备注字段created_time图象表(images)nametypedefaultcommentidint(11)unsigned(非空)file_keyvarchar(60)0文件名created_timetinyint(3)插入时间顾客评价表(member_comments)nametypedefaultcommentidint(11)unsigned(非空)member_idint(11)0会员idgoods_idsvarchar(200)商品idspay_order_idint(11)订单idscoretinyint(4)评分contentvarchar(200)评论内容created_timetimestamp插入时间售后表(member_service)nametypedefaultcommentidint(11)unsigned(非空)member_idint(11)0会员idgoods_idsvarchar(200)商品idstypeint(11)1:退换货,2:退款退货,3退款不退货contenttinyint(4)售后原因created_timetimestamp插入时间(三)I/O设计1.后台索引页考虑到系统有着众多的功能,所以需要一个固定的功能索引栏来存放功能,然后功能索引栏还要有一个与之对应的详细功能栏,一个个人中心按键用于个人管理,一个用于查询搜索的输入框,一个数据列表用于展现数据,每次数据上应有着与之对应的相关操作键。页面元素:功能栏、详细功能栏、个人中心按键、查询框、数据列表、数据操作按键。图4.2索引页设计图2.商品增加页在索引中用到的功能栏,详细功能栏,个人中心按键布局不变,增加的页面元素主要是信息的输入框。设计图:图4.3增加商品页设计图3.小程序索引页页面元素:推荐商品、搜索框、商品分类栏、商品、功能栏。页面布局中因为手机屏幕是竖长方形,所以布局应为从上至下,商品为主要的信息所以应当放在页面的中间,并且采用2*2的布局不断延伸,推荐商品则应单独放在显眼的最上方,并且要有足够的位置显示,功能栏虽然重要,但顾客的注意力不应放在功能栏上,所以放在最下方[8]。图4.4小程序索引页设计图

效果图图4.5后台管理系统登陆界面图4.6管理后台主界面图4.7商品管理界面图4.8新增商品界面(85%缩放)图4.9小程序授权登陆界面图4.10小程序首页界面第5章系统实现(一)系统实现本次系统的实现得利于有阶段性的规划及大量便利工具的使用。在系统分析阶段,功能分析、画图、UML建模等通过WPS的流程图功能实现。在数据库设计阶段用mysql可视化工具SQLyog进行数据表的创建修改,从而完成实现数据库的设计。在页面设计阶段使用pycharm和微信开发者工具进行页面编写,不断地优化用户界面,从而完成页面开发设计。在系统编码阶段,也是通过pycharm和微信开发者工具来进行代码编写、调试、修改BUG等,从而完成系统代码的编写[9]。管理员后台登陆/注册功能实现登陆功能接口在页面输入的数据有效性正确后,接口接收两个参数,login_name和login_pwd,数据以POST方式传递,接口通过resp={'code':200,'msg':'登录成功','data':{}}来判断数据的正确性,先根据login_name参数判断数据库是否存在此账号,然后通过UserService()接口login_pwd参数与账号login_salt进行加密结合生成login_salt,与该账号下的login_salt作正确性比较,最后进行账号状态status的判断在上面的所有判断中当有一个判断不正确则resp['code']=-1然后提前进行返回,通过所有判断条件时code依然是200,返回resp和账号id,提示登陆成功然后进行页面跳转,进入到后台管理系统首页中,完成登陆功能。个人信息编辑接口先判断request.method是否为GET,是则将部分个人信息返回至个人信息编辑页的输入框,不是则定义resp={'code':200,'msg':'操作成功~','data':{}},然后获取nickname和email参数,然后分别对两参数的有效性进行判断,通过有效性判断则进行数据修改,返回resp,提示操作成功~,刷新界面,完成个人信息修改功能。修改密码接口接收原密码(old_password)、新密码(new_password)两个参数,进行数据有效性及原密码正确性判断,不通过其中的一个判断则提前返回,通过全判断,进行数据库操作,返回resp,提示操作成功,刷新界面,完成修改密码功能。退出接口删除AUTH_COOKIE_NAME,然后进行登陆界面的跳转,完成退出功能。商品管理功能实现商品索引接口、商品分类索引接口先获取关键字(mix_kw)、状态(status),商品分类(status)三个参数,然后从商品表中获取符合这三个参数的商品数据,再通过分布接口iPagination(params)把商品数据进行展示,商品列表、商品分类列表功能完成。商品新增及修改、商品分类新增及修改接口先对request.method进行GET判断,是则返回商品信息至商品信息修改页,否则定义resp={'code':200,'msg':'操作成功~~','data':{}},然后获取输入框信息,对信息的有效性进行判断,有误则code更改为-1并提前返回,无误则进行数据库操作,返回resp,提示操作成功,商品新增及修改、商品分类及修改功能完成。商品信息、商品分类信息接口获取商品id(商品分类id),定义reback_url=UrlManager.buildUrl("/goods/index")判断id有效性,商品(商品分类)是否存在,不通过判断则返回reback_url,跳转回索引页,通过商品id获得商品购买记录,商品库存变更记录,及其他商品信息,返回到前端页面展现,商品信息、商品分类信息功能完成[10]。商品、商品分类删除恢复接口先定义resp={'code':200,'msg':'操作成功~~','data':{}},获取id、cat参数,进行数据有效性判断,有误则对code、msg进行修改,提前返回并提示相关信息,无误则判断act的值,值为remove则将status更改为0,为recover则将status更改为1,然后进行数据库操作,返回resp,刷新页面,商品、商品分类删除功能完成。(二)系统测试1.测试内容前台购物模块:用户注册、用户验证、查看用户信息、修改用户信息、新增地址、修改地址、删除地址、新建订单、查看订

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论