admin 管理员组

文章数量: 1184232


2024年1月15日发(作者:qq特殊代码生成器在线)

摘 要

在当下网络的不断发展,互联网逐渐成为人们彰显个性、结交好友的重要平台。而传统的社交网络已不是人类的独有物,与我们生活在同一屋檐下的宠物也开始走入社交网络。

本文中来介绍的宠物社区是一个以宠物为主题的微信小程序,选用的是JFinal+ide作为开发环境,MySQL作为后台数据库支持,实现了汪牌注册、登录、添加贺卡、添加宠物信息、发布宠物信息、添加宠物犬养护知识等功能。为爱宠物之人提供了一个“以宠物会友”的平台。

关键词:宠物社区 JFinal MySQL数据库

Abstract

With the continued development of the Internet, the Internet gradually

shows people's personality and is an important platform for making friends.

Traditional social networks are not the only human beings, and pets living in

the same house with us are also included in social networks.

The pet community introduced in this paper is a pet chat based wechat

program. Select JFinal + IDE as the development environment and select

MySQL as backstage database support. It realizes the brand registration,

login function, add greeting cards, add pet information, publish pet

information and add pet dog maintenance knowledge. Make a pet and a

friend provide a platform for pet lovers.

Key words:

Pet Community JFinal MySQL database

目录

第一章 绪论 .............................................................................................. 1

1.1 宠物社区的发展背景 .............................................................. 1

1.2 宠物社区开发目的与意义 ...................................................... 2

第二章 开发环境与操作平台介绍 ............................................................ 2

2.1 MySQL简介 ............................................................................. 2

2.2 JFinal技术介绍 ........................................................................ 2

2.3 小程序介绍 ............................................................................. 2

2.3.1小程序API ............................................................................. 3

第三章 系统可行性分析 ........................................................................... 3

3.1 技术可行性 ............................................................................. 3

3.2 经济可行性 ............................................................................. 4

3.3 操作可行性 ............................................................................. 4

3.4 需求分析 ................................................................................. 4

第四章 系统的总体结构设计 ................................................................... 5

4.1 系统功能结构描述 .................................................................. 5

4.1.1 系统功能 ....................................................................... 5

4.1.2 系统功能结构图 ........................................................... 6

4.2 数据库设计 ............................................................................. 6

4.2.1 概念结构设计 ............................................................... 6

4.2.2 数据表详细设计 ........................................................... 7

第五章 系统的详细设计 ......................................................................... 10

5.1 小程序界面设计与核心功能实现 .......................................... 10

5.1.1“汪牌”页面 ............................................................... 10

5.1.2“狗狗圈”页面 ........................................................... 13

5.1.3上传页面 ...................................................................... 14

5.1.4图片裁剪上传功能实现 ............................................... 16

5.1.5编辑删除功能实现 ...................................................... 18

5.1.6收藏功能实现 .............................................................. 18

5.1.7“我的”页面 ............................................................... 19

5.1.8“汪朋狗友”功能实现 ................................................ 20

5.1.9“遛一遛记录”功能实现 ............................................ 22

5.2 后端核心功能实现 ................................................................. 23

5.2.1 小程序登录实现 ......................................................... 23

5.2.2 API接口访问拦截器实现 ............................................ 24

第六章 系统测试 .................................................................................... 25

6.1 测试目的 ................................................................................ 25

6.2 测试方法 ................................................................................ 25

6.3 系统测试 ................................................................................ 26

第七章 总结与展望 ................................................................................ 27

7.1 工作总结 ........................................................................ 27

7.2 展望 ................................................................................ 27

参 考 文 献 ............................................................................................ 28

致 谢 ....................................................................................................... 28

第一章 绪论

1.1 宠物社区的发展背景

人们惯有的思维,过去很久其实都认为网络空间只是一个人们使用的这么一个空间。只是提供给人们拓展眼界娱乐或搜索信息的地方罢了。但是现在的社交平台已经通过时代爆炸指数式地发展,日新月异下,社会网络的出现,逐步通过交融,而成长为一个与现实世界紧密相连的全新世界,这也是成为了一个从虚拟到现实的社交平台空间。

往前面时代变迁来看,通常大家伙之间的沟通联系谈话,其实都是发生在一定的时间和空间之中,也算是即时通信,而现在的网络体系在新的发展维度下,打破了以往我们人们印象中传统的时空界限,显然地改变了以往的传播方式。

