JAVAWEB二手车交易信息平台会员:会员注册,基本信息修改;二手汽车出售信息的编辑、修改、发布、关闭;查询并维护自己的出售信息,查询他人发布的出售信息并可以留言,可以对他人的留言进行回复;会员……

JAVA二手车交易信息平台

文章目录

  • JAVA二手车交易信息平台
    • 说明:源代码github地址:
    • 一、要求
        • 1、会员
        • 2、管理员
    • 二、所采用的Java EE技术规范
    • 三、数据库设计(ER图)
    • 四、主要模块功能及其实现
        • 1、系统流程图
        • 2、会员登录
        • 3、会员注册
        • 4、主页
            • 1、列出所有处在发布状态的车
            • 2、提供查询(按品牌、型号、估价、年限),支持多个输入值查询
            • 3、排序功能
        • 5、查看车辆详情
            • 1、列出相关车辆的信息、查看该车辆的所有留言
            • 2、添加留言
        • 6、查看具体某一条留言
            • 1、看本条留言的发送者用户名、该留言的所有回复
            • 2、对该留言进行评论
            • 3、该留言发布者为自己,则还可以删除
        • 7、卖车
            • 1、列出自己的所有车辆
            • 2、进行查询(查询车牌号,结果转到修改界面)
        • 8、添加新车
        • 9、修改车辆信息
        • 10、删除车辆信息
        • 11、查看自己车辆的所有评论
        • 12、本车发布状态管理
        • 13、个人信息修改
        • 14、查看自己的所有留言
            • 1、查看自己所有留言及评论
            • 2、删除
        • 15、管理员登录
        • 16、管理员管理会员
        • 17、管理员管理出售信息
        • 18、管理员管理车辆信息
    • 五、程序运行时的输入数据/输出结果

说明:源代码github地址:

https://github.com/best-ld/javawebusedcar.git
二手车交易信息平台

一、要求

1、会员

会员注册,基本信息修改;二手汽车出售信息的编辑、修改、发布(发布后不可再修改)、关闭(关闭后他人不可再留言);查询并维护自己的出售信息,查询他人发布的出售信息并可以留言,可以对他人的留言进行回复;

2、管理员

会员管理(权限管理,例如是否可以发布出售信息,取消用户会员资格等),出售信息管理(管理员拥有对虚假消息进行管理的权力,可以屏蔽虚假消息)。

二、所采用的Java EE技术规范

JDBC、JSP、Servlet、XML

三、数据库设计(ER图)

在这里插入图片描述
注:ER图中“车”与“管理员”间无联系,“会员”与“管理员”间无联系,上图存在错误

四、主要模块功能及其实现

1、系统流程图

在这里插入图片描述

2、会员登录

功能:检验该用户是否存在,密码是否正确,是否被授权登录,返回相关的提示
关键代码:

if(userloginservice.checkLoginName(user_name)) {request.setAttribute("message","!请输入正确的用户名");request.getRequestDispatcher("/UserLogin.jsp").forward(request, response);}else {if(userloginservice.checkLoginNamePassword(user_name, password)) {request.setAttribute("message","!请输入正确的密码");request.getRequestDispatcher("/UserLogin.jsp").forward(request, response);}else {user = userloginservice.searchUserByNamePassword(user_name, password);if(user.getPermission()==0) {request.setAttribute("message","!您无权限进入该网站");request.getRequestDispatcher("/UserLogin.jsp").forward(request, response);}else {cars = userservice.search_AllCar();for (int i = 0; i < cars.size(); i++) {Car car = cars.get(i);SellPremission sellPremission = admirSevice.searchByC_id(car.getCar_id());if (sellPremission != null && sellPremission.getPremission()==1 && sellPremission.getReleasing()==1) {cars_re.add(car);}}request.setAttribute("cars",cars_re);request.setAttribute("user",user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);}}}

3、会员注册

功能:检验该用户名是否存在,两次密码是否正确,返回相关的提示
关键代码:

