提交
This commit is contained in:
parent
e85bdc0976
commit
7749e26e2c
|
|
@ -9,6 +9,7 @@ use app\common\model\Danye as DanyeModel;
|
|||
|
||||
class Danye extends Base
|
||||
{
|
||||
public $page = '50';
|
||||
public function index()
|
||||
{
|
||||
$whe = [];
|
||||
|
|
@ -47,7 +48,7 @@ class Danye extends Base
|
|||
if (!$info) {
|
||||
return $this->renderError('请求参数错误1');
|
||||
}
|
||||
if ($info['id'] != 1) {
|
||||
if ($info['id'] != 1 && $info['id'] < 21) {
|
||||
unset($data['title']);
|
||||
}
|
||||
$data['update_time'] = time();
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ class Goods extends Base
|
|||
}
|
||||
$data['prize_num'] = 0;
|
||||
$data['category_id'] = 0;
|
||||
} elseif ($data['type'] == 2) {
|
||||
} elseif ($data['type'] == 2 || $data['type'] == 16) {
|
||||
$data['stock'] = 0;
|
||||
$data['lock_is'] = 0;
|
||||
$data['lock_time'] = 0;
|
||||
|
|
@ -390,7 +390,7 @@ class Goods extends Base
|
|||
}
|
||||
$data['prize_num'] = 0;
|
||||
$data['category_id'] = 0;
|
||||
} elseif ($type == 2) {
|
||||
} elseif ($type == 2 || $type == 16) {
|
||||
$data['stock'] = 0;
|
||||
$data['lock_is'] = 0;
|
||||
$data['lock_time'] = 0;
|
||||
|
|
@ -573,6 +573,7 @@ class Goods extends Base
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上、下架,删除盒子
|
||||
*/
|
||||
|
|
@ -613,45 +614,88 @@ class Goods extends Base
|
|||
return $this->renderError('请求参数错误');
|
||||
}
|
||||
$type = $info['type'];
|
||||
$title = trim(input('get.title'));
|
||||
$lian_ji_type = input('get.lian_ji_type');
|
||||
$whe = array();
|
||||
$whe[] = ['goods_id', '=', $goods_id];
|
||||
|
||||
View::assign('goods_id', $goods_id);
|
||||
View::assign('type', $type);
|
||||
return View::fetch("Goods/goodslist");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取奖品列表数据(前后端分离接口)
|
||||
*/
|
||||
public function getGoodsListData(Request $request)
|
||||
{
|
||||
$goods_id = $request->param('goods_id/d', 0);
|
||||
$page = $request->param('page/d', 1);
|
||||
$limit = $request->param('limit/d', 50);
|
||||
$title = $request->param('title/s', '');
|
||||
$lian_ji_type = $request->param('lian_ji_type/s', '');
|
||||
|
||||
$info = GoodsModel::where(['id' => $goods_id])->find();
|
||||
if (!$info) {
|
||||
return $this->renderError('请求参数错误');
|
||||
}
|
||||
$type = $info['type'];
|
||||
|
||||
$where = [];
|
||||
$where[] = ['goods_id', '=', $goods_id];
|
||||
|
||||
if ($type == 1 || $type == 3 || $type == 5 || $type == 6 || $type == 10 || $type == 11) {
|
||||
$whe[] = ['num', '=', 1];
|
||||
} elseif ($type == 2 || $type == 8 || $type == 9 || $type == 15) {
|
||||
$whe[] = ['num', '=', 0];
|
||||
$where[] = ['num', '=', 1];
|
||||
} elseif ($type == 2 || $type == 8 || $type == 9 || $type == 15 || $type == 16) {
|
||||
$where[] = ['num', '=', 0];
|
||||
} else {
|
||||
return $this->renderError('请求参数错误1');
|
||||
}
|
||||
|
||||
if (!empty($title)) {
|
||||
$whe[] = ['title', 'like', '%' . $title . '%'];
|
||||
$where[] = ['title', 'like', "%{$title}%"];
|
||||
}
|
||||
if (!empty($lian_ji_type)) {
|
||||
$whe[] = ['lian_ji_type', '=', $lian_ji_type];
|
||||
$where[] = ['lian_ji_type', '=', $lian_ji_type];
|
||||
}
|
||||
$field = "*";
|
||||
$order = "sort desc,shang_id asc,id asc";
|
||||
$data = GoodsList::getList($whe, $field, $order, 150);
|
||||
$real_pro = 0;
|
||||
foreach ($data['list'] as &$value) {
|
||||
$value['shang'] = Shang::where(['id' => $value['shang_id']])->value('title');
|
||||
// if ($value['goods_type'] == 2) {
|
||||
// $value['sale_time'] = date('Y-m-d', $value['sale_time']);
|
||||
// } else {
|
||||
// $value['sale_time'] = '';
|
||||
// }
|
||||
$real_pro += $value['real_pro'];
|
||||
}
|
||||
View::assign('list', $data['list']);
|
||||
View::assign('count', $data['count']);
|
||||
View::assign('page', $data['page']);
|
||||
View::assign('goods_id', $goods_id);
|
||||
View::assign('type', $type);
|
||||
View::assign('real_pro', $real_pro);
|
||||
return View::fetch("Goods/goodslist");
|
||||
|
||||
$where[] = ['goods_list_id', '=', 0];
|
||||
$query = GoodsList::where($where)->order('sort desc, shang_id asc, id asc');
|
||||
$count = $query->count();
|
||||
|
||||
$list = $query->page($page, $limit)->select()->toArray();
|
||||
$real_pro = 0;
|
||||
|
||||
// 处理数据
|
||||
foreach ($list as &$item) {
|
||||
$item['shang'] = Shang::where(['id' => $item['shang_id']])->value('title');
|
||||
$item['imgurl'] = imageUrl($item['imgurl']);
|
||||
if (!empty($item['imgurl_detail'])) {
|
||||
$item['imgurl_detail'] = imageUrl($item['imgurl_detail']);
|
||||
}
|
||||
$real_pro += $item['real_pro'];
|
||||
if ($item['goods_type'] == 4) {
|
||||
$goods_list = GoodsList::where('goods_id', $item['goods_id'])
|
||||
->where('goods_list_id', '=', $item['id'])
|
||||
->select()
|
||||
->toArray();
|
||||
if ($goods_list) {
|
||||
$item['isParent'] = 'true';
|
||||
$real_pro1 = 0;
|
||||
|
||||
foreach ($goods_list as &$goods_list_item) {
|
||||
$goods_list_item['shang'] = Shang::where(['id' => $goods_list_item['shang_id']])->value('title');
|
||||
$goods_list_item['imgurl'] = imageUrl($goods_list_item['imgurl']);
|
||||
if (!empty($goods_list_item['imgurl_detail'])) {
|
||||
$goods_list_item['imgurl_detail'] = imageUrl($goods_list_item['imgurl_detail']);
|
||||
}
|
||||
$real_pro1 += $goods_list_item['real_pro'];
|
||||
}
|
||||
if ($type == 2 || $type == 8 || $type == 9 || $type == 15 || $type == 16) {
|
||||
$goods_list[] = ['title' => '宝箱概率合计', 'real_pro' => $real_pro1, 'id' => -1];
|
||||
}
|
||||
$item['children'] = $goods_list;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $this->renderTable('获取成功', $count, $list, ['code' => 0, 'real_pro' => $real_pro]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -662,12 +706,16 @@ class Goods extends Base
|
|||
if (!$request->isPost()) {
|
||||
$goods_id = $request->param('goods_id/d', 0);
|
||||
$info = GoodsModel::where(['id' => $goods_id])->find();
|
||||
$goods_list_id = $request->param('goods_list_id/d', 0);
|
||||
if (!$info) {
|
||||
return $this->renderError('请求参数错误');
|
||||
}
|
||||
if ($info['type'] == 1 || $info['type'] == 5 || $info['type'] == 10 || $info['type'] == 11 || $info['type'] == 6) {
|
||||
$shang = Shang::where('id', '<=', 33)->where('id', '<>', 5)->select()->toArray();
|
||||
} elseif ($info['type'] == 2 || $info['type'] == 8 || $info['type'] == 9) {
|
||||
if( $goods_list_id){
|
||||
$shang = Shang::where('id', '<=', 33)->where('id', '>', 5)->select()->toArray();
|
||||
}
|
||||
} elseif ($info['type'] == 2 || $info['type'] == 8 || $info['type'] == 9 || $info['type'] == 16) {
|
||||
$shang = Shang::where('id', 'between', [34, 38])->select()->toArray();
|
||||
} elseif ($info['type'] == 3) {
|
||||
$shang = Shang::where('id', 'between', [4, 33])->select()->toArray();
|
||||
|
|
@ -678,6 +726,7 @@ class Goods extends Base
|
|||
}
|
||||
View::assign('shang', $shang);
|
||||
View::assign('goods_id', $goods_id);
|
||||
View::assign('goods_list_id', $goods_list_id);
|
||||
View::assign('type', $info['type']);
|
||||
return View::fetch('Goods/goodslist_add');
|
||||
} else {
|
||||
|
|
@ -707,7 +756,7 @@ class Goods extends Base
|
|||
}
|
||||
if ($data['goods_type'] == 1) {
|
||||
$data['sale_time'] = 0;
|
||||
} else if (in_array($data['goods_type'], [2, 8, 9])) {
|
||||
} else if (in_array($data['goods_type'], [2, 8, 9, 16])) {
|
||||
if (empty($data['sale_time'])) {
|
||||
return $this->renderError('请选择预售时间');
|
||||
}
|
||||
|
|
@ -718,6 +767,8 @@ class Goods extends Base
|
|||
}
|
||||
} elseif ($type == 15) {
|
||||
$data['sale_time'] = 0;
|
||||
} elseif ($data['goods_type'] == 3 || $data['goods_type'] == 4) {
|
||||
$data['sale_time'] = 0;
|
||||
} else {
|
||||
return $this->err('奖品类型选择错误');
|
||||
}
|
||||
|
|
@ -745,9 +796,9 @@ class Goods extends Base
|
|||
$data['prize_code'] = $prize_code;
|
||||
$save_sports_data[] = $data;
|
||||
}
|
||||
} elseif (in_array($type, [2, 8, 9])) {
|
||||
if (RegMoney($data['real_pro'] * 100)) {
|
||||
return $this->renderError('真实概率设置错误,最多保留两位小数1');
|
||||
} elseif (in_array($type, [2, 8, 9, 16])) {
|
||||
if (RegMoney($data['real_pro'] * 10000)) {
|
||||
return $this->renderError('真实概率设置错误,最多保留四位小数');
|
||||
}
|
||||
|
||||
$prize_code = getPrizeCode() . '_' . time();
|
||||
|
|
@ -817,6 +868,7 @@ class Goods extends Base
|
|||
if (!$request->isPost()) {
|
||||
$id = $request->param('id/d', 0);
|
||||
$goods = GoodsList::where(['id' => $id])->find();
|
||||
$goods_list_id = $request->param('goods_list_id/d', 0);
|
||||
if (!$goods) {
|
||||
return $this->renderError('请求参数错误');
|
||||
}
|
||||
|
|
@ -832,7 +884,10 @@ class Goods extends Base
|
|||
}
|
||||
if ($info['type'] == 1 || $info['type'] == 5 || $info['type'] == 6 || $info['type'] == 10 | $info['type'] == 11) {
|
||||
$shang = Shang::where('id', '<=', 33)->where('id', '<>', 5)->select()->toArray();
|
||||
} elseif ($info['type'] == 2 || $info['type'] == 8 || $info['type'] == 9) {
|
||||
if( $goods_list_id){
|
||||
$shang = Shang::where('id', '<=', 33)->where('id', '>', 5)->select()->toArray();
|
||||
}
|
||||
} elseif ($info['type'] == 2 || $info['type'] == 8 || $info['type'] == 9 || $info['type'] == 16) {
|
||||
$shang = Shang::where('id', 'between', [34, 38])->select()->toArray();
|
||||
} elseif ($info['type'] == 15) {
|
||||
$shang = Shang::where('id', '>=', 114)->select()->toArray();
|
||||
|
|
@ -845,6 +900,7 @@ class Goods extends Base
|
|||
View::assign('goods', $goods);
|
||||
View::assign('shang', $shang);
|
||||
View::assign('type', $info['type']);
|
||||
View::assign('goods_list_id', $goods_list_id);
|
||||
return View::fetch('Goods/goodslist_edit');
|
||||
} else {
|
||||
|
||||
|
|
@ -887,7 +943,7 @@ class Goods extends Base
|
|||
if ($today_time >= $data['sale_time']) {
|
||||
return $this->renderError('预售时间请在今天之后');
|
||||
}
|
||||
} elseif ($data['goods_type'] == 3) {
|
||||
} elseif ($data['goods_type'] == 3 || $data['goods_type'] == 4) {
|
||||
$data['sale_time'] = 0;
|
||||
} else {
|
||||
return $this->err('奖品类型选择错误');
|
||||
|
|
@ -899,9 +955,9 @@ class Goods extends Base
|
|||
|
||||
if ($type == 1 || $type == 5 || $type == 10 || $type == 6 || $type == 11 || $type == 15) {
|
||||
|
||||
} elseif ($type == 2 || $type == 8 || $type == 9) {
|
||||
if (RegMoney($data['real_pro'] * 1000)) {
|
||||
return $this->renderError('真实概率设置错误,最多保留两位小数');
|
||||
} elseif ($type == 2 || $type == 8 || $type == 9 || $type == 16) {
|
||||
if (RegMoney($data['real_pro'] * 10000)) {
|
||||
return $this->renderError('真实概率设置错误,最多保留四位小数');
|
||||
}
|
||||
} else if ($type == 3) {
|
||||
if (RegInt($data['prize_num']) && $data['shang_id'] == 5) {
|
||||
|
|
|
|||
|
|
@ -161,6 +161,7 @@ Route::rule('card_set', 'CardGoods/card_set', 'GET|POST');
|
|||
#============================
|
||||
Route::rule('goods', 'Goods/goods', 'GET|POST');
|
||||
Route::rule('api/goods/list', 'Goods/getGoodsList', 'GET');
|
||||
Route::rule('getGoodsListData', 'Goods/getGoodsListData', 'GET|POST');
|
||||
Route::rule('api/goods/types', 'Goods/getGoodsTypeList', 'GET');
|
||||
Route::rule('goods_add', 'Goods/goods_add', 'GET|POST');
|
||||
Route::rule('goods_edit', 'Goods/goods_edit', 'GET|POST');
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
<div class="layui-input-block">
|
||||
<input type="text" name="title" value="{$info['title']}" lay-verify="required"
|
||||
placeholder="请输入标题" autocomplete="off" class="layui-input" {if
|
||||
condition="$info['id'] neq 1" }readonly{/if}>
|
||||
condition="$info['id'] lt 20" }readonly{/if}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@
|
|||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否首抽五折</label>
|
||||
<div class="layui-input-inline" style="width: 700px">
|
||||
<input type="radio" name="is_shou_zhe" value="0" lay-filter="type"
|
||||
<input type="radio" name="is_shou_zhe" value="0" lay-filter="shou_zhe"
|
||||
class="layui-input" title="否" checked>
|
||||
<input type="radio" name="is_shou_zhe" value="1" lay-filter="type"
|
||||
<input type="radio" name="is_shou_zhe" value="1" lay-filter="shou_zhe"
|
||||
class="layui-input" title="是">
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -358,6 +358,8 @@
|
|||
$(".lian_ji_num").hide();
|
||||
$(".lian_ji_shang_id").hide();
|
||||
form.on('radio(type)', function (data) {
|
||||
console.log('aaa');
|
||||
|
||||
var value = data.value; // 当前选中的value值
|
||||
$("#div_daily_xiangou").show();
|
||||
$("#goods_describe_div").hide();
|
||||
|
|
@ -382,7 +384,7 @@
|
|||
$(".lingzhu_shang_id").hide();
|
||||
$(".lian_ji_num").hide();
|
||||
$(".lian_ji_shang_id").hide();
|
||||
} else if (value == 2) {
|
||||
} else if (value == 2 || value == 16) {
|
||||
$(".id_stock").hide();
|
||||
$(".id_lock_is").hide();
|
||||
$(".id_lock_time").hide();
|
||||
|
|
@ -546,6 +548,13 @@
|
|||
$('.xiajia-config').hide();
|
||||
}
|
||||
});
|
||||
|
||||
// 首抽五折切换事件
|
||||
form.on('radio(shou_zhe)', function (data) {
|
||||
// 仅记录选择,不做界面显示变化
|
||||
console.log('首抽五折设置为:', data.value);
|
||||
});
|
||||
|
||||
//执行实例
|
||||
upload.render({
|
||||
accept: 'imgurl'
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@
|
|||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否首抽五折</label>
|
||||
<div class="layui-input-inline" style="width: 700px">
|
||||
<input type="radio" name="is_shou_zhe" value="0" lay-filter="type"
|
||||
<input type="radio" name="is_shou_zhe" value="0" lay-filter="shou_zhe"
|
||||
class="layui-input" title="否" {if $info.is_shou_zhe eq 0} checked {/if}>
|
||||
<input type="radio" name="is_shou_zhe" value="1" lay-filter="type"
|
||||
<input type="radio" name="is_shou_zhe" value="1" lay-filter="shou_zhe"
|
||||
class="layui-input" title="是" {if $info.is_shou_zhe eq 1} checked {/if}>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -65,7 +65,8 @@
|
|||
class="layui-input" style="width: 600px">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item flw_time_config" {if $type eq 15}style="display: block;"{else}style="display: none;"{/if}>
|
||||
{if $type eq 15}
|
||||
<div class="layui-form-item flw_time_config" style="display: block;">
|
||||
<label class="layui-form-label">开始时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="flw_start_time" id="flw_start_time"
|
||||
|
|
@ -73,7 +74,7 @@
|
|||
placeholder="请选择开始时间" class="layui-input" style="width: 600px">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item flw_time_config" {if $type eq 15}style="display: block;"{else}style="display: none;"{/if}>
|
||||
<div class="layui-form-item flw_time_config" style="display: block;">
|
||||
<label class="layui-form-label">结束时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="flw_end_time" id="flw_end_time"
|
||||
|
|
@ -81,7 +82,7 @@
|
|||
placeholder="请选择结束时间" class="layui-input" style="width: 600px">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item flw_time_config" {if $type eq 15}style="display: block;"{else}style="display: none;"{/if}>
|
||||
<div class="layui-form-item flw_time_config" style="display: block;">
|
||||
<label class="layui-form-label">开奖时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="open_time" id="open_time"
|
||||
|
|
@ -89,6 +90,7 @@
|
|||
placeholder="请选择开奖时间" class="layui-input" style="width: 600px">
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="layui-form-item id_stock">
|
||||
<label class="layui-form-label">套数</label>
|
||||
<div class="layui-input-inline">
|
||||
|
|
@ -350,6 +352,12 @@
|
|||
var value = data.value; // 当前选中的value值
|
||||
type_switch(value);
|
||||
});
|
||||
|
||||
// 首抽五折切换事件
|
||||
form.on('radio(shou_zhe)', function (data) {
|
||||
// 仅记录选择,不做界面显示变化
|
||||
console.log('首抽五折设置为:', data.value);
|
||||
});
|
||||
|
||||
function type_switch(value) {
|
||||
$('#isshouwchou').show();
|
||||
|
|
@ -376,7 +384,7 @@
|
|||
$(".lingzhu_shang_id").hide();
|
||||
$(".lian_ji_num").hide();
|
||||
$(".lian_ji_shang_id").hide();
|
||||
} else if (value == 2) {
|
||||
} else if (value == 2 || value == 16) {
|
||||
$(".id_stock").hide();
|
||||
$(".id_lock_is").hide();
|
||||
$(".id_lock_time").hide();
|
||||
|
|
@ -534,6 +542,15 @@
|
|||
}
|
||||
}
|
||||
|
||||
// 自动下架开关切换事件
|
||||
form.on('radio(autoXiajia)', function (data) {
|
||||
if (data.value == "1") {
|
||||
$('.xiajia-config').show();
|
||||
} else {
|
||||
$('.xiajia-config').hide();
|
||||
}
|
||||
});
|
||||
|
||||
//执行实例
|
||||
upload.render({
|
||||
accept: 'imgurl'
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
{include file="Public:header2"/}
|
||||
{include file="Public:header3"/}
|
||||
|
||||
<body>
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<form method="get" class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-block" style="margin-left: 0px">
|
||||
<input type="text" name="title" value="{$Request.get.title}" placeholder="请输入奖品标题"
|
||||
autocomplete="off" class="layui-input">
|
||||
<input type="text" name="title" id="searchTitle" value="{$Request.get.title}"
|
||||
placeholder="请输入奖品标题" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
{if $type eq 9}
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: 180px;margin-left: 0px">
|
||||
<select name="lian_ji_type" style="width:100%">
|
||||
<select name="lian_ji_type" id="searchLianJiType" style="width:100%">
|
||||
<option value="">--奖池分类--</option>
|
||||
<option value="0" {if condition="$Request.get.lian_ji_type eq 0" }selected{/if}>连击赏池
|
||||
</option>
|
||||
|
|
@ -24,165 +24,304 @@
|
|||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<input type="hidden" name="goods_id" value="{$goods_id}">
|
||||
<input type="hidden" id="goodsId" value="{$goods_id}">
|
||||
<input type="hidden" id="goodsType" value="{$type}">
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin mmm" lay-submit
|
||||
lay-filter="LAY-user-front-search">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" id="searchBtn">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<xblock>
|
||||
<div style="padding-bottom: 10px;">
|
||||
<a class="layui-btn" onclick="goodslist_add({$goods_id})">添加奖品</a>
|
||||
<span style="line-height:40px;float:right;">共有数据: {$count}条</span>
|
||||
</div>
|
||||
</xblock>
|
||||
<table class="layui-table" style="text-align:center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>奖品名称</th>
|
||||
<th>奖品图片</th>
|
||||
<th>商品详情图</th>
|
||||
<th>奖品售价</th>
|
||||
<th>奖品兑换价</th>
|
||||
{if $type eq 1 || $type eq 3 || $type eq 5 || $type eq 10 || $type eq 11|| $type eq 15}
|
||||
<th>奖品数量</th>
|
||||
{/if}
|
||||
{if $type eq 2 || $type eq 8 || $type eq 9}
|
||||
<th>真实概率({$real_pro})</th>
|
||||
{/if}
|
||||
{if $type eq 9}
|
||||
<th>奖池分类</th>
|
||||
{/if}
|
||||
<th>奖赏类型</th>
|
||||
<!-- <th>预售时间</th>-->
|
||||
<th>排序</th>
|
||||
<!-- <th>赠送编码</th>-->
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name="list" id="vo"}
|
||||
<tr>
|
||||
<td>{$vo['title']}</td>
|
||||
<td><img src="{PHP} echo imageUrl($vo['imgurl']){/php}" style="width:60px;height:60px;">
|
||||
</td>
|
||||
<td>
|
||||
{if condition="!empty($vo['imgurl_detail'])"}
|
||||
<img src="{PHP} echo imageUrl($vo['imgurl_detail']){/php}" style="width:60px;height:60px;">
|
||||
{else/}
|
||||
<span>无</span>
|
||||
{/if}
|
||||
</td>
|
||||
<td>{$vo['price']}</td>
|
||||
<td>{$vo['money']}</td>
|
||||
{if $type eq 1}
|
||||
{/if}
|
||||
{if $type eq 1 || $type eq 3 || $type eq 5 || $type eq 10 || $type eq 11 || $type eq 15}
|
||||
<td>{$vo['stock']}</td>
|
||||
{/if}
|
||||
{if $type eq 2 || $type eq 8 || $type eq 9}
|
||||
<td>{$vo['real_pro']}%</td>
|
||||
{/if}
|
||||
{if $type eq 9}
|
||||
{if condition="$vo['lian_ji_type'] eq 0"}
|
||||
<th>连击赏池</th>
|
||||
{elseif condition="$vo['lian_ji_type'] eq 1"}
|
||||
<th>秘宝池</th>
|
||||
{/if}
|
||||
{/if}
|
||||
<td>
|
||||
<button
|
||||
class="layui-btn layui-btn-info layui-btn-radius layui-btn-sm">{$vo['shang']}</button>
|
||||
</td>
|
||||
<!-- <td>{$vo.sale_time}</td>-->
|
||||
<td>{$vo['sort']}</td>
|
||||
<!-- <td style="text-align: left">{$vo['card_no']}</td>-->
|
||||
<td>
|
||||
<a style="text-decoration:none" title="编辑" onclick="goodslist_edit({$vo['id']})"
|
||||
class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">
|
||||
<i class="layui-icon layui-icon-edit"></i>编辑
|
||||
</a>
|
||||
<a style="text-decoration:none" title="删除" onClick="del({$vo.id})"
|
||||
class="layui-btn layui-btn-danger layui-btn-radius layui-btn-xs">删除</a>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
|
||||
{if condition="empty($list)"}
|
||||
<tr>
|
||||
<td colspan='10' style="text-align:center;">暂时没有数据!</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="layui-box layui-laypage layui-laypage-default">
|
||||
{$page|raw}
|
||||
<div style="padding-bottom: 10px;">
|
||||
<button class="layui-btn" id="addBtn">添加奖品</button>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<table id="goodsListTable" lay-filter="goodsListTable"></table>
|
||||
|
||||
<!-- 奖品类型模板 -->
|
||||
<script type="text/html" id="goodsTypeTpl">
|
||||
{{# if(d.id!=-1){ }}
|
||||
{{# if(d.goods_type === 1){ }}
|
||||
<span>现货</span>
|
||||
{{# } else if(d.goods_type === 2){ }}
|
||||
<span>预售</span>
|
||||
{{# } else if(d.goods_type === 3){ }}
|
||||
<span>货币</span>
|
||||
{{# } else if(d.goods_type === 4){ }}
|
||||
<span>宝箱</span>
|
||||
{{# } }}
|
||||
{{# } }}
|
||||
</script>
|
||||
<!-- 操作列模板 -->
|
||||
<script type="text/html" id="operationTpl">
|
||||
{{# if(d.id!=-1){ }}
|
||||
{{# if(d.goods_type === 4){ }}
|
||||
<a class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs" lay-event="add">
|
||||
<i class="layui-icon layui-icon-edit"></i>添加奖品
|
||||
</a>
|
||||
{{# } }}
|
||||
<a class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs" lay-event="edit">
|
||||
<i class="layui-icon layui-icon-edit"></i>编辑
|
||||
</a>
|
||||
<a class="layui-btn layui-btn-danger layui-btn-radius layui-btn-xs" lay-event="del">删除</a>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<!-- 图片模板 -->
|
||||
<script type="text/html" id="imgTpl">
|
||||
{{# if(d.id!=-1){ }}
|
||||
<img src="{{d.imgurl}}" style="width:60px;height:60px;">
|
||||
{{# } }}
|
||||
|
||||
</script>
|
||||
|
||||
<!-- 详情图模板 -->
|
||||
<script type="text/html" id="imgDetailTpl">
|
||||
{{# if(d.id!=-1){ }}
|
||||
{{# if(d.imgurl_detail){ }}
|
||||
<img src="{{d.imgurl_detail}}" style="width:60px;height:60px;">
|
||||
{{# } else { }}
|
||||
<span>无</span>
|
||||
{{# } }}
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<!-- 奖赏类型模板 -->
|
||||
<script type="text/html" id="shangTpl">
|
||||
{{# if(d.id!=-1){ }}
|
||||
<button class="layui-btn layui-btn-info layui-btn-radius layui-btn-sm">{{d.shang}}</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<!-- 奖池分类模板 -->
|
||||
<script type="text/html" id="lianJiTypeTpl">
|
||||
{{# if(d.id!=-1){ }}
|
||||
{{# if(d.lian_ji_type === 0){ }}
|
||||
<span>连击赏池</span>
|
||||
{{# } else if(d.lian_ji_type === 1){ }}
|
||||
<span>秘宝池</span>
|
||||
{{# } }}
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<!-- 价格信息模板 -->
|
||||
<script type="text/html" id="priceTpl">
|
||||
{{# if(d.id!=-1){ }}
|
||||
<div>售价: {{d.price}}</div>
|
||||
<div>兑换价: {{d.money}}</div>
|
||||
<div>参考价: {{d.sc_money}}</div>
|
||||
<div>id: {{d.id}}</div>
|
||||
<div>所属id: {{d.goods_list_id}}</div>
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{include file="Public:footer"/}
|
||||
{include file="Public:footer3"/}
|
||||
|
||||
<script type="text/javascript">
|
||||
layui.use(['layer', 'table'], function () {
|
||||
var $ = layui.$;
|
||||
layui.use(function () {
|
||||
var $ = layui.$,
|
||||
layer = layui.layer,
|
||||
table = layui.table,
|
||||
form = layui.form;
|
||||
var treeTable = layui.treeTable;
|
||||
// 获取PHP传递的值
|
||||
var goodsId = $('#goodsId').val();
|
||||
var goodsType = parseInt($('#goodsType').val());
|
||||
|
||||
})
|
||||
// 初始化表格
|
||||
initTable();
|
||||
|
||||
//添加奖品
|
||||
function goodslist_add(goods_id) {
|
||||
var url = "{:url('/admin/goodslist_add?goods_id=" + goods_id + "')}";
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '添加奖品',
|
||||
shadeClose: false,
|
||||
shade: 0.3,
|
||||
area: ['90%', '90%'],
|
||||
content: url,
|
||||
});
|
||||
}
|
||||
// 初始化表格
|
||||
function initTable() {
|
||||
// 构建表格列配置
|
||||
var columns = [];
|
||||
|
||||
// columns.push({ field: 'id', title: 'ID', minWidth: 80 });
|
||||
// columns.push({ field: 'goods_list_id', title: '所属宝箱id', minWidth: 80 });
|
||||
// 基础列
|
||||
columns.push({ field: 'title', title: '奖品名称', minWidth: 260 });
|
||||
columns.push({ field: 'goods_type', title: '奖品类型', templet: '#goodsTypeTpl', minWidth: 100 });
|
||||
// 通用列
|
||||
columns.push({ field: 'shang', title: '奖赏类型', templet: '#shangTpl', minWidth: 100, totalRow: false });
|
||||
columns.push({ field: 'imgurl', title: '奖品图片', templet: '#imgTpl', minWidth: 100 });
|
||||
columns.push({ field: 'imgurl_detail', title: '商品详情图', templet: '#imgDetailTpl', minWidth: 100 });
|
||||
columns.push({ field: 'price', title: '价格信息', templet: '#priceTpl', minWidth: 150 });
|
||||
|
||||
// 根据类型添加特定列
|
||||
if ([1, 3, 5,6, 10, 11, 15].indexOf(goodsType) > -1) {
|
||||
columns.push({ field: 'stock', title: '奖品数量', minWidth: 100 });
|
||||
}
|
||||
|
||||
if ([2, 8, 9, 16].indexOf(goodsType) > -1) {
|
||||
columns.push({
|
||||
field: 'real_pro', title: '真实概率', templet: function (d) {
|
||||
return d.real_pro + '%'
|
||||
}, minWidth: 140, totalRow: '总概率:{{= d.TOTAL_ROW.real_pro }}%'
|
||||
});
|
||||
}
|
||||
|
||||
if (goodsType === 16) {
|
||||
columns.push({ field: 'doubling', title: '赠送倍率', minWidth: 100 });
|
||||
}
|
||||
|
||||
if (goodsType === 9) {
|
||||
columns.push({ field: 'lian_ji_type', title: '奖池分类', templet: '#lianJiTypeTpl', minWidth: 100 });
|
||||
}
|
||||
|
||||
|
||||
columns.push({ field: 'sort', title: '排序', minWidth: 80 });
|
||||
columns.push({ title: '操作', toolbar: '#operationTpl', minWidth: 210, fixed: 'right' });
|
||||
|
||||
//编辑奖品
|
||||
function goodslist_edit(id) {
|
||||
var url = "{:url('/admin/goodslist_edit?id=" + id + "')}";
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '编辑奖品',
|
||||
shadeClose: false,
|
||||
shade: 0.3,
|
||||
area: ['90%', '90%'],
|
||||
content: url,
|
||||
});
|
||||
}
|
||||
// 渲染表格
|
||||
treeTable.render({
|
||||
elem: '#goodsListTable',
|
||||
url: '{:url("/admin/getGoodsListData")}',
|
||||
method: 'get',
|
||||
where: {
|
||||
goods_id: goodsId
|
||||
},
|
||||
lineStyle: 'height:100px',
|
||||
height: 'full-150',
|
||||
page: true,
|
||||
limit: 50,
|
||||
totalRow: true,
|
||||
tree: {
|
||||
enable: true,
|
||||
customName: {
|
||||
name: 'title',
|
||||
children: 'children',
|
||||
isParent: 'isParent',
|
||||
id: 'id'
|
||||
},
|
||||
view: {
|
||||
indent: 20,
|
||||
showIcon: false,
|
||||
expandAllDefault: true
|
||||
}
|
||||
},
|
||||
cols: [columns],
|
||||
parseData: (res) => {
|
||||
// console.log(res);
|
||||
// res.data[0].children = [res.data[1]];
|
||||
// res.data[0].children[0].id=9989;
|
||||
// res.data[0].isParent = true;
|
||||
// console.log(res.data);
|
||||
|
||||
|
||||
//上下架
|
||||
function del(id) {
|
||||
var title = "删除";
|
||||
layer.confirm('确认要执行' + title + '操作吗?', function () {
|
||||
var url = "{:url('/admin/goodslist_del')}";
|
||||
var load = layer.load(2);
|
||||
var $ = layui.$;
|
||||
$.post(url, { "id": id }, function (data) {
|
||||
if (data.status == 1) {
|
||||
layer.msg(title + '成功', { icon: 1, time: 1000 }, function () {
|
||||
location.reload();
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, { icon: 2, anim: 6, time: 1000 }, function () {
|
||||
layer.close(load);
|
||||
});
|
||||
return {
|
||||
"totalRow": {
|
||||
"real_pro": res.code.real_pro,
|
||||
},
|
||||
"code": res.code.code, //解析接口状态
|
||||
"msg": res.msg, //解析提示文本
|
||||
"count": res.count, //解析数据长度
|
||||
"data": res.data //解析数据列表
|
||||
};
|
||||
},
|
||||
done: function (res) {
|
||||
// 表格加载完成后的回调
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
// 搜索按钮点击事件
|
||||
$('#searchBtn').on('click', function () {
|
||||
var title = $('#searchTitle').val();
|
||||
var lianJiType = $('#searchLianJiType').val();
|
||||
|
||||
// 执行重载
|
||||
table.reload('goodsListTable', {
|
||||
where: {
|
||||
goods_id: goodsId,
|
||||
title: title,
|
||||
lian_ji_type: lianJiType
|
||||
},
|
||||
page: {
|
||||
curr: 1 // 重新从第1页开始
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 添加奖品按钮点击事件
|
||||
$('#addBtn').on('click', function () {
|
||||
openAddLayer(goodsId);
|
||||
});
|
||||
|
||||
// 监听表格工具条事件
|
||||
table.on('tool(goodsListTable)', function (obj) {
|
||||
var data = obj.data;
|
||||
if (obj.event === 'edit') {
|
||||
// 编辑
|
||||
openEditLayer(data.id, data.goods_list_id);
|
||||
} else if (obj.event === 'del') {
|
||||
// 删除
|
||||
deleteItem(data.id);
|
||||
} else if (obj.event === 'add') {
|
||||
console.log(data);
|
||||
openAddLayer(data.goods_id, data.id);
|
||||
}
|
||||
});
|
||||
|
||||
// 打开添加层
|
||||
function openAddLayer(goodsId, goods_list_id = '') {
|
||||
var url = "{:url('/admin/goodslist_add')}?goods_id=" + goodsId + "&goods_list_id=" + goods_list_id;
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '添加奖品',
|
||||
shadeClose: false,
|
||||
shade: 0.3,
|
||||
area: ['90%', '90%'],
|
||||
content: url,
|
||||
end: function () {
|
||||
// 刷新表格
|
||||
table.reload('goodsListTable');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 打开编辑层
|
||||
function openEditLayer(id, goods_list_id = '') {
|
||||
var url = "{:url('/admin/goodslist_edit')}?id=" + id + "&goods_list_id=" + goods_list_id;
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '编辑奖品',
|
||||
shadeClose: false,
|
||||
shade: 0.3,
|
||||
area: ['90%', '90%'],
|
||||
content: url,
|
||||
end: function () {
|
||||
// 刷新表格
|
||||
table.reload('goodsListTable');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 删除项目
|
||||
function deleteItem(id) {
|
||||
var title = "删除";
|
||||
layer.confirm('确认要执行' + title + '操作吗?', function () {
|
||||
var url = "{:url('/admin/goodslist_del')}";
|
||||
var load = layer.load(2);
|
||||
|
||||
$.post(url, { "id": id }, function (data) {
|
||||
if (data.status == 1) {
|
||||
layer.msg(title + '成功', { icon: 1, time: 1000 }, function () {
|
||||
// 刷新表格
|
||||
table.reload('goodsListTable');
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, { icon: 2, anim: 6, time: 1000 }, function () {
|
||||
layer.close(load);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
|
|
|
|||
|
|
@ -28,14 +28,19 @@
|
|||
{/if}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">奖品分类</label>
|
||||
<div class="layui-input-inline" style="width: 512px;">
|
||||
<div class="layui-input-inline" style="width:700px;">
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="1"
|
||||
title="现货" checked>
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="2"
|
||||
title="预售">
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="3"
|
||||
title="货币">
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="4"
|
||||
title="宝箱" {if $goods_list_id}disabled{/if}>
|
||||
<br />
|
||||
<span style="font-size: 12px;color: #999;">货币:抽到后直接发放,不会到用户的盒柜里</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">奖品类型</label>
|
||||
|
|
@ -68,7 +73,8 @@
|
|||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
{if $type eq 1 || $type eq 3 || $type eq 5 || $type eq 10 || $type eq 6 || $type eq 11 || $type eq 15}
|
||||
{if $type eq 1 || $type eq 3 || $type eq 5 || $type eq 10 || $type eq 6 || $type eq 11
|
||||
|| $type eq 15}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">奖品数量</label>
|
||||
<div class="layui-input-inline">
|
||||
|
|
@ -87,7 +93,7 @@
|
|||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if $type eq 2 || $type eq 8 || $type eq 9}
|
||||
{if $type eq 2 || $type eq 8 || $type eq 9 || $type eq 16}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">真实概率</label>
|
||||
<div class="layui-input-inline" style="width: 700px">
|
||||
|
|
@ -97,6 +103,16 @@
|
|||
</div>
|
||||
{/if}
|
||||
|
||||
{if $type eq 16}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">赠送倍率</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" name="doubling" value="1" autocomplete="off"
|
||||
placeholder="请输入赠送倍率" class="layui-input" style="width: 521px">
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="layui-form-item sale_time" style="display: none">
|
||||
<label class="layui-form-label">预售时间</label>
|
||||
<div class="layui-input-inline" style="width: 512px;">
|
||||
|
|
@ -129,13 +145,14 @@
|
|||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品详情图</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="hidden" name="imgurl_detail" value=""
|
||||
placeholder="请上传商品详情图" autocomplete="off" class="layui-input">
|
||||
<input type="hidden" name="imgurl_detail" value="" placeholder="请上传商品详情图"
|
||||
autocomplete="off" class="layui-input">
|
||||
<img style="float:left;width:120px;" class="" id="imgurl_detail"
|
||||
src="/static/image/upload.jpg">
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="goods_id" value="{$goods_id}">
|
||||
<input type="hidden" name="goods_list_id" value="{$goods_list_id}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" onclick="return check()">确认保存</button>
|
||||
|
|
@ -177,8 +194,9 @@
|
|||
$(".sale_time").hide()
|
||||
} else if (value == 2) {
|
||||
$(".sale_time").show()
|
||||
} else if (value == 3) {
|
||||
|
||||
} else if (value == 3 || value == 4) {
|
||||
$("#sale_time").val('')
|
||||
$(".sale_time").hide()
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,21 @@
|
|||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">奖品分类</label>
|
||||
<div class="layui-input-inline" style="width: 521px;">
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="1"
|
||||
title="现货" {if $goods.goods_type eq 1} checked {/if}>
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="2"
|
||||
title="预售" {if $goods.goods_type eq 2} checked {/if}>
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="3"
|
||||
title="货币" {if $goods.goods_type eq 3} checked {/if}>
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="4"
|
||||
title="宝箱" {if $goods_list_id}disabled{/if} {if $goods.goods_type eq 4} checked {/if}>
|
||||
<br />
|
||||
<span style="font-size: 12px;color: #999;">货币:抽到后直接发放,不会到用户的盒柜里</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">奖品类型</label>
|
||||
<div class="layui-input-inline" style="width: 521px">
|
||||
|
|
@ -79,7 +94,7 @@
|
|||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if $type eq 2 || $type eq 8 || $type eq 9}
|
||||
{if $type eq 2 || $type eq 8 || $type eq 9 || $type eq 16}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">真实概率</label>
|
||||
<div class="layui-input-inline" style="width: 700px">
|
||||
|
|
@ -89,19 +104,19 @@
|
|||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if $type eq 16}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">奖品类型</label>
|
||||
<div class="layui-input-inline" style="width: 521px;">
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="1"
|
||||
title="现货" {if $goods.goods_type eq 1} checked {/if}>
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="2"
|
||||
title="预售" {if $goods.goods_type eq 2} checked {/if}>
|
||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="3"
|
||||
title="货币" {if $goods.goods_type eq 3} checked {/if}>
|
||||
<label class="layui-form-label">赠送倍率</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" name="doubling" value="{$goods.doubling|default=1}"
|
||||
autocomplete="off" placeholder="请输入赠送倍率" class="layui-input"
|
||||
style="width: 521px">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item sale_time" {if $goods.goods_type eq 1 || $goods.goods_type eq 3} style="display: none"
|
||||
{/if}>
|
||||
{/if}
|
||||
|
||||
<div class="layui-form-item sale_time" {if $goods.goods_type eq 1 || $goods.goods_type
|
||||
eq 3 || $goods.goods_type eq 4} style="display: none" {/if}>
|
||||
<label class="layui-form-label">预售时间</label>
|
||||
<div class="layui-input-inline" style="width: 521px;">
|
||||
<input type="text" name="sale_time" value="{$goods.sale_time}" id="sale_time"
|
||||
|
|
@ -136,10 +151,12 @@
|
|||
<input type="hidden" name="imgurl_detail" value="{$goods.imgurl_detail}"
|
||||
placeholder="请上传商品详情图" autocomplete="off" class="layui-input">
|
||||
<img style="float:left;width:120px;" class="" id="imgurl_detail"
|
||||
src="{if condition="$goods.imgurl_detail neq ''"}{:imageUrl($goods.imgurl_detail)}{else}/static/image/upload.jpg{/if}">
|
||||
src="{if condition=" $goods.imgurl_detail
|
||||
neq ''"}{:imageUrl($goods.imgurl_detail)}{else}/static/image/upload.jpg{/if}">
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="id" value="{$goods.id}">
|
||||
<input type="hidden" name="goods_list_id" value="{$goods.goods_list_id}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" onclick="return check()">确认保存</button>
|
||||
|
|
@ -181,8 +198,9 @@
|
|||
$(".sale_time").hide()
|
||||
} else if (value == 2) {
|
||||
$(".sale_time").show()
|
||||
} else if (value == 3) {
|
||||
|
||||
} else if (value == 3 || value == 4) {
|
||||
$("#sale_time").val('')
|
||||
$(".sale_time").hide()
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -240,7 +258,8 @@
|
|||
layer.msg(data.msg, { icon: 1, time: 1500 }, function () {
|
||||
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
|
||||
parent.layer.close(index);
|
||||
parent.location.reload();
|
||||
// parent.location.reload();
|
||||
parent.layui.table.reload('goodsListTable');
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, { icon: 2, anim: 6, time: 1500 }, function () {
|
||||
|
|
|
|||
3
app/admin/view/Public/footer3.html
Normal file
3
app/admin/view/Public/footer3.html
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<script src="/js/v2.10.3/layui/layui.js"></script>
|
||||
<script src="/js/jquery-3.1.1.min.js"></script>
|
||||
<script src="/js/reward-component.js"></script>
|
||||
13
app/admin/view/Public/header3.html
Normal file
13
app/admin/view/Public/header3.html
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>后台管理 - {$config.title}</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="/js/v2.10.3/layui/css/layui.css" media="all">
|
||||
|
||||
</head>
|
||||
|
|
@ -85,6 +85,8 @@ class Goods extends Base
|
|||
$whe[] = ['type', '=', 12];
|
||||
} elseif ($type_str == 15) {
|
||||
$whe[] = ['type', '=', 15];
|
||||
} elseif ($type_str == 16) {
|
||||
$whe[] = ['type', '=', 16];
|
||||
} else {
|
||||
$whe[] = ['type', 'not in', [4, 10, 15]];
|
||||
}
|
||||
|
|
@ -128,6 +130,7 @@ class Goods extends Base
|
|||
$join_count = OrderList::field('id')
|
||||
->where('shang_id', 'between', self::$shang_count_id)
|
||||
->where('goods_id', '=', $itme['id'])
|
||||
->where('parent_goods_list_id', '=', 0)
|
||||
->where('order_type', '=', $itme['type'])
|
||||
->count();
|
||||
$itme['join_count'] = $join_count;
|
||||
|
|
@ -154,6 +157,8 @@ class Goods extends Base
|
|||
$type_text = '商品赏';
|
||||
} elseif ($itme['type'] == 11) {
|
||||
$type_text = '自制赏';
|
||||
} elseif ($itme['type'] == 16) {
|
||||
$type_text = '翻倍赏';
|
||||
}
|
||||
// elseif ($itme['type'] == 9) {
|
||||
// $type_text = '冲冲赏';
|
||||
|
|
@ -204,6 +209,7 @@ class Goods extends Base
|
|||
$goodslist_info = GoodsList::field('num,sum(`surplus_stock`) as all_surplus_stock')
|
||||
->where(['goods_id' => $goods_id])
|
||||
->where('shang_id', 'not in', [1, 2, 3, 4, 5])
|
||||
->where('goods_list_id', '=', 0)
|
||||
->having('all_surplus_stock', '>', 0)
|
||||
->group('num')
|
||||
->order('num asc')
|
||||
|
|
@ -226,6 +232,7 @@ class Goods extends Base
|
|||
$goods_surplus = GoodsList::field('sum(`stock`) as stock, sum(`surplus_stock`) as surplus_stock')
|
||||
->where('goods_id', '=', $goods_id)
|
||||
->where('num', '=', $goods_num)
|
||||
->where('goods_list_id', '=', 0)
|
||||
->where('shang_id', 'between', self::$shang_prize_id)
|
||||
->find();
|
||||
$all_surplus_stock = $goods_surplus['surplus_stock'];
|
||||
|
|
@ -241,6 +248,7 @@ class Goods extends Base
|
|||
->append(['shang_info'])
|
||||
->where(['goods_id' => $goods_id])
|
||||
->where(['num' => $goods_num])
|
||||
->where('goods_list_id', '=', 0)
|
||||
->order('sort desc,shang_id asc,id asc')
|
||||
->select()->toArray();
|
||||
foreach ($goodslist as $key => &$value) {
|
||||
|
|
@ -276,11 +284,17 @@ class Goods extends Base
|
|||
$pro_max = $pro_num;
|
||||
$pro_key = $key;
|
||||
}
|
||||
if ($value['goods_type'] == 4) {
|
||||
//表示有子奖品
|
||||
$value['children'] = true;
|
||||
} else {
|
||||
$value['children'] = false;
|
||||
}
|
||||
}
|
||||
#概率不足时
|
||||
if ($pro_max > 0 && $pro_all < 100) {
|
||||
$surplus_pro = bcsub("100", "$pro_all", 2);
|
||||
$goodslist[$pro_key]['pro'] = bcadd("$pro_max", "$surplus_pro", 2) . '%';
|
||||
$goodslist[$pro_key]['pro'] = '概率:' . bcadd("$pro_max", "$surplus_pro", 2) . '%';
|
||||
}
|
||||
#锁箱信息===============
|
||||
$goods_lock_user_nickname = 0;
|
||||
|
|
@ -357,6 +371,88 @@ class Goods extends Base
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品子奖品信息
|
||||
* @param $goods_id 盒子id
|
||||
* @param $goods_num 盒子箱号
|
||||
* @param $goods_list_id 父奖品ID
|
||||
*/
|
||||
public function getGoodsChildren()
|
||||
{
|
||||
$goods_id = request()->param('goods_id/d', 0);
|
||||
$goods_num = request()->param('goods_num/d', 0);
|
||||
$goods_list_id = request()->param('goods_list_id/d', 0);
|
||||
|
||||
if (!$goods_list_id) {
|
||||
return $this->renderError("对应的宝箱ID不能为空");
|
||||
}
|
||||
|
||||
#盒子信息
|
||||
$goods = Goodsmodel::field('id,title,status')
|
||||
->where(['id' => $goods_id])
|
||||
->find();
|
||||
if (!$goods) {
|
||||
return $this->renderError("盒子不存在");
|
||||
}
|
||||
if ($goods['status'] != 1 && $goods['status'] != 3) {
|
||||
return $this->renderError("盒子已下架");
|
||||
}
|
||||
|
||||
#所有奖品信息
|
||||
$goodslist_1 = GoodsList::field('id,shang_id,title,stock,surplus_stock,imgurl,goods_type,sale_time,price,real_pro,sc_money')
|
||||
->append(['shang_info'])
|
||||
->where(['goods_id' => $goods_id])
|
||||
->where(['num' => $goods_num])
|
||||
->where('goods_list_id', '=', $goods_list_id)
|
||||
->order('sort desc,shang_id asc,id asc')
|
||||
->select()->toArray();
|
||||
|
||||
if ($goodslist_1) {
|
||||
//过滤数组,将数组中的shang_id 等于 shang_give_arr 的全部过滤掉。然后在将数组中的surplus_stock求和
|
||||
$goodslist_1_1 = array_filter($goodslist_1, function ($item) {
|
||||
return !array_key_exists($item['shang_id'], self::$shang_give_arr);
|
||||
});
|
||||
//将数组中的surplus_stock求和
|
||||
$goodsList_surplus_stock = array_sum(array_column($goodslist_1_1, 'surplus_stock'));
|
||||
|
||||
foreach ($goodslist_1 as $key_1 => &$value_1) {
|
||||
$value_1['imgurl'] = imageUrl($value_1['imgurl']);
|
||||
if ($value_1['stock'] == 0) {
|
||||
//保留两位小数
|
||||
$value_1['pro'] = '概率:' . round($value_1['real_pro'], 2) . '%';
|
||||
$value_1['pro_num'] = round($value_1['real_pro'], 2);
|
||||
unset($value_1['surplus_stock']);
|
||||
unset($value_1['stock']);
|
||||
continue;
|
||||
}
|
||||
$surplus_stock_1 = $value_1['surplus_stock'];
|
||||
$pro_num_1 = 0;
|
||||
$pro_1 = 0;
|
||||
if (array_key_exists($value_1['shang_id'], self::$shang_give_arr)) {
|
||||
#概率
|
||||
$pro_1 = self::$shang_give_arr[$value_1['shang_id']];
|
||||
$pro_num_1 = 0;
|
||||
} else {
|
||||
#概率
|
||||
if ($surplus_stock_1 > 0) {
|
||||
//计算概率,保留两位小数
|
||||
$pro_num_1 = round(($surplus_stock_1 / $goodsList_surplus_stock) * 100, 2);
|
||||
$pro_1 = '概率:' . $pro_num_1 . '%';
|
||||
} else {
|
||||
$pro_1 = '概率:' . 0 . '%';
|
||||
$pro_num_1 = 0;
|
||||
}
|
||||
}
|
||||
$value_1['pro'] = $pro_1;
|
||||
$value_1['pro_num'] = $pro_num_1;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->renderSuccess("请求成功", $goodslist_1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 换箱箱号
|
||||
*/
|
||||
|
|
@ -1509,5 +1605,7 @@ class Goods extends Base
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ class Infinite extends Base
|
|||
->append(['userinfo'])
|
||||
->where('goods_id', '=', $goods_id)
|
||||
->where('order_type', '=', $goods['type'])
|
||||
|
||||
->order('id desc')
|
||||
->group('user_id')
|
||||
->limit(5)
|
||||
|
|
@ -113,6 +114,7 @@ class Infinite extends Base
|
|||
->append(['shang_info', 'goods_list'])
|
||||
->where(['goods_id' => $goods_id])
|
||||
->where(['num' => 0])
|
||||
->where('goods_list_id', '=', 0)
|
||||
->order('sort desc,shang_id asc,id asc')
|
||||
->group('shang_id')
|
||||
->select()->toArray();
|
||||
|
|
@ -123,13 +125,14 @@ class Infinite extends Base
|
|||
$value['shang_color'] = $value['shang_info']['color'];
|
||||
unset($value['shang_info']);
|
||||
}
|
||||
$goods_list = GoodsList::field('goods_id,shang_id,title,imgurl,price,real_pro,sc_money,goods_type,sale_time')
|
||||
$goods_list = GoodsList::field('goods_id,shang_id,title,imgurl,price,real_pro,sc_money,goods_type,sale_time,doubling')
|
||||
->append(['shang_info', 'goods_list'])
|
||||
->withAttr('imgurl', function ($value, $data) {
|
||||
return imageUrl($value);
|
||||
})
|
||||
->where(['goods_id' => $goods_id])
|
||||
->where(['num' => 0])
|
||||
->where('goods_list_id', '=', 0)
|
||||
->order('sort desc,shang_id asc,id asc')
|
||||
->paginate(1000);
|
||||
foreach ($goods_list as &$value) {
|
||||
|
|
@ -147,6 +150,8 @@ class Infinite extends Base
|
|||
$type1 = 8;
|
||||
} elseif ($goods['type'] == 8) {
|
||||
$type1 = 14;
|
||||
} elseif ($goods['type'] == 16) {
|
||||
$type1 = 21;
|
||||
}
|
||||
|
||||
$new_data = [
|
||||
|
|
@ -589,7 +594,7 @@ class Infinite extends Base
|
|||
return $this->renderError("盒子已下架");
|
||||
}
|
||||
|
||||
if (!in_array($goods['type'], [2, 8, 9, 10])) {
|
||||
if (!in_array($goods['type'], [2, 8, 9, 10,16])) {
|
||||
return $this->renderError("非法请求");
|
||||
}
|
||||
$user_id = $this->getuserid();
|
||||
|
|
@ -1031,7 +1036,7 @@ class Infinite extends Base
|
|||
return $this->renderError("支付异常,请刷新重试");
|
||||
}
|
||||
#普通赏
|
||||
$data = OrderList::field('id,user_id,shang_id,goodslist_id,goodslist_title,goodslist_imgurl,goodslist_money')
|
||||
$data = OrderList::field('id,user_id,shang_id,goodslist_id,goodslist_title,goodslist_imgurl,goodslist_money,doubling')
|
||||
->append(['shang_title'])
|
||||
->where('user_id', '=', $user['id'])
|
||||
->where('order_id', '=', $order_info['id'])
|
||||
|
|
|
|||
|
|
@ -547,6 +547,7 @@ class Notify extends Base
|
|||
->where('goods_id', '=', $goods_id)
|
||||
->where('num', '=', $num)
|
||||
->where('shang_id', 'between', self::$shang_prize_id)
|
||||
->where('goods_list_id', '=', 0)
|
||||
->find();
|
||||
// var_dump($goodslist['surplus_stock']);
|
||||
#普通赏销量数量
|
||||
|
|
@ -606,154 +607,53 @@ class Notify extends Base
|
|||
$ordinary_prize = GoodsList::where('goods_id', '=', $goods_id)
|
||||
->where('num', '=', $num)
|
||||
->where('shang_id', 'between', self::$shang_prize_id)
|
||||
->where('goods_list_id', '=', 0)
|
||||
->order('sort desc,shang_id asc')
|
||||
->select()->toArray();
|
||||
if (!$ordinary_prize) {
|
||||
$res[] = 0;
|
||||
return $res;
|
||||
}
|
||||
//获取最低抽奖次数
|
||||
$goods_extend_model_list = GoodsExtendListModel::getGoodsExtendList($goods_id);
|
||||
$res[] = $this->ordinary_prize_notice_box($ordinary_prize, $prize_num, $order_id, $user_id, $goods_id, $order_type, $num);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 普通奖品开奖宝箱
|
||||
* @param mixed $ordinary_prize
|
||||
* @param mixed $prize_num
|
||||
* @param mixed $order_id
|
||||
* @param mixed $user_id
|
||||
* @param mixed $goods_id
|
||||
* @param mixed $order_type
|
||||
* @param mixed $num
|
||||
* @return array<array|GoodsList|int>
|
||||
*/
|
||||
protected function ordinary_prize_notice_box($ordinary_prize, $prize_num, $order_id, $user_id, $goods_id, $order_type, $num)
|
||||
{
|
||||
$res = [];
|
||||
#抽了多少抽
|
||||
$stock = array_sum(array_column($ordinary_prize, 'stock'));
|
||||
$surplus_stock = array_sum(array_column($ordinary_prize, 'surplus_stock'));
|
||||
$reward_num_count = $stock - $surplus_stock;
|
||||
#普通奖暂存信息
|
||||
// $stock = array_sum(array_column($ordinary_prize, 'stock'));
|
||||
// $surplus_stock = array_sum(array_column($ordinary_prize, 'surplus_stock'));
|
||||
$ordinary_prize_all = [];
|
||||
#普通奖暂存信息
|
||||
$ordinary_prize_special_all = [];
|
||||
#其他
|
||||
$ordinary_prize_other = [];
|
||||
foreach ($ordinary_prize as $k => $v) {
|
||||
#剩余
|
||||
#库存
|
||||
$surplus_prize = $v['surplus_stock'];
|
||||
//奖品id
|
||||
$prize_code = $v['prize_code'];
|
||||
$goods_list_id = $v['id'];
|
||||
//扩展配置
|
||||
$goods_extend_model = $goods_extend_model_list->where('goods_list_id', '=', $goods_list_id)->first();
|
||||
//最低抽奖次数
|
||||
$reward_num = 0;
|
||||
if ($goods_extend_model != null) {
|
||||
if ($goods_extend_model['rawrd_type'] == 1) {
|
||||
$reward_num = $goods_extend_model->reward_num;
|
||||
} else if ($goods_extend_model['rawrd_type'] == 2) {
|
||||
//当前抽数
|
||||
$goods_extend_model_reward_num = $goods_extend_model['reward_num'];
|
||||
if ($reward_num_count < $goods_extend_model_reward_num) {
|
||||
//未过期
|
||||
$v['goods_extend'] = $goods_extend_model;
|
||||
$ordinary_prize_special_all[] = $v;
|
||||
$ordinary_prize_all[] = $v;
|
||||
continue;
|
||||
}
|
||||
} else if ($goods_extend_model['rawrd_type'] == 3) {
|
||||
//当前抽数
|
||||
// if ($reward_num_count >= $goods_extend_model['reward_num'] && $reward_num_count <= $goods_extend_model['reward_num_1']) {
|
||||
//未过期
|
||||
$v['goods_extend'] = $goods_extend_model;
|
||||
$ordinary_prize_special_all[] = $v;
|
||||
if ($surplus_prize > 0) {
|
||||
//库存数量
|
||||
for ($i = 1; $i <= $surplus_prize; $i++) {
|
||||
$ordinary_prize_all[] = $v;
|
||||
continue;
|
||||
// }
|
||||
}
|
||||
}
|
||||
$prize_code = '';
|
||||
//库存数量
|
||||
for ($i = 1; $i <= $surplus_prize; $i++) {
|
||||
if ($reward_num_count > 0) {
|
||||
if ($reward_num_count > $reward_num) {
|
||||
$ordinary_prize_other[] = $v;
|
||||
|
||||
}
|
||||
} else if ($v['reward_num'] > 0) {
|
||||
if ($reward_num_count >= $v['reward_num']) {
|
||||
#全部延迟出赏普通奖品
|
||||
$ordinary_prize_other[] = $v;
|
||||
|
||||
}
|
||||
} else {
|
||||
#全部未延迟出赏普通奖品
|
||||
$ordinary_prize_other[] = $v;
|
||||
|
||||
}
|
||||
$ordinary_prize_all[] = $v;
|
||||
|
||||
}
|
||||
}
|
||||
$is_special = true;
|
||||
if ($prize_num > count($ordinary_prize_other)) {
|
||||
#全部商品
|
||||
$end_ordinary_prize = $ordinary_prize_all;
|
||||
$is_special = false;
|
||||
} else {
|
||||
#延迟出赏
|
||||
$end_ordinary_prize = $ordinary_prize_other;
|
||||
}
|
||||
shuffle($end_ordinary_prize);
|
||||
shuffle($end_ordinary_prize);
|
||||
if ($is_special) {
|
||||
foreach ($ordinary_prize_special_all as $kk => $vv) {
|
||||
// $surplus_prize_1 = 1;
|
||||
$surplus_prize_1 = $vv['surplus_stock'];
|
||||
//奖品id
|
||||
$goods_extend_model_1 = $vv['goods_extend'];
|
||||
for ($i = 1; $i <= $surplus_prize_1; $i++) {
|
||||
//指定抽数
|
||||
if ($goods_extend_model_1['rawrd_type'] == 2) {
|
||||
//指定抽奖数-
|
||||
$randomNumber = $goods_extend_model_1['reward_num'] - $reward_num_count - 1;
|
||||
//如果小于0,则表示
|
||||
if ($randomNumber < 0) {
|
||||
$randomNumber = random_int(0, count($end_ordinary_prize));
|
||||
}
|
||||
if ($randomNumber >= 0) {
|
||||
//表示第二个对象 goods_list_id
|
||||
if (isset($end_ordinary_prize[$randomNumber]['goods_extend'])) {
|
||||
$goods_extend_model_2 = $end_ordinary_prize[$randomNumber]['goods_extend'];
|
||||
if ($goods_extend_model_2 != null) {
|
||||
//表示相同抽数
|
||||
if ($goods_extend_model_1['reward_num'] == $goods_extend_model_2['reward_num']) {
|
||||
$randomNumber = random_int($randomNumber, count($end_ordinary_prize));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isset($end_ordinary_prize[$randomNumber]['prize_code']) && isset($vv['prize_code'])) {
|
||||
if ($end_ordinary_prize[$randomNumber]['prize_code'] == $vv['prize_code']) {
|
||||
if (count($end_ordinary_prize) > $randomNumber) {
|
||||
$randomNumber = random_int($randomNumber, count($end_ordinary_prize));
|
||||
} else {
|
||||
$randomNumber = random_int(0, count($end_ordinary_prize));
|
||||
}
|
||||
}
|
||||
}
|
||||
array_splice($end_ordinary_prize, $randomNumber, 0, [$vv]);
|
||||
}
|
||||
}
|
||||
//抽奖范围
|
||||
if ($goods_extend_model_1['rawrd_type'] == 3) {
|
||||
$randomNumber = 0;
|
||||
if ($reward_num_count >= $goods_extend_model_1['reward_num'] && $reward_num_count <= $goods_extend_model_1['reward_num_1']) {
|
||||
//在范围里面
|
||||
$max_randomNumber = $goods_extend_model_1['reward_num_1'] - $reward_num_count - 1;
|
||||
$randomNumber = random_int(0, intval($max_randomNumber));
|
||||
} else if ($reward_num_count <= $goods_extend_model_1['reward_num']) {
|
||||
//$goods_extend_model_1['reward_num']-$reward_num_count
|
||||
$randomNumber = count($end_ordinary_prize) - 1;
|
||||
}
|
||||
array_splice($end_ordinary_prize, $randomNumber, 0, [$vv]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#入库奖品
|
||||
$save_order_goods = [];
|
||||
|
||||
shuffle($ordinary_prize_all);
|
||||
shuffle($ordinary_prize_all);
|
||||
|
||||
#开普通奖品
|
||||
for ($i = 0; $i < $prize_num; $i++) {
|
||||
$ordinary_prize_info = $end_ordinary_prize[$i];
|
||||
$save_order_goods[
|
||||
|
||||
] = [
|
||||
$ordinary_prize_info = $ordinary_prize_all[$i];
|
||||
$order_goods_info=[
|
||||
'order_id' => $order_id,
|
||||
'user_id' => $user_id,
|
||||
'status' => 0,#0未操作 1选择兑换 2选择发货
|
||||
|
|
@ -770,17 +670,35 @@ class Notify extends Base
|
|||
'addtime' => time(),
|
||||
'prize_code' => $ordinary_prize_info['prize_code'],
|
||||
'order_type' => $order_type,
|
||||
'parent_goods_list_id' => $ordinary_prize_info['goods_list_id'],
|
||||
];
|
||||
|
||||
$res[] = OrderList::insert($order_goods_info);
|
||||
#减少库存
|
||||
$res[] = GoodsList::field('surplus_stock')
|
||||
->where(['id' => $ordinary_prize_info['id']])
|
||||
->dec('surplus_stock')
|
||||
->update();
|
||||
|
||||
# 赠送货币
|
||||
if ($ordinary_prize_info['doubling'] > 1) {
|
||||
$bei = $ordinary_prize_info['doubling'] - 1;
|
||||
$change_money = $ordinary_prize_info['money'] * $bei * 100;
|
||||
$res[] = User::changeIntegral($user_id, $change_money, 6, '抽中翻倍赏-' . $ordinary_prize_info['title'] . '赠送');
|
||||
}
|
||||
# 宝箱
|
||||
if ($ordinary_prize_info['goods_type'] == 4) {
|
||||
# 查找宝箱奖品
|
||||
$goodslist_1 = GoodsList::where(['goods_id' => $goods_id])
|
||||
->where('goods_list_id', '=', $ordinary_prize_info['id'])
|
||||
->select()->toArray();
|
||||
$res[] = $this->ordinary_prize_notice_box($goodslist_1, 1, $order_id, $user_id, $goods_id, $order_type, $num);
|
||||
}
|
||||
}
|
||||
if ($save_order_goods) {
|
||||
#新增奖品列表
|
||||
$res[] = OrderList::insertAll($save_order_goods);
|
||||
}
|
||||
// if ($save_order_goods) {
|
||||
// #新增奖品列表
|
||||
// $res[] = OrderList::insertAll($save_order_goods);
|
||||
// }
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
|
@ -909,6 +827,7 @@ class Notify extends Base
|
|||
->where('num', '=', $num)
|
||||
->where('surplus_stock', '>', 0)
|
||||
->where('shang_id', 'in', self::$shang_give_arr)
|
||||
->where('goods_list_id', '=', 0)
|
||||
->select()->toArray();
|
||||
$surplus_give_stock = $special_prize ? array_sum(array_column($special_prize, 'surplus_stock')) : 0;
|
||||
if ($special_prize && $surplus_give_stock > 0) {
|
||||
|
|
@ -1128,81 +1047,14 @@ class Notify extends Base
|
|||
//普通
|
||||
$where[] = ['lian_ji_type', '=', 0];
|
||||
}
|
||||
|
||||
$where[] = ['goods_list_id', '=', 0];
|
||||
#查找奖品
|
||||
$goodslist = GoodsList::field('id,shang_id,real_pro')
|
||||
->where($where)
|
||||
->select()->toArray();
|
||||
if ($goodslist) {
|
||||
|
||||
// 计算总概率
|
||||
$totalProbability = array_sum(array_column($goodslist, 'real_pro'));
|
||||
|
||||
// 构建概率区间
|
||||
$probabilityRanges = [];
|
||||
$currentRange = 0;
|
||||
foreach ($goodslist as $good) {
|
||||
$rangeStart = $currentRange;
|
||||
$currentRange += $good['real_pro'];
|
||||
$probabilityRanges[] = [
|
||||
'id' => $good['id'],
|
||||
'start' => $rangeStart,
|
||||
'end' => $currentRange
|
||||
];
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $prize_num; $i++) {
|
||||
// 生成随机数 (保持与原始方法相同的精度:100000)
|
||||
|
||||
$maxRand = (int) ($totalProbability * 100000);
|
||||
$random = mt_rand(0, $maxRand) / 100000;
|
||||
|
||||
// 查找中奖奖品
|
||||
$prize_id = null;
|
||||
foreach ($probabilityRanges as $range) {
|
||||
if ($random >= $range['start'] && $random < $range['end']) {
|
||||
$prize_id = $range['id'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 获取奖品信息
|
||||
$prize_info = GoodsList::where(['id' => $prize_id])->find();
|
||||
|
||||
#编号
|
||||
$luck_no = OrderList::field('id')
|
||||
->where('goods_id', '=', $goods_id)
|
||||
->where('num', '=', 0)
|
||||
->where('order_type', '=', $order_type)
|
||||
->order('id desc')
|
||||
->value('luck_no');
|
||||
$luck_no++;
|
||||
|
||||
#新增记录
|
||||
$save_prize_info = [
|
||||
'order_id' => $order_id,
|
||||
'user_id' => $user_id,
|
||||
'status' => 0,#0未操作 1选择兑换 2选择发货
|
||||
'goods_id' => $goods_id,
|
||||
'num' => 0,
|
||||
'shang_id' => $prize_info['shang_id'],
|
||||
'goodslist_id' => $prize_info['id'],
|
||||
'goodslist_title' => $prize_info['title'],
|
||||
'goodslist_imgurl' => $prize_info['imgurl'],
|
||||
'goodslist_price' => $prize_info['price'],
|
||||
'goodslist_money' => $prize_info['money'],
|
||||
'goodslist_type' => $prize_info['goods_type'],
|
||||
'goodslist_sale_time' => $prize_info['sale_time'],
|
||||
'addtime' => time(),
|
||||
'prize_code' => $prize_info['prize_code'],
|
||||
'order_type' => $order_type,
|
||||
'luck_no' => $luck_no,
|
||||
];
|
||||
|
||||
#入库===
|
||||
$res[] = OrderList::insert($save_prize_info);
|
||||
}
|
||||
|
||||
$res[] = $this->infinite_drawprize_box($goodslist, $prize_num, $order_id, $user_id, $goods_id, $order_type);
|
||||
|
||||
//去除秘宝池次数
|
||||
if ($infinite_goods['type'] == 9 && $order['is_mibao'] == 1) {
|
||||
|
|
@ -1228,7 +1080,101 @@ class Notify extends Base
|
|||
}
|
||||
|
||||
/**
|
||||
* 无限赏开奖逻辑
|
||||
* 抽出奖品
|
||||
* @param $order 订单信息
|
||||
*/
|
||||
protected function infinite_drawprize_box($goodslist, $prize_num, $order_id, $user_id, $goods_id, $order_type)
|
||||
{
|
||||
|
||||
// 计算总概率
|
||||
$totalProbability = array_sum(array_column($goodslist, 'real_pro'));
|
||||
|
||||
// 构建概率区间
|
||||
$probabilityRanges = [];
|
||||
$currentRange = 0;
|
||||
foreach ($goodslist as $good) {
|
||||
$rangeStart = $currentRange;
|
||||
$currentRange += $good['real_pro'];
|
||||
$probabilityRanges[] = [
|
||||
'id' => $good['id'],
|
||||
'start' => $rangeStart,
|
||||
'end' => $currentRange
|
||||
];
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $prize_num; $i++) {
|
||||
// 生成随机数 (保持与原始方法相同的精度:100000)
|
||||
|
||||
$maxRand = (int) ($totalProbability * 100000);
|
||||
$random = mt_rand(0, $maxRand) / 100000;
|
||||
|
||||
// 查找中奖奖品
|
||||
$prize_id = null;
|
||||
foreach ($probabilityRanges as $range) {
|
||||
if ($random >= $range['start'] && $random < $range['end']) {
|
||||
$prize_id = $range['id'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 获取奖品信息
|
||||
$prize_info = GoodsList::where(['id' => $prize_id])->find();
|
||||
|
||||
#编号
|
||||
$luck_no = OrderList::field('id')
|
||||
->where('goods_id', '=', $goods_id)
|
||||
->where('num', '=', 0)
|
||||
->where('order_type', '=', $order_type)
|
||||
->order('id desc')
|
||||
->value('luck_no');
|
||||
$luck_no++;
|
||||
|
||||
#新增记录
|
||||
$save_prize_info = [
|
||||
'order_id' => $order_id,
|
||||
'user_id' => $user_id,
|
||||
'status' => 0,#0未操作 1选择兑换 2选择发货
|
||||
'goods_id' => $goods_id,
|
||||
'num' => 0,
|
||||
'doubling' => $prize_info['doubling'],
|
||||
'shang_id' => $prize_info['shang_id'],
|
||||
'goodslist_id' => $prize_info['id'],
|
||||
'goodslist_title' => $prize_info['title'],
|
||||
'goodslist_imgurl' => $prize_info['imgurl'],
|
||||
'goodslist_price' => $prize_info['price'],
|
||||
'goodslist_money' => $prize_info['money'],
|
||||
'goodslist_type' => $prize_info['goods_type'],
|
||||
'goodslist_sale_time' => $prize_info['sale_time'],
|
||||
'addtime' => time(),
|
||||
'prize_code' => $prize_info['prize_code'],
|
||||
'order_type' => $order_type,
|
||||
'luck_no' => $luck_no,
|
||||
'parent_goods_list_id' => $prize_info['goods_list_id'],
|
||||
];
|
||||
|
||||
#入库===
|
||||
$res[] = OrderList::insert($save_prize_info);
|
||||
# 赠送货币
|
||||
if ($prize_info['doubling'] > 1) {
|
||||
$bei = $prize_info['doubling'] - 1;
|
||||
$change_money = $prize_info['money'] * $bei * 100;
|
||||
$res[] = User::changeIntegral($user_id, $change_money, 6, '抽中翻倍赏-' . $prize_info['title'] . '赠送');
|
||||
}
|
||||
# 宝箱
|
||||
if ($prize_info['goods_type'] == 4) {
|
||||
# 查找宝箱奖品
|
||||
$goodslist_1 = GoodsList::where(['goods_id' => $goods_id])
|
||||
->where('goods_list_id', '=', $prize_info['id'])
|
||||
->select()->toArray();
|
||||
// $res[] = $this->infinite_drawprize_box($order);
|
||||
$res[] = $this->infinite_drawprize_box($goodslist_1, 1, $order_id, $user_id, $goods_id, $order_type);
|
||||
}
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 商城赏
|
||||
* @param $order 订单信息
|
||||
*/
|
||||
protected function infinite_shangchengshang($order = [])
|
||||
|
|
@ -1926,7 +1872,7 @@ class Notify extends Base
|
|||
}
|
||||
|
||||
/**
|
||||
* 无限赏开始抽赏======================================================
|
||||
* 商城赏======================================================
|
||||
* @param int $user_id 会员id
|
||||
* @param int $order_id 订单ID
|
||||
* @param int $box_id 盲盒id
|
||||
|
|
|
|||
|
|
@ -80,9 +80,8 @@ Route::any('quan_yi_ling', 'QuanYi/quan_yi_ling');
|
|||
#Goods.php盒子管理
|
||||
#============================
|
||||
Route::any('goods', 'Goods/goods');
|
||||
|
||||
|
||||
Route::any('goodsdetail', 'Goods/goodsdetail');
|
||||
Route::any('goods_children', 'Goods/getGoodsChildren');
|
||||
Route::any('goodslist_count', 'Goods/goodslist_count');
|
||||
Route::any('goodslist_content', 'Goods/goodslist_content');
|
||||
Route::any('shang_log', 'Goods/shang_log');
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ class Danye extends Base{
|
|||
$list = self::where($where)
|
||||
->field($field)
|
||||
->order($order)
|
||||
->paginate(15);
|
||||
->paginate($pageSize);
|
||||
$page = $list->render();
|
||||
$data['list'] = $list->toArray()['data'];
|
||||
$data['count']=$list->total();
|
||||
|
|
|
|||
|
|
@ -75,12 +75,13 @@ class GoodsList extends Base
|
|||
|
||||
public function getGoodsListAttr($value, $data)
|
||||
{
|
||||
$data = self::field('title,imgurl,price,real_pro,goods_type')
|
||||
$data = self::field('id,title,imgurl,price,real_pro,goods_type,doubling')
|
||||
->withAttr('imgurl', function ($value, $data) {
|
||||
return imageUrl($value);
|
||||
})
|
||||
->where('goods_id', '=', $data['goods_id'])
|
||||
->where('shang_id', '=', $data['shang_id'])
|
||||
->where('goods_list_id', '=', 0)
|
||||
->select()->toArray();
|
||||
return $data;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ class User extends Base
|
|||
|
||||
|
||||
/**
|
||||
* 用户变化
|
||||
* 用户变化 发放uu币
|
||||
* @param $user_id
|
||||
* @param $change_money
|
||||
* @param $type 1后台充值 2抽赏消费 3开券获得
|
||||
|
|
|
|||
4
public/js/jquery-3.1.1.min.js
vendored
Executable file
4
public/js/jquery-3.1.1.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
394
public/js/reward-component.js
Normal file
394
public/js/reward-component.js
Normal file
|
|
@ -0,0 +1,394 @@
|
|||
/**
|
||||
* 奖励信息组件
|
||||
* 用于创建和管理奖励信息表单元素
|
||||
*/
|
||||
|
||||
/**
|
||||
* 初始化奖励信息区域
|
||||
* @param {string} containerId - 容器ID
|
||||
* @param {Array|string} existingRewards - 已存在的奖励数据数组或reward_id
|
||||
*/
|
||||
function initRewardInfo(containerId, existingRewards = null) {
|
||||
var $ = layui.$;
|
||||
var form = layui.form;
|
||||
|
||||
// 奖励类型选项
|
||||
var rewardTypes = [
|
||||
{ value: '1', text: '钻石' },
|
||||
{ value: '2', text: 'UU币' },
|
||||
{ value: '3', text: '达达卷' },
|
||||
{ value: '4', text: '优惠券' }
|
||||
];
|
||||
|
||||
// 存储优惠券数据
|
||||
var couponsData = [];
|
||||
|
||||
// 创建奖励信息卡片
|
||||
var cardHtml = '<div class="layui-card">' +
|
||||
'<div class="layui-card-header">' +
|
||||
'<button type="button" class="layui-btn layui-btn-sm layui-btn-normal" id="addReward">' +
|
||||
'<i class="layui-icon"></i>添加奖励' +
|
||||
'</button>' +
|
||||
'</div>' +
|
||||
'<div class="layui-card-body">' +
|
||||
'<div id="rewardContainer">' +
|
||||
'<!-- 动态添加的奖励项将显示在这里 -->' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
if ($('input[name="reward_id"]').length == 0) {
|
||||
cardHtml += '<input type="hidden" name="reward_id" value="">';
|
||||
}
|
||||
|
||||
// 渲染奖励信息卡片
|
||||
$('#' + containerId).html(cardHtml);
|
||||
|
||||
// 请求优惠券数据
|
||||
function fetchCoupons(callback) {
|
||||
var load = layer.load(2);
|
||||
$.ajax({
|
||||
url: '/admin/get_coupons',
|
||||
type: 'GET',
|
||||
dataType: 'json',
|
||||
success: function (res) {
|
||||
layer.close(load);
|
||||
if (res.code == 0) {
|
||||
couponsData = res.data;
|
||||
if (typeof callback === 'function') {
|
||||
callback(couponsData);
|
||||
}
|
||||
} else {
|
||||
layer.msg(res.msg || '获取优惠券失败', { icon: 2, anim: 6, time: 1500 });
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
layer.close(load);
|
||||
layer.msg('网络错误,请稍后重试', { icon: 2, anim: 6, time: 1500 });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 生成唯一ID
|
||||
function generateUniqueId() {
|
||||
return 'reward_' + new Date().getTime() + '_' + Math.floor(Math.random() * 1000);
|
||||
}
|
||||
|
||||
// 添加奖励项
|
||||
function addRewardItem(rewardData = null) {
|
||||
var uniqueId = generateUniqueId();
|
||||
var html = '<div class="layui-form-item reward-item" id="' + uniqueId + '">' +
|
||||
'<div class="layui-inline">' +
|
||||
'<select class="reward-type-select" lay-filter="rewardTypeFilter">' +
|
||||
'<option value="">请选择奖励类型</option>';
|
||||
|
||||
// 添加奖励类型选项
|
||||
for (var i = 0; i < rewardTypes.length; i++) {
|
||||
var selected = rewardData && rewardData.reward_type == rewardTypes[i].value ? 'selected' : '';
|
||||
html += '<option value="' + rewardTypes[i].value + '" ' + selected + '>' + rewardTypes[i].text + '</option>';
|
||||
}
|
||||
|
||||
html += '</select>' +
|
||||
'</div>';
|
||||
|
||||
// 根据奖励类型决定显示哪个输入区域
|
||||
var rewardValueDisplay = (!rewardData || rewardData.reward_type != '4') ? '' : 'style="display:none;"';
|
||||
var couponDisplay = (!rewardData || rewardData.reward_type != '4') ? 'style="display:none;"' : '';
|
||||
var rewardValue = rewardData ? rewardData.reward_value : '';
|
||||
|
||||
html += '<div class="layui-inline reward-value-container" ' + rewardValueDisplay + '>' +
|
||||
'<input type="text" placeholder="请输入奖励数值" class="layui-input reward-value-input" value="' + rewardValue + '">' +
|
||||
'</div>' +
|
||||
'<div class="layui-inline coupon-container" ' + couponDisplay + '>' +
|
||||
'<select class="coupon-select">' +
|
||||
'<option value="">请选择优惠券</option>' +
|
||||
'<option value="loading" disabled>加载中...</option>' +
|
||||
'</select>' +
|
||||
'</div>' +
|
||||
'<div class="layui-inline">' +
|
||||
'<button type="button" class="layui-btn layui-btn-danger layui-btn-sm remove-reward" data-id="' + uniqueId + '">' +
|
||||
'<i class="layui-icon"></i>删除' +
|
||||
'</button>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
|
||||
$('#rewardContainer').append(html);
|
||||
form.render('select'); // 重新渲染表单
|
||||
|
||||
// 绑定删除按钮事件
|
||||
$('.remove-reward[data-id="' + uniqueId + '"]').click(function () {
|
||||
var id = $(this).data('id');
|
||||
$('#' + id).remove();
|
||||
});
|
||||
|
||||
// 如果是优惠券类型,需要加载优惠券数据
|
||||
if (rewardData && rewardData.reward_type == '4') {
|
||||
var $item = $('#' + uniqueId);
|
||||
var $couponSelect = $item.find('.coupon-select');
|
||||
|
||||
// 获取优惠券数据并选中指定的优惠券
|
||||
if (couponsData.length > 0) {
|
||||
fillCouponOptions($couponSelect, couponsData, rewardData.reward_extend);
|
||||
} else {
|
||||
fetchCoupons(function (coupons) {
|
||||
fillCouponOptions($couponSelect, coupons, rewardData.reward_extend);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return uniqueId;
|
||||
}
|
||||
|
||||
// 添加奖励按钮点击事件
|
||||
$('#addReward').click(function () {
|
||||
addRewardItem();
|
||||
});
|
||||
|
||||
// 监听奖励类型选择
|
||||
form.on('select(rewardTypeFilter)', function (data) {
|
||||
var $item = $(data.elem).closest('.reward-item');
|
||||
var value = data.value;
|
||||
|
||||
if (value == '4') { // 选择了优惠券
|
||||
$item.find('.reward-value-container').hide();
|
||||
$item.find('.coupon-container').show();
|
||||
$item.find('.reward-value-input').val(''); // 清空奖励数值
|
||||
|
||||
// 获取当前选择框的优惠券选择框
|
||||
var $couponSelect = $item.find('.coupon-select');
|
||||
|
||||
// 如果优惠券数据已加载,直接填充
|
||||
if (couponsData.length > 0) {
|
||||
fillCouponOptions($couponSelect, couponsData);
|
||||
} else {
|
||||
// 否则请求加载
|
||||
fetchCoupons(function (coupons) {
|
||||
fillCouponOptions($couponSelect, coupons);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
$item.find('.reward-value-container').show();
|
||||
$item.find('.coupon-container').hide();
|
||||
$item.find('.coupon-select').val(''); // 清空优惠券选择
|
||||
form.render('select');
|
||||
}
|
||||
});
|
||||
|
||||
// 填充优惠券选项
|
||||
function fillCouponOptions($select, coupons, selectedCouponId = null) {
|
||||
// 清空现有选项,保留第一个"请选择"
|
||||
$select.find('option:not(:first)').remove();
|
||||
|
||||
// 添加优惠券选项
|
||||
for (var i = 0; i < coupons.length; i++) {
|
||||
var coupon = coupons[i];
|
||||
var selected = selectedCouponId && coupon.id == selectedCouponId ? 'selected' : '';
|
||||
$select.append('<option value="' + coupon.id + '" ' + selected + '>' +
|
||||
coupon.title + ' (满' + coupon.man_price + '减' + coupon.price + ')</option>');
|
||||
}
|
||||
|
||||
// 重新渲染表单
|
||||
form.render('select');
|
||||
}
|
||||
|
||||
// 处理初始化奖励数据
|
||||
if (existingRewards) {
|
||||
// 如果传入的是字符串(reward_id),则通过接口获取奖励数据
|
||||
if (typeof existingRewards === 'string' && existingRewards.trim() !== '') {
|
||||
var rewardId = existingRewards;
|
||||
|
||||
// 通过API获取奖励数据
|
||||
var loadingIndex = layer.load(1, { shade: [0.1, '#fff'] });
|
||||
$.ajax({
|
||||
url: '/admin/get_rewards_by_id',
|
||||
type: 'GET',
|
||||
data: { reward_id: rewardId },
|
||||
dataType: 'json',
|
||||
success: function (res) {
|
||||
layer.close(loadingIndex);
|
||||
if (res.status === 1 && res.data && res.data.length > 0) {
|
||||
// 先获取优惠券数据,再初始化奖励表单
|
||||
if ($('input[name="reward_id"]').length > 0) {
|
||||
$('input[name="reward_id"]').val(rewardId);
|
||||
}
|
||||
fetchCoupons(function () {
|
||||
// 遍历奖励数据,添加奖励项
|
||||
for (var i = 0; i < res.data.length; i++) {
|
||||
var rewardItem = {
|
||||
reward_type: res.data[i].reward_type.toString(),
|
||||
reward_value: res.data[i].reward_value || '',
|
||||
reward_extend: res.data[i].reward_extend || ''
|
||||
};
|
||||
addRewardItem(rewardItem);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// layer.msg('没有找到奖励数据或获取失败', { icon: 2, time: 2000 });
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
layer.close(loadingIndex);
|
||||
layer.msg('网络错误,无法获取奖励数据', { icon: 2, time: 2000 });
|
||||
}
|
||||
});
|
||||
}
|
||||
// 如果传入的是数组,直接使用
|
||||
else if (Array.isArray(existingRewards) && existingRewards.length > 0) {
|
||||
// 先获取优惠券数据,再初始化奖励表单
|
||||
fetchCoupons(function () {
|
||||
for (var i = 0; i < existingRewards.length; i++) {
|
||||
addRewardItem(existingRewards[i]);
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// 预加载优惠券数据,以便后续使用
|
||||
fetchCoupons();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证奖励信息
|
||||
* @returns {boolean} - 验证结果
|
||||
*/
|
||||
function validateRewardInfo() {
|
||||
var $ = layui.$;
|
||||
var hasRewardType = false;
|
||||
|
||||
$('.reward-type-select').each(function () {
|
||||
if ($(this).val()) {
|
||||
hasRewardType = true;
|
||||
var $item = $(this).closest('.reward-item');
|
||||
var rewardType = $(this).val();
|
||||
|
||||
// 如果不是优惠券类型,检查奖励数值
|
||||
if (rewardType != '4' && !$item.find('.reward-value-input').val()) {
|
||||
layer.msg('请输入奖励数值', { icon: 2, anim: 6, time: 1500 });
|
||||
hasRewardType = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
// 如果是优惠券类型,检查是否选择了优惠券
|
||||
if (rewardType == '4' && !$item.find('.coupon-select').val()) {
|
||||
layer.msg('请选择优惠券', { icon: 2, anim: 6, time: 1500 });
|
||||
hasRewardType = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (!hasRewardType) {
|
||||
layer.msg('请至少添加一项奖励信息', { icon: 2, anim: 6, time: 1500 });
|
||||
return false;
|
||||
}
|
||||
|
||||
// 验证通过后,处理奖励数据
|
||||
processRewardData();
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理奖励数据,将其转换为JSON格式并添加到隐藏字段
|
||||
*/
|
||||
function processRewardData() {
|
||||
var $ = layui.$;
|
||||
var rewardData = [];
|
||||
|
||||
// 收集所有奖励项的数据
|
||||
$('.reward-item').each(function () {
|
||||
var $item = $(this);
|
||||
var rewardType = $item.find('.reward-type-select').val();
|
||||
|
||||
if (rewardType) {
|
||||
var rewardObj = {
|
||||
reward_type: rewardType,
|
||||
reward_value: '',
|
||||
coupon_id: ''
|
||||
};
|
||||
|
||||
// 根据奖励类型设置相应的值
|
||||
if (rewardType == '4') { // 优惠券类型
|
||||
rewardObj.coupon_id = $item.find('.coupon-select').val() || '';
|
||||
} else { // 其他类型
|
||||
rewardObj.reward_value = $item.find('.reward-value-input').val() || '';
|
||||
}
|
||||
|
||||
rewardData.push(rewardObj);
|
||||
}
|
||||
});
|
||||
|
||||
// 将奖励数据转换为JSON字符串
|
||||
var rewardJson = JSON.stringify(rewardData);
|
||||
|
||||
// 检查表单中是否已存在reward隐藏字段
|
||||
if ($('input[name="reward"]').length > 0) {
|
||||
$('input[name="reward"]').val(rewardJson);
|
||||
} else {
|
||||
// 创建隐藏字段并添加到表单中
|
||||
$('form').append('<input type="hidden" name="reward" value=\'' + rewardJson + '\'>');
|
||||
}
|
||||
|
||||
// 清除可能残留的旧字段(兼容性考虑)
|
||||
$('input[name="reward_type[]"], input[name="reward_value[]"], input[name="coupon_id[]"]').remove();
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理奖励数据,将其转换为JSON格式并添加到隐藏字段
|
||||
*/
|
||||
async function processRewardIdData(pre, reward_id = '') {
|
||||
var $ = layui.$;
|
||||
var rewardData = [];
|
||||
|
||||
// 收集所有奖励项的数据
|
||||
$('.reward-item').each(function () {
|
||||
var $item = $(this);
|
||||
var rewardType = $item.find('.reward-type-select').val();
|
||||
|
||||
if (rewardType) {
|
||||
var rewardObj = {
|
||||
reward_type: rewardType,
|
||||
reward_value: '',
|
||||
coupon_id: ''
|
||||
};
|
||||
|
||||
// 根据奖励类型设置相应的值
|
||||
if (rewardType == '4') { // 优惠券类型
|
||||
rewardObj.coupon_id = $item.find('.coupon-select').val() || '';
|
||||
} else { // 其他类型
|
||||
rewardObj.reward_value = $item.find('.reward-value-input').val() || '';
|
||||
}
|
||||
|
||||
rewardData.push(rewardObj);
|
||||
}
|
||||
});
|
||||
if (reward_id || reward_id == '') {
|
||||
if ($('input[name="reward_id"]').length > 0) {
|
||||
reward_id = $('input[name="reward_id"]').val();
|
||||
}
|
||||
}
|
||||
if (reward_id == '' && rewardData.length == 0) {
|
||||
layer.msg('请至少添加一项奖励信息', { icon: 2, anim: 6, time: 1500 });
|
||||
return false;
|
||||
}
|
||||
// 将奖励数据转换为JSON字符串
|
||||
var rewardJson = JSON.stringify(rewardData);
|
||||
// reward_add_json
|
||||
var url = "/admin/reward_add_json.html";
|
||||
var $ = layui.$;
|
||||
var load = layer.load(2);
|
||||
let l = await $.post(url, { reward: rewardJson, reward_id: reward_id, reward_id_pre: pre });
|
||||
layer.close(load);
|
||||
console.log(l);
|
||||
if (l && l.status === 1) {
|
||||
reward_id = l.data.reward_id;
|
||||
}
|
||||
// 检查表单中是否已存在reward隐藏字段
|
||||
if ($('input[name="reward_id"]').length > 0) {
|
||||
$('input[name="reward_id"]').val(reward_id);
|
||||
} else {
|
||||
// 创建隐藏字段并添加到表单中
|
||||
$('form').append('<input type="hidden" name="reward_id" value=\'' + reward_id + '\'>');
|
||||
}
|
||||
|
||||
// 清除可能残留的旧字段(兼容性考虑)
|
||||
$('input[name="reward_type[]"], input[name="reward_value[]"], input[name="coupon_id[]"]').remove();
|
||||
}
|
||||
1
public/js/v2.10.3/layui/css/layui.css
Normal file
1
public/js/v2.10.3/layui/css/layui.css
Normal file
File diff suppressed because one or more lines are too long
BIN
public/js/v2.10.3/layui/font/iconfont.eot
Normal file
BIN
public/js/v2.10.3/layui/font/iconfont.eot
Normal file
Binary file not shown.
409
public/js/v2.10.3/layui/font/iconfont.svg
Normal file
409
public/js/v2.10.3/layui/font/iconfont.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 326 KiB |
BIN
public/js/v2.10.3/layui/font/iconfont.ttf
Normal file
BIN
public/js/v2.10.3/layui/font/iconfont.ttf
Normal file
Binary file not shown.
BIN
public/js/v2.10.3/layui/font/iconfont.woff
Normal file
BIN
public/js/v2.10.3/layui/font/iconfont.woff
Normal file
Binary file not shown.
BIN
public/js/v2.10.3/layui/font/iconfont.woff2
Normal file
BIN
public/js/v2.10.3/layui/font/iconfont.woff2
Normal file
Binary file not shown.
1
public/js/v2.10.3/layui/layui.js
Normal file
1
public/js/v2.10.3/layui/layui.js
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -222,7 +222,7 @@ function initRewardInfo(containerId, existingRewards = null) {
|
|||
}
|
||||
});
|
||||
} else {
|
||||
layer.msg('没有找到奖励数据或获取失败', { icon: 2, time: 2000 });
|
||||
// layer.msg('没有找到奖励数据或获取失败', { icon: 2, time: 2000 });
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
|
|
@ -365,6 +365,10 @@ async function processRewardIdData(pre, reward_id = '') {
|
|||
reward_id = $('input[name="reward_id"]').val();
|
||||
}
|
||||
}
|
||||
if (reward_id == '' && rewardData.length == 0) {
|
||||
// layer.msg('请至少添加一项奖励信息', { icon: 2, anim: 6, time: 1500 });
|
||||
return false;
|
||||
}
|
||||
// 将奖励数据转换为JSON字符串
|
||||
var rewardJson = JSON.stringify(rewardData);
|
||||
// reward_add_json
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user