refactor(会员): 会员档位目录移除无用的 sort_order,统一按 rank 排序
- module-runtime catalog.rs:RuntimeProfileMembershipPlanRecord 与种子目录去掉 sort_order,目录单测改为按 rank 断言 - module-runtime domain.rs/commands.rs:后台改价入参与构建函数去掉 sort_order - spacetime-module profile.rs:profile_membership_plan 表结构去掉排序列,membership_plan_records 改按 rank 升序读取 - shared-contracts runtime.rs:ProfileMembershipPlanResponse 与 AdminUpsertProfileMembershipPlanRequest 移除 sortOrder - spacetime-client:客户端签名、mapper 与 module_bindings 同步移除 sortOrder - api-server runtime_profile.rs:响应构建与测试夹具去掉 sortOrder - admin-web:AdminMembershipPlanPage 移除「排序」输入,档位列表改为按 rank 排序,契约类型同步 - packages/shared:ProfileMembershipPlanRecord 去掉 sortOrder,充值弹层改为直接沿用后端的 rank 顺序 - docs:泥点三池与会员计费后端设计同步目录字段与后台能力说明 Co-authored-by: Junie <junie@jetbrains.com>
This commit is contained in:
@@ -795,7 +795,6 @@ export interface ProfileMembershipPlanAdminResponse {
|
||||
modelAccess: ProfileMembershipModelAccess;
|
||||
/** 并发上限;`128` 表示不设上限。 */
|
||||
concurrentJobLimit: number;
|
||||
sortOrder: number;
|
||||
enabled: boolean;
|
||||
}
|
||||
|
||||
@@ -813,7 +812,6 @@ export interface AdminUpsertProfileMembershipPlanRequest {
|
||||
modelAccess: ProfileMembershipModelAccess;
|
||||
concurrentJobLimit: number;
|
||||
enabled: boolean;
|
||||
sortOrder: number;
|
||||
}
|
||||
|
||||
export interface ProfileWalletConfigAdminResponse {
|
||||
|
||||
@@ -68,7 +68,6 @@ export function AdminMembershipPlanPage({
|
||||
useState<ProfileMembershipModelAccess>('basic');
|
||||
const [concurrentJobLimit, setConcurrentJobLimit] = useState('1');
|
||||
const [enabled, setEnabled] = useState(false);
|
||||
const [sortOrder, setSortOrder] = useState('0');
|
||||
const [rankLabel, setRankLabel] = useState('0');
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [isSaving, setIsSaving] = useState(false);
|
||||
@@ -143,7 +142,6 @@ export function AdminMembershipPlanPage({
|
||||
modelAccess,
|
||||
concurrentJobLimit: normalizedConcurrentJobLimit,
|
||||
enabled,
|
||||
sortOrder: parseInteger(sortOrder),
|
||||
});
|
||||
onResultChange(response);
|
||||
upsertEntry(response);
|
||||
@@ -171,7 +169,6 @@ export function AdminMembershipPlanPage({
|
||||
setModelAccess(entry.modelAccess);
|
||||
setConcurrentJobLimit(String(entry.concurrentJobLimit));
|
||||
setEnabled(entry.enabled);
|
||||
setSortOrder(String(entry.sortOrder));
|
||||
setRankLabel(String(entry.rank));
|
||||
}
|
||||
|
||||
@@ -185,7 +182,6 @@ export function AdminMembershipPlanPage({
|
||||
setModelAccess('basic');
|
||||
setConcurrentJobLimit('1');
|
||||
setEnabled(false);
|
||||
setSortOrder('0');
|
||||
setRankLabel('');
|
||||
}
|
||||
|
||||
@@ -316,13 +312,6 @@ export function AdminMembershipPlanPage({
|
||||
))}
|
||||
</select>
|
||||
</AdminField>
|
||||
<AdminField label="排序">
|
||||
<input
|
||||
inputMode="numeric"
|
||||
value={sortOrder}
|
||||
onChange={(event) => setSortOrder(event.target.value)}
|
||||
/>
|
||||
</AdminField>
|
||||
</AdminFormRow>
|
||||
|
||||
{!isPurchasable ? (
|
||||
@@ -350,7 +339,8 @@ export function AdminMembershipPlanPage({
|
||||
key: 'plan',
|
||||
label: '档位',
|
||||
sortable: true,
|
||||
sortValue: (entry) => entry.sortOrder,
|
||||
sortDescription: '按升级基准 rank',
|
||||
sortValue: (entry) => entry.rank,
|
||||
},
|
||||
{
|
||||
key: 'price',
|
||||
@@ -433,12 +423,7 @@ export function AdminMembershipPlanPage({
|
||||
}
|
||||
|
||||
function sortPlanEntries(entries: ProfileMembershipPlanAdminResponse[]) {
|
||||
return [...entries].sort((left, right) => {
|
||||
if (left.sortOrder !== right.sortOrder) {
|
||||
return left.sortOrder - right.sortOrder;
|
||||
}
|
||||
return left.rank - right.rank;
|
||||
});
|
||||
return [...entries].sort((left, right) => left.rank - right.rank);
|
||||
}
|
||||
|
||||
function formatPlanLimits(entry: ProfileMembershipPlanAdminResponse) {
|
||||
|
||||
Reference in New Issue
Block a user