String user_name = request.getParameter("username");String password = request.getParameter("password");String name = request.getParameter("name");String idcard = request.getParameter("idcard");String phone = request.getParameter("phone");String city = request.getParameter("city");String again_password = request.getParameter("again_password");UserSignupService userservice = new UserSignupService();if(!userservice.checkSignName(user_name)) {request.getRequestDispatcher("/UserSignup.jsp").forward(request, response);}else {if(!userservice.checkSignupIdcard(idcard)) {request.setAttribute("message","!该身份证号码已被注册");request.getRequestDispatcher("/UserSignup.jsp").forward(request, response);}else {if(!userservice.check_Password(password, again_password)) {request.setAttribute("message","!两次输入密码不一致");request.getRequestDispatcher("/UserSignup.jsp").forward(request, response);}else{userservice.add_User(user_name, again_password, name, idcard, phone, city);request.setAttribute("message", "注册成功!");request.getRequestDispatcher("/UserLogin.jsp").forward(request, response);}}}

4、主页

功能:列出所有处在发布状态的车,提供查询(按品牌、型号、估价、年限),排序功能
关键代码:

1、列出所有处在发布状态的车
cars = userservice.search_AllCar();for (int i = 0; i < cars.size(); i++) {Car car = cars.get(i);SellPremission sellPremission = admirSevice.searchByC_id(car.getCar_id());if (sellPremission != null && sellPremission.getPremission()==1 && sellPremission.getReleasing()==1) {cars_re.add(car);}}request.setAttribute("cars",cars_re);request.setAttribute("user",user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);
2、提供查询(按品牌、型号、估价、年限),支持多个输入值查询
int user_id = Integer.parseInt(request.getParameter("user_id"));String brand = request.getParameter("brand");String model = request.getParameter("model");String lowprice_s = request.getParameter("lowprice");String heightprice_s = request.getParameter("heightprice");String years_s = request.getParameter("years");int lowprice = 0;int heightprice = 99999;if (lowprice_s != "") {lowprice = Integer.parseInt(lowprice_s);}if (heightprice_s != "") {heightprice = Integer.parseInt(heightprice_s);}List<Car> cars1 = new ArrayList<Car>();List<Car> cars2 = new ArrayList<Car>();List<Car> reslut = new ArrayList<Car>();if (brand=="") {if (model=="") {cars1 = carservice.search_CarbyPrice(lowprice, heightprice);} else {cars1 = carservice.search_CarbyModel_Price(model, lowprice, heightprice);}} else {if (model=="") {cars1 = carservice.search_CarbyBrand_Price(brand, lowprice, heightprice);}else {cars1 =carservice.search_CarbyBrand_Model_Price(brand, model, lowprice, heightprice);}}if (years_s != "") {int years = Integer.parseInt(years_s);cars2 = carservice.search_CarbyYears(years);for(Car car1:cars1) {for(Car car2:cars2) {if (car1.getCar_id() == car2.getCar_id()) {reslut.add(car1);}}}}else {reslut = cars1;}List<Car> cars_re = new ArrayList<Car>();for (int i = 0; i < reslut.size(); i++) {Car car =reslut.get(i);SellPremission sellPremission = admirSevice.searchByC_id(car.getCar_id());if (sellPremission!=null && sellPremission.getPremission()==1 && sellPremission.getReleasing()==1) {cars_re.add(car);}}User user = userservice.search_UserById(user_id);request.setAttribute("searchcarsuccessmessage", "回到主页");request.setAttribute("cars",cars_re);request.setAttribute("user",user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);
3、排序功能
int user_id = Integer.parseInt(request.getParameter("user_id"));User user = userservice.search_UserById(user_id);List<Car> cars = carservice.order_CarTop();List<Car> cars_re = new ArrayList<Car>();for (int i = 0; i < cars.size(); i++) {Car car = cars.get(i);SellPremission sellPremission = admirSevice.searchByC_id(car.getCar_id());if (sellPremission != null && sellPremission.getPremission() == 1 && sellPremission.getReleasing() == 1) {cars_re.add(car);}}request.setAttribute("searchcarsuccessmessage", "回到主页");request.setAttribute("cars", cars_re);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);

5、查看车辆详情

