springboot093基于springboot的厨艺交流平台的设计与实现 免费分享源码

博主介绍:专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址

4.2系统功能结构设计

下图就是系统功能结构图。

图4.1 系统功能结构图

4.3数据库设计

4.3.1数据库E-R图设计

程序设计是离不开对应数据库的设计操作的,这样的做法就是减少数据对程序的依赖性,所以数据库的设计也是需要花费大量的日常时间来进行设计的,在设计中对程序开发需要存储的数据信息进行实体划分,先确认实体,然后设计实体的属性等操作,这种设计就是数据库设计里面不能少的必须有的E-R模型设计。为了降低程序设计的对应的数据库设计难度,开发人员也可以使用相应的工具来进行E-R模型设计,现在市面上设计E-R模型的工具有PowerDesigner建模工具,Navicat制作工具,还有微软的Visio绘图工具。为了简便起见,本程序在设计E-R模型的时候,就选用了微软的Visio这款功能强大,操作便利的绘图工具。

下面就展示厨艺交流平台的实体E-R图。

4.3.2 数据库结构设计

本次程序开发选用的数据库管理工具是MySQL数据管理工具,使用它存放数据也需要创建程序对应的数据库文件,并命名刚创建的数据库文件,有了数据库也需要创建各种数据表来充实数据库,在数据表的创建中,不仅需要对数据表命名,也需要对数据表的字段进行设计,包括每个数据表里面需要设置的字段名称,字段对应的数据类型信息,字段的主键设置这个也是不可缺少的,因为每个数据表里面的主键就是标记着这个数据表跟其他数据表相区分的唯一标志。就相当于生活中的每个人都有姓名,但是上网搜索自己的名字,会发现全国上下有很多人的名字跟自己的名字一模一样,包括姓氏以及名字,区分每个人的唯一信息就是每个人的身份证号信息,主键在数据表里面也是起着这样的重要作用。下面就介绍本次开发的程序厨艺交流平台的数据表结构信息。

表4.1 菜谱分类

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

caipufenlei

varchar(200)

菜谱分类

表4.2 菜谱信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

caipinbianhao

varchar(200)

NULL

菜品编号

caipinmingcheng

varchar(200)

NULL

菜品名称

caipufenlei

varchar(200)

NULL

菜谱分类

kouwei

varchar(200)

NULL

口味

nandu

varchar(200)

NULL

难度

pengrenshizhang

varchar(200)

NULL

烹饪时长

tupian

varchar(200)

NULL

图片

yuancailiao

longtext

NULL

原材料

caipinjieshao

longtext

NULL

菜品介绍

thumbsupnum

int(11)

0

crazilynum

int(11)

0

clicknum

int(11)

0

点击次数

表4.3 购物车表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

tablename

varchar(200)

shangpinxinxi

商品表名

userid

bigint(20)

用户id

goodid

bigint(20)

商品id

goodname

varchar(200)

NULL

商品名称

picture

varchar(200)

NULL

图片

buynumber

int(11)

购买数量

price

float

NULL

单价

discountprice

float

NULL

会员价

表4.4 健康文章

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

wenzhangbiaoti

varchar(200)

NULL

文章标题

wenzhangfengmian

varchar(200)

NULL

文章封面

wenzhangleixing

varchar(200)

NULL

文章类型

fabushijian

datetime

NULL

发布时间

wenzhangneirong

longtext

NULL

文章内容

表4.5 美食日志

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

rizhibianhao

varchar(200)

NULL

日志编号

rizhibiaoti

varchar(200)

NULL

日志标题

rizhifengmian

varchar(200)

NULL

日志封面

yonghuzhanghao

varchar(200)

NULL

用户账号

yonghuxingming

varchar(200)

NULL

用户姓名

fabushijian

datetime

NULL

发布时间

meishirizhi

longtext

NULL

美食日志

thumbsupnum

int(11)

0

crazilynum

int(11)

0

表4.6 订单

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

orderid

varchar(200)

订单编号

tablename

varchar(200)

shangpinxinxi

商品表名

userid

bigint(20)

用户id

goodid

bigint(20)

商品id

goodname

varchar(200)

NULL

商品名称

picture

varchar(200)

NULL

商品图片

buynumber

int(11)

购买数量

price

float

0

价格/积分

discountprice

float

0

折扣价格

total

float

0

总价格/总积分

discounttotal

float

0

折扣总价格

type

int(11)

1

支付类型

status

varchar(200)

NULL

状态

address

varchar(200)

NULL

地址

tel

varchar(200)

NULL

电话

consignee

varchar(200)

NULL

收货人

表4.7 商品分类

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

shangpinfenlei

varchar(200)

商品分类

表4.8 商品信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

shangpinmingcheng

varchar(200)

NULL

商品名称

shangpinbianhao

varchar(200)

NULL

商品编号

shangpinfenlei

varchar(200)

NULL

商品分类

tupian

varchar(200)

NULL

图片

shangpinxiangqing

longtext

NULL

商品详情

price

float

价格

onelimittimes

int(11)

-1

单限

alllimittimes

int(11)

-1

库存

表4.9 食材分类

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

shicaifenlei

varchar(200)

食材分类

表4.10 食材信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

shicaimingcheng

varchar(200)

NULL

食材名称

shicaichandi

varchar(200)

NULL

食材产地

