# 6 下一步计划 6.1节涉及到技术层面需要改进的部分,而6.2节则是业务方面未实现的部分,这两个部分的代码都会在本项目中实现。而6.3节会进一步完善本项目的安全和性能,但是不一定会在本项目中实现,因为会增加相当大的复杂性。 ## 6.1 技术 ### 6.1.1 ENUM 数据库中涉及到枚举类型的字段,目前设置成VARCHAR。 下一步应该设计不同的业务enum类型,然后mybatis自定义BaseTypeHandler来处理不同的枚举类型。 ### 6.1.2 litemall-db AutoConig 目前,litemall-os-api、litemall-admin-api和litemall-wx-api引入litemall-db的时候,需要在Application类中显式注解查找包和MapperScan来对litemall-db中的mapper查找,此外需要在application.properties配置文件中完成对数据库、数据池等配置。 例如 ``` @SpringBootApplication(scanBasePackages={"org.linlinjava.litemall.admin","org.linlinjava.litemall.db"}) @MapperScan("org.linlinjava.litemall.db.dao") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 下一步,应该自动部署,即引入litemall-db则会自动引入对mapper的查找, 同时自动部署对数据库、PageHelper和Druid的配置。 ### 6.1.3 统一对日期时间域的处理 目前,数据库的日期时间域有的采用DATE,有的是DATETIME,而对应Java用LocalDate和LocalDateTime。 下一步应该根据具体业务功能采用合适的。 ### 6.1.4 vue-element-admin跟新 目前的vue-element-admin基于element 2.0.8, 因此element的很多修复没有跟新。 ### 6.1.n 代码重构 技术不断迭代开发中,应该在业务基本完成和功能基本完善以后, 重新审视代码架构和技术,或者重构代码,或者采用更为合理的技术。 ## 6.2 业务 ### 6.2.1 支付模块 目前微信支付模块因缺乏支付权限而不能开发。 ### 6.2.3 监控管理 项目运行的整个运行过程应该需要监控管理 ### 6.2.4 权限管理 目前安全实现非常粗糙,仅仅依赖管理员的名称和密码。 更好的做法是引入角色权限机制。 ## 6.3 企业级 ### 6.3.1 安全(必须) 尽在系统所有业务功能完整实现以后。 ### 6.3.2 性能(建议) 仅在系统所有业务功能完整实现以后。 性能的提升存在多种方案。 目前考虑到的技术方案: * 采用内存数据库,如redis,缓存一些改动较少的数据,例如行政区域数据。 * 数据库方面可以引入冗余,例如首页的数据可以先从其他表更新到一个独立的表。 ### 6.3.3 对象存储云服务(建议) 仅在系统所有业务功能完整实现以后。 对象存储云服务不一定是必须的: * 局域网中只能采用内部对象存储服务 * 对象存储云服务也是一笔开销 * 引入对象存储云服务也增加了一定的复杂性 * 导致对具体云平台的耦合 当然,对象存储云服务的益处也是毋庸置疑的,因此建议部署使用。 ### 6.3.4 云数据库(必须) 同上,如果仅在局域网中部署项目,那么数据库的部署也只能是在局域网中,但是在互联网中部署应用,数据的重要性和优先级是最高的,采用云数据库可以方便带来其提供的安全和性能服务。 ### 6.3.5 短信服务(必须) 真正的项目里面肯定需要短信功能。 ### 6.3.6 推荐系统(可选) 目前的关键字是管理员设置,然后用户的搜索时匹配关键字,因此需要专业的推荐系统。 Apache Solor ### 6.3.7 Spring Boot 2.0 ### 6.3.8 Spring Cloud ### 6.3.8 定时任务模块 ### 6.3.9 单点登录模块 ### 6.3.10 消息队列