fix(api): 强制要求计划ID过滤并调整分销商查询逻辑
- 在导出接口增加 plan_id_eq 作为必填过滤字段验证 - 修改分销商列表接口,取消按 creator 过滤,返回所有分销商 - 优化分销商查询语句,支持关键字搜索 ID 和名称 - 在前端状态管理中,为计划选择字段添加必填校验规则
This commit is contained in:
parent
993d91849c
commit
55058abf0d
|
|
@ -216,6 +216,11 @@ func (a *ExportsAPI) create(w http.ResponseWriter, r *http.Request) {
|
||||||
fail(w, r, http.StatusBadRequest, "缺少时间过滤:必须提供 create_time_between")
|
fail(w, r, http.StatusBadRequest, "缺少时间过滤:必须提供 create_time_between")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
// 验证 plan_id_eq 为必选字段
|
||||||
|
if v, ok := p.Filters["plan_id_eq"]; !ok || v == nil || v == "" || v == 0 {
|
||||||
|
fail(w, r, http.StatusBadRequest, "plan_id_eq 为必选字段")
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
filtered := make([]string, 0, len(fs))
|
filtered := make([]string, 0, len(fs))
|
||||||
tv := 0
|
tv := 0
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ func ResellersHandler(resellerDB *sql.DB) http.Handler {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *ResellersAPI) list(w http.ResponseWriter, r *http.Request) {
|
func (a *ResellersAPI) list(w http.ResponseWriter, r *http.Request) {
|
||||||
creatorsParam := r.URL.Query().Get("creator")
|
|
||||||
q := r.URL.Query().Get("q")
|
q := r.URL.Query().Get("q")
|
||||||
limitStr := r.URL.Query().Get("limit")
|
limitStr := r.URL.Query().Get("limit")
|
||||||
limit := 2000
|
limit := 2000
|
||||||
|
|
@ -33,30 +32,11 @@ func (a *ResellersAPI) list(w http.ResponseWriter, r *http.Request) {
|
||||||
limit = n
|
limit = n
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
creators := []string{}
|
// 不再过滤 creator,返回所有分销商
|
||||||
for _, s := range strings.Split(creatorsParam, ",") {
|
sql1 := "SELECT id, COALESCE(name,'') AS name FROM reseller"
|
||||||
s = strings.TrimSpace(s)
|
|
||||||
if s != "" {
|
|
||||||
creators = append(creators, s)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if len(creators) == 0 {
|
|
||||||
ok(w, r, []map[string]interface{}{})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ph := strings.Repeat("?,", len(creators))
|
|
||||||
ph = strings.TrimSuffix(ph, ",")
|
|
||||||
sql1 := "SELECT id, COALESCE(name,'') AS name FROM reseller WHERE (creator IN (" + ph + ") OR salesman_id IN (" + ph + "))"
|
|
||||||
args := []interface{}{}
|
args := []interface{}{}
|
||||||
for _, c := range creators {
|
|
||||||
args = append(args, c)
|
|
||||||
}
|
|
||||||
// salesman_id IN 需要再传一次参数
|
|
||||||
for _, c := range creators {
|
|
||||||
args = append(args, c)
|
|
||||||
}
|
|
||||||
if q != "" {
|
if q != "" {
|
||||||
sql1 += " AND (CAST(id AS CHAR) LIKE ? OR name LIKE ?)"
|
sql1 += " WHERE CAST(id AS CHAR) LIKE ? OR name LIKE ?"
|
||||||
like := "%" + q + "%"
|
like := "%" + q + "%"
|
||||||
args = append(args, like, like)
|
args = append(args, like, like)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -245,7 +245,8 @@ const ValidationRules = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
trigger: 'change'
|
trigger: 'change'
|
||||||
}]
|
}],
|
||||||
|
planId: [{ required: true, message: '请选择计划', trigger: 'change' }]
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue