- 4张表: voucher_template, voucher_rule, voucher_instance, voucher_usage_log - 可配置规则引擎: registry + validators + engine - 8种内置规则: min_amount, max_amount, applicable_product_type, applicable_product, exclude_product, max_usage_count, valid_period, user_level - CRUD定义 + API接口 + 前端页面 - SQL建表脚本 + RBAC权限配置 - 一次性使用,不找零
51 lines
2.6 KiB
JSON
51 lines
2.6 KiB
JSON
{
|
|
"summary": [
|
|
{
|
|
"name": "voucher_instance",
|
|
"title": "代金券实例",
|
|
"primary": ["id"],
|
|
"catelog": "entity"
|
|
}
|
|
],
|
|
"fields": [
|
|
{"name": "id", "title": "主键ID", "type": "str", "length": 32, "nullable": "no"},
|
|
{"name": "template_id", "title": "模板ID", "type": "str", "length": 32, "nullable": "no"},
|
|
{"name": "customer_id", "title": "客户ID", "type": "str", "length": 32, "nullable": "no"},
|
|
{"name": "code", "title": "唯一券码", "type": "str", "length": 64, "nullable": "no"},
|
|
{"name": "status", "title": "状态", "type": "str", "length": 16, "nullable": "no", "default": "unused"},
|
|
{"name": "face_value", "title": "面值", "type": "double", "length": 10, "dec": 2, "nullable": "no"},
|
|
{"name": "actual_deducted", "title": "实际抵扣金额", "type": "double", "length": 10, "dec": 2, "nullable": "yes"},
|
|
{"name": "valid_from", "title": "生效时间", "type": "datetime", "nullable": "no"},
|
|
{"name": "valid_to", "title": "过期时间", "type": "datetime", "nullable": "no"},
|
|
{"name": "issued_at", "title": "发放时间", "type": "datetime", "nullable": "no"},
|
|
{"name": "used_at", "title": "使用时间", "type": "datetime", "nullable": "yes"},
|
|
{"name": "order_id", "title": "使用的订单ID", "type": "str", "length": 64, "nullable": "yes"},
|
|
{"name": "source", "title": "来源", "type": "str", "length": 32, "nullable": "yes"},
|
|
{"name": "remark", "title": "备注", "type": "str", "length": 255, "nullable": "yes"},
|
|
{"name": "created_at", "title": "创建时间", "type": "timestamp", "nullable": "no"},
|
|
{"name": "updated_at", "title": "更新时间", "type": "timestamp", "nullable": "no"}
|
|
],
|
|
"indexes": [
|
|
{"name": "idx_instance_code", "idxtype": "unique", "idxfields": ["code"]},
|
|
{"name": "idx_instance_customer", "idxtype": "index", "idxfields": ["customer_id"]},
|
|
{"name": "idx_instance_template", "idxtype": "index", "idxfields": ["template_id"]},
|
|
{"name": "idx_instance_status", "idxtype": "index", "idxfields": ["status"]},
|
|
{"name": "idx_instance_valid_to", "idxtype": "index", "idxfields": ["valid_to"]}
|
|
],
|
|
"codes": [
|
|
{
|
|
"field": "template_id",
|
|
"table": "voucher_template",
|
|
"valuefield": "id",
|
|
"textfield": "name"
|
|
},
|
|
{
|
|
"field": "status",
|
|
"table": "appcodes_kv",
|
|
"valuefield": "k",
|
|
"textfield": "v",
|
|
"cond": "parentid='voucher_instance_status'"
|
|
}
|
|
]
|
|
}
|