基于SSM的汽车销售平台-老师满意

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

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

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

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

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

 

4.2 系统总功能结构设计

系统按照用户的实际需求开发而来,贴近生活。从管理员通过正确的账号的密码进入系统,可以使用相关的系统应用。管理员总体负责整体系统的运行维护,统筹协调。

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

图4-5 系统总体功能图

4.3开发流程设计

系统开发流程的分析是一个至关重要的过程,它是指通过系统的设计开发目的初衷、面向使用用户的范围、系统运行和操作的安全性、各种问题的处理以及后台数据的分析能力等各个角度,来对在线汽车销售平台进行设计、开发、搭建和调节,以保证该系统能够顺利的完成,达到预期的工作状态。上述每个环节、每个步骤一开始就要下足功夫,从各个方面、各个角度进行调查研究,进行大量的测试和评估,来保证在线汽车销售平台的正常和该系统的后台数据库的完整性以及安全性,从而把控系统所包含信息的安全性、确保信息进入、出口顺利过渡。然后,对系统和数据进行操作和分析,根据每一步的执行步骤,完成信息的流程图制作过程。

系统的开发对管理模型和系统应用中的数据库进行了分类,创建代码,以及系统测试,如图4-6所显示。

图4-6开发系统流程图

4.4 数据库设计原则

学习程序设计,如果要了解数据库管理系统或者是根据需求而制定的系统接口,就必须创建一种数据库管理系统的模式,用来保存数据资料,这样当在应用编程过程中时候,就不需要再向操作系统页面上加载信息,进而增加了整个系统的工作效率。信息库管理系统中保存着许多数据,应该说是一个管理信息系统建设的中心和基础,而信息库管理系统也为管理信息系统建设提出了新增、删除、更改和搜索的操作功能,使管理信息系统建设能够迅速地查询所需要的数据,而不会直接从程序代码中查找。信息库管理系统通过将信息表的各个组成部分按照特定的方法准确地合并,排序和组成信息库管理系统。

4.5 数据表

把按照数据库理念建立的E-R图,转换为国际关系信息库。在关联数据库中,统计关联主要由统计表所构成,但是表的构成主要体现在表格的数文字段上。如下表所示。

表4-1:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

image

varchar

200

头像

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

序号

列名

数据类型

长度

是否为空

默认值

小数位

说明

1

id

bigint(20)

NO

0

主键

2

addtime

timestamp

NO

CURRENT_TIMESTAMP

创建时间

3

tablename

varchar(200)

200

YES

qicheshangpin

商品表名

4

userid

bigint(20)

NO

0

用户id

5

goodid

bigint(20)

NO

0

商品id

6

goodname

varchar(200)

200

YES

商品名称

7

picture

varchar(200)

200

YES

图片

8

buynumber

int(11)

NO

0

购买数量

9

price

float

YES

单价

10

discountprice

float

YES

会员价

11

goodtype

varchar(200)

200

YES

商品类型

表4-2:购物车

表4-3: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-4:汽车商品

序号

列名

数据类型

长度

是否为空

默认值

小数位

说明

1

id

bigint(20)

NO

0

主键

2

addtime

timestamp

NO

CURRENT_TIMESTAMP

创建时间

3

qichemingcheng

varchar(200)

200

NO

汽车名称

4

qichepinpai

varchar(200)

200

NO

汽车品牌

5

qichexinghao

varchar(200)

200

YES

汽车型号

6

qichetupian

varchar(200)

200

YES

汽车图片

7

qichefenlei

varchar(200)

200

NO

汽车分类

8

zixundianhua

varchar(200)

200

YES

咨询电话

9

xuanchuanshipin

varchar(200)

200

YES

宣传视频

10

peizhijieshao

longtext

4294967295

YES

配置介绍

11

shangshiriqi

date

YES

上市日期

12

clicktime

datetime

YES

最近点击时间

13

price

float

YES

价格

表4-5:收藏表

字段名称

类型

长度

字段说明

主键

默认值

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-6:预约试驾

序号

列名

数据类型

长度

是否为空

默认值

小数位

说明

1

id

bigint(20)

NO

0

主键

2

addtime

timestamp

NO

CURRENT_TIMESTAMP

创建时间

3

qichemingcheng

varchar(200)

200

YES

汽车名称

4

qichetupian

varchar(200)

200

YES

汽车图片

5

yuyueshijian

datetime

NO

预约时间

6

yuyueneirong

varchar(200)

200

YES

7

yonghuming

varchar(200)

200

YES

8

shouji

varchar(200)

200

YES

9

sfsh

varchar(200)

200

YES

是否审核

10

shhf

longtext

4294967295

YES

审核回复

表4-7:订单表

序号

列名

数据类型

长度

是否为空

默认值

小数位

说明

1

id

bigint(20)

NO

0

主键

2

addtime

timestamp

NO

CURRENT_TIMESTAMP

创建时间

3

orderid

varchar(200)

200

NO

订单编号

4

tablename

varchar(200)

200

YES

qicheshangpin

商品表名

5

userid

bigint(20)

NO

0

用户id

6

goodid

bigint(20)

NO

0

商品id

7

goodname

varchar(200)

200

YES

商品名称

8

picture

varchar(200)

200

YES

商品图片

9

buynumber

int(11)

NO

0

购买数量

