【开源】基于Vue.js的二手车交易系统

在这里插入图片描述

文末获取源码,项目编号: S 084 。 \color{red}{文末获取源码,项目编号:S084。} 文末获取源码,项目编号:S084


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 数据中心模块
    • 2.2 二手车档案管理模块
    • 2.3 车辆预约管理模块
    • 2.4 车辆预定管理模块
    • 2.5 车辆留言板管理模块
    • 2.6 车辆资讯管理模块
  • 三、系统设计
    • 3.1 E-R图设计
    • 3.2 可行性分析
      • 3.2.1 技术可行性分析
      • 3.2.2 操作可行性
      • 3.2.3 经济可行性
    • 3.3 数据库设计
      • 3.3.1 用户信息表
      • 3.3.2 二手车辆档案表
      • 3.3.3 二手车预约表
      • 3.3.4 二手车预定表
      • 3.3.5 留言板表
  • 四、系统展示
  • 五、核心代码
    • 5.1 新增二手车预约单
    • 5.2 查询二手车预约单
    • 5.3 查询全部二手车
    • 5.4 审核预订单
    • 5.5 查询单个二手车
  • 六、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的二手车交易系统,分为管理后台和用户网页,包含了二手车档案、预约订单模块、预订单模块、留言板模块和车辆资讯模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,二手车交易系统基于角色的访问控制,给管理员、普通用户角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

随着我国互联网技术的不断发展,电子商务受到了广大年轻人的欢迎。在二手汽车行业中也是如此,由于疫情防控等原因,线上二手车销售额逐年增加,但我国目前还没有一套高效、稳定的二手汽车交易网站,满足人民群众的销售、过户、签合同需求。本文将针对二手汽车市场的实际需求,开发一个看车、下单、过户一体化的二手汽车交易网站,使用SpringBoot和Vue框架分别开发后端和前端,使用MySQL存储系统数据,以满足二手市场线上销售的需要。

1.2 项目录屏

源码下载


二、功能模块

二手车置换网站的功能需求主要包括六大模块:数据中心模块、二手车档案模块、车辆预约模块、车辆预定模块、车辆留言模块、车辆资讯模块。这是一个基于浏览器交互的web管理后台。各模块的详细信息如下。

2.1 数据中心模块

数据中心模块包含一个二手车交易网站的基本系统配置,包括连接用户管理、二手车平台组织结构管理、用户菜单权限管理、系统日志管理、公共文件云盘管理等。

在对接用户管理模块中,二手车运维公司的工作人员负责增删改查用户数据。

二手车组织架构是指二手车管理运营公司的组织架构。此模块针对管理这些组织结构和员工的部门所有者的部门级别进行定制。

公有云盘管理模块用于集中维护二手车交易网站的图片,如二手车照片、保险合同、三方合同等。

2.2 二手车档案管理模块

二手汽车交易网站的运维人员可以对二手车档案模块的数据进行增删改查处理,并且可以Excel导出二手车数据。

2.3 车辆预约管理模块

预约车辆意味着买方具有像卖方一样要求试用的原始意图。注册用户可以使用二手车配置文件模块发起预约请求。在收到预订请求后,卖方将积极联系买方进行后续预约测试。

2.4 车辆预定管理模块

车辆预定是购买者购买所选车辆的决定。买家可以在二手车简介中选择自己喜欢的二手车进行预订,输入理想价格和选项的审核,卖家就可以获得交易订单,卖方保留接受或拒绝买方预订要求的权利。

2.5 车辆留言板管理模块

在出售二手车的过程中,协商和冲突是不可避免的。因此,二手车销售网站专门设计了公告栏模块,解决二手车买卖双方、买家与平台之间的纠纷。双方均可在论坛上留言或回复。

2.6 车辆资讯管理模块

车辆信息管理模块用于在二手车平台上发布车辆消息和防骗推文。


三、系统设计

3.1 E-R图设计

