【停车场车辆管理系统】从零搭建——项目分析
【停车场车辆管理系统】从零搭建——数据库搭建
【停车场车辆管理系统】从零搭建——后端搭建
【停车场车辆管理系统】从零搭建——后端Model类
【停车场车辆管理系统】从零搭建——Mapper搭建
【停车场车辆管理系统】从零搭建——AdminController搭建
【停车场车辆管理系统】从零搭建——UserController搭建
【停车场车辆管理系统】从零搭建——前端react搭建
- Controller
- 登录
- 个人信息模块
- 车位管理
- 车位承包信息
- 查看所有承包申请
- 查询相关代码
- 同意申请
- 拒绝申请
- 查看停车订单
- 完整代码
写完了数据库业务层,我们开始写控制层。
再回顾一遍项目需求:
管理员模块
- 个人信息模块:
查找数据库中个人信息展示,修改按钮=》修改所有个人信息包括密码。个人车辆信息,修改车辆信息- 车位信息:
表格形式展示自己所管理的小区的所有车位,录入车位、修改车位信息、删除车位- 车位承包信息:
表格形式展示自己所管理小区的所有【车位承包申请表】,这个模块需要车主发起申请才会有数据,管理员可以选择同意或拒绝。临时停车信息就不用发起申请了- 停车收费信息:
表格形式展示自己所管理小区的车位停车情况,录入停车订单这块我考虑订单直接在承包申请同意之后自动生成车主
- 个人信息:展示个人信息,修改所有信息包括密码
- 车位占用:查看所有未被占用车位,发起承包或停车
- 停车费用管理:查看自己的订单,选择缴费
项目需求还是比较清晰的,controller这快我们根据角色来写,也就是分为AdminController和UserController。
首先,我们创建一个AdminController.java文件。
public class AdminController {
}
我们为它输入注解:
@Controller
@RequestMapping("admin")
@CrossOrigin(origins = "*", maxAge = 3600)
public class AdminController {
}
解释一下:
-
@Controller:表示当前类为处理器,对象存放在SpringMVC中
-
@RequestMapping:表示当前方法为处理器方法。该方法要对value属性所指定的 URI 进行处理与响应。被注解的方法的方法名可以随意
位置:- 在方法上面(推荐)
- 在类上面
使用@RequestMapper修饰的方法叫做处理器方法或者控制器方法
使用@RequestMapper修饰的方法可以处理请求的,类似servlet中的doGet()、doPost()
作用 是把一个请求和一个方法绑定在一起,一个请求指定一个方法处理。
属性:value :是一个字符串,表示请求url地址的(some.do),value的值必须是唯一的,不能重复,在使用时,推荐使用/开头 -
@CrossOrigin解决跨域问题
- origins:是允许访问的列表(origins=“网址”)
- maxAge:准备响应前的 缓存持续的 最大时间
然后我们把Mapper类自动装配进去:
@Controller
@RequestMapping("admin")
@CrossOrigin(origins = "*", maxAge = 3600)
public class AdminController {
// 自动装配
@Autowired
AdminMapper adminMapper;
@Autowired
CarMapper carMapper;
@Autowired
CityMapper cityMapper;
@Autowired
ParkingOrderMapper parkingOrderMapper;
@Autowired
ParkMapper parkMapper;
@Autowired
RentApplicationMapper rentApplicationMapper;
@Autowired
UserMapper userMapper;
@Autowired是一种注解,可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。
下面我们来写第一个方法:
登录我们首先分析,登录方法需要获取前端传递过来的一个Admin类型的数据,然后我们调用adminMapper的selectFromAdminByAdminPhoneAndAdminPassword方法,最后将mapper接口的返回值返回到前端。
@RequestMapping("adminLogin")
@ResponseBody
public Admin adminLogin(@RequestBody Admin admin) {
return adminMapper.selectFromAdminByAdminPhoneAndAdminPassword(admin.getAdminPhone(), admin.getAdminPassword());
}
其中,@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
后端的代码都挺简单的,两三行,没什么好讲解的,弄懂逻辑基本上都能写的出来。
@RequestMapping("selectMyInfo")
@ResponseBody
public Admin selectMyInfo(@RequestBody Admin admin) {
return adminMapper.selectFromAdminByAdminId(admin.getAdminId());
}
@RequestMapping("updateMyInfo")
@ResponseBody
public void updateMyInfo(@RequestBody Admin admin) {
adminMapper.updateAdminByAdminId(admin);
}
车位管理
@RequestMapping("selectParkInCity")
@ResponseBody
public List selectParkInCity(@RequestBody Admin admin) {
return parkMapper.selectAllFromParkByCityId(admin.getCityId());
}
@RequestMapping("insertIntoPark")
@ResponseBody
public void insertIntoPark(@RequestBody Park park) {
parkMapper.insertIntoPark(park);
}
@RequestMapping("deletePark")
@ResponseBody
public void deletePark(@RequestBody Park park) {
parkMapper.updateParkSetParkStateByParkId(3, park.getParkId());
}
@RequestMapping("updatePark")
@ResponseBody
public void updatePark(@RequestBody Park park) {
parkMapper.updateParkByParkId(park);
}
车位承包信息
这个部分代码比较长,我仔细说下。
查看所有承包申请
@RequestMapping("selectAllRentApplication")
@ResponseBody
public List selectAllRentApplication(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectAllFromRentApplication(admin.getCityId());
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
- 首先,前端传递过来一个admin类,这个类有什么作用呢?在这个方法里,我们所用到的主要是admin的cityId。需要通过admin的cityId来定位,目前查看的承包信息是属于哪个小区的。
- 所以方法体第一行,
List
其实正常到这一行就return了,但大家可能发现,第二行有个从来没有见过的RentApplicationUse类,这是后来为了便于前端数据处理而创建的类。rentApplicationList = rentApplicationMapper.selectAllFromRentApplication(admin.getCityId()); - RentApplicationUse类的属性如下:
private RentApplication rentApplication; private List可以看出来,第一个属性用于存储承包表信息,而第二个属性则是存放车辆、停车场、用户的信息。car_park_user; - 从代码的第二行开始,创建了一个RentApplicationUse的List类。同时对第一行获取的RentApplication进行遍历。每次遍历时,获取car、park、user的信息,填入RentApplicationUse类中。
后边涉及到查询的代码基本上都是这样,将car、park、user的信息填入类中。
这个其实也有另一种解决方案,就是直接为RentApplication类添加private List
@RequestMapping("selectAllRentApplication")
@ResponseBody
public List selectAllRentApplication(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectAllFromRentApplication(admin.getCityId());
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
@RequestMapping("selectRentApplicationCannotAgree")
@ResponseBody
public List selectRentApplicationCannotAgree(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectFromRentApplicationByNotEmptyPark(admin.getCityId());
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getCarId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
@RequestMapping("selectRentApplication0")
@ResponseBody
public List selectRentApplication0(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 0);
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
System.out.println(rentApplication.toString());
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
@RequestMapping("selectRentApplication1")
@ResponseBody
public List selectRentApplication1(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 1);
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getCarId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
@RequestMapping("selectRentApplication2")
@ResponseBody
public List selectRentApplication2(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 2);
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
同意申请
同意申请的时候,不但要对当前的申请表的审核状态进行改变,也需要对停车位的占用情况进行变化,并且生成一个停车订单。
@RequestMapping("agree")
@ResponseBody
public void agree(@RequestBody RentApplication rentApplication) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
//更新申请表
rentApplicationMapper.updateRentApplicationSetRentApplicationStateByrentApplicationId(1, rentApplication.getRentApplicationId());
//更新车位
parkMapper.updateParkSetParkStateAndCarIdByParkId(1, rentApplication.getCarId(), rentApplication.getParkId());
//新增订单
ParkingOrder parkingOrder = new ParkingOrder();
parkingOrder.setParkId(rentApplication.getParkId());
parkingOrder.setCarId(rentApplication.getCarId());
parkingOrder.setUserId(rentApplication.getUserId());
parkingOrder.setCityId(parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getCityId());
parkingOrder.setParkingOrderPrice(parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getRentPrice());
parkingOrder.setParkingTime(simpleDateFormat.format(date));
parkingOrder.setExpirationTime(simpleDateFormat.format(date.getTime() + (1000L * 60 * 60 * 24 * 30)));
parkingOrder.setParkingOrderState(0);
parkingOrder.setPayState(0);
parkingOrderMapper.insertIntoParkingOrder(parkingOrder);
}
拒绝申请
@RequestMapping("refuse")
@ResponseBody
public void refuse(@RequestBody RentApplication rentApplication) {
rentApplicationMapper.updateRentApplicationSetRentApplicationStateByrentApplicationId(2, rentApplication.getRentApplicationId());
}
查看停车订单
这里和上面一样,创建了一个parkingOrderUse类
public class ParkingOrderUse {
private ParkingOrder parkingOrder;
private List carNumberAndParkNumber;
}
在进行订单查询的时候,需要将用户与车辆信息返回到前端。首先先获取当前小区的所有订单信息,然后逐个遍历将车辆信息填入,这里用了个selectCarNumberAndParkNumberAndUserName方法,将具体操作封装起来了。
@RequestMapping("selectParkingOrder")
@ResponseBody
public List selectParkingOrder(@RequestBody Admin admin) {
List parkingOrderList = parkingOrderMapper.selectFromParckingOrderByCityId(admin.getCityId());
List parkingOrderUses = new ArrayList<>();
for (ParkingOrder parkingOrder : parkingOrderList) {
List strings = selectCarNumberAndParkNumberAndUserName(parkingOrder.getCarId(), parkingOrder.getParkId(), parkingOrder.getUserId());
ParkingOrderUse parkingOrderUse = new ParkingOrderUse(parkingOrder, strings);
parkingOrderUses.add(parkingOrderUse);
}
return parkingOrderUses;
}
@RequestMapping("selectCarNumberAndParkNumber")
@ResponseBody
public List selectCarNumberAndParkNumberAndUserName(Integer carId, Integer parkId, Integer userId) {
List res = new ArrayList<>();
res.add(carMapper.selectCarNumberFromCarByCarId(carId));
res.add(parkMapper.selectFromParkByParkId(parkId).getParkNumber());
res.add(userMapper.selectFromUserByUserId(userId).getUserName());
return res;
}
完整代码
AdminController的具体创建过程就是这样,有看不明白的地方可以留言或私信,以下是完整代码:
package com.example.vehiclemanagement.controller;
import com.example.vehiclemanagement.mapper.*;
import com.example.vehiclemanagement.model.*;
import com.example.vehiclemanagement.model.utilModel.ParkingOrderUse;
import com.example.vehiclemanagement.model.utilModel.RentApplicationUse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("admin")
@CrossOrigin(origins = "*", maxAge = 3600)
public class AdminController {
@Autowired
AdminMapper adminMapper;
@Autowired
CarMapper carMapper;
@Autowired
CityMapper cityMapper;
@Autowired
ParkingOrderMapper parkingOrderMapper;
@Autowired
ParkMapper parkMapper;
@Autowired
RentApplicationMapper rentApplicationMapper;
@Autowired
UserMapper userMapper;
@RequestMapping("adminLogin")
@ResponseBody
public Admin adminLogin(@RequestBody Admin admin) {
return adminMapper.selectFromAdminByAdminPhoneAndAdminPassword(admin.getAdminPhone(), admin.getAdminPassword());
}
@RequestMapping("selectMyInfo")
@ResponseBody
public Admin selectMyInfo(@RequestBody Admin admin) {
return adminMapper.selectFromAdminByAdminId(admin.getAdminId());
}
@RequestMapping("updateMyInfo")
@ResponseBody
public void updateMyInfo(@RequestBody Admin admin) {
adminMapper.updateAdminByAdminId(admin);
}
@RequestMapping("selectParkInCity")
@ResponseBody
public List selectParkInCity(@RequestBody Admin admin) {
return parkMapper.selectAllFromParkByCityId(admin.getCityId());
}
@RequestMapping("insertIntoPark")
@ResponseBody
public void insertIntoPark(@RequestBody Park park) {
parkMapper.insertIntoPark(park);
}
@RequestMapping("deletePark")
@ResponseBody
public void deletePark(@RequestBody Park park) {
parkMapper.updateParkSetParkStateByParkId(3, park.getParkId());
}
@RequestMapping("updatePark")
@ResponseBody
public void updatePark(@RequestBody Park park) {
parkMapper.updateParkByParkId(park);
}
@RequestMapping("selectAllRentApplication")
@ResponseBody
public List selectAllRentApplication(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectAllFromRentApplication(admin.getCityId());
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
@RequestMapping("selectRentApplicationCannotAgree")
@ResponseBody
public List selectRentApplicationCannotAgree(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectFromRentApplicationByNotEmptyPark(admin.getCityId());
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getCarId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
@RequestMapping("selectRentApplication0")
@ResponseBody
public List selectRentApplication0(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 0);
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
System.out.println(rentApplication.toString());
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
@RequestMapping("selectRentApplication1")
@ResponseBody
public List selectRentApplication1(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 1);
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getCarId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
@RequestMapping("selectRentApplication2")
@ResponseBody
public List selectRentApplication2(@RequestBody Admin admin) {
List rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 2);
List rentApplicationUseList = new ArrayList<>();
for (RentApplication rentApplication : rentApplicationList) {
String car = carMapper.selectCarNumberFromCarByCarId(rentApplication.getCarId());
String park = parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getParkNumber();
String userName = userMapper.selectFromUserByUserId(rentApplication.getUserId()).getUserName();
List strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
@RequestMapping("agree")
@ResponseBody
public void agree(@RequestBody RentApplication rentApplication) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
//更新申请表
rentApplicationMapper.updateRentApplicationSetRentApplicationStateByrentApplicationId(1, rentApplication.getRentApplicationId());
//更新车位
parkMapper.updateParkSetParkStateAndCarIdByParkId(1, rentApplication.getCarId(), rentApplication.getParkId());
//新增订单
ParkingOrder parkingOrder = new ParkingOrder();
parkingOrder.setParkId(rentApplication.getParkId());
parkingOrder.setCarId(rentApplication.getCarId());
parkingOrder.setUserId(rentApplication.getUserId());
parkingOrder.setCityId(parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getCityId());
parkingOrder.setParkingOrderPrice(parkMapper.selectFromParkByParkId(rentApplication.getParkId()).getRentPrice());
parkingOrder.setParkingTime(simpleDateFormat.format(date));
parkingOrder.setExpirationTime(simpleDateFormat.format(date.getTime() + (1000L * 60 * 60 * 24 * 30)));
parkingOrder.setParkingOrderState(0);
parkingOrder.setPayState(0);
parkingOrderMapper.insertIntoParkingOrder(parkingOrder);
}
@RequestMapping("refuse")
@ResponseBody
public void refuse(@RequestBody RentApplication rentApplication) {
rentApplicationMapper.updateRentApplicationSetRentApplicationStateByrentApplicationId(2, rentApplication.getRentApplicationId());
}
@RequestMapping("selectParkingOrder")
@ResponseBody
public List selectParkingOrder(@RequestBody Admin admin) {
List parkingOrderList = parkingOrderMapper.selectFromParckingOrderByCityId(admin.getCityId());
List parkingOrderUses = new ArrayList<>();
for (ParkingOrder parkingOrder : parkingOrderList) {
List strings = selectCarNumberAndParkNumberAndUserName(parkingOrder.getCarId(), parkingOrder.getParkId(), parkingOrder.getUserId());
ParkingOrderUse parkingOrderUse = new ParkingOrderUse(parkingOrder, strings);
parkingOrderUses.add(parkingOrderUse);
}
return parkingOrderUses;
}
@RequestMapping("selectCarNumberAndParkNumber")
@ResponseBody
public List selectCarNumberAndParkNumberAndUserName(Integer carId, Integer parkId, Integer userId) {
List res = new ArrayList<>();
res.add(carMapper.selectCarNumberFromCarByCarId(carId));
res.add(parkMapper.selectFromParkByParkId(parkId).getParkNumber());
res.add(userMapper.selectFromUserByUserId(userId).getUserName());
return res;
}
}



