当前位置: 首页 > news >正文

响应式高端网站网站建设 中企动力鄂ICP备

响应式高端网站,网站建设 中企动力鄂ICP备,三水网站开发,百度一下就知道官方#x1f525;博客主页#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞#x1f44d;收藏⭐评论✍ 文章目录 1.0 项目介绍 1.1 项目功能 2.0 用户登录功能 3.0 首页界面 4.0 车辆信息管理功能 5.0 停车位管理功能 6.0 入场登记管理功能 7.0 预约管理功能 8.0 收费规则功能 9.0… 博客主页 【小扳_-CSDN博客】 ❤感谢大家点赞收藏⭐评论✍ 文章目录 1.0 项目介绍 1.1 项目功能 2.0 用户登录功能 3.0 首页界面 4.0 车辆信息管理功能 5.0 停车位管理功能 6.0 入场登记管理功能 7.0 预约管理功能 8.0 收费规则功能 9.0 出场登记管理功能 10.0 用户信息管理功能 11.0 SQL 数据库设计 1.0 项目介绍 开发工具IDEA、VScode 服务器Tomcat JDK 17 项目构建maven 数据库mysql 8.0 系统用户前台和管理后台两部分项目采用前后端分离 前端技术vue elementUI 服务端技术springboot mybatis redis mysql 1.1 项目功能 后台功能 1登录、退出系统、首页 2用户信息管理 (1) 用户信息管理添加、修改、删除、查询等功能。 3车辆信息管理 (1) 车辆信息管理添加、修改、删除、查询等功能。 4停车位管理 (1) 停车位管理添加、修改、删除、查询、安排车位等功能。 5入场登记管理 (1)入场登记管理添加、修改、删除、查询等功能。 6预约管理 (1) 车位预约管理添加、修改、删除、查询等功能。 7收费规则 (1) 收费规则添加、修改、删除、查询等功能。 8出场登记管理 (1) 出场登记管理添加、修改、删除、查询等功能。 9权限管理 (1)角色信息管理添加、修改、删除、分配权限等功能。 (2)资源信息管理添加、修改、删除等功能。 注意不一定非要完全符合开发环境有稍微的差别也是可以开发的。 若需要项目完整源码可以在 CSDN 私信给我我每天都有查看消息的感谢大家支持希望可以帮助到大家 2.0 用户登录功能 用户根据正确的用户名、密码且通过正确的校验码进行登录。 实现了登录校验还有用户注册功能 用到了 Spring Security 框架来实现登录、校验、验证等功能。  相关的部分源码 RestController public class SysLoginController {Autowiredprivate SysLoginService loginService;Autowiredprivate ISysMenuService menuService;Autowiredprivate SysPermissionService permissionService;/*** 登录方法* * param loginBody 登录信息* return 结果*/PostMapping(/login)public AjaxResult login(RequestBody LoginBody loginBody){AjaxResult ajax AjaxResult.success();// 生成令牌String token loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),loginBody.getUuid());ajax.put(Constants.TOKEN, token);return ajax;}/*** 获取用户信息* * return 用户信息*/GetMapping(getInfo)public AjaxResult getInfo(){SysUser user SecurityUtils.getLoginUser().getUser();// 角色集合SetString roles permissionService.getRolePermission(user);// 权限集合SetString permissions permissionService.getMenuPermission(user);AjaxResult ajax AjaxResult.success();ajax.put(user, user);ajax.put(roles, roles);ajax.put(permissions, permissions);return ajax;}/*** 获取路由信息* * return 路由信息*/GetMapping(getRouters)public AjaxResult getRouters(){Long userId SecurityUtils.getUserId();ListSysMenu menus menuService.selectMenuTreeByUserId(userId);return AjaxResult.success(menuService.buildMenus(menus));} } public String login(String username, String password, String code, String uuid){// 验证码校验validateCaptcha(username, code, uuid);// 登录前置校验loginPreCheck(username, password);// 用户验证Authentication authentication null;try{UsernamePasswordAuthenticationToken authenticationToken new UsernamePasswordAuthenticationToken(username, password);AuthenticationContextHolder.setContext(authenticationToken);// 该方法会去调用UserDetailsServiceImpl.loadUserByUsernameauthentication authenticationManager.authenticate(authenticationToken);}catch (Exception e){if (e instanceof BadCredentialsException){AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message(user.password.not.match)));throw new UserPasswordNotMatchException();}else{AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));throw new ServiceException(e.getMessage());}}finally{AuthenticationContextHolder.clearContext();}AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message(user.login.success)));LoginUser loginUser (LoginUser) authentication.getPrincipal();recordLoginInfo(loginUser.getUserId());// 生成tokenreturn tokenService.createToken(loginUser);} 3.0 首页界面 统计相关车辆的信息使用柱状图和圆饼图来展示出来会更加直观。 相关的源码 templatediv classstatistics-container!-- h1智行无忧停车场/h1 --div classdata-summarydiv classsummary-itemh2今日车辆总数/h2p{{ totalVehicles }}/p/divdiv classsummary-itemh2今日车辆进入数/h2p{{ todayEntries }}/p/divdiv classsummary-itemh2今日车辆离开数/h2p{{ todayExits }}/p/divdiv classsummary-itemh2当前空闲车位数/h2p{{ availableSpots }}/p/div/divdiv classchart-containerdiv idvehicleEntryExitChart stylewidth: 100%; height: 400px;/div/divdiv classchart-containerdiv idspotUsageChart stylewidth: 100%; height: 400px;/div/div/div /templatescript setup import * as echarts from echarts; import { onMounted, ref, computed } from vue;const vehicleEntryExitChart ref(null); const spotUsageChart ref(null);// 模拟数据 const mockVehicleEntryExitData {dates: [2024-12-04, 2024-12-05, 2024-12-06],entries: [120, 200, 150],exits: [90, 180, 130] };const mockSpotUsageData {spotUsages: [{ value: 335, name: 已使用 },{ value: 310, name: 未使用 }] };const totalVehicles computed(() mockVehicleEntryExitData.entries.reduce((a, b) a b, 0)); const todayEntries computed(() mockVehicleEntryExitData.entries[mockVehicleEntryExitData.entries.length - 1]); const todayExits computed(() mockVehicleEntryExitData.exits[mockVehicleEntryExitData.exits.length - 1]); const availableSpots computed(() mockSpotUsageData.spotUsages.find(item item.name 未使用)?.value || 0);onMounted(() {initVehicleEntryExitChart();initSpotUsageChart(); });function initVehicleEntryExitChart() {const chartDom document.getElementById(vehicleEntryExitChart);if (chartDom) {const myChart echarts.init(chartDom);const option {title: {text: 车辆进出统计},tooltip: {trigger: axis,axisPointer: {type: shadow}},xAxis: {type: category,data: mockVehicleEntryExitData.dates},yAxis: {type: value},series: [{name: 车辆进入,data: mockVehicleEntryExitData.entries,type: bar},{name: 车辆离开,data: mockVehicleEntryExitData.exits,type: bar}]};myChart.setOption(option);} }function initSpotUsageChart() {const chartDom document.getElementById(spotUsageChart);if (chartDom) {const myChart echarts.init(chartDom);const option {title: {text: 车位使用情况},tooltip: {trigger: item},legend: {top: 5%,left: center},series: [{name: 车位使用情况,type: pie,radius: 50%,data: mockSpotUsageData.spotUsages,emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: rgba(0, 0, 0, 0.5)}}}]};myChart.setOption(option);} } /script 4.0 车辆信息管理功能 上传图片使用了第三方接口x-File-Storage 框架。 相关源码 RestController RequestMapping(/manage/vehicle) public class VehicleController extends BaseController {Autowiredprivate IVehicleService vehicleService;/*** 查询车辆信息列表*/PreAuthorize(ss.hasPermi(manage:vehicle:list))GetMapping(/list)public TableDataInfo list(Vehicle vehicle){startPage();ListVehicle list vehicleService.selectVehicleList(vehicle);return getDataTable(list);}/*** 导出车辆信息列表*/PreAuthorize(ss.hasPermi(manage:vehicle:export))Log(title 车辆信息, businessType BusinessType.EXPORT)PostMapping(/export)public void export(HttpServletResponse response, Vehicle vehicle){ListVehicle list vehicleService.selectVehicleList(vehicle);ExcelUtilVehicle util new ExcelUtilVehicle(Vehicle.class);util.exportExcel(response, list, 车辆信息数据);}/*** 获取车辆信息详细信息*/PreAuthorize(ss.hasPermi(manage:vehicle:query))GetMapping(value /{vehicleId})public AjaxResult getInfo(PathVariable(vehicleId) Long vehicleId){return success(vehicleService.selectVehicleByVehicleId(vehicleId));}/*** 新增车辆信息*/PreAuthorize(ss.hasPermi(manage:vehicle:add))Log(title 车辆信息, businessType BusinessType.INSERT)PostMappingpublic AjaxResult add(RequestBody Vehicle vehicle){return toAjax(vehicleService.insertVehicle(vehicle));}/*** 修改车辆信息*/PreAuthorize(ss.hasPermi(manage:vehicle:edit))Log(title 车辆信息, businessType BusinessType.UPDATE)PutMappingpublic AjaxResult edit(RequestBody Vehicle vehicle){return toAjax(vehicleService.updateVehicle(vehicle));}/*** 删除车辆信息*/PreAuthorize(ss.hasPermi(manage:vehicle:remove))Log(title 车辆信息, businessType BusinessType.DELETE)DeleteMapping(/{vehicleIds})public AjaxResult remove(PathVariable Long[] vehicleIds){return toAjax(vehicleService.deleteVehicleByVehicleIds(vehicleIds));} } 5.0 停车位管理功能 相关源码 RestController RequestMapping(/manage/spot) public class ParkingSpotController extends BaseController {Autowiredprivate IParkingSpotService parkingSpotService;/*** 查询停车位列表*/PreAuthorize(ss.hasPermi(manage:spot:list))GetMapping(/list)public TableDataInfo list(ParkingSpot parkingSpot){startPage();ListParkingSpot list parkingSpotService.selectParkingSpotList(parkingSpot);return getDataTable(list);}/*** 导出停车位列表*/PreAuthorize(ss.hasPermi(manage:spot:export))Log(title 停车位, businessType BusinessType.EXPORT)PostMapping(/export)public void export(HttpServletResponse response, ParkingSpot parkingSpot){ListParkingSpot list parkingSpotService.selectParkingSpotList(parkingSpot);ExcelUtilParkingSpot util new ExcelUtilParkingSpot(ParkingSpot.class);util.exportExcel(response, list, 停车位数据);}/*** 获取停车位详细信息*/PreAuthorize(ss.hasPermi(manage:spot:query))GetMapping(value /{spotId})public AjaxResult getInfo(PathVariable(spotId) Long spotId){return success(parkingSpotService.selectParkingSpotBySpotId(spotId));}/*** 新增停车位*/PreAuthorize(ss.hasPermi(manage:spot:add))Log(title 停车位, businessType BusinessType.INSERT)PostMappingpublic AjaxResult add(RequestBody ParkingSpot parkingSpot){return toAjax(parkingSpotService.insertParkingSpot(parkingSpot));}/*** 修改停车位*/PreAuthorize(ss.hasPermi(manage:spot:edit))Log(title 停车位, businessType BusinessType.UPDATE)PutMappingpublic AjaxResult edit(RequestBody ParkingSpot parkingSpot){return toAjax(parkingSpotService.updateParkingSpot(parkingSpot));}/*** 删除停车位*/PreAuthorize(ss.hasPermi(manage:spot:remove))Log(title 停车位, businessType BusinessType.DELETE)DeleteMapping(/{spotIds})public AjaxResult remove(PathVariable Long[] spotIds){return toAjax(parkingSpotService.deleteParkingSpotBySpotIds(spotIds));} } 6.0 入场登记管理功能 相关源码 RestController RequestMapping(/manage/record) public class EntryRecordController extends BaseController {Autowiredprivate IEntryRecordService entryRecordService;/*** 查询入场记录列表*/PreAuthorize(ss.hasPermi(manage:record:list))GetMapping(/list)public TableDataInfo list(EntryRecord entryRecord){startPage();ListEntryRecord list entryRecordService.selectEntryRecordList(entryRecord);return getDataTable(list);}/*** 导出入场记录列表*/PreAuthorize(ss.hasPermi(manage:record:export))Log(title 入场记录, businessType BusinessType.EXPORT)PostMapping(/export)public void export(HttpServletResponse response, EntryRecord entryRecord){ListEntryRecord list entryRecordService.selectEntryRecordList(entryRecord);ExcelUtilEntryRecord util new ExcelUtilEntryRecord(EntryRecord.class);util.exportExcel(response, list, 入场记录数据);}/*** 获取入场记录详细信息*/PreAuthorize(ss.hasPermi(manage:record:query))GetMapping(value /{entryId})public AjaxResult getInfo(PathVariable(entryId) Long entryId){return success(entryRecordService.selectEntryRecordByEntryId(entryId));}/*** 新增入场记录*/PreAuthorize(ss.hasPermi(manage:record:add))Log(title 入场记录, businessType BusinessType.INSERT)PostMappingpublic AjaxResult add(RequestBody EntryRecord entryRecord){return toAjax(entryRecordService.insertEntryRecord(entryRecord));}/*** 修改入场记录*/PreAuthorize(ss.hasPermi(manage:record:edit))Log(title 入场记录, businessType BusinessType.UPDATE)PutMappingpublic AjaxResult edit(RequestBody EntryRecord entryRecord){return toAjax(entryRecordService.updateEntryRecord(entryRecord));}/*** 删除入场记录*/PreAuthorize(ss.hasPermi(manage:record:remove))Log(title 入场记录, businessType BusinessType.DELETE)DeleteMapping(/{entryIds})public AjaxResult remove(PathVariable Long[] entryIds){return toAjax(entryRecordService.deleteEntryRecordByEntryIds(entryIds));} } 7.0 预约管理功能 相关源码 RestController RequestMapping(/manage/reservation) public class ReservationController extends BaseController {Autowiredprivate IReservationService reservationService;/*** 查询预约记录列表*/PreAuthorize(ss.hasPermi(manage:reservation:list))GetMapping(/list)public TableDataInfo list(Reservation reservation){startPage();ListReservation list reservationService.selectReservationList(reservation);return getDataTable(list);}/*** 导出预约记录列表*/PreAuthorize(ss.hasPermi(manage:reservation:export))Log(title 预约记录, businessType BusinessType.EXPORT)PostMapping(/export)public void export(HttpServletResponse response, Reservation reservation){ListReservation list reservationService.selectReservationList(reservation);ExcelUtilReservation util new ExcelUtilReservation(Reservation.class);util.exportExcel(response, list, 预约记录数据);}/*** 获取预约记录详细信息*/PreAuthorize(ss.hasPermi(manage:reservation:query))GetMapping(value /{reservationId})public AjaxResult getInfo(PathVariable(reservationId) Long reservationId){return success(reservationService.selectReservationByReservationId(reservationId));}/*** 新增预约记录*/PreAuthorize(ss.hasPermi(manage:reservation:add))Log(title 预约记录, businessType BusinessType.INSERT)PostMappingpublic AjaxResult add(RequestBody Reservation reservation){return toAjax(reservationService.insertReservation(reservation));}/*** 修改预约记录*/PreAuthorize(ss.hasPermi(manage:reservation:edit))Log(title 预约记录, businessType BusinessType.UPDATE)PutMappingpublic AjaxResult edit(RequestBody Reservation reservation){return toAjax(reservationService.updateReservation(reservation));}/*** 删除预约记录*/PreAuthorize(ss.hasPermi(manage:reservation:remove))Log(title 预约记录, businessType BusinessType.DELETE)DeleteMapping(/{reservationIds})public AjaxResult remove(PathVariable Long[] reservationIds){return toAjax(reservationService.deleteReservationByReservationIds(reservationIds));} }8.0 收费规则功能 相关源码 RestController RequestMapping(/manage/rule) public class FeeRuleController extends BaseController {Autowiredprivate IFeeRuleService feeRuleService;/*** 查询收费规则列表*/PreAuthorize(ss.hasPermi(manage:rule:list))GetMapping(/list)public TableDataInfo list(FeeRule feeRule){startPage();ListFeeRule list feeRuleService.selectFeeRuleList(feeRule);return getDataTable(list);}/*** 导出收费规则列表*/PreAuthorize(ss.hasPermi(manage:rule:export))Log(title 收费规则, businessType BusinessType.EXPORT)PostMapping(/export)public void export(HttpServletResponse response, FeeRule feeRule){ListFeeRule list feeRuleService.selectFeeRuleList(feeRule);ExcelUtilFeeRule util new ExcelUtilFeeRule(FeeRule.class);util.exportExcel(response, list, 收费规则数据);}/*** 获取收费规则详细信息*/PreAuthorize(ss.hasPermi(manage:rule:query))GetMapping(value /{ruleId})public AjaxResult getInfo(PathVariable(ruleId) Long ruleId){return success(feeRuleService.selectFeeRuleByRuleId(ruleId));}/*** 新增收费规则*/PreAuthorize(ss.hasPermi(manage:rule:add))Log(title 收费规则, businessType BusinessType.INSERT)PostMappingpublic AjaxResult add(RequestBody FeeRule feeRule){return toAjax(feeRuleService.insertFeeRule(feeRule));}/*** 修改收费规则*/PreAuthorize(ss.hasPermi(manage:rule:edit))Log(title 收费规则, businessType BusinessType.UPDATE)PutMappingpublic AjaxResult edit(RequestBody FeeRule feeRule){return toAjax(feeRuleService.updateFeeRule(feeRule));}/*** 删除收费规则*/PreAuthorize(ss.hasPermi(manage:rule:remove))Log(title 收费规则, businessType BusinessType.DELETE)DeleteMapping(/{ruleIds})public AjaxResult remove(PathVariable Long[] ruleIds){return toAjax(feeRuleService.deleteFeeRuleByRuleIds(ruleIds));} } 9.0 出场登记管理功能 相关源码 RestController RequestMapping(/manage/exitRecord) public class ExitRecordController extends BaseController {Autowiredprivate IExitRecordService exitRecordService;/*** 查询出场记录列表*/PreAuthorize(ss.hasPermi(manage:exitRecord:list))GetMapping(/list)public TableDataInfo list(ExitRecord exitRecord){startPage();ListExitRecord list exitRecordService.selectExitRecordList(exitRecord);return getDataTable(list);}/*** 导出出场记录列表*/PreAuthorize(ss.hasPermi(manage:exitRecord:export))Log(title 出场记录, businessType BusinessType.EXPORT)PostMapping(/export)public void export(HttpServletResponse response, ExitRecord exitRecord){ListExitRecord list exitRecordService.selectExitRecordList(exitRecord);ExcelUtilExitRecord util new ExcelUtilExitRecord(ExitRecord.class);util.exportExcel(response, list, 出场记录数据);}/*** 获取出场记录详细信息*/PreAuthorize(ss.hasPermi(manage:exitRecord:query))GetMapping(value /{exitId})public AjaxResult getInfo(PathVariable(exitId) Long exitId){return success(exitRecordService.selectExitRecordByExitId(exitId));}/*** 新增出场记录*/PreAuthorize(ss.hasPermi(manage:exitRecord:add))Log(title 出场记录, businessType BusinessType.INSERT)PostMappingpublic AjaxResult add(RequestBody ExitRecord exitRecord){return toAjax(exitRecordService.insertExitRecord(exitRecord));}/*** 修改出场记录*/PreAuthorize(ss.hasPermi(manage:exitRecord:edit))Log(title 出场记录, businessType BusinessType.UPDATE)PutMappingpublic AjaxResult edit(RequestBody ExitRecord exitRecord){return toAjax(exitRecordService.updateExitRecord(exitRecord));}/*** 删除出场记录*/PreAuthorize(ss.hasPermi(manage:exitRecord:remove))Log(title 出场记录, businessType BusinessType.DELETE)DeleteMapping(/{exitIds})public AjaxResult remove(PathVariable Long[] exitIds){return toAjax(exitRecordService.deleteExitRecordByExitIds(exitIds));} } 10.0 用户信息管理功能 相关源码 RestController RequestMapping(/system/user) public class SysUserController extends BaseController {Autowiredprivate ISysUserService userService;Autowiredprivate ISysRoleService roleService;Autowiredprivate ISysDeptService deptService;Autowiredprivate ISysPostService postService;/*** 获取用户列表*/PreAuthorize(ss.hasPermi(system:user:list))GetMapping(/list)public TableDataInfo list(SysUser user){startPage();ListSysUser list userService.selectUserList(user);return getDataTable(list);}Log(title 用户管理, businessType BusinessType.EXPORT)PreAuthorize(ss.hasPermi(system:user:export))PostMapping(/export)public void export(HttpServletResponse response, SysUser user){ListSysUser list userService.selectUserList(user);ExcelUtilSysUser util new ExcelUtilSysUser(SysUser.class);util.exportExcel(response, list, 用户数据);}Log(title 用户管理, businessType BusinessType.IMPORT)PreAuthorize(ss.hasPermi(system:user:import))PostMapping(/importData)public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception{ExcelUtilSysUser util new ExcelUtilSysUser(SysUser.class);ListSysUser userList util.importExcel(file.getInputStream());String operName getUsername();String message userService.importUser(userList, updateSupport, operName);return success(message);}PostMapping(/importTemplate)public void importTemplate(HttpServletResponse response){ExcelUtilSysUser util new ExcelUtilSysUser(SysUser.class);util.importTemplateExcel(response, 用户数据);}/*** 根据用户编号获取详细信息*/PreAuthorize(ss.hasPermi(system:user:query))GetMapping(value { /, /{userId} })public AjaxResult getInfo(PathVariable(value userId, required false) Long userId){userService.checkUserDataScope(userId);AjaxResult ajax AjaxResult.success();ListSysRole roles roleService.selectRoleAll();ajax.put(roles, SysUser.isAdmin(userId) ? roles : roles.stream().filter(r - !r.isAdmin()).collect(Collectors.toList()));ajax.put(posts, postService.selectPostAll());if (StringUtils.isNotNull(userId)){SysUser sysUser userService.selectUserById(userId);ajax.put(AjaxResult.DATA_TAG, sysUser);ajax.put(postIds, postService.selectPostListByUserId(userId));ajax.put(roleIds, sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));}return ajax;}/*** 新增用户*/PreAuthorize(ss.hasPermi(system:user:add))Log(title 用户管理, businessType BusinessType.INSERT)PostMappingpublic AjaxResult add(Validated RequestBody SysUser user){if (!userService.checkUserNameUnique(user)){return error(新增用户 user.getUserName() 失败登录账号已存在);}else if (StringUtils.isNotEmpty(user.getPhonenumber()) !userService.checkPhoneUnique(user)){return error(新增用户 user.getUserName() 失败手机号码已存在);}else if (StringUtils.isNotEmpty(user.getEmail()) !userService.checkEmailUnique(user)){return error(新增用户 user.getUserName() 失败邮箱账号已存在);}user.setCreateBy(getUsername());user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));return toAjax(userService.insertUser(user));}/*** 修改用户*/PreAuthorize(ss.hasPermi(system:user:edit))Log(title 用户管理, businessType BusinessType.UPDATE)PutMappingpublic AjaxResult edit(Validated RequestBody SysUser user){userService.checkUserAllowed(user);userService.checkUserDataScope(user.getUserId());if (!userService.checkUserNameUnique(user)){return error(修改用户 user.getUserName() 失败登录账号已存在);}else if (StringUtils.isNotEmpty(user.getPhonenumber()) !userService.checkPhoneUnique(user)){return error(修改用户 user.getUserName() 失败手机号码已存在);}else if (StringUtils.isNotEmpty(user.getEmail()) !userService.checkEmailUnique(user)){return error(修改用户 user.getUserName() 失败邮箱账号已存在);}user.setUpdateBy(getUsername());return toAjax(userService.updateUser(user));}/*** 删除用户*/PreAuthorize(ss.hasPermi(system:user:remove))Log(title 用户管理, businessType BusinessType.DELETE)DeleteMapping(/{userIds})public AjaxResult remove(PathVariable Long[] userIds){if (ArrayUtils.contains(userIds, getUserId())){return error(当前用户不能删除);}return toAjax(userService.deleteUserByIds(userIds));}/*** 重置密码*/PreAuthorize(ss.hasPermi(system:user:resetPwd))Log(title 用户管理, businessType BusinessType.UPDATE)PutMapping(/resetPwd)public AjaxResult resetPwd(RequestBody SysUser user){userService.checkUserAllowed(user);userService.checkUserDataScope(user.getUserId());user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));user.setUpdateBy(getUsername());return toAjax(userService.resetPwd(user));}/*** 状态修改*/PreAuthorize(ss.hasPermi(system:user:edit))Log(title 用户管理, businessType BusinessType.UPDATE)PutMapping(/changeStatus)public AjaxResult changeStatus(RequestBody SysUser user){userService.checkUserAllowed(user);userService.checkUserDataScope(user.getUserId());user.setUpdateBy(getUsername());return toAjax(userService.updateUserStatus(user));}/*** 根据用户编号获取授权角色*/PreAuthorize(ss.hasPermi(system:user:query))GetMapping(/authRole/{userId})public AjaxResult authRole(PathVariable(userId) Long userId){AjaxResult ajax AjaxResult.success();SysUser user userService.selectUserById(userId);ListSysRole roles roleService.selectRolesByUserId(userId);ajax.put(user, user);ajax.put(roles, SysUser.isAdmin(userId) ? roles : roles.stream().filter(r - !r.isAdmin()).collect(Collectors.toList()));return ajax;}/*** 用户授权角色*/PreAuthorize(ss.hasPermi(system:user:edit))Log(title 用户管理, businessType BusinessType.GRANT)PutMapping(/authRole)public AjaxResult insertAuthRole(Long userId, Long[] roleIds){userService.checkUserDataScope(userId);userService.insertUserAuth(userId, roleIds);return success();}/*** 获取部门树列表*/PreAuthorize(ss.hasPermi(system:user:list))GetMapping(/deptTree)public AjaxResult deptTree(SysDept dept){return success(deptService.selectDeptTreeList(dept));} } 11.0 SQL 数据库设计 CREATE TABLE vehicle (vehicle_id INT AUTO_INCREMENT,license_plate VARCHAR(20) NOT NULL UNIQUE COMMENT 车牌号,vehicle_type INT COMMENT 车型: 1-轿车, 2-SUV, 3-MPV,user_id INT NOT NULL COMMENT 用户ID (逻辑外键关联到User表),contact_info VARCHAR(100) COMMENT 联系方式,PRIMARY KEY (vehicle_id) ) COMMENT车辆信息表;INSERT INTO vehicle (license_plate, vehicle_type, user_id, contact_info) VALUES (A123BC, 1, 1, john.doeexample.com), -- 用户ID 1 的轿车 (B456DE, 2, 1, john.doeexample.com), -- 用户ID 1 的SUV (C789FG, 3, 2, jane.smithexample.com), -- 用户ID 2 的MPV (D012HI, 1, 2, jane.smithexample.com); -- 用户ID 2 的轿车CREATE TABLE parking_spot (spot_id INT AUTO_INCREMENT,spot_status INT DEFAULT 1 COMMENT 车位状态: 1-空闲, 2-占用, 3-预约,location VARCHAR(100) COMMENT 车位位置,PRIMARY KEY (spot_id) ) COMMENT停车位表;CREATE TABLE vehicle (vehicle_id INT AUTO_INCREMENT,license_plate VARCHAR(20) NOT NULL UNIQUE COMMENT 车牌号,vehicle_type INT COMMENT 车型: 1-轿车, 2-SUV, 3-MPV,user_id INT NOT NULL COMMENT 用户ID (逻辑外键关联到User表),contact_info VARCHAR(100) COMMENT 联系方式,vehicle_image_path VARCHAR(255) COMMENT 车辆图片路径或URL,PRIMARY KEY (vehicle_id) ) COMMENT车辆信息表;INSERT INTO vehicle (license_plate, vehicle_type, user_id, contact_info, vehicle_image_path) VALUES (ABC123, 1, 1, John Doe, 123-456-7890, /images/vehicles/abc123.jpg), (XYZ456, 2, 1, Jane Smith, 987-654-3210, /images/vehicles/xyz456.jpg), (JKL789, 3, 2, Alice Johnson, 555-555-5555, /images/vehicles/jkl789.jpg), (MNO012, 1, 2, Bob Brown, 111-222-3333, /images/vehicles/mno012.jpg);INSERT INTO parking_spot (spot_status, location) VALUES (1, A座 - 一层 - 车位 1), (1, A座 - 一层 - 车位 2), (2, A座 - 一层 - 车位 3), (1, A座 - 一层 - 车位 4), (3, B座 - 一层 - 车位 1), (1, B座 - 一层 - 车位 2), (2, B座 - 一层 - 车位 3), (1, C座 - 一层 - 车位 1), (3, C座 - 一层 - 车位 2), (2, C座 - 一层 - 车位 3);CREATE TABLE entry_record (entry_id INT AUTO_INCREMENT comment 自增ID,vehicle_id INT NOT NULL COMMENT 车辆ID (逻辑外键关联到vehicle表),entry_time DATETIME COMMENT 入场时间,spot_id INT COMMENT 分配的车位ID (逻辑外键关联到parking_spot表),is_reserved INT DEFAULT 1 COMMENT 1表示预约入场、2表示非预约入场,PRIMARY KEY (entry_id) ) COMMENT入场记录表;CREATE TABLE fee_rule (rule_id INT AUTO_INCREMENT,vehicle_type INT COMMENT 车型: 1-轿车, 2-SUV, 3-MPV,base_fee DECIMAL(8,2) COMMENT 基础费用,additional_fee_per_hour DECIMAL(8,2) COMMENT 每小时额外费用,PRIMARY KEY (rule_id) ) COMMENT收费规则表;CREATE TABLE reservation (reservation_id INT AUTO_INCREMENT comment 预约表ID,vehicle_id INT NOT NULL COMMENT 车辆ID (逻辑外键关联到vehicle表),spot_id INT NOT NULL COMMENT 车位ID (逻辑外键关联到parking_spot表),start_time DATETIME NOT NULL COMMENT 预约开始时间,end_time DATETIME NOT NULL COMMENT 预约结束时间,status INT DEFAULT 1 COMMENT 预约状态: 1-已确认, 2-已取消,PRIMARY KEY (reservation_id) ) COMMENT预约记录表;INSERT INTO fee_rule (vehicle_type, base_fee, additional_fee_per_hour) VALUES (1, 50.00, 10.00), -- 轿车, 基础费用50.00元, 每小时额外费用10.00元 (2, 80.00, 15.00), -- SUV, 基础费用80.00元, 每小时额外费用15.00元 (3, 100.00, 20.00); -- MPV, 基础费用100.00元, 每小时额外费用20.00元CREATE TABLE exit_record (exit_id INT AUTO_INCREMENT COMMENT 出场ID,vehicle_id INT NOT NULL COMMENT 车辆ID (逻辑外键关联到vehicle表),exit_time DATETIME COMMENT 出场时间,fee_charged DECIMAL(8,2) COMMENT 收费金额,is_reserved BOOLEAN DEFAULT FALSE COMMENT 是否基于预约入场,PRIMARY KEY (exit_id) ) COMMENT出场记录表; 若需要项目完整源码可以在 CSDN 私信给我我每天都有查看消息的感谢大家支持希望可以帮助到大家
http://www.w-s-a.com/news/649338/

