提交
This commit is contained in:
parent
e85bdc0976
commit
7749e26e2c
|
|
@ -9,6 +9,7 @@ use app\common\model\Danye as DanyeModel;
|
||||||
|
|
||||||
class Danye extends Base
|
class Danye extends Base
|
||||||
{
|
{
|
||||||
|
public $page = '50';
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$whe = [];
|
$whe = [];
|
||||||
|
|
@ -47,7 +48,7 @@ class Danye extends Base
|
||||||
if (!$info) {
|
if (!$info) {
|
||||||
return $this->renderError('请求参数错误1');
|
return $this->renderError('请求参数错误1');
|
||||||
}
|
}
|
||||||
if ($info['id'] != 1) {
|
if ($info['id'] != 1 && $info['id'] < 21) {
|
||||||
unset($data['title']);
|
unset($data['title']);
|
||||||
}
|
}
|
||||||
$data['update_time'] = time();
|
$data['update_time'] = time();
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ class Goods extends Base
|
||||||
}
|
}
|
||||||
$data['prize_num'] = 0;
|
$data['prize_num'] = 0;
|
||||||
$data['category_id'] = 0;
|
$data['category_id'] = 0;
|
||||||
} elseif ($data['type'] == 2) {
|
} elseif ($data['type'] == 2 || $data['type'] == 16) {
|
||||||
$data['stock'] = 0;
|
$data['stock'] = 0;
|
||||||
$data['lock_is'] = 0;
|
$data['lock_is'] = 0;
|
||||||
$data['lock_time'] = 0;
|
$data['lock_time'] = 0;
|
||||||
|
|
@ -390,7 +390,7 @@ class Goods extends Base
|
||||||
}
|
}
|
||||||
$data['prize_num'] = 0;
|
$data['prize_num'] = 0;
|
||||||
$data['category_id'] = 0;
|
$data['category_id'] = 0;
|
||||||
} elseif ($type == 2) {
|
} elseif ($type == 2 || $type == 16) {
|
||||||
$data['stock'] = 0;
|
$data['stock'] = 0;
|
||||||
$data['lock_is'] = 0;
|
$data['lock_is'] = 0;
|
||||||
$data['lock_time'] = 0;
|
$data['lock_time'] = 0;
|
||||||
|
|
@ -573,6 +573,7 @@ class Goods extends Base
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上、下架,删除盒子
|
* 上、下架,删除盒子
|
||||||
*/
|
*/
|
||||||
|
|
@ -613,45 +614,88 @@ class Goods extends Base
|
||||||
return $this->renderError('请求参数错误');
|
return $this->renderError('请求参数错误');
|
||||||
}
|
}
|
||||||
$type = $info['type'];
|
$type = $info['type'];
|
||||||
$title = trim(input('get.title'));
|
|
||||||
$lian_ji_type = input('get.lian_ji_type');
|
View::assign('goods_id', $goods_id);
|
||||||
$whe = array();
|
View::assign('type', $type);
|
||||||
$whe[] = ['goods_id', '=', $goods_id];
|
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) {
|
if ($type == 1 || $type == 3 || $type == 5 || $type == 6 || $type == 10 || $type == 11) {
|
||||||
$whe[] = ['num', '=', 1];
|
$where[] = ['num', '=', 1];
|
||||||
} elseif ($type == 2 || $type == 8 || $type == 9 || $type == 15) {
|
} elseif ($type == 2 || $type == 8 || $type == 9 || $type == 15 || $type == 16) {
|
||||||
$whe[] = ['num', '=', 0];
|
$where[] = ['num', '=', 0];
|
||||||
} else {
|
} else {
|
||||||
return $this->renderError('请求参数错误1');
|
return $this->renderError('请求参数错误1');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($title)) {
|
if (!empty($title)) {
|
||||||
$whe[] = ['title', 'like', '%' . $title . '%'];
|
$where[] = ['title', 'like', "%{$title}%"];
|
||||||
}
|
}
|
||||||
if (!empty($lian_ji_type)) {
|
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()) {
|
if (!$request->isPost()) {
|
||||||
$goods_id = $request->param('goods_id/d', 0);
|
$goods_id = $request->param('goods_id/d', 0);
|
||||||
$info = GoodsModel::where(['id' => $goods_id])->find();
|
$info = GoodsModel::where(['id' => $goods_id])->find();
|
||||||
|
$goods_list_id = $request->param('goods_list_id/d', 0);
|
||||||
if (!$info) {
|
if (!$info) {
|
||||||
return $this->renderError('请求参数错误');
|
return $this->renderError('请求参数错误');
|
||||||
}
|
}
|
||||||
if ($info['type'] == 1 || $info['type'] == 5 || $info['type'] == 10 || $info['type'] == 11 || $info['type'] == 6) {
|
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();
|
$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();
|
$shang = Shang::where('id', 'between', [34, 38])->select()->toArray();
|
||||||
} elseif ($info['type'] == 3) {
|
} elseif ($info['type'] == 3) {
|
||||||
$shang = Shang::where('id', 'between', [4, 33])->select()->toArray();
|
$shang = Shang::where('id', 'between', [4, 33])->select()->toArray();
|
||||||
|
|
@ -678,6 +726,7 @@ class Goods extends Base
|
||||||
}
|
}
|
||||||
View::assign('shang', $shang);
|
View::assign('shang', $shang);
|
||||||
View::assign('goods_id', $goods_id);
|
View::assign('goods_id', $goods_id);
|
||||||
|
View::assign('goods_list_id', $goods_list_id);
|
||||||
View::assign('type', $info['type']);
|
View::assign('type', $info['type']);
|
||||||
return View::fetch('Goods/goodslist_add');
|
return View::fetch('Goods/goodslist_add');
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -707,7 +756,7 @@ class Goods extends Base
|
||||||
}
|
}
|
||||||
if ($data['goods_type'] == 1) {
|
if ($data['goods_type'] == 1) {
|
||||||
$data['sale_time'] = 0;
|
$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'])) {
|
if (empty($data['sale_time'])) {
|
||||||
return $this->renderError('请选择预售时间');
|
return $this->renderError('请选择预售时间');
|
||||||
}
|
}
|
||||||
|
|
@ -718,6 +767,8 @@ class Goods extends Base
|
||||||
}
|
}
|
||||||
} elseif ($type == 15) {
|
} elseif ($type == 15) {
|
||||||
$data['sale_time'] = 0;
|
$data['sale_time'] = 0;
|
||||||
|
} elseif ($data['goods_type'] == 3 || $data['goods_type'] == 4) {
|
||||||
|
$data['sale_time'] = 0;
|
||||||
} else {
|
} else {
|
||||||
return $this->err('奖品类型选择错误');
|
return $this->err('奖品类型选择错误');
|
||||||
}
|
}
|
||||||
|
|
@ -745,9 +796,9 @@ class Goods extends Base
|
||||||
$data['prize_code'] = $prize_code;
|
$data['prize_code'] = $prize_code;
|
||||||
$save_sports_data[] = $data;
|
$save_sports_data[] = $data;
|
||||||
}
|
}
|
||||||
} elseif (in_array($type, [2, 8, 9])) {
|
} elseif (in_array($type, [2, 8, 9, 16])) {
|
||||||
if (RegMoney($data['real_pro'] * 100)) {
|
if (RegMoney($data['real_pro'] * 10000)) {
|
||||||
return $this->renderError('真实概率设置错误,最多保留两位小数1');
|
return $this->renderError('真实概率设置错误,最多保留四位小数');
|
||||||
}
|
}
|
||||||
|
|
||||||
$prize_code = getPrizeCode() . '_' . time();
|
$prize_code = getPrizeCode() . '_' . time();
|
||||||
|
|
@ -817,6 +868,7 @@ class Goods extends Base
|
||||||
if (!$request->isPost()) {
|
if (!$request->isPost()) {
|
||||||
$id = $request->param('id/d', 0);
|
$id = $request->param('id/d', 0);
|
||||||
$goods = GoodsList::where(['id' => $id])->find();
|
$goods = GoodsList::where(['id' => $id])->find();
|
||||||
|
$goods_list_id = $request->param('goods_list_id/d', 0);
|
||||||
if (!$goods) {
|
if (!$goods) {
|
||||||
return $this->renderError('请求参数错误');
|
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) {
|
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();
|
$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();
|
$shang = Shang::where('id', 'between', [34, 38])->select()->toArray();
|
||||||
} elseif ($info['type'] == 15) {
|
} elseif ($info['type'] == 15) {
|
||||||
$shang = Shang::where('id', '>=', 114)->select()->toArray();
|
$shang = Shang::where('id', '>=', 114)->select()->toArray();
|
||||||
|
|
@ -845,6 +900,7 @@ class Goods extends Base
|
||||||
View::assign('goods', $goods);
|
View::assign('goods', $goods);
|
||||||
View::assign('shang', $shang);
|
View::assign('shang', $shang);
|
||||||
View::assign('type', $info['type']);
|
View::assign('type', $info['type']);
|
||||||
|
View::assign('goods_list_id', $goods_list_id);
|
||||||
return View::fetch('Goods/goodslist_edit');
|
return View::fetch('Goods/goodslist_edit');
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|
@ -887,7 +943,7 @@ class Goods extends Base
|
||||||
if ($today_time >= $data['sale_time']) {
|
if ($today_time >= $data['sale_time']) {
|
||||||
return $this->renderError('预售时间请在今天之后');
|
return $this->renderError('预售时间请在今天之后');
|
||||||
}
|
}
|
||||||
} elseif ($data['goods_type'] == 3) {
|
} elseif ($data['goods_type'] == 3 || $data['goods_type'] == 4) {
|
||||||
$data['sale_time'] = 0;
|
$data['sale_time'] = 0;
|
||||||
} else {
|
} else {
|
||||||
return $this->err('奖品类型选择错误');
|
return $this->err('奖品类型选择错误');
|
||||||
|
|
@ -899,9 +955,9 @@ class Goods extends Base
|
||||||
|
|
||||||
if ($type == 1 || $type == 5 || $type == 10 || $type == 6 || $type == 11 || $type == 15) {
|
if ($type == 1 || $type == 5 || $type == 10 || $type == 6 || $type == 11 || $type == 15) {
|
||||||
|
|
||||||
} elseif ($type == 2 || $type == 8 || $type == 9) {
|
} elseif ($type == 2 || $type == 8 || $type == 9 || $type == 16) {
|
||||||
if (RegMoney($data['real_pro'] * 1000)) {
|
if (RegMoney($data['real_pro'] * 10000)) {
|
||||||
return $this->renderError('真实概率设置错误,最多保留两位小数');
|
return $this->renderError('真实概率设置错误,最多保留四位小数');
|
||||||
}
|
}
|
||||||
} else if ($type == 3) {
|
} else if ($type == 3) {
|
||||||
if (RegInt($data['prize_num']) && $data['shang_id'] == 5) {
|
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('goods', 'Goods/goods', 'GET|POST');
|
||||||
Route::rule('api/goods/list', 'Goods/getGoodsList', 'GET');
|
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('api/goods/types', 'Goods/getGoodsTypeList', 'GET');
|
||||||
Route::rule('goods_add', 'Goods/goods_add', 'GET|POST');
|
Route::rule('goods_add', 'Goods/goods_add', 'GET|POST');
|
||||||
Route::rule('goods_edit', 'Goods/goods_edit', 'GET|POST');
|
Route::rule('goods_edit', 'Goods/goods_edit', 'GET|POST');
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<input type="text" name="title" value="{$info['title']}" lay-verify="required"
|
<input type="text" name="title" value="{$info['title']}" lay-verify="required"
|
||||||
placeholder="请输入标题" autocomplete="off" class="layui-input" {if
|
placeholder="请输入标题" autocomplete="off" class="layui-input" {if
|
||||||
condition="$info['id'] neq 1" }readonly{/if}>
|
condition="$info['id'] lt 20" }readonly{/if}>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,9 @@
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">是否首抽五折</label>
|
<label class="layui-form-label">是否首抽五折</label>
|
||||||
<div class="layui-input-inline" style="width: 700px">
|
<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>
|
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="是">
|
class="layui-input" title="是">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -358,6 +358,8 @@
|
||||||
$(".lian_ji_num").hide();
|
$(".lian_ji_num").hide();
|
||||||
$(".lian_ji_shang_id").hide();
|
$(".lian_ji_shang_id").hide();
|
||||||
form.on('radio(type)', function (data) {
|
form.on('radio(type)', function (data) {
|
||||||
|
console.log('aaa');
|
||||||
|
|
||||||
var value = data.value; // 当前选中的value值
|
var value = data.value; // 当前选中的value值
|
||||||
$("#div_daily_xiangou").show();
|
$("#div_daily_xiangou").show();
|
||||||
$("#goods_describe_div").hide();
|
$("#goods_describe_div").hide();
|
||||||
|
|
@ -382,7 +384,7 @@
|
||||||
$(".lingzhu_shang_id").hide();
|
$(".lingzhu_shang_id").hide();
|
||||||
$(".lian_ji_num").hide();
|
$(".lian_ji_num").hide();
|
||||||
$(".lian_ji_shang_id").hide();
|
$(".lian_ji_shang_id").hide();
|
||||||
} else if (value == 2) {
|
} else if (value == 2 || value == 16) {
|
||||||
$(".id_stock").hide();
|
$(".id_stock").hide();
|
||||||
$(".id_lock_is").hide();
|
$(".id_lock_is").hide();
|
||||||
$(".id_lock_time").hide();
|
$(".id_lock_time").hide();
|
||||||
|
|
@ -546,6 +548,13 @@
|
||||||
$('.xiajia-config').hide();
|
$('.xiajia-config').hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 首抽五折切换事件
|
||||||
|
form.on('radio(shou_zhe)', function (data) {
|
||||||
|
// 仅记录选择,不做界面显示变化
|
||||||
|
console.log('首抽五折设置为:', data.value);
|
||||||
|
});
|
||||||
|
|
||||||
//执行实例
|
//执行实例
|
||||||
upload.render({
|
upload.render({
|
||||||
accept: 'imgurl'
|
accept: 'imgurl'
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,9 @@
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">是否首抽五折</label>
|
<label class="layui-form-label">是否首抽五折</label>
|
||||||
<div class="layui-input-inline" style="width: 700px">
|
<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}>
|
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}>
|
class="layui-input" title="是" {if $info.is_shou_zhe eq 1} checked {/if}>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -65,7 +65,8 @@
|
||||||
class="layui-input" style="width: 600px">
|
class="layui-input" style="width: 600px">
|
||||||
</div>
|
</div>
|
||||||
</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>
|
<label class="layui-form-label">开始时间</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input type="text" name="flw_start_time" id="flw_start_time"
|
<input type="text" name="flw_start_time" id="flw_start_time"
|
||||||
|
|
@ -73,7 +74,7 @@
|
||||||
placeholder="请选择开始时间" class="layui-input" style="width: 600px">
|
placeholder="请选择开始时间" class="layui-input" style="width: 600px">
|
||||||
</div>
|
</div>
|
||||||
</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>
|
<label class="layui-form-label">结束时间</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input type="text" name="flw_end_time" id="flw_end_time"
|
<input type="text" name="flw_end_time" id="flw_end_time"
|
||||||
|
|
@ -81,7 +82,7 @@
|
||||||
placeholder="请选择结束时间" class="layui-input" style="width: 600px">
|
placeholder="请选择结束时间" class="layui-input" style="width: 600px">
|
||||||
</div>
|
</div>
|
||||||
</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>
|
<label class="layui-form-label">开奖时间</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input type="text" name="open_time" id="open_time"
|
<input type="text" name="open_time" id="open_time"
|
||||||
|
|
@ -89,6 +90,7 @@
|
||||||
placeholder="请选择开奖时间" class="layui-input" style="width: 600px">
|
placeholder="请选择开奖时间" class="layui-input" style="width: 600px">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
<div class="layui-form-item id_stock">
|
<div class="layui-form-item id_stock">
|
||||||
<label class="layui-form-label">套数</label>
|
<label class="layui-form-label">套数</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
|
|
@ -350,6 +352,12 @@
|
||||||
var value = data.value; // 当前选中的value值
|
var value = data.value; // 当前选中的value值
|
||||||
type_switch(value);
|
type_switch(value);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 首抽五折切换事件
|
||||||
|
form.on('radio(shou_zhe)', function (data) {
|
||||||
|
// 仅记录选择,不做界面显示变化
|
||||||
|
console.log('首抽五折设置为:', data.value);
|
||||||
|
});
|
||||||
|
|
||||||
function type_switch(value) {
|
function type_switch(value) {
|
||||||
$('#isshouwchou').show();
|
$('#isshouwchou').show();
|
||||||
|
|
@ -376,7 +384,7 @@
|
||||||
$(".lingzhu_shang_id").hide();
|
$(".lingzhu_shang_id").hide();
|
||||||
$(".lian_ji_num").hide();
|
$(".lian_ji_num").hide();
|
||||||
$(".lian_ji_shang_id").hide();
|
$(".lian_ji_shang_id").hide();
|
||||||
} else if (value == 2) {
|
} else if (value == 2 || value == 16) {
|
||||||
$(".id_stock").hide();
|
$(".id_stock").hide();
|
||||||
$(".id_lock_is").hide();
|
$(".id_lock_is").hide();
|
||||||
$(".id_lock_time").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({
|
upload.render({
|
||||||
accept: 'imgurl'
|
accept: 'imgurl'
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
{include file="Public:header2"/}
|
{include file="Public:header3"/}
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="layui-fluid">
|
<div class="layui-fluid">
|
||||||
<div class="layui-card">
|
<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-form-item">
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
<div class="layui-input-block" style="margin-left: 0px">
|
<div class="layui-input-block" style="margin-left: 0px">
|
||||||
<input type="text" name="title" value="{$Request.get.title}" placeholder="请输入奖品标题"
|
<input type="text" name="title" id="searchTitle" value="{$Request.get.title}"
|
||||||
autocomplete="off" class="layui-input">
|
placeholder="请输入奖品标题" autocomplete="off" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{if $type eq 9}
|
{if $type eq 9}
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
<div class="layui-input-inline" style="width: 180px;margin-left: 0px">
|
<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="">--奖池分类--</option>
|
||||||
<option value="0" {if condition="$Request.get.lian_ji_type eq 0" }selected{/if}>连击赏池
|
<option value="0" {if condition="$Request.get.lian_ji_type eq 0" }selected{/if}>连击赏池
|
||||||
</option>
|
</option>
|
||||||
|
|
@ -24,165 +24,304 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/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">
|
<div class="layui-inline">
|
||||||
<button class="layui-btn layuiadmin-btn-useradmin mmm" lay-submit
|
<button class="layui-btn layuiadmin-btn-useradmin" id="searchBtn">
|
||||||
lay-filter="LAY-user-front-search">
|
|
||||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div>
|
||||||
|
|
||||||
<div class="layui-card-body">
|
<div class="layui-card-body">
|
||||||
<xblock>
|
<div style="padding-bottom: 10px;">
|
||||||
<div style="padding-bottom: 10px;">
|
<button class="layui-btn" id="addBtn">添加奖品</button>
|
||||||
<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>
|
</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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{include file="Public:footer"/}
|
{include file="Public:footer3"/}
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
layui.use(['layer', 'table'], function () {
|
layui.use(function () {
|
||||||
var $ = layui.$;
|
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) {
|
function initTable() {
|
||||||
var url = "{:url('/admin/goodslist_add?goods_id=" + goods_id + "')}";
|
// 构建表格列配置
|
||||||
layer.open({
|
var columns = [];
|
||||||
type: 2,
|
|
||||||
title: '添加奖品',
|
// columns.push({ field: 'id', title: 'ID', minWidth: 80 });
|
||||||
shadeClose: false,
|
// columns.push({ field: 'goods_list_id', title: '所属宝箱id', minWidth: 80 });
|
||||||
shade: 0.3,
|
// 基础列
|
||||||
area: ['90%', '90%'],
|
columns.push({ field: 'title', title: '奖品名称', minWidth: 260 });
|
||||||
content: url,
|
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) {
|
treeTable.render({
|
||||||
var url = "{:url('/admin/goodslist_edit?id=" + id + "')}";
|
elem: '#goodsListTable',
|
||||||
layer.open({
|
url: '{:url("/admin/getGoodsListData")}',
|
||||||
type: 2,
|
method: 'get',
|
||||||
title: '编辑奖品',
|
where: {
|
||||||
shadeClose: false,
|
goods_id: goodsId
|
||||||
shade: 0.3,
|
},
|
||||||
area: ['90%', '90%'],
|
lineStyle: 'height:100px',
|
||||||
content: url,
|
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);
|
||||||
|
|
||||||
|
return {
|
||||||
//上下架
|
"totalRow": {
|
||||||
function del(id) {
|
"real_pro": res.code.real_pro,
|
||||||
var title = "删除";
|
},
|
||||||
layer.confirm('确认要执行' + title + '操作吗?', function () {
|
"code": res.code.code, //解析接口状态
|
||||||
var url = "{:url('/admin/goodslist_del')}";
|
"msg": res.msg, //解析提示文本
|
||||||
var load = layer.load(2);
|
"count": res.count, //解析数据长度
|
||||||
var $ = layui.$;
|
"data": res.data //解析数据列表
|
||||||
$.post(url, { "id": id }, function (data) {
|
};
|
||||||
if (data.status == 1) {
|
},
|
||||||
layer.msg(title + '成功', { icon: 1, time: 1000 }, function () {
|
done: function (res) {
|
||||||
location.reload();
|
// 表格加载完成后的回调
|
||||||
});
|
|
||||||
} else {
|
|
||||||
layer.msg(data.msg, { icon: 2, anim: 6, time: 1000 }, function () {
|
|
||||||
layer.close(load);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 搜索按钮点击事件
|
||||||
|
$('#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>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,14 +28,19 @@
|
||||||
{/if}
|
{/if}
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">奖品分类</label>
|
<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"
|
<input type="radio" lay-filter="goods_type" name="goods_type" value="1"
|
||||||
title="现货" checked>
|
title="现货" checked>
|
||||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="2"
|
<input type="radio" lay-filter="goods_type" name="goods_type" value="2"
|
||||||
title="预售">
|
title="预售">
|
||||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="3"
|
<input type="radio" lay-filter="goods_type" name="goods_type" value="3"
|
||||||
title="货币">
|
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>
|
</div>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">奖品类型</label>
|
<label class="layui-form-label">奖品类型</label>
|
||||||
|
|
@ -68,7 +73,8 @@
|
||||||
class="layui-input">
|
class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</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">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">奖品数量</label>
|
<label class="layui-form-label">奖品数量</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
|
|
@ -87,7 +93,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/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">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">真实概率</label>
|
<label class="layui-form-label">真实概率</label>
|
||||||
<div class="layui-input-inline" style="width: 700px">
|
<div class="layui-input-inline" style="width: 700px">
|
||||||
|
|
@ -97,6 +103,16 @@
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/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">
|
<div class="layui-form-item sale_time" style="display: none">
|
||||||
<label class="layui-form-label">预售时间</label>
|
<label class="layui-form-label">预售时间</label>
|
||||||
<div class="layui-input-inline" style="width: 512px;">
|
<div class="layui-input-inline" style="width: 512px;">
|
||||||
|
|
@ -129,13 +145,14 @@
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">商品详情图</label>
|
<label class="layui-form-label">商品详情图</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input type="hidden" name="imgurl_detail" value=""
|
<input type="hidden" name="imgurl_detail" value="" placeholder="请上传商品详情图"
|
||||||
placeholder="请上传商品详情图" autocomplete="off" class="layui-input">
|
autocomplete="off" class="layui-input">
|
||||||
<img style="float:left;width:120px;" class="" id="imgurl_detail"
|
<img style="float:left;width:120px;" class="" id="imgurl_detail"
|
||||||
src="/static/image/upload.jpg">
|
src="/static/image/upload.jpg">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="goods_id" value="{$goods_id}">
|
<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-form-item">
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<button class="layui-btn" onclick="return check()">确认保存</button>
|
<button class="layui-btn" onclick="return check()">确认保存</button>
|
||||||
|
|
@ -177,8 +194,9 @@
|
||||||
$(".sale_time").hide()
|
$(".sale_time").hide()
|
||||||
} else if (value == 2) {
|
} else if (value == 2) {
|
||||||
$(".sale_time").show()
|
$(".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>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/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">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">奖品类型</label>
|
<label class="layui-form-label">奖品类型</label>
|
||||||
<div class="layui-input-inline" style="width: 521px">
|
<div class="layui-input-inline" style="width: 521px">
|
||||||
|
|
@ -79,7 +94,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/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">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">真实概率</label>
|
<label class="layui-form-label">真实概率</label>
|
||||||
<div class="layui-input-inline" style="width: 700px">
|
<div class="layui-input-inline" style="width: 700px">
|
||||||
|
|
@ -89,19 +104,19 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
{if $type eq 16}
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">奖品类型</label>
|
<label class="layui-form-label">赠送倍率</label>
|
||||||
<div class="layui-input-inline" style="width: 521px;">
|
<div class="layui-input-inline">
|
||||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="1"
|
<input type="number" name="doubling" value="{$goods.doubling|default=1}"
|
||||||
title="现货" {if $goods.goods_type eq 1} checked {/if}>
|
autocomplete="off" placeholder="请输入赠送倍率" class="layui-input"
|
||||||
<input type="radio" lay-filter="goods_type" name="goods_type" value="2"
|
style="width: 521px">
|
||||||
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}>
|
|
||||||
</div>
|
</div>
|
||||||
</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>
|
<label class="layui-form-label">预售时间</label>
|
||||||
<div class="layui-input-inline" style="width: 521px;">
|
<div class="layui-input-inline" style="width: 521px;">
|
||||||
<input type="text" name="sale_time" value="{$goods.sale_time}" id="sale_time"
|
<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}"
|
<input type="hidden" name="imgurl_detail" value="{$goods.imgurl_detail}"
|
||||||
placeholder="请上传商品详情图" autocomplete="off" class="layui-input">
|
placeholder="请上传商品详情图" autocomplete="off" class="layui-input">
|
||||||
<img style="float:left;width:120px;" class="" id="imgurl_detail"
|
<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>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="id" value="{$goods.id}">
|
<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-form-item">
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<button class="layui-btn" onclick="return check()">确认保存</button>
|
<button class="layui-btn" onclick="return check()">确认保存</button>
|
||||||
|
|
@ -181,8 +198,9 @@
|
||||||
$(".sale_time").hide()
|
$(".sale_time").hide()
|
||||||
} else if (value == 2) {
|
} else if (value == 2) {
|
||||||
$(".sale_time").show()
|
$(".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 () {
|
layer.msg(data.msg, { icon: 1, time: 1500 }, function () {
|
||||||
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
|
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
|
||||||
parent.layer.close(index);
|
parent.layer.close(index);
|
||||||
parent.location.reload();
|
// parent.location.reload();
|
||||||
|
parent.layui.table.reload('goodsListTable');
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
layer.msg(data.msg, { icon: 2, anim: 6, time: 1500 }, function () {
|
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];
|
$whe[] = ['type', '=', 12];
|
||||||
} elseif ($type_str == 15) {
|
} elseif ($type_str == 15) {
|
||||||
$whe[] = ['type', '=', 15];
|
$whe[] = ['type', '=', 15];
|
||||||
|
} elseif ($type_str == 16) {
|
||||||
|
$whe[] = ['type', '=', 16];
|
||||||
} else {
|
} else {
|
||||||
$whe[] = ['type', 'not in', [4, 10, 15]];
|
$whe[] = ['type', 'not in', [4, 10, 15]];
|
||||||
}
|
}
|
||||||
|
|
@ -128,6 +130,7 @@ class Goods extends Base
|
||||||
$join_count = OrderList::field('id')
|
$join_count = OrderList::field('id')
|
||||||
->where('shang_id', 'between', self::$shang_count_id)
|
->where('shang_id', 'between', self::$shang_count_id)
|
||||||
->where('goods_id', '=', $itme['id'])
|
->where('goods_id', '=', $itme['id'])
|
||||||
|
->where('parent_goods_list_id', '=', 0)
|
||||||
->where('order_type', '=', $itme['type'])
|
->where('order_type', '=', $itme['type'])
|
||||||
->count();
|
->count();
|
||||||
$itme['join_count'] = $join_count;
|
$itme['join_count'] = $join_count;
|
||||||
|
|
@ -154,6 +157,8 @@ class Goods extends Base
|
||||||
$type_text = '商品赏';
|
$type_text = '商品赏';
|
||||||
} elseif ($itme['type'] == 11) {
|
} elseif ($itme['type'] == 11) {
|
||||||
$type_text = '自制赏';
|
$type_text = '自制赏';
|
||||||
|
} elseif ($itme['type'] == 16) {
|
||||||
|
$type_text = '翻倍赏';
|
||||||
}
|
}
|
||||||
// elseif ($itme['type'] == 9) {
|
// elseif ($itme['type'] == 9) {
|
||||||
// $type_text = '冲冲赏';
|
// $type_text = '冲冲赏';
|
||||||
|
|
@ -204,6 +209,7 @@ class Goods extends Base
|
||||||
$goodslist_info = GoodsList::field('num,sum(`surplus_stock`) as all_surplus_stock')
|
$goodslist_info = GoodsList::field('num,sum(`surplus_stock`) as all_surplus_stock')
|
||||||
->where(['goods_id' => $goods_id])
|
->where(['goods_id' => $goods_id])
|
||||||
->where('shang_id', 'not in', [1, 2, 3, 4, 5])
|
->where('shang_id', 'not in', [1, 2, 3, 4, 5])
|
||||||
|
->where('goods_list_id', '=', 0)
|
||||||
->having('all_surplus_stock', '>', 0)
|
->having('all_surplus_stock', '>', 0)
|
||||||
->group('num')
|
->group('num')
|
||||||
->order('num asc')
|
->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')
|
$goods_surplus = GoodsList::field('sum(`stock`) as stock, sum(`surplus_stock`) as surplus_stock')
|
||||||
->where('goods_id', '=', $goods_id)
|
->where('goods_id', '=', $goods_id)
|
||||||
->where('num', '=', $goods_num)
|
->where('num', '=', $goods_num)
|
||||||
|
->where('goods_list_id', '=', 0)
|
||||||
->where('shang_id', 'between', self::$shang_prize_id)
|
->where('shang_id', 'between', self::$shang_prize_id)
|
||||||
->find();
|
->find();
|
||||||
$all_surplus_stock = $goods_surplus['surplus_stock'];
|
$all_surplus_stock = $goods_surplus['surplus_stock'];
|
||||||
|
|
@ -241,6 +248,7 @@ class Goods extends Base
|
||||||
->append(['shang_info'])
|
->append(['shang_info'])
|
||||||
->where(['goods_id' => $goods_id])
|
->where(['goods_id' => $goods_id])
|
||||||
->where(['num' => $goods_num])
|
->where(['num' => $goods_num])
|
||||||
|
->where('goods_list_id', '=', 0)
|
||||||
->order('sort desc,shang_id asc,id asc')
|
->order('sort desc,shang_id asc,id asc')
|
||||||
->select()->toArray();
|
->select()->toArray();
|
||||||
foreach ($goodslist as $key => &$value) {
|
foreach ($goodslist as $key => &$value) {
|
||||||
|
|
@ -276,11 +284,17 @@ class Goods extends Base
|
||||||
$pro_max = $pro_num;
|
$pro_max = $pro_num;
|
||||||
$pro_key = $key;
|
$pro_key = $key;
|
||||||
}
|
}
|
||||||
|
if ($value['goods_type'] == 4) {
|
||||||
|
//表示有子奖品
|
||||||
|
$value['children'] = true;
|
||||||
|
} else {
|
||||||
|
$value['children'] = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#概率不足时
|
#概率不足时
|
||||||
if ($pro_max > 0 && $pro_all < 100) {
|
if ($pro_max > 0 && $pro_all < 100) {
|
||||||
$surplus_pro = bcsub("100", "$pro_all", 2);
|
$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;
|
$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'])
|
->append(['userinfo'])
|
||||||
->where('goods_id', '=', $goods_id)
|
->where('goods_id', '=', $goods_id)
|
||||||
->where('order_type', '=', $goods['type'])
|
->where('order_type', '=', $goods['type'])
|
||||||
|
|
||||||
->order('id desc')
|
->order('id desc')
|
||||||
->group('user_id')
|
->group('user_id')
|
||||||
->limit(5)
|
->limit(5)
|
||||||
|
|
@ -113,6 +114,7 @@ class Infinite extends Base
|
||||||
->append(['shang_info', 'goods_list'])
|
->append(['shang_info', 'goods_list'])
|
||||||
->where(['goods_id' => $goods_id])
|
->where(['goods_id' => $goods_id])
|
||||||
->where(['num' => 0])
|
->where(['num' => 0])
|
||||||
|
->where('goods_list_id', '=', 0)
|
||||||
->order('sort desc,shang_id asc,id asc')
|
->order('sort desc,shang_id asc,id asc')
|
||||||
->group('shang_id')
|
->group('shang_id')
|
||||||
->select()->toArray();
|
->select()->toArray();
|
||||||
|
|
@ -123,13 +125,14 @@ class Infinite extends Base
|
||||||
$value['shang_color'] = $value['shang_info']['color'];
|
$value['shang_color'] = $value['shang_info']['color'];
|
||||||
unset($value['shang_info']);
|
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'])
|
->append(['shang_info', 'goods_list'])
|
||||||
->withAttr('imgurl', function ($value, $data) {
|
->withAttr('imgurl', function ($value, $data) {
|
||||||
return imageUrl($value);
|
return imageUrl($value);
|
||||||
})
|
})
|
||||||
->where(['goods_id' => $goods_id])
|
->where(['goods_id' => $goods_id])
|
||||||
->where(['num' => 0])
|
->where(['num' => 0])
|
||||||
|
->where('goods_list_id', '=', 0)
|
||||||
->order('sort desc,shang_id asc,id asc')
|
->order('sort desc,shang_id asc,id asc')
|
||||||
->paginate(1000);
|
->paginate(1000);
|
||||||
foreach ($goods_list as &$value) {
|
foreach ($goods_list as &$value) {
|
||||||
|
|
@ -147,6 +150,8 @@ class Infinite extends Base
|
||||||
$type1 = 8;
|
$type1 = 8;
|
||||||
} elseif ($goods['type'] == 8) {
|
} elseif ($goods['type'] == 8) {
|
||||||
$type1 = 14;
|
$type1 = 14;
|
||||||
|
} elseif ($goods['type'] == 16) {
|
||||||
|
$type1 = 21;
|
||||||
}
|
}
|
||||||
|
|
||||||
$new_data = [
|
$new_data = [
|
||||||
|
|
@ -589,7 +594,7 @@ class Infinite extends Base
|
||||||
return $this->renderError("盒子已下架");
|
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("非法请求");
|
return $this->renderError("非法请求");
|
||||||
}
|
}
|
||||||
$user_id = $this->getuserid();
|
$user_id = $this->getuserid();
|
||||||
|
|
@ -1031,7 +1036,7 @@ class Infinite extends Base
|
||||||
return $this->renderError("支付异常,请刷新重试");
|
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'])
|
->append(['shang_title'])
|
||||||
->where('user_id', '=', $user['id'])
|
->where('user_id', '=', $user['id'])
|
||||||
->where('order_id', '=', $order_info['id'])
|
->where('order_id', '=', $order_info['id'])
|
||||||
|
|
|
||||||
|
|
@ -547,6 +547,7 @@ class Notify extends Base
|
||||||
->where('goods_id', '=', $goods_id)
|
->where('goods_id', '=', $goods_id)
|
||||||
->where('num', '=', $num)
|
->where('num', '=', $num)
|
||||||
->where('shang_id', 'between', self::$shang_prize_id)
|
->where('shang_id', 'between', self::$shang_prize_id)
|
||||||
|
->where('goods_list_id', '=', 0)
|
||||||
->find();
|
->find();
|
||||||
// var_dump($goodslist['surplus_stock']);
|
// var_dump($goodslist['surplus_stock']);
|
||||||
#普通赏销量数量
|
#普通赏销量数量
|
||||||
|
|
@ -606,154 +607,53 @@ class Notify extends Base
|
||||||
$ordinary_prize = GoodsList::where('goods_id', '=', $goods_id)
|
$ordinary_prize = GoodsList::where('goods_id', '=', $goods_id)
|
||||||
->where('num', '=', $num)
|
->where('num', '=', $num)
|
||||||
->where('shang_id', 'between', self::$shang_prize_id)
|
->where('shang_id', 'between', self::$shang_prize_id)
|
||||||
|
->where('goods_list_id', '=', 0)
|
||||||
->order('sort desc,shang_id asc')
|
->order('sort desc,shang_id asc')
|
||||||
->select()->toArray();
|
->select()->toArray();
|
||||||
if (!$ordinary_prize) {
|
if (!$ordinary_prize) {
|
||||||
$res[] = 0;
|
$res[] = 0;
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
//获取最低抽奖次数
|
$res[] = $this->ordinary_prize_notice_box($ordinary_prize, $prize_num, $order_id, $user_id, $goods_id, $order_type, $num);
|
||||||
$goods_extend_model_list = GoodsExtendListModel::getGoodsExtendList($goods_id);
|
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'));
|
// $stock = array_sum(array_column($ordinary_prize, 'stock'));
|
||||||
$surplus_stock = array_sum(array_column($ordinary_prize, 'surplus_stock'));
|
// $surplus_stock = array_sum(array_column($ordinary_prize, 'surplus_stock'));
|
||||||
$reward_num_count = $stock - $surplus_stock;
|
|
||||||
#普通奖暂存信息
|
|
||||||
$ordinary_prize_all = [];
|
$ordinary_prize_all = [];
|
||||||
#普通奖暂存信息
|
|
||||||
$ordinary_prize_special_all = [];
|
|
||||||
#其他
|
|
||||||
$ordinary_prize_other = [];
|
|
||||||
foreach ($ordinary_prize as $k => $v) {
|
foreach ($ordinary_prize as $k => $v) {
|
||||||
#剩余
|
#库存
|
||||||
$surplus_prize = $v['surplus_stock'];
|
$surplus_prize = $v['surplus_stock'];
|
||||||
//奖品id
|
if ($surplus_prize > 0) {
|
||||||
$prize_code = $v['prize_code'];
|
//库存数量
|
||||||
$goods_list_id = $v['id'];
|
for ($i = 1; $i <= $surplus_prize; $i++) {
|
||||||
//扩展配置
|
|
||||||
$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;
|
|
||||||
$ordinary_prize_all[] = $v;
|
$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++) {
|
for ($i = 0; $i < $prize_num; $i++) {
|
||||||
$ordinary_prize_info = $end_ordinary_prize[$i];
|
$ordinary_prize_info = $ordinary_prize_all[$i];
|
||||||
$save_order_goods[
|
$order_goods_info=[
|
||||||
|
|
||||||
] = [
|
|
||||||
'order_id' => $order_id,
|
'order_id' => $order_id,
|
||||||
'user_id' => $user_id,
|
'user_id' => $user_id,
|
||||||
'status' => 0,#0未操作 1选择兑换 2选择发货
|
'status' => 0,#0未操作 1选择兑换 2选择发货
|
||||||
|
|
@ -770,17 +670,35 @@ class Notify extends Base
|
||||||
'addtime' => time(),
|
'addtime' => time(),
|
||||||
'prize_code' => $ordinary_prize_info['prize_code'],
|
'prize_code' => $ordinary_prize_info['prize_code'],
|
||||||
'order_type' => $order_type,
|
'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')
|
$res[] = GoodsList::field('surplus_stock')
|
||||||
->where(['id' => $ordinary_prize_info['id']])
|
->where(['id' => $ordinary_prize_info['id']])
|
||||||
->dec('surplus_stock')
|
->dec('surplus_stock')
|
||||||
->update();
|
->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) {
|
// if ($save_order_goods) {
|
||||||
#新增奖品列表
|
// #新增奖品列表
|
||||||
$res[] = OrderList::insertAll($save_order_goods);
|
// $res[] = OrderList::insertAll($save_order_goods);
|
||||||
}
|
// }
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -909,6 +827,7 @@ class Notify extends Base
|
||||||
->where('num', '=', $num)
|
->where('num', '=', $num)
|
||||||
->where('surplus_stock', '>', 0)
|
->where('surplus_stock', '>', 0)
|
||||||
->where('shang_id', 'in', self::$shang_give_arr)
|
->where('shang_id', 'in', self::$shang_give_arr)
|
||||||
|
->where('goods_list_id', '=', 0)
|
||||||
->select()->toArray();
|
->select()->toArray();
|
||||||
$surplus_give_stock = $special_prize ? array_sum(array_column($special_prize, 'surplus_stock')) : 0;
|
$surplus_give_stock = $special_prize ? array_sum(array_column($special_prize, 'surplus_stock')) : 0;
|
||||||
if ($special_prize && $surplus_give_stock > 0) {
|
if ($special_prize && $surplus_give_stock > 0) {
|
||||||
|
|
@ -1128,81 +1047,14 @@ class Notify extends Base
|
||||||
//普通
|
//普通
|
||||||
$where[] = ['lian_ji_type', '=', 0];
|
$where[] = ['lian_ji_type', '=', 0];
|
||||||
}
|
}
|
||||||
|
$where[] = ['goods_list_id', '=', 0];
|
||||||
#查找奖品
|
#查找奖品
|
||||||
$goodslist = GoodsList::field('id,shang_id,real_pro')
|
$goodslist = GoodsList::field('id,shang_id,real_pro')
|
||||||
->where($where)
|
->where($where)
|
||||||
->select()->toArray();
|
->select()->toArray();
|
||||||
if ($goodslist) {
|
if ($goodslist) {
|
||||||
|
|
||||||
// 计算总概率
|
$res[] = $this->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,
|
|
||||||
'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);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//去除秘宝池次数
|
//去除秘宝池次数
|
||||||
if ($infinite_goods['type'] == 9 && $order['is_mibao'] == 1) {
|
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 订单信息
|
* @param $order 订单信息
|
||||||
*/
|
*/
|
||||||
protected function infinite_shangchengshang($order = [])
|
protected function infinite_shangchengshang($order = [])
|
||||||
|
|
@ -1926,7 +1872,7 @@ class Notify extends Base
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 无限赏开始抽赏======================================================
|
* 商城赏======================================================
|
||||||
* @param int $user_id 会员id
|
* @param int $user_id 会员id
|
||||||
* @param int $order_id 订单ID
|
* @param int $order_id 订单ID
|
||||||
* @param int $box_id 盲盒id
|
* @param int $box_id 盲盒id
|
||||||
|
|
|
||||||
|
|
@ -80,9 +80,8 @@ Route::any('quan_yi_ling', 'QuanYi/quan_yi_ling');
|
||||||
#Goods.php盒子管理
|
#Goods.php盒子管理
|
||||||
#============================
|
#============================
|
||||||
Route::any('goods', 'Goods/goods');
|
Route::any('goods', 'Goods/goods');
|
||||||
|
|
||||||
|
|
||||||
Route::any('goodsdetail', 'Goods/goodsdetail');
|
Route::any('goodsdetail', 'Goods/goodsdetail');
|
||||||
|
Route::any('goods_children', 'Goods/getGoodsChildren');
|
||||||
Route::any('goodslist_count', 'Goods/goodslist_count');
|
Route::any('goodslist_count', 'Goods/goodslist_count');
|
||||||
Route::any('goodslist_content', 'Goods/goodslist_content');
|
Route::any('goodslist_content', 'Goods/goodslist_content');
|
||||||
Route::any('shang_log', 'Goods/shang_log');
|
Route::any('shang_log', 'Goods/shang_log');
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ class Danye extends Base{
|
||||||
$list = self::where($where)
|
$list = self::where($where)
|
||||||
->field($field)
|
->field($field)
|
||||||
->order($order)
|
->order($order)
|
||||||
->paginate(15);
|
->paginate($pageSize);
|
||||||
$page = $list->render();
|
$page = $list->render();
|
||||||
$data['list'] = $list->toArray()['data'];
|
$data['list'] = $list->toArray()['data'];
|
||||||
$data['count']=$list->total();
|
$data['count']=$list->total();
|
||||||
|
|
|
||||||
|
|
@ -75,12 +75,13 @@ class GoodsList extends Base
|
||||||
|
|
||||||
public function getGoodsListAttr($value, $data)
|
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) {
|
->withAttr('imgurl', function ($value, $data) {
|
||||||
return imageUrl($value);
|
return imageUrl($value);
|
||||||
})
|
})
|
||||||
->where('goods_id', '=', $data['goods_id'])
|
->where('goods_id', '=', $data['goods_id'])
|
||||||
->where('shang_id', '=', $data['shang_id'])
|
->where('shang_id', '=', $data['shang_id'])
|
||||||
|
->where('goods_list_id', '=', 0)
|
||||||
->select()->toArray();
|
->select()->toArray();
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ class User extends Base
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户变化
|
* 用户变化 发放uu币
|
||||||
* @param $user_id
|
* @param $user_id
|
||||||
* @param $change_money
|
* @param $change_money
|
||||||
* @param $type 1后台充值 2抽赏消费 3开券获得
|
* @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 {
|
} else {
|
||||||
layer.msg('没有找到奖励数据或获取失败', { icon: 2, time: 2000 });
|
// layer.msg('没有找到奖励数据或获取失败', { icon: 2, time: 2000 });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function () {
|
error: function () {
|
||||||
|
|
@ -365,6 +365,10 @@ async function processRewardIdData(pre, reward_id = '') {
|
||||||
reward_id = $('input[name="reward_id"]').val();
|
reward_id = $('input[name="reward_id"]').val();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (reward_id == '' && rewardData.length == 0) {
|
||||||
|
// layer.msg('请至少添加一项奖励信息', { icon: 2, anim: 6, time: 1500 });
|
||||||
|
return false;
|
||||||
|
}
|
||||||
// 将奖励数据转换为JSON字符串
|
// 将奖励数据转换为JSON字符串
|
||||||
var rewardJson = JSON.stringify(rewardData);
|
var rewardJson = JSON.stringify(rewardData);
|
||||||
// reward_add_json
|
// reward_add_json
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user