支持动态更新管理员密码和下载次数逻辑完善,优化相关错误处理和配置更新流程
This commit is contained in:
@@ -29,11 +29,12 @@ type ListBatchesResponse struct {
|
||||
}
|
||||
|
||||
type UpdateBatchRequest struct {
|
||||
Remark string `json:"remark"`
|
||||
ExpireType string `json:"expire_type"`
|
||||
ExpireAt *time.Time `json:"expire_at"`
|
||||
MaxDownloads int `json:"max_downloads"`
|
||||
Status string `json:"status"`
|
||||
Remark *string `json:"remark"`
|
||||
ExpireType *string `json:"expire_type"`
|
||||
ExpireAt *time.Time `json:"expire_at"`
|
||||
MaxDownloads *int `json:"max_downloads"`
|
||||
DownloadCount *int `json:"download_count"`
|
||||
Status *string `json:"status"`
|
||||
}
|
||||
|
||||
// ListBatches 获取批次列表
|
||||
@@ -136,15 +137,32 @@ func (h *BatchHandler) UpdateBatch(c *gin.Context) {
|
||||
}
|
||||
|
||||
updates := make(map[string]interface{})
|
||||
updates["remark"] = input.Remark
|
||||
updates["expire_type"] = input.ExpireType
|
||||
updates["expire_at"] = input.ExpireAt
|
||||
updates["max_downloads"] = input.MaxDownloads
|
||||
updates["status"] = input.Status
|
||||
if input.Remark != nil {
|
||||
updates["remark"] = *input.Remark
|
||||
}
|
||||
if input.ExpireType != nil {
|
||||
updates["expire_type"] = *input.ExpireType
|
||||
}
|
||||
if input.ExpireAt != nil {
|
||||
updates["expire_at"] = input.ExpireAt
|
||||
}
|
||||
if input.MaxDownloads != nil {
|
||||
updates["max_downloads"] = *input.MaxDownloads
|
||||
}
|
||||
if input.DownloadCount != nil {
|
||||
updates["download_count"] = *input.DownloadCount
|
||||
}
|
||||
if input.Status != nil {
|
||||
updates["status"] = *input.Status
|
||||
}
|
||||
|
||||
if err := bootstrap.DB.Model(&batch).Updates(updates).Error; err != nil {
|
||||
c.JSON(http.StatusInternalServerError, model.ErrorResponse(model.CodeInternalError, err.Error()))
|
||||
return
|
||||
if len(updates) > 0 {
|
||||
if err := bootstrap.DB.Model(&batch).Updates(updates).Error; err != nil {
|
||||
c.JSON(http.StatusInternalServerError, model.ErrorResponse(model.CodeInternalError, err.Error()))
|
||||
return
|
||||
}
|
||||
// 重新从数据库读取,确保返回的是完整且最新的数据
|
||||
bootstrap.DB.First(&batch, "id = ?", id)
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, model.SuccessResponse(batch))
|
||||
|
||||
Reference in New Issue
Block a user