1.项目背景和目标:政务平台系统,平台的主要目标是将该部门下级部门的多个分散系统做一个统一门面,统一管理各个子系统模块,实现单点登录
2.软件功能:分为管理端和用户端,管理端主要实现对子系统模块的管理,包括上架,下架,以及图标,链接的配置。首页轮播图配置,通知公告配置等。管理端数据统计,包括每日访问量,新增人数,活跃人数,各模块访问量等常见指标。用户端建立统一用户体系,灵活配置各个子系统的排列方式,系统根据用户点击频率智能调整子系统图标位置
3.核心功能模块:统一用户体系,实现单平台系统一次登录自动登录子系统(各子系统原来是独立的用户体系)
4.业务流程:管理端:配置各个子系统,主要为h5页面链接和小程序。
用户端:用户通过微信授权或手机短信验证码实现注册和登录;系统根据用户的手机号自动扫描子系统账号,将平台账号与子系统账号做关联;用户访问子系统之前,先从服务端(授权服务器)获取授权码,并将授权码作为页面参数传递给子系统,子系统根据授权码到授权服务器获取平台登录用户信息,并在本系统中去查找该用户,如果找到则在本系统自动登录。
1.整体架构和设计思路,不同模块使用的技术栈
2.我的服装模块和结果
3.我遇到的难点,坑和解决方案
1.整体架构:管理端主要采用ruoyi框架,节省大量系统功能的开发,技术栈包括java,springboot,mybatis,mysql,redis,minio,rabbitMQ。用户端主要采用小程序,通过uniapp进行开发,技术栈为vue.js
2.功能难点主要在于原有的子系统用户体系不统一,比如有的以身份证作为登录名称,有的为手机号,有的以微信openid作为用户的主键,这部分要统一难度比较大,且用户为了让老系统为新平台引流(增加用户数),还做了反向注册,及在子系统中登录或者注册之后(平台不是子系统的唯一入口)反向到平台注册用户并建立关联关系。解决办法主要是在用户注册之后扫描子系统,如果子系统是手机号则自动与平台用户进行关联,还要考虑手机号过期的问题,如果用户长时间不登录还需要进行手机号验证;如未找到对应账号或者疑似相同账号,引导用户进行手动关关联。同时在平台增加接口供子系统反向注册调用,子系统也做相应的改造,实现用户的反向注册。
3.我在本系统中主要负责整体的设计,主要是单点登录,注册扫描,子系统登录/注册反向注册
平台。还有部分代码的开发,包括授权登录服务器,子系统调用接口,以及子系统向平台上传数据的模块封装(以消息形式通过rabbitMQ上传到平台)