突兀间,现在的人们在这澎湃的信息狂潮当中,通过社交网络建立联系,各厂之间开发的平台,例如微博、微信朋友圈、贴吧等等,通过这些社交平台,打破了新人类的感官思维,处理方式,人们可以随时随地记录生活、通过扮演花枝招展的角色,与其他人交流。而同时随着时代浪潮的发展,宠物在人们心中的存在价值不低,越来越多的人们开始喂养宠物。

研究发现,宠物对个体心理健康的作用是一个热门话题, 其中最为人所津津乐道的是宠物对饲养者, 特别是对那些有生理、心理障碍的饲养者,有促进他们康复的作用, 而对其他特殊人群, 如老年人也有提供情感支持的作用。[1]那对养宠物的人来言,心灵上的慰藉,精神上的亲近,自然而然地把宠物当作家庭的一份子,情感上的寄托,他们喜欢在社交媒体上分享宠物生活的乐趣。而同样对于其他也喜欢宠物的人来言,关注社交网络中可爱的宠物,你可以增添一份生活乐趣0。

然而现今来看,宠物社交平台比较少,人们的注意力更集中在自己和其他人身上,所以大家伙们主要是通过一些比较成熟的平台来为炫耀自己的宠物。以此来向远处看去,与年轻人最常用的微信平台相结合,开发了一个以宠物为主题的微信小程序—宠物社区。

1.2 宠物社区开发目的与意义

宠物社区是一个基于微信小程序的宠物社交平台。在这个平台上,爱宠物的朋友们可以通过自己的微信注册成为会员,登录以后,用户可以添加汪牌信息、添加1

宠物犬详情、管理宠物犬养护知识、查找汪朋狗友、关注汪朋狗友、查看汪朋狗友列表、收藏汪的文章等等。除此之外,养宠物的朋友还可以随时展示出宠物特色。

第二章 开发环境与操作平台介绍

2.1 MySQL简介

宠物社区用户通过手机小程序可以看到宠物社区的各个界面,小程序这种开发模式容易,从而减轻了维护系统和系统升级的成本,降低了用户的使用成本。

MySQL是管理内容最好的选择,MYSQL是一款Open source relational database

management system。MYSQL具有良好的可移植性,它可以适应快速变化的环境。

2.2 JFinal技术介绍

JFinal 是基于Java 语言的快速网络开发结构,其最主要的核心设计目标是开发迅速、代码量少、学习简单、功能强、易扩展、Restful。在拥有Java语言所有优势,还拥有ruby、python等动态语言的开发效率。

2.3 小程序介绍

小程序开发框架主要分成两部分:逻辑层(App Service)和视图层(View)[3],并通过JSBridage来作为这两部分的通信桥梁,在视图层与逻辑层之间进行数据传输和事件的交互响应[4]。

App Service逻辑层用来逻辑处理、数据请求、接口调用[5],View视图层使用网络视图渲染页面视图。当我们在开发调试与实现操作时,小程序文件的运行,实际上是通过逻辑层和视觉图层通过JS桥接器相互通信。当逻辑页开始逻辑操作时,视图层需要相对地更新。相反,按下连接到触发针的功能的触发按钮来触发。对应地运行逻辑层中的函数。

微信小程序的文件结构主要是由根目录下的全局(App)的设置(在APP的页面下关乎着整个程序的页面)和多个page页面构成。

APP是小程序的公共根基,它拥有着,, app. wxss,三个文件构成,这几个文件呢分别各自是起到那在这文件中监听并处理相关有关的事件,全局页面2

的属性设置,全局页面的公共视图层样式。

在次目录中一般分为page目录和utils目录(工具目录)。在page目录下,每个页面同时对应一个目录,而在这个分页目录下一般包含着4个文件,分别为.js,.wxml,.wxss,.json。Js页是当前页面的逻辑层,wxml页面是用于编辑小程序中页面的结构,wxss用于编辑页面的样式,类似css,.json文件对应的时当前页面的属性,可使用特定的配置,或使用微信某些封装好的功能(比如引用封装好的插件)。

2.3.1小程序API

