完善配送端资源搜索与资质导航
This commit is contained in:
62
backend/api/internal/logic/delivery/resource_search.go
Normal file
62
backend/api/internal/logic/delivery/resource_search.go
Normal 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}
|
||||
}
|
||||
Reference in New Issue
Block a user