> 需要解决的问题是什么? 新的总部运营后台适配办公楼版。从数据库来说,老的总部运营后台用到了`authserver`和`hd`这两个数据库。而新的总部运营后台用到了`hd_new`这个数据库。 从基础设施层来看,原先所有和`authserver`和`hd`相关的增删改查都要切换到`hd_new`这个数据库。 > 大致步骤 - 找出所有和`IHeadQuarterRepository`和`IAuthRepository` - 替换成`HdContext`上下文下的表 > 原则 - 不改变接口 - 做基础设施层 - 在Application层加上`TODO`或自己改 > `authserver`数据库 - `aspnetusers`:用户表 ``` -- UserName:在办公楼版中是手机号 -- ProjectIds:通常用来表示用户属于哪个项目,但在办公楼版的后期没有用到,用户和项目的关系放在了projectuserroles表 -- RemarkName:被用做了办公楼版的昵称 -- Avator:被用做了办公楼版的头像 ``` - `aspnetroles`: 角色表 ``` 与办公楼版有关的几个角色,分别是: -- HdDg:表示总部电工,也叫做办公楼版的超级管理员。总部电工/超级管理员登录办公楼版APP的时候,在"我的"里面可以选择项目下的某个公司,然后向这个公司的某个人A(想成为OfficeAdmin的那个人)展示二维码,扫描二维码以后,A就成为新朋友,然后总部电工/超级管理员在新朋友列表中找到A,点击同意,把他设置成公司管理员,即OfficeAdmin。其中相关的表用到了:office_demo中的companyusers,和authserver中的projectuserroles表 -- OfficeAdmin:表示办公楼版的管理员。在办公楼版中,一个项目下有多个公司,每个公司只能有1个管理员,但是管理员可以在多个公司。 -- OfficeGuest:表是办公楼版的游客。当某个注册用户,即在authserver中的aspnetusers表中有记录的用户扫描二维码,他的默认角色就是OfficeGuest -- OfficeOperator: 表示办公楼版的操作员。操作员不仅可以查看信息,还可以修改开关名称,控制开关,延时断电。 ``` - `aspnetuserroles`:用户角色中间表,后期没有用到。把用户、角色与项目和公司的关系放到了`projectuserroles`表中 - `projectuserroles`表:用来存放用户、角色与项目和公司的关系,具体什么时候用到表,要看具体业务逻辑。 > `hd`数据库 - `projects`表:有关项目 - `groups`表:集团 - `macprojects`: 模块和项目的关系 - `banners`表示项目的banner管理 - `industries`表是行业 - `warningpolicies`表示报警策略 > `hd_new`数据库 #