真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

商城中多租戶功能邏輯設(shè)計(jì)-創(chuàng)新互聯(lián)

一、什么是多租戶功能?

多租戶功能是基于租戶共享同一個(gè)數(shù)據(jù)庫(kù)、同一個(gè)表,但在表中通過(guò)tenant_id區(qū)分租戶的數(shù)據(jù)的模式,基于mybatis-plus的多租戶SQL解析器實(shí)現(xiàn)

專(zhuān)注于為中小企業(yè)提供網(wǎng)站制作、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)潮安免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
`tenant_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '所屬租戶',
二、租戶功能說(shuō)明
  • 一個(gè)租戶就是一個(gè)商城
    一個(gè)商城下可以有app、小程序、h5等多個(gè)展示端,同一租戶下的不同端查出的數(shù)據(jù)是相同的
  • 各租戶的數(shù)據(jù)相互隔離
    有租戶約束的情況下,各租戶的數(shù)據(jù)相互隔離,用戶只能管理自己所屬租戶的數(shù)據(jù),系統(tǒng)默認(rèn)的admin賬號(hào)屬于租戶1,所以admin只能管理租戶1的數(shù)據(jù)(比如用戶管理、角色管理等),沒(méi)有租戶信息約束的表除外
  • 自動(dòng)維護(hù)租戶ID
    不需要手動(dòng)處理,即可實(shí)現(xiàn)通過(guò)租戶ID 過(guò)濾的效果
  • 表中添加 tenant_id 字段
  • 在nacos相應(yīng)服務(wù)的配置文件中維護(hù)這張表即可
    (例如以下微信模塊的配置文件:weixin-admin-dev.yml,其他模塊同理)
#租戶表維護(hù)
base:
  tenant:
    column: tenant_id
    tables:
      - wx_app
      - wx_menu
      - wx_user
      - wx_auto_reply
      - wx_msg
      - wx_mass_msg
三、租戶管理怎么做?
說(shuō)明內(nèi)容
后臺(tái)租戶ID自動(dòng)維護(hù)通過(guò)TenantContextHolderFilter攔截器,獲取到token在redis中的租戶ID 放到theadlocal 中
前端api租戶ID自動(dòng)維護(hù)通過(guò)ThirdSessionInterceptor攔截器,獲取到thirdSession在redis中的租戶ID 放到theadlocal 中
獲取當(dāng)前租戶TenantContextHolder.getTenantId
強(qiáng)制切換租戶TenantContextHolder.setTenantId 注:在增刪改過(guò)程中請(qǐng)勿對(duì) tenant_id字段手動(dòng)賦值,不然報(bào)錯(cuò)
租戶表維護(hù)機(jī)構(gòu)表sys_organ中parent_id為0的機(jī)構(gòu)默認(rèn)為一個(gè)租戶
四、其他知識(shí)點(diǎn)補(bǔ)充 (1)無(wú)租戶ID場(chǎng)景

不需要租戶信息約束的方法,在mapper的方法上添加注解@InterceptorIgnore(tenantLine=“true”)
加上這個(gè)注解后mybatisPlus就不會(huì)在這個(gè)sql自動(dòng)維護(hù)租戶ID了

@InterceptorIgnore(tenantLine="true")
SysUser getByNoTenant(SysUser sysUser);

有些沒(méi)有token或thirdSession但又需要租戶的場(chǎng)景,比如訂單支付回調(diào)是不會(huì)有token和thirdSession的,所以系統(tǒng)不會(huì)自動(dòng)維護(hù);此時(shí)我們可以先通過(guò)回調(diào)傳過(guò)來(lái)的appId,去做無(wú)租戶約束的查詢(xún)獲取到租戶ID,再手動(dòng)維護(hù)進(jìn)去TenantContextHolder.setTenantId

(2)如何新增租戶?

在后臺(tái)【平臺(tái)管理】-【租戶管理】中新建租戶,并配置租戶管理員賬號(hào)
在這里插入圖片描述

  • 【租戶管理】中給租戶管理員角色賦予相應(yīng)權(quán)限
  • 再用剛新增的租戶管理員賬號(hào)登錄后臺(tái)即可
  • 租戶和機(jī)構(gòu)是同一個(gè)表(sys_organ),父級(jí)(parent_id)為0的機(jī)構(gòu)就是一個(gè)租戶,也是當(dāng)前機(jī)構(gòu)的最頂級(jí)
(3)平臺(tái)用戶管理指定租戶

新增租戶后,可以將租戶分配給指定的平臺(tái)用戶,平臺(tái)用戶就可以在后臺(tái)左上角通過(guò)切換租戶來(lái)管理所配的租戶了
【平臺(tái)管理】-【平臺(tái)系統(tǒng)權(quán)限】-【平臺(tái)用戶管理】編輯平臺(tái)用戶分配租戶
在這里插入圖片描述
在這里插入圖片描述

(4)Mybatis Plus中的TenantLineInnerInterceptor

@InterceptorIgnore(tenantLine=“true”)
SysUser getByNoTenant(SysUser sysUser);

如果對(duì)mybatis-plus不了解,請(qǐng)先看官方文檔:https://mybatis.plus/guide/interceptor-tenant-line.html

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前標(biāo)題:商城中多租戶功能邏輯設(shè)計(jì)-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://weahome.cn/article/dipedi.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部