shicaididian

varchar(200)

NULL

食材地点

shicaireliang

varchar(200)

NULL

食材热量

fabushijian

datetime

NULL

发布时间

shicaifengmian

varchar(200)

NULL

食材封面

shiyongyiji

longtext

NULL

食用宜忌

xuangoujiqiao

longtext

NULL

选购技巧

thumbsupnum

int(11)

0

crazilynum

int(11)

0

表4.11 收藏表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

userid

bigint(20)

用户id

refid

bigint(20)

NULL

收藏id

tablename

varchar(200)

NULL

表名

name

varchar(200)

收藏名称

picture

varchar(200)

收藏图片

表4.12 管理员信息表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

username

varchar(100)

用户名

password

varchar(100)

密码

role

varchar(100)

管理员

角色

addtime

timestamp

CURRENT_TIMESTAMP

新增时间

表4.13 用户

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

yonghuzhanghao

varchar(200)

用户账号

yonghuxingming

varchar(200)

用户姓名

mima

varchar(200)

密码

xingbie

varchar(200)

NULL

性别

nianling

int(11)

NULL

年龄

lianxidianhua

varchar(200)

NULL

联系电话

dianziyouxiang

varchar(200)

NULL

电子邮箱

money

float

0

余额


5 系统实现

5.1食材分类管理

管理员管理食材分类,可以添加,修改,删除食材分类信息。下图就是食材分类管理页面。

图5.1 食材分类管理页面

5.2 用户信息管理

管理员管理用户信息,可以添加,修改,删除用户信息信息。下图就是用户信息管理页面。

图5.2用户信息管理页面

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.DiscusscaipuxinxiEntity;
import com.entity.view.DiscusscaipuxinxiView;

import com.service.DiscusscaipuxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 菜谱信息评论表
 * 后端接口
 * @author 
 * @email 
 * @date 2021-04-30 10:01:54
 */
@RestController
@RequestMapping("/discusscaipuxinxi")
public class DiscusscaipuxinxiController {
    @Autowired
    private DiscusscaipuxinxiService discusscaipuxinxiService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,DiscusscaipuxinxiEntity discusscaipuxinxi,
		HttpServletRequest request){
        EntityWrapper<DiscusscaipuxinxiEntity> ew = new EntityWrapper<DiscusscaipuxinxiEntity>();
		PageUtils page = discusscaipuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discusscaipuxinxi), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,DiscusscaipuxinxiEntity discusscaipuxinxi, 
		HttpServletRequest request){
        EntityWrapper<DiscusscaipuxinxiEntity> ew = new EntityWrapper<DiscusscaipuxinxiEntity>();
		PageUtils page = discusscaipuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discusscaipuxinxi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( DiscusscaipuxinxiEntity discusscaipuxinxi){
       	EntityWrapper<DiscusscaipuxinxiEntity> ew = new EntityWrapper<DiscusscaipuxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( discusscaipuxinxi, "discusscaipuxinxi")); 
        return R.ok().put("data", discusscaipuxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(DiscusscaipuxinxiEntity discusscaipuxinxi){
        EntityWrapper< DiscusscaipuxinxiEntity> ew = new EntityWrapper< DiscusscaipuxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( discusscaipuxinxi, "discusscaipuxinxi")); 
		DiscusscaipuxinxiView discusscaipuxinxiView =  discusscaipuxinxiService.selectView(ew);
		return R.ok("查询菜谱信息评论表成功").put("data", discusscaipuxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        DiscusscaipuxinxiEntity discusscaipuxinxi = discusscaipuxinxiService.selectById(id);
        return R.ok().put("data", discusscaipuxinxi);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        DiscusscaipuxinxiEntity discusscaipuxinxi = discusscaipuxinxiService.selectById(id);
        return R.ok().put("data", discusscaipuxinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody DiscusscaipuxinxiEntity discusscaipuxinxi, HttpServletRequest request){
    	discusscaipuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(discusscaipuxinxi);
        discusscaipuxinxiService.insert(discusscaipuxinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody DiscusscaipuxinxiEntity discusscaipuxinxi, HttpServletRequest request){
    	discusscaipuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(discusscaipuxinxi);
        discusscaipuxinxiService.insert(discusscaipuxinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody DiscusscaipuxinxiEntity discusscaipuxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(discusscaipuxinxi);
        discusscaipuxinxiService.updateById(discusscaipuxinxi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        discusscaipuxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<DiscusscaipuxinxiEntity> wrapper = new EntityWrapper<DiscusscaipuxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = discusscaipuxinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

5.3 菜谱分类管理

管理员管理菜谱分类,可以添加,修改,删除菜谱分类信息。下图就是菜谱分类管理页面。

图5.3 菜谱分类管理页面

5.4菜谱信息管理

管理员管理菜谱信息,可以添加,修改,删除菜谱信息信息。下图就是菜谱信息管理页面。

图5.4 菜谱信息管理页面

5.5食材信息管理

管理员管理食材信息,可以添加,修改,删除食材信息信息。下图就是食材信息管理页面。

图5.5 食材信息管理页面

源码下载地址:

springboot093基于springboot的厨艺交流平台的设计与实现代码.zip计算机毕业设计资源-CSDN文库
大家点赞、收藏、关注、评论啦  其他的定制服务 商务合作  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翰文编程

你的鼓励 是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值