计算机毕业设计 SpringBoot的乡村养老服务管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥
🍊简介:专业从事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 土地管理

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.数据库表结构

15张 

3.开发工具

idea、navicat

4.功能

4.1【角色】

管理员、医疗人员、老人

4.2【前台功能模块】

  • 登录注册
  • 首页
  • 文娱活动
  • 生活照料
  • 土地
  • 个人中心(个人中心、生活照料订单、土地承包)

4.3【后台功能模块】

  • 登录
  • 首页
  • 个人中心
  • 管理员管理
  • 老人管理
  • 医疗人员管理
  • 乡村志愿者管理
  • 文娱活动管理
  • 活动报名管理
  • 医疗保健管理
  • 健康档案管理
  • 生活照料管理
  • 土地管理
  • 基础数据管理
  • 轮播图管理

5.项目演示截图


5.1 首页

5.2 生活照料

 

5.3 个人中心

 

5.4 土地

 

5.5 医疗人员功能

 

5.6 医疗保健管理

 

5.7 健康档案

 

5.8 土地管理

 

6.数据库文件设计

CREATE TABLE `baojian` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `yiliao_id` int(11) DEFAULT NULL COMMENT '医疗人员',
  `laoren_id` int(11) DEFAULT NULL COMMENT '老人',
  `baojian_name` varchar(200) DEFAULT NULL COMMENT '医疗保健名称  Search111 ',
  `baojian_uuid_number` varchar(200) DEFAULT NULL COMMENT '医疗保健编号',
  `baojian_photo` varchar(200) DEFAULT NULL COMMENT '医疗保健照片',
  `baojian_address` varchar(200) DEFAULT NULL COMMENT '医疗保健地点',
  `baojian_types` int(11) DEFAULT NULL COMMENT '医疗保健类型 Search111',
  `baojian_content` longtext COMMENT '注意事项 ',
  `baojian_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='医疗保健';



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=33 DEFAULT CHARSET=utf8 COMMENT='字典';


CREATE TABLE `huodong` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `huodong_name` varchar(200) DEFAULT NULL COMMENT '文娱活动名称  Search111 ',
  `huodong_uuid_number` varchar(200) DEFAULT NULL COMMENT '文娱活动编号',
  `huodong_photo` varchar(200) DEFAULT NULL COMMENT '文娱活动照片',
  `huodong_address` varchar(200) DEFAULT NULL COMMENT '文娱活动地点',
  `huodong_types` int(11) DEFAULT NULL COMMENT '文娱活动类型 Search111',
  `huodong_content` longtext COMMENT '文娱活动结束 ',
  `huodong_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`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='文娱活动';


CREATE TABLE `jiankang` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `yiliao_id` int(11) DEFAULT NULL COMMENT '医疗人员',
  `laoren_id` int(11) DEFAULT NULL COMMENT '老人',
  `jiankang_name` varchar(200) DEFAULT NULL COMMENT '健康档案名称  Search111 ',
  `jiankang_uuid_number` varchar(200) DEFAULT NULL COMMENT '健康档案编号',
  `jiankang_photo` varchar(200) DEFAULT NULL COMMENT '健康档案照片',
  `jiankang_address` varchar(200) DEFAULT NULL COMMENT '健康档案地点',
  `jiankang_types` int(11) DEFAULT NULL COMMENT '身体情况 Search111',
  `jiankang_content` longtext COMMENT '注意事项 ',
  `jiankang_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='健康档案';

