基于前后端开发的动物之家网站(毕设/课设/竞赛/实训/大作业/项目)

1、引言

1.2

当今,流浪动物横生,一是人类的弃养,二是流浪动物之间的繁殖。它们数量众多,并且在这种现代化城市中难以生存。许多动物都病衰残疾,不但可怜,而且影响环境。而各地的动物保护组织的作用也并不明显,因为它们给予的帮助是有限的。

还有就是,每个饲主最最最担心的问题,莫过于自家宠物突如其来的疾病或走失,当宠物生病时,网上查找的方法鱼龙混杂,让人更加无从下手;想问人却求之无门,身旁没有与之相关的朋友;想上医院却不知附近哪里有宠物医院。。。

比起生病,宠物们毫无征兆地走失才是令人痛苦,饲主和宠物们的感情堪比亲情友情,而宠物的走失,犹如一把钝刀在你心头上反复割锯。

以上种种问题,该如何解决呢? 

1.3、定义

本产品是基于物联网的一站式宠物管理平台。

2、需求分析

2.1、功能介绍

2.1.1、“宠物去哪”

该功能结合一款定位项圈,当宠物莫名走失时,只需打开网页,立刻查看宠物位置,重新找回它。

该功能还能记录宠物每天的行走路线,看看你家宠物是不爱出门的死宅,还是到处游荡的浪子。

项圈上装有震动板,你只需稍微训练一下宠物,当线圈发出震动时,就是提示它该回家吃饭了。

2.1.2带我回家

许多饲主都有这样困惑,家里的宠物太会繁衍了,每胎都是好几只,想送人却没有门路,自己养却有心无力;或家里发生变迁,宠物无法继续饲养时,这些宠物何去何从?

而对于城市来说,流浪动物是一项困扰,由于无人照管,他们极易病死饿死于街头,极大影响城市市容;

因此,必须有一个平台,能够将这些被遗弃的,待遗弃的,无力饲养的动物的信息,集中并发布到这上面来,以此来寻找那些想要养宠物的爱心人士。这样,就能更好地解决城市的流浪动物问题,给待遗弃宠物提供了一条新的去处。

2.1.3、“问我问我”

对于每个铲屎官而已,宠物生病时令人焦灼,网上查的方法良莠不齐,让人更加无从下手。

因此,“动物之家”提供了一个权威的“健康资料”数据库,里面的每一条资料都经过专家的审核,而不是以讹传讹的假数据。让铲屎官们“有资料可查“。

除此之外,我们还提供了“在线医生”功能,当资料查不出解决方法时,几十位专家们在线帮助你,他们将会在接收到求助信息后,第一时间给你解决方案,做到“有专家可问”。

如果以上都无法解决宠物的病情时,或病情十分严重时,最好的方案是立即送往医院。“附近医院”功能,就能快速规划好最近最好的宠物医院路线,不让病情耽误一刻,做到“有医院可治”。

2.1.4、“宠物圈”

以上功能都只是“需时才用”,即用户只有在想要用的时候才会打开该网站,因此需要有一个功能来增加用户流量。

“宠物圈”即能满足该需求,他是一个以动物为主题的论坛,用户可以在上面发布各种动物趣图,或晒出自家宠物,让浏览者忍不住地往下刷;并且还能在宠物圈上交好友,约附近的人一起出来遛猫遛狗,晒宠物,其乐融融。

2.1.5、“萌宠商城”

除了以上功能,我们还需要一个功能来维持我们项目的资金链,“萌宠商城”则负责这一关键点。它除了卖我们自主开发的“宠物定位项圈”,还有其它各式各样的宠物产品,比如食物,玩具,宠物衣服,宠物生活用品等。以此来提供我们的收入。

2.2可行性分析

2.2.1、技术可行性分

  1. 技术风险及规避方法:

产品使用springboot+bootstrap+thymeleaf开发动态响应式网站,数据存储、安全管理、权限验证、任务列表等技术等使用springboot框架的。

为了进行开发,小组成员将进行为期两周的springboot和thymeleaf技术学习,提高技术储备,同时在网上寻找一份bootstrap前端模板套用。

暂时无法解决的问题:集成到硬件上的gps定位功能

解决方法:基本功能完成后,购买硬件接口集成到本产品中

  1. 产品环境依赖要求

适配IE6以上,火狐、谷歌、360等绝大部分浏览器

匹配不同屏幕大小的要求

设配win98/win2002/win7/win10

2.2.2、经济可行性分析 

本软件产品是小组成员自主开发,成本预算=硬件成本+人工开发成本+调研成本+后期维护成本+服务器

类别

预算

用途

硬件成本

300

购买GPS定位器

人工开发成本

劳动成本

开发整个软件系统

调研成本

300

购买宣传单

后期维护成本

劳动成本

系统维护

服务器

180

3个阿里云学生服务器半年

总体成本=780元+劳动成本

收益:

广告费+跟第三方合作费用+产品销售费用+产品功能的服务费

隐性价值:良好的口碑和庞大数量的用户群体

2.2.3、社会可行性

  1. 道德方面:

迎合当前背景下人们对宠物的喜爱,为宠物寻找一个温暖的怀抱

  1. 法律方面:

本平台上的宠物是免费领养的,没有把动物商业化,宗旨是为了救助了流浪动物以及改善城市环境。是正能量的平台

  1. 社会影响力:

