128 lines
3.2 KiB
Markdown
128 lines
3.2 KiB
Markdown
# 管理后台开发文档 - Part 1(权限 + DTO/VO)
|
||
|
||
> 管理后台复用主应用 Service/Repository 层,新增 Admin Controller,路由前缀 `/api/admin`,通过角色拦截隔离。
|
||
|
||
## 一、角色常量
|
||
|
||
```java
|
||
package com.openclaw.constant;
|
||
|
||
public interface AdminRole {
|
||
String ADMIN = "ROLE_ADMIN"; // 超级管理员
|
||
String OPERATOR = "ROLE_OPERATOR"; // 运营
|
||
String AUDITOR = "ROLE_AUDITOR"; // 内容审核
|
||
String FINANCE = "ROLE_FINANCE"; // 财务
|
||
}
|
||
```
|
||
|
||
```java
|
||
// SecurityConfig.java 追加
|
||
http.authorizeHttpRequests(auth -> auth
|
||
.requestMatchers("/api/admin/**")
|
||
.hasAnyRole("ADMIN","OPERATOR","AUDITOR","FINANCE")
|
||
);
|
||
```
|
||
|
||
## 二、管理端 DTO
|
||
|
||
```java
|
||
// AdminUserQueryDTO.java
|
||
@Data
|
||
public class AdminUserQueryDTO {
|
||
private String keyword; // 手机号/昵称
|
||
private String status; // active / banned
|
||
private Integer pageNum = 1;
|
||
private Integer pageSize = 20;
|
||
}
|
||
|
||
// AdminSkillQueryDTO.java
|
||
@Data
|
||
public class AdminSkillQueryDTO {
|
||
private String keyword;
|
||
private String status; // pending/approved/rejected/offline
|
||
private Long categoryId;
|
||
private Integer pageNum = 1;
|
||
private Integer pageSize = 20;
|
||
}
|
||
|
||
// SkillAuditDTO.java
|
||
@Data
|
||
public class SkillAuditDTO {
|
||
@NotNull private Long skillId;
|
||
@NotBlank private String action; // approve / reject
|
||
private String rejectReason;
|
||
}
|
||
|
||
// AdminOrderQueryDTO.java
|
||
@Data
|
||
public class AdminOrderQueryDTO {
|
||
private String keyword; // 订单号
|
||
private String status;
|
||
private LocalDate startDate;
|
||
private LocalDate endDate;
|
||
private Integer pageNum = 1;
|
||
private Integer pageSize = 20;
|
||
}
|
||
|
||
// AdjustPointsDTO.java
|
||
@Data
|
||
public class AdjustPointsDTO {
|
||
@NotNull private Integer delta; // 正数增加,负数扣减
|
||
private String remark;
|
||
}
|
||
|
||
// RefundProcessDTO.java
|
||
@Data
|
||
public class RefundProcessDTO {
|
||
@NotBlank private String action; // approve / reject
|
||
private String remark;
|
||
}
|
||
```
|
||
|
||
## 三、管理端 VO
|
||
|
||
```java
|
||
// AdminUserVO.java
|
||
@Data
|
||
public class AdminUserVO {
|
||
private Long id;
|
||
private String phone, nickname, avatarUrl, status;
|
||
private Integer totalPoints, frozenPoints;
|
||
private LocalDateTime createdAt, lastLoginAt;
|
||
}
|
||
|
||
// AdminSkillVO.java
|
||
@Data
|
||
public class AdminSkillVO {
|
||
private Long id;
|
||
private String name, coverImageUrl, status, rejectReason;
|
||
private BigDecimal price;
|
||
private Boolean isFree;
|
||
private Long creatorId;
|
||
private LocalDateTime createdAt, auditedAt;
|
||
}
|
||
|
||
// AdminOrderVO.java
|
||
@Data
|
||
public class AdminOrderVO {
|
||
private Long id;
|
||
private String orderNo, status, paymentMethod;
|
||
private Long userId;
|
||
private BigDecimal totalAmount, cashAmount;
|
||
private Integer pointsUsed;
|
||
private LocalDateTime createdAt, paidAt;
|
||
}
|
||
|
||
// DashboardVO.java
|
||
@Data
|
||
public class DashboardVO {
|
||
private Long totalUsers, todayNewUsers, activeUsersLast7d;
|
||
private BigDecimal totalRevenue, revenueToday;
|
||
private Long totalOrders, ordersToday;
|
||
private Long totalSkills, pendingAuditSkills, totalDownloads;
|
||
}
|
||
```
|
||
|
||
---
|
||
**文档版本**:v1.0 | **创建日期**:2026-03-16
|