计算机毕业设计 SpringBoot的停车场管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

news2024/11/20 9:23:50

🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系

👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
Java毕业设计项目~热门选题推荐《1000套》

目录

1.技术选型

2.数据库表结构

3.开发工具

4.功能

4.1【角色】

4.2【前台功能模块】

4.3【后台功能模块】

5.项目演示截图

5.1 首页

5.2  立即预订

5.3 预约详情

5.4 个人中心

5.5 车位管理

5.6 车位预订管理

5.7 违规管理

5.8 员工管理

5.9 车辆管理

5.10 基础数据管理

6.数据库文件设计

7.核心代码 

7.1 车位预订Controller

7.2 车位预订Service

7.3 车位预订ServiceImpl

7.4 车位预订DAO

8.参考文档


1.技术选型

springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8

2.数据库表结构

11张 

3.开发工具

idea、navicat、vscode

4.功能

4.1【角色】

超级管理员、管理员、用户

4.2【前台功能模块】

  • 登录注册
  • 首页
  • 车位
  • 公告
  • 个人中心(个人中心、车辆、车位预定、违规)

4.3【后台功能模块】

  • 登录
  • 首页
  • 个人中心
  • 管理员管理
  • 员工管理
  • 用户管理
  • 车辆管理
  • 车位管理
  • 车位预订管理
  • 公告管理
  • 违规管理
  • 基础数据管理
  • 轮播图管理

5.项目演示截图


5.1 首页

5.2  立即预订

5.3 预约详情

 

5.4 个人中心

 

5.5 车位管理

 

5.6 车位预订管理

 

5.7 违规管理

 

5.8 员工管理

 

5.9 车辆管理

 

5.10 基础数据管理

 

6.数据库文件设计

CREATE TABLE `cheliang` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
  `cheliang_name` varchar(200) DEFAULT NULL COMMENT '车辆名称  Search111 ',
  `cheliang_uuid_number` varchar(200) DEFAULT NULL COMMENT '车辆编号',
  `cheliang_photo` varchar(200) DEFAULT NULL COMMENT '车辆照片',
  `cheliang_paizhao` varchar(200) DEFAULT NULL COMMENT '车辆牌照',
  `cheliang_file` varchar(200) DEFAULT NULL COMMENT '车牌',
  `cheliang_types` int(11) DEFAULT NULL COMMENT '车辆类型 Search111',
  `cheliang_content` longtext COMMENT '车辆介绍 ',
  `cheliang_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show3 listShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='车辆';


CREATE TABLE `chewei` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `chewei_name` varchar(200) DEFAULT NULL COMMENT '车位名称  Search111 ',
  `chewei_uuid_number` varchar(200) DEFAULT NULL COMMENT '车位编号',
  `chewei_photo` varchar(200) DEFAULT NULL COMMENT '车位照片',
  `chewei_address` varchar(200) DEFAULT NULL COMMENT '车位地点',
  `chewei_tingchefei` decimal(10,2) DEFAULT NULL COMMENT '金额/小时 ',
  `chewei_types` int(11) DEFAULT NULL COMMENT '车位类型 Search111',
  `chewei_content` longtext COMMENT '车位介绍 ',
  `shangxia_types` int(11) DEFAULT NULL COMMENT '是否上架 ',
  `chewei_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show1 show2 photoShow',
  PRIMARY KEY (`id`)
)


CREATE TABLE `config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) NOT NULL COMMENT '配置参数名称',
  `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';


CREATE TABLE `dictionary` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `dic_code` varchar(200) DEFAULT NULL COMMENT '字段',
  `dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',
  `code_index` int(11) DEFAULT NULL COMMENT '编码',
  `index_name` varchar(200) DEFAULT NULL COMMENT '编码名字  Search111 ',
  `super_id` int(11) DEFAULT NULL COMMENT '父字段id',
  `beizhu` varchar(200) DEFAULT NULL COMMENT '备注',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COMMENT='字典';


CREATE TABLE `gonggao` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `gonggao_name` varchar(200) DEFAULT NULL COMMENT '公告名称 Search111  ',
  `gonggao_photo` varchar(200) DEFAULT NULL COMMENT '公告图片 ',
  `gonggao_types` int(11) NOT NULL COMMENT '公告类型 Search111 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '发布时间',
  `gonggao_content` longtext COMMENT '公告详情 ',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告';


CREATE TABLE `token` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `userid` bigint(20) NOT NULL COMMENT '儿童id',
  `username` varchar(100) NOT NULL COMMENT '儿童名',
  `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
  `role` varchar(100) DEFAULT NULL COMMENT '角色',
  `token` varchar(200) NOT NULL COMMENT '密码',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='token表';