目前,最常用的数据库是关系数据库。他们的系统设计是面向对象的。使用行和列存储数据。这对用户来说更加方便。注意对象类如何映射到数据库中的2D表是很重要的。因此,可以利用建模工具设计系统的E-R图,如下图所示。

在这里插入图片描述

3.2 可行性分析

3.2.1 技术可行性分析

Java是一种流行的开发语言。本系统采用Java语言编写,采用JSP进行动态界面的设计和显示,采用MySQL数据库完成系统设计。相对而言,Java语言在开发语言中是比较容易学习的,Java也是我在大学生活中比较喜欢的开发语言,所以我选择Java来开发二手汽车交易网站的后端。所以,二手汽车交易网站的技术选型是没有问题的。

3.2.2 操作可行性

本系统采用Java作为农业贸易的开发语言。操作人员只需要了解如何正常上网,可以使用操作系统,不需要深厚的计算机知识。这是一个高科技时代,智能设备已经进入千家万户,所以上网对大多数人来说是很容易的。

3.2.3 经济可行性

本系统是一个模拟的二手车交易网站,成本压力小。现在电脑很流行。你所需要做的就是在你自己的电脑上设计这个系统。你需要设计和使用的软件可以从互联网上搜索和下载。它们基本上是免费的,因此开发成本相对较低。同时,您可以在任何地方设计和开发您的系统,而无需财务方面的努力。该系统对计算机配置没有严格的要求,即不需要非常高级的配置。因此,该系统在经济上是可行的。

3.3 数据库设计

3.3.1 用户信息表

用户信息表,唯一的代码,以ID作为关键字段,创建人,创建时间,最近修改日期,最近更新日期,家庭地址,个人头像,个人签名,个人电子邮件地址,个人手机号码,用户名,登录密码,性别。还有用户状态,街道,用户类型,登录账号,等等。

在这里插入图片描述

3.3.2 二手车辆档案表

二手车档案表,二手车号是重要的字段,如二手车1·号、品牌、驾驶年、试运行时间、车辆照片、三方检验照片、价格、排量、型号、联系方式、电话、备注等。
在这里插入图片描述

3.3.3 二手车预约表

二手车。预约表,包括预约ID、二手车ID、二手车品牌、二手车价格、车辆照片、卖家姓名、卖家手机、买家ID、买家姓名、预订时间等字段,预约ID是一个关键字段。

在这里插入图片描述

3.3.4 二手车预定表

二手车预定表,预订ID、二手车ID、二手车品牌、二手车价格、车辆照片、卖家姓名、卖家手机、买家ID、买家姓名、预订时间、签订合同、签订合同、审批等,其中 ID是关键字段。
在这里插入图片描述

3.3.5 留言板表

留言板表有留言内容、留言时间戳、留言人等字段,其中留言编号为主键。

在这里插入图片描述


四、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


五、核心代码

5.1 新增二手车预约单

@RequestMapping(value = "/addLook", method = RequestMethod.GET)
@ApiOperation(value = "新增二手车预约单")
public Result<Object> addLook(@RequestParam String carId){
    UsedCar usedCar = iUsedCarService.getById(carId);
    if(usedCar == null) {
        return ResultUtil.error("二手车不存在");
    }
    String userId = securityUtil.getCurrUser().getId();
    CarLook carLook = new CarLook();
    carLook.setCarId(carId);
    carLook.setBuyId(userId);
    carLook.setOrderTime(DateUtil.now());
    iCarLookService.saveOrUpdate(carLook);
    return ResultUtil.success();
}

