diff --git a/service/maintenance_fee.go b/service/maintenance_fee.go index 9fc3eb7..22ea876 100644 --- a/service/maintenance_fee.go +++ b/service/maintenance_fee.go @@ -131,14 +131,22 @@ func (_MaintenanceFeeService) EnsureFeeBelongs(uid, mid string) (bool, error) { ctx, cancel := global.TimeoutContext() defer cancel() - exists, err := global.DB.NewSelect().Model((*model.Park)(nil)). + parks := make([]model.Park, 0) + err := global.DB.NewSelect().Model(&parks). Relation("MaintenanceFees"). Where("p.user_id = ?", uid). - Where("m.id = ?", mid). - Exists(ctx) + Scan(ctx) if err != nil { return false, err } + exists := lo.Reduce(parks, func(acc bool, elem model.Park, _ int) bool { + for _, e := range elem.MaintenanceFees { + if e.Id == mid { + return acc || true + } + } + return acc || false + }, false) if !exists { return false, exceptions.NewNotFoundError("指定维护费所属园区未找到。") }