基于springboot的奶茶店在线管理系统【论文、源码、开题报告】

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

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

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

🔎上百套Python实战项目持续更新中
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

 4系统设计

4.1系统功能设计

本系统主要通过使用Java语言编码设计系统功能,MySQL数据库管理数据,AJAX技术设计简洁的、友好的网址页面,然后在IDEA开发平台中,编写相关的Java代码文件,接着通过连接语言完成与数据库的搭建工作,再通过平台提供的Tomcat插件完成信息的交互,最后在浏览器中打开系统网址便可使用本系统。本系统的使用角色可以被分为用户和管理员,用户具有注册、查看信息、留言信息等功能,管理员具有修改用户信息,发布供应商等功能,系统总体功能设计图如图4-1所示。

图4-1系统总体功能设计图

4.2数据库设计

4.2.1概念设计

在数据库设计过程中,概念设计阶段是逻辑设计阶段得以实现的基础,也是根据用户参与情况确定对数据的处理要求,从而使得数据库设计成功的关键。概念设计的主要任务是将现实世界的所收集到的使用需求转化为抽象的信息世界结构的过程,能够真实的反映现实生活中实体与实体之间的联系,数据库的相关语法和代码比较容易理解和修改,方便相关人员将相关的数据信息存储到数据库中,并对其进行修改和使用[18]。

通过将现实世界中的实体、属性、联系等内容进行概念设计,建立比较抽象的概念数据模型,即E-R图。通过E-R图可将现实世界抽象到的概念设计转变成数据库的实体设计,并且能够明显的看见各个实体之间,数据的流动情况,具体较强的表达能力,更加方便于开发人员寻找与发现用户具体的需求[19]。因此,E-R的建立,在整个数据库的设计过程中,起着至关重要的作用。本系统主要的实体有管理员、用户、留言等。在E-R图中,矩形表示实体集,椭圆形表示属性,菱形表示联系。其中,联系的类型包括1:1(一对一)、1:n(一对多)、n:m(多对多)关系。

(1)下图是活动实体和其具备的属性。


活动实体属性图

(2)下图是出入库详情实体和其具备的属性。


出入库详情实体属性图

(3)下图是用户实体和其具备的属性。


用户实体属性图

(4)下图是公告信息实体和其具备的属性。


公告信息实体属性图

(5)下图是字典表实体和其具备的属性。


字典表实体属性图

(6)下图是购物车实体和其具备的属性。


购物车实体属性图

(7)下图是供应商信息实体和其具备的属性。


供应商信息实体属性图

(8)下图是积分记录实体和其具备的属性。


积分记录实体属性图

(9)下图是原材料实体和其具备的属性。


原材料实体属性图

(10)下图是客服聊天实体和其具备的属性。


客服聊天实体属性图

(11)下图是留言板实体和其具备的属性。


留言板实体属性图

(12)下图是商品实体和其具备的属性。


商品实体属性图

(13)下图是出入库实体和其具备的属性。


出入库实体属性图

(14)下图是活动留言实体和其具备的属性。


活动留言实体属性图

(15)下图是商品收藏实体和其具备的属性。


商品收藏实体属性图

(16)下图是商品评价实体和其具备的属性。


商品评价实体属性图

(17)下图是商品订单实体和其具备的属性。


商品订单实体属性图

(18)下图是收货地址实体和其具备的属性。


收货地址实体属性图

4.2.2逻辑设计

本系统使用MySQL数据库管理与系统相关的数据信息。逻辑设计阶段是将上一个阶段中的概念数据模型,转换为方便数据库进行存储的关系模型,即基本表的形式,方便开发人员后期对数据模型进行优化和管理[20]。逻辑设计阶段是整个数据库设计设计的关键,与系统有关的信息将会在这一阶段中被存储在数据库中,当用户使用本系统进行相关的功能操作时,与之有关的数据信息所在的基本表会发生相应的更新变化。数据库的逻辑设计阶段主要任务是将与系统相关的数据信息,设计成为方便数据库存储和管理的基本表格的形式,具体内容如下。

表4.1收货地址表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yonghu_id

Integer

创建用户

3

address_name

String

收货人

4

address_phone

String

电话

5

address_dizhi

String

地址

6

isdefault_types

Integer

是否默认地址

7

insert_time

Date

添加时间

8

update_time

Date

修改时间

9

create_time

Date

创建时间

表4.2购物车表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yonghu_id

Integer

所属用户

3

naicha_id

Integer

商品

4

buy_number

Integer

购买数量

5

create_time

Date

添加时间

6

update_time

Date

更新时间

7

insert_time

Date

创建时间

表4.3客服聊天表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yonghu_id

Integer

提问用户

3

chat_issue

String

问题

4

issue_time

Date

问题时间

5

chat_reply

String

回复

6

reply_time

Date

回复时间

7

zhuangtai_types

