点击空白处退出提示
作品详情
前端:html+js+css VUE框架
后端:python flask框架
数据库:MySQL云数据库+Navicat数据库管理
大数据分析:hadoop(用户聚类)
智慧图书交易平台的实现采取flask+vue框架。使用flask实现业务对象管理,pymysql作为数据对象的持久化引擎。其中,服务器使用flask架构,负责网页前端与数据库之间的数据传输;数据库采用Mysql数据库,用于存储用户基本信息数据以及图书信息、订单等数据;网页前端使用Vue等框架进行渲染和显示。
3.3 功能模块设计及实现
3.3.1 用户功能模块
3.3.1.1 个人信息模块
3.3.1.1.1 用户登录注册
在注册阶段,用户填写注册的用户名和密码,向后端发送post请求,后端将注册信息存入数据库,并将注册新用户的角色设置为普通用户,再返回给用户注册是否成功的提示。用户名已被注册,则返回错误信息给用户等待用户重新提交。
用户在登录界面需输入注册的用户名和密码并提交。页面通过post方法发送请求,调用方法将输入信息与数据库中已注册用户进行对比验证,若存在该用户,则返回登录成功信息,跳转至平台主界面,若不存在该用户,则提示登录失败,可进行新用户注册。
前端对于用户是否登录的判断:用户登录后将vuex仓库中的全局变量isLogin修改为true,并将user_id存入仓库全局变量user_id中
3.3.1.1.2 用户信息修改
已登录用户进入个人中心的账户信息,前端向后端发起post请求,服务器根据user_id在user_info表中查询用户的详细信息并返回到前端,在前端显示。用户修改信息后点击修改信息按钮向后端发送post请求,后端get前端发来新的信息,将user_info表中的信息更新。
3.3.1.1.3 用户修改密码
用户点击修改密码按钮,输入原密码和新密码,并向后端发起post请求,后端从根据user_id比对password是否与输入的原密码相同,若相同,则更新user_info表的password字段,改为新密码;若不同,向前端返回错误信息。
3.3.1.2 购书模块
3.3.1.2.1 根据分类查看图书
用户点击首页分类列表某一分类,向后端发起post请求,将分类的id传给后端,后端获取cate_id,在user_info表中根据cate_id查询此分类下所有图书的信息列表返回给前端,前端循环显示图书信息列表。
3.3.1.2.2 查看图书详情
用户在首页、分类详情、推荐榜处点击书名进入图书详情页,前端向后端发送post请求,后端获取前端发送的图书id,根据图书id在book_info表中查询图书详情,返回到前端,前端接收后在图书详情页显示。
3.3.1.2.3 为图书添加评论
用户在图书详情页切换至评论区域,输入评论内容并提交,向后端发送post请求,后端接收请求将评论内容,user_id,时间等信息存入数据库,并返回成功信息给前端。
3.3.1.2.4 加入购物车
在分类详情和图书详情页面,点击添加到购物车按钮,前端向后端发送post请求,将需要加入购物车的书籍信息发送到后端,后端将user_id和book_id存入cart表中,并向前端返回成功信息。
3.3.1.2.5 购物车列表获取、修改
用户进入购物车页面,后端根据user_id从cart表中获取购物车内物品详情并在购物车页面显示。用户可点击增减数量按钮改变购物车中商品的值或者点击删除按钮将书本从购物车中删除。前端向后端发送post请求,后端接收请求后修改cart表中的对应记录,并向前端返回成功信息。
3.3.1.2.6 生成订单
用户在购物车页面点击结算按钮,向后端发送post请求,后端将前端选中的商品从cart表中删除,并在orders表和order_detail表中插入新订单以及订单中包含的商品信息,添加成功后向前端返回成功信息。
3.3.1.2.7 提交订单
订单创建成功后跳转到订单详情页面,用户在订单详情页面填写收货人的信息并选择使用的快递,点击提交按钮,前端通过post请求将邮寄信息发送到后端,后端接收后将邮寄信息存入order_shipping表,并向前端发送成功信息,前端跳转到支付中心。
3.3.1.2.8 支付订单(支付宝API)
支付中心点击跳转到支付宝支付,调用Alipay接口,将订单号,订单信息和金额发送至alipay接口,alipay返回订单状态,若支付成功,则将数据库中订单状态改为待评价。支付页面实时获取数据库中订单的状态,若订单状态改为待评价,则前端跳转到支付完成页面。
3.3.1.2.9 查看订单
用户进入个人主页可查看自己的所有订单,点击查看详情可进入订单详情页面查看订单详情,包括邮寄信息、商品信息等。前端向后端发送查看订单请求,后端从数据库中根据userid查找出所有订单的信息,并将订单信息列表返回给前端,前端接收后在页面表格中显示。
3.3.1.2.10 评分
用户查看订单,若订单状态为待评价,则点击评价按钮可为订单中的书籍进行评分,滑动星星列表,前端产生0-10的评分,并将评分信息传给后端。后端接收评分信息后将评分信息存入数据库bx_book_ratings表中。
3.3.1.3 店铺功能模块
3.3.1.3.1 修改店铺信息
云店铺管理员登陆自己的账号后,可以在个人中心修改店铺信息,比如店铺名,联系电话等。修改完成后点击确定按钮,即可保存。
3.3.1.3.2 图书上架
云店铺管理员在登陆自己账号后,可以在个人中心选择发布图书,即上架图书,发布时需注明图书名称、作者、图书图片等信息,然后点击发布即可上架图书。
3.3.1.3.3 图书编辑、下架
云店铺管理员在登录自己账号后,可以在个人中心查看本店铺上架的图书,店铺图书分为正在售卖和已下架两种情况,云店铺管理员可以在该界面选择编辑图书和下架图书,编辑图书可以修改该图书商品的名称、价格等。
3.3.1.3.4 店铺订单处理
云店铺管理员在登陆自己账号后,可以在个人中心处理店铺订单,店铺订单内可查看订单状态,若为待付款,则不可查看订单,若为未发货,则编辑物流单号后给用户发货,发货完成后店铺订单处理完成,等待用户评价
3.3.1.4 信息管理功能模块
3.3.1.4.1 用户信息管理
被分配了用户管理权限的角色才可以对用户信息进行管理,用户信息管理主要分为查看用户、编辑用户、添加用户、删除用户四块,查看用户将通过列表的形式查看,超级管理员可根据列表对用户进行一系列操作;违规用户或注销用户可通过删除按钮删除用户。
3.3.1.4.2 店铺信息管理
超级管理员以及被分配了店铺信息管理权限的角色可以对店铺信息进行处理,店铺信息管理主要分为查看店铺列表,编辑店铺,添加店铺,删除店铺四项功能。
该角色可以对店铺进行相关的增删改查操作
3.3.1.4.3 角色信息管理
只有被分配了可以进行角色管理的角色才能对此进行操作,该类角色可以未用户分配角色,删除角色等。
3.3.1.4.4 权限配置及前端鉴权
角色创建或角色编辑时可为角色分配权限,权限等级分配如下:
角色与权限的分配存入role_privilege表中,一级权限为目录权限,二级权限为页面权限,三级权限细化到按钮。用户登录时根据用户角色将权限对应的序号数组传到前端,前端加载页面时,根据一级权限加载不同的个人中心目录,根据二级权限限制查看不同的页面,根据三级权限配置不同按钮的disable属性。
3.3.2 数据处理模块*
3.3.2.1 样本数据处理
数据库中的数据由样本数据和爬虫数据两部分组成,爬虫数据由于是自主爬取,数据内容较为完整。最终在存入数据库前,针对爬虫数据缺失的图书id和店铺id等信息以及样本数据缺失的店铺id等信息进行了批量填补,完成了数据的整合,使其每一项内容能够对应数据库中的有效字段。
3.3.2.2 图书推荐(用户聚类+个性化推荐)
1.整体用户聚类数据:
(1)图书的类别共有9个父类,因此设置每本书的信息向量为一个9位的数组向量,除了对应该图书类别的位置为1,其余位置都为0。
向量表示为,
(2)用户对某本书做出评价时,该用户在该项类别上的得分增加,在遍历该用户所有的评价信息后,将该用户向量的每一项除以该用户的总评价量,得到该用户的平均得分向量。
用户平均得分向量的计算公式为,
(3)通过每个用户对每本书的评价信息,得出每个用户的用户向量。使用kmeans算法将用户向量进行聚类,得出相似用户组,以及每个相似用户组的质心向量。
(4)根据该质心向量上每一项的值,得出该质心向量最偏向于的三类书
(5)在这三类书的每一类中根据用户对该类别书的评分取出评分最高的十本,作为该类别用户的推荐图书
2.单个用户分析数据:
(1)当用户在页面上点击某本书进入图书详情页进行浏览时,则认为用户对该书所属的类别感兴趣,则从该类别中选出评分较高的图书
(2)记录用户最近的五次点击进入详情页的数据,将这五本书的类别向量按就近时间递减进行加权拟合,最终得到根据用户浏览数据生成的用户向量
(3)根据该向量所显示的得分前三的图书类别,从图书库中根据图书的评分选取对应类别的高分图书。得分第一的选择三本,得分第二的选择两本,得分第三的选择一本,以此类推,最终得到六本图书
(4)使用这六本图书替换原十本推荐图书中的后六本,并使其排序在原分类图书的前面,优先给用户显示
3.3.2.3 图书畅销榜
通过图书的订单信息提取出购买量前二十的图书id,再根据图书id从图书信息库中提取出图书的名称,将图书的排名、id、名称等信息存入图书畅销榜的数据表中,方便在前端调用显示。
3.3.2.4 词云生成
获取图书畅销榜的数据表中的排名和图书名称信息,将排名作为词频,使用python的wordcloud库绘制词云图片,并将图片转为base64形式存入数据库
3.3.2.5 获取购书转化率、平均访问时长、用户转化率等(基于点击流数据)
通过对日志流数据的清洗和去重,得到了不同ip的用户在网站上进行的点击操作的点击流数据,根据对点击流数据的分析,我们计算了购书转化率、平均访问时长、用户转化率等数据,并根据这些数据生成了相应的统计图,显示在前端。
1. 购书转化率:
首先计算出用户从点击加入购物车到最终点击支付的完整流程中所有的点击数,记为最小点击数。将每次用户从点击加入购物车到最终点击支付的点击数进行统计,将最小点击数除以统计数据,即算出用户的购书转化率。
在此基础上每天夜里24点时计算一次,即为当天的总购书转化率。每日中每小时的整时刻时计算一次,即为每小时的购书转化率。
2. 平均访问时长:
计算出某IP的用户在同一时段内从第一次点击到最后一次点击之间的时间差,即为该用户的访问时长,将所有用户的访问时长相加,并求平均值,即为用户的平均访问时长
3. 用户转化率:
计算某个IP用户第一次点击网页后是否执行了登录操作,将该天内所有打开网页的用户中执行登录操作的用户与访问网页的用户总数做比值,得出用户的转化率
在智慧图书网站里进行图书推荐,可以提高整个网站图书销售的有效转化率,增加图书销量。通过用户已经浏览、收藏、购买的记录,更精准的理解用户需求,对用户进行聚类、打标签,推荐用户感兴趣的图书,帮助用户快速找到需要的图书。图书推荐为常规推荐,商家选择一些固定图书放在推荐位,或者基于图书之间的关联性,进行相关的书籍推荐。常规推荐的图书不会因为用户不同产生差异,主要是运营配置的活动或固定图书(图书精选)。除了在固定推荐位选定某些图书进行配置,例如选取10本固定图书放在签到页进行推荐。还有一些固定规则的动态配置图书,例如图中图书销量排行榜、图书收藏排行榜、某类图书的销量排行榜(例如图书会有许多排行榜),这类根据浏览、收藏、销售数据做的图书统计在常规推荐时会经常用到,对用户的消费决策影响也比较大。
用户进入搜索页面时,输入框下方会显示“热搜推荐”与“历史浏览记录”两个分区,分别显示预置高点击关键词与用户的历史搜索信息。
接下来用户可以在输入框中键入搜索关键词,并请求搜索,系统对用户的搜索行为进行分析,猜想用户最想搜索的是什么最后将最符合用户需要的结果展现在用户面前。系统将快速响应用户的搜索需求,根据该字或词,推荐与该字或词相关联的关键词,当输入拼音时,将其转换成相应的汉字词组去图书库检索相关的图书信息,同时,当输入错别字时,系统自动纠正错后将正确关键词的搜索结果提示,并将结果展示给用户。
在用户进行搜索功能时,系统也将保存搜索记录,将其加历史搜索记录。
用户个人信息的变更,是会员制线上应用必不可少的功能。用户要在这里实现包括昵称、头像、介绍以及偏好设置等内容的个人信息变更,以更加完善画像。我产品基于用户需求,在个人信息中设置用户昵称、用户头像、用户签名、联系方式、收件地址几项可由用户自主变更的个人信息。其中,前三项作为用户的个性化信息,后两项作为进行平台活动的必要的功能性信息。
在用户成功登录平台后,可以通过点击个人中心跳转至个人信息模块。界面由上而下分别排列个性化用户信息(用户头像、用户昵称与用户签名)、收件信息(联系方式、收件地址)、我的收藏、客服中心、意见反馈及设置等。其中,可以由用户进行自主修改的信息部分为个性化用户信息与收件信息。通过点击相应模块进入编辑页面,完成修改后点击保存按钮,后台将记录用户的修改行为并改动数据库,用修改后的新信息替代原有的旧信息,并将其反馈给用户,完成了一次用户个人信息的修改。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论