首页 > 数据库 >智能停车场系统--前后端分离(可直接落地)使用数据:vue,springBoot,redis,mybatis,mysql等。

智能停车场系统--前后端分离(可直接落地)使用数据:vue,springBoot,redis,mybatis,mysql等。

时间:2024-07-23 10:59:53浏览次数:16  
标签:map return -- list redis Result mysql put ok

系统首页-统计停车车收费收费数据展示

实现代码:对菜单控制代码

@Autowired
 private MenuService menuService;
 @Autowired
 private RoleMenuService roleMenuService;

 @GetMapping("/list")
 public Result list(){
     List<MenuRoleVO> menuRoleList = this.menuService.getMenuRoleList();
     return Result.ok().put("data", menuRoleList);
 }

 //添加菜单
 @PostMapping("/add")
 public Result add(@RequestBody Menu menu){
     boolean save = this.menuService.save(menu);
     if(!save) {return Result.error("添加菜单失败");}
     return Result.ok();
 }

 @GetMapping("/info/{id}")
 public Result info(@PathVariable("id") Integer id){
     Menu menu = this.menuService.getById(id);
     return Result.ok().put("data", menu);
 }

//编辑菜单
 @PutMapping("/edit")
 public Result edit(@RequestBody Menu menu){
     boolean updateById = this.menuService.updateById(menu);
     if(!updateById){ return Result.error("编辑菜单失败");}
     return Result.ok();
 }

 //删除菜单
 @DeleteMapping("/del/{id}")
 public Result del(@PathVariable("id") Integer id){
     boolean remove = this.menuService.removeById(id);
     QueryWrapper<Menu> queryWrapper1 = new QueryWrapper<>();
     queryWrapper1.eq("parent_id", id);
     this.menuService.remove(queryWrapper1);
     QueryWrapper<RoleMenu> queryWrapper = new QueryWrapper<>();
     queryWrapper.eq("menu_id", id);
     this.roleMenuService.remove(queryWrapper);
     if(remove) {return Result.ok();}
     return Result.error("删除菜单失败");
 }

对停车场物业及车场使用公司管理实现代码:

 @Autowired
 private ParkService parkService;
 @Autowired
 private PropertyService propertyService;
 @GetMapping("/list")
 public Result list(ParkListForm parkListForm){
     Map<String,Object> map = new HashMap<>();
     map.put("propertyList", this.propertyService.list());
     map.put("pageList",this.parkService.parkList(parkListForm));
     return Result.ok().put("data", map);
 }

 @GetMapping("/info/{id}")
 public Result info(@PathVariable("id") Integer id){
     if(id == 0) {
         Map<String, List> map = new HashMap<>();
         map.put("propertyList", this.propertyService.list());
         return Result.ok().put("data",map);
     } else {
         Map<String,Object> map = new HashMap<>();
         map.put("park", this.parkService.getById(id));
         map.put("propertyList", this.propertyService.list());
         return Result.ok().put("data", map);
     }
 }

//添加停车场
 @PostMapping("/add")
 public Result add(@RequestBody Park park){
     boolean save = this.parkService.save(park);
     if(!save) {return Result.error("停车场添加失败");}
     return Result.ok();
 }

//编辑停车场
 @PutMapping("/edit")
 public Result edit(@RequestBody Park park){
     boolean updateById = this.parkService.updateById(park);
     if(!updateById) {return Result.error("停车场修改失败");}
     return Result.ok();
 }

//删除停车场
 @DeleteMapping("/del")
 public Result del(@RequestBody Integer[] ids){
     boolean removeByIds = this.parkService.removeByIds(Arrays.asList(ids));
     if(!removeByIds){ return Result.error("停车场删除失败");}
     return Result.ok();
 }

 @GetMapping("/getParkMap")
 public Result getParkMap(){
     List<Park> list = this.parkService.list();
     if(list == null) {return Result.error("没有停车场数据");}
     return Result.ok().put("data", list);
 }

