package api import ( "database/sql" "net/http" "sort" ) func MetadataHandler(meta, marketing, ymt *sql.DB) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ds := r.URL.Query().Get("datasource") ot := r.URL.Query().Get("order_type") var tables []tableInfo if ds == "ymt" { tables = ymtMetadataTables() } else { tables = marketingMetadataTables() } // filter hidden fields for i := range tables { var visible []fieldInfo for _, f := range tables[i].Fields { if f.Hidden { continue } // 营销系统:recharge_time、card_code、account字段只在直充类型(type=1)时才显示 if ds == "marketing" && ot != "1" { if f.Key == "order.recharge_time" || f.Key == "order.card_code" || f.Key == "order.account" { continue } } visible = append(visible, f) } tables[i].Fields = visible } sort.Slice(tables, func(i, j int) bool { return tables[i].Table < tables[j].Table }) rec := recommendedDefaults(ds, ot) ok(w, r, map[string]interface{}{"datasource": ds, "tables": tables, "recommended": rec}) }) } type tableInfo struct { Table string `json:"table"` Label string `json:"label"` Fields []fieldInfo `json:"fields"` } type fieldInfo struct { Key string `json:"key"` Field string `json:"field"` Label string `json:"label"` Hidden bool `json:"hidden"` } // marketingMetadataTables 静态列出 Marketing 库的所有表字段(hidden 默认 false) func marketingMetadataTables() []tableInfo { return []tableInfo{ { Table: "code_batch", Label: tableLabel("code_batch"), Fields: []fieldInfo{ {Key: "code_batch.id", Field: "id", Label: "兑换码-批次ID", Hidden: true}, {Key: "code_batch.creator", Field: "creator", Label: "创建者", Hidden: true}, {Key: "code_batch.key_batch_id", Field: "key_batch_id", Label: "KEY批次编号,外键", Hidden: true}, {Key: "code_batch.status", Field: "status", Label: "状态", Hidden: true}, {Key: "code_batch.title", Field: "title", Label: "兑换批次标题,名称", Hidden: false}, {Key: "code_batch.plan_title", Field: "plan_title", Label: "计划名称(冗余)", Hidden: true}, {Key: "code_batch.describe", Field: "describe", Label: "兑换说明", Hidden: true}, {Key: "code_batch.range", Field: "range", Label: "使用范围描述", Hidden: true}, {Key: "code_batch.begin_time", Field: "begin_time", Label: "开始时间", Hidden: true}, {Key: "code_batch.end_time", Field: "end_time", Label: "结束时间", Hidden: true}, {Key: "code_batch.quantity", Field: "quantity", Label: "兑换码数量", Hidden: true}, {Key: "code_batch.restrict", Field: "restrict", Label: "绑定数量", Hidden: false}, {Key: "code_batch.usage", Field: "usage", Label: "已使用数量", Hidden: true}, {Key: "code_batch.stock", Field: "stock", Label: "剩余库存信息", Hidden: true}, {Key: "code_batch.invalid", Field: "invalid", Label: "作废数量", Hidden: true}, {Key: "code_batch.product", Field: "product", Label: "产品信息(冗余)", Hidden: true}, {Key: "code_batch.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "code_batch.update_time", Field: "update_time", Label: "修改时间", Hidden: true}, {Key: "code_batch.delete_time", Field: "delete_time", Label: "删除时间", Hidden: true}, {Key: "code_batch.approval_status", Field: "approval_status", Label: "审批状态", Hidden: true}, {Key: "code_batch.approval_id", Field: "approval_id", Label: "审批ID", Hidden: true}, {Key: "code_batch.copy_count", Field: "copy_count", Label: "复制次数", Hidden: true}, {Key: "code_batch.discard_time", Field: "discard_time", Label: "作废时间", Hidden: true}, {Key: "code_batch.type", Field: "type", Label: "数据类型 0:兑换码 1:优惠券", Hidden: true}, {Key: "code_batch.full", Field: "full", Label: "满额", Hidden: true}, {Key: "code_batch.reduce", Field: "reduce", Label: "减额", Hidden: true}, {Key: "code_batch.recharge_type", Field: "recharge_type", Label: "充值类型", Hidden: false}, {Key: "code_batch.group_info", Field: "group_info", Label: "组合商品基础信息", Hidden: false}, {Key: "code_batch.period_type", Field: "period_type", Label: "周期类型", Hidden: false}, {Key: "code_batch.period_num", Field: "period_num", Label: "周期次数", Hidden: false}, {Key: "code_batch.period_day", Field: "period_day", Label: "周期间隔天数", Hidden: false}, {Key: "code_batch.period_fixed_receive_time", Field: "period_fixed_receive_time", Label: "周期自动固定发放时间", Hidden: false}, }, }, { Table: "key_batch", Label: tableLabel("key_batch"), Fields: []fieldInfo{ {Key: "key_batch.id", Field: "id", Label: "key批次编号", Hidden: true}, {Key: "key_batch.plan_id", Field: "plan_id", Label: "计划编号", Hidden: true}, {Key: "key_batch.style", Field: "style", Label: "KEY样式", Hidden: false}, {Key: "key_batch.batch_name", Field: "batch_name", Label: "KEY批次名称", Hidden: false}, {Key: "key_batch.bind_object", Field: "bind_object", Label: "绑定类型", Hidden: true}, {Key: "key_batch.quantity", Field: "quantity", Label: "发放KEY数量", Hidden: true}, {Key: "key_batch.stock", Field: "stock", Label: "剩余库存信息", Hidden: true}, {Key: "key_batch.allow_repetition", Field: "allow_repetition", Label: "允许商品重复选择:1允许,0不允许", Hidden: true}, {Key: "key_batch.merge_stock", Field: "merge_stock", Label: "是否合并库存:1允许,0不允许", Hidden: true}, {Key: "key_batch.allow_loss", Field: "allow_loss", Label: "允许亏损:0不允许,1允许", Hidden: true}, {Key: "key_batch.begin_time", Field: "begin_time", Label: "开始时间", Hidden: true}, {Key: "key_batch.end_time", Field: "end_time", Label: "结束时间", Hidden: true}, {Key: "key_batch.status", Field: "status", Label: "状态", Hidden: true}, {Key: "key_batch.code_batch", Field: "code_batch", Label: "关联的兑换码批次信息(冗余数据)", Hidden: true}, {Key: "key_batch.zip_file", Field: "zip_file", Label: "压缩包路径", Hidden: true}, {Key: "key_batch.zip_file_md5", Field: "zip_file_md5", Label: "压缩包防篡改md5签名", Hidden: true}, {Key: "key_batch.zip_pwd", Field: "zip_pwd", Label: "解压密码", Hidden: true}, {Key: "key_batch.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "key_batch.creator", Field: "creator", Label: "创建人- 用户ID", Hidden: true}, {Key: "key_batch.restrict", Field: "restrict", Label: "该批次最大可以绑定数量", Hidden: true}, {Key: "key_batch.creator_name", Field: "creator_name", Label: "创建人-真实名称 一个活动下单key批次存在多个操作人", Hidden: true}, {Key: "key_batch.approval_status", Field: "approval_status", Label: "审批状态,0:未提交审核;1:审核中;", Hidden: true}, {Key: "key_batch.approval_id", Field: "approval_id", Label: "审批ID", Hidden: true}, {Key: "key_batch.mobile_excel", Field: "mobile_excel", Label: "白名单Excel", Hidden: true}, {Key: "key_batch.mobile_repeat", Field: "mobile_repeat", Label: "白名单允许重复的号码", Hidden: true}, {Key: "key_batch.copy_count", Field: "copy_count", Label: "复制次数", Hidden: true}, {Key: "key_batch.update_time", Field: "update_time", Label: "编辑时间", Hidden: true}, {Key: "key_batch.delete_time", Field: "delete_time", Label: "delete_time", Hidden: true}, {Key: "key_batch.discard_time", Field: "discard_time", Label: "作废时间", Hidden: true}, {Key: "key_batch.key_official_price", Field: "key_official_price", Label: "key码官方价", Hidden: false}, {Key: "key_batch.key_cost_price", Field: "key_cost_price", Label: "key码成本价", Hidden: false}, {Key: "key_batch.expiration_conf", Field: "expiration_conf", Label: "key码有效期配置", Hidden: true}, {Key: "key_batch.warning_conf", Field: "warning_conf", Label: "key码预警配置", Hidden: true}, {Key: "key_batch.generate_id", Field: "generate_id", Label: "生成记录Id", Hidden: true}, }, }, { Table: "merchant_key_send", Label: tableLabel("merchant_key_send"), Fields: []fieldInfo{ {Key: "merchant_key_send.id", Field: "id", Label: "id", Hidden: true}, {Key: "merchant_key_send.reseller_id", Field: "reseller_id", Label: "分销商id", Hidden: true}, {Key: "merchant_key_send.merchant_id", Field: "merchant_id", Label: "分销商开放商户号", Hidden: true}, {Key: "merchant_key_send.out_biz_no", Field: "out_biz_no", Label: "商户侧业务号 需保持唯一", Hidden: false}, {Key: "merchant_key_send.out_timestamp", Field: "out_timestamp", Label: "外部请求时间", Hidden: false}, {Key: "merchant_key_send.key_batch_id", Field: "key_batch_id", Label: "key批次id ", Hidden: true}, {Key: "merchant_key_send.stock_id", Field: "stock_id", Label: "计划编号", Hidden: true}, {Key: "merchant_key_send.plan_id", Field: "plan_id", Label: "计划id", Hidden: true}, {Key: "merchant_key_send.store_id", Field: "store_id", Label: "门店id", Hidden: true}, {Key: "merchant_key_send.key", Field: "key", Label: "发放的key码", Hidden: true}, {Key: "merchant_key_send.status", Field: "status", Label: "券码状态", Hidden: false}, {Key: "merchant_key_send.num", Field: "num", Label: "发放的数量", Hidden: true}, {Key: "merchant_key_send.attach", Field: "attach", Label: "客户端请求的参数", Hidden: true}, {Key: "merchant_key_send.usage_time", Field: "usage_time", Label: "key码核销时间", Hidden: true}, {Key: "merchant_key_send.discard_time", Field: "discard_time", Label: "key码作废时间", Hidden: true}, {Key: "merchant_key_send.account_type", Field: "account_type", Label: "用户账号类型", Hidden: true}, {Key: "merchant_key_send.account", Field: "account", Label: "用户账号", Hidden: true}, {Key: "merchant_key_send.send_msg", Field: "send_msg", Label: "是否发送短信", Hidden: true}, {Key: "merchant_key_send.status_update_time", Field: "status_update_time", Label: "状态变更时间", Hidden: true}, {Key: "merchant_key_send.update_time", Field: "update_time", Label: "更新时间", Hidden: true}, {Key: "merchant_key_send.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, }, }, { Table: "order", Label: tableLabel("order"), Fields: []fieldInfo{ {Key: "order.key", Field: "key", Label: "KEY", Hidden: false}, {Key: "order.order_number", Field: "order_number", Label: "订单编号", Hidden: false}, {Key: "order.out_trade_no", Field: "out_trade_no", Label: "外部交易号", Hidden: false}, {Key: "order.type", Field: "type", Label: "类型", Hidden: false}, {Key: "order.status", Field: "status", Label: "状态", Hidden: false}, {Key: "order.account", Field: "account", Label: "账号", Hidden: false}, {Key: "order.product_id", Field: "product_id", Label: "商品id", Hidden: true}, {Key: "order.reseller_id", Field: "reseller_id", Label: "所属分销商ID(冗余)", Hidden: true}, {Key: "order.plan_id", Field: "plan_id", Label: "所属营销计划ID(冗余)", Hidden: true}, {Key: "order.key_batch_id", Field: "key_batch_id", Label: "所属KEY批次ID(冗余)", Hidden: true}, {Key: "order.code_batch_id", Field: "code_batch_id", Label: "Code批次ID(冗余)", Hidden: true}, {Key: "order.contract_price", Field: "contract_price", Label: "合同单价", Hidden: false}, {Key: "order.total", Field: "total", Label: "总价", Hidden: false}, {Key: "order.num", Field: "num", Label: "购买数量", Hidden: false}, {Key: "order.pay_amount", Field: "pay_amount", Label: "支付金额", Hidden: false}, {Key: "order.pay_type", Field: "pay_type", Label: "支付方式", Hidden: false}, {Key: "order.pay_status", Field: "pay_status", Label: "支付状态", Hidden: false}, {Key: "order.use_coupon", Field: "use_coupon", Label: "是否使用优惠券", Hidden: false}, {Key: "order.deliver_status", Field: "deliver_status", Label: "向上游投递状态", Hidden: false}, {Key: "order.expire_time", Field: "expire_time", Label: "过期处理时间", Hidden: true}, {Key: "order.recharge_time", Field: "recharge_time", Label: "向上游发起充值的时间", Hidden: false}, {Key: "order.card_code", Field: "card_code", Label: "卡号卡密", Hidden: false}, {Key: "order.create_time", Field: "create_time", Label: "创建时间", Hidden: false}, {Key: "order.update_time", Field: "update_time", Label: "更新时间", Hidden: false}, {Key: "order.creator", Field: "creator", Label: "创建者id", Hidden: true}, }, }, { Table: "order_cash", Label: tableLabel("order_cash"), Fields: []fieldInfo{ {Key: "order_cash.order_number", Field: "order_number", Label: "order_number", Hidden: false}, {Key: "order_cash.channel", Field: "channel", Label: "渠道,1:支付宝;2:微信", Hidden: false}, {Key: "order_cash.cash_activity_id", Field: "cash_activity_id", Label: "红包批次号", Hidden: true}, {Key: "order_cash.receive_status", Field: "receive_status", Label: "红包领取状态", Hidden: false}, {Key: "order_cash.receive_time", Field: "receive_time", Label: "领取时间", Hidden: false}, {Key: "order_cash.channel_order_id", Field: "channel_order_id", Label: "支付宝转账订单号/微信批次单号", Hidden: false}, {Key: "order_cash.pay_fund_order_id", Field: "pay_fund_order_id", Label: "支付宝支付资金流水号", Hidden: false}, {Key: "order_cash.receive_user_id", Field: "receive_user_id", Label: "领取账号", Hidden: false}, {Key: "order_cash.cash_packet_id", Field: "cash_packet_id", Label: "红包ID", Hidden: true}, {Key: "order_cash.cash_id", Field: "cash_id", Label: "所属红包模版(规则)ID", Hidden: true}, {Key: "order_cash.amount", Field: "amount", Label: "红包额度", Hidden: false}, {Key: "order_cash.wechat_detail_id", Field: "wechat_detail_id", Label: "微信转账商家明细单号", Hidden: false}, {Key: "order_cash.update_time", Field: "update_time", Label: "update_time", Hidden: true}, {Key: "order_cash.status", Field: "status", Label: "红包状态", Hidden: false}, {Key: "order_cash.expire_time", Field: "expire_time", Label: "过期时间", Hidden: false}, {Key: "order_cash.receive_name", Field: "receive_name", Label: "领取方真实姓名", Hidden: false}, }, }, { Table: "order_detail", Label: tableLabel("order_detail"), Fields: []fieldInfo{ {Key: "order_detail.order_number", Field: "order_number", Label: "订单编号", Hidden: true}, {Key: "order_detail.plan_title", Field: "plan_title", Label: "计划名称", Hidden: false}, {Key: "order_detail.reseller_name", Field: "reseller_name", Label: "分销商名称", Hidden: false}, {Key: "order_detail.product_name", Field: "product_name", Label: "商品名称", Hidden: false}, {Key: "order_detail.show_url", Field: "show_url", Label: "商品图片", Hidden: true}, {Key: "order_detail.official_price", Field: "official_price", Label: "商品官方价", Hidden: false}, {Key: "order_detail.cost_price", Field: "cost_price", Label: "成本价", Hidden: false}, {Key: "order_detail.product", Field: "product", Label: "冗余商品信息", Hidden: true}, {Key: "order_detail.refund_account", Field: "refund_account", Label: "退款打款账号", Hidden: false}, {Key: "order_detail.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "order_detail.update_time", Field: "update_time", Label: "更新时间", Hidden: true}, }, }, { Table: "order_voucher", Label: tableLabel("order_voucher"), Fields: []fieldInfo{ {Key: "order_voucher.id", Field: "id", Label: "id", Hidden: true}, {Key: "order_voucher.trade_no", Field: "trade_no", Label: "交易号", Hidden: false}, {Key: "order_voucher.order_number", Field: "order_number", Label: "order_number", Hidden: true}, {Key: "order_voucher.channel", Field: "channel", Label: "渠道", Hidden: false}, {Key: "order_voucher.channel_activity_id", Field: "channel_activity_id", Label: "立减金批次号", Hidden: false}, {Key: "order_voucher.channel_user_id", Field: "channel_user_id", Label: "充值账号", Hidden: false}, {Key: "order_voucher.channel_voucher_id", Field: "channel_voucher_id", Label: "立减金ID", Hidden: false}, {Key: "order_voucher.rule", Field: "rule", Label: "立减金规则", Hidden: true}, {Key: "order_voucher.grant_time", Field: "grant_time", Label: "立减金领取时间", Hidden: false}, {Key: "order_voucher.status", Field: "status", Label: "立减金状态", Hidden: false}, {Key: "order_voucher.usage_time", Field: "usage_time", Label: "核销时间", Hidden: false}, {Key: "order_voucher.refund_time", Field: "refund_time", Label: "退款时间", Hidden: true}, {Key: "order_voucher.status_modify_time", Field: "status_modify_time", Label: "立减金状态更新时间", Hidden: true}, {Key: "order_voucher.overdue_time", Field: "overdue_time", Label: "过期时间", Hidden: false}, {Key: "order_voucher.refund_amount", Field: "refund_amount", Label: "退回金额", Hidden: true}, {Key: "order_voucher.official_price", Field: "official_price", Label: "商品官方价", Hidden: false}, {Key: "order_voucher.receive_mode", Field: "receive_mode", Label: "发券方式", Hidden: false}, {Key: "order_voucher.receive_error", Field: "receive_error", Label: "领取失败原因", Hidden: false}, {Key: "order_voucher.app_id", Field: "app_id", Label: "APPID", Hidden: false}, {Key: "order_voucher.out_biz_no", Field: "out_biz_no", Label: "外部业务号", Hidden: false}, {Key: "order_voucher.fail_time", Field: "fail_time", Label: "领取失败时间", Hidden: true}, {Key: "order_voucher.notify_url", Field: "notify_url", Label: "回调通知地址", Hidden: true}, {Key: "order_voucher.account_no", Field: "account_no", Label: "账户编号", Hidden: true}, }, }, { Table: "plan", Label: tableLabel("plan"), Fields: []fieldInfo{ {Key: "plan.id", Field: "id", Label: "编号", Hidden: true}, {Key: "plan.creator", Field: "creator", Label: "创建者ID", Hidden: true}, {Key: "plan.creator_name", Field: "creator_name", Label: "创建者名称", Hidden: true}, {Key: "plan.title", Field: "title", Label: "计划标题", Hidden: true}, {Key: "plan.type", Field: "type", Label: "计划类型", Hidden: true}, {Key: "plan.status", Field: "status", Label: "活动状态:0草稿", Hidden: true}, {Key: "plan.reseller_id", Field: "reseller_id", Label: "所属分销商ID", Hidden: true}, {Key: "plan.reseller_name", Field: "reseller_name", Label: "分销商名称(冗余)", Hidden: true}, {Key: "plan.begin_time", Field: "begin_time", Label: "开始时间", Hidden: true}, {Key: "plan.end_time", Field: "end_time", Label: "结束时间", Hidden: true}, {Key: "plan.return_type", Field: "return_type", Label: "计划充值返回", Hidden: true}, {Key: "plan.open", Field: "open", Label: "活动是否开启 1:开启 2关闭", Hidden: true}, {Key: "plan.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "plan.zip_file", Field: "zip_file", Label: "压缩包路径", Hidden: true}, {Key: "plan.zip_file_md5", Field: "zip_file_md5", Label: "压缩包防篡改md5签名", Hidden: true}, {Key: "plan.zip_pwd", Field: "zip_pwd", Label: "解压密码", Hidden: true}, {Key: "plan.approval_id", Field: "approval_id", Label: "审批id", Hidden: true}, {Key: "plan.copy_count", Field: "copy_count", Label: "复制次数", Hidden: true}, {Key: "plan.update_time", Field: "update_time", Label: "编辑时间", Hidden: true}, {Key: "plan.delete_time", Field: "delete_time", Label: "delete_time", Hidden: true}, {Key: "plan.stock_id", Field: "stock_id", Label: "计划编号、批次号", Hidden: true}, {Key: "plan.settlement_type", Field: "settlement_type", Label: "结算方式", Hidden: false}, {Key: "plan.send_method", Field: "send_method", Label: "发放方式", Hidden: false}, {Key: "plan.button_conf", Field: "button_conf", Label: "自定义按钮文案", Hidden: true}, }, }, { Table: "voucher", Label: tableLabel("voucher"), Fields: []fieldInfo{ {Key: "voucher.id", Field: "id", Label: "id", Hidden: true}, {Key: "voucher.goods_id", Field: "goods_id", Label: "商品表id", Hidden: true}, {Key: "voucher.channel", Field: "channel", Label: "渠道", Hidden: false}, {Key: "voucher.channel_activity_id", Field: "channel_activity_id", Label: "渠道立减金批次号", Hidden: true}, {Key: "voucher.batch_goods_name", Field: "batch_goods_name", Label: "批次商品名称", Hidden: false}, {Key: "voucher.price", Field: "price", Label: "合同单价", Hidden: false}, {Key: "voucher.recharge_amount", Field: "recharge_amount", Label: "充值批次金额", Hidden: false}, {Key: "voucher.frozen_amount", Field: "frozen_amount", Label: "冻结额度", Hidden: true}, {Key: "voucher.balance", Field: "balance", Label: "剩余额度", Hidden: true}, {Key: "voucher.used_amount", Field: "used_amount", Label: "已使用额度", Hidden: true}, {Key: "voucher.denomination", Field: "denomination", Label: "面额", Hidden: false}, {Key: "voucher.reduce_amount", Field: "reduce_amount", Label: "立减额度", Hidden: false}, {Key: "voucher.all_budget", Field: "all_budget", Label: "总预算", Hidden: true}, {Key: "voucher.day_budget", Field: "day_budget", Label: "单天预算", Hidden: true}, {Key: "voucher.receive_conf", Field: "receive_conf", Label: "领取配置", Hidden: true}, {Key: "voucher.card_type", Field: "card_type", Label: "卡种类型", Hidden: false}, {Key: "voucher.natural_limit", Field: "natural_limit", Label: "是否开启自然人限制", Hidden: true}, {Key: "voucher.brush_limit", Field: "brush_limit", Label: "是否开启防刷限制", Hidden: true}, {Key: "voucher.time_limit", Field: "time_limit", Label: "时间限制配置", Hidden: true}, {Key: "voucher.instruction", Field: "instruction", Label: "使用说明", Hidden: true}, {Key: "voucher.early_per", Field: "early_per", Label: "预警百分比", Hidden: true}, {Key: "voucher.early_notifier", Field: "early_notifier", Label: "预警通知人", Hidden: false}, {Key: "voucher.last_early_per", Field: "last_early_per", Label: "上次预警百分比", Hidden: true}, {Key: "voucher.temp_no", Field: "temp_no", Label: "券模板编号", Hidden: true}, {Key: "voucher.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "voucher.delete_time", Field: "delete_time", Label: "delete_time", Hidden: true}, {Key: "voucher.provider", Field: "provider", Label: "服务商标识", Hidden: true}, {Key: "voucher.receive_mode", Field: "receive_mode", Label: "发券方式", Hidden: false}, {Key: "voucher.send_num", Field: "send_num", Label: "发放数量", Hidden: false}, {Key: "voucher.is_webview", Field: "is_webview", Label: "是否webview方式", Hidden: false}, {Key: "voucher.notice", Field: "notice", Label: "使用须知", Hidden: true}, {Key: "voucher.index", Field: "index", Label: "排序", Hidden: true}, }, }, { Table: "voucher_batch", Label: tableLabel("voucher_batch"), Fields: []fieldInfo{ {Key: "voucher_batch.id", Field: "id", Label: "id", Hidden: true}, {Key: "voucher_batch.voucher_id", Field: "voucher_id", Label: "立减金id", Hidden: true}, {Key: "voucher_batch.provider", Field: "provider", Label: "服务商标识", Hidden: false}, {Key: "voucher_batch.channel_activity_id", Field: "channel_activity_id", Label: "渠道立减金批次号", Hidden: true}, {Key: "voucher_batch.temp_no", Field: "temp_no", Label: "券模板编号", Hidden: false}, {Key: "voucher_batch.weight", Field: "weight", Label: "权重", Hidden: false}, {Key: "voucher_batch.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "voucher_batch.update_time", Field: "update_time", Label: "更新时间", Hidden: true}, }, }, } } // ymtMetadataTables 静态列出 YMT 库的所有表字段(hidden 默认 false) func ymtMetadataTables() []tableInfo { return []tableInfo{ { Table: "activity", Label: tableLabel("activity"), Fields: []fieldInfo{ {Key: "activity.id", Field: "id", Label: "活动id", Hidden: true}, {Key: "activity.user_id", Field: "user_id", Label: "创建者", Hidden: true}, {Key: "activity.merchant_id", Field: "merchant_id", Label: "客户id", Hidden: true}, {Key: "activity.user_name", Field: "user_name", Label: "创建者名称", Hidden: false}, {Key: "activity.name", Field: "name", Label: "活动名称", Hidden: false}, {Key: "activity.activity_no", Field: "activity_no", Label: "活动编号", Hidden: false}, {Key: "activity.status", Field: "status", Label: "活动状态", Hidden: false}, {Key: "activity.key_total_num", Field: "key_total_num", Label: "Key码总量", Hidden: true}, {Key: "activity.key_generate_num", Field: "key_generate_num", Label: "Key码已生成数量", Hidden: true}, {Key: "activity.key_usable_num", Field: "key_usable_num", Label: "key可使用次数", Hidden: false}, {Key: "activity.domain_url", Field: "domain_url", Label: "域名", Hidden: true}, {Key: "activity.theme_login_id", Field: "theme_login_id", Label: "登录页面模版Id", Hidden: true}, {Key: "activity.theme_list_id", Field: "theme_list_id", Label: "列表页模版Id", Hidden: true}, {Key: "activity.settlement_type", Field: "settlement_type", Label: "结算方式", Hidden: false}, {Key: "activity.begin_time", Field: "begin_time", Label: "开始时间", Hidden: true}, {Key: "activity.end_time", Field: "end_time", Label: "结束时间", Hidden: true}, {Key: "activity.is_retry", Field: "is_retry", Label: "是否自动重试 1:是 2:否", Hidden: true}, {Key: "activity.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "activity.update_time", Field: "update_time", Label: "修改时间", Hidden: true}, {Key: "activity.discard_time", Field: "discard_time", Label: "作废时间", Hidden: true}, {Key: "activity.delete_time", Field: "delete_time", Label: "删除时间", Hidden: true}, {Key: "activity.send_rule", Field: "send_rule", Label: "发放规则", Hidden: true}, {Key: "activity.auto_charge", Field: "auto_charge", Label: "是否充值到账", Hidden: true}, {Key: "activity.stock", Field: "stock", Label: "活动库存(废弃)", Hidden: true}, {Key: "activity.key_style", Field: "key_style", Label: "Key样式 1:串码 2:链接", Hidden: true}, {Key: "activity.approval_trade_no", Field: "approval_trade_no", Label: "审批交易号(保留最新一次)", Hidden: true}, {Key: "activity.key_begin", Field: "key_begin", Label: "开始几月份", Hidden: true}, {Key: "activity.key_end", Field: "key_end", Label: "有效期截止月份", Hidden: true}, {Key: "activity.key_unit", Field: "key_unit", Label: "0 无 1 天 2 周 3 月", Hidden: true}, {Key: "activity.amount", Field: "amount", Label: "支付金额", Hidden: true}, {Key: "activity.channels", Field: "channels", Label: "支付渠道", Hidden: true}, {Key: "activity.custom_message", Field: "custom_message", Label: "custom_message", Hidden: true}, {Key: "activity.theme_verify_id", Field: "theme_verify_id", Label: "验证模版id", Hidden: true}, {Key: "activity.key_pay_button_text", Field: "key_pay_button_text", Label: "key码支付按钮文本", Hidden: true}, {Key: "activity.goods_pay_button_text", Field: "goods_pay_button_text", Label: "商品支付按钮文本", Hidden: true}, {Key: "activity.is_open_db_transaction", Field: "is_open_db_transaction", Label: "是否开启兑换接口事务", Hidden: true}, }, }, { Table: "goods_voucher_batch", Label: tableLabel("goods_voucher_batch"), Fields: []fieldInfo{ {Key: "goods_voucher_batch.id", Field: "id", Label: "id", Hidden: true}, {Key: "goods_voucher_batch.goods_voucher_id", Field: "goods_voucher_id", Label: "立减金id", Hidden: true}, {Key: "goods_voucher_batch.supplier_id", Field: "supplier_id", Label: "供应商id", Hidden: true}, {Key: "goods_voucher_batch.voucher_subject_id", Field: "voucher_subject_id", Label: "立减金主体Id", Hidden: true}, {Key: "goods_voucher_batch.channel_batch_no", Field: "channel_batch_no", Label: "立减金批次号", Hidden: false}, {Key: "goods_voucher_batch.temp_no", Field: "temp_no", Label: "券模板编号", Hidden: false}, {Key: "goods_voucher_batch.index", Field: "index", Label: "权重", Hidden: true}, {Key: "goods_voucher_batch.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "goods_voucher_batch.update_time", Field: "update_time", Label: "更新时间", Hidden: true}, }, }, { Table: "goods_voucher_subject_config", Label: tableLabel("goods_voucher_subject_config"), Fields: []fieldInfo{ {Key: "goods_voucher_subject_config.id", Field: "id", Label: "id", Hidden: true}, {Key: "goods_voucher_subject_config.name", Field: "name", Label: "主体名称", Hidden: false}, {Key: "goods_voucher_subject_config.type", Field: "type", Label: "主体类型", Hidden: false}, {Key: "goods_voucher_subject_config.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "goods_voucher_subject_config.config", Field: "config", Label: "配置", Hidden: true}, }, }, { Table: "merchant", Label: tableLabel("merchant"), Fields: []fieldInfo{ {Key: "merchant.id", Field: "id", Label: "主键", Hidden: true}, {Key: "merchant.user_id", Field: "user_id", Label: "统一用户中心id", Hidden: true}, {Key: "merchant.operation_user", Field: "operation_user", Label: "运营人员[{\"user_id\":1,\"name\":\"测试人员\"}]", Hidden: true}, {Key: "merchant.merchant_no", Field: "merchant_no", Label: "商户编码", Hidden: false}, {Key: "merchant.name", Field: "name", Label: "客户名称", Hidden: false}, {Key: "merchant.subject", Field: "subject", Label: "客户主体", Hidden: false}, {Key: "merchant.third_party", Field: "third_party", Label: "供应商类型", Hidden: false}, {Key: "merchant.status", Field: "status", Label: "状态 1:正常 2:冻结", Hidden: true}, {Key: "merchant.balance", Field: "balance", Label: "分销商余额", Hidden: true}, {Key: "merchant.total_consumption", Field: "total_consumption", Label: "累计消费", Hidden: true}, {Key: "merchant.contact_name", Field: "contact_name", Label: "客户联系人名称", Hidden: true}, {Key: "merchant.contact_phone", Field: "contact_phone", Label: "客户联系人电话", Hidden: true}, {Key: "merchant.contact_email", Field: "contact_email", Label: "联系人Email,多个逗号(,)用逗号分开", Hidden: true}, {Key: "merchant.merchant_key", Field: "merchant_key", Label: "客户key", Hidden: true}, {Key: "merchant.config", Field: "config", Label: "客户配置", Hidden: true}, {Key: "merchant.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "merchant.update_time", Field: "update_time", Label: "编辑时间", Hidden: true}, {Key: "merchant.delete_time", Field: "delete_time", Label: "删除时间", Hidden: true}, {Key: "merchant.is_open_db_transaction", Field: "is_open_db_transaction", Label: "是否开启兑换接口事务 1开启 2关闭", Hidden: true}, }, }, { Table: "order", Label: tableLabel("order"), Fields: []fieldInfo{ {Key: "order.id", Field: "id", Label: "订单id", Hidden: true}, {Key: "order.order_number", Field: "order_number", Label: "订单号", Hidden: false}, {Key: "order.key", Field: "key", Label: "KEY", Hidden: false}, {Key: "order.creator", Field: "creator", Label: "创建者id", Hidden: true}, {Key: "order.plan_id", Field: "plan_id", Label: "所属营销活动id", Hidden: true}, {Key: "order.product_id", Field: "product_id", Label: "商品id", Hidden: true}, {Key: "order.reseller_id", Field: "reseller_id", Label: "所属分销商ID", Hidden: true}, {Key: "order.supplier_id", Field: "supplier_id", Label: "供应商Id", Hidden: true}, {Key: "order.supplier_product_id", Field: "supplier_product_id", Label: "供应商产品id", Hidden: true}, {Key: "order.type", Field: "type", Label: "类型", Hidden: false}, {Key: "order.status", Field: "status", Label: "状态", Hidden: false}, {Key: "order.contract_price", Field: "contract_price", Label: "合同单价", Hidden: false}, {Key: "order.official_price", Field: "official_price", Label: "官方价", Hidden: false}, {Key: "order.merchant_name", Field: "merchant_name", Label: "客户名称", Hidden: false}, {Key: "order.activity_name", Field: "activity_name", Label: "活动名称", Hidden: false}, {Key: "order.goods_name", Field: "goods_name", Label: "商品名称", Hidden: false}, {Key: "order.num", Field: "num", Label: "购买数量", Hidden: false}, {Key: "order.pay_status", Field: "pay_status", Label: "支付状态", Hidden: false}, {Key: "order.supplier_product_name", Field: "supplier_product_name", Label: "供应商产品名称", Hidden: false}, {Key: "order.key_batch_id", Field: "key_batch_id", Label: "key批次", Hidden: true}, {Key: "order.is_inner", Field: "is_inner", Label: "是否内部供应商订单", Hidden: false}, {Key: "order.icon", Field: "icon", Label: "订单图片", Hidden: true}, {Key: "order.cost_price", Field: "cost_price", Label: "成本单价", Hidden: false}, {Key: "order.is_reset", Field: "is_reset", Label: "是否重置", Hidden: true}, {Key: "order.create_time", Field: "create_time", Label: "创建时间", Hidden: false}, {Key: "order.update_time", Field: "update_time", Label: "更新时间", Hidden: false}, {Key: "order.is_retry", Field: "is_retry", Label: "是否重试", Hidden: true}, {Key: "order.channel", Field: "channel", Label: "支付渠道", Hidden: true}, {Key: "order.is_store", Field: "is_store", Label: "是否退还库存", Hidden: true}, {Key: "order.trace_id", Field: "trace_id", Label: "追踪id", Hidden: true}, {Key: "order.supplier_name", Field: "supplier_name", Label: "供应商名称", Hidden: false}, {Key: "order.pay_amount", Field: "pay_amount", Label: "支付金额", Hidden: false}, {Key: "order.pay_time", Field: "pay_time", Label: "支付时间", Hidden: false}, {Key: "order.coupon_id", Field: "coupon_id", Label: "优惠券Id", Hidden: false}, {Key: "order.discount_amount", Field: "discount_amount", Label: "优惠金额", Hidden: false}, {Key: "order.out_trade_no", Field: "out_trade_no", Label: "外部交易号码", Hidden: false}, {Key: "order.next_retry_time", Field: "next_retry_time", Label: "下次重试时间", Hidden: true}, {Key: "order.recharge_suc_time", Field: "recharge_suc_time", Label: "充值提单成功时间", Hidden: true}, }, }, { Table: "order_cash", Label: tableLabel("order_cash"), Fields: []fieldInfo{ {Key: "order_cash.id", Field: "id", Label: "id", Hidden: true}, {Key: "order_cash.order_no", Field: "order_no", Label: "订单号", Hidden: false}, {Key: "order_cash.trade_no", Field: "trade_no", Label: "交易号", Hidden: false}, {Key: "order_cash.wechat_detail_id", Field: "wechat_detail_id", Label: "微信转账商家明细单号", Hidden: false}, {Key: "order_cash.channel", Field: "channel", Label: "渠道", Hidden: false}, {Key: "order_cash.denomination", Field: "denomination", Label: "红包面额", Hidden: false}, {Key: "order_cash.account", Field: "account", Label: "领取账号", Hidden: false}, {Key: "order_cash.receive_name", Field: "receive_name", Label: "用户真实姓名", Hidden: false}, {Key: "order_cash.app_id", Field: "app_id", Label: "转账app_id", Hidden: false}, {Key: "order_cash.receive_status", Field: "receive_status", Label: "领取状态", Hidden: false}, {Key: "order_cash.merchant_id", Field: "merchant_id", Label: "分销商id", Hidden: true}, {Key: "order_cash.supplier_id", Field: "supplier_id", Label: "供应商Id", Hidden: true}, {Key: "order_cash.activity_id", Field: "activity_id", Label: "活动ID", Hidden: true}, {Key: "order_cash.goods_id", Field: "goods_id", Label: "商品Id", Hidden: true}, {Key: "order_cash.user_id", Field: "user_id", Label: "创建人", Hidden: true}, {Key: "order_cash.receive_time", Field: "receive_time", Label: "红包领取时间", Hidden: true}, {Key: "order_cash.success_time", Field: "success_time", Label: "红包成功时间", Hidden: false}, {Key: "order_cash.expire_time", Field: "expire_time", Label: "红包过期时间", Hidden: false}, {Key: "order_cash.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "order_cash.update_time", Field: "update_time", Label: "更新时间", Hidden: true}, }, }, { Table: "order_digit", Label: tableLabel("order_digit"), Fields: []fieldInfo{ {Key: "order_digit.id", Field: "id", Label: "id", Hidden: true}, {Key: "order_digit.order_no", Field: "order_no", Label: "订单号", Hidden: false}, {Key: "order_digit.card_no", Field: "card_no", Label: "卡号", Hidden: false}, {Key: "order_digit.card_pass", Field: "card_pass", Label: "卡密", Hidden: false}, {Key: "order_digit.account", Field: "account", Label: "充值账号", Hidden: false}, {Key: "order_digit.goods_id", Field: "goods_id", Label: "商品id", Hidden: true}, {Key: "order_digit.merchant_id", Field: "merchant_id", Label: "分销商id", Hidden: true}, {Key: "order_digit.supplier_id", Field: "supplier_id", Label: "供应商Id", Hidden: true}, {Key: "order_digit.activity_id", Field: "activity_id", Label: "活动id", Hidden: true}, {Key: "order_digit.user_id", Field: "user_id", Label: "创建人", Hidden: true}, {Key: "order_digit.success_time", Field: "success_time", Label: "到账时间", Hidden: false}, {Key: "order_digit.supplier_product_no", Field: "supplier_product_no", Label: "供应商产品编码", Hidden: false}, {Key: "order_digit.order_type", Field: "order_type", Label: "商品类型", Hidden: false}, {Key: "order_digit.end_time", Field: "end_time", Label: "卡密有效期", Hidden: false}, {Key: "order_digit.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "order_digit.update_time", Field: "update_time", Label: "更新时间", Hidden: true}, {Key: "order_digit.code", Field: "code", Label: "验证码", Hidden: false}, // 短信渠道字段仅用于内部排查,前端和导出不再展示 {Key: "order_digit.sms_channel", Field: "sms_channel", Label: "短信渠道", Hidden: true}, }, }, { Table: "order_voucher", Label: tableLabel("order_voucher"), Fields: []fieldInfo{ {Key: "order_voucher.id", Field: "id", Label: "id", Hidden: true}, {Key: "order_voucher.order_no", Field: "order_no", Label: "order_no", Hidden: true}, {Key: "order_voucher.trade_no", Field: "trade_no", Label: "发券交易号", Hidden: false}, {Key: "order_voucher.channel", Field: "channel", Label: "渠道", Hidden: false}, {Key: "order_voucher.channel_batch_no", Field: "channel_batch_no", Label: "渠道立减金批次号", Hidden: false}, {Key: "order_voucher.account", Field: "account", Label: "发券账号", Hidden: false}, {Key: "order_voucher.channel_voucher_id", Field: "channel_voucher_id", Label: "渠道立减金ID", Hidden: false}, {Key: "order_voucher.app_id", Field: "app_id", Label: "领取应用id", Hidden: false}, {Key: "order_voucher.status", Field: "status", Label: "立减金状态", Hidden: false}, {Key: "order_voucher.receive_error", Field: "receive_error", Label: "发券失败原因", Hidden: false}, {Key: "order_voucher.refund_amount", Field: "refund_amount", Label: "退回金额", Hidden: true}, {Key: "order_voucher.merchant_id", Field: "merchant_id", Label: "分销商id", Hidden: true}, {Key: "order_voucher.supplier_id", Field: "supplier_id", Label: "供应商id", Hidden: true}, {Key: "order_voucher.activity_id", Field: "activity_id", Label: "活动ID", Hidden: true}, {Key: "order_voucher.goods_id", Field: "goods_id", Label: "商品Id", Hidden: true}, {Key: "order_voucher.user_id", Field: "user_id", Label: "创建人", Hidden: true}, {Key: "order_voucher.grant_time", Field: "grant_time", Label: "立减金领取时间", Hidden: true}, {Key: "order_voucher.usage_time", Field: "usage_time", Label: "核销时间", Hidden: false}, {Key: "order_voucher.refund_time", Field: "refund_time", Label: "退款时间", Hidden: true}, {Key: "order_voucher.expire_time", Field: "expire_time", Label: "未核销过期时间", Hidden: false}, {Key: "order_voucher.create_time", Field: "create_time", Label: "创建时间", Hidden: true}, {Key: "order_voucher.receive_mode", Field: "receive_mode", Label: "领取类型", Hidden: false}, }, }, } } func tableLabel(t string) string { switch t { case "order": return "订单主表" case "order_detail": return "订单详情" case "order_cash": return "红包订单" case "order_voucher": return "立减金订单" case "order_digit": return "直充卡密订单" case "plan": return "活动" case "key_batch": return "key批次" case "code_batch": return "兑换码批次" case "voucher": return "立减金" case "voucher_batch": return "立减金批次" case "merchant_key_send": return "key码API发放记录" case "goods_voucher_batch": return "立减金批次表" case "goods_voucher_subject_config": return "立减金主体" case "merchant": return "客户" case "activity": return "活动" default: return t } } func displayTable(ds, tbl string) string { if ds == "ymt" && tbl == "order_info" { return "order" } return tbl } func canonicalField(ds, tbl, col string) (string, string) { if ds == "ymt" && tbl == "order_info" { switch col { case "order_no": return "order", "order_number" case "key_code": return "order", "key" case "user_id": return "order", "creator" case "out_order_no": return "order", "out_trade_no" case "activity_id": return "order", "plan_id" case "merchant_id": return "order", "reseller_id" case "goods_id": return "order", "product_id" case "pay_price": return "order", "pay_amount" case "key_batch_name": return "order", "key_batch_id" default: return "order", col } } // other tables: canonical equals actual return tbl, col } type columnMeta struct { Name string Comment string } func getColumns(db *sql.DB, tbl string) []columnMeta { rows, err := db.Query("SELECT COLUMN_NAME, COLUMN_COMMENT FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = ? ORDER BY ORDINAL_POSITION", tbl) if err != nil { return []columnMeta{} } defer rows.Close() cols := []columnMeta{} for rows.Next() { var name, comment string if err := rows.Scan(&name, &comment); err == nil { cols = append(cols, columnMeta{Name: name, Comment: comment}) } } return cols } func recommendedDefaults(ds, orderType string) []string { base := []string{"order.order_number", "order.creator", "order.out_trade_no", "order.type", "order.status", "order.contract_price", "order.num", "order.pay_amount", "order.create_time"} if ds != "ymt" { base = []string{"order.order_number", "order.creator", "order.out_trade_no", "order.type", "order.status", "order.contract_price", "order.num", "order.total", "order.pay_amount", "order.create_time"} } t := orderType if t == "2" { // 直充卡密 if ds == "ymt" { base = append(base, "order_digit.order_no", "order_digit.account", "order_digit.success_time") } else { base = append(base, "plan.title") } } else if t == "3" { // 立减金 if ds == "ymt" { base = append(base, "order_voucher.channel", "order_voucher.status", "goods_voucher_batch.channel_batch_no") } else { base = append(base, "order_voucher.channel", "voucher.denomination") } } else if t == "1" { // 红包 if ds == "ymt" { base = append(base, "order_cash.channel", "order_cash.receive_status", "order_cash.denomination") } else { base = append(base, "order_cash.channel", "order_cash.receive_status", "order_cash.amount") } } return base }