mirror of
https://gitee.com/dromara/dax-pay
synced 2026-08-09 14:36:00 +08:00
refactor(role): 开源版内置角色对齐 admin/merchant 并整理登录校验
新增 RoleCodeEnum.ADMIN_ADMIN 与多语言文案;登录状态校验迁至 common/handler;清空已应用的 update-datas 升级脚本。
This commit is contained in:
@@ -1,116 +0,0 @@
|
||||
-- ----------------------------
|
||||
-- 数据升级:菜单展示与 IA 调整 + i18n 改造数据回填
|
||||
-- 执行顺序:update-tables.sql → update-datas.sql
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- 管理端菜单 IA:支付管理扁平 + 微信域名验证迁系统配置
|
||||
-- ----------------------------
|
||||
|
||||
-- 支付产品配置 → 通道产品配置,升为支付管理二级
|
||||
UPDATE "public"."iam_perm_menu"
|
||||
SET "pid" = 4,
|
||||
"sort_no" = 2,
|
||||
"last_modified_time" = NOW()
|
||||
WHERE "id" = 40105;
|
||||
|
||||
-- 微信域名验证:支付配置 → 系统配置
|
||||
UPDATE "public"."iam_perm_menu"
|
||||
SET "pid" = 304,
|
||||
"sort_no" = 7,
|
||||
"last_modified_time" = NOW()
|
||||
WHERE "id" = 40507;
|
||||
|
||||
-- 支付配置 catalog 已无可见子菜单,隐藏
|
||||
UPDATE "public"."iam_perm_menu"
|
||||
SET "hidden" = true,
|
||||
"last_modified_time" = NOW()
|
||||
WHERE "id" = 405;
|
||||
|
||||
-- 一级菜单顺序
|
||||
UPDATE "public"."iam_perm_menu"
|
||||
SET "sort_no" = 3.5,
|
||||
"last_modified_time" = NOW()
|
||||
WHERE "id" = 404;
|
||||
|
||||
UPDATE "public"."iam_perm_menu"
|
||||
SET "sort_no" = 4,
|
||||
"last_modified_time" = NOW()
|
||||
WHERE "id" = 6;
|
||||
|
||||
-- 系统配置排序
|
||||
UPDATE "public"."iam_perm_menu"
|
||||
SET "sort_no" = 1,
|
||||
"last_modified_time" = NOW()
|
||||
WHERE "id" = 30402;
|
||||
|
||||
UPDATE "public"."iam_perm_menu"
|
||||
SET "sort_no" = 2,
|
||||
"last_modified_time" = NOW()
|
||||
WHERE "id" = 30401;
|
||||
|
||||
-- ----------------------------
|
||||
-- 商户管理:全局「通道商户」侧栏菜单(占位)
|
||||
-- ----------------------------
|
||||
INSERT INTO "public"."iam_perm_menu" (
|
||||
"id", "pid", "menu_code", "client_code", "name",
|
||||
"i18n_key", "icon",
|
||||
"hidden", "hide_children_menu", "component", "path", "redirect",
|
||||
"sort_no", "root", "keep_alive", "affix_tab",
|
||||
"creator", "last_modifier", "version", "deleted",
|
||||
"menu_type", "active_icon", "badge", "badge_type", "badge_variants",
|
||||
"iframe_src", "link", "create_time", "last_modified_time"
|
||||
)
|
||||
SELECT
|
||||
40402,
|
||||
404,
|
||||
'channel:merchant',
|
||||
'admin',
|
||||
'ChannelMerchantGlobal',
|
||||
'menu.payment.merchant.channelMerchant.global',
|
||||
'lucide:repeat',
|
||||
false,
|
||||
false,
|
||||
'/_core/fallback/coming-soon',
|
||||
'/payment/merchant/channel-merchants',
|
||||
NULL,
|
||||
2,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
false,
|
||||
'menu',
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NOW(),
|
||||
NOW()
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM "public"."iam_perm_menu" WHERE "id" = 40402
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- i18n 改造:批量回填 i18n_key
|
||||
-- 规则:角色 role.{code},字典项 dict.{dictCode}.{itemCode}
|
||||
-- 语言包翻译在前端 locales/langs/{locale}/dict.json 中维护
|
||||
-- ============================================================
|
||||
|
||||
-- 角色表:按 code 生成 i18n_key
|
||||
UPDATE iam_role
|
||||
SET i18n_key = 'role.' || code,
|
||||
last_modified_time = NOW()
|
||||
WHERE i18n_key IS NULL
|
||||
AND deleted = false;
|
||||
|
||||
-- 字典项表:按 dictCode.code 生成 i18n_key
|
||||
UPDATE system_dict_item
|
||||
SET i18n_key = 'dict.' || dict_code || '.' || code,
|
||||
last_modified_time = NOW()
|
||||
WHERE i18n_key IS NULL
|
||||
AND deleted = false;
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
/// # 支付通道 OAuth 认证(Channel OAuth)
|
||||
///
|
||||
/// **本包不是 IAM 登录**。职责仅为支付场景获取用户标识(微信 openId / 支付宝 userId 等)。
|
||||
/// 与 [cn.daxpay.open.platform.capability.auth](Sa-Token 登录)、社交登录(capability-social) 无关。
|
||||
///
|
||||
/// ## 类职责
|
||||
/// | 类 | 职责 |
|
||||
/// |----|------|
|
||||
/// | [AuthSession] | H5 OAuth 重定向的会话上下文 POJO(product/channelMchNo/source/queryCode 等) |
|
||||
/// | [AuthSessionStore] | Redis: authToken→session、queryCode→AuthResult, TTL 5 分钟 |
|
||||
/// | [ChannelAuthService] | **商户级**: 按支付产品路由 [cn.daxpay.open.payment.strategy.auth.AbsChannelAuthStrategy] |
|
||||
/// | [PlatformAuthService] | **平台级**: 平台支付宝 / 系统公众号 / 抖音 H5 配置驱动的 OAuth |
|
||||
/// | [ChannelAuthFacade] | 统一分发入口(generate / auth), Controller 只做协议适配 |
|
||||
///
|
||||
/// ## 时序
|
||||
/// 1. generateAuthUrl → 写 session(authToken) + WAITING(queryCode) → 返回 OAuth URL
|
||||
/// 2. 用户授权, 第三方回调 H5 固定路径(`/auth/wechat|alipay|douyin`), state=authToken
|
||||
/// 3. H5 调 auth → Facade 按 source 分流 → code 换 openId → 写轮询结果 → 删除 session
|
||||
/// 4. (调试) 管理端用 queryCode 轮询 AuthResult
|
||||
///
|
||||
/// ## 平台级 vs 商户级
|
||||
/// - 平台级: 不读商户通道配置, session.source = platform_alipay / platform_mp / platform_douyin
|
||||
/// - 商户级: 按 product + channelMchNo/capability 定位通道应用, source 为空
|
||||
package cn.daxpay.open.payment.auth;
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.daxpay.open.payment.common.auth;
|
||||
package cn.daxpay.open.payment.common.handler;
|
||||
|
||||
import cn.daxpay.open.platform.core.enums.client.ClientEnum;
|
||||
import cn.daxpay.open.platform.core.enums.merchant.MerchantStatusEnum;
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"admin_admin": "Operations Admin",
|
||||
"merchant_admin": "Merchant Admin"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"admin_admin": "Admin Operasi",
|
||||
"merchant_admin": "Admin Pedagang"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"admin_admin": "運営管理者",
|
||||
"merchant_admin": "販売者管理者"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"admin_admin": "운영 관리자",
|
||||
"merchant_admin": "판매자 관리자"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"merchant_admin": "Admin saudagar"
|
||||
"admin_admin": "Pentadbir Operasi",
|
||||
"merchant_admin": "Admin Saudagar"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"admin_admin": "ผู้ดูแลระบบปฏิบัติการ",
|
||||
"merchant_admin": "ผู้ดูแลระบบร้านค้า"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"admin_admin": "Quản trị vận hành",
|
||||
"merchant_admin": "Quản trị viên người bán"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"admin_admin": "运营管理员",
|
||||
"merchant_admin": "商户管理员"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"merchant_admin": "商户管理員"
|
||||
"admin_admin": "運營管理員",
|
||||
"merchant_admin": "商戶管理員"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"admin_admin": "運營管理員",
|
||||
"merchant_admin": "商戶管理員"
|
||||
}
|
||||
|
||||
@@ -6,10 +6,13 @@ import lombok.RequiredArgsConstructor;
|
||||
|
||||
/// # 角色编码枚举
|
||||
///
|
||||
/// 开源版身份域仅 admin / merchant;内置角色与之对称。
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum RoleCodeEnum implements I18nSupport {
|
||||
|
||||
/// 运营管理员
|
||||
ADMIN_ADMIN("admin_admin"),
|
||||
/// 商户管理员
|
||||
MERCHANT_ADMIN("merchant_admin");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user