完善配送端资源搜索与资质导航

This commit is contained in:
czl231
2026-08-22 23:24:12 +08:00
parent 5d4bd61672
commit 4334719051
22 changed files with 432 additions and 58 deletions

View File

@@ -0,0 +1,62 @@
// Package delivery 定义配送点管理端公开的资源搜索契约。
// 版本v1.0.0
package delivery
import (
"git.apinb.com/heqiapp/platforms/backend/api/internal/logic/common"
"git.apinb.com/heqiapp/platforms/backend/api/internal/models"
)
// deliveryResourceSearchFields 只公开页面能够解释且服务端确实执行的搜索字段。
var deliveryResourceSearchFields = map[string][]common.KeywordSearchField{
"staff_account": {searchText("username")},
"staff_credential": {searchText("credential_type"), searchText("credential_no")},
"user_account": {searchText("username")},
"gasorder_contract": {searchText("contract_no"), searchText("title")},
"gasorder_contract_product": {searchText("product_code"), searchText("product_type_name")},
"gasorder_contract_revision": {searchEnum("action", searchOption("activate", "启用"), searchOption("renew", "续签"), searchOption("terminate", "终止"))},
"product_info": {searchText("code"), searchText("name")},
"gasorder_basic": {searchText("request_no"), searchEnum("creator_type",
searchOption("user", "用户"), searchOption("staff", "工作人员"),
searchOption("delivery", "配送点"), searchOption("gas", "气站"))},
"payment_order": {searchText("payment_no"), searchText("request_no"), searchEnum("channel",
searchOption("wechat", "微信"), searchOption("alipay", "支付宝"), searchOption("mock", "模拟支付"))},
"wallet_record": {searchText("record_no"), searchText("request_no")},
"payment_refund": {searchText("refund_no"), searchText("request_no")},
"wallet_recharge": {searchText("record_no"), searchText("request_no")},
"wallet_apply_cash": {searchText("cash_no"), searchText("request_no"), searchEnum("channel",
searchOption("bank", "银行卡"), searchOption("alipay", "支付宝"), searchOption("wechat", "微信"))},
"fin_settlement": {searchText("settlement_no")},
}
// init 只注册平台总后台尚未注册的模型;共享模型继续复用全局策略。
func init() {
common.RegisterKeywordSearchPolicy(&models.GasorderContractProduct{}, deliveryResourceSearchFields["gasorder_contract_product"])
common.RegisterKeywordSearchPolicy(&models.GasorderContractRevision{}, deliveryResourceSearchFields["gasorder_contract_revision"])
common.RegisterKeywordSearchPolicy(&models.PaymentOrder{}, deliveryResourceSearchFields["payment_order"])
common.RegisterKeywordSearchPolicy(&models.WalletRecord{}, deliveryResourceSearchFields["wallet_record"])
}
// resourceSearchFields 返回搜索契约副本,防止调用方修改全局定义。
func resourceSearchFields(name string) []common.KeywordSearchField {
fields := deliveryResourceSearchFields[name]
result := make([]common.KeywordSearchField, 0, len(fields))
for _, field := range fields {
copied := field
copied.Values = append([]common.KeywordSearchValue(nil), field.Values...)
result = append(result, copied)
}
return result
}
func searchText(key string) common.KeywordSearchField {
return common.KeywordSearchField{Key: key, Kind: common.KeywordSearchText}
}
func searchEnum(key string, values ...common.KeywordSearchValue) common.KeywordSearchField {
return common.KeywordSearchField{Key: key, Kind: common.KeywordSearchEnum, Values: values}
}
func searchOption(value, label string) common.KeywordSearchValue {
return common.KeywordSearchValue{Value: value, Label: label}
}