移动端体检预约:
验证码:

上传日期

前端数据
数据存储到 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);