大批的用户参入到我们的平台上,会形成一股能量,让爱护动物的风气在社会上盛行

  1. 自有资源:

平台上庞大的用户群体

2.2.4、业务可行性分析

本软件产品设计信息发布、安全管理、权限认证、gps定位、产品购买5大模块的功能。

就目前技术来说,经过前期的技术储备之后,除了产品购买和GPS功能暂未实现后,其他功能皆可以实现。

2.3、数据流图

2.3.1、顶层数据流图

2.3.20层数据流图:

2.3.31层数据流图

2.4、IPO表

元素编号

名称

类型

说明

IPO1.1

数据管理

处理

数据管理操作

IPO1.1.1

用户管理

处理

管理员可以用户管理

IPO1.1.2

商品管理

处理

管理员可以商品管理

IPO1.1.3

健康资料管理

处理

管理员可以健康资料管理

IPO1.1.4

宠物圈管理

处理

管理员可以宠物管理

IPO1.1.5

领养动物管理

处理

管理员可以领养动物管理

IPO2.1

健康资料管理

处理

医生可以进行健康资料管理

IPO2.1.1

个人健康资料列表显示

处理

医生可以查看个人商品列表

IPO2.1.2

健康资料发布

处理

医生可以发布健康资料

IPO2.1.3

健康资料删除

处理

医生可以删除资料

IPO2.1.4

健康资料编辑

处理

医生可以编辑资料

IPO2.2

健康资料查询

处理

用户可以健康资料查询

IPO2.3

健康资料收藏

处理

用户可以进行健康资料收藏

IPO3.1

商品管理

处理

商家可以对商品进行管理

IPO3.1.1

个人商品列表显示

处理

商家可以查看个人商品列表

IPO3.1.2

商品发布

处理

商家可以发布商品

IPO3.1.3

商品下架

处理

商家可以下架商品   

IPO3.1.4

商品删除

处理

商家可以删除商品

IPO3.1.5

商品编辑

处理

商家可以编辑商品

IPO3.2

商品购买

处理

用户可以购买商品

IPO3.2.1

判断库存

处理

系统判断商品库存

IPO3.2.2

计算价格

处理

系统计算商品价格

IPO3.2.3

确定购买

处理

用户确认购买商品

IPO3.3

商品评论

处理

用户可以对商品进行评论

IPO4.1

领养动物管理

处理

用户可以领养动物管理

IPO4.1.1

个人发布列表显示

处理

用户可以查看自己发布的领养动物列表

IPO4.1.2

领养动物发布

处理

用户可以发布领养动物信息

IPO4.1.3

领养动物删除

处理

用户可以删除掉领养动物信息

IPO4.1.4

领养动物编辑

处理

用户可以编辑发布的领养动物信息

IPO4.2

申请领养动物

处理

用户可以申请领养动物

IPO5.1

个人宠物圈管理处理

处理

用户可以进行个人宠物圈管理

IPO5.1.1

查询个人宠物圈

处理

用户可以查看个人宠物犬

IPO5.1.2

修改某条宠物圈

处理

用户可以修改个人宠物圈

IPO5.1.3

删除宠物圈

处理

用户可以删除个人宠物圈

IPO5.1.4

发表宠物圈

处理

用户可以发表个人宠物圈

IPO5.2

好友宠物圈事务处理

处理

用户可以对好友宠物圈进行实物处理

IPO5.2.1

查询好友宠物圈

处理

用户可以查询好友宠物圈

IPO5.2.2.

评论宠物圈

处理

用户可以评论好友宠物圈的信息

IPO5.2.3

收藏宠物圈

处理

用户可以收藏宠物圈

IPO5.2.4

点赞宠物圈

处理

用户可以点赞宠物圈

IPO6.1

动物位置定位

处理

用户可以对动物进行位置定位

IPO6.1.1

动物位置定位

处理

Gps在动图上对动物进行定位

IPO6.1.2

显示到达路线

处理

系统在地图上显示路线

IPO7.1

注册事务处理

处理

游客可以通过注册成为用a户

IPO7.1.1

注册信息验证

处理

系统对游客注册信息验证

IPO7.1.2

激活码发送到邮箱

处理

系统把激活码发送到游客邮箱

IPO7.1.3

游客输入激活码

处理

游客输入激活码

IPO7.1.4

激活码验证

处理

系统进行激活码验证

IPO7.2

登录事务处理

处理

用户可以登录访问本网站

IPO7.2.1

登录信息验证

处理

系统进行登录信息验证

IPO8.1

收藏列表处理

处理

用户可以对个人收藏列表进行管理

IPO8.2

个人信息处理

处理

用户可以进行个人信息处理

IPO8.3

购物车处理

处理

用户可以对个人购物车进行管理

IPO8.4

订单处理

处理

用户可以对个人订单进行处理

IPO9.1

发起审核申请

处理

用户可以发起成为医生或者商家的审核请求

IPO9.2

审核事务处理

处理

管理员对用户的审核请求进行审核

IPO9.3

用户权限赋予

处理

管理员对用户赋予权限

IPO10.1

聊天信息处理

处理

用户可以聊天

IPO10.1.1

接收并封装信息

处理

系统接受并封装信息

IPO10.1.2

判断聊天目标是好友还是群聊

处理

判断聊天目标是好友还是群聊

IPO10.1.3

判断用户是否在线并发送聊天信息

处理

判断用户是否在线并发送聊天信息