API(Application Programming Interface应用程序编程接口)[6]。开发者是事先定义的函数,开发者需要调用这些封装好的函数,不需要了解函数中的功能模块或该函数的源代码的实现,通过此界面直接在应用程序或硬件中实现该接口的功能,而微信小程序的API是基于微信的功能,正式应用只需要通过官方的API在逻辑层相互作用。

微信小程序的开发团队在这个领域整合丰富的各种功能块函数,通过官方的API直接实现多个功能。例如,网络需求功能、数据交互功能、转发共享功能、本地存储功能、图像预下载功能等。在许多情况下,开发者可以通过微信用的原始API功能性地交互。这种情况下,开发者可以在短时间内开发性能大幅提高,开发时间周期更短。

第三章 系统可行性分析

3.1 技术可行性

正是在这种飞速蓬勃发展情况下,我们也是能够看到其计算机应用是愈发的要紧,各种应用软件也应运而生,且不断丰富。在该这系统中,操控者更容易通过软件思想来运营和掌握使用方法,系统在用户进行操作的时候呢,所有重点的操场阶段都有相应的文字提示,操作十分简洁。

本系统是一套较完整的微信小程序程序,功能比较齐全,系统可以解决添加汪牌信息、添加宠物犬详情、管理宠物犬养护知识等实用性问题。

3

3.2 经济可行性

软件的经济潜力是指软件的经济影响是否适合投资于设计。同时,我们也可以判断该软件是否能真正为用户提供足够的经济效益。所开发的这个微信小程序宠物社区平台,我开发的旨在是为了方便热爱动物的用户,在微信平台方便他们交流的同时,更加方便快捷地使用与交互联系,带着这个最关键的管理想法的目的而进行设计的。它是由我自己个人独立设计的,这实际上节省了很多团队中逐渐发开的成本,而且还提高了这段时间里的学习能力,同时开发了我的动手技能。

3.3 操作可行性

小程序本身就依附在微信这个用户量庞大的流量平台,到现在五花八门万千种小程序的用户当中,他们是有很大一部分是通过裂变的方式取得。

总得看小程序方便快捷,使得很多公司想要能够傍上小程序这辆车,正是因为现在众多年轻人更多愿意使用的是微信而不是QQ,这强社交属性的关键属性之一,以及小代码且简单方便操作,融合两者的诞生,就能够来实现低成本的用户增长。

3.4 需求分析

根据人们对于宠物的想法理解,以及确保能够在用户心中得到最新颖的体验,增添一些在其他平台上都能够体验过的普通简单功能,结合微信平台上特有的功能,正是微信运动,所以诞生出来的宠物社区小程序的主要功能模块:汪牌、狗狗圈、我的设置。

1. 汪牌:注册汪牌,显示汪牌;

2. 狗狗圈:轮播宠物犬养护知识、宠物犬根据特性选择特定宠物犬;

3. 我的:汪朋狗友、宠物犬写真、遛狗排行榜。

第四章 系统的总体结构设计

4

4.1 系统功能结构描述

4.1.1 系统功能

表4-1 “宠物社区”系统功能表

功能项

注册汪牌功能

功能介绍 具体内容

给用户为自己的宠物注册通过填写宠物详细的内容特有的名牌 信息,生成特定了数字编码诞生一个特有的名牌

通过轮播图以及宠物犬当中的特定养护知识

通过复选按钮来选择用户想要固定特性后筛选出来的宠物犬

狗狗圈功能

宠物犬筛选功能

显示宠物犬养护知识功能

显示用户想要的宠物犬

汪朋狗友功能

宠物犬写真功能

显示同样爱宠物人士的宠显示添加爱宠物人士好友物信息

可以上传宠物的生活照片

的宠物信息

可以通过点击名牌进入详细页面,上传编辑删除宠物的生活照片

遛一遛记录功能 可以查看遛狗的排行 结合微信运动生成遛狗数据,给宠物狗进行遛狗生成数据,产生排行榜

分享功能 转发分享功能 可以通过点击名牌进入详细页面,转发分享名牌给好友

添加贺卡功能 给用户生成一个贺卡 给用户生成一个贺卡,上面通过用户的名字随机生成一个保存在后台的祝福

5

4.1.2 系统功能结构图

图4-1 系统功能结构图

4.2 数据库设计

