确保任务设置的表单数据正确对应 shop_lottery_condition
数据表结构,实现数据的正确存储和提交。
字段名 | 数据类型 | 说明 | 示例值 |
---|---|---|---|
type |
tinyint(1) | 条件类型: 1=购买指定商品 2=单笔订单消费满额 3=单次充值满额 4=活动期间累计消费满额 | 1, 2, 3, 4 |
condition_value |
decimal(10,2) | 条件值(金额) | 100.00 |
goods_ids |
text | 商品ID列表(JSON格式) | [1,2,3] |
goods_rule |
tinyint(1) | 商品规则: 1=指定商品参与 2=指定商品不可参与 | 1, 2 |
reward_times |
int(11) | 满足条件奖励抽奖次数 | 1 |
is_repeatable |
tinyint(1) | 是否可重复获得: 0=否 1=是 | 0, 1 |
<!-- 购买指定商品 -->
<input name="goods_select_type" value="include">
<input name="task_goods_ids[]" value="1">
<input name="task_goods_ids[]" value="2">
<!-- 消费满额 -->
<input name="task_amount_2" value="100">
<input name="task_amount_3" value="200">
<input name="task_amount_4" value="500">
<!-- 购买指定商品 (type=1) -->
<input name="condition[1][type]" value="1">
<input name="condition[1][goods_rule]" value="1">
<input name="condition[1][goods_ids]" value="[1,2,3]">
<!-- 单笔消费满额 (type=2) -->
<input name="condition[2][type]" value="2">
<input name="condition[2][condition_value]" value="100">
<!-- 单次充值满额 (type=3) -->
<input name="condition[3][type]" value="3">
<input name="condition[3][condition_value]" value="200">
<!-- 累计消费满额 (type=4) -->
<input name="condition[4][type]" value="4">
<input name="condition[4][condition_value]" value="500">
修改的HTML字段:
<!-- 条件类型隐藏字段 -->
<input type="hidden" name="condition[1][type]" value="1">
<!-- 商品规则 -->
<input type="radio" name="condition[1][goods_rule]" value="1" checked> 指定商品参与
<input type="radio" name="condition[1][goods_rule]" value="2"> 指定商品不可参与
<!-- 商品ID列表隐藏字段 -->
<input type="hidden" name="condition[1][goods_ids]" value="" id="task-goods-ids-1">
JavaScript处理:
// 多选商品完成后,更新隐藏字段
function updateTaskGoods(selectedGoods) {
var goodsIds = selectedGoods.map(function(item) {
return item.id;
});
$('#task-goods-ids-1').val(JSON.stringify(goodsIds));
}
单笔订单消费满额 (Type=2):
<input type="hidden" name="condition[2][type]" value="2">
<input name="condition[2][condition_value]" min="0.01" step="0.01">
单次充值满额 (Type=3):
<input type="hidden" name="condition[3][type]" value="3">
<input name="condition[3][condition_value]" min="0.01" step="0.01">
活动期间累计消费满额 (Type=4):
<input type="hidden" name="condition[4][type]" value="4">
<input name="condition[4][condition_value]" min="0.01" step="0.01">
// 用户勾选任务类型复选框
$(document).on('change', 'input[name="row[task_type][]"]', function() {
var type = parseInt($(this).val());
$('#task-setting-' + type).show();
});
// 使用专门的任务商品模板
selectTaskGoods: function(container) {
Controller.api.selectGoods({
mode: 'multiple',
title: '选择参与商品',
container: container,
template: 'task-goods-template',
callback: function(data) {
if (data && data.length > 0) {
var goodsIds = data.map(function(item) {
return item.id;
});
$('#task-goods-ids-1').val(JSON.stringify(goodsIds));
}
}
});
}
{
"condition": {
"1": {
"type": 1,
"goods_rule": 1,
"goods_ids": "[1,3,5]"
},
"2": {
"type": 2,
"condition_value": "99.00"
},
"3": {
"type": 3,
"condition_value": "200.00"
},
"4": {
"type": 4,
"condition_value": "1000.00"
}
}
}
condition[type][field]
结构化字段condition[1][goods_ids]
的值[1,2,3]
99.00
condition
数组数据