105 lines
4.0 KiB
Python
105 lines
4.0 KiB
Python
"""模块:CRB 后台管理
|
||
|
||
注册 6 个 MC 插件共享表(managed=False,只读浏览)与 4 个 Django 独有表
|
||
(managed=True,可增删改查)。MC 插件表通过 ``readonly_fields`` 防止误改。"""
|
||
|
||
from django.contrib import admin
|
||
from .models import (
|
||
CmeCurrencies, CmeBalances, CmeTransactions, CmePaymentRequests,
|
||
CmePlayerSettings, CmeExchangeRates,
|
||
CmeStoreValue, CmeWalletGVSDSMapping, Enterprise, EnterpriseUser,
|
||
)
|
||
|
||
|
||
class MCPluginReadOnlyAdminMixin:
|
||
"""MC 插件共享表只读 Mixin——禁止通过 admin 增删改,保护 MC 插件数据。"""
|
||
|
||
def has_add_permission(self, request, obj=None):
|
||
return False
|
||
|
||
def has_change_permission(self, request, obj=None):
|
||
return False
|
||
|
||
def has_delete_permission(self, request, obj=None):
|
||
return False
|
||
|
||
|
||
@admin.register(CmeCurrencies)
|
||
class CmeCurrenciesAdmin(MCPluginReadOnlyAdminMixin, admin.ModelAdmin):
|
||
"""CME 币种管理(只读)"""
|
||
list_display = ('CurrencyID', 'CurrencyName', 'CurrencySymbol', 'Tradable', 'CreatedAt')
|
||
search_fields = ('CurrencyName', 'CurrencySymbol')
|
||
list_filter = ('Tradable',)
|
||
|
||
|
||
@admin.register(CmeBalances)
|
||
class CmeBalancesAdmin(MCPluginReadOnlyAdminMixin, admin.ModelAdmin):
|
||
"""CME 钱包余额管理(只读)"""
|
||
list_display = ('BalanceID', 'UserUUID', 'Currency', 'Balance', 'UpdatedAt')
|
||
search_fields = ('UserUUID',)
|
||
list_filter = ('Currency',)
|
||
|
||
|
||
@admin.register(CmeTransactions)
|
||
class CmeTransactionsAdmin(MCPluginReadOnlyAdminMixin, admin.ModelAdmin):
|
||
"""CME 交易流水管理(只读)"""
|
||
list_display = ('TransactionID', 'FromUUID', 'ToUUID', 'Currency', 'Amount', 'TransactionType', 'CreatedAt')
|
||
search_fields = ('FromUUID', 'ToUUID', 'Description')
|
||
list_filter = ('TransactionType', 'Currency')
|
||
|
||
|
||
@admin.register(CmePaymentRequests)
|
||
class CmePaymentRequestsAdmin(MCPluginReadOnlyAdminMixin, admin.ModelAdmin):
|
||
"""CME 付款请求管理(只读)"""
|
||
list_display = ('RequestID', 'FromUUID', 'ToUUID', 'Currency', 'Amount', 'Status', 'CreatedAt')
|
||
search_fields = ('FromUUID', 'ToUUID')
|
||
list_filter = ('Status', 'Currency')
|
||
|
||
|
||
@admin.register(CmePlayerSettings)
|
||
class CmePlayerSettingsAdmin(MCPluginReadOnlyAdminMixin, admin.ModelAdmin):
|
||
"""CME 玩家设置管理(只读)"""
|
||
list_display = ('SettingID', 'UserUUID', 'Language', 'UpdatedAt')
|
||
search_fields = ('UserUUID',)
|
||
list_filter = ('Language',)
|
||
|
||
|
||
@admin.register(CmeExchangeRates)
|
||
class CmeExchangeRatesAdmin(MCPluginReadOnlyAdminMixin, admin.ModelAdmin):
|
||
"""CME 汇率管理(只读)"""
|
||
list_display = ('RateID', 'CurrencyName', 'Rate', 'UpdatedAt')
|
||
search_fields = ('CurrencyName',)
|
||
|
||
|
||
@admin.register(CmeStoreValue)
|
||
class CmeStoreValueAdmin(admin.ModelAdmin):
|
||
"""储值管理(可读写,GVSDS 业务表)"""
|
||
list_display = ('StoreValueUUID', 'PlayerName', 'StoreValueAmount', 'StoreValueType',
|
||
'StoreValueDayInterestRate', 'StoreValueExpirationGameDate',
|
||
'StoreValueCreateDateTime')
|
||
list_filter = ('StoreValueType',)
|
||
search_fields = ('PlayerName', 'UserUUID', 'PlayerUUID')
|
||
|
||
|
||
@admin.register(CmeWalletGVSDSMapping)
|
||
class CmeWalletGVSDSMappingAdmin(admin.ModelAdmin):
|
||
"""GVSDS↔MC 玩家映射管理(可读写,GVSDS 业务表)"""
|
||
list_display = ('MappingID', 'UserUUID', 'PlayerUUID')
|
||
search_fields = ('UserUUID', 'PlayerUUID')
|
||
|
||
|
||
@admin.register(Enterprise)
|
||
class EnterpriseAdmin(admin.ModelAdmin):
|
||
"""企业管理(可读写,GVSDS 业务表)"""
|
||
list_display = ('EnterpriseName', 'EnterpriseType', 'EnterpriseStatus', 'EnterpriseCreateTime')
|
||
search_fields = ('EnterpriseName', 'EnterpriseUUID')
|
||
list_filter = ('EnterpriseStatus', 'EnterpriseType')
|
||
|
||
|
||
@admin.register(EnterpriseUser)
|
||
class EnterpriseUserAdmin(admin.ModelAdmin):
|
||
"""企业用户管理(可读写,GVSDS 业务表)"""
|
||
list_display = ('EnterpriseSMTMUUID', 'EnterpriseUUID', 'UserUUID', 'EnterpriseUserType')
|
||
list_filter = ('EnterpriseUserType',)
|
||
search_fields = ('UserUUID',)
|