IPO10.1.4

向在线的群员发送聊天信息

处理

向在线的群员发送聊天信息

IPO11.1

好友分组管理处理

处理

用户可以管理好友分组

IPO13.1

添加群组事务处理

处理

用户可以申请添加群组

IPO13.1.1

接收加群信息

处理

系统加收加群信息

IPO13.1.2

将加群信息发送给群组管理员审核

处理

用户将加群信息发送给群组管理员审核

IPO13.1.3

根据加群信息处理结果判断是否添加群员信息

处理

系统根据加群信息处理结果判断是否添加群员信息

IPO14.1

退群事务处理

处理

用户可以申请退群

IPO15.1

建群事务处理

处理

用户可以申请建群

IPO15.1.1

接收建群申请数据

处理

系统接收用户的申请加群信息

IPO15.1.2

判断建群是否合法

处理

系统判断用户的建群是否合法

IPO15.1.3

存储群组头像

处理

系统存储群组头像

IPO16.1

更新群组分组事务处理

处理

系统自动更新群组信息

IPO17.1

添加好友事务处理

处理

用户可以添加好友

IPO17.1.1

接收好友申请消息

处理

系统接收用户的申请添加好友信息

IPO17.1.2

将好友申请消息发送给目标审核

处理

系统将好友申请消息发送给目标审核

IPO17.1.3

根据好友申请消息处理结果判断是否添加好友信息

处理

系统根据好友申请消息处理结果判断是否添加好友信息

IPO18.1

删除好友事务处理

处理

用户可以删除好友

IPO19.1

解散群组处理

处理

用户可以解散群组

IPO19.1.1

接收解散群组信息

处理

系统接收群组用户发送的解散好友信息

IPO19.1.2

获取并删除群组成员

处理

系统获取并删除群组成员

IPO19.1.3

向所有群组成员发送群组解散信息

处理

系统向所有群组成员发送群组解散信息

IPO19.1.4

删除群组

处理

系统删除群组

DS1

用户信息

数据存储

保存用户个人信息

DS2

商品信息

数据存储

保存商品信息

DS3

健康资料信息

数据存储

保存医生发布的资料信息

DS4

宠物圈信息

数据存储

用户发布的宠物圈信息

DS5

领养动物信息

数据存储

保存用户发布的营养动物信息

DS6

订单信息

数据存储

保存用户订单

DS7

消息盒子信息

数据存储

保存未读消息

DS8

Gps用户地址信息

数据存储

保存用户地址信息

DS9

动物地址信息

数据存储

保存动物地址

DS10

激活码信息

数据存储

保存激活码信息

DS11

健康资料收藏信息

数据存储

保存用户收藏的健康资料信息

DS12

商品评论信息

数据存储

保存商品的评论信息

DS13

领养动物申请信息

数据存储

保存领养动物申请信息

DS14

购物车信息

数据存储

保存购物车信息

DS15

审核信息

数据存储

保存审核信息

DS16

商家信息

数据存储

保存商家信息

DS17

医生信息

数据存储

保存医生信息

DS18

聊天信息

数据存储

保存聊天信息信息

DS19

好友分组信息

数据存储

保存好友分组信息

DS20

群组成员信息

数据存储

保存群组成员信息

DS21

群组信息

数据存储

保存群组信息

DS22

好友信息

数据存储

保存好友信息

2.5、实体关系图

用户实体描述

医生实体描述

商家实体描述

用户权限表:

商品实体描述

订单实体描述

订单商品列表

商品评论实体描述

宠物圈实体描述

宠物圈评论表

资料实体描述

领养信息实体描述

领养动物申请实体描述

审核实体描述

好友聊天记录表

好友分组表

群组表

群员信息表

消息盒子表

用户登陆记录实体描述

宠物圈收藏表

资料收藏表

商品购物车表

领养动物信息收藏表

激活码表:

2.6、数据字典

用户数据字典

DS1 af_user  

名称

类型

长度

域值

初值

备注

u_id

int

NOT NULL

用户id

u_name

varchar

50

NOT NULL

用户名

u_account

int

20

NOT NULL

用户账号

u_password

varchar

50

NOT NULL

密码

u_phone

varchar

15

手机号

u_email

varchar

30

NOT NULL

邮箱

u_sex

int

2

性别 0男性/1女性/2保密

u_register_time

datetime

自动生成

注册日期

u_introduce

text

自我介绍

u_headimage

varchar

100

有默认值

头像图片路径

u_state

int

0

状态  0不可用(激活邮件后变成正常),1正常 ,2注销

u_login_status

varchar

20

online

登陆状态offline/hide/online

好友聊天记录数据字典

DS2  im_chatlog

名称

类型

长度

域值

初值

备注

ic_id

int

NOT NULL

唯一标识

ic_from_id

int

NOT NULL

发送者id

ic_to_id

int

NOT NULL

接受者id

ic_group_id

int

群组id 若为好友聊天则为空

ic_content

text

NOT NULL

消息内容

ic_sendTime

datetime

自动生成

发送时间

ic_type

varchar

10

NOT NULL

群聊(group)还是好友(friend)

ic_status

int

0

状态:好友(接收者收到1/未收到0), 群组(发出者2/接收者收到1/未收到0)

健康资料数据字典

DS3  health_data

名称

类型

长度

域值

初值

备注

hd_id

int

NOT NULL

资料id,唯一标识