数据库设计是在确定的DBMS过程对于给定的应用环境中,数据库系统结构、根据数据库的最佳结构和应用程序来构建数据库的程序,因此,从而能够好好地有效地存储这些个数据,以此来满足不同用户之间不同的各种的应用需求,像是信息要求和处理要求[8]。

4.2.1 概念结构设计

在概念设计阶段中,从使用者的角度对数据进行查询,处理需求和制约,产生一个反映用户观点的概念模式。[9]将概念模型转化为逻辑模型。这个概念是在设计过程中独立设计的,使得所有阶段的任务都变得更加独特且单一个体。我们在这里利用E-R图来对数据库的设计呢,来规范以及规划好一个设计,以小来见大,通过设计局部的E-R模式,使得我们数据库实体类之间相互联系,之后再组合到一个全局模式,通过下图标记的1-n,与n-n,分别对应的是一对多,以及多对多的关系,继而通过优化,最终得到一个完整的E-R图。

6

E-R图:

根据会员、文章、汪牌之间的关系得到会员、文章、汪牌E-R图:

图4-2 E-R结构图

4.2.2 数据表详细设计

基于宠物社区名字所建立的数据库名称为Superpet,包括的数据库表主要有以下几个基本表。

表4-2 用户信息表

列 名

Id

UserCode

Sex

Age

Loacl

QQ

Email

Sign

Picture

说 明

编号

用户名

性别

年龄

所在地

QQ

邮箱

个性签名

照片

7

类 型

Int (4)

char(100)

char(100)

Int (8)

char(100)

char(100)

char(100)

char(100)

char(100)

备 注

不允许空,主键

不允许空

不允许空

允许空

允许空

允许空

允许空

允许空

允许空

表4-3 宠物信息表

列 名

Id

StuCode

Sex

Age

StuFromSchool

Picture

Master

Fans

说 明

编号

昵称

性别

年龄

兴趣爱好

照片

电话

粉丝数

类 型

Int (4)

char(100)

char(100)

Int (8)

char(100)

char(100)

char(100)

Int (4)

表4-4 文章信息表

备 注

不允许空,主键

不允许空

不允许空

允许空

不允许空

允许空

不允许空

不允许空

列 名

Id

Title

Content

CreateTime

Writer

说 明

编号

标题

内容

发表时间

作者

类 型

Int (4)

char(100)

char(100)

char(100)

char(100)

表4-5 收藏表

备 注

不允许空,主键

不允许空

不允许空

允许空

允许空

列 名

Id

UserCode

PetType

说 明

编号

用户名

类型

类 型

Int (4)

char(100)

char(100)

表4-6 关注表

备 注

不允许空,主键

不允许空

不允许空

列 名

Attentio

Attentiod

EachOther

说 明

关注人

被关注人

相互关注

类 型

Int (4)

Varchar (50)

Int (4)

备 注

不允许空,主键

不允许空

不允许空

8

第五章 系统的详细设计

5.1 小程序界面设计与核心功能实现

5.1.1“汪牌”页面

此页面为小程序的开启时的页面,也为首页,第一次进入时会判定用户是否第一次登入。

(a)先通过()获取到用户登录的临时code,发送到服务后台,获取到session key 和openid。来实现用户登录功能。

(b)随后通过公共文件storageService文件中的TokenStorage方法保存accessToken。

(c)而该“汪牌”页面通过登录用户,获取该用户的宠物列表,获取用户的宠物个数,如果已经有过注册“汪牌”,则会刷新出来。登录的详细核心逻辑代码具体如下。

wxlogin: function(){

var that = this;

({

success: res => {

// 发送 到后台换取 openId, sessionKey, unionId

if () {

n({ jsCode: }).then(result => {

if (result && =="000") {

a(Token);

ettingsStatus();

if(unt && parseInt(unt)>0){

etList()

}else{

etAddPre()

}

}

}).catch(err => {

a({

loading: false

});

})

}

},

fail: err => {

(err);

9

}

})

},

新登入的用户会看到注册狗牌的按钮,而注册成功之后,刷新页面会显示注册成功的狗牌,实际效果如图5-2所示。

图5-2 首页“汪牌”页面效果图

点击注册汪牌之后跳转到注册汪牌页面,实际效果如图5-2所示。

10

图 5-3 注册“汪牌”页面效果图