5.2 查询二手车预约单

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询二手车预约单")
public Result<IPage<CarLook>> getByPage(@ModelAttribute CarLook carLook,@ModelAttribute PageVo page){
    QueryWrapper<CarLook> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(carLook.getBrand())) {
        qw.inSql("id","select id from t_car_look where car_id in (select id from t_used_car where brand like '" + carLook.getBrand() + "')");
    }
    if(!ZwzNullUtils.isNull(carLook.getBuyName())) {
        qw.inSql("id","select id from t_car_look where buy_id in (select id from t_user where nickname like '" + carLook.getBuyName() + "')");
    }
    if(!ZwzNullUtils.isNull(carLook.getSellerName())) {
        qw.inSql("id","select id from t_car_look where car_id in (select id from t_used_car where sell_name like '" + carLook.getSellerName() + "')");
    }
    if(!ZwzNullUtils.isNull(carLook.getOrderTime())) {
        qw.like("order_time",carLook.getOrderTime());
    }
    IPage<CarLook> data = iCarLookService.page(PageUtil.initMpPage(page),qw);
    for (CarLook look : data.getRecords()) {
        if(!ZwzNullUtils.isNull(look.getBuyId())) {
            User user = iUserService.getById(look.getBuyId());
            if(user != null) {
                look.setBuyName(user.getNickname());
            }
        }
        if(!ZwzNullUtils.isNull(look.getCarId())) {
            UsedCar usedCar = iUsedCarService.getById(look.getCarId());
            if(usedCar != null) {
                look.setBrand(usedCar.getBrand());
                look.setSellerMoney(usedCar.getMoney());
                look.setImageUrl(usedCar.getImageUrl());
                look.setSellerName(usedCar.getSellName());
                look.setSellerMobile(usedCar.getSellMobile());
            }
        }
    }
    return new ResultUtil<IPage<CarLook>>().setData(data);
}

5.3 查询全部二手车

@RequestMapping(value = "/getAllOnWeb", method = RequestMethod.GET)
@ApiOperation(value = "查询全部二手车")
public Result<List<UsedCar>> getAllOnWeb(@RequestParam(required = false) String title){
    QueryWrapper<UsedCar> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(title)) {
        // qw.and(wrapper -> wrapper.eq("system_guishu", ParameterSettings.YH_XZXT).or().eq("system_guishu",ParameterSettings.YH_YXXT).or().eq("system_guishu",ParameterSettings.YH_SJYFGS));
        if(title.startsWith("价格")) {
            String[] sp = title.split("价格");
            if(sp.length > 1) {
                String[] spp = sp[1].split("-");
                if(spp.length > 1) {
                    try {
                        qw.ge("money",BigDecimal.valueOf(Long.parseLong(spp[0])));
                        qw.le("money",BigDecimal.valueOf(Long.parseLong(spp[1])));
                    }catch (Exception e) {
                        return ResultUtil.error("价格搜索输入非数字");
                    }
                }
            }
        } else if(title.startsWith("排量")) {
            String[] sp = title.split("排量");
            if(sp.length > 1) {
                qw.eq("license",sp[1]);
            }
        } else {
            qw.like("brand",title);
        }
    }
    List<UsedCar> carList = iUsedCarService.list(qw);
    for (UsedCar car : carList) {
        QueryWrapper<CarOrder> carQw = new QueryWrapper<>();
        carQw.eq("car_id",car.getId());
        carQw.eq("audit_flag",true);
        if(iCarOrderService.count(carQw) > 0) {
            car.setCanOrder(true);
        }
    }
    return new ResultUtil<List<UsedCar>>().setData(carList);
}

5.4 审核预订单

@RequestMapping(value = "/doAudit", method = RequestMethod.POST)
@ApiOperation(value = "审核预订单")
public Result<Object> doAudit(@RequestParam String id){
    CarOrder carOrder = iCarOrderService.getById(id);
    if(carOrder == null) {
        return ResultUtil.error("订单不存在");
    }
    carOrder.setAuditFlag(true);
    iCarOrderService.saveOrUpdate(carOrder);
    return ResultUtil.success();
}

5.5 查询单个二手车