CREATE TABLE `users` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(100) NOT NULL COMMENT '儿童名',
  `password` varchar(100) NOT NULL COMMENT '密码',
  `role` varchar(100) DEFAULT '管理员' COMMENT '角色',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';


CREATE TABLE `weigui` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `cheliang_id` int(11) DEFAULT NULL COMMENT '车辆',
  `weigui_name` varchar(200) DEFAULT NULL COMMENT '违规名称  Search111 ',
  `weigui_uuid_number` varchar(200) DEFAULT NULL COMMENT '违规编号',
  `weigui_photo` varchar(200) DEFAULT NULL COMMENT '违规照片',
  `weigui_address` varchar(200) DEFAULT NULL COMMENT '违规地点',
  `weigui_types` int(11) DEFAULT NULL COMMENT '违规类型 Search111',
  `weigui_content` longtext COMMENT '违规介绍 ',
  `weigui_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show3 listShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='违规';


CREATE TABLE `yonghu` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(200) DEFAULT NULL COMMENT '账户',
  `password` varchar(200) DEFAULT NULL COMMENT '密码',
  `yonghu_uuid_number` varchar(200) DEFAULT NULL COMMENT '用户编号 Search111 ',
  `yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户姓名 Search111 ',
  `yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',
  `yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号',
  `yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',
  `sex_types` int(11) DEFAULT NULL COMMENT '性别',
  `yonghu_email` varchar(200) DEFAULT NULL COMMENT '用户邮箱',
  `new_money` decimal(10,2) DEFAULT NULL COMMENT '余额 ',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户';


CREATE TABLE `yuangong` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(200) DEFAULT NULL COMMENT '账户',
  `password` varchar(200) DEFAULT NULL COMMENT '密码',
  `yuangong_uuid_number` varchar(200) DEFAULT NULL COMMENT '员工编号 Search111 ',
  `yuangong_name` varchar(200) DEFAULT NULL COMMENT '员工姓名 Search111 ',
  `yuangong_phone` varchar(200) DEFAULT NULL COMMENT '员工手机号',
  `yuangong_id_number` varchar(200) DEFAULT NULL COMMENT '员工身份证号',
  `yuangong_photo` varchar(200) DEFAULT NULL COMMENT '员工头像',
  `sex_types` int(11) DEFAULT NULL COMMENT '性别',
  `yuangong_email` varchar(200) DEFAULT NULL COMMENT '员工邮箱',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='员工';

7.核心代码 

7.1 车位预订Controller


package com.controller;

/**
 * 车位预订
 * 后端接口
 * @author 计算机编程-吉哥
 * @email
*/
@RestController
@Controller
@RequestMapping("/cheweiYuyue")
public class CheweiYuyueController {
    private static final Logger logger = LoggerFactory.getLogger(CheweiYuyueController.class);

    private static final String TABLE_NAME = "cheweiYuyue";

    @Autowired
    private CheweiYuyueService cheweiYuyueService;


    @Autowired
    private TokenService tokenService;

    @Autowired
    private CheliangService cheliangService;//车辆
    @Autowired
    private CheweiService cheweiService;//车位
    @Autowired
    private DictionaryService dictionaryService;//字典
    @Autowired
    private GonggaoService gonggaoService;//公告
    @Autowired
    private WeiguiService weiguiService;//违规
    @Autowired
    private YonghuService yonghuService;//用户
    @Autowired
    private YuangongService yuangongService;//员工
    @Autowired
    private UsersService usersService;//管理员


    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永不会进入");
        else if("用户".equals(role))
            params.put("yonghuId",request.getSession().getAttribute("userId"));
        else if("员工".equals(role))
            params.put("yuangongId",request.getSession().getAttribute("userId"));
        CommonUtil.checkMap(params);
        PageUtils page = cheweiYuyueService.queryPage(params);

        //字典表数据转换
        List<CheweiYuyueView> list =(List<CheweiYuyueView>)page.getList();
        for(CheweiYuyueView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        CheweiYuyueEntity cheweiYuyue = cheweiYuyueService.selectById(id);
        if(cheweiYuyue !=null){
            //entity转view
            CheweiYuyueView view = new CheweiYuyueView();
            BeanUtils.copyProperties( cheweiYuyue , view );//把实体数据重构到view中
            //级联表 车位
            //级联表
            CheweiEntity chewei = cheweiService.selectById(cheweiYuyue.getCheweiId());
            if(chewei != null){
            BeanUtils.copyProperties( chewei , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setCheweiId(chewei.getId());
            }
            //级联表 车辆
            //级联表
            CheliangEntity cheliang = cheliangService.selectById(cheweiYuyue.getCheliangId());
            if(cheliang != null){
            BeanUtils.copyProperties( cheliang , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setCheliangId(cheliang.getId());
            }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody CheweiYuyueEntity cheweiYuyue, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,cheweiYuyue:{}",this.getClass().getName(),cheweiYuyue.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");

        Wrapper<CheweiYuyueEntity> queryWrapper = new EntityWrapper<CheweiYuyueEntity>()
            .eq("chewei_id", cheweiYuyue.getCheweiId())
            .eq("cheliang_id", cheweiYuyue.getCheliangId())
            .eq("chewei_yuyue_shichang", cheweiYuyue.getCheweiYuyueShichang())
            .in("chewei_yuyue_yesno_types", new Integer[]{1,2})
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        CheweiYuyueEntity cheweiYuyueEntity = cheweiYuyueService.selectOne(queryWrapper);
        if(cheweiYuyueEntity==null){
            cheweiYuyue.setInsertTime(new Date());
            cheweiYuyue.setCheweiYuyueYesnoTypes(1);
            cheweiYuyue.setCreateTime(new Date());
            cheweiYuyueService.insert(cheweiYuyue);
            return R.ok();
        }else {
            if(cheweiYuyueEntity.getCheweiYuyueYesnoTypes()==1)
                return R.error(511,"有相同的待审核的数据");
            else if(cheweiYuyueEntity.getCheweiYuyueYesnoTypes()==2)
                return R.error(511,"有相同的审核通过的数据");
            else
                return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody CheweiYuyueEntity cheweiYuyue, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        logger.debug("update方法:,,Controller:{},,cheweiYuyue:{}",this.getClass().getName(),cheweiYuyue.toString());
        CheweiYuyueEntity oldCheweiYuyueEntity = cheweiYuyueService.selectById(cheweiYuyue.getId());//查询原先数据

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
        if("".equals(cheweiYuyue.getCheweiYuyueText()) || "null".equals(cheweiYuyue.getCheweiYuyueText())){
                cheweiYuyue.setCheweiYuyueText(null);
        }
        if("".equals(cheweiYuyue.getCheweiYuyueFile()) || "null".equals(cheweiYuyue.getCheweiYuyueFile())){
                cheweiYuyue.setCheweiYuyueFile(null);
        }
        if("".equals(cheweiYuyue.getCheweiYuyueYesnoText()) || "null".equals(cheweiYuyue.getCheweiYuyueYesnoText())){
                cheweiYuyue.setCheweiYuyueYesnoText(null);
        }

            cheweiYuyueService.updateById(cheweiYuyue);//根据id更新
            return R.ok();
    }


    /**
    * 审核
    */
    @RequestMapping("/shenhe")
    public R shenhe(@RequestBody CheweiYuyueEntity cheweiYuyueEntity, HttpServletRequest request){
        logger.debug("shenhe方法:,,Controller:{},,cheweiYuyueEntity:{}",this.getClass().getName(),cheweiYuyueEntity.toString());

        CheweiYuyueEntity oldCheweiYuyue = cheweiYuyueService.selectById(cheweiYuyueEntity.getId());//查询原先数据
        CheweiEntity cheweiEntity = cheweiService.selectById(oldCheweiYuyue.getCheweiId());
        if(cheweiYuyueEntity.getCheweiYuyueYesnoTypes() == 2){//通过
            cheweiEntity.setShangxiaTypes(2);
            cheweiService.updateById(cheweiEntity);
        cheweiYuyueEntity.setCheweiYuyueShenheTime(new Date());//审核时间
        cheweiYuyueService.updateById(cheweiYuyueEntity);//审核

        return R.ok();
    }

    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        List<CheweiYuyueEntity> oldCheweiYuyueList =cheweiYuyueService.selectBatchIds(Arrays.asList(ids));//要删除的数据
        cheweiYuyueService.deleteBatchIds(Arrays.asList(ids));

        return R.ok();
    }


    /**
     * 批量上传
     */
    @RequestMapping("/batchInsert")
    public R save( String fileName, HttpServletRequest request){
        logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
        Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
        try {
            List<CheweiYuyueEntity> cheweiYuyueList = new ArrayList<>();//上传的东西
            Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
            Date date = new Date();
            int lastIndexOf = fileName.lastIndexOf(".");
            if(lastIndexOf == -1){
                return R.error(511,"该文件没有后缀");
            }else{
                String suffix = fileName.substring(lastIndexOf);
                if(!".xls".equals(suffix)){
                    return R.error(511,"只支持后缀为xls的excel文件");
                }else{
                    URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
                    File file = new File(resource.getFile());
                    if(!file.exists()){
                        return R.error(511,"找不到上传文件,请联系管理员");
                    }else{
                        List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
                        dataList.remove(0);//删除第一行,因为第一行是提示
                        for(List<String> data:dataList){
                            //循环
                            CheweiYuyueEntity cheweiYuyueEntity = new CheweiYuyueEntity();

                            //把要查询是否重复的字段放入map中
                                //报名编号
                                if(seachFields.containsKey("cheweiYuyueUuidNumber")){
                                    List<String> cheweiYuyueUuidNumber = seachFields.get("cheweiYuyueUuidNumber");
                                    cheweiYuyueUuidNumber.add(data.get(0));//要改的
                                }else{
                                    List<String> cheweiYuyueUuidNumber = new ArrayList<>();
                                    cheweiYuyueUuidNumber.add(data.get(0));//要改的
                                    seachFields.put("cheweiYuyueUuidNumber",cheweiYuyueUuidNumber);
                                }
                        }

                        //查询是否重复
                         //报名编号
                        List<CheweiYuyueEntity> cheweiYuyueEntities_cheweiYuyueUuidNumber = cheweiYuyueService.selectList(new EntityWrapper<CheweiYuyueEntity>().in("chewei_yuyue_uuid_number", seachFields.get("cheweiYuyueUuidNumber")));
                        if(cheweiYuyueEntities_cheweiYuyueUuidNumber.size() >0 ){
                            ArrayList<String> repeatFields = new ArrayList<>();
                            for(CheweiYuyueEntity s:cheweiYuyueEntities_cheweiYuyueUuidNumber){
                                repeatFields.add(s.getCheweiYuyueUuidNumber());
                            }
                            return R.error(511,"数据库的该表中的 [报名编号] 字段已经存在 存在数据为:"+repeatFields.toString());
                        }
                        cheweiYuyueService.insertBatch(cheweiYuyueList);
                        return R.ok();
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            return R.error(511,"批量插入数据异常,请联系管理员");
        }
    }




    /**
    * 前端列表
    */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));

        CommonUtil.checkMap(params);
        PageUtils page = cheweiYuyueService.queryPage(params);

        //字典表数据转换
        List<CheweiYuyueView> list =(List<CheweiYuyueView>)page.getList();
        for(CheweiYuyueView c:list)
            dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段

        return R.ok().put("data", page);
    }

    /**
    * 前端详情
    */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Integer id, HttpServletRequest request){
        logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        CheweiYuyueEntity cheweiYuyue = cheweiYuyueService.selectById(id);
            if(cheweiYuyue !=null){


                //entity转view
                CheweiYuyueView view = new CheweiYuyueView();
                BeanUtils.copyProperties( cheweiYuyue , view );//把实体数据重构到view中

                //级联表
                    CheweiEntity chewei = cheweiService.selectById(cheweiYuyue.getCheweiId());
                if(chewei != null){
                    BeanUtils.copyProperties( chewei , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setCheweiId(chewei.getId());
                }
                //级联表
                    CheliangEntity cheliang = cheliangService.selectById(cheweiYuyue.getCheliangId());
                if(cheliang != null){
                    BeanUtils.copyProperties( cheliang , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setCheliangId(cheliang.getId());
                }
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    }


    /**
    * 前端保存
    */
    @RequestMapping("/add")
    public R add(@RequestBody CheweiYuyueEntity cheweiYuyue, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,cheweiYuyue:{}",this.getClass().getName(),cheweiYuyue.toString());
        Wrapper<CheweiYuyueEntity> queryWrapper = new EntityWrapper<CheweiYuyueEntity>()
            .eq("chewei_yuyue_uuid_number", cheweiYuyue.getCheweiYuyueUuidNumber())
            .eq("chewei_id", cheweiYuyue.getCheweiId())
            .eq("cheliang_id", cheweiYuyue.getCheliangId())
            .eq("chewei_yuyue_text", cheweiYuyue.getCheweiYuyueText())
            .eq("chewei_yuyue_shichang", cheweiYuyue.getCheweiYuyueShichang())
            .in("chewei_yuyue_yesno_types", new Integer[]{1,2})
            .eq("chewei_yuyue_yesno_text", cheweiYuyue.getCheweiYuyueYesnoText())
            cheweiYuyue.setInsertTime(new Date());
            cheweiYuyue.setCheweiYuyueYesnoTypes(1);
            cheweiYuyue.setCreateTime(new Date());
        cheweiYuyueService.insert(cheweiYuyue);

            return R.ok();
    }

    /**
     * 入库
     */
    @RequestMapping("/ruku")
    public R ruku(Integer id , HttpServletRequest request){
        logger.debug("refund:,,Controller:{},,ids:{}",this.getClass().getName(),id.toString());
        CheweiYuyueEntity cheweiYuyueEntity = cheweiYuyueService.selectById(id);
        cheweiYuyueEntity.setCheweiYuyueYesnoTypes(4);
        cheweiYuyueService.updateById(cheweiYuyueEntity);
        return R.ok();
    }
    /**
     * 出库
     */
    @RequestMapping("/chuku")
    public R chuku(Integer id , HttpServletRequest request){
        logger.debug("refund:,,Controller:{},,ids:{}",this.getClass().getName(),id.toString());
        CheweiYuyueEntity cheweiYuyueEntity = cheweiYuyueService.selectById(id);
        cheweiYuyueEntity.setCheweiYuyueYesnoTypes(5);
        cheweiYuyueService.updateById(cheweiYuyueEntity);
        return R.ok();
    }

    /**
     * 缴费
     */
    @RequestMapping("/jiaofei")
    public R jiaofei(Integer id , HttpServletRequest request){
        logger.debug("refund:,,Controller:{},,ids:{}",this.getClass().getName(),id.toString());
        CheweiYuyueEntity cheweiYuyueEntity = cheweiYuyueService.selectById(id);
        CheweiEntity cheweiEntity = cheweiService.selectById(cheweiYuyueEntity.getCheweiId());
        CheliangEntity cheliangEntity = cheliangService.selectById(cheweiYuyueEntity.getCheliangId());
        YonghuEntity yonghuEntity = yonghuService.selectById(cheliangEntity.getYonghuId());
        Double newMoney = yonghuEntity.getNewMoney();
        Integer cheweiYuyueShichang = cheweiYuyueEntity.getCheweiYuyueShichang();
        Double cheweiTingchefei = cheweiEntity.getCheweiTingchefei();
        double v = cheweiTingchefei * cheweiYuyueShichang;
        if(newMoney<v)
            return R.error("用户余额不足请充值后在缴费");
        yonghuEntity.setNewMoney(newMoney-v);
        cheweiYuyueEntity.setCheweiYuyueYesnoTypes(6);
        cheweiEntity.setShangxiaTypes(1);
        cheweiService.updateById(cheweiEntity);
        cheweiYuyueService.updateById(cheweiYuyueEntity);
        yonghuService.updateById(yonghuEntity);
        return R.ok();
    }


}

7.2 车位预订Service

package com.service;

import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.CheweiYuyueEntity;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import java.util.List;

/**
 * 车位预订 服务类
 */
public interface CheweiYuyueService extends IService<CheweiYuyueEntity> {

    /**
    * @param params 查询参数
    * @return 带分页的查询出来的数据
    */
     PageUtils queryPage(Map<String, Object> params);

}

7.3 车位预订ServiceImpl

package com.service.impl;


/**
 * 车位预订 服务实现类
 * author 计算机编程-吉哥
 */
@Service("cheweiYuyueService")
@Transactional
public class CheweiYuyueServiceImpl extends ServiceImpl<CheweiYuyueDao, CheweiYuyueEntity> implements CheweiYuyueService {

    @Override
    public PageUtils queryPage(Map<String,Object> params) {
        Page<CheweiYuyueView> page =new Query<CheweiYuyueView>(params).getPage();
        page.setRecords(baseMapper.selectListView(page,params));
        return new PageUtils(page);
    }


}

7.4 车位预订DAO

package com.dao;

import com.entity.CheweiYuyueEntity;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;

import org.apache.ibatis.annotations.Param;
import com.entity.view.CheweiYuyueView;

/**
 * 车位预订 Dao 接口
 *
 * @author 
 */
public interface CheweiYuyueDao extends BaseMapper<CheweiYuyueEntity> {

   List<CheweiYuyueView> selectListView(Pagination page,@Param("params")Map<String,Object> params);

}

8.参考文档

 

 

你可能还有感兴趣的项目👇🏻👇🏻👇🏻

更多项目推荐:计算机毕业设计项目

如果大家有任何疑虑,请在下方咨询或评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1351397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自定义指令:让 Vue 开发更有趣(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

SkyWalking实战与设置警告

日升时奋斗&#xff0c;日落时自省 目录 1、简述 2、Skywalking优越性 2.1、相同产品分析 2.2、Skywalking组成 2.3、Skywalking本质 3、Skywalking服务安装与启动 3.1、ES安装并启动 3.1.2、删除环境变量 3.1.3、预启动ES 3.1.4、关闭HTTPS认证 3.1.5、关闭登录授…

Go语言基础简单了解

文章目录 前言关于Go学习流程 基础语法注释变量常量数据类型运算符fmt库 流程控制if、switch、selectfor、break、continue遍历String 函数值传递和引用传递deferinit匿名、回调、闭包函数 数组和切片Map结构体自定义数据类型接口协程和channel线程锁异常处理泛型文件读取文件写…

MCS-51存储器的特点

目录 1.MCS-51存储器的结构 2.片内数据存储器 (1)片内数据存储器低128B (2) 片外数据存储器高128B 2.片内数据存储器高128B 3.片内程序存储器 1.MCS-51存储器的结构 如图所示&#xff0c;MCS-51 的存储器在物理结构上分成四个存储空间:片内程序存储器、片外程序存储器、…

Clojure 实战(4):编写 Hadoop MapReduce 脚本

Hadoop简介 众所周知&#xff0c;我们已经进入了大数据时代&#xff0c;每天都有PB级的数据需要处理、分析&#xff0c;从中提取出有用的信息。Hadoop就是这一时代背景下的产物。它是Apache基金会下的开源项目&#xff0c;受Google两篇论文的启发&#xff0c;采用分布式的文件…

算法巡练day03Leetcode203移除链表元素707设计链表206反转链表

今日学习的文章视频链接 https://www.bilibili.com/video/BV1nB4y1i7eL/?vd_source8272bd48fee17396a4a1746c256ab0ae https://programmercarl.com/0707.%E8%AE%BE%E8%AE%A1%E9%93%BE%E8%A1%A8.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE 链表理论基础 见我的博…

擎创技术流 |如何使用eBPF监控NAT转换

一、NAT简介 Linux NAT&#xff08;Network Address Translation&#xff09;转换是一种网络技术&#xff0c;用于将一个或多个私有网络内的IP地址转换为一个公共的IP地址&#xff0c;以便与互联网通信。 图源于网络 在k8s业务场景中&#xff0c;业务组件之间的关系十分复杂. …

uni-app 前后端调用实例 基于Springboot 上拉分页实现

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

音视频通信

文章目录 一、音视频通信流程二、流媒体协议1、RTSP2、RTMP3、HLS4、WebRTC 一、音视频通信流程 音视频通信完整流程有如下几个环节&#xff1a;采集、编码、前后处理、传输、解码、缓冲、渲染等。 每一个细分环节&#xff0c;还有更细分的技术模块。比如&#xff0c;前后处…

【数据结构】二叉搜索(查找/排序)树

一、二叉搜索树基本概念 1、定义 二叉搜索树&#xff0c;又称为二叉排序树&#xff0c;二叉查找树&#xff0c;它满足如下四点性质&#xff1a; 1&#xff09;空树是二叉搜索树&#xff1b; 2&#xff09;若它的左子树不为空&#xff0c;则左子树上所有结点的值均小于它根结…

使用宝塔在Linux面板搭建网站,并实现公网远程访问

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板&#xff0c;它支持Linux/Windows系统&#xff0c;我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…

STL map容器与pair类模板(解决扫雷问题)

CSTL之Map容器 - 数据结构教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/118CSTL之Pair类模板 - 数据结构教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/119 刷到一个扫雷的题目&#xff0c;之前没有玩怎么过扫雷&#xff0c;于是我就去玩了玩…

【计算机设计大赛作品】豆瓣电影数据挖掘可视化—信息可视化赛道获奖项目深入剖析【可视化项目案例-22】

文章目录 一.【计算机设计大赛作品】豆瓣电影数据挖掘可视化—信息可视化赛道获奖项目深入剖析【可视化项目案例-22】1.1 项目主题:豆瓣电影二.代码剖析2.1 项目效果展示2.2 服务端代码剖析2.3 数据分析2.4 数据评分三.寄语四.本案例完整源码下载一.【计算机设计大赛作品】豆瓣…

Go后端开发 -- main函数 变量 常量 函数

Go后端开发 – main函数 & 变量 & 常量 & 函数 文章目录 Go后端开发 -- main函数 & 变量 & 常量 & 函数一、第一个main函数1.创建工程2.main函数解析 二、变量声明1.单变量声明2.多变量声明 三、常量1.常量的定义2.优雅的常量 iota 四、函数1.函数返回…

2024.1.2 安装JDK和Eclipse,并配置java编译环境

2024.1.2 安装JDK和Eclipse&#xff0c;并配置java编译环境 一直对java一知半解&#xff0c;利用春节前一个月时间补补课。 一、安装jdk 首先在oracle官网上下载jdk&#xff0c;这里选jdk17&#xff0c;选择第二项直接安装&#xff0c;第一项是压缩文件&#xff0c;带有一些…

Noisy DQN 跑 CartPole-v1

gym 0.26.1 CartPole-v1 NoisyNet DQN NoisyNet 就是把原来Linear里的w/b 换成 mu sigma * epsilon, 这是一种非常简单的方法&#xff0c;但是可以显著提升DQN的表现。 和之前最原始的DQN相比就是改了两个地方&#xff0c;一个是Linear改成了NoisyLinear,另外一个是在agent在t…

第二十七章 正则表达式

第二十七章 正则表达式 1.正则快速入门2.正则需求问题3.正则底层实现14.正则底层实现25.正则底层实现36.正则转义符7.正则字符匹配8.字符匹配案例19.字符匹配案例211.选择匹配符&#xff08;|&#xff09;12.正则限定符{n}{n,m}&#xff08;1个或者多个&#xff09;*(0个或者多…

创建x11vnc系统进程

为方便使用vnc&#xff0c;所以寻找到一个比较好用的vnc服务端那就是x11vnc&#xff0c;索性就创建了一个系统进程 一、环境 系统&#xff1a;银河麒麟v4-sp2-server 软件&#xff1a;x11vnc【linux下】、VNCviewer【win下】 二、安装x11vnc 1、挂载光盘源并修改apt源 mou…

生态系统服务构建生态安全格局中的实践技术应用

生态安全是指生态系统的健康和完整情况。生态安全的内涵可以归纳为&#xff1a;一&#xff0c;保持生态系统活力和内外部组分、结构的稳定与持续性&#xff1b;二&#xff0c;维持生态系统生态功能的完整性&#xff1b;三&#xff0c;面临外来不利因素时&#xff0c;生态系统具…

Linux用shell脚本执行乘法口诀表的两种方式

#!/bin/bash # *********************************************************# # # # * Author : 藻头男 # # * QQ邮箱 : 2322944912qq.com # …