hd_title

varchar

50

NOT NULL

资料标题

hd_titleimg

varchar

100

有默认值

资料标题图路径

hd_describe

text

NOT NULL

资料描述

hd_user

int

NOT NULL

发布者id

hd_publish_time

datetime

自动生成

发布时间

hd_state

int

1

状态 0不可见 1可见 2删除

商品信息数据字典

DS4  goods

名称

类型

长度

域值

初值

备注

goods_id

int

NOT NULL

商品id

goods_name

varchar

50

NOT NULL

商品名称

goods_price

double

NOT NULL

商品价格

goods_introduce

text

商品介绍

goods_img

varchar

100

有默认值

图片路径

goods_sales

int

0

销量

goods_publish_time

datetime

自动生成

发布时间

goods_state

int

1

状态 0下架,1上架,2删除

goods_sends_address

varchar

255

NOT NULL

发货地址

goods_inventory

int

0

库存

goods_label

varchar

50

商品标签

goods_user

int

NOT NULL

商家id

good_describe_small

varchar

255

NOT NULL

商品简介

领养信息数据字典

DS5 adopt_animal

名称

类型

长度

域值

初值

备注

adoa_id

int

NOT NULL

领养信息id

adoa_adress

varchar

255

NOT NULL

地址

adoa_kind

varchar

50

NOT NULL

种类

adoa_label

varchar

50

标签

adoa_title

varchar

50

NOT NULL

标题

adoa_title_img

varchar

100

NOT NULL

标题图路径

adoa_describe

text

信息

adoa_user

int

NOT NULL

发布者id

adoa_state

int

默认0

0未被领养,1被领养,2删除

adoa_publish_time

datetime

自动生成

发布时间

领养动物申请表

DS6 apply_animal

名称

类型

长度

域值

初值

备注

appa_id

int

NOT NULL

申请id,唯一标识

appa_user_id

int

NOT NULL

申请者id

appa_adopt_animal

int

NOT NULL

领养动物信息id

appa_state

int

0

状态 0未审核,1通过,2未通过

appa_dispose_time

datetime

处理时间

appa_apply_time

datetime

自动生成

申请时间

订单数据字典

DS7 orders

名称

类型

长度

域值

初值

备注

order_id

int

NOT NULL

订单id

order_user

int

NOT NULL

买家id

order_receive_adress

varchar

255

NOT NULL

收货地址

order_time

datetime

自动生成

下单时间

order_state

int

状态0未支付,1已支付,2删除

宠物圈信息数据字典

DS8  pet_circle

名称

类型

长度

域值

初值

备注

pc_id

int

NOT NULL

宠物圈id

pc_title

varchar

50

NOT NULL

宠物圈标题

pc_title_img

varchar

100

NOT NULL

宠物圈标题图片

pc_describe

text

NOT NULL

宠物圈信息描述

pc_describe_small

varchar

255

NOT NULL

宠物圈信息简介

pc_publish_time

datetime

自动生成

发布时间

pc_user

int

NOT NULL

发布者id

pc_like_num

int

0

点赞数

pc_collect_num

int

0

收藏数

pc_state

int

1

状态 0不可见 1可见 2删除

宠物圈评论表数据字典

DS9 pet_circle_comment

名称

类型

长度

域值

初值

备注

pcom_id

int

NOT NULL

宠物圈评论id

pcom_pet_circle

int

NOT NULL

宠物圈id

pcom_user

int

NOT NULL

评论者id

pcom_reply_comment_id

int

回复评论id(为空为初始评论)

pcom_state

int

1

评论状态 1可见 2删除

pcom_builds

int

0

评论楼数

pcom_message

varchar

255

NOT NULL

评论内容

pcom_time

datetime

自动生成

评论时间

商品评论表

DS10 goods_comment

名称

类型

长度

域值

初值

备注

gcom_id

int

NOT NULL

商品评论id

gcom_goods

int

NOT NULL

商品id

gcom_user

int

NOT NULL

评论者id

gcom_reply_comment_id

int

回复的评论id(为空为初始评论)

gcom_state

int

1

评论状态 1可见 2删除

gcom_message

varchar

255

NOT NULL

评论内容

gcom_time

datetime

自动生成

评论时间

gcom_level

double

1~5

0

商品评级 0未评级,1~5等级

商家

DS11 business

名称

类型

长度

域值

初值

备注

business_id

int

NOT NULL

商家表唯一标识

business_user

int

NOT NULL

商家用户id

business_license_img

varchar

100

NOT NULL

营业执照路径

医生数据字典

DS12 doctor

名称

类型

长度

域值

初值

备注

doctor_id

int

NOT NULL

医生表唯一标识

doctor_user

int

NOT NULL

医生用户id

doctor_label

varchar

100

NOT NULL

标签

doctor_describe

varchar

255

NOT NULL

医生简介

doctor_img

varchar

100

NOT NULL

医生照片

doctor_license_img

varchar

100

NOT NULL

执照路径

订单商品列表

DS13  order_goods_list

名称

类型

长度

域值

初值

备注

oglist_id

int

NOT NULL

订单商品列表唯一标识

oglist_order

int

NOT NULL

订单id

oglist_goods

int

NOT NULL

商品id

oglist_buynumber

int

NOT NULL

购买数量

审核表数据字典

DS14   application

名称

类型

长度

域值

初值

备注

app_id

int

NOT NULL