Integer

状态

8

chat_types

Integer

数据类型

9

insert_time

Date

创建时间

表4.4字典表表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

dic_code

String

字段

3

dic_name

String

字段名

4

code_index

Integer

编码

5

index_name

String

编码名字

6

super_id

Integer

父字段id

7

beizhu

String

备注

8

create_time

Date

创建时间

表4.5公告信息表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

gonggao_name

String

公告名称

3

gonggao_photo

String

公告图片

4

gonggao_types

Integer

公告类型

5

insert_time

Date

发布时间

6

gonggao_content

String

公告详情

7

create_time

Date

创建时间

表4.6供应商信息表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

gongyingshang_name

String

供应商名称

3

lianxiren_name

String

联系人姓名

4

lianxiren_phone

String

联系人手机号

5

lianxiren_address

String

地址

6

gongyingshang_types

Integer

供应商类型

7

gongyingshang_xinyongdengji_types

Integer

信用等级

8

gongyingshang_content

String

供应商详情

9

create_time

Date

创建时间

表4.7活动表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

huodong_name

String

活动名称

3

huodong_uuid_number

String

活动编号

4

huodong_photo

String

活动照片

5

huodong_address

String

活动地点

6

huodong_shangxia_types

Integer

线上线下

7

huodong_types

Integer

活动类型

8

huodong_kucun_number

Integer

活动数量

9

huodong_kaishi_time

Date

活动开始时间

10

huodong_jieshu_time

Date

活动结束时间

11

huodong_content

String

活动内容

12

insert_time

Date

发布时间

13

create_time

Date

创建时间

表4.8活动留言表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

huodong_id

Integer

活动

3

yonghu_id

Integer

用户

4

huodong_liuyan_text

String

留言内容

5

insert_time

Date

留言时间

6

reply_text

String

回复内容

7

update_time

Date

回复时间

8

create_time

Date

创建时间

表4.9积分记录表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yonghu_id

Integer

用户姓名

3

jifenjilu_name

String

原因

4

jifenjilu_number

BigDecimal

积分数量

5

jifen_types

Integer

积分类型

6

insert_time

Date

插入时间

7

create_time

Date

创建时间

表4.10留言板表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yonghu_id

Integer

用户

3

liuyan_name

String

留言标题

4

liuyan_text

String

留言内容

5

insert_time

Date

留言时间

6

reply_text

String

回复内容

7

update_time

Date

回复时间

8

create_time

Date

创建时间

表4.11商品表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

naicha_name

String

商品名称

3

naicha_uuid_number

String

商品编号

4

naicha_photo

String

商品照片

5

zan_number

Integer

6

cai_number

Integer

7

naicha_types

Integer

商品类型

8

naicha_kucun_number

Integer

商品库存

9

naicha_price

Integer

购买获得积分

10

naicha_old_money

BigDecimal

商品原价

11

naicha_new_money

BigDecimal

现价/积分

12

naicha_clicknum

Integer

商品热度

13

naicha_content

String

商品介绍

14

shangxia_types

Integer

是否上架

15

naicha_delete

Integer

逻辑删除

16

insert_time

Date

录入时间

17

create_time

Date

创建时间

表4.12商品收藏表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

naicha_id

Integer

商品

3

yonghu_id

Integer

用户

4

naicha_collection_types

Integer

类型

5

insert_time

Date

收藏时间

6

create_time

Date

创建时间

表4.13商品评价表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

naicha_id

Integer

商品

3

yonghu_id

Integer

用户

4

naicha_commentback_text

String

评价内容

5

insert_time

Date

评价时间

6

reply_text

String

回复内容

7

update_time

Date

回复时间

8

create_time

Date

创建时间

表4.14商品订单表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

naicha_order_uuid_number

String

订单编号

3

address_id

Integer

收货地址

4

naicha_id

Integer

商品

5

yonghu_id

Integer

用户

6

buy_number

Integer

购买数量

7

naicha_order_true_price

BigDecimal

实付价格

8

naicha_order_courier_name

String

派送人

9

naicha_order_courier_number

String

联系方式

10

naicha_order_types

Integer

订单类型

11

naicha_order_payment_types

Integer

支付类型

12

insert_time

Date

订单创建时间

13

create_time

Date

创建时间

表4.15用户表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yonghu_name

String

用户姓名

3

yonghu_phone

String

用户手机号

4

yonghu_id_number

String

用户身份证号

5

yonghu_photo

String

用户头像

6

yonghu_email

String

用户邮箱

7

new_money

BigDecimal

余额

8

yonghu_sum_jifen

BigDecimal

总积分

9

yonghu_new_jifen

BigDecimal

现积分

10

huiyuandengji_types

Integer

会员等级

11

jinyong_types

Integer

账户状态

12

create_time

Date

创建时间

表4.16原材料表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

gongyingshang_id

Integer

