基于uniapp的宠物用品商城服务预约平台小程序/安卓JAVA.VUE【数据库设计、论文、毕设源码、开题报告】

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎​百套小程序APP项目实战持续更新中~​

🔎​千套JAVA项目实战持续更新中~​

🔎​百套Python实战项目持续更新中~​
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,帮你完成文档

⚠️文末联系方式获取完整资料⚠️

第4章 系统设计

4.1系统功能设计

系统的功能设计是整个系统的运行基础,是一个把设计需求替换成以计算机系统的形式表示出来。通过对宠物商城小程序的调查、分析和研究,得出了该系统的总体规划,这是开发设计系统的初步核心。如下图所示:

图4-1总体规划结构图

4.2数据库的设计

在整个系统来说,数据库的设计是相当重要的,需要非常仔细去设计。本系统中涉及的各级权限分别是:

(1)用户登录权限,可以查看系统前台的宠物商城小程序信息展示,修改查看自己的信息,并能修改个人资料等。

(2)管理员权限,管理员有系统的所有权限,主要包括个人中心,用户管理,用品种类管理,宠物用品管理,服务类型管理,宠物服务管理,服务预约管理,服务取消管理,确认评价管理,宠物种类管理,宠物百科管理,社区论坛,系统管理,订单管理等功能。

4.2.1数据库E-R图

关系型数据库是目前使用人数最多的数据库,既是面向对象系统设计,所以它的数据库设计主要是面向对象的。现在主要考虑如何对类进行持久化操作,即如何将对象类映射到关系数据库的二维表。目前可以采用数据库建模工具来实现。

然后根据功能需求来对本系统的e-r图实现分解来得到几种实体—关系模型,以下为部分实体—关系模型。

 (1)用户实体属性图,如图4-2所示:

图4-2用户实体属性图

(2)宠物服务实体属性图,如图4-3所示:

图4-3宠物服务实体属性图

(3) 宠物用品实体属性图,如图4-4所示:

图4-4宠物用品实体属性图

(4)宠物百科评论实体属性图,如图4-5所示:

图4-5宠物百科评论实体属性图

(5)社区论坛实体属性图,如图4-6所示:

图4-6社区论坛实体属性图

4.2.2数据库表

本系统采用的是MySQL数据库管理数据,系统中使用到的数据表具体展示部分如下所示。

表4-1:关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-2:宠物种类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

chongwuzhonglei

varchar

200

宠物种类

表4-3:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-4:确认评价

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fuwumingcheng

varchar

200

服务名称

fuwutupian

longtext

4294967295

服务图片

fuwuleixing

varchar

200

服务类型

fuwufeiyong

varchar

200

服务费用

yuyueshijian

varchar

200

预约时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shoujihaoma

varchar

200

手机号码

chongwumingcheng

varchar

200

宠物名称

chongwuzhonglei

varchar

200

宠物种类

chongwunianling

int

宠物年龄

manyidu

varchar

200

满意度

pingjianeirong

longtext

4294967295

评价内容

pingjiashijian

datetime

评价时间

userid

bigint

用户id

表4-5:订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

orderid

varchar

200

订单编号

tablename

varchar

200

商品表名

chongwuyongpin

userid

bigint

用户id

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

longtext

4294967295

商品图片

buynumber

int

购买数量

price

float

价格

0

discountprice

float

折扣价格

0

total

float

总价格

0

discounttotal

float

折扣总价格

0

type

int

支付类型

1

status

varchar

200

状态

address

varchar

200

地址

tel

varchar

200

电话

consignee

varchar

200

收货人

remark

varchar

200

备注

logistics

longtext

4294967295

物流

goodtype

varchar

200

商品类型

表4-6:宠物百科

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

wenzhangbiaoti

varchar

200

文章标题

wenzhangfengmian

longtext

4294967295

文章封面

chongwuzhonglei

varchar

200

宠物种类

faburiqi

date

发布日期

zuozhe

varchar

200

作者

wenzhangjianjie

longtext

4294967295

文章简介

wenzhangneirong

longtext

4294967295

文章内容

表4-7:服务取消

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fuwumingcheng

varchar

200

服务名称

fuwutupian

longtext

4294967295

服务图片

fuwuleixing

varchar

200

服务类型

fuwufeiyong

varchar

200

服务费用

yuyueshijian

varchar

200

预约时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shoujihaoma

varchar

200

手机号码

chongwumingcheng

varchar

200

宠物名称

chongwuzhonglei

varchar

200

宠物种类

chongwunianling

int

宠物年龄

quxiaoshijian

datetime

取消时间

quxiaoyuanyin

longtext

4294967295

取消原因

crossuserid

bigint

跨表用户id

crossrefid

bigint

跨表主键id

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

userid

bigint

用户id

表4-8:宠物资讯

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-9:购物车表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tablename

varchar

200

商品表名

chongwuyongpin

userid

bigint

用户id

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

longtext

4294967295

图片

buynumber

int

购买数量