审核id

app_user_id

int

NOT NULL

发起人id

app_type

varchar

10

NOT NULL

审核类型医生,商家

app_apply_time

datetime

自动生成

申请时间

app_manager_id

int

审核者id

app_check_time

datetime

审核时间

app_result

int

0

审核结果 0未审核1通过 2未通过

群组信息数据字典

DS15  im_group

名称

类型

长度

域值

初值

备注

ig_id

int

NOT NULL

群号 唯一标识

ig_groupname

varchar

20

NOT NULL

群名字

ig_avatar

varchar

100

NOT NULL

群头像

ig_notice

varchar

255

群公告

ig_creater_id

int

NOT NULL

群主id/用户id

ig_approval

int

0

是否开启验证(0不开启/1开启)

好友信息数据字典

DS16  im_friend   

名称

类型

长度

域值

初值

备注

if_id

int

NOT NULL

唯一标识

if_ifg_id

int

NOT NULL

用户分组id

if_user_id

int

NOT NULL

用户id,也就是这个用户是属于这个分组的

if_nickName

varchar

20

好友的昵称

好友分组数据字典

DS17 im_friend_group  

名称

类型

长度

域值

初值

备注

ifg_id

int

NOT NULL

唯一标识

ifg_user_id

int

NOT NULL

所属用户id

ifg_name

varchar

20

NOT NULL

分组名称

群员信息数据字典

DS18   im_group_user

名称

类型

长度

域值

初值

备注

igu_id

int

NOT NULL

唯一标识

igu_group_id

int

NOT NULL

群组id

igu_user_id

int

NOT NULL

用户id

igu_nickName

varchar

20

该用户的群昵称

消息盒子数据字典

DS19  im_msgbox

名称

类型

长度

域值

初值

备注

im_id

int

NOT NULL

消息盒子id 唯一标识

im_user_id

int

NOT NULL

目标用户id

im_from_id

int

来源用户id 为空则为系统消息

im_from_group

int

来源用户选择的分组

im_type

int

NOT NULL

消息类型 

im_content

varchar

255

消息描述

im_remark

varchar

255

附言

im_href

varchar

255

未知

im_read

int

0

是否已读 0未读1同意2拒绝

im_time

datetime

自动生成

消息添加时间

用户权限表

DS20   user_authority

名称

类型

长度

域值

初值

备注

ua_id

int

NOT NULL

用户权限表id,唯一标识

ua_user_id

int

NOT NULL

用户id

ua_authority

varchar

20

NOT NULL

授权名称 用户/医生/商家/管理员

用户登陆记录数据字典

DS21   user_login_info

名称

类型

长度

域值

初值

备注

uli_id

int

NOT NULL

唯一标识

uli_user_id

int

NOT NULL

用户id

uli_login_time

datetime

自动生成

登陆时间

uli_login_ip

varchar

25

NOT NULL

登陆ip

uli_login_address

varchar

50

NOT NULL

登陆地点

宠物圈收藏表

DS22  pet_circle_collect

名称

类型

长度

域值

初值

备注

pcc_id

int

NOT NULL

宠物圈收藏id唯一标识

pcc_user_id

int

NOT NULL

收藏者id

pcc_pc_id

int

NOT NULL

宠物圈id

pcc_time

datetime

自动生成

收藏时间

领养动物信息收藏表

DS23  adopt_animal_collect

名称

类型

长度

域值

初值

备注

aac_id

int

NOT NULL

领养动物信息收藏id唯一标识

aac_user_id

int

NOT NULL

收藏者id

aac_adoa_id

int

NOT NULL

领养动物信息的id

aac_time

datetime

自动生成

收藏时间

购物车表

DS24  cart

名称

类型

长度

域值

初值

备注

c_id

int

NOT NULL

购物车id唯一标识

c_user_id

int

NOT NULL

用户id

c_goods_id

int

NOT NULL

商品id

c_num

int

NOT NULL

商品数量

资料收藏表

DS25  health_data_collect

名称

类型

长度

域值

初值

备注

hdc_id

int

NOT NULL

资料收藏id唯一标识

hdc_data_id

int

NOT NULL

资料id

hdc_user_id

int

NOT NULL

收藏者id

hdc_time

datetime

自动生成

收藏时间

激活码表

DS26  user_active_code

名称

类型

长度

域值

初值

备注

uac_id

int

NOT NULL

激活id,唯一标识

uac_user_id

int

NOT NULL

用户id

uac_active_code

varchar

40

NOT NULL

激活码

3、详细设计

3.1、词汇表

名称

含义

B/S结构

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件

SpringBoot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。

Thymeleaf

Web 和独立环境的现代服务器端 Java 模板引擎

bootstrap

Bootstrap是Twitter推出的一个用于前端开发的开源工具包

Spring Security

Spring Security致力于为Java应用提供认证和授权管理。它是一个强大的,高度自定义的认证和访问控制框架。

MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。

MySQL

MySQL 是最流行的关系型数据库管理系统之一,

Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Tomcat

Tomcat服务器是一个免费的开放源代码的Web应用服务器。

Druid

Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池。

Git

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

gitHub

gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub

GitKraken

GitKraken是一款基于Electron构建的Git图形化工具,可以在Windows、Mac和Linux桌面系统上运行。

Douker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

WebSocket

WebSocket是一种在单个TCP连接上进行全双工通信的协议

Layui

Layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架

