// 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} }