之前做完了后台的呼叫服务管理,就是对呼叫服务进行维护,其中包括增加呼叫服务类型或者是修改呼叫服务类型。今天又分配到了新的任务,就是要做顾客点菜端的呼叫服务类型,这里面的呼叫服务类型就是从数据库里面取出的,然后点击其中的呼叫服务,肯定会给对应负责的服务员发送一个服务请求,这个请求是临时的显然在数据库中新建一个表存起来是没有必要的,所以这里用到了缓存,就是把呼叫服务放到缓存中,服务员端显示的服务是从缓存中拿出来的。看到缓存不要感觉到很可怕,起始就是把数据放入内存中,定义一个Map即可,之前旧版餐饮项目是定义了一个ConCurrentMap,里面存放的是桌子的编号和CallCache,百度了一下这个Map是HashMap的改进,解决了线程不安全问题,CallCache中有服务的名称,发出服务的时间,被处理的状态,响应服务的时间,响应的服务员。服务员端要根于自己负责的餐桌号获取到所有餐桌的呼叫服务,由于顾客端还没做完,页还没有出,所以个人感觉还是等等看服务员端作出来什么样再接着做吧。
时间过去了不少天啦,今天再总结下自己做的这个模块出现的问题以及解决方法,之前的呼叫服务对是对应于一个桌号的,定义的Map只能存下一个呼叫服务,自己想了一想感觉不太合理,所以就把map重新定义了一下,定义成了一个桌号对应一个TableCallCache,TableCallCache对象中有一个List<CallCache>,list里面的对象为单个呼叫服务,感觉这样的话就比较合理了。又考虑了一下服务员响应的过程,感觉同一个请求,如果服务员端没有接受的话则顾客不能再次发出同样一个服务,如果接受了的话,两次发送同一个请求的间隔不能小于1分钟。因为服务员对餐桌可以进行状态操作,就是关闭餐桌什么等等,所以不是所有的餐桌都可以发送请求,只有在可用状态下的餐桌才可以发送请求。看了一下学长写的服务员对于餐桌的操作,发现了服务员端的控制器继承的类和我写的控制器继承的类不同,这样的话放在缓存中的东西就取不到了,于是我就去把我写的controller继承的类改成了服务员端继承的类,暂时还没测试哦,不知道好不好使呢。