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

移动端体检预约:

验证码:

上传日期

前端数据

数据存储到 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);
相关推荐
2601_957786771 小时前
企业矩阵运营的“三段论“:管号、产内容、获线索——全链路系统的价值拆解
java·前端·矩阵·多平台管理
海的透彻1 小时前
jmeter预制处理器JSR223-加解密
开发语言·jmeter·sm2·jsr233
asyxchenchong8881 小时前
R+VIC 模型融合实践技术应用及未来气候变化模型预测
开发语言·r语言
Run_Teenage1 小时前
算法模板:输入输出,并查集
java·开发语言·算法
一 乐1 小时前
公交线路查询系统|基于Java+vue公交线路查询系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·公交线路查询系统
AllData公司负责人2 小时前
亲测丝滑,体验跃迁|AllData通过集成开源项目Datart,让数据可视化一目了然
java·大数据·数据库·python·数据可视化·数据视图·datart
未若君雅裁2 小时前
RabbitMQ 高可用机制:普通集群、镜像队列与仲裁队列
java·微服务·rabbitmq·java-rabbitmq
i220818 Faiz Ul2 小时前
相亲网站|相亲网站系统|基于Java+vue相亲网站系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·相亲网站系统
asdfg12589632 小时前
str.charAt(i)和c.charValue()区分(c是Character (对象))
java
古城小栈2 小时前
Rust Tauri:构建轻量高性能跨平台桌面应用
开发语言·后端·rust