Spring Cloud架构: CRM系统采用Spring Cloud框架,
Gateway网关: 引入Gateway作为系统的网关,负责请求的路由
缓存组件Redis: 使用Redis作为缓存组件,
数据库MySQL: 作为系统的主要存储引擎,MySQL用于持久化数据。
消息中间件RabbitMQ: 引入RabbitMQ作为消息中间件,用于实现异步消息处理。
注册中心Eureka: 使用Eureka作为注册中心,实现服务的自动发现和注册。
Feign远程调用: 采用Feign进行远程服务调用。
配置文件管理Apollo: 引入Apollo作为配置文件的管理工具,通过动态配置,实现系统配置的灵活管理。
这个项目是和别的公司联合开发的,我主要担任本公司的leader,负责本公司的开发计划和需求评审。
我主要负责的是整个项目的核心模块:权限,登录,组织,菜单资源,还有就是数据字典等的设计维护。
在前期与客户沟通整个权限体系和组织关系的过程中,着重考虑了符合客户要求的权限组织体系,并确保了效率。主要是以下几点:
需求收集: 在初期与客户的沟通中,详细了解客户对权限体系和组织关系的具体需求。
业务场景分析: 分析客户的业务场景,理解不同用户在系统中的角色和职责。
权限层级设计: 根据客户需求设计权限的层级结构,确保不同层级的权限能够清晰地区分和控制。
组织架构设计: 考虑客户的组织结构,设计能够支持多级组织的权限管理体系。
权限与角色关联: 将权限与角色进行关联,以便更好地进行权限的分配和管理。例如,每个公司的用户可以多角色,多角色意味着会出现权限冲突,后面整理冲突点跟客户一个个过,例如a角色是最小权限,b角色是最大权限等等这种数据权限设计: 如果系统涉及敏感数据,考虑设计数据权限,确保用户只能访问其具有权限的数据。达到满足客户对每个表字段级的数据权限控制
效率优化考虑: 在设计权限体系时,引入设计思想,加入缓存达到提高效率。
全局登录与权限拦截:
通过网关层拦截登录token,确保全局登录的安全性。
利用权限拦截机制,对用户进行访问权限的验证,确保系统的安全性和数据的隐私。
组织与菜单资源设计:
设计灵活的组织结构,支持多级组织,并与用户关联,以实现更细粒度的权限控制。
菜单资源的设计要符合业务模块化的原则,确保菜单的动态扩展和管理。