手机体检预约系统开发解析

移动端体检预约:

验证码:

上传日期

前端数据

数据存储到 orderInfo ..........

1,发送验证码 :

随机验证码

封装一个生产随机数的类,生产随机数 上传到redis数据库当中

java 复制代码
  try {
            Integer code = ValidateCodeUtils.generateValidateCode(4);
            System.out.println("生成验证码:" + code);
            redisClient.set(RedisMessageConstant.SENDTYPE_ORDER+telephone,code);
            redisClient.expire(RedisMessageConstant.SENDTYPE_ORDER+telephone,5*60);
            return new Result(true, MessageConstant.SEND_VALIDATECODE_SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, MessageConstant.SEND_VALIDATECODE_FAIL);
        }

验证验证码

判断验证码是否过期判断,填写验证码是否正确

获取前端验证码 取得redis 数据库当中的验证码 比较

java 复制代码
 @Override
    public Result submit(Map map) {
        //获取前端收到的验证码
        String validateCodeStr = (String) map.get("validateCode");
        if (validateCodeStr == null || validateCodeStr.isEmpty()) {
            return new Result(false, "验证码不能为空");
        }
        //获取验证码
        Integer validateCode = Integer.valueOf(validateCodeStr);

        //获取前端的手机号
        String telephone = (String) map.get("telephone");
        //获取redis验证码 key = telephone
        Integer redisCode = (Integer)redisClient.get(RedisMessageConstant.SENDTYPE_ORDER+telephone);

        //判断验证码是否过期
        if (redisCode == null) {
            return new Result(false, MessageConstant.VALIDATECODE_EXPIRE);
        }
        //判断验证码是正确
        if(!validateCode.equals(redisCode)){
          return new Result(false, MessageConstant.VALIDATECODE_ERROR);
        }
}

2,提交表单

2.1查询预约日期是否符合要求 预约已满 重复预约

获取前端传送的日期 日期格式化

查询当前日期可以预约,人数是否已满

查询预约表当中的预约人数和可预约人数

java 复制代码
 //获取预约日期 日期转换格式
        String orderDate1 = (String) map.get("orderDate");
        Date orderDate = DateUtil.OrderListDate(orderDate1, "yyyy-MM-dd");

        //查询预约日期对象
        OrderSetting orderSetting =  orderSettingMapper.selsectByOrderDate(orderDate);

        //判断当前选择日期是否可以预约
        if (orderSetting == null) {
            return new Result(false, MessageConstant.SELECTED_DATE_CANNOT_ORDER);
        }

        //判断当前日期是否预约已满
        if (orderSetting.getNumber() == orderSetting.getReservations()) {
            return new Result(false, MessageConstant.ORDER_FULL);
        }

2.2,查询当前用户是否是会员 ,不是自动注册

查询会员表当中是否存在不存在

java 复制代码
      //查询当前用户是不是会员
        Member members = memberMapper.selectByTelephone(telephone);

        //获取套餐ID
        String setmealIdString = (String)map.get("setmealId");
        Integer setmealId = Integer.valueOf(setmealIdString);
        String name = (String) map.get("name");// 姓名
        String sex = (String) map.get("sex");// 性别
        String idCard = (String) map.get("idCard");// 身份证号

        // 当前用户不是会员,自动完成注册
        if (members == null) {
            members = new Member();
            members.setName(name);
            members.setSex(sex);
            members.setIdCard(idCard);
            members.setPhoneNumber(telephone);
            members.setRegTime(new Date());
            memberMapper.addMember( members);
        }

2.3, 预约成功,预约人数加一

查询该用户是否多次预约

如果查询为空 预约预约人数 +1

java 复制代码
 //预约设置 禁止重复预约
        Order orderBook = orderMapper.selectOrder(members.getId(), orderDate, setmealId);
        if (orderBook == null) {
            Order order = new Order(members.getId(),
                    orderDate,
                    Order.ORDERTYPE_WEIXIN,
                    Order.ORDERSTATUS_NO,
                    setmealId);
            //添加预约设置
            orderMapper.addOrder(order);

            //添加预约设置 预约人数加一
            orderSettingMapper.UpdateOrderSetting( orderDate);
相关推荐
行者全栈架构师11 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_011 小时前
mac(m5)平台编译openjdk
java
唐青枫1 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马1 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261351 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261351 天前
Java 打印 Word 文档:从基础打印到高级设置
java
用户3521802454752 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程
东坡白菜2 天前
破局全栈:一个前端开发的Java入门实战记录(1)
java·全栈
唐青枫2 天前
Java Tomcat 实战指南:从 Servlet 容器到 Spring Boot 部署
java
wsaaaqqq2 天前
roudan:自由选择实体、灵活操作数据、快速写入数据库的 Java 框架
java