10

price

float

NO

0

价格

11

discountprice

float

YES

0

折扣价格

12

total

float

NO

0

总价格

13

discounttotal

float

YES

0

折扣总价格

14

type

int(11)

YES

1

0

支付类型

15

status

varchar(200)

200

YES

状态

16

address

varchar(200)

200

YES

地址

17

tel

varchar(200)

200

YES

电话

18

consignee

varchar(200)

200

YES

收货人

19

remark

varchar(200)

200

YES

备注

20

logistics

longtext

4294967295

YES

物流

21

goodtype

varchar(200)

200

YES

商品类型

表4-8:地址表

序号

列名

数据类型

长度

是否为空

默认值

小数位

说明

1

id

bigint(20)

NO

0

主键

2

addtime

timestamp

NO

CURRENT_TIMESTAMP

创建时间

3

userid

bigint(20)

NO

0

用户id

4

address

varchar(200)

200

NO

地址

5

name

varchar(200)

200

NO

收货人

6

phone

varchar(200)

200

NO

电话

7

isdefault

varchar(200)

200

NO

是否默认地址[是/否]

序号

列名

数据类型

长度

是否为空

默认值

小数位

说明

1

id

bigint(20)

NO

0

主键

2

addtime

timestamp

NO

CURRENT_TIMESTAMP

创建时间

3

title

varchar(200)

200

NO

标题

4

introduction

longtext

4294967295

YES

简介

5

picture

varchar(200)

200

NO

图片

6

content

longtext

4294967295

NO

内容

表4-9:公告信息

表4-10:汽车评论表

序号

列名

数据类型

长度

是否为空

默认值

小数位

说明

1

id

bigint(20)

NO

0

主键

2

addtime

timestamp

NO

CURRENT_TIMESTAMP

创建时间

3

refid

bigint(20)

NO

0

关联表id

4

userid

bigint(20)

NO

0

用户id

5

nickname

varchar(200)

200

YES

用户名

6

content

longtext

4294967295

NO

评论内容

7

reply

longtext

4294967295

YES

回复内容

序号

列名

数据类型

长度

是否为空

默认值

小数位

说明

1

id

bigint(20)

NO

0

主键

2

addtime

timestamp

NO

CURRENT_TIMESTAMP

创建时间

3

qichepinpai

varchar(200)

200

NO

汽车品牌

表4-11:汽车品牌

表4-12:车辆分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

cheliangfenlei

varchar

200

车辆分类

表4-13:用户表

序号

列名

数据类型

长度

是否为空

默认值

小数位

说明

1

id

bigint(20)

NO

0

主键

2

addtime

timestamp

NO

CURRENT_TIMESTAMP

创建时间

3

yonghuming

varchar(200)

200

NO

用户名

4

mima

varchar(200)

200

NO

密码

5

xingming

varchar(200)

200

NO

姓名

6

xingbie

varchar(200)

200

YES

性别

7

touxiang

varchar(200)

200

YES

头像

8

shouji

varchar(200)

200

NO

手机

9

shenfenzheng

varchar(200)

200

NO

身份证

10

money

float

YES

0

余额

表4-14:在线客服

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

adminid

bigint

管理员id

ask

longtext

4294967295

提问

reply

longtext

4294967295

回复

isreply

int

是否回复

5 系统详细设计

5.1前台系统模块实现

用户登录系统可以查看在线汽车销售平台的导航条显示首页、汽车商品、公告信息、个人中心、后台管理、购物车、客服咨询,系统首页界面如图5-1所示:

图5-1 系统首页界面

当用户进入系统进行相关操作前必须进行输入个人信息进行注册操作,注册成功后通过输入账号和密码,并点击登录进行系统登录操作。界面如图5-2所示:

图5-2 用户注册界面

图5-3 用户登录界面

用户点击汽车商品,在页面的输入栏中填写车型、品牌、名称,进行查询。如图5-4所示:

图5-4 新车上架界面

通过点击车辆图片进入到车辆详细介绍信息界面,可以查看到车辆价格,品牌分类,型号,上市日期,咨询电话、详细介绍等详细信息,可以对该信息进行添加到购物车,立即购买,预约试驾的操作。如图5-5所示:

图5-5 车辆详情页面

用户点击预约试驾:在预约试驾页面中选择预约的时间,然后点击确定即可预约,如图5-6所示:

图5-6预约填写页面

用户点击客服咨询可以输入内容进行咨询,管理员可以在后台进行查看并回复,达到用户和管理员交流的效果,如图5-7所示:

图5-7在线咨询页面

用户在个人中心界面可以查看到自己的个人详细信息详情,可以对信息进行更新和退出登录的操作,在该界面可以对账户余额进行充值操作,还可以对我的收藏进行详细操作,如图5-8所示:

图5-8个人中心页面

5.2后台管理员模块实现

管理员登录,在登录页面正确输入用户名和密码后,进入操作系统进行操作;如图5-9所示。                               

图5-9 管理员登录界面

管理员进入系统主页面,主要功能包括对系统首页、用户管理、汽车品牌管理、汽车分类管理、汽车商品管理、预约记录管理、系统管理、订单管理等进行操作。管理员主页面如图5-10所示:

图5-10管理员主界面

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

源码获取

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

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

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

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

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

👇下方有我的微信名片👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值