fix(handler): 药品目录按分页契约修正 YPML00001(T-211)

- DrugQuery.PageNo 去 omitempty(pageNo=0 也上送)+ 加 PageSize
- handler Drugs 改 pageNo 必填(parseRequiredInt,缺则返回 400)+ 读 pageSize
- 补缺 pageNo 返回 400 的测试
- 依 docx;YPML00001 未真实联调,pageNo 是否真必填待厂家样本核对

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ila
2026-07-09 22:22:54 +08:00
co-authored by Claude Opus 4.8
parent 4fa1317ac8
commit dc065a9c29
3 changed files with 31 additions and 7 deletions
+17 -4
View File
@@ -56,14 +56,19 @@ func (h *PublicHandler) Drugs(w http.ResponseWriter, r *http.Request) {
return
}
q := r.URL.Query()
pageNo, ok := parseOptionalInt(w, q.Get("pageNo"), "pageNo")
pageNo, ok := parseRequiredInt(w, q.Get("pageNo"), "pageNo") // docx: 药品目录是分页查询,pageNo 必填
if !ok {
return
}
pageSize, ok := parseOptionalInt(w, q.Get("pageSize"), "pageSize")
if !ok {
return
}
_, result, err := h.client.QueryDrugs(r.Context(), osi.DrugQuery{
PageNo: pageNo,
YPMC: q.Get("ypmc"),
PYM: q.Get("pym"),
PageNo: pageNo,
PageSize: pageSize,
YPMC: q.Get("ypmc"),
PYM: q.Get("pym"),
})
writeRawOrError(w, result, err)
}
@@ -82,6 +87,14 @@ func (h *PublicHandler) Orgs(w http.ResponseWriter, r *http.Request) {
writeRawOrError(w, result, err)
}
func parseRequiredInt(w http.ResponseWriter, raw string, name string) (int, bool) {
if raw == "" {
writeJSONError(w, http.StatusBadRequest, name+" is required")
return 0, false
}
return parseOptionalInt(w, raw, name)
}
func parseOptionalInt(w http.ResponseWriter, raw string, name string) (int, bool) {
if raw == "" {
return 0, true