@RequestMapping(value = "/getOneOnWeb", method = RequestMethod.GET)
@ApiOperation(value = "查询单个二手车")
public Result<UsedCar> getOneOnWeb(@RequestParam String id){
    UsedCar car = iUsedCarService.getById(id);
    if(car == null) {
        return ResultUtil.error("二手车不存在");
    }
    QueryWrapper<CarOrder> qw = new QueryWrapper<>();
    qw.eq("car_id",id);
    qw.eq("audit_flag",true);
    if(iCarOrderService.count(qw) > 0) {
        car.setCanOrder(true);
    }
    return new ResultUtil<UsedCar>().setData(car);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/226918.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ 常见面试题

目录 1.前置知识1.1.什么是 MQ&#xff1f;它有什么作用&#xff1f;1.2.什么是消费者生产者模型&#xff1f;1.3.AMQP 是什么&#xff1f; 2.RabbitMQ 入门2.1.什么是 RabbitMQ&#xff1f;有什么特点&#xff1f;2.2.RabbitMQ 的核心概念有哪些&#xff1f;2.2.1.生产者 (Pro…

720度vr虚拟家居展厅提升客户的参观兴致

VR虚拟展厅线上3D交互展示的优势有以下几点&#xff1a; 打破了场馆的展示限制&#xff0c;可展示危险性制品、珍贵稀有物品、超大型设备等&#xff0c;同时提供了更大的展示空间和更丰富的展示内容。 可提供企业真实环境的实时VR全景参观&#xff0c;提升潜在客户信任度。 提供…

go的两大测试方法- 官网推荐

go的两大测试方法- 官网推荐 go的两大测试方法- 官网推荐常见的不正规测试方法main方法个例测试验证 - 不正规1. 提供一个函数&#xff1a;Reverse(input string)进行测试2. 直接在函数下创建main函数下进行个例测试3. 测试发现&#xff0c;Reverse方法不支持某些汉字&#xff…

AZURE==SQL managed instances

创建资源 创建DB 创建完成后&#xff0c;拿着刚才的账号密码依然连接不上 远程连接 需要开启公网访问和开放相关端口 参考Configure public endpoint - Azure SQL Managed Instance | Microsoft Learn 连接成功

微信小程序 跳转界面,选择货物之后,返回上一页带参数并判断参数是否存在

需求 当刚进来时选择货物&#xff0c;跳转到选择货物界面进行货物选择&#xff0c;如果货物重复&#xff0c;不再新增货物&#xff0c;如果不存在&#xff0c;则新增 prevPage.setData()用于在页面之间传递数据。它将数据设置到上一个页面&#xff08;即prevPage&#xff09;的…

生成式AI赋能千行百业加速创新,2023亚马逊云科技re:Invent行业盘点

2023亚马逊云科技re:Invent全球大会已于上周圆满闭幕&#xff0c;在本次大会中&#xff0c;亚马逊云科技又为大家带来了很多功能/项目迭代更新&#xff0c;也重磅发布了很多全新的功能。今天从行业视角来盘点回顾哪些重磅发布适用于垂直行业客户&#xff0c;以及面向汽车、制造…

python可视化plotly 图例(legend)设置大全,值得收藏!

文章目录 一、图例(legend)二、update\_layout(legend{}) 相关参数及示例关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python…

听GPT 讲Rust源代码--src/tools(8)

File: rust/src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_missing_match_arms.rs 在Rust源代码中&#xff0c;rust-analyzer是一个Rust编程语言的语言服务器。它提供了代码补全、代码重构和代码导航等功能来帮助开发者提高编码效率。 在rust-analyzer的代码目…

轻松掌握ArkTS!鸿蒙新作《鸿蒙HarmonyOS应用开发入门》简介

《鸿蒙HarmonyOS应用开发入门》由清华大学出版社出版&#xff0c;已于近期上市。该书基于HarmonyOS 3.1 ArkTS编写&#xff0c;所有示例采用了比较新的API 9&#xff0c;可谓是目前市面上最新的鸿蒙力作。 本文对《鸿蒙HarmonyOS应用开发入门》一书做个大致的介绍。 封面部分…

Vulnhub项目:EMPIRE: BREAKOUT

一、靶机地址 靶机地址&#xff1a;Empire: Breakout ~ VulnHub 靶机介绍&#xff1a; 该靶机被定义为简单&#xff0c;但是如果没有找到&#xff0c;那就难度成中等了&#xff01; 二、渗透过程 老三样&#xff0c;发现目标&#xff0c;这里用 arp-scan 确定靶机 ip&#…

17:00面试,17:06就出来了,问的问题有点变态。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%,…

【web开发网页制作】Html+Css网页制作关于明星介绍王嘉尔(5页面)【附源码下载】

htmlcss网页制作目录 写在前面涉及知识效果展示1、网页构思2、网页实现2.1 首页2.2 关于我2.3 成长经历2.4 朋友2.5 爱好 3、源码分享 写在前面 接着分享哈&#xff0c;还是学生时代的库存&#xff0c;当时是为了不同风格的素材&#xff0c;所以自己选择了多个方向的主题来练习…

计算机操作系统4

1.什么是进程同步 2.什么是进程互斥 3.进程互斥的实现方法(软件) 4.进程互斥的实现方法(硬件) 5.遵循原则 6.总结&#xff1a; 线程是一个基本的cpu执行单元&#xff0c;也是程序执行流的最小单位。 调度算法&#xff1a;先来先服务FCFS、短作业优先、高响应比优先、时间片…

人工智能_机器学习061_KKT条件公式理解_原理深度解析_松弛变量_不等式约束---人工智能工作笔记0101

然后我们再来看,前面我们,拉格朗日乘子法,把带有条件的,问题,优化成了等式问题,从而, 构建拉格朗日乘子公式,进行实现了求解,但是在现实生活中,往往也有,很多不等式问题. 比如上面的这个,就是要求是h(x)<=0的情况下,函数f(x)的最小值. 可以看到,这个带有一个不等式的条件,…

『亚马逊云科技产品测评』活动征文|AWS云服务器EC2实例实现ByConity快速部署

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 前言 亚马逊是全球最大的在线零售商和云计算服务提供商。AWS云服务器在…

四、分代垃圾回收机制及垃圾回收算法

学习垃圾回收的意义 Java 与 C等语言最大的技术区别&#xff1a;自动化的垃圾回收机制&#xff08;GC&#xff09; 为什么要了解 GC 和内存分配策略 1、面试需要 2、GC 对应用的性能是有影响的&#xff1b; 3、写代码有好处 栈&#xff1a;栈中的生命周期是跟随线程&…

公司文档防泄密新招!上海迅软DSE揭秘电脑文档加密绝技!

面对频频案发的企业文档泄露事件&#xff0c;各企业该如好保护好文档安全呢&#xff1f; 1、进行文档加密&#xff0c;防止机密外泄 现在勒索病毒组织经常以公开机密信息威胁企业支付赎金&#xff0c;如果事先对重要文档加密保护&#xff0c;可以很好防止重要文档被公开。 迅软…

Python中的并发编程(2)线程的实现

Python中线程的实现 1. 线程 在Python中&#xff0c;threading 库提供了线程的接口。我们通过threading 中提供的接口创建、启动、同步线程。 例1. 使用线程旋转指针 想象一个场景&#xff1a;程序执行了一个耗时较长的操作&#xff0c;如复制一个大文件&#xff0c;我们希…

Ngnix和Apache配置SSL证书

本文主要介绍Ngnix和Apache配置SSL证书的方法 目录 SSL证书SSL证书的作用Ngnix简介Ngnix配置SSL证书Apache简介Apache配置SSL证书 SSL证书 SSL证书是一种数字证书&#xff0c;用于加密在网络上发送的数据并保护敏感信息的安全性。SSL代表“安全套接字层”&#xff0c;它是一种…

12.7 作业

1&#xff0c; #include "widget1.h"Widget1::Widget1(QWidget *parent): QWidget(parent) {//界面设置//修改界面大小this->resize(810,600);//固定界面大小this->setFixedSize(800,600);//修改界面的标题this->setWindowTitle("杰哥和阿伟专场"…