MarketingSystemDataExportTool/server/internal/api/metadata.go

671 lines
45 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()
}
setAllHiddenFalse(tables)
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"`
}
// setAllHiddenFalse sets every field hidden flag to false for client-side control.
func setAllHiddenFalse(tables []tableInfo) {
for ti := range tables {
for fi := range tables[ti].Fields {
tables[ti].Fields[fi].Hidden = false
}
}
}
// marketingMetadataTables 静态列出 Marketing 库的所有表字段hidden 默认 true
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: true},
{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: "绑定限额数量能给同一KEY绑定的次数", Hidden: true},
{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: "审批状态0未提交审核1审核中", 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: "充值类型 1单个充值 2组合充值", Hidden: true},
{Key: "code_batch.group_info", Field: "group_info", Label: "组合商品基础信息", Hidden: true},
{Key: "code_batch.period_type", Field: "period_type", Label: "1不设置 2自动 3手动", Hidden: true},
{Key: "code_batch.period_num", Field: "period_num", Label: "周期次数", Hidden: true},
{Key: "code_batch.period_day", Field: "period_day", Label: "周期间隔天数", Hidden: true},
{Key: "code_batch.period_fixed_receive_time", Field: "period_fixed_receive_time", Label: "周期自动固定发放时间", Hidden: true},
},
},
{
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: true},
{Key: "key_batch.batch_name", Field: "batch_name", Label: "KEY批次名称", Hidden: true},
{Key: "key_batch.bind_object", Field: "bind_object", Label: "绑定类型:1兑换码2优惠码4立减金", 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: true},
{Key: "key_batch.key_cost_price", Field: "key_cost_price", Label: "key码成本价", Hidden: true},
{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: true},
{Key: "merchant_key_send.out_timestamp", Field: "out_timestamp", Label: "外部请求时间", Hidden: true},
{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: "券码状态 1待发放。2已核销。3已作废 4 充值中", Hidden: true},
{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: "用户账号类型 1手机号 ", Hidden: true},
{Key: "merchant_key_send.account", Field: "account", Label: "用户账号", Hidden: true},
{Key: "merchant_key_send.send_msg", Field: "send_msg", Label: "是否发送短信。1不发送。2发送", 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: true},
{Key: "order.order_number", Field: "order_number", Label: "订单编号", Hidden: true},
{Key: "order.out_trade_no", Field: "out_trade_no", Label: "支付流水号", Hidden: true},
{Key: "order.type", Field: "type", Label: "类型", Hidden: true},
{Key: "order.status", Field: "status", Label: "状态", Hidden: true},
{Key: "order.account", Field: "account", Label: "账号", Hidden: true},
{Key: "order.product_id", Field: "product_id", Label: "商品id", Hidden: true},
{Key: "order.reseller_id", Field: "reseller_id", Label: "所属分销商ID冗余", Hidden: false},
{Key: "order.plan_id", Field: "plan_id", Label: "所属营销计划ID冗余", Hidden: false},
{Key: "order.key_batch_id", Field: "key_batch_id", Label: "所属KEY批次ID冗余", Hidden: false},
{Key: "order.code_batch_id", Field: "code_batch_id", Label: "Code批次ID(冗余)", Hidden: false},
{Key: "order.contract_price", Field: "contract_price", Label: "合同单价(冗余)", Hidden: false},
{Key: "order.total", Field: "total", Label: "总价", Hidden: true},
{Key: "order.num", Field: "num", Label: "购买数量", Hidden: true},
{Key: "order.pay_amount", Field: "pay_amount", Label: "支付金额", Hidden: true},
{Key: "order.pay_type", Field: "pay_type", Label: "支付方式", Hidden: true},
{Key: "order.pay_status", Field: "pay_status", Label: "支付状态", Hidden: true},
{Key: "order.use_coupon", Field: "use_coupon", Label: "是否使用优惠券", Hidden: true},
{Key: "order.deliver_status", Field: "deliver_status", Label: "向上游投递状态", Hidden: true},
{Key: "order.expire_time", Field: "expire_time", Label: "过期处理时间", Hidden: true},
{Key: "order.recharge_time", Field: "recharge_time", Label: "向上游发起充值的时间", Hidden: true},
{Key: "order.card_code", Field: "card_code", Label: "卡号卡密", Hidden: true},
{Key: "order.create_time", Field: "create_time", Label: "创建时间", Hidden: true},
{Key: "order.update_time", Field: "update_time", Label: "更新时间", Hidden: true},
{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: true},
{Key: "order_cash.channel", Field: "channel", Label: "渠道1支付宝2微信", Hidden: true},
{Key: "order_cash.cash_activity_id", Field: "cash_activity_id", Label: "红包批次号", Hidden: true},
{Key: "order_cash.receive_status", Field: "receive_status", Label: "红包领取状态", Hidden: true},
{Key: "order_cash.receive_time", Field: "receive_time", Label: "领取时间,拆红包的时间", Hidden: true},
{Key: "order_cash.channel_order_id", Field: "channel_order_id", Label: "支付宝转账订单号/微信批次单号", Hidden: true},
{Key: "order_cash.pay_fund_order_id", Field: "pay_fund_order_id", Label: "支付宝支付资金流水号", Hidden: true},
{Key: "order_cash.receive_user_id", Field: "receive_user_id", Label: "红包领取者唯一标识 微信open_id/支付宝alipay_user_id", Hidden: true},
{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: true},
{Key: "order_cash.wechat_detail_id", Field: "wechat_detail_id", Label: "微信转账商家明细单号", Hidden: true},
{Key: "order_cash.update_time", Field: "update_time", Label: "update_time", Hidden: true},
{Key: "order_cash.status", Field: "status", Label: "状态 1正常 2过期", Hidden: true},
{Key: "order_cash.expire_time", Field: "expire_time", Label: "过期时间", Hidden: true},
{Key: "order_cash.receive_name", Field: "receive_name", Label: "领取方真实姓名", Hidden: true},
},
},
{
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: true},
{Key: "order_detail.reseller_name", Field: "reseller_name", Label: "分销商名称(冗余)", Hidden: true},
{Key: "order_detail.product_name", Field: "product_name", Label: "商品名称(冗余)", Hidden: true},
{Key: "order_detail.show_url", Field: "show_url", Label: "商品图片(冗余)", Hidden: true},
{Key: "order_detail.official_price", Field: "official_price", Label: "商品官方价(冗余)", Hidden: true},
{Key: "order_detail.cost_price", Field: "cost_price", Label: "成本价", Hidden: true},
{Key: "order_detail.product", Field: "product", Label: "冗余商品信息", Hidden: true},
{Key: "order_detail.refund_account", Field: "refund_account", Label: "退款打款账号", Hidden: true},
{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: true},
{Key: "order_voucher.order_number", Field: "order_number", Label: "order_number", Hidden: true},
{Key: "order_voucher.channel", Field: "channel", Label: "渠道1支付宝2微信", Hidden: true},
{Key: "order_voucher.channel_activity_id", Field: "channel_activity_id", Label: "渠道立减金批次号", Hidden: true},
{Key: "order_voucher.channel_user_id", Field: "channel_user_id", Label: "渠道用户ID", Hidden: true},
{Key: "order_voucher.channel_voucher_id", Field: "channel_voucher_id", Label: "渠道立减金ID", Hidden: true},
{Key: "order_voucher.rule", Field: "rule", Label: "立减金规则", Hidden: true},
{Key: "order_voucher.grant_time", Field: "grant_time", Label: "立减金领取时间", Hidden: true},
{Key: "order_voucher.status", Field: "status", Label: "状态 1可用 2已实扣 3已过期 4已退款", Hidden: true},
{Key: "order_voucher.usage_time", Field: "usage_time", Label: "核销时间", Hidden: true},
{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: true},
{Key: "order_voucher.refund_amount", Field: "refund_amount", Label: "退回金额", Hidden: true},
{Key: "order_voucher.official_price", Field: "official_price", Label: "商品官方价", Hidden: true},
{Key: "order_voucher.receive_mode", Field: "receive_mode", Label: "发券方式 1渠道授权用户id 2手机号或邮箱", Hidden: true},
{Key: "order_voucher.receive_error", Field: "receive_error", Label: "领取失败原因", Hidden: true},
{Key: "order_voucher.app_id", Field: "app_id", Label: "领取应用id", Hidden: true},
{Key: "order_voucher.out_biz_no", Field: "out_biz_no", Label: "外部业务号", Hidden: true},
{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: true},
{Key: "plan.send_method", Field: "send_method", Label: "发放方式1邮件发放 2API调用", Hidden: true},
{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: "渠道 1支付宝 2微信", Hidden: true},
{Key: "voucher.channel_activity_id", Field: "channel_activity_id", Label: "渠道立减金批次号", Hidden: true},
{Key: "voucher.batch_goods_name", Field: "batch_goods_name", Label: "批次商品名称", Hidden: true},
{Key: "voucher.price", Field: "price", Label: "合同单价", Hidden: true},
{Key: "voucher.recharge_amount", Field: "recharge_amount", Label: "充值批次金额", Hidden: true},
{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: true},
{Key: "voucher.reduce_amount", Field: "reduce_amount", Label: "立减额度", Hidden: true},
{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: true},
{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: true},
{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: "发券方式 1渠道用户id 2手机号或邮箱", Hidden: true},
{Key: "voucher.send_num", Field: "send_num", Label: "发放数量", Hidden: true},
{Key: "voucher.is_webview", Field: "is_webview", Label: "是否webview方式打开 0 :否 1是", Hidden: true},
{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: true},
{Key: "voucher_batch.channel_activity_id", Field: "channel_activity_id", Label: "渠道立减金批次号", Hidden: true},
{Key: "voucher_batch.temp_no", Field: "temp_no", Label: "券模板编号 支付宝类型才有", Hidden: true},
{Key: "voucher_batch.weight", Field: "weight", Label: "权重", Hidden: true},
{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 默认 true
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: true},
{Key: "activity.name", Field: "name", Label: "活动名称", Hidden: true},
{Key: "activity.activity_no", Field: "activity_no", Label: "活动编号", Hidden: true},
{Key: "activity.status", Field: "status", Label: "状态 1:待审核 2:已驳回 3:已生效 4:暂停中 5:已作废 6:已失效", Hidden: true},
{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: true},
{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: "结算方式 1:发放结算 2:打开结算 3:领用结算 4:核销结算", Hidden: true},
{Key: "activity.key_expire_type", Field: "key_expire_type", Label: "key有效期类型", Hidden: true},
{Key: "activity.key_valid_day", Field: "key_valid_day", Label: "Api调用有效天数", Hidden: true},
{Key: "activity.key_begin_time", Field: "key_begin_time", Label: "key码有效期开始时间-固定时间设置", Hidden: true},
{Key: "activity.key_end_time", Field: "key_end_time", Label: "key码有效期结束时间-固定时间设置", Hidden: true},
{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: "是否充值到账 1 是 2 卡单", 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: true},
{Key: "goods_voucher_batch.temp_no", Field: "temp_no", Label: "券模板编号 支付宝类型才有", Hidden: true},
{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: true},
{Key: "goods_voucher_subject_config.type", Field: "type", Label: "主体类型 1支付宝 2微信 3云闪付", Hidden: true},
{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: true},
{Key: "merchant.name", Field: "name", Label: "分销商名称", Hidden: true},
{Key: "merchant.subject", Field: "subject", Label: "分销商主体", Hidden: true},
{Key: "merchant.third_party", Field: "third_party", Label: "1 外部2内部", Hidden: true},
{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: true},
{Key: "order.key", Field: "key", Label: "KEY", Hidden: true},
{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: "类型 1 红包 2 直充/卡密 3 立减金", Hidden: true},
{Key: "order.status", Field: "status", Label: "状态 1 待充值 2充值中 3 充值成功 4 充值失败 5 已过期 6 已作废 7 核销成功 8 核销失败 9已重置", Hidden: true},
{Key: "order.contract_price", Field: "contract_price", Label: "合同单价", Hidden: true},
{Key: "order.official_price", Field: "official_price", Label: "官方价", Hidden: true},
{Key: "order.merchant_name", Field: "merchant_name", Label: "分销商名称", Hidden: true},
{Key: "order.activity_name", Field: "activity_name", Label: "活动名称", Hidden: true},
{Key: "order.goods_name", Field: "goods_name", Label: "商品名称", Hidden: true},
{Key: "order.num", Field: "num", Label: "购买数量", Hidden: true},
{Key: "order.pay_status", Field: "pay_status", Label: "支付状态", Hidden: true},
{Key: "order.supplier_product_name", Field: "supplier_product_name", Label: "供应商产品名称", Hidden: true},
{Key: "order.key_batch_id", Field: "key_batch_id", Label: "key批次", Hidden: true},
{Key: "order.is_inner", Field: "is_inner", Label: "是否内部供应商订单", Hidden: true},
{Key: "order.icon", Field: "icon", Label: "订单图片", Hidden: true},
{Key: "order.cost_price", Field: "cost_price", Label: "cost_price", Hidden: true},
{Key: "order.success_num", Field: "success_num", Label: "到账数量", Hidden: true},
{Key: "order.is_reset", Field: "is_reset", Label: "是否重置 1:是", Hidden: true},
{Key: "order.create_time", Field: "create_time", Label: "创建时间", Hidden: true},
{Key: "order.update_time", Field: "update_time", Label: "更新时间", Hidden: true},
{Key: "order.is_retry", Field: "is_retry", Label: "是否重试", Hidden: true},
{Key: "order.channel", Field: "channel", Label: "1 支付宝 2 微信 3 其他", 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: "supplier_name", Hidden: true},
{Key: "order.pay_amount", Field: "pay_amount", Label: "支付金额", Hidden: true},
{Key: "order.pay_time", Field: "pay_time", Label: "支付时间", Hidden: true},
{Key: "order.coupon_id", Field: "coupon_id", Label: "优惠券Id", Hidden: true},
{Key: "order.discount_amount", Field: "discount_amount", Label: "优惠金额", Hidden: true},
{Key: "order.out_trade_no", Field: "out_trade_no", Label: "out_trade_no", Hidden: true},
{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: true},
{Key: "order_cash.trade_no", Field: "trade_no", Label: "交易号", Hidden: true},
{Key: "order_cash.wechat_detail_id", Field: "wechat_detail_id", Label: "微信转账商家明细单号", Hidden: true},
{Key: "order_cash.channel", Field: "channel", Label: "渠道 1 支付宝 2 微信 3 云闪付", Hidden: true},
{Key: "order_cash.denomination", Field: "denomination", Label: "红包面额", Hidden: true},
{Key: "order_cash.account", Field: "account", Label: "领取账号", Hidden: true},
{Key: "order_cash.receive_name", Field: "receive_name", Label: "用户真实姓名", Hidden: true},
{Key: "order_cash.app_id", Field: "app_id", Label: "转账app_id", Hidden: true},
{Key: "order_cash.receive_status", Field: "receive_status", Label: "1:待领取 2:领取中 3:已领取 4:领取失败", Hidden: true},
{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: true},
{Key: "order_cash.expire_time", Field: "expire_time", Label: "过期时间", Hidden: true},
{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: true},
{Key: "order_digit.card_no", Field: "card_no", Label: "卡号", Hidden: true},
{Key: "order_digit.card_pass", Field: "card_pass", Label: "卡密", Hidden: true},
{Key: "order_digit.account", Field: "account", Label: "充值账号", Hidden: true},
{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: true},
{Key: "order_digit.supplier_product_no", Field: "supplier_product_no", Label: "供应商产品编码", Hidden: true},
{Key: "order_digit.order_type", Field: "order_type", Label: "1 直充 2 卡密", Hidden: true},
{Key: "order_digit.end_time", Field: "end_time", Label: "卡密有效期", Hidden: true},
{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: true},
{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: true},
{Key: "order_voucher.channel", Field: "channel", Label: "渠道 1 支付宝 2 微信 3 云闪付", Hidden: true},
{Key: "order_voucher.channel_batch_no", Field: "channel_batch_no", Label: "渠道立减金批次号", Hidden: true},
{Key: "order_voucher.account", Field: "account", Label: "发券账号", Hidden: true},
{Key: "order_voucher.channel_voucher_id", Field: "channel_voucher_id", Label: "渠道立减金ID", Hidden: true},
{Key: "order_voucher.app_id", Field: "app_id", Label: "领取应用id", Hidden: true},
{Key: "order_voucher.status", Field: "status", Label: "状态 1 待充值 2充值中 3 充值成功 4 充值失败", Hidden: true},
{Key: "order_voucher.receive_error", Field: "receive_error", Label: "发券失败原因", Hidden: true},
{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: true},
{Key: "order_voucher.refund_time", Field: "refund_time", Label: "退款时间", Hidden: true},
{Key: "order_voucher.expire_time", Field: "expire_time", Label: "未核销过期时间", Hidden: true},
{Key: "order_voucher.create_time", Field: "create_time", Label: "创建时间", Hidden: true},
{Key: "order_voucher.receive_mode", Field: "receive_mode", Label: "领取类型", Hidden: true},
},
},
}
}
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
}