相关文章:

  • 营销型网站怎么建设企业网站Wap在线生成
  • 网站建设服务费应该做到什么科目广州网页制作服务商
  • 网站显示500错误怎么解决方法店面设计模板
  • 网站备案icp文化传媒有限公司
  • 北京企业建站模板微信公众号商城怎么制作
  • 制作网站 公司简介大型做网站的公司
  • 北京网站开发建设南昌网站小程序开发
  • 网站如何做ip签名图片宁波互联网
  • 中山小榄网站建设长沙网络营销品牌排名
  • 推广优化厂商联系方式网站推广教程优化整站
  • 为外国企业做中文网站建设网站建设单位哪家好
  • 生物制药公司网站模板有没有专业做steam创客的网站
  • 福田做棋牌网站建设找哪家效益快弄一个微信小程序多少钱
  • 成都哪家做网站建设比较好做推广赚钱的网站
  • 常州专门做网站的公司有哪些网页模板下载网站10
  • linx服务器怎么做网站做长页网站
  • 汕头网站建设sagevis服装设计公司有什么职位
  • 网站流量分析报告医院网站制作公司
  • 仿58网站怎么做邯郸网站设计多少钱
  • 广州网站制作开发wordpress中文固定连接
  • 成都网站建设公司盈利吗专门做二手手机的网站有哪些
  • 手机网站设计需要学什么wordpress读法
  • WordPress pajx天津短视频seo
  • 检察院门户网站建设情况总结深圳网站制作长沙
  • 单页导航网站模板搜索量查询
  • 如何在一个地方建设网站营销型定制网站
  • 保定网站建设方案维护动易网站中添加邮箱
  • 简易网站的html代码wordpress音乐html
  • 四川住房和城乡建设厅网站打不开海山网站建设
  • 深圳设计功能网站如何用html制作网站