1、列出相关车辆的信息、查看该车辆的所有留言
int car_id = Integer.parseInt(request.getParameter("car_id"));int user_id = Integer.parseInt(request.getParameter("user_id"));User buyer = userservice.search_UserById(user_id);Car car = carservice.search_CarbyCarId(car_id);User seller = userservice.search_UserById(car.getUser_id());List<TalkMessage> messages = new ArrayList<TalkMessage>();messages = talkservice.searchMessageByCar_id(car_id);List<TalkMessage> sub_messages = new ArrayList<TalkMessage>();for (int i = 0; i < messages.size(); i++) {TalkMessage message = null;if (messages.get(i).getContent().length() >= 15) {message = new TalkMessage(messages.get(i).getM_id(), messages.get(i).getSend_id(),messages.get(i).getGet_id(), messages.get(i).getCar_id(),messages.get(i).getContent().substring(0, 15));} else {message = messages.get(i);}sub_messages.add(message);// System.out.println(sub_messages.get(i).getContent());}request.setAttribute("messages", sub_messages);request.setAttribute("car", car);request.setAttribute("buyer", buyer);request.setAttribute("seller", seller);request.getRequestDispatcher("/WEB-INF/views/CarDetails.jsp").forward(request, response);
2、添加留言
String content = request.getParameter("content");int car_id = Integer.parseInt(request.getParameter("car_id"));int get_id = Integer.parseInt(request.getParameter("get_id"));int send_id = Integer.parseInt(request.getParameter("send_id"));if (content != "") {talkservice.addNewMessage(send_id, get_id, car_id, content);} else {request.setAttribute("waringmessage", "!留言不能为空");}List<TalkMessage> messages = new ArrayList<TalkMessage>();messages = talkservice.searchMessageByCar_id(car_id);User buyer = userservice.search_UserById(send_id);Car car = carservice.search_CarbyCarId(car_id);User seller = userservice.search_UserById(get_id);List<TalkMessage> sub_messages = new ArrayList<TalkMessage>();for (int i = 0; i < messages.size(); i++) {TalkMessage message = null;if (messages.get(i).getContent().length() >= 15) {message = new TalkMessage(messages.get(i).getM_id(), messages.get(i).getSend_id(),messages.get(i).getGet_id(), messages.get(i).getCar_id(),messages.get(i).getContent().substring(0, 15));} else {message = messages.get(i);}sub_messages.add(message);System.out.println(sub_messages.get(i).getContent());}request.setAttribute("messages", sub_messages);request.setAttribute("buyer", buyer);request.setAttribute("car", car);request.setAttribute("seller", seller);request.getRequestDispatcher("/WEB-INF/views/CarDetails.jsp").forward(request, response);

6、查看具体某一条留言

1、看本条留言的发送者用户名、该留言的所有回复
int m_id = Integer.parseInt(request.getParameter("m_id"));int flag = Integer.parseInt(request.getParameter("flag"));int user_id = Integer.parseInt(request.getParameter("user_id"));User user = userservice.search_UserById(user_id);List<BackMessage> backMessages = new ArrayList<BackMessage>();backMessages = talkservice.searchBackMessageByM_id(m_id);TalkMessage talkmessage = talkservice.searcMeeageByM_id(m_id);// 返回car类Car car = carservice.search_CarbyCarId(talkmessage.getCar_id());// 该条留言的发布者,即回复的接收者User geter = userservice.search_UserById(talkmessage.getSend_id());request.setAttribute("car", car);request.setAttribute("flag", flag);request.setAttribute("user", user);request.setAttribute("geter", geter);request.setAttribute("talkmessage", talkmessage);request.setAttribute("backMessages", backMessages);request.getRequestDispatcher("/WEB-INF/views/SeeBackMessage.jsp").forward(request, response);
2、对该留言进行评论
int m_id = Integer.parseInt(request.getParameter("m_id"));int send_id = Integer.parseInt(request.getParameter("send_id"));// 本机用户int get_id = Integer.parseInt(request.getParameter("get_id"));// 要评论的对象int flag = Integer.parseInt(request.getParameter("flag"));System.out.println(flag);String send_name = userservice.search_UserById(send_id).getUser_name();String content = request.getParameter("content");if (content == "") {request.setAttribute("waringmessage", "!留言不能为空");} else {talkservice.addBackMessage(m_id, send_id, send_name, content);}User user = userservice.search_UserById(send_id);User geter = userservice.search_UserById(get_id);TalkMessage talkmessage = talkservice.searcMeeageByM_id(m_id);List<BackMessage> backMessages = new ArrayList<BackMessage>();backMessages = talkservice.searchBackMessageByM_id(m_id);Car car = carservice.search_CarbyCarId(talkmessage.getCar_id());request.setAttribute("flag", flag);request.setAttribute("car", car);request.setAttribute("user", user);request.setAttribute("geter", geter);request.setAttribute("talkmessage", talkmessage);request.setAttribute("backMessages", backMessages);request.getRequestDispatcher("/WEB-INF/views/SeeBackMessage.jsp").forward(request, response);
3、该留言发布者为自己,则还可以删除
int send_id = Integer.parseInt(request.getParameter("send_id"));int m_id = Integer.parseInt(request.getParameter("m_id"));// int get_id = Integer.parseInt(request.getParameter("get_id"));TalkMessage talkMessage = talkservice.searcMeeageByM_id(m_id);int car_id = talkMessage.getCar_id();talkservice.deleteMessage(m_id);List<TalkMessage> messages = new ArrayList<TalkMessage>();messages = talkservice.searchMessageByCar_id(car_id);User buyer = userservice.search_UserById(send_id);Car car = carservice.search_CarbyCarId(car_id);User seller = userservice.search_UserById(car.getUser_id());List<TalkMessage> sub_messages = new ArrayList<TalkMessage>();for (int i = 0; i < messages.size(); i++) {TalkMessage message = null;if (messages.get(i).getContent().length() >= 15) {message = new TalkMessage(messages.get(i).getM_id(), messages.get(i).getSend_id(),messages.get(i).getGet_id(), messages.get(i).getCar_id(),messages.get(i).getContent().substring(0, 15));} else {message = messages.get(i);}sub_messages.add(message);}request.setAttribute("messages", sub_messages);request.setAttribute("buyer", buyer);request.setAttribute("car", car);request.setAttribute("seller", seller);request.setAttribute("succeffulmessage", "删除成功!");request.getRequestDispatcher("/WEB-INF/views/CarDetails.jsp").forward(request, response);

7、卖车

1、列出自己的所有车辆
int user_id = Integer.parseInt(request.getParameter("user_id"));List<Car> cars = carservice.search_CarbyUserId(user_id);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();SPAndUserAndCar spauc = null;User user = userservice.search_UserById(user_id);if (user.getPermission() == 0) {cars = userservice.search_AllCar();request.setAttribute("cars", cars);request.setAttribute("user", user);request.setAttribute("message", "!您没有权限进行该项操作,请前往申请权限");request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);} else {for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}
2、进行查询(查询车牌号,结果转到修改界面)
String license_plate = request.getParameter("license_plate");int user_id = Integer.parseInt(request.getParameter("user_id"));Car car = carservice.search_CarbyLicense_plate(license_plate);User user = userservice.search_UserById(user_id);if (car != null && car.getUser_id() == user_id) {request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UpdateSellCar.jsp").forward(request, response);} else {List<Car> cars = carservice.search_CarbyUserId(user_id);request.setAttribute("searchMyCarwarning", "!该车牌号码不存在");request.setAttribute("user", user);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}

8、添加新车

根据自己输入的信息(车辆信息包括图片,进行车辆添加,同时检验该车牌号码是否存在)

int user_id = Integer.parseInt(request.getParameter("user_id"));//*****************************List<String> list= new ArrayList<String>();String filename = PhotoDaoImpl.getPhotoNewName();ServletContext servletContext = null;servletContext = request.getSession().getServletContext();List<FileItem> items = PhotoDaoImpl.getRequsetFileItems(request, servletContext);// System.out.println(user_id);boolean isLoadToSQL = false;for (FileItem item : items) {if (!item.isFormField()) {if (PhotoDaoImpl.isGif(item)) {isLoadToSQL = PhotoDaoImpl.saveFile(item, filename);} else {System.out.print("后缀格式有误,保存文件失败");}} else {list.add(item.getString("UTF-8"));}}// System.out.println(list);String finalPhotoName = "imgs/" + filename;// *****************************String license_plate = list.get(0);String brand = list.get(1);String model = list.get(2);String years_s = list.get(3);String evaluation_s = list.get(4);User user = userservice.search_UserById(user_id);if (evaluation_s == "") {request.setAttribute("message", "!输入估价为空");request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/AddSellCar.jsp").forward(request, response);} else {if (years_s == "") {request.setAttribute("message", "!输入年限为空");request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/AddSellCar.jsp").forward(request, response);} else {if (!carservice.check_license_plate(license_plate)) {request.setAttribute("message", "!该车牌号已存在,请填写正确的车牌号码");request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/AddSellCar.jsp").forward(request, response);} else {Integer evaluation = Integer.parseInt(evaluation_s);Integer years = Integer.parseInt(years_s);carservice.add_NewCar(user_id, license_plate, brand, model, years, evaluation, finalPhotoName);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();List<Car> cars = carservice.search_CarbyUserId(user_id);Car car = carservice.search_CarbyLicense_plate(license_plate);admirSevice.addNewPremission(car.getCar_id(), user_id);for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("cars", cars);request.setAttribute("spaucs", spaucs);request.setAttribute("user", user);request.setAttribute("successfulmessage", "!添加车辆成功");request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}}

9、修改车辆信息

主要功能:根据自己输入的要修改的信息(车辆信息包括图片,进行车辆添加,同时检验该车牌号码是否存在),且判断是否是发布状态,若发布,则不能修改。

int user_id = Integer.parseInt(request.getParameter("user_id"));int car_id = Integer.parseInt(request.getParameter("car_id"));int flag = Integer.parseInt(request.getParameter("flag"));SellPremission sellPremission_u = admirSevice.searchByC_id(car_id);sellPremission_u.setReleasing(flag);admirSevice.updatePremission(sellPremission_u);List<Car> cars = carservice.search_CarbyUserId(user_id);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();User user = userservice.search_UserById(user_id);if (user.getPermission() == 0) {cars = userservice.search_AllCar();request.setAttribute("cars", cars);request.setAttribute("user", user);request.setAttribute("message", "!您没有权限进行该项操作,请前往申请权限");request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);} else {for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}}// 进入修改车辆信息界面public void editCar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {int user_id = Integer.parseInt(request.getParameter("user_id"));int car_id = Integer.parseInt(request.getParameter("car_id"));Car car = carservice.search_CarbyCarId(car_id);User user = userservice.search_UserById(user_id);request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UpdateSellCar.jsp").forward(request, response);}// 修改车辆信息public void updateCar(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {int car_id = Integer.parseInt(request.getParameter("car_id"));int user_id = Integer.parseInt(request.getParameter("user_id"));List<String> list = new ArrayList<String>();String filename = PhotoDaoImpl.getPhotoNewName();ServletContext servletContext = null;servletContext = request.getSession().getServletContext();List<FileItem> items = PhotoDaoImpl.getRequsetFileItems(request, servletContext);System.out.println(user_id);System.out.println(car_id);boolean isLoadToSQL = false;for (FileItem item : items) {if (!item.isFormField()) {if (PhotoDaoImpl.isGif(item)) {isLoadToSQL = PhotoDaoImpl.saveFile(item, filename);} else {//System.out.print("后缀格式有误,保存文件失败");}} else {list.add(item.getString("UTF-8"));}}//System.out.println(list);String finalPhotoName = "imgs/" + filename;String license_plate = list.get(0);String brand = list.get(1);String model = list.get(2);String years_s = list.get(3);String evaluation_s = list.get(4);Integer years = Integer.parseInt(years_s);Integer evaluation = Integer.parseInt(evaluation_s);Car car = carservice.search_CarbyCarId(car_id);User user = userservice.search_UserById(user_id);if (admirSevice.searchByC_id(car_id).getReleasing() == 1&& admirSevice.searchByC_id(car_id).getPremission() == 1) {request.setAttribute("warningmessage", "!该车辆已经发布,无法修改,请取消发布后再进行修改");request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UpdateSellCar.jsp").forward(request, response);} else {if ((!carservice.check_license_plate(license_plate))&& (!carservice.search_CarbyCarId(car_id).getLicense_plate().equals(license_plate))) {request.setAttribute("car", car);request.setAttribute("user", user);request.setAttribute("warningmessage", "!您要修改的车牌号已经存在");request.getRequestDispatcher("/WEB-INF/views/UpdateSellCar.jsp").forward(request, response);}else {carservice.update_Car(car_id, license_plate, brand, model, years, evaluation,finalPhotoName);List<Car> cars = carservice.search_CarbyUserId(user_id);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i),user,sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}}