Ajax

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。

jQuery

jQuery是一个快速、简洁的JavaScript框架

UEditor

UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点。

高德地图API

IPO图

IPO是指结构化设计中变换型结构的输入、加工、输出。IPO图是对每个模块进行详细设计的工具,它是输入加工输出图的简称,

E-R图

E-R也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型

3.2、硬件组成.

参数名

参数值

云服务器平台

阿里云

公网IP地址

119.23.201.230

CPU核心数

1核

内存

2GB

硬盘储存空间

40GB

每月流量限制

1000GB

网络带宽

5Mbps

操作系统

CentOS7.3

参数名

参数值

云服务器平台

阿里云

公网IP地址

39.108.171.10

CPU核心数

1核

内存

2GB

硬盘储存空间

40GB

每月流量限制

1000GB

网络带宽

5Mbps

操作系统

CentOS7.3

参数名

参数值

云服务器平台

阿里云

公网IP地址

120.79.151.63

CPU核心数

1核

内存

2GB

硬盘储存空间

40GB

每月流量限制

1000GB

网络带宽

10Mbps

操作系统

CentOS7.3

参数名

参数值

云服务器平台

腾讯云

公网IP地址

203.195.224.186

CPU核心数

1核

内存

2GB

硬盘储存空间

50GB

每月流量限制

无限制

网络带宽

1Mbps

操作系统

CentOS7.3

3.3、软件架构与开发环境

3.3.1、软件架构

3.3.2、开发环境

IDE: IntelliJ IDEA 2018.2.5 x64

JDK版本: 1.8

系统环境: win10

数据库: MySQL

3.4、系统接口表

AdoptAnimalService

void

insertAdoptAnimal

(AdoptAnimal adoptAnimal);

添加一条领养动物信息

AdoptAnimalExample transformAdoptAnimalToAdoptAnimalExample

(AdoptAnimal adoptAnimal);

将对象转换为查询对象

List<AdoptAnimal>

selectAdoptAnimalList

(AdoptAnimalExample adoptAnimalExample,

Integer currentPage, Integer pageSize);

根据查询对象查询(不包含大类型)

List<AdoptAnimal>

 selectAdoptAnimalListWithBLOBs

(AdoptAnimalExample adoptAnimalExample,

Integer currentPage,

Integer pageSize);

根据查询对象查询(包含大类型)

int

countAdoptAnimal

(AdoptAnimalExample adoptAnimalExample);

根据查询对象统计

LayuiAdoptAnimal

renderAdoptAnimal

(AdoptAnimal adoptAnimal);

渲染一条AdoptAnimal对象

List<LayuiAdoptAnimal>

renderAdoptAnimals

(List<AdoptAnimal> adoptAnimals);

渲染一组AdoptAnimal对象

AdoptAnimal

getAdoptAnimalByAdoaId

(int adoaId);

根据id获取AdoptAnimal对象

boolean

delAdoptAnimalByAdoptId

(int adoaId);

根据id逻辑删除数据

boolean

updataAdoptAnimalByAdoptId

(AdoptAnimal adoptAnimal);

根据id修改数据

DoctorlService

List<Doctor>

selectDoctorList

(Integer currentPage, Integer pageSize);

直接查询所有数据

LayuiDoctor

 renderDoctor(Doctor doctor);

渲染一条Doctor对象

List<LayuiDoctor>

 renderDoctors

(List<Doctor> doctors);

渲染一组Doctor对象

Doctor

 getDoctorByAdoaId

(int adoaId);

根据id获取Doctor对象

FileService

FileData

uploadFile

(MultipartFile multipartFile);

上传文件

HealthDataService

void

insertHealthData

(HealthData healthData);

添加一条健康资料信息

HealthDataExample

transformHealthDataToHealthDataExample

(HealthData healthData);

将对象转换为查询对象

List<HealthData>

selectHealthDataList

(HealthDataExample healthDataExample,

Integer currentPage,

Integer pageSize);

根据查询对象查询(不包含大类型)

List<HealthData>

 selectHealthDataListWithBLOBs

(HealthDataExample healthDataExample,

Integer currentPage,

Integer pageSize);

根据查询对象查询(包含大类型)

int

 countHealthData

(HealthDataExample healthDataExample);

根据查询对象统计

LayuiHealthData

 renderHealthData

(HealthData healthData);

渲染一条HealthData对象

List<LayuiHealthData>

 renderHealthDatas

(List<HealthData> healthDatas);

渲染一组HealthData对象

HealthData

 getHealthDataByAdoaId

(int hdId);

根据id获取HealthData对象

boolean

 delHealthDataByAdoptId

(int hdId);

根据id逻辑删除数据

boolean

 updataHealthDataByAdoptId

(HealthData healthData);

根据id修改数据

LayimChatlogService

void

 addChatLog

(String message, int status);

插入聊天记录

void

addChatLog

(ImChatlog imChatlog);

插入聊天记录

ImChatlog

 transformMessageToImChatlog

(String message, int status);

组装聊天信息

LayimChatMessageResult

 getChatMessage

(String message);

组装消息结果信息

List<LayimChatMessageResult>

 getUnreadMessage

(int userId);

获取所有未读信息

void

 updateUnreadMessageStatus

(int fromId, int toId, String type, int status);

更新好友未读信息为已读

List<ImChatlog>

 getFriendHistoryChatlogs

(int userId, int id);