供应商

3

yuancailiao_uuid_number

String

原材料编号

4

yuancailiao_name

String

原材料名称

5

yuancailiao_photo

String

原材料照片

6

yuancailiao_types

Integer

原材料类型

7

yuancailiao_old_money

BigDecimal

进价

8

yuancailiao_kucun_number

Integer

原材料数量

9

yuancailiao_content

String

原材料介绍

10

insert_time

Date

录入时间

11

create_time

Date

创建时间

表4.17出入库表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yuancailiao_churu_inout_uuid_number

String

出入库流水号

3

yuancailiao_churu_inout_name

String

出入库名称

4

yuancailiao_churu_inout_types

Integer

出入库类型

5

yuancailiao_churu_inout_content

String

备注

6

insert_time

Date

添加时间

7

create_time

Date

创建时间

表4.18出入库详情表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yuancailiao_churu_inout_id

Integer

出入库

3

yuancailiao_id

Integer

原材料

4

yuancailiao_churu_inout_list_number

Integer

操作数量

5

insert_time

Date

操作时间

6

create_time

Date

创建时间

表4.19管理员表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

username

String

员工名

3

password

String

密码

4

role

String

角色

5

addtime

Date

新增时间

4.3本章小结

本章主要介绍了系统功能设计、数据库设计等内容。通过设计系统的总体功能框架,确定系统的功能设计主要包括商品等模块。数据库设计主要分为概念设计阶段和逻辑设计阶段,其中,概念设计是将现实世界中的数据转变为信息世界中的概念模型,逻辑设计是将概念设计中的概念模型转变成可以被数据库存储的数据表格。系统功能设计好坏是系统得以被编码实现的重要依据。数据库设计是否符合规范,是系统能够成功运行的基本保障,也是用户和系统实现交互处理的重要前提。

5系统实现

5.1管理员功能模块实现

5.1.1管理员登录

管理员可以选择任一浏览器打开网址,输入信息无误后,以管理员的身份行使相关的管理权限,管理员登录界面设计如图5-1所示。

图5-1管理员登录界面

5.1.2商品管理

管理员可以通过选择商品管理,管理相关的商品信息记录,比如进行查看商品信息标题,修改商品信息来源等操作,商品管理界面设计如图5-2所示。

图5-2商品管理界面

5.1.3公告管理

管理员可以通过选择公告管理,管理相关的公告信息记录,比如进行查看公告详情,删除错误的公告信息,发布公告等操作,公告管理界面如图5-3所示。

图5-3 公告管理界面

5.1.4公告类型管理

管理员可以通过选择公告类型管理,管理相关的公告类型信息,比如查看所有公告类型,删除无用公告类型,修改公告类型,添加公告类型等操作,公告类型管理界面设计如图5-4所示。

图5-4公告类型管理界面

5.1.5 供应商管理

如图5.5显示的就是供应商管理页面,此页面提供给管理员的功能有:新增供应商,修改供应商,删除供应商。

图5.5供应商管理页面

5.1.6 供应商类型管理

如图5.5显示的就是供应商类型管理页面,此页面提供给管理员的功能有:新增供应商类型,修改供应商类型,删除供应商类型。

图5.6 供应商类型管理页面

代码实现

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();
    }
}

源码获取

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

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

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

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

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

👇下方有我的微信名片👇

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于SSM的奶茶管理系统源码是一个使用SSM框架进行开发的系统,旨在帮助奶茶进行订单管理、商品管理、库存管理、营销活动管理等一系列功能。下面我会为您介绍一下主要的功能模块。 1. 用户管理:用户可以注册登录、修改个人信息,包括姓名、手机号、收货地址等。用户登录后可以查看自己的订单信息和积分。 2. 商品管理:管理员可以添加、编辑和删除商品信息,包括奶茶种类、价格、图片等。用户可以浏览商品,添加到购物车或直接购买。 3. 购物车功能:用户可以将多个商品加入购物车,选择数量和规格后一起结算。可以实现多个商品的批量购买。 4. 订单管理:用户下单后生成订单,包括订单编号、下单时间、配送地址等信息。管理员可以查看订单列表,修改订单状态,以及查询某个用户的订单情况。 5. 库存管理:管理员可以添加、编辑和删除商品库存信息,包括奶茶的库存数量、生产日期、保质期等。库存不足时会提示管理员补货。 6. 营销活动管理:管理员可以设置商品的促销活动,包括满减、折扣、赠品等。用户可以参与活动购买商品享受优惠。 7. 数据统计:管理员可以查看销售额、订单量和用户量等信息,以便对经营情况进行分析和决策。 该系统基于SSM框架开发,具有良好的可扩展性和稳定性。通过该系统,奶茶可以更好地管理订单和商品信息,提高工作效率,提供更好的用户体验。如果您需要该系统的源码,可以联系开发者获取。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值