项目介绍
对于这个信息化时代,现在任何行业的工作都难以离开互联网技术的支持。目前国内的中小型零食销售商店大多都没有配置基于互联网的零食销售系统,甚至还有采用传统的手工记账方式的零食店,这样的管理模式不但不利于商家对于零食的统一管理,而且也不利于消费者对零食这种有季节性的特殊零食实时关注,这对于买卖双方都是极其不利的。
因此零食销售需要网络化、透明化,商家可以通过本系统来对零食数据库中的零食信息,零食样式,零食价格等等一系列信息进行有效的管理。而用户可以通过零食销售系统页面来查询零食的价格,零食的品种等零食信息,并且可以通过系统来进行下单,从而购买零食。这样整个系统便可以做到对商家销售的简单管理化,也方便用户购买零食。
本系统采用的是Html+Css+Vue作为系统的前台实现技术,采用MySQL数据库作为系统数据库、Model2开发模型作为系统的开发模型。
在经过大量的需求分析之后,本系统分为前台用户模块以及后台管理员模块,前台用户模块主要负责零食的浏览、购物车、订单等功能。而后台管理员模块则主要负责零食信息及其类别的管理,订单管理,用户管理的功能。
技术介绍
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
功能介绍
本系统可分为两个大的模块,即前台用户模块和后台管理员模块,前台用户模块用户可以进行浏览查询零食的各种信息,添加购物车,下订单等各种操作。后台管理员模块管理员可以进行零食的上架以及下架处理,还有处理订单,零食分类等功能。
3.3.1前端模块
前台用户模块应具有以下功能:
1.用户注册和登录功能:用户通过注册并激活之后可以登录访问本系统。登录成功的用户,可以查看系统内的信息。
2.零食展示功能:登录用户或者非登录用户(游客)都可以查看本校园外卖零食购物商城系统发布的所有零食信息。
3.零食按类查询功能:登录用户或者游客,可以通过零食的不同类别来查询零食。
4.购物车功能:只有登录后的会员才可以使用购物车,可以向购物车中添加零食,也可以删除购物车中的零食。
5.订单管理功能:只有登录的会员才可以使用该功能,用户可以在该模块中查看订单的详细信息,也可进行付款,以及确认收货的操作。
6.用户信息修改模块:只有登录后才可以使用该模块功能,在该模块中用户可以修改自己的用户名,密码信息。
3.3.2 后台模块
后台管理员操作模块应具有以下功能:
1.用户信息管理:后台管理员可以查询用户信息,也可以删除用户和恢复用户。
2.零食及类别管理:后台管理员可以添加新的零食类别,也可以删除旧类别。
3.订单管理:后台管理员可以根据订单的状态来查询订单信息,还可以进行发货。
4.零食详细信息管理:后台管理员可以对零食进行下架和新品零食上架的处理,还可以修改零食的价格、零食名等。
核心代码
package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {
@Resource
private CaiwuService caiwuService;
@PostMapping
public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
caiwuService.add(caiwu);
return Result.success(caiwu);
}
@PostMapping("/deleteList")
public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
caiwuService.deleteList(caiwu.getList());
return Result.success();
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
caiwuService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody CaiwuVo caiwu) {
caiwuService.update(caiwu);
return Result.success();
}
@GetMapping("/{id}")
public Result<Caiwu> detail(@PathVariable Integer id) {
Caiwu caiwu = caiwuService.findById(id);
return Result.success(caiwu);
}
@GetMapping
public Result<List<Caiwu>> all() {
return Result.success(caiwuService.list());
}
@PostMapping("/page")
public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
return Result.success(caiwuService.findPage(caiwuVo));
}
@PostMapping("/login")
public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
Caiwu login = caiwuService.login(caiwu);
// if(!login.getStatus()){
// return Result.error("1001","状态限制,无法登录系统");
// }
if(login != null) {
HashMap hashMap = new HashMap();
hashMap.put("user", login);
Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
String token = JwtUtil.creatToken(map);
hashMap.put("token", token);
return Result.success(hashMap);
}else {
return Result.error();
}
}
@PutMapping("/updatePassword")
public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
Caiwu caiwu = caiwuService.findById(info.getId());
String oldPassword = SecureUtil.md5(info.getMima());
if (!oldPassword.equals(caiwu.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewPassword()));
Caiwu caiwu1 = new Caiwu();
BeanUtils.copyProperties(info, caiwu1);
caiwuService.update(caiwu1);
return Result.success();
}
}
数据库参考
--
-- Current Database: `springboott3et63r7`
--
/*!40000 DROP DATABASE IF EXISTS `springboott3et63r7`*/;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `springboott3et63r7` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
USE `springboott3et63r7`;
--
-- Table structure for table `aboutus`
--
DROP TABLE IF EXISTS `aboutus`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `aboutus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`title` varchar(200) NOT NULL COMMENT '标题',
`subtitle` varchar(200) DEFAULT NULL COMMENT '副标题',
`content` longtext NOT NULL COMMENT '内容',
`picture1` longtext COMMENT '图片1',
`picture2` longtext COMMENT '图片2',
`picture3` longtext COMMENT '图片3',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='关于我们';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `aboutus`
--
LOCK TABLES `aboutus` WRITE;
/*!40000 ALTER TABLE `aboutus` DISABLE KEYS */;
INSERT INTO `aboutus` VALUES (1,'2024-04-06 09:59:14','关于我们','ABOUT US','当你设想门外是寒冷可怕的世界时,你还应该开门出去看看,是否真的如此。如果你有信心,你对前途就不犹豫了。如果你有勇气,你就不怕前途是否有困难或危险了每个人心中都应有两盏灯,一盏是希望的灯,一盏是勇气的灯。有了这两盏灯,我们就不怕海上的黑暗和风涛的险恶了。人的一生很像是在雾中行走。远远望去,只是迷蒙一片,辨不出方向和吉凶。可是,当你鼓起勇气,放下恐惧和怀疑,一步一步向前走去的时候,你就会发现,每走一步,你都能把下一步路看得清楚一点。“往前走,别站在远远的地方观望!”你就可以找到你的方向。','upload/aboutus_picture1.jpg','upload/aboutus_picture2.jpg','upload/aboutus_picture3.jpg');
/*!40000 ALTER TABLE `aboutus` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `address`
--
DROP TABLE IF EXISTS `address`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `address` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`userid` bigint(20) NOT NULL COMMENT '用户id',
`address` varchar(200) NOT NULL COMMENT '地址',
`name` varchar(200) NOT NULL COMMENT '收货人',
`phone` varchar(200) NOT NULL COMMENT '电话',
`isdefault` varchar(200) NOT NULL COMMENT '是否默认地址[是/否]',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='地址';
/*!40101 SET character_set_client = @saved_cs_client */;
系统效果图