【停车场车辆管理系统】从零搭建——AdminController搭建
【停车场车辆管理系统】从零搭建——UserController搭建
Controller
写完了数据库业务层,我们开始写控制层。
再回顾一遍项目需求:
管理员模块
- 个人信息模块:
查找数据库中个人信息展示,修改按钮=》修改所有个人信息包括密码。个人车辆信息,修改车辆信息- 车位信息:
表格形式展示自己所管理的小区的所有车位,录入车位、修改车位信息、删除车位- 车位承包信息:
表格形式展示自己所管理小区的所有【车位承包申请表】,这个模块需要车主发起申请才会有数据,管理员可以选择同意或拒绝。临时停车信息就不用发起申请了- 停车收费信息:
表格形式展示自己所管理小区的车位停车情况,录入停车订单这块我考虑订单直接在承包申请同意之后自动生成车主
- 个人信息:展示个人信息,修改所有信息包括密码
- 车位占用:查看所有未被占用车位,发起承包或停车
- 停车费用管理:查看自己的订单,选择缴费
项目需求还是比较清晰的,controller这快我们根据角色来写,也就是分为AdminController和UserController。
首先,我们创建一个AdminController.java文件
。
public class AdminController {
}
我们为它输入注解:
@Controller
@RequestMapping("admin")
@CrossOrigin(origins = "*", maxAge = 3600)
public class AdminController {
}
解释一下:
@Controller
:表示当前类为处理器,对象存放在SpringMVC中@RequestMapping
:表示当前方法为处理器方法。该方法要对value属性所指定的 URI 进行处理与响应。被注解的方法的方法名可以随意
位置:- 在方法上面(推荐)
- 在类上面
使用
@RequestMappe
r修饰的方法叫做处理器方法或者控制器方法
使用@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接口的返回值返回到前端。
/**
* 登录
*
* @param admin
* @return
*/
@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()
可以有多个。
个人信息模块
后端的代码都挺简单的,两三行,没什么好讲解的,弄懂逻辑基本上都能写的出来。
/**
* 查看个人信息
*
* @param admin
* @return
*/
@RequestMapping("selectMyInfo")
@ResponseBody
public Admin selectMyInfo(@RequestBody Admin admin) {
return adminMapper.selectFromAdminByAdminId(admin.getAdminId());
}
/**
* 修改个人信息
*
* @param admin
*/
@RequestMapping("updateMyInfo")
@ResponseBody
public void updateMyInfo(@RequestBody Admin admin) {
adminMapper.updateAdminByAdminId(admin);
}
车位管理
/**
* 查看所有车位
*
* @param admin
* @return
*/
@RequestMapping("selectParkInCity")
@ResponseBody
public List<Park> selectParkInCity(@RequestBody Admin admin) {
return parkMapper.selectAllFromParkByCityId(admin.getCityId());
}
/**
* 添加车位
*
* @param park
*/
@RequestMapping("insertIntoPark")
@ResponseBody
public void insertIntoPark(@RequestBody Park park) {
parkMapper.insertIntoPark(park);
}
/**
* 删除车位
*
* @param park
*/
@RequestMapping("deletePark")
@ResponseBody
public void deletePark(@RequestBody Park park) {
parkMapper.updateParkSetParkStateByParkId(3, park.getParkId());
}
/**
* 更新车位信息
*
* @param park
*/
@RequestMapping("updatePark")
@ResponseBody
public void updatePark(@RequestBody Park park) {
parkMapper.updateParkByParkId(park);
}
车位承包信息
这个部分代码比较长,我仔细说下。
查看所有承包申请
/**
* 查看所有承包申请
*
* @return
*/
@RequestMapping("selectAllRentApplication")
@ResponseBody
public List<RentApplicationUse> selectAllRentApplication(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectAllFromRentApplication(admin.getCityId());
List<RentApplicationUse> 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<String> 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来定位,目前查看的承包信息是属于哪个小区的。
- 所以方法体第一行,
其实正常到这一行就return了,但大家可能发现,第二行有个从来没有见过的List<RentApplication> rentApplicationList = rentApplicationMapper.selectAllFromRentApplication(admin.getCityId());
RentApplicationUse
类,这是后来为了便于前端数据处理而创建的类。 RentApplicationUse
类的属性如下:
可以看出来,第一个属性用于存储承包表信息,而第二个属性则是存放车辆、停车场、用户的信息。private RentApplication rentApplication; private List<String> car_park_user;
- 从代码的第二行开始,创建了一个
RentApplicationUse
的List类。同时对第一行获取的RentApplication
进行遍历。每次遍历时,获取car、park、user的信息,填入RentApplicationUse
类中。
后边涉及到查询的代码基本上都是这样,将car、park、user的信息填入类中。
这个其实也有另一种解决方案,就是直接为RentApplication类添加private List<String> car_park_user;
属性,但是不知道为什么当初选择了这种方法。
查询相关代码
/**
* 查看所有承包申请
*
* @return
*/
@RequestMapping("selectAllRentApplication")
@ResponseBody
public List<RentApplicationUse> selectAllRentApplication(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectAllFromRentApplication(admin.getCityId());
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
/**
* 可一键拒绝的申请
*
* @param admin
* @return
*/
@RequestMapping("selectRentApplicationCannotAgree")
@ResponseBody
public List<RentApplicationUse> selectRentApplicationCannotAgree(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectFromRentApplicationByNotEmptyPark(admin.getCityId());
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
/**
* 查看待审批申请
*
* @return
*/
@RequestMapping("selectRentApplication0")
@ResponseBody
public List<RentApplicationUse> selectRentApplication0(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 0);
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
/**
* 查看已同意申请
*
* @return
*/
@RequestMapping("selectRentApplication1")
@ResponseBody
public List<RentApplicationUse> selectRentApplication1(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 1);
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
/**
* 查看已拒绝申请
*
* @return
*/
@RequestMapping("selectRentApplication2")
@ResponseBody
public List<RentApplicationUse> selectRentApplication2(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 2);
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
同意申请
同意申请的时候,不但要对当前的申请表的审核状态进行改变,也需要对停车位的占用情况进行变化,并且生成一个停车订单。
/**
* 同意申请
* 修改申请状态和车位
*
* @param rentApplication
*/
@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);
}
拒绝申请
/**
* 拒绝申请
*
* @param rentApplication
*/
@RequestMapping("refuse")
@ResponseBody
public void refuse(@RequestBody RentApplication rentApplication) {
rentApplicationMapper.updateRentApplicationSetRentApplicationStateByrentApplicationId(2, rentApplication.getRentApplicationId());
}
查看停车订单
这里和上面一样,创建了一个parkingOrderUse
类
public class ParkingOrderUse {
private ParkingOrder parkingOrder;
private List<String> carNumberAndParkNumber;
}
在进行订单查询的时候,需要将用户与车辆信息返回到前端。首先先获取当前小区的所有订单信息,然后逐个遍历将车辆信息填入,这里用了个selectCarNumberAndParkNumberAndUserName
方法,将具体操作封装起来了。
/**
* 查看所有停车订单
*
* @param admin
* @return
*/
@RequestMapping("selectParkingOrder")
@ResponseBody
public List<ParkingOrderUse> selectParkingOrder(@RequestBody Admin admin) {
List<ParkingOrder> parkingOrderList = parkingOrderMapper.selectFromParckingOrderByCityId(admin.getCityId());
List<ParkingOrderUse> parkingOrderUses = new ArrayList<>();
for (ParkingOrder parkingOrder : parkingOrderList) {
List<String> strings = selectCarNumberAndParkNumberAndUserName(parkingOrder.getCarId(), parkingOrder.getParkId(), parkingOrder.getUserId());
ParkingOrderUse parkingOrderUse = new ParkingOrderUse(parkingOrder, strings);
parkingOrderUses.add(parkingOrderUse);
}
return parkingOrderUses;
}
/**
* 搜索车牌、停车位、所属人
*
* @param carId
* @param parkId
* @param userId
* @return
*/
@RequestMapping("selectCarNumberAndParkNumber")
@ResponseBody
public List<String> selectCarNumberAndParkNumberAndUserName(Integer carId, Integer parkId, Integer userId) {
List<String> 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;
/**
* 登录
*
* @param admin
* @return
*/
@RequestMapping("adminLogin")
@ResponseBody
public Admin adminLogin(@RequestBody Admin admin) {
return adminMapper.selectFromAdminByAdminPhoneAndAdminPassword(admin.getAdminPhone(), admin.getAdminPassword());
}
/**
* 查看个人信息
*
* @param admin
* @return
*/
@RequestMapping("selectMyInfo")
@ResponseBody
public Admin selectMyInfo(@RequestBody Admin admin) {
return adminMapper.selectFromAdminByAdminId(admin.getAdminId());
}
/**
* 修改个人信息
*
* @param admin
*/
@RequestMapping("updateMyInfo")
@ResponseBody
public void updateMyInfo(@RequestBody Admin admin) {
adminMapper.updateAdminByAdminId(admin);
}
/**
* 查看所有车位
*
* @param admin
* @return
*/
@RequestMapping("selectParkInCity")
@ResponseBody
public List<Park> selectParkInCity(@RequestBody Admin admin) {
return parkMapper.selectAllFromParkByCityId(admin.getCityId());
}
/**
* 添加车位
*
* @param park
*/
@RequestMapping("insertIntoPark")
@ResponseBody
public void insertIntoPark(@RequestBody Park park) {
parkMapper.insertIntoPark(park);
}
/**
* 删除车位
*
* @param park
*/
@RequestMapping("deletePark")
@ResponseBody
public void deletePark(@RequestBody Park park) {
parkMapper.updateParkSetParkStateByParkId(3, park.getParkId());
}
/**
* 更新车位信息
*
* @param park
*/
@RequestMapping("updatePark")
@ResponseBody
public void updatePark(@RequestBody Park park) {
parkMapper.updateParkByParkId(park);
}
/**
* 查看所有承包申请
*
* @return
*/
@RequestMapping("selectAllRentApplication")
@ResponseBody
public List<RentApplicationUse> selectAllRentApplication(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectAllFromRentApplication(admin.getCityId());
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
/**
* 可一键拒绝的申请
*
* @param admin
* @return
*/
@RequestMapping("selectRentApplicationCannotAgree")
@ResponseBody
public List<RentApplicationUse> selectRentApplicationCannotAgree(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectFromRentApplicationByNotEmptyPark(admin.getCityId());
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
/**
* 查看待审批申请
*
* @return
*/
@RequestMapping("selectRentApplication0")
@ResponseBody
public List<RentApplicationUse> selectRentApplication0(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 0);
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
/**
* 查看已同意申请
*
* @return
*/
@RequestMapping("selectRentApplication1")
@ResponseBody
public List<RentApplicationUse> selectRentApplication1(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 1);
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
/**
* 查看已拒绝申请
*
* @return
*/
@RequestMapping("selectRentApplication2")
@ResponseBody
public List<RentApplicationUse> selectRentApplication2(@RequestBody Admin admin) {
List<RentApplication> rentApplicationList = rentApplicationMapper.selectFromRentApplicationByRentApplicationState(admin.getCityId(), 2);
List<RentApplicationUse> 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<String> strings = new ArrayList<>();
strings.add(car);
strings.add(park);
strings.add(userName);
RentApplicationUse rentApplicationUse = new RentApplicationUse(rentApplication, strings);
rentApplicationUseList.add(rentApplicationUse);
}
return rentApplicationUseList;
}
/**
* 同意申请
* 修改申请状态和车位
*
* @param rentApplication
*/
@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);
}
/**
* 拒绝申请
*
* @param rentApplication
*/
@RequestMapping("refuse")
@ResponseBody
public void refuse(@RequestBody RentApplication rentApplication) {
rentApplicationMapper.updateRentApplicationSetRentApplicationStateByrentApplicationId(2, rentApplication.getRentApplicationId());
}
/**
* 查看所有停车订单
*
* @param admin
* @return
*/
@RequestMapping("selectParkingOrder")
@ResponseBody
public List<ParkingOrderUse> selectParkingOrder(@RequestBody Admin admin) {
List<ParkingOrder> parkingOrderList = parkingOrderMapper.selectFromParckingOrderByCityId(admin.getCityId());
List<ParkingOrderUse> parkingOrderUses = new ArrayList<>();
for (ParkingOrder parkingOrder : parkingOrderList) {
List<String> strings = selectCarNumberAndParkNumberAndUserName(parkingOrder.getCarId(), parkingOrder.getParkId(), parkingOrder.getUserId());
ParkingOrderUse parkingOrderUse = new ParkingOrderUse(parkingOrder, strings);
parkingOrderUses.add(parkingOrderUse);
}
return parkingOrderUses;
}
/**
* 搜索车牌、停车位、所属人
*
* @param carId
* @param parkId
* @param userId
* @return
*/
@RequestMapping("selectCarNumberAndParkNumber")
@ResponseBody
public List<String> selectCarNumberAndParkNumberAndUserName(Integer carId, Integer parkId, Integer userId) {
List<String> res = new ArrayList<>();
res.add(carMapper.selectCarNumberFromCarByCarId(carId));
res.add(parkMapper.selectFromParkByParkId(parkId).getParkNumber());
res.add(userMapper.selectFromUserByUserId(userId).getUserName());
return res;
}
}