基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】

 博主介绍:专注于Java技术领域和毕业项目实战

文末获取源码联系

 精彩专栏推荐订阅 不然下次找不到哟

Java项目精品实战案例(300套)

目录

一、效果演示

二、前言介绍

三、主要技术

四、系统设计(部分)

4.1、主要功能模块设计         

4.2、登录流程设计

五、运行截图

5.1、用户功能模块

5.1.1、预约到店管理

5.1.2、汽车评估管理

5.1.3、评估报价管理

5.2、管理员功能模块

5.2.1、管理员登录

5.2.2、用户管理

5.2.3、二手车分类管理

5.2.4、二手车信息管理

5.2.5、定金支付管理

5.2.6、预约到店管理

5.2.7、汽车评估管理

5.2.8、评估报价管理

5.2.9、轮播图

5.2.10、论坛管理

5.3、前台首页功能模块

5.3.1、用户注册

5.3.2、用户登录

5.3.3、二手车信息

5.3.4、论坛信息

5.3.5、个人中心

六、数据库设计(部分)

七、代码参考

八、源码获取


一、效果演示

基于jsp+SSM的二手车交易网站演示视频

二、前言介绍

本网站系统使用动态网页开发JSP技术,Java作为系统的开发语言,MySQL作为后台数据库。二手车交易网站采用B/S模式,促进了二手车交易网站的安全、质量、快捷的发展。传统的管理模式还处于手工处理阶段,管理效率极低,随着用户的不断增多,传统基于手工管理模式已经无法满足当前用户需求,随着信息化时代的到来,使得二手车交易网站的开发成了必然。

三、主要技术

技术名 作用
SSM 后端框架
jsp 动态页面
MySQL 数据库

四、系统设计(部分)

4.1、主要功能模块设计         

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第1张图片

4.2、登录流程设计

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第2张图片

五、运行截图

5.1、用户功能模块

定金支付管理,在定金支付管理页面可以填写订单编号、车型、品牌、分类、车身颜色、售价、订金金额、付款日期、备注、用户名、姓名、联系方式、是否支付信息进行详情、修改,如图5-1所示。

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第3张图片

5-1定金支付管理界面图   

5.1.1、预约到店管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第4张图片

5-2预约到店管理界面图

5.1.2、汽车评估管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第5张图片

5-3汽车评估管理界面

5.1.3、评估报价管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第6张图片

图5-4评估报价管理界面图

5.2、管理员功能模块

5.2.1、管理员登录

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第7张图片

5-5管理员登录界面图

管理员登录进入二手车交易网站可以查看个人中心、用户管理、二手车分类管理、二手车信息管理、定金支付管理、预约到店管理、汽车评估管理、评估报价管理、论坛管理、系统管理等信息。

5.2.2、用户管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第8张图片

5-6用户管理界面图

5.2.3、二手车分类管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第9张图片

5-7二手车分类管理界面图

5.2.4、二手车信息管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第10张图片

5-8二手车信息管理界面图

5.2.5、定金支付管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第11张图片

5-9定金支付管理界面图

5.2.6、预约到店管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第12张图片

5-10预约到店管理界面图

5.2.7、汽车评估管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第13张图片

5-11汽车评估管理界面图

5.2.8、评估报价管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第14张图片

5-12评估报价管理界面图

5.2.9、轮播图

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第15张图片

5-13轮播图管理界面图

5.2.10、论坛管理

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第16张图片

5-14论坛管理界面图

5.3、前台首页功能模块

二手车交易网站,在系统首页可以查看首页、二手车信息、论坛信息、新闻资讯、我的、跳转到后台、客服等内容,如图5-15所示。

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第17张图片

5-15前台首页功能界面图

5.3.1、用户注册

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第18张图片

5-16用户注册界面图

5.3.2、用户登录

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第19张图片

5-17用户登录界面图

5.3.3、二手车信息

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第20张图片

5-18二手车信息界面图

5.3.4、论坛信息

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第21张图片

图5-19论坛信息界面图

5.3.5、个人中心

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第22张图片

图5-20个人中心界面图

六、数据库设计(部分)

管理员信息结构图,如图4-7所示:

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第23张图片

图4-7 管理员信息实体结构图

用户管理实体属性图,如图4-8所示:

基于Java+SSM+jsp的二手车交易网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第24张图片

图4-8用户管理实体属性图 

七、代码参考

package com.controller;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ResourceUtils;
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.annotation.IgnoreAuth;
import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.MatchRequest;
import com.baidu.aip.util.Base64Util;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.ConfigEntity;
import com.service.CommonService;
import com.service.ConfigService;
import com.utils.BaiduUtil;
import com.utils.FileUtil;
import com.utils.R;

/**
 * 通用接口
 */
@RestController
public class CommonController{
	@Autowired
	private CommonService commonService;
	
	@Autowired
	private ConfigService configService;
	
	private static AipFace client = null;
	
	private static String BAIDU_DITU_AK = null;
	
	@RequestMapping("/location")
	public R location(String lng,String lat) {
		if(BAIDU_DITU_AK==null) {
			BAIDU_DITU_AK = configService.selectOne(new EntityWrapper().eq("name", "baidu_ditu_ak")).getValue();
			if(BAIDU_DITU_AK==null) {
				return R.error("请在配置管理中正确配置baidu_ditu_ak");
			}
		}
		Map map = BaiduUtil.getCityByLonLat(BAIDU_DITU_AK, lng, lat);
		return R.ok().put("data", map);
	}
	
	/**
	 * 人脸比对
	 * 
	 * @param face1 人脸1
	 * @param face2 人脸2
	 * @return
	 */
	@RequestMapping("/matchFace")
	public R matchFace(String face1, String face2, HttpServletRequest request) {
		if(client==null) {
			/*String AppID = configService.selectOne(new EntityWrapper().eq("name", "AppID")).getValue();*/
			String APIKey = configService.selectOne(new EntityWrapper().eq("name", "APIKey")).getValue();
			String SecretKey = configService.selectOne(new EntityWrapper().eq("name", "SecretKey")).getValue();
			String token = BaiduUtil.getAuth(APIKey, SecretKey);
			if(token==null) {
				return R.error("请在配置管理中正确配置APIKey和SecretKey");
			}
			client = new AipFace(null, APIKey, SecretKey);
			client.setConnectionTimeoutInMillis(2000);
			client.setSocketTimeoutInMillis(60000);
		}
		JSONObject res = null;
		try {
			File file1 = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+face1);
			File file2 = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+face2);
			String img1 = Base64Util.encode(FileUtil.FileToByte(file1));
			String img2 = Base64Util.encode(FileUtil.FileToByte(file2));
			MatchRequest req1 = new MatchRequest(img1, "BASE64");
			MatchRequest req2 = new MatchRequest(img2, "BASE64");
			ArrayList requests = new ArrayList();
			requests.add(req1);
			requests.add(req2);
			res = client.match(requests);
			System.out.println(res.get("result"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			return R.error("文件不存在");
		} catch (IOException e) {
			e.printStackTrace();
		} 
		return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString()));
	}
    
	/**
	 * 获取table表中的column列表(联动接口)
	 * @param table
	 * @param column
	 * @return
	 */
	@RequestMapping("/option/{tableName}/{columnName}")
	@IgnoreAuth
	public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		if(StringUtils.isNotBlank(level)) {
			params.put("level", level);
		}
		if(StringUtils.isNotBlank(parent)) {
			params.put("parent", parent);
		}
		List data = commonService.getOption(params);
		return R.ok().put("data", data);
	}
	
	/**
	 * 根据table中的column获取单条记录
	 * @param table
	 * @param column
	 * @return
	 */
	@RequestMapping("/follow/{tableName}/{columnName}")
	@IgnoreAuth
	public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		params.put("columnValue", columnValue);
		Map result = commonService.getFollowByOption(params);
		return R.ok().put("data", result);
	}
	
	/**
	 * 修改table表的sfsh状态
	 * @param table
	 * @param map
	 * @return
	 */
	@RequestMapping("/sh/{tableName}")
	public R sh(@PathVariable("tableName") String tableName, @RequestBody Map map) {
		map.put("table", tableName);
		commonService.sh(map);
		return R.ok();
	}
	
	/**
	 * 获取需要提醒的记录数
	 * @param tableName
	 * @param columnName
	 * @param type 1:数字 2:日期
	 * @param map
	 * @return
	 */
	@RequestMapping("/remind/{tableName}/{columnName}/{type}")
	@IgnoreAuth
	public R remindCount(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, 
						 @PathVariable("type") String type,@RequestParam Map map) {
		map.put("table", tableName);
		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));
			}
		}
		
		int count = commonService.remindCount(map);
		return R.ok().put("count", count);
	}
	
	/**
	 * 单列求和
	 */
	@RequestMapping("/cal/{tableName}/{columnName}")
	@IgnoreAuth
	public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		Map result = commonService.selectCal(params);
		return R.ok().put("data", result);
	}
	
	/**
	 * 分组统计
	 */
	@RequestMapping("/group/{tableName}/{columnName}")
	@IgnoreAuth
	public R group(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		List> result = commonService.selectGroup(params);
		return R.ok().put("data", result);
	}
	
	/**
	 * (按值统计)
	 */
	@RequestMapping("/value/{tableName}/{xColumnName}/{yColumnName}")
	@IgnoreAuth
	public R value(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("xColumn", xColumnName);
		params.put("yColumn", yColumnName);
		List> result = commonService.selectValue(params);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		for(Map m : result) {
			for(String k : m.keySet()) {
				if(m.get(k) instanceof Date) {
					m.put(k, sdf.format((Date)m.get(k)));
				}
			}
		}
		return R.ok().put("data", result);
	}
	
}

八、源码获取

大家点赞、收藏、关注、评论啦 、查看文章结尾获取联系方式

精彩专栏推荐订阅:下方专栏

Java项目精品实战案例(300套)

私信我即可打包获取300多个项目源码+论文+演示视频~

​​​

你可能感兴趣的:(java毕业设计,java,SSM,jsp,大学生项目实战,毕业设计)