项目中主要分为3个模块,分别为sky-common、sky-pojo、sky-server模块。
sky-common模块主要用于存放公共类,比如一些常量类、异常类、工具类。sky-pojo用来存放Entity类、VO、DTO。整个项目做下来VO一般用来做返回值类型、DTO一般用来做方法中的形参类型。在有些方法中需要返回的值或者前端传递到方法中的值,实体类无法满足具体的要求,这个时候就用到了VO和DTO。sky-server主要用来存放业务代码,业务代码的编写主要是在这个模块中,包括Controller、Server和Mapper。
在项目中使用到了Swagger,Swagger是一个后端接口测试工具,YAPI是设计阶段使用的工具,用于管理和维护接口。可以在类上或者方法上添加上Swagger的相关注解,去生成相应的测试接口。
获取登录员工的id可以使用ThreadLocal,可以在任意位置获取到登录员工的id。项目中还用到了公共字段填充、自定义AutoFill注解,自定义切面类AutoFileAspect,在Mapper的方法上加上AutoFill注解,进行公共字段的自动填充,使用的技术点有枚举、注解、AOP、反射。
店铺营业状态的设置就用到了Redis,在店铺营业状态的设置使用中使用SpringDataRedis来对Redis进行操作。微信小程序端的菜品、套餐的展示也用到了Redis,使用SpringCache通过注解就能够实现缓存功能。使用Redis技术减少了对数据库的访问压力。
微信支付功能的实现需要用到商户号等,由于没有商户号,对微信支付这块的功能进行了简单的修改,仅仅是模拟微信支付的流程逻辑。
SpringTask是用来做定时任务的,SpringTask可以按照约定的时间自动执行某个Java代码。在项目中对订单状态一直是“待支付”状态,或者一直是“派送中”的状态,通过SpringTask对这两种状态进行处理,通过定时自动的修改它们的状态。
用户下单支付成功后,通知商家接单,以及用户在小程序上催单的功能用到了WebSocket。WebSocket可以实现浏览器与服务器的双向数据通信,WebSocket是基于TCP的一种新的网络协议,浏览器与服务器只需要一次握手,两者之间就可以创建持久性的连接,便可以实现浏览器与服务器的双向数据通信。
数据统计这块用到了ECharts可视化图标库,项目的后端开发主要是对数据的格式进行处理,后端传递给符合前端要求的动态数据。前端拿到数据进而进行图形化的展示。
导出Excel文件功能用到ApachePOI技术,它是用来处理Office各种文件格式的开源项目。
爱折腾的人不会输