基于springboot的汽车维修配件销售平台-开题免费【论文、源码】

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

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

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

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

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

4  系统的设计

4.1 系统总功能模块设计

汽车维修配件销售平台分两大部分,即管理员管理和员工管理。系统按照用户的实际需求开发而来,贴近生活。从管理员出拿到分配好的账号密码可以进入系统,使用相关的系统应用。管理员总体负责整体系统的运行维护,统筹协调。

系统整体模块设计:系统分为管理员和员工两大用户角色,系统管理员有最大的权限,整体功能展示如图4-1所示。

图4-1 系统整体功能图

4.2 系统数据库设计

4.2.1 数据库系统概要设计

从设计到制作研发一个系统,需要用到的技术很多,对于开发程序语言、数据库和框架布局都有严格的要求[5]。该系统数据存放使用MySql的数据库,该数据库轻便快速,日常使使用系统十分稳定,更容易维护运行[6]。

4.2.2 E-R模型结构设计

E-R图由实体与有关实体关联相结合构成的图,利用E-R图对清楚地表达出系统内的实体之间的关联。在系统中对一些主要的几个关键实体如下图。

(1) 维修登记实体属性图如下图4-2所示。

图4-2维修登记实体属性图

(2) 采购零件实体属性图如下图4-3所示。

图4-3采购零件实体属性图

(3) 维修领料实体属性图如下图4-4所示。

图4-4维修领料实体属性图

(4) 销售业绩实体属性图如下图4-5所示。

图4-5销售业绩实体属性图

4.3数据表设计

系统创建数据库和表之间关联,期间花费了不少时间,尽力把表格完善,更好的呈现出来,让表更加明了,更加清晰。系统在MySql的可视化软件Navicat premium创建的数据表,简洁明了的设计让数据库的创建操作更加快捷,数据表的详细情况如下表所示。

表4-1: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-2:汽车零件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

lingjianbianhao

varchar

200

零件编号

lingjianmingcheng

varchar

200

零件名称

lingjianfenlei

varchar

200

零件分类

tupian

longtext

4294967295

图片

pinpai

varchar

200

品牌

guige

varchar

200

规格

danjia

int

单价

shuliang

int

数量

lingjianyongtu

longtext

4294967295

零件用途

gengxinshijian

date

更新时间

表4-3:平台公告

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-4:零件退单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tuihuidanhao

varchar

200

退回单号

lingjianmingcheng

varchar

200

零件名称

lingjianfenlei

varchar

200

零件分类

danjia

int

单价

shuliang

int

数量

tuihuizonge

int

退回总额

gongyingshang

varchar

200

供应商

tuidanyuanyin

longtext

4294967295

退单原因

tuidanshijian

datetime

退单时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-5:零件分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

lingjianfenlei

varchar

200

零件分类

表4-6:客户信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kehubianhao

varchar

200

客户编号

kehuxingming

varchar

200

客户姓名

kehuxingbie

varchar

200

客户性别

lianxidianhua

varchar

200

联系电话

kehuzhuzhi

varchar

200

客户住址

cheliangmingcheng

varchar

200

车辆名称

chepaihao

varchar

200

车牌号

cheshangwupin

varchar

200

车上物品

cheliangqingxi

varchar

200

车辆清洗

cheliangjiancha

varchar

200

车辆检查

cheliangzhuangkuang

longtext

4294967295

车辆状况

beizhu

longtext

4294967295

备注

ticheshijian

date

提车时间

dengjiriqi

date

登记日期

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

表4-7:员工

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

mima

varchar

200

密码

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

nianling

int

年龄

shouji

varchar

200

手机

表4-8:供应商

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gongyingshang

varchar

200

供应商

fengmian

longtext

4294967295

封面

lianxiren

varchar

200

联系人

lianxidianhua

varchar

200

联系电话

dizhi

varchar

200

地址

jingyingfanwei

longtext

4294967295

经营范围

表4-9:销售业绩

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

weixiudanhao

varchar

200

维修单号

kehuxingming

varchar

200

客户姓名

cheliangmingcheng

varchar

200

车辆名称

chepaihao

varchar

200

车牌号

cailiaofei

int

材料费

weixiufei

int

维修费

zongfeiyong

int

总费用

wanchengshijian

date

完成时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-10:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-11:维修领料

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

lingliaodanhao

varchar

200

领料单号

lingjianmingcheng

varchar

200

零件名称

danjia

int

单价

shuliang

int

数量

lingliaojiage

int

领料价格

lingliaoshijian

datetime

领料时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-12:采购零件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

caigoudanhao

varchar

200

采购单号

lingjianmingcheng

varchar

200

零件名称

lingjianfenlei

varchar

200

零件分类

pinpai

varchar

200

品牌

guige

varchar

200

规格

danjia

int

单价

shuliang

int

数量

caigouzongjia

int

采购总价

gongyingshang

varchar

200

供应商

caigouyuanyin

longtext

4294967295

采购原因

caigouriqi

date

采购日期

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-13:维修登记

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

weixiubianhao

varchar

200

维修编号

cheliangmingcheng

varchar

200

车辆名称

chepaihao

varchar

200

车牌号

cheliangzhuangkuang

varchar

200

车辆状况

suoxulingjian

varchar

200

所需零件

weixiuneirong

longtext

4294967295

维修内容

dengjiriqi

date

登记日期

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

表4-14:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

以上就是汽车维修配件销售平台中重点使用的关键数据库表格,表格全部展示过于杂乱,选取重点表格展示。

5  系统的实现

5.1系统登录实现

系统登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,进入操作系统进行操作;如图5-1所示。                               

图5-1 系统登录界面

5.2管理员模块实现

管理员进入主页面,主要功能包括对个人中心、员工管理、零件分类管理、客户信息管理、维修登记管理、汽车零件管理、维修领料管理、采购零件管理、零件退单管理、销售业绩管理、供应商管理、系统管理等进行操作。管理员主页面如图5-2所示:

图5-2 管理员主界面

管理员点击员工管理。在员工页面输入账号和姓名进行查询、新增或删除员工列表,并根据需要对员工详情信息进行详情、修改或删除操作;如图5-3所示:

图5-3员工管理界面

管理员点击客户信息管理。在客户信息页面输入客户姓名、车牌号、账号和姓名进行查询或删除客户信息列表,并根据需要对客户详情信息进行详情、修改或删除操作;如图5-4所示:

图5-4客户信息管理界面

管理员点击维修登记管理。在维修登记页面输入车辆名称、车牌号、所需零件和账号进行查询或删除维修登记列表,并根据需要对维修登记详情信息进行详情、修改或删除操作;如图5-5所示:

图5-5维修登记管理界面

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实战项目持续更新中~​

👇下方有我的微信名片👇

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值