0%

Portal-license

Portal server 中需要新增一个 license 中间表,用户管理员审核状态和中间表。用户可以通过中间表的 CompanyId 和 AppId 去 licensesevere 获取对应的 license 文件。

需求背景

用户根据当前选择的 App 去申请相关的license。license server 出于安全考虑除了在线校验接口之外的所有接口应该从 Portalserver 进行转发,从而让Portal 根据 token 进行权限的验证和限制。而且目前设计的 license 的下发也是需要经过人员的审核和沟通的,所以需要有一个中间状态还有需要有一个的中间表,去存储App 和 license 之间的关系,不需要所有的请求都直接到 license server 获取数据。

模型设计

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
license
{

// 申请公司
private String companyId;

// 对应申请的 App
private String appId;

// 包含的套件(Base,WMS,MES)
private List<String> types;

/*
* 有效期
* 有效期为3个月:Valid for 3 months
* 有效期为6个月:Valid for 6 months
* 有效期为12个月:Valid for 12 months
* 永久有效:Permanent
*/
private String validityPeriod;

// 审核的状态
private String status;

// 备注信息
private String remark;

...

创建更新时间什么的基础字段

...

}

逻辑设计

用户通过 App 跳转到 license 申请页面如下图(图片仅为设计原型和样式,不代表最终业务逻辑)

upload successful

用户选择完最后的套件(Base,MES,WMS)和有效期时效之后提交申请。

我们收到请求之后可以进行人工审核和沟通,最后修改申请状态。当申请状态为申请通过后,用户可以通过页面直接进行 license 文件下载。

业务逻辑

1、用户页面选择 App 进入 license 申请
2、用户选择套件和有效期提交申请
3、管理员通过沟通后审核通过
4、用户可以直接从 license 管理页面进行下载

服务调用逻辑

upload successful

portal 服务请求 license 服务的相关参数,主要根据 CompanyId 和 AppId 确定唯一的 license,然后license 校验的相关逻辑需要针对套件的 types。

根据当前的逻辑设计,那么每个公司对应每个 App 只有一个 license,后续需要进行更新相关的套件拓展的话,还需要针对当前的 license 进行拓展申请,这个后面再继续完善设计。

需求切分

Vue

1、申请 license 页面的Vue。

2、调用 Meper 获取当前 App 信息。

3、请求 Portal 创建

4、查询 license 的列表页面

5、查询 license 的 info 页面

6、查询 portal 的 license 的接口

7、请求 portal 的下载 license 接口

Meper

1、接口返回当前 App 的信息(已有)

2、对应的pageEditor的套件标识信息。

Portal

1、一个 license 审核表,记录 license 申请的关键性数据和状态。

2、针对这个 license 表的增删改查接口

3、调用 license server 的 remote client 接口

4、请求 license 的下载文件接口。

license

1、创建 license 接口

2、下载 license 接口