10、删除车辆信息

主要功能:根据自己的用户名、密码然后再确认密码后可以删除该辆车

int car_id = Integer.parseInt(request.getParameter("car_id"));int user_id = Integer.parseInt(request.getParameter("user_id"));User user = userservice.search_UserById(user_id);String user_name = request.getParameter("username");String password = request.getParameter("password");String again_password = request.getParameter("again_password");if ((!user.getPassword().equals(password)) || (!user.getUser_name().equals(user_name))|| (!password.equals(again_password))) {Car car = carservice.search_CarbyCarId(car_id);request.setAttribute("message", "!用户密码或账号输入有误");request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/DeleteSellCar.jsp").forward(request, response);} else {admirSevice.deletePremission(car_id);talkservice.deleteMessageByCar_id(car_id);carservice.delete_Car(car_id);// List cars = carservice.search_CarbyUserId(user_id);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();List<Car> cars = carservice.search_CarbyUserId(user_id);for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);

11、查看自己车辆的所有评论

主要功能:列出自己所有车辆的评论,留言功能同(模块5、查看具体某一条留言)

int user_id = Integer.parseInt(request.getParameter("user_id"));int car_id = Integer.parseInt(request.getParameter("car_id"));Car car = carservice.search_CarbyCarId(car_id);List<TalkMessage> messages = talkservice.searchMessageByCar_id(car_id);User user = userservice.search_UserById(user_id);List<TalkMessage> sub_messages = new ArrayList<TalkMessage>();for (int i = 0; i < messages.size(); i++) {TalkMessage message = null;if (messages.get(i).getContent().length() >= 15) {message = new TalkMessage(messages.get(i).getM_id(), messages.get(i).getSend_id(),messages.get(i).getGet_id(), messages.get(i).getCar_id(),messages.get(i).getContent().substring(0, 15));} else {message = messages.get(i);}sub_messages.add(message);// System.out.println(sub_messages.get(i).getContent());}request.setAttribute("messages", sub_messages);request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/SeeMyCar.jsp").forward(request, response);

12、本车发布状态管理

主要功能:调整授权车辆的发布状态,是否进行发布

int user_id = Integer.parseInt(request.getParameter("user_id"));int car_id = Integer.parseInt(request.getParameter("car_id"));int flag = Integer.parseInt(request.getParameter("flag"));SellPremission sellPremission_u = admirSevice.searchByC_id(car_id);sellPremission_u.setReleasing(flag);admirSevice.updatePremission(sellPremission_u);List<Car> cars = carservice.search_CarbyUserId(user_id);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();User user = userservice.search_UserById(user_id);if (user.getPermission() == 0) {cars = userservice.search_AllCar();request.setAttribute("cars", cars);request.setAttribute("user", user);request.setAttribute("message", "!您没有权限进行该项操作,请前往申请权限");request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);} else {for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}

13、个人信息修改

int user_id = Integer.parseInt(request.getParameter("user_id"));String user_name = request.getParameter("username");String password = request.getParameter("password");String phone = request.getParameter("phone");String city = request.getParameter("city");User user = userservice.search_UserById(user_id);if (!userloginservice.checkLoginName(user_name) && !user.getUser_name().equals(user_name)) {request.setAttribute("user", user);request.setAttribute("message", "!该用户名已存在");request.getRequestDispatcher("/WEB-INF/views/UserUpdate.jsp").forward(request, response);} else {List<Car> cars = new ArrayList<Car>();userservice.update_User(user_id, user_name, password, phone, city);cars = userservice.search_AllCar();request.setAttribute("cars", cars);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);}

