(stmt *Statement)
| 140 | } |
| 141 | |
| 142 | func (sd SoftDeleteDeleteClause) ModifyStatement(stmt *Statement) { |
| 143 | if stmt.SQL.Len() == 0 && !stmt.Statement.Unscoped { |
| 144 | curTime := stmt.DB.NowFunc() |
| 145 | stmt.AddClause(clause.Set{{Column: clause.Column{Name: sd.Field.DBName}, Value: curTime}}) |
| 146 | stmt.SetColumn(sd.Field.DBName, curTime, true) |
| 147 | |
| 148 | if stmt.Schema != nil { |
| 149 | _, queryValues := schema.GetIdentityFieldValuesMap(stmt.Context, stmt.ReflectValue, stmt.Schema.PrimaryFields) |
| 150 | column, values := schema.ToQueryValues(stmt.Table, stmt.Schema.PrimaryFieldDBNames, queryValues) |
| 151 | |
| 152 | if len(values) > 0 { |
| 153 | stmt.AddClause(clause.Where{Exprs: []clause.Expression{clause.IN{Column: column, Values: values}}}) |
| 154 | } |
| 155 | |
| 156 | if stmt.ReflectValue.CanAddr() && stmt.Dest != stmt.Model && stmt.Model != nil { |
| 157 | _, queryValues = schema.GetIdentityFieldValuesMap(stmt.Context, reflect.ValueOf(stmt.Model), stmt.Schema.PrimaryFields) |
| 158 | column, values = schema.ToQueryValues(stmt.Table, stmt.Schema.PrimaryFieldDBNames, queryValues) |
| 159 | |
| 160 | if len(values) > 0 { |
| 161 | stmt.AddClause(clause.Where{Exprs: []clause.Expression{clause.IN{Column: column, Values: values}}}) |
| 162 | } |
| 163 | } |
| 164 | } |
| 165 | |
| 166 | SoftDeleteQueryClause(sd).ModifyStatement(stmt) |
| 167 | stmt.AddClauseIfNotExists(clause.Update{}) |
| 168 | stmt.Build(stmt.DB.Callback().Update().Clauses...) |
| 169 | } |
| 170 | } |
nothing calls this directly
no test coverage detected