feat: support merchant team roles and permissions

This commit is contained in:
yml2213
2026-08-13 11:41:34 +08:00
parent 6c98fa557e
commit a4791decb0
21 changed files with 969 additions and 201 deletions
+21
View File
@@ -25,6 +25,15 @@ const (
MemberRoleFinance = "finance"
MemberRoleViewer = "viewer"
PermissionMembersManage = "members:manage"
PermissionProductsManage = "products:manage"
PermissionOrdersManage = "orders:manage"
PermissionWalletView = "wallet:view"
PermissionWalletLedger = "wallet:ledger"
PermissionRechargeManage = "recharge:manage"
PermissionAPIManage = "api:manage"
PermissionCallbacksManage = "callbacks:manage"
FeeTypeRate = "rate" // 手续费按百分比
FeeTypeFixed = "fixed" // 手续费按固定金额
@@ -104,6 +113,18 @@ type MerchantMember struct {
User *User `gorm:"foreignKey:UserID" json:"user,omitempty"`
}
// MerchantRole 是商户内可配置的员工角色;负责人仍是系统保留角色。
type MerchantRole struct {
ID uint `gorm:"primarykey" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
MerchantID uint `gorm:"not null;uniqueIndex:idx_merchant_role_code;index" json:"merchant_id"`
Code string `gorm:"size:64;not null;uniqueIndex:idx_merchant_role_code" json:"code"`
Name string `gorm:"size:64;not null" json:"name"`
Permissions string `gorm:"type:text;not null;default:''" json:"permissions"`
Status int `gorm:"not null;default:1" json:"status"`
}
// APIClient 为一个商户的外部系统集成凭证。SecretCiphertext 仅保存加密后的密钥。
type APIClient struct {
ID uint `gorm:"primarykey" json:"id"`