注册“汪牌”页面,提供给用户为他们的宠物填写上详细内容信息,内容如上图所示,分别有上传宠物头像,输入名称,性别,体重,年龄,品质,是否绝育,以及个性描述。

(a)先通过()获取到用户登录的临时code,发送到服务后台,获取到session key 和openid。来实现用户登录功能。

(b)随后通过公共文件storageService文件中的TokenStorage方法保存accessToken。

(c)而该“汪牌”页面通过登录用户,获取该用户的宠物列表,获取用户的宠物个数,如果已经有过注册“汪牌”,则会刷新出来,注册“汪牌”页面的核心逻辑代码具体可参照下方。

public void doLogin(){

String jsCode = getPara("jsCode");

WxSessionVo wxVo = ession(jsCode);

if(!lank(code())){

Long userId = UpdateUser(wxVo);

String accessToken = teSalt(64);

essToken(accessToken);

rId(userId);

ken(wxVo);

List pets = rPetList(userId);

int petsCount = 0;

if(pets!=null && !y()){

11

petsCount = ();

}

renderJson(("code",

_SUCCESS).set("msg",_SUCCESS).set("accessToken",accessToken).set("petsCount",petsCount));

}else{

renderJson(("code",_WX_FAIL).set("msg",_SUCCESS+msg()));

}

}

5.1.2“狗狗圈”页面

在小程序的第二个页面当中,是狗狗圈页面。效果如图5- 5所示。

(a)上方的轮播图当中显示的是狗类相关资讯,点击轮播图会跳转到详细页面当中。

(b)下方为狗类选择,提供复选按钮进行选择,通过数据库中保存各个狗类的特性,在用户选择自己想要的特性,找出符合条件的狗,在页面刷新之后单独显示出来,进而能够查看其中关于这个狗狗更详细的内容,详细效果如图5- 6所示。

图 5-5 轮播图内容页面效果图

12

图 5-6 选择狗类内容页面效果图

5.1.3上传页面

点击汪牌之后可以看到更详细的信息,该页面这里提供了图片上传功能,点击“上传写真”,实现上传图片功能,如图5-7所示。

13

图5-7 汪牌详细内容页面效果图

14

图5-8 写真集内容页面效果图

5.1.4图片裁剪上传功能实现

首先调用Image()这个原生接口,获取到需要上传的图片,通过以下这段代码对其进行压缩图片处理,图片裁剪上传功能详细核心逻辑代码具体可参照如下。

Image({

count: 1, // 默认9

sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有

sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有

success (res) {

const src = lePaths[0]

// 获取裁剪图片资源后,给data添加src属性及其值

("les[0].size==", les[0].size);

ign(src)

}

})

15

生成图片,avatar为裁剪后的图片临时路径,如果路径中有图片,则生成一个信息提示框显示正在上传,随后通过uploadType: "petAvatar"将获取到的图片上传到服务器中。然后通过引用import导入的公共文件。

调用当中暴露出来的接口中的uploadPetAvatar函数方法,

PetAvatar(params, avatar, 'avatarFile'),获得返回的结果,通过打印函数获得内容反馈。

通过ify()方法是将是JavaScript值的内容反馈转换为 JSON字符串内容来保存,继而通过另一个公共文件,

随即通过ctTo("../dogedit/dogedit", params);路由跳转返回到注册页面,图片生成功能详细核心逻辑代码具体参考如下。

getCropperImage () {

let that = this

pperImage((avatar) => {

if (avatar) {

ast({

icon: "loading",

title: "正在上传"

})

// 获取到裁剪后的图片,上传到服务器

let params = {

uploadType: "petAvatar"

}

vigationBarLoading()

PetAvatar(params, avatar, 'avatarFile').then(result

=> {

if(result && == "000") {

//put in transfer para

()

(i)

()

= th

Tmp = avatar

Ok = true

("ok")

let params = {

pet: ify(),

petVali: ify(i)

}

("Ready to return")

(params)

ctTo("../dogedit/dogedit", params);

}

vigationBarLoading()

}).catch(err => {

vigationBarLoading()

16

})

} else {

('获取图片失败,请稍后重试')

}

})

},

5.1.5编辑删除功能实现

本功能实现图片上传之后的删除功能,通过for循坏来判断图片是否删除,删除功能详细核心逻辑代码参考效果如下。