车牌自动识别调用算法接口及实现代码:

 @Autowired
    private InOutRecordService inOutRecordService;
    @Value("${upload.numberUrl}")
    private String numberUrl;
    @Value("${upload.urlPrefix}")
    private String urlPrefix;
    @Autowired(required = false)
    private InOutRecordMapper inOutRecordMapper;
    @Autowired
    private ParkService parkService;
    @Autowired
    private PayRecordService payRecordService;
    @Autowired(required = false)
    private CarMapper carMapper;
    @Autowired(required = false)
    private PayRecordMapper payRecordMapper;


    @GetMapping("/chart")
    public Result chart(){
        List<ChartDBVO> chartList = this.payRecordMapper.chart();
        ChartVO chartVO=new ChartVO();
        List<String> names=new ArrayList<>();
        List<Integer> nums=new ArrayList<>();
        for (ChartDBVO chartDBVO : chartList) {
            names.add(chartDBVO.getName());
            nums.add(chartDBVO.getNum());
        }
        chartVO.setNames(names);
        chartVO.setNums(nums);
        return Result.ok().put("data",chartVO);
    }
    @GetMapping("/parkList")
    public Result parkList(){
        List<Park> list = this.parkService.list();
        if(list == null) {return Result.error("没有停车场数据");}
        return Result.ok().put("data", list);
    }

   //车牌识别
    @PostMapping("/add")
    public Result add(@RequestBody InOutParkForm inOutParkForm){
      String fileBase64 = inOutParkForm.getFileBase64();
//        //调用腾讯AI接口
//        String number = ParkApi.getNumber(inOutParkForm.getFileBase64());
        //模拟车牌识别
        String faceBase = fileBase64.substring(0, 60);
        String number = ParkUtil.getNumber(faceBase);
        System.out.println(number);
        if(number == null){
            return Result.ok().put("status", "fail").put("data", "车牌识别失败");
        }
        //入场出场
        InOutRecord inOutRecord = new InOutRecord();
        inOutRecord.setParkId(inOutParkForm.getParkId());
        inOutRecord.setNumber(number);
        try {
            //保存图片
            String newFileName = UUID.randomUUID()+"." + inOutParkForm.getExtName();
            String fileName = numberUrl + newFileName;
            Base64Util.decoderBase64File(fileBase64,fileName);
            String basePath = urlPrefix + "park/upload/number/" + newFileName;
            //查找系统中是否有该车辆的出入场信息
            InOutRecord inOutRecord1 = this.inOutRecordMapper.getInOutRecord(inOutRecord);
            Park park = this.parkService.getById(inOutRecord.getParkId());
            Car car=null;
            Integer payType=1;
            if(inOutRecord1 == null) {
                //进入停车场
                  inOutRecord.setInPic(basePath);
                this.inOutRecordService.save(inOutRecord);
                return Result.ok().put("status", "success").put("data", "【"+ number + "】进入"+"【"+ park.getParkName() +"】");
            } else {
                //离开停车场
                inOutRecord1.setOutPic(basePath);
                this.inOutRecordService.updateById(inOutRecord1);
                String carType = "";
                //计算停车费
                Map<String, Integer> map = ParkUtil.parkPay(inOutRecord1.getInTime(), inOutRecord1.getOutTime(), park.getFreeDuration(), park.getChargePrice(), park.getMaxCharge());
                Integer hour = 0;
                Integer amount = 0;
                if(map != null){
                    hour = map.get("hour");
                    amount = map.get("amount");
                }
                //判断是否是包月车
                car=this.carMapper.getByNumber(number);
                if (car != null){
                    payType=2;
                }
                inOutRecord.setPayType(payType);
                String result = "";
                if(car == null){
                    //临时车
                    carType = "临时车";
                    result = "【临时车】"+ number +"离开"+"【"+ park.getParkName() +"】停车"+hour+"小时,缴费"+amount+"元";
                } else {
                    //包月车
                    carType = "包月车";
                    Date effectTime = car.getEffectTime();
                    //判断是否过期
                    if(effectTime != null && effectTime.after(new Date())){

                        result = "【包月车】"+ number +"离开"+"【"+ park.getParkName() +"】停车"+hour+"小时,无需缴费";
                    } else {
                        result = "【包月车】"+ number +"离开"+"【"+ park.getParkName() +"】停车"+hour+"小时,缴费"+amount+"元";
                    }
                }
                //存储缴费记录
                PayRecord payRecord = new PayRecord();
                payRecord.setPropertyId(park.getPropertyId());
                payRecord.setParkId(park.getParkId());
                payRecord.setNumber(number);
                payRecord.setPayType(payType);
                payRecord.setAmount(amount);
                this.payRecordService.save(payRecord);
//                //更新停车场数据
               inOutRecord1.setPayType(payType);
               this.inOutRecordService.updateById(inOutRecord1);
                return Result.ok().put("status", "success").put("data", result);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
       return Result.error("车牌识别失败");
   }


    @GetMapping("/list")
    public Result list(InOutQueryForm inOutQueryForm){
        PageVO pageVO = this.inOutRecordService.inOutRecordList(inOutQueryForm);
        Map map = new HashMap();
        map.put("pageList",pageVO);
        System.out.println(map);
        return Result.ok().put("data", map);
    }

标签:map,return,--,list,redis,Result,mysql,put,ok
From: https://blog.csdn.net/weixin_52562417/article/details/140629426

相关文章

  • 最快1个月录用,6本“逢投必中”的“灌水”刊,命中率超90%,计算机领域沾边可收
    01 IEEEAccess▲ 图片来源:IEEEAccess官网期刊简介:《IEEEAccess》是一本多学科、开放获取(OA)、面向应用的全电子档案期刊,不断展示IEEE所有相关领域的原创研究或开发成果。IEEEAccess将发表读者感兴趣、原创、技术正确且表达清晰的文章。在作者出版费(APC)的支......
  • 数据分析实战 -----美国人口密度
     资源包地址链接:百度网盘请输入提取码 提取码:6666 步骤导入库importnumpyasnpimportpandasaspd首先导入文件,并查看数据样本#州的全称和州名称简写对应关系表abb=pd.read_csv('./data/state-abbrevs.csv')#州的全称和面积表areas=pd.read_csv('......
  • 408考研笔记
     数据结构:https://flowus.cn/ashore/share/8243f80d-fbef-4d33-b9b1-a8d8bded8cde?code=MDPDQ4 计算机操作系统:https://flowus.cn/ashore/share/c70a6c3f-b745-4ede-8b05-e54ad50556b6?code=MDPDQ4 计算机组成原理:https://flowus.cn/ashore/share/e606f06d-c10c-4963......
  • STL常用内容与概念
    前言本文为一年多前个人笔记,记录一些STL常用的内容与概念。阅读时请使用目录。容器分为关联式,顺序式,容器适配器pairpair<type,type>p(value1,value2)pair<type,type>p=make_pair(value1,value2)p.first,p.second(multiset)mapkey升序,multi可重,unordered不可......
  • 镇江四六级代报名还有名额吗?2024下半年江苏四六级去哪里考试?
    大家好,我是学府教育做四六级代报名的老师。在查完了英语四六级的成绩以后,陆陆续续了很多同学来咨询我,毕业生能不能代报名四六级?我跟大家讲,毕业生代报名四六级就和在校生考试是一模一样的。很多在江苏或者是别的地方的同学,会问我去哪里考试比较方便?那么一直以来呢,江苏的名额是......
  • 镇江马来西亚留学中心,为什么推荐选择去马来西亚留学?
    镇江马来西亚留学,马来西亚留学在多个方面展现出了其高性价比、低门槛以及相对较低的语言要求等优势,以下是对这些优势的详细分析:part1:超高性价比(留学国家性价比首选)(1)学费低廉:马来西亚的留学费用远低于欧美国家,公立大学的本科学费一般在1万元-2.5万元人民币/年,私立大学的本科......
  • [计算机网络]实验五——交换机与虚拟局域网
    一、实验目的了解QuidwayS系列交换机的基本功能。了解交换机的基本配置和VLAN的划分方法。二、实验环境QuidwayS3900交换机两台, PC机四台, Console线缆一条,网线若干。三、实验过程及结果VLAN介绍:在复杂的网络环境中,为了减少广播域,增加用户的安全性,可以创建VLAN,将多个......
  • 苹果手机微信分身已经可以使用了,实现微信双开工作生活两不误
    在当今数字化的社交生活中,微信已经成为我们不可或缺的通讯工具。对于一些用户而言,拥有多个微信账号并能够同时使用它们具有很大的需求,于是“微信分身”功能应运而生。在苹果手机的生态系统中,微信分身也一直是用户们关注的话题。在工作与生活中,许多人需要将社交场景进行分离。......
  • [计算机网络]实验七——IPv6隧道实验
    一、实验目的学习安装与使用华为eNSP网络仿真软件理解IPv6overIPv4的原理掌握IPv6overIPv4手工隧道的配置方法掌握OSPF路由的配置方法掌握IPv6静态路由的配置方法二、实验环境 Windows系统、 eNSP网络仿真软件三、实验过程及结果建立三路由拓扑首先使用三个A......
  • 数字信号处理 实验一 系统响应及系统稳定性 免费附上机实验报告和原程序
    (1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,以及用filter函数或conv函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。(2)给定一个低通滤波器的差分方程为输入信号分别求出和的系统响应,并画出其波形。求出系统的单位脉冲响应,画出其波形。(3)给定系统......