price

float

单价

discountprice

float

会员价

goodtype

varchar

200

商品类型

表4-10:服务预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fuwumingcheng

varchar

200

服务名称

fuwutupian

longtext

4294967295

服务图片

fuwuleixing

varchar

200

服务类型

fuwufeiyong

float

服务费用

jf

float

积分

yuyueshijian

datetime

预约时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shoujihaoma

varchar

200

手机号码

chongwumingcheng

varchar

200

宠物名称

chongwuzhonglei

varchar

200

宠物种类

chongwunianling

int

宠物年龄

yuyueneirong

longtext

4294967295

预约内容

fuwuzhuangtai

varchar

200

服务状态

xiadanshijian

datetime

下单时间

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

ispay

varchar

200

是否支付

未支付

userid

bigint

用户id

表4-11:地址

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

address

varchar

200

地址

name

varchar

200

收货人

phone

varchar

200

电话

isdefault

varchar

200

是否默认地址[是/否]

表4-12:社区论坛

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

帖子标题

content

longtext

4294967295

帖子内容

parentid

bigint

父节点id

userid

bigint

用户id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

isdone

varchar

200

状态

表4-13:宠物用品评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-14:宠物服务评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-15:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-16:宠物百科评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-17:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-18:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-19:宠物用品

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

mingcheng

varchar

200

名称

yongpinzhonglei

varchar

200

用品种类

tupian

longtext

4294967295

图片

guige

varchar

200

规格

jianjie

longtext

4294967295

简介

xiangqing

longtext

4294967295

详情

chandi

varchar

200

产地

pinpai

varchar

200

品牌

yuancailiao

varchar

200

原材料

shangjiariqi

date

上架日期

onelimittimes

int

单限

alllimittimes

int

库存

clicktime

datetime

最近点击时间

jf

int

积分

-1

price

float

价格

表4-20:宠物服务

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fuwumingcheng

varchar

200

服务名称

fuwutupian

longtext

4294967295

服务图片

fuwuleixing

varchar

200

服务类型

fuwufeiyong

float

服务费用

jf

float

积分

fuwujianjie

longtext

4294967295

服务简介

zhuyishixiang

varchar

200

注意事项

fuwuneirong

longtext

4294967295

服务内容

faburiqi

date

发布日期

表4-21:服务类型

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fuwuleixing

varchar

200

服务类型

表4-22:用品种类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yongpinzhonglei

varchar

200

用品种类

表4-23:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

mima

varchar

200

密码

xingming

varchar

200

姓名

xingbie

varchar

200

性别

youxiang

varchar

200

邮箱

shoujihaoma

varchar

200

手机号码

touxiang

longtext

4294967295

头像

jf

float

积分

0

money

float

余额

0

第5章 系统实现

5.1小程序前台实现

首先双击打开小程序客户端,连上网络之后会显示出本系统的登录界面,这是进入小程序的初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能。登录界面如图5-1所示。

图5-1 登录界面

第一次使用本小程序的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将用户信息录入注册表,确认信息正确后,系统才会进入登录界面,用户登录成功后可使用本小程序所提供的所有功能。注册界面如图5-2所示。

图5-2 注册界面

小程序首页是用户注册登录后进入的第一个界面,用户可通过小程序端首页导航栏进入到相应的网页查看信息展示信息进行详细操作。小程序首页界面如图5-3所示。

图5-3 小程序首页界面图

宠物用品:在宠物用品页面可以查看到名称,用品种类,规格,产地,品牌,上架时间,库存,简介等信息,按照提示即可完成收藏操作。宠物用品详情如图5-4所示。

图5-4宠物用品详情界面图

用户登录成功后,点击“我的”进入用户功能页面,可以对个人中心,服务预约,服务取消,确认评价,我的收藏管理,用户充值,我要发帖,我的发帖,购物车,我的订单等进行详细操作。用户功能界面如图5-5所示。

图5-5用户功能界面图

5.2后台管理员模块实现

后台管理员登录,在登录页面正确输入账号和密码后,进入操作系统进行操作;如图5-6所示。                               

图5-6 管理员登录界面

管理员进入主页面,主要功能包括对个人中心、用户管理,用品种类管理,宠物用品管理,服务类型管理,宠物服务管理,服务预约管理,服务取消管理,确认评价管理,宠物种类管理,宠物百科管理,社区论坛,系统管理,订单管理等进行操作。管理员主页面如图5-7所示:

图5-7管理员主界面

管理员点击宠物用品管理。在宠物用品页面输入名称,产地和品牌进行查询,新增或删除宠物用品列表,分类统计和库存统计,并根据需要对宠物用品详情信息进行详情,查看评论,修改或删除操作;如图5-8所示:

图5-8宠物用品管理界面

JAVA后端代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

 🔎​百套小程序APP项目实战持续更新中~​

🔎​千套JAVA项目实战持续更新中~​

🔎​百套Python实战项目持续更新中~​

👇下方有我的微信名片👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值