CREATE TABLE `laoren` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `username` varchar(200) DEFAULT NULL COMMENT '账户 ',
  `password` varchar(200) DEFAULT NULL COMMENT '密码 ',
  `laoren_name` varchar(200) DEFAULT NULL COMMENT '老人名称 Search111 ',
  `laoren_phone` varchar(200) DEFAULT NULL COMMENT '联系方式',
  `laoren_email` varchar(200) DEFAULT NULL COMMENT '邮箱',
  `sex_types` int(11) DEFAULT NULL COMMENT '性别',
  `new_money` decimal(10,2) DEFAULT NULL COMMENT '余额',
  `laoren_content` longtext COMMENT '老人介绍 ',
  `laoren_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='老人';



CREATE TABLE `shenghuo_order` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `shenghuo_order_uuid_number` varchar(200) DEFAULT NULL COMMENT '订单编号 Search111 ',
  `shenghuo_id` int(11) DEFAULT NULL COMMENT '生活照料',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
  `shenghuo_order_types` int(11) DEFAULT NULL COMMENT '订单类型 Search111 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '订单创建时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 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 `tudi` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `laoren_id` int(11) DEFAULT NULL COMMENT '商家',
  `tudi_name` varchar(200) DEFAULT NULL COMMENT '土地名称  Search111 ',
  `tudi_uuid_number` varchar(200) DEFAULT NULL COMMENT '土地编号',
  `tudi_photo` varchar(200) DEFAULT NULL COMMENT '土地照片',
  `tudi_address` varchar(200) DEFAULT NULL COMMENT '土地地点',
  `tudi_types` int(11) DEFAULT NULL COMMENT '土地类型 Search111',
  `tudi_kucun_number` int(11) DEFAULT NULL COMMENT '多少亩',
  `tudi_new_money` decimal(10,2) DEFAULT NULL COMMENT '价格/年 ',
  `tudi_content` longtext COMMENT '土地介绍 ',
  `tudi_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`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='土地';


CREATE TABLE `tudi_order` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `tudi_order_uuid_number` varchar(200) DEFAULT NULL COMMENT '订单编号 Search111 ',
  `tudi_id` int(11) DEFAULT NULL COMMENT '土地',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
  `buy_number` int(11) DEFAULT NULL COMMENT '亩',
  `tudi_order_types` int(11) DEFAULT NULL COMMENT '订单类型 Search111 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '订单创建时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='土地承包';


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 `yonghu` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(200) DEFAULT NULL COMMENT '账户',
  `password` varchar(200) DEFAULT NULL COMMENT '密码',
  `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 '志愿者头像',
  `new_money` decimal(10,2) DEFAULT NULL COMMENT '余额 ',
  `sex_types` int(11) DEFAULT NULL COMMENT '性别',
  `yonghu_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("/huodongYuyue")
public class HuodongYuyueController {
    private static final Logger logger = LoggerFactory.getLogger(HuodongYuyueController.class);

    private static final String TABLE_NAME = "huodongYuyue";

    @Autowired
    private HuodongYuyueService huodongYuyueService;


    @Autowired
    private TokenService tokenService;

    @Autowired
    private BaojianService baojianService;//医疗保健
    @Autowired
    private DictionaryService dictionaryService;//字典
    @Autowired
    private HuodongService huodongService;//文娱活动
    @Autowired
    private JiankangService jiankangService;//健康档案
    @Autowired
    private LaorenService laorenService;//老人
    @Autowired
    private ShenghuoService shenghuoService;//生活照料
    @Autowired
    private ShenghuoOrderService shenghuoOrderService;//生活照料订单
    @Autowired
    private TudiService tudiService;//土地
    @Autowired
    private TudiOrderService tudiOrderService;//土地承包
    @Autowired
    private YiliaoService yiliaoService;//医疗人员
    @Autowired
    private YonghuService yonghuService;//乡村志愿者
    @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("laorenId",request.getSession().getAttribute("userId"));
        else if("医疗人员".equals(role))
            params.put("yiliaoId",request.getSession().getAttribute("userId"));
        CommonUtil.checkMap(params);
        PageUtils page = huodongYuyueService.queryPage(params);

        //字典表数据转换
        List<HuodongYuyueView> list =(List<HuodongYuyueView>)page.getList();
        for(HuodongYuyueView 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);
        HuodongYuyueEntity huodongYuyue = huodongYuyueService.selectById(id);
        if(huodongYuyue !=null){
            //entity转view
            HuodongYuyueView view = new HuodongYuyueView();
            BeanUtils.copyProperties( huodongYuyue , view );//把实体数据重构到view中
            //级联表 文娱活动
            //级联表
            HuodongEntity huodong = huodongService.selectById(huodongYuyue.getHuodongId());
            if(huodong != null){
            BeanUtils.copyProperties( huodong , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "laorenId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setHuodongId(huodong.getId());
            }
            //级联表 老人
            //级联表
            LaorenEntity laoren = laorenService.selectById(huodongYuyue.getLaorenId());
            if(laoren != null){
            BeanUtils.copyProperties( laoren , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "laorenId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setLaorenId(laoren.getId());
            }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

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

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");
        else if("老人".equals(role))
            huodongYuyue.setLaorenId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<HuodongYuyueEntity> queryWrapper = new EntityWrapper<HuodongYuyueEntity>()
            .eq("huodong_id", huodongYuyue.getHuodongId())
            .eq("laoren_id", huodongYuyue.getLaorenId())
            .in("huodong_yuyue_yesno_types", new Integer[]{1,2})
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        HuodongYuyueEntity huodongYuyueEntity = huodongYuyueService.selectOne(queryWrapper);
        if(huodongYuyueEntity==null){
            huodongYuyue.setHuodongYuyueYesnoTypes(1);
            huodongYuyue.setInsertTime(new Date());
            huodongYuyue.setCreateTime(new Date());
            huodongYuyueService.insert(huodongYuyue);
            return R.ok();
        }else {
            if(huodongYuyueEntity.getHuodongYuyueYesnoTypes()==1)
                return R.error(511,"有相同的待审核的数据");
            else if(huodongYuyueEntity.getHuodongYuyueYesnoTypes()==2)
                return R.error(511,"有相同的审核通过的数据");
            else
                return R.error(511,"表中有相同数据");
        }
    }

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

        String role = String.valueOf(request.getSession().getAttribute("role"));
huodongYuyue.setLaorenId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

            huodongYuyueService.updateById(huodongYuyue);//根据id更新
            return R.ok();
    }


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

        HuodongYuyueEntity oldHuodongYuyue = huodongYuyueService.selectById(huodongYuyueEntity.getId());//查询原先数据
        huodongYuyueEntity.setHuodongYuyueShenheTime(new Date());//审核时间
        huodongYuyueService.updateById(huodongYuyueEntity);//审核

        return R.ok();
    }

    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        List<HuodongYuyueEntity> oldHuodongYuyueList =huodongYuyueService.selectBatchIds(Arrays.asList(ids));//要删除的数据
        huodongYuyueService.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");
        try {
            List<HuodongYuyueEntity> huodongYuyueList = 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){
                            //循环
                            HuodongYuyueEntity huodongYuyueEntity = new HuodongYuyueEntity();
                            huodongYuyueList.add(huodongYuyueEntity);


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

                        //查询是否重复
                         //报名编号
                        List<HuodongYuyueEntity> huodongYuyueEntities_huodongYuyueUuidNumber = huodongYuyueService.selectList(new EntityWrapper<HuodongYuyueEntity>().in("huodong_yuyue_uuid_number", seachFields.get("huodongYuyueUuidNumber")));
                        if(huodongYuyueEntities_huodongYuyueUuidNumber.size() >0 ){
                            ArrayList<String> repeatFields = new ArrayList<>();
                            for(HuodongYuyueEntity s:huodongYuyueEntities_huodongYuyueUuidNumber){
                                repeatFields.add(s.getHuodongYuyueUuidNumber());
                            }
                            return R.error(511,"数据库的该表中的 [报名编号] 字段已经存在 存在数据为:"+repeatFields.toString());
                        }
                        huodongYuyueService.insertBatch(huodongYuyueList);
                        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 = huodongYuyueService.queryPage(params);

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

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

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


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

                //级联表
                    HuodongEntity huodong = huodongService.selectById(huodongYuyue.getHuodongId());
                if(huodong != null){
                    BeanUtils.copyProperties( huodong , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setHuodongId(huodong.getId());
                }
                //级联表
                    LaorenEntity laoren = laorenService.selectById(huodongYuyue.getLaorenId());
                if(laoren != null){
                    BeanUtils.copyProperties( laoren , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setLaorenId(laoren.getId());
                }
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    }


    /**
    * 前端保存
    */
    @RequestMapping("/add")
    public R add(@RequestBody HuodongYuyueEntity huodongYuyue, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,huodongYuyue:{}",this.getClass().getName(),huodongYuyue.toString());
        Wrapper<HuodongYuyueEntity> queryWrapper = new EntityWrapper<HuodongYuyueEntity>()
            .eq("huodong_yuyue_uuid_number", huodongYuyue.getHuodongYuyueUuidNumber())
            .eq("huodong_id", huodongYuyue.getHuodongId())
            .eq("laoren_id", huodongYuyue.getLaorenId())
            .eq("huodong_yuyue_text", huodongYuyue.getHuodongYuyueText())
            .in("huodong_yuyue_yesno_types", new Integer[]{1,2})
            .eq("huodong_yuyue_yesno_text", huodongYuyue.getHuodongYuyueYesnoText())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        HuodongYuyueEntity huodongYuyueEntity = huodongYuyueService.selectOne(queryWrapper);
        if(huodongYuyueEntity==null){
            huodongYuyue.setHuodongYuyueYesnoTypes(1);
            huodongYuyue.setInsertTime(new Date());
            huodongYuyue.setCreateTime(new Date());
        huodongYuyueService.insert(huodongYuyue);

            return R.ok();
        }else {
            if(huodongYuyueEntity.getHuodongYuyueYesnoTypes()==1)
                return R.error(511,"有相同的待审核的数据");
            else if(huodongYuyueEntity.getHuodongYuyueYesnoTypes()==2)
                return R.error(511,"有相同的审核通过的数据");
            else
                return R.error(511,"表中有相同数据");
        }
    }

}

7.2 活动预约Service

package com.service;

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

/**
 * 活动报名 服务类
 */
public interface HuodongYuyueService extends IService<HuodongYuyueEntity> {

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

}

7.3 活动预约ServiceImpl

package com.service.impl;

/**
 * 活动报名 服务实现类
 */
@Service("huodongYuyueService")
@Transactional
public class HuodongYuyueServiceImpl extends ServiceImpl<HuodongYuyueDao, HuodongYuyueEntity> implements HuodongYuyueService {

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


}

7.4 活动预约DAO

package com.dao;

/**
 * 活动报名 Dao 接口
 *
 * @author 
 */
public interface HuodongYuyueDao extends BaseMapper<HuodongYuyueEntity> {

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

}

8.参考文档

 

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

是否需要跟上鸿蒙(OpenHarmony)开发岗位热潮?

前言 自打华为2019年发布鸿蒙操作系统以来&#xff0c;网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android&#xff0c;更激烈的讨论随之而来。 本文没有宏大的叙事&#xff0c;只有基于现实的考量。 通过本文&#xff0c;你将了解到&#xff1a; Har…

使用Wireshark进行网络流量分析

目录 Wireshark是什么&#xff1f; 数据包筛选 筛选指定ip 使用逻辑运算符筛选 HTTP模式过滤 端口筛选 协议筛选 包长度筛选 数据包搜索 数据流分析 数据包导出 Wireshark是什么&#xff1f; 通过Wireshark&#xff0c;我们可以捕获和分析网络数据包&#xff0c;查看…

用ChatGPT方式编程!GitHub Copilot Chat全面开放使用

全球著名开源分享平台GitHub在官网宣布&#xff0c;经过几个月多轮测试的GitHub Copilot Chat&#xff0c;全面开放使用&#xff0c;一个用ChatGPT方式写代码的时代来啦&#xff01; 据悉&#xff0c;Copilot Chat是基于OpenAI的GPT-4模型&#xff0c;再结合其海量、优质的代码…

GitHub Copilot 最佳免费平替:阿里通义灵码

之前分享了不少关于 GitHub Copilot 的文章&#xff0c;不少粉丝都评论让我试试阿里的通义灵码&#xff0c;这让我对通义灵码有了不少的兴趣。 今天&#xff0c;阿七就带大家了解一下阿里的通义灵码&#xff0c;我们按照之前 GitHub Copilot 的顺序分享通义灵码在相同场景下的…

【Linux 内核源码分析】GPIO子系统软件框架

Linux内核的GPIO子系统是用于管理和控制通用输入输出&#xff08;GPIO&#xff09;引脚的软件框架。它提供了一套统一的接口和机制&#xff0c;使开发者能够方便地对GPIO进行配置、读写和中断处理。 主要组件&#xff1a; GPIO框架&#xff1a;提供了一套API和数据结构&#x…

【深度学习-基础学习】Self-Attention 自注意力机制 笔记

本篇文章学习总结 李宏毅 2021 Spring 课程中关于 Self-Attention 自注意力 机制相关的内容。课程链接以及PPT&#xff1a;李宏毅Spring2021ML 关于 Self-Attention 机制想要解决的问题 通常来说&#xff0c; 我们的模型的输入会是一个vector&#xff0c;然后输出可能是 一个数…

python图形界面设计工具,python的图形界面gui编程

大家好&#xff0c;小编为大家解答python编写图形化界面的工具的问题。很多人还不知道python图形界面设计工具&#xff0c;现在让我们一起来看看吧&#xff01; 1.根窗体 &#xff08;1&#xff09;创建根窗体对象 ①tkinter.Tk():创建一个根窗体对象。使用后会立即显示窗口&am…

基于 vite 创建 Vue3 项目

1、基于 vue-cli 创建 ## 查看vue/cli版本&#xff0c;确保vue/cli版本在4.5.0以上 vue --version## 安装或者升级你的vue/cli npm install -g vue/cli## 执行创建命令 vue create vue_test## 随后选择3.x ## Choose a version of Vue.js that you want to start the proje…

通过IP地址防范钓鱼网站诈骗的有效措施

随着互联网的普及&#xff0c;钓鱼网站诈骗成为一种广泛存在的网络犯罪行为。通过冒充合法网站&#xff0c;攻击者试图窃取用户的敏感信息。本文将探讨如何通过IP地址防范钓鱼网站诈骗&#xff0c;提供一系列有效的措施&#xff0c;以加强网络安全&#xff0c;保护用户免受诈骗…

审计报告翻译服务,如何确保翻译质量?

近年来&#xff0c;随着跨国经济活动的增多&#xff0c;越来越多的企业需要进行跨国审计&#xff0c;而审计报告的翻译就变得尤为重要。那么&#xff0c;审计报告翻译服务&#xff0c;如何确保翻译质量&#xff1f;  据了解&#xff0c;审计报告翻译是全面揭示被审计单位实质情…

【Jenkins】centos服务器部署jenkins2.426

Jenkins部署 版本选择说明 目前项目上用的版本是比较旧的&#xff0c;现在用不了&#xff0c;插件版本问题比较恶心。试过2.346&#xff0c;插件问题没解决&#xff0c; 单独找&#xff08;*.hpi&#xff09;插件匹配的版本太麻烦了。 前置环境部署 git 略 JDK11 该jenk…

企业招聘信息发布平台

吉鹿力招聘网是中国有名的专业招聘网站&#xff0c;拥有超过1500万招聘信息&#xff0c;涵盖了全国各地的企业招聘信息&#xff0c;是求职者获取新招聘信息的良好渠道。百度搜索吉鹿力招聘网就能下载并投递简历&#xff0c;开启求职之旅。 吉鹿力招聘网企业注册流程 首先打开…

c语言:用指针输入两个数组|练习题

一、题目 利用指针&#xff0c;输入两个数组 如图&#xff1a; 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> int main() { int a[50]; int b[50]; int *paa,*pbb; //输入第一组数组 printf("请输入第一组5个数字&#xff1a;…

C++ 二进制图片的读取和blob插入mysql_stmt_init—新年第一课

关于二进制图片的读取和BLOB插入一共包含五步 第一步&#xff1a;初始化 MYSQL_STMT* stmt mysql_stmt_init(&mysql); 第二步&#xff1a;预处理sql语句 mysql_stmt_prepare(stmt,sql,sqllen); 第三步&#xff1a;绑定字段 mysql_stmt_bind_param(stmt,bind); 第四…

JVM虚拟机:各种JVM报错总结

错误 java.lang.StackOverflowError java.lang.OutOfMemoryError:java heap space java.lang.OutOfMemoryError:GC overhead limit exceeded java.lang.OutOfMemoryError:Direct buffer memory java.lang.OutOfMemoryError:unable to create new native thread java.lang.OutOf…

WPF容器的背景对鼠标事件的影响

背景&#xff1a;在实现鼠标拖动窗口的过程中发现对父容器设置了鼠标拖动窗口的事件MouseLeftButtonDown private void DragWindow(object sender, MouseButtonEventArgs e) {if (e.LeftButton MouseButtonState.Pressed)DragMove(); } 问题&#xff1a;非常困惑的是&#x…

python慕课版课后题答案,python慕课作业答案

这篇文章主要介绍了中国大学慕课python测验答案&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Flag 8月29日前学习完MOOC_Python课程&#xff0c;以下各测试题均来自于Python…

Rockchip平台Android应用预安装功能(基于Android13)

Rockchip平台Android应用预安装功能(基于Android13) 1. 预安装应用类型 Android上的应用预安装功能&#xff0c;主要是指配置产品时&#xff0c;根据厂商要求&#xff0c;将事先准备好的第三方应用预置进Android系统。预安装分为以下几种类型&#xff1a; 安装不可卸载应用安…

Axure医疗-住院板块,住院患者原型预览,新增医护人员原型预览,新增病房原型预览,选择床位原型预览,主治医生原型预览,主治医生医嘱原型预览

目录 一.医疗项目原型图-----住院板块 1.1 住院板块原型预览 1.2 新增住院患者原型预览 1.3 新增医护人员原型预览 1.4 新增病房原型预览 1.5 选择床位原型预览 1.6 主治医生原型预览 1.7 主治医生医嘱原型预览 1.8 主治医生查看患者报告原型预览 1.9 护士原型预…

008、所有权

所有权可以说是Rust中最为独特的一个功能了。正是所有权概念和相关工具的引入&#xff0c;Rust才能够在没有垃圾回收机制的前提下保障内存安全。 因此&#xff0c;正确地了解所有权概念及其在Rust中的实现方式&#xff0c;对于所有Rust开发者来讲都是十分重要的。在本文中&…