dao层
redisDaoImpl
四个方法
预约
获取医生预约次数
去重
添加到redis,患者表hash类型(key是患者的id,字段是看病时间,字段值为医生id)方便查看我的预约
@Autowired
private StringRedisTemplate redisTemplate; //对redis操作的对象
//尾部添加数据
//预约往redis储存一个list类型,键名为 doctor:1:20210109 ,doctor:id:日期,值为患者id
@Override
public Integer listRpush(String key, String value) {
return redisTemplate.opsForList().rightPush(key,value).intValue();
}
//获取list的长度,list长度证明,被预约过多少次,医生每天看病总数-预约总数等于剩余预约数
@Override
public Integer listLen(String key) {
return redisTemplate.opsForList().size(key).intValue();
}
//预约,去重,往set加值,预约成功加值,加不进去证明加过值了=预约失败
@Override
public Integer setAdd(String key, String value) {
return redisTemplate.opsForSet().add(key, value).intValue();
}
@Override
public void hashSet(String key, String hkey, String hval) {
redisTemplate.opsForHash().put(key, hkey, hval);
}
service层
BookingServiceImpl
两个方法
预约
获取list长度
@Autowired
private RedisDao redisDao;
@Autowired
private CacheDao cacheDao;
public Integer addOneBooking(Booking booking) {
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
String date = fmt.format(booking.getBookingDate());
String key = String.format