deleteImg: function (e) {

let that = this

let imgs = Imgs

let tmpImgs = []

let petPicIds = []

for(let i=0;i<;i++){

if(!imgs[i].isDelete){

(imgs[i])

}else{

(imgs[i].petPicId)

}

}

let params = {

petPicIds: (",")

}

vigationBarLoading()

PetPic(params).then(result => {

if (result && == "000") {

a({

uploadImgs: tmpImgs,

showDeleteBtn: !leteBtn

})

}

vigationBarLoading()

}).catch(err => {

vigationBarLoading()

})

},

5.1.6收藏功能实现

通过记录用户的宠物ID,用户的ID,调用公共文件中的CollectPet方法获得返回值,判断如果为1,则通过common文件中的myToast方法显示弹窗反馈“收藏成17

功”信息。收藏功能详细核心逻辑代码详情如下。

collectPet: function () {

let that = this

let collectVal = ect

if (ect==0){

collectVal = 1

}else{

collectVal = 0

}

let params = {

petId: ,

userId: ,

isCollect: collectVal

}

vigationBarLoading()

tPet(params).then(result => {

if (result && == "000") {

a({

isCollect: collectVal

})

if (collectVal==1){

t("收藏成功");

}else{

t("取消收藏成功");

}

}

vigationBarLoading()

}).catch(err => {

vigationBarLoading()

})

},

5.1.7“我的”页面

“我的”页面在最后一个页面,相比于传统的注册登录,遵循小程序简单快捷的原则,选择了沿用微信用户体系。点击“我”将会跳转到“汪牌”页面。在这页面上放置了“遛一遛记录”,“汪朋狗友”,这两个组件将会记录客户进行相对应的数据绑定,并且将用户操作功能之后产生的数据展示在我们的相关页面上。具体效果如图5-13所示。

18

图 5-13 “我的”页面实现效果图

5.1.8“汪朋狗友”功能实现

此功能关联微信用户注册了汪牌的好友,关联微信步数并转化记录为遛狗时产生的运动总值。(由于暂时没有好友,所以页面暂时没有东西)实现效果效果如图5-14所示。

19

图 5-14“汪朋狗友”页面实现效果图

此功能逻辑页面主要是调用公共文件中暴露的接口的getPetHouseList方法返回保存信息,然后显示保存到数据库中的内容,“汪朋狗友”核心逻辑代码效果如下所示。

onLoad: function (options) {

let that = this

let params = {}

vigationBarLoading()

HouseList(params).then(result => {

if (result && == "000") {

a({

pet: ,

petFriends: ends

})

}

vigationBarLoading()

}).catch(err => {

vigationBarLoading()

})

},

20

5.1.9“遛一遛记录”功能实现

本功能的记录的是通过微信运动运动步数记录的数据,在汪朋狗友间选择一名好友的小狗,给他选择遛一遛,把微信运动记录的数据存在数据库中记录的数据。实现效果效果如图5-16所示。

图5-16 “遛一遛记录”功能实现效果图

此功能逻辑页面主要是调用公共文件中的getFeedPetList方法返回保存信息,显示保存在数据库中的内容,“遛一遛记录”功能实现详细效果如下。

onLoad: function (options) {

let that = this

let params = {}

vigationBarLoading()

dPetList(params).then(result => {

if (result && == "000") {

a({

myFeedList: ,

feedMyList:

})

}

vigationBarLoading()

21

}).catch(err => {

vigationBarLoading()

})

},

5.2 后端核心功能实现

5.2.1 小程序登录实现

此页面为小程序的开启时的页面,也为首页,第一次进入时会判定用户是否第一次登入。

(a)首先我们通过页面传过来的jsCode,能够获取到微信登录的session,而如果登录成功,即errorcode为空。

(b)随后保存登录的用户信息到数据库当中,然后生成前端后续访问的64位token,以token为key,存储openid和sessionKey,为后续的自动登录做准备。

(c)而该“汪牌”页面通过登录用户,获取该用户的宠物列表,获取用户的宠物个数,如果已经有过注册“汪牌”,则会刷新出来。以下为后端登录的详细代码具体。

