1.架构问题
要能从整体上和我们本身的服务相似,比如从后端角度出发从理论上,首先就是加进来之后要可访问的,并且我们访问它的话不会影响到我们现有的服务,比如它里面的url : /api/admin/*** 是和我们本身的项目有冲突,即我们后端服务 admin服务 是以 /api开头的,我们要访问到它,那么我们在代理上不能影响到其他代理项,也就是代理不能冲突.
2.依赖
就比如我们的项目都得依赖admin而且需要依赖我们自定义的parent,那么需融合进来的项目的springboot的版本是否和我们冲突呢?,并且你需要融合进来的项目也是有自身的依赖的,那么两者是否存在冲突呢?
针对上述问题有两种解决方案:
第一种:我们可以将发生冲突的包都有我们自己的,如果是它自身独自使用的依赖就用它自己的,
但是这种方案会造成一种问题 那么就是你改动了依赖的版本它自身的代码可能会受到很大的影响,造成工作量过大.
第二种: 我们不动它的依赖完全使用它自己的,防止它的代码发生错误,然后我们将我们自身的parent和admin的代码移植过来,这样做可能造成需融合项目的代码臃肿
至于我们为何需要我们自身的代码是基于我们自身业务的,这就引申出我们的第三步
3.鉴权
项目的鉴权功能是每个项目必不可少的,所以我们需要看这套东西有没有用户登陆,如果有:那么我们就得将这套鉴权去掉替换成我们自己的鉴权授权 以及token的解析等等...
4.配置文件
我们自己的配置文件都有我们自己的格式,配置的格式都是我们定义的,所以我们要统一一下格式,至于它自身独有的配置文件我们就将其融合进来即可
——————————————————————————————————————————
上述就是所有项目融合都需要考虑的步骤,下面第五、六步就是具体的项目需要单独考虑的东西,比如wvp-proGB28181融合
5.终端接入
我们项目中终端接入是以厂站为基本单位 是域的概念 也就是说 厂站域(控制资源所属)和部门域(资源隔离)即 我们同在一个部门那么我们看到的资源应该是一样的,如何我们是不同的部门,那么我是看不到你独属的资源的.再比如说设备是属于一个厂站的,终端的一个通道也肯定是属于一个厂站的所有属于这一个厂站的资源都可以在这个厂站下进行浏览操作,即厂站(包括 设备 终端通道 组态图 分时表 各种配置 告警 消息推送) 这都属于一个厂站属于厂站资源,我们管理业务都是通过以厂站为基本单位
而在wvp项目中的设备何我们的设备不是一个概念,它的一个设备其实指的就是一个NVR 也就是 NVR 和 通道 是我们的一种资源 就跟我们设备和通道一样 在wvp里通道是属于NVR的 再融合到我们自己的项目中那么NVR就得属于一个厂站了,那么我们就得看它的设备数据库表格中是否有空闲字段 没有的话我们就得加一列来存储厂站id
再者在前端页面肯定得先切换到厂站下,然后视频接入tab页 然后通过NVR来查看对应的通道.
查看通道的过程我们后端还得去查询对应的NVR然后看此NVR属于哪个厂站 然后看我们当前用户的部门是否可见这个厂站等等...
6.自动注册
wvp-pro中是支持自动注册的,我们在自己的项目中需要禁用此功能但是如何改动呢?
对于wvp的自动注册 用户发了一条注册请求,它肯定得看密码是否正确,咱就假定 密码在设备记录里面,一个设备都有对应的密码,设备请求过来之后去数据库查询是否有这个设备然后看你密码是否正确,密码对就注册成功
异常流程是: 1,设备在数据库中不存在 那么就新建一条 看密码是否正确->是->成功
2, 数据库中存在但是密码错误->失败返回
3,设备在数据库不存在->新建->密码错误->失败
所以我们可以将数据库第一和第三融合,改成数据库中不存在就直接返回失败