package schema type marketingSchema struct{} func (marketingSchema) TableName(t string) string { return t } func (marketingSchema) MapField(t, f string) (string, bool) { return f, true } func (marketingSchema) BuildJoins(need map[string]bool, main string) []string { out := []string{} if need["order_detail"] { out = append(out, " LEFT JOIN `order_detail` ON `order_detail`.order_number = `order`.order_number") } if need["order_cash"] { out = append(out, " LEFT JOIN `order_cash` ON `order_cash`.order_number = `order`.order_number") } if need["order_voucher"] { out = append(out, " LEFT JOIN `order_voucher` ON `order_voucher`.order_number = `order`.order_number") } if need["plan"] || need["key_batch"] { out = append(out, " LEFT JOIN `plan` ON `plan`.id = `order`.plan_id") } if need["key_batch"] { out = append(out, " LEFT JOIN `key_batch` ON `key_batch`.plan_id = `plan`.id") } if need["code_batch"] { out = append(out, " LEFT JOIN `code_batch` ON `code_batch`.key_batch_id = `key_batch`.id") } if need["voucher"] { out = append(out, " LEFT JOIN `voucher` ON `voucher`.channel_activity_id = `order_voucher`.channel_activity_id") } if need["voucher_batch"] { out = append(out, " LEFT JOIN `voucher_batch` ON `voucher_batch`.voucher_id = `voucher`.id") } if need["merchant_key_send"] { out = append(out, " LEFT JOIN `merchant_key_send` ON `order`.`key` = `merchant_key_send`.key") } return out } func (marketingSchema) FilterColumn(key string) (string, string, bool) { switch key { case "creator_in": return "order", "creator", true case "create_time_between": return "order", "create_time", true case "type_eq": return "order", "type", true case "out_trade_no_eq": return "order", "out_trade_no", true case "account_eq": return "order", "account", true case "plan_id_eq": return "order", "plan_id", true case "key_batch_id_eq": return "order", "key_batch_id", true case "product_id_eq": return "order", "product_id", true case "reseller_id_eq": return "order", "reseller_id", true case "code_batch_id_eq": return "order", "code_batch_id", true case "order_cash_cash_activity_id_eq": return "order_cash", "cash_activity_id", true case "order_voucher_channel_activity_id_eq": return "order_voucher", "channel_activity_id", true case "voucher_batch_channel_activity_id_eq": return "voucher_batch", "channel_activity_id", true case "merchant_out_biz_no_eq": return "merchant_key_send", "out_biz_no", true default: return "", "", false } }