diff --git a/assets/language/en/data.json b/assets/language/en/data.json index be5c94c1..a5223967 100644 --- a/assets/language/en/data.json +++ b/assets/language/en/data.json @@ -39,6 +39,7 @@ "data-state-mismatch": "\"%v\" is not in \"%v\" state", "data-duplicate": "duplicate data", "data-payment-fail": "failed to create payment", + "data-handled-mismatch": "data handled by different user/person", "expired": "is expired", "registered": "is already registered", diff --git a/internal/use-case/main-use-case/consultation/case.go b/internal/use-case/main-use-case/consultation/case.go index 40099e9c..2de98916 100644 --- a/internal/use-case/main-use-case/consultation/case.go +++ b/internal/use-case/main-use-case/consultation/case.go @@ -321,6 +321,16 @@ func Reply(input e.ReplyDto) (*d.Data, error) { return err } + if data.Doctor_Id != nil && data.Doctor_Id != doctor_id { + event.Status = "failed" + event.ErrInfo = pl.ErrorInfo{ + Code: "data-handled-mismatch", + Detail: "data handled by different user/person", + Raw: errors.New("data handled by different user/person"), + } + return pl.SetLogError(&event, input) + } + data.Doctor_Id = doctor_id data.Solution = input.Solution data.RepliedAt = pu.GetTimeNow()