Исправление сохранения reward_policy для задач-желаний
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m7s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m7s
This commit is contained in:
@@ -7195,6 +7195,9 @@ func (a *App) getTaskDetailHandler(w http.ResponseWriter, r *http.Request) {
|
||||
configIDInt := int(configID.Int64)
|
||||
task.ConfigID = &configIDInt
|
||||
}
|
||||
if rewardPolicy.Valid {
|
||||
task.RewardPolicy = &rewardPolicy.String
|
||||
}
|
||||
|
||||
// Получаем награды основной задачи
|
||||
rewards := make([]Reward, 0)
|
||||
@@ -7932,16 +7935,19 @@ func (a *App) updateTaskHandler(w http.ResponseWriter, r *http.Request) {
|
||||
// Подготовка reward_policy: если задача связана с желанием и политика не указана, используем "personal" по умолчанию
|
||||
var rewardPolicyValue interface{}
|
||||
if newWishlistID != nil {
|
||||
// Если reward_policy явно указан в запросе, используем его
|
||||
if req.RewardPolicy != nil && (*req.RewardPolicy == "personal" || *req.RewardPolicy == "general") {
|
||||
rewardPolicyValue = *req.RewardPolicy
|
||||
} else {
|
||||
// Если задача уже была привязана, сохраняем текущую политику, иначе используем "personal"
|
||||
} else if req.RewardPolicy == nil {
|
||||
// Если reward_policy не указан в запросе (undefined), сохраняем текущее значение из БД
|
||||
// Это важно для случаев, когда обновляются другие поля, но reward_policy не должен меняться
|
||||
var currentRewardPolicy sql.NullString
|
||||
err = a.DB.QueryRow("SELECT reward_policy FROM tasks WHERE id = $1", taskID).Scan(¤tRewardPolicy)
|
||||
if err == nil && currentRewardPolicy.Valid {
|
||||
rewardPolicyValue = currentRewardPolicy.String
|
||||
} else {
|
||||
rewardPolicyValue = "personal" // Значение по умолчанию для задач, связанных с желаниями
|
||||
// Если в БД нет значения, используем "personal" по умолчанию
|
||||
rewardPolicyValue = "personal"
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user