14、查看自己的所有留言

主要功能:查看自己所有留言,可进行删

1、查看自己所有留言及评论
int user_id = Integer.parseInt(request.getParameter("user_id"));User user = userservice.search_UserById(user_id);List<TalkMessage> talkMessages = talkservice.searchMessageBySendId(user_id);List<BackAndGetMessage> backAndGetMessages = new ArrayList<BackAndGetMessage>();for (int i = 0; i < talkMessages.size(); i++) {List<BackMessage> backMessages = talkservice.searchBackMessageByM_id(talkMessages.get(i).getM_id());Car car = carservice.search_CarbyCarId(talkMessages.get(i).getCar_id());BackAndGetMessage backAndGetMessage = new BackAndGetMessage(backMessages,talkMessages.get(i),car);backAndGetMessages.add(backAndGetMessage);}request.setAttribute("allmessages", backAndGetMessages);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/SeeMyMessage.jsp").forward(request, response);}
2、删除
int user_id = Integer.parseInt(request.getParameter("user_id"));int m_id = Integer.parseInt(request.getParameter("m_id"));talkservice.deleteMessage(m_id);User user = userservice.search_UserById(user_id);List<TalkMessage> talkMessages = talkservice.searchMessageBySendId(user_id);List<BackAndGetMessage> backAndGetMessages = new ArrayList<BackAndGetMessage>();for (int i = 0; i < talkMessages.size(); i++) {List<BackMessage> backMessages = talkservice.searchBackMessageByM_id(talkMessages.get(i).getM_id());Car car = carservice.search_CarbyCarId(talkMessages.get(i).getCar_id());BackAndGetMessage backAndGetMessage = new BackAndGetMessage(backMessages,talkMessages.get(i),car);backAndGetMessages.add(backAndGetMessage);}request.setAttribute("allmessages", backAndGetMessages);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/SeeMyMessage.jsp").forward(request, response);