public void doLogin(){

String jsCode = getPara("jsCode");

WxSessionVo wxVo = ession(jsCode);

if(!lank(code())){

Long userId = UpdateUser(wxVo);

String accessToken = teSalt(64);

essToken(accessToken);

rId(userId);

ken(wxVo);

List pets = rPetList(userId);

int petsCount = 0;

if(pets!=null && !y()){

petsCount = ();

}

renderJson(("code",

_SUCCESS).set("msg",_SUCCESS).set("accessToken",accessToken).set("petsCount",petsCount));

}else{

renderJson(("code",_WX_FAIL).set("msg",_SUCCESS+msg()));

}

22

}

5.2.2 API接口访问拦截器实现

因为本程序很多功能数据需要对登录的用户进行绑定,所以在本程序会对用户是否为登录状态会进行一个检测,未登录的用户直接判定了非法请求,禁止访问。

(a)获取微信用户在登录的session_key,随后进行判定,如果是以/api开头的action(登录除外),则进行拦截,其他暂时先不拦截。

(b)获取访问token,查看访问中是否有accessToken参数,且是否有值。以accessToken为key值,查询我们在后台当中的缓存以及通过保存在数据库中是否存放着有这些合法的openid和sessionKey,而如果经过判断语句来判断这个token不为空的话,且缓存或数据库中此token还是有效的话(这就表示已登录),则允许访问。

(c)查询成功,则进入controller,否则判定为非法请求,以下为 API接口访问拦截器实现详细代码。

public void intercept(Invocation inv) {

String actionKey = ionKey();

n("actionKey===="+actionKey);

if("/api/wx/login/doLogin".equalsIgnoreCase(actionKey)) {

();

}else if(With("/api")){

if(troller().getRequest().getHeader("Content-Type").contains("multipart/form-data")){

troller().getFile();

}

String accessToken = troller().getPara("accessToken");

n("accessToken===="+accessToken);

if(lank(accessToken) &&

in(accessToken)){

();

}else{

troller().renderJson(("code",

_FORBID).set("msg",_FORBID));

}

}else{

();

}

}

23

第六章 系统测试

6.1 测试目的

软件是由程序员来编写的,程序员在编程中犯错误是不可避免的。软件开发的各个阶段其实我们都是在学习理解,把知识内容实体化成代码,但我们都不是学习了很久的专业人士,都可能出现错误,不管是从理解层面,还是来到了编写的过程,如果这些错误不能在软件在最终终了前,寻找出真相,查出来进行改正,那事实上会因为报错,也会通过一系列连锁情况,早早晚晚都会在软件测试,甚至实现真机调试时被看见,届时修改这错误的代价会更高,而且往往造成很恶劣的后果。

无论是什么软件系统的开发,设计完成以后都必须经过调试,不管是计算机方面,还是时装设计,乃至食品问题,通过测试软件产品的性能和质量,不可能不通过检查来找出问题,检查才是才能发现并解决系统、程序或功能等方面的错误。调试乃发现、检查并纠正错误的过程,是开发一个软件系统必不可少的过程。因为软件测试的目的是找出软件的错误。测试理论指导测试人员设计出更容易发现软件错误的测试用例,有助于在软件正式运行之前发现更多的错误,减少软件正式使用之后出现问题的频度;此外,软件测试时收集到的测试结果数据为软件的可靠性与质量分析提供了依据。

宠物社区小程序的运行,尝试真机调试来试用时,都应该是确保在连接各个模块功能页面和整体的菜单整体体系后测试所有内容是否正确。

6.2 测试方法

在软件开发的过程中,软件测试乃当中重要的一部分。由于开发一个软件项目的时间是十分之庸长的,加上新学习的问题,自身的能力问题,同时还要面对这极其错综杂复的问题,查找问题时的困难,实际上难度并不低。

然而在过程当中,这主观认识不可能完美契合客观现实,因此呢,在构建设计这个软件时,在每个阶段都有一定的几率产生差错,这只能希望在每个阶段发展之前想办法寻找出,以及尽可能早发现早学习并去纠正这么个错误。

明确地知道它是正确的测试是很重要的,但是带着要要证明测试是正确的目的,设计一些简单的测试计划,那是不行的。

24

6.3 系统测试

根据需求分析得到宠物社区的主要功能模块:汪牌、狗狗圈、我的设置。

1. 汪牌:注册汪牌、显示汪牌;

2. 狗狗圈:主页、宠物犬养护知识;

3. 我的:汪朋狗友、宠物犬写真、遛狗排行榜。