获取历史消息

List<ImChatlog>

 getGroupHistoryChatlogs

(int id);

获取历史消息

List<LayimChatlogResult>

 renderHistoryChatlogs

(List<ImChatlog> imChatlogs);

渲染历史消息

LayimGroupService

ImGroupExample

 transformImGroupToImGroupExample

(ImGroup imGroup);

将ImGroup对象转换为ImGroupExample对象

List<ImGroup>

 selectImGroups

(ImGroup imGroup, Integer currentPage, Integer pageSize);

根据模板执行查询

List<ImGroup>

 selectImGroups

(ImGroupExample imGroupExample,

 Integer currentPage,

Integer pageSize);

根据模板执行查询

int

 countImGroups

(ImGroup imGroup);

根据模板执行统计

int

 countImGroups

(ImGroupExample imGroupExample);

根据模板执行统计

ImGroupUserExample

transformImGroupUserToImGroupUserExample

(ImGroupUser imGroupUser);

将ImGroupUser对象转换为ImGroupUserExample对象

List<ImGroupUser>

 selectImGroupUsers

(ImGroupUser imGroupUser,

Integer currentPage,

Integer pageSize);

根据模板执行查询

List<ImGroupUser>

 selectImGroupUsers

(ImGroupUserExample imGroupUserExample,

 Integer currentPage,

 Integer pageSize);

根据模板执行查询

int

 countImGroupUsers

(ImGroupUser imGroupUser);

根据模板执行统计

int

countImGroupUsers

(ImGroupUserExample imGroupUserExample);

根据模板执行统计

List<Integer>

 getGroupUserId

(int groupId);

通过群组id查找群的群员的用户id列表

List<AfUser>

 getGroupUsers

(int groupId);

通过群组id查找群的群员的用户列表

List<ImGroup>

 selectImGroupsByUId

(int userId);

通过userId查找所有所属的群组列表

List<ImGroup>

 selectMyGroups(int userId);

通过userId查找所有属于该用户的群组

ImGroup

 getImGroupById

(int groupId);

通过群组id获取群组对象

void

 groupAddUser

(int userId, int groupId);

用户加入群组

Result

 addGroup

(ImGroup imGroup);

插入群组

Result

 updateGroup

(ImGroup imGroup);

编辑群组信息

Result

 deleteGroup

(int groupId);

解散群组

Result

 exitGroup

(int userId, int groupId);

用户退出群组

LayimMessageBoxService

int

 addMessageBox

(ImMsgbox imMsgbox);

添加一条消息盒子信息

@return 返回的是状态值 1-添加 2-更新

void

 addSystemMessageBox

(int userId, int type, String content);

添加一条系统消息信息

void

 updateMessageBox

(ImMsgbox imMsgbox);

更新消息盒子信息

ImMsgboxExample

 transformImMsgboxToImMsgboxExample

(ImMsgbox imMsgbox);

将消息盒子对象转换为查询模板对象

List<ImMsgbox>

 selectImMsgboxs

(ImMsgboxExample imMsgboxExample,

Integer currentPage,

Integer pageSize);

根据查询模板对象进行查询

Integer

 countImMsgboxs

(ImMsgboxExample imMsgboxExample);

根据查询模板对象进行统计

void

 updateImMsgboxImRead(int imMsgboxId, int status);

更新消息盒子状态

void

 updateAddFriendMsgboxRead

(int userId, int fromId, int readStatus);

更新添加好友消息盒子状态

void

 updateAllSystemMessageRead

(int userId);

更新用户所有系统消息状态为已读

ImMsgbox

 getImMsgboxById

(int imMsgBoxId);

根据消息盒子Id获取消息盒子消息

LayimService

LayimInitResult

 getLayImInitResult

(Integer userId);

获取LayIM初始化信息

LayimChatMessageResult

 getUserState

(int userId);

获取用户登录状态

SuperService

AfUserExample

 transfromAfUserToAfUserExample

(AfUser afUser);

将用户对象转换为查询模板对象

List<AfUser>

 selectAfUsers

(AfUser afUser, Integer currentPage, Integer pageSize);

根据查询模板对象查询对象

List<AfUser>

 selectAfUsers

(AfUserExample afUserExample,

Integer currentPage,

Integer pageSize);

根据查询模板对象查询对象

int countAfUsers(AfUser afUser);

根据查询模板对象统计条数

int countAfUsers(AfUserExample afUserExample);

根据查询模板对象统计条数

AfUser getUserByUId(int userId);

根据userId获取用户

AfUser getUserByUPhone(String uPhone);

通过手机号查找用户

AfUser getUserByUPhone(String uPhone, boolean includeDel);

通过手机号查找用户

AfUser getUserByUAccount(String account);

通过账号查找用户

AfUser getUserByUAccount(String account, boolean includeDel);

通过账号查找用户

AfUser getUserByUEmail(String email);

通过邮箱查找用户

AfUser getUserByUEmail(String email, boolean includeDel);

通过邮箱查找用户

void updateAfUser(AfUser afUser);

更新用户信息

Result updateUserStatus(Integer userId, String status);

修改用户登录状态

Result updateUserStatus(String uPhone, String status);

修改用户登录状态

void updateUserSign(int userId, String newSign);

修改用户签名

void insertAfUser(AfUser afUser);

插入用户

void deleteUserEntirely(int userId);

完全删除用户

UserService

