63 lines
3.4 KiB
Go
63 lines
3.4 KiB
Go
// 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}
|
||
}
|