feat(server): 用户管理与变更历史接口;修复 result_revisions.parent_id 从未写入
This commit is contained in:
1 parent
f3813171d3
commit
72462792ec
39 files changed
+10001
-28
No files matched your search
@@ -286,6 +286,80 @@ type eventSettingsStandings struct {
|
||||
ShowIndividualBoard bool `json:"showIndividualBoard"`
|
||||
}
|
||||
|
||||
// ---------- 用户管理 ----------
|
||||
|
||||
type userListItemDTO struct {
|
||||
ID int64 `json:"id"`
|
||||
Username string `json:"username"`
|
||||
DisplayName string `json:"displayName"`
|
||||
Role string `json:"role"`
|
||||
Active bool `json:"active"`
|
||||
MustChangePassword bool `json:"mustChangePassword"`
|
||||
LastLoginAt *string `json:"lastLoginAt"`
|
||||
}
|
||||
|
||||
// resetPasswordResultDTO 里的 password 是唯一一次明文,落库只存哈希。
|
||||
type resetPasswordResultDTO struct {
|
||||
ID int64 `json:"id"`
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
Generated bool `json:"generated"`
|
||||
MustChangePassword bool `json:"mustChangePassword"`
|
||||
}
|
||||
|
||||
// ---------- 变更历史 ----------
|
||||
|
||||
type revisionPageDTO struct {
|
||||
Items []revisionListItemDTO `json:"items"`
|
||||
Total int `json:"total"`
|
||||
Limit int `json:"limit"`
|
||||
Offset int `json:"offset"`
|
||||
}
|
||||
|
||||
type revisionListItemDTO struct {
|
||||
ID int64 `json:"id"`
|
||||
ParentID *int64 `json:"parentId"`
|
||||
EventID int64 `json:"eventId"`
|
||||
EventName string `json:"eventName"`
|
||||
Action string `json:"action"`
|
||||
ActorID *int64 `json:"actorId"`
|
||||
ActorName string `json:"actorName"`
|
||||
Message *string `json:"message"`
|
||||
CreatedAt string `json:"createdAt"`
|
||||
ChangedCount int `json:"changedCount"`
|
||||
}
|
||||
|
||||
type revisionDetailDTO struct {
|
||||
revisionListItemDTO
|
||||
Snapshot []resultDTO `json:"snapshot"`
|
||||
Diff revisionDiffDTO `json:"diff"`
|
||||
}
|
||||
|
||||
type revisionDiffDTO struct {
|
||||
Results []revisionResultChangeDTO `json:"results"`
|
||||
Teams []revisionTeamDeltaDTO `json:"teams"`
|
||||
}
|
||||
|
||||
type revisionResultChangeDTO struct {
|
||||
ResultID int64 `json:"resultId"`
|
||||
EntryID int64 `json:"entryId"`
|
||||
TeamID *int64 `json:"teamId"`
|
||||
Change string `json:"change"`
|
||||
Fields []string `json:"fields,omitempty"`
|
||||
Before *resultDTO `json:"before"`
|
||||
After *resultDTO `json:"after"`
|
||||
}
|
||||
|
||||
type revisionTeamDeltaDTO struct {
|
||||
TeamID int64 `json:"teamId"`
|
||||
TeamCode string `json:"teamCode"`
|
||||
TeamName string `json:"teamName"`
|
||||
PointsBefore float64 `json:"pointsBefore"`
|
||||
PointsAfter float64 `json:"pointsAfter"`
|
||||
PointsDelta float64 `json:"pointsDelta"`
|
||||
ChangedResults int `json:"changedResults"`
|
||||
}
|
||||
|
||||
// ---------- domain → DTO ----------
|
||||
|
||||
func standingRowsDTO(rows []domain.StandingsRow, teams map[int64]teamDTO) []standingRowDTO {
|
||||
|
||||
Reference in new issue
Block a user