Result userRegister(AfUser afUser);

用户注册

Result userActive(String activeCode);

用户激活

Result insertUserLoginInfo(int userId, String IP, String address);

插入用户登录信息

UserActiveCode getUserActiveCodeByUserId(int userId);

通过用户id查找激活码

UserActiveCode

 getUserActiveCodeByActiveCode

(String activeCode);

通过激活码查找激活码对象

3.5、编程规范及要求

(1)所有锁定范围的数据必须使用enum来控制如status等,enum中的所有的枚举值名都是全大写的

(2)所有全局通用值必须使用常量类来控制

(3)书写代码时应该注意缩进与空格, if与小括号 左括号前 右括号与下一个字母 双斜杠注释后面都需要插入一个空格

if (num == 1) {

    // .....

} else if (num == 2) {

    // ....

}

(4)过长的行需要换行编码,并保持与起始行一个缩进的地方继续编码

(5)多打注释

(6)在同一个方法中不相关的代码块要用一个空行分离

/**

 * 该方法用于获取SS列表与Friend列表

 */

public stiatc Result test(HttpSession httpSession, HttpServletRequest httpServletRequest,

HttpServletResponse httpServletResponse) {

// 创建一个对象(创建对象如果没有特殊情况是不需要注释的, 这里只是要演示一下)

MyTest test = new MyTest();

//获取SS列表并计算条数

List<SS> sss = service.getSSList();

Integer count = sss.size();

//获取Friend列表并计算条数

List<Friend> friends = service.getFriendList();

Integer count2 = friends.size();

//封装结果

Result result = new Result();

result.setSssList(sss);

result.setFriendList(friends);

return result;

}

(7)当方法传递的基础类型参数可以为null的时候, 使用该基础类型的包装类, 当方法传递的基础类型参数不可为null时, 使用基础类型

(8)数据库查询方法命名规范

单个查询使用getXxx()

多个查询使用listXxx()

统计查询使用countXxx()

插入使用saveXxx()或insertXxx()

删除使用removeXxx()或deleteXxx()

更新使用deleteXxx()

(9)方法名要有意义

(10)要多打注释但是不能滥用注释

(11)git开发要刷新全局列表->如果当前版本高于develop版本则继续开发, 否则要同步自身版本到develop版本再进行下一步的开发, 开发时只更新自己的开发支线, 每次提交前都要检查是否是提交到自己的开发支线, 提交时要写清楚本次开发要点, 发生错误要报告

3.6、进度计划

2018年6月份-9月,小组已经有做好了前期的需求调研工作和最初版本的开发(未部署到服务器)。

在今年的3月2号开始,预计花费45天进行全部升级开发,然后一周的时间进行测试。了保证项目圆满完成,分阶段进行进度控制。同时加强软件质量管理,以保障项目按工期规定顺利交付。

(以下内容描述的是升级版本的开发)

项目阶段

时间

工作内容

成果

需求调研

2019.2.12-2019.2.22

线上制作需求调研表单宣传,线下在肇庆市各个地方做现场调研,并且咨询指导老师的意见。

系统需求规格说明书

系统设计

2019.3.2-2019.3.16

在需求调研的基础上,对系统架构,系统功能,数据库设计

系统设计说明书

数据库

系统开发

2019.3.16-2019.3.24

完成各个子功能的设计和单元测试

不同迭代版本的可运行系统

系统集成

2019.3.24-2019.3.26

完成系统的集成并且完成集成测试

测试报告,形成完整的可运行系统

系统初验

2019.3.26-2019.3.28

项目初验

初验报告

系统试运行

2019.3.28-2019.4.4

1:平台持续运行

2:系统优化

升级版本的可运行系统,并且部署到服务器

项目终验

2019.4.5-

项目终验

验收报告

4、其它

4.1、特色与优势.

4.1.1、软硬结合

相比于其它web开发,我们功能之一“宠物去哪”是软硬件结合的产物,它由“定位项圈”硬件提供精准的动物位置,再传送到前端页面及时显示数据。

4.1.2、受众范围广

一个成功的产品背后肯定有一群感兴趣的人群,而“动物之家”的起始目标人群是那些“动物爱好者”,“宠物饲主”,“动物保护者”等,不管在哪个年龄阶段都存在着大量的目标人群。

因此,我们产品起步的受众人群广,易于后续的发展。

4.1.3、“刚需品”

对于宠物饲主来说,毫无章法地搜索资料,看着鱼龙混杂的数据完全无法很好地处理宠物问题,因此一个具有权威性的资料库,一个能够提供在线咨询的平台已成为“刚需品”。

并且如何处理好城市流浪动物和待遗弃动物问题,更是体现本产品的“刚需”。

4.1.4、可持续发展

我们提供了一个主打宠物产品商城,有效地保证了资金来源。

4.2、未来与发展

(1)我们将会与各地“动物爱好者协会”,“流浪动物保护组织”等机构合作,结合我们项目“带我回家”功能,积极做到让每一只被遗弃的动物,都有一个温暖的家。

(2)我们将会找相关厂家合作,批量生产“动物定位项圈“,将该产品作为我们项目的特色收入;并且欢迎各大厂家入驻,以售卖宠物用品为主要收入。

(3)我们将会聘请专业的宠物医生,他们不仅可以提供“在线咨询”服务,而且可以提供具有权威性的宠物文章,以完善我们“健康资料”的数据库。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值