15、管理员登录

主要功能:检验该用户是否存在,密码是否正确。

	String name = request.getParameter("admirname");String password = request.getParameter("password");if (!admirSevice.checkAdnmirName(name)) {request.setAttribute("message", "!请输入正确的管理员账号");request.getRequestDispatcher("/AdmirLogin.jsp").forward(request, response);} else {if (!admirSevice.checkAdnmirPassword(name, password)) {request.setAttribute("message", "!请输入正确的密码");request.getRequestDispatcher("/AdmirLogin.jsp").forward(request, response);} else {List<User> users = userservice.search_AllUser();request.setAttribute("users", users);request.getRequestDispatcher("/WEB-INF/views/AdmirUser.jsp").forward(request, response);}}

16、管理员管理会员

主要功能:管理会员是否有资格登录进网站

	Integer user_id = Integer.parseInt(request.getParameter("user_id"));Integer flag = Integer.parseInt(request.getParameter("flag"));User user = userservice.search_UserById(user_id);user.setPermission(flag);// System.out.println(user);userservice.updateUser(user);List<User> users = userservice.search_AllUser();request.setAttribute("users", users);request.getRequestDispatcher("/WEB-INF/views/AdmirUser.jsp").forward(request, response);

17、管理员管理出售信息

主要功能:授权或取消授权