25

第七章 总结与展望

7.1 工作总结

到这里,在花时间构建计划,应用到自己的实际工作,绞尽脑汁来寻找对应的答案来解决工作过程中的问题,在这深刻又艰难的时刻里,逐渐地对程序有深刻理解,而对于在学习过程中深入学习过的数据库设计方面,还有一点程度上了解明白编程技术方面也还是有了一点的进步。

我针对目前最流行微信小程序进行开发,实现多个功能,在软件中可以添加汪牌信息、添加宠物犬详情、管理宠物犬养护知识、查找汪朋狗友、关注汪朋狗友、查看汪朋狗友列表等等。除此之外,我们这些用户朋友还可以随时给他们自己宠物诞生新的想法内容,发布宠物的新的写真照片,并且通过连接微信运动,产生一个数据来关联。系统中我们实现了关于狗类相关信息等一系列的功能,功能比较完备,界面友好。

在紧凑的时间里,系统在进行开发前的第一步,先是所有事情的第一步,那就是目标想法,必须要熟悉小程序的开发流程,因为小程序是课程中没有学到过的内容,我们通过初步了解思路,学习这些个相关知识。

而首要的目标是非常非常重要的一件事,第一步,使得从开始熟悉这些知识,慢慢找好自己的方向,思路,自己的水准到底能到达什么样的高度,再来对整体设计有了解,再从初步设计、再详细设计到深入地学习理解、分析考虑、进行开始编码,就跟开始读书一样,直到最后的测试,像是考试测验,整个过程感觉很充实,在当中这段花费的岁月年日当中,我感悟了有许多,失败不可怕,坚持去学习其实才是磨炼人内心的,此后坚持很多的事情,其实都一样,这也是人生路上该学会的最重要的东西,就是坚持地去学,坚持地来干。

7.2 展望

微信小程序在目前仍是处于一个良好的发展状态,微信的研发团队也是不断地在为小程序更新迭代,以简洁实用的要求一直规范着小程序,所以实用性与方便性都是在一个很高的位置之上,近年来小程序平台活跃性用户也是十分地多,所以更加保持健康成长的态势,为众多小程序开发者提供更好的开发环境,以至于提高开26

发效率。

而本人开发的宠物社区平台,希望能够给用户带来一个不错的体验,在微信这个大平台下,再营造一个爱宠物的人的交流平台,希望通过这个方式,让宠物不仅仅存在于图片当中,而是围绕着宠物,关系着宠物,以宠物做陪伴进行更突显式的交流。

经过这几个月的毕业设计实习,中途遇到了许多事情,加上疫情的影响,电脑不在身边导致浪费了许多时间没有能够进行学习的机会,但实际上还学到了不少的东西,同时也明显感觉自己知识的欠缺。小程序的开发也是在选择题目过后再慢慢熟悉的,开发水准有限,所以这个程序总体上看来还是有着许多欠缺,在实际运用方面仍要继续努力。

虽然即将毕业,但在此后的人生道路上,坚定自己的人生信念,学做事先做人,一定要继续坚持、努力地学习自己想要的知识,找到自己的道路,努力去贴近自己的梦想,只有这样才能紧跟时代的发展,脚踏实地的同时,活的舒心。

参 考 文 献

[1] 王嘉顺.宠物饲养者的社会心理行为分析[J].医学与社会,2011,24(03):85-87

[2] 孙慧娟.SNS社交网络服务[J].剑南文学(经典教苑).2012(02):302.

[3] 邱勋拥,张华成.基于微信小程序的《软件测试技术与应用》学习平台的研究与设计[J],电子世界,2019.

[4] 郑阿奇. Java EE基础实用教程[M],电子工业出版社, 2009.

[5] 张春晖.基于微信小程序的工单智能管理系统[J],电脑知识与技术,2018,

014(022):70-71.

[6] 张政桢.NXC编程入门[M],清华大学出版社, 2015.

[7] 王嘉顺.宠物饲养者的社会心理行为分析[J].医学与社会.2011(03):87.

[8] 王珊,萨师煊.数据库系统概论[M].高等教育出版社,2011:15.

[9] 郑阿奇,刘启芳,顾韵华.SQL Server教程[M].清华大学出版社.2010:15.

27


本文标签: 宠物 功能 用户 页面 程序