Integer s_id = Integer.parseInt(request.getParameter("s_id"));Integer flag = Integer.parseInt(request.getParameter("flag"));SellPremission sellPremission = admirSevice.searchByS_id(s_id);sellPremission.setPremission(flag);// 授权的时候默认发布状态为0if (flag == 1) {sellPremission.setReleasing(0);}admirSevice.updatePremission(sellPremission);User user = userservice.search_UserById(sellPremission.getUser_id());List<SellPremission> spremissions = admirSevice.getAllSellMessage();List<SPAndUserAndCar> spucs = new ArrayList<SPAndUserAndCar>();for (int i = 0; i < spremissions.size(); i++) {SellPremission spremission = spremissions.get(i);Car car = carservice.search_CarbyCarId(spremission.getCar_id());SPAndUserAndCar spuc = new SPAndUserAndCar(car, user, spremission);spucs.add(spuc);}request.setAttribute("spucs", spucs);request.getRequestDispatcher("/WEB-INF/views/AdmirRelease.jsp").forward(request, response);

18、管理员管理车辆信息

主要功能:下架有不良信息的车辆

	int car_id = Integer.parseInt(request.getParameter("car_id"));SellPremission sellPremission = admirSevice.searchByC_id(car_id);sellPremission.setPremission(0);admirSevice.updatePremission(sellPremission);List<Car> cars = carservice.search_AllCar();List<CarAndUser> carAndUsers = new ArrayList<CarAndUser>();for (int i = 0; i < cars.size(); i++) {Car car = cars.get(i);// 已发布的信息if (admirSevice.searchByC_id(car.getCar_id()).getReleasing() == 1&& admirSevice.searchByC_id(car.getCar_id()).getPremission() == 1) {User user = userservice.search_UserById(car.getUser_id());CarAndUser carAndUser = new CarAndUser(user, car);carAndUsers.add(carAndUser);}}request.setAttribute("cars", carAndUsers);request.getRequestDispatcher("/WEB-INF/views/CarMessageAdmir.jsp").forward(request, response);

五、程序运行时的输入数据/输出结果

模块1:会员登录模块:
(1)键入用户名:kkk(该用户不存在于数据库中)
在这里插入图片描述
(2)键入用户名:uzi(该用户存在于数据库中),密码:233(该密码错误)
在这里插入图片描述
(3)键入用户名:ld(该用户存在于数据库中),密码:666(该密码正确),但该用户无授权进入
在这里插入图片描述

(4)键入用户名:uzi(该用户存在于数据库中),密码:2200(该密码正确),进入主页:
在这里插入图片描述

模块2:会员注册模块:
(1)注册用户名:ld(存在):
在这里插入图片描述
(2)注册用户名:lddd(不存在),身份证号码:(存在)
在这里插入图片描述
(4)两次密码不相同:
第一次为:2222
第二次为:666666
在这里插入图片描述
(4)注册成功返回登录界面
在这里插入图片描述
模块3:主页模块:(买车模块)
(1)列出所有处在发布状态的车
在这里插入图片描述
(2)提供查询(按品牌、型号、估价、年限)
查询框“品牌”输入:红旗,点击查询
在这里插入图片描述
查询框“型号”输入:H9,点击查询
在这里插入图片描述
查询框“价格”输入:40、150,点击查询
在这里插入图片描述
查询框输入多个值:红旗、H9,100,150
在这里插入图片描述
(3)排序功能
按价格升序排序
在这里插入图片描述
按价格降序排序
在这里插入图片描述
(4)返回主页
点击返回主页可以返回主页。
在这里插入图片描述
模块4、查看车辆详情模块
(1)列出相关车辆的信息,查看该车辆的所有留言
点击“查看详情”,进入车辆详情页面,展示车辆的图片、各类信息、该车所有留言、车主地址、姓名等。
在这里插入图片描述
在这里插入图片描述
(2)进行留言
在留言区输入自己的留言,并点击提交,会刷新页面,将自己的发言显示在留言区
在这里插入图片描述
模块5、查看具体某一条留言
(1)查看本条留言的发送者用户名、该留言的所有回复
点击该条留言,可以对留言信息进行查看

在这里插入图片描述
在这里插入图片描述
(2)可以对该留言进行评论
在这里插入图片描述
(3)若该留言发布者为自己,则还可以删除
在这里插入图片描述

模块6、卖车模块
(1)列出自己的所有车辆
点击“我要卖车”,进入卖车界面
在这里插入图片描述
(2)可进行查询(查询车牌号,结果转到修改界面)
键入车牌号码,可以进入该车修改界面:
在这里插入图片描述
在这里插入图片描述
模块7、添加新车模块
根据自己输入的信息(车辆信息包括图片,进行车辆添加,同时检验该车牌号码是否存在)
在这里插入图片描述
在这里插入图片描述
模块8、修改车辆信息模块
根据自己输入的要修改的信息(车辆信息包括图片,进行车辆添加,同时检验该车牌号码是否存在,这个过程中必须再次上传图片)且判断是否是发布状态,若发布,则不能修改
修改估价为46,但该车已经发布:
在这里插入图片描述
修改未发布的车辆
在这里插入图片描述
在这里插入图片描述
模块9、删除车辆信息模块
主要功能:根据自己的用户名、密码然后再确认密码后可以删除该辆车
在这里插入图片描述
模块10、查看自己车辆的所有评论
列出自己所有车辆的评论
在这里插入图片描述
模块11、本车发布状态管理
主要功能:调整授权车辆的发布状态,是否进行发布
点击“取消发布”后,主页就见不到该车的信息
在这里插入图片描述
在这里插入图片描述
模块12、个人信息修改
修改个人信息,根据输入个人信息进行修改
在这里插入图片描述
模块13、查看自己的所有留言
查看自己所有留言,可进行删除
在这里插入图片描述
模块14、管理员登录
主要功能:检验该用户是否存在,密码是否正确
在这里插入图片描述
模块14、管理员管理会员
管理会员是否有资格登录进网站
在这里插入图片描述
模块16、管理员管理车辆信息
下架有不良信息的车辆
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部