This commit is contained in:
manghe 2025-04-04 07:49:31 +00:00
parent 710b7e31a2
commit e85bdc0976
5 changed files with 2081 additions and 209 deletions

View File

@ -1,194 +1,200 @@
{include file="Public:header2"/}
<body>
<style>
.layui-table-cell {
height: auto;
}
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-btn-group">
<button class="layui-btn layui-btn-normal layui-btn-sm" id="add-type">新增类型</button>
<style>
.layui-table-cell {
height: auto;
}
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-btn-group">
<button class="layui-btn layui-btn-normal layui-btn-sm" id="add-type">新增类型</button>
</div>
<table id="typeTable" lay-filter="typeTable"></table>
</div>
<table id="typeTable" lay-filter="typeTable"></table>
</div>
</div>
</div>
{include file="Public:footer"/}
{include file="Public:footer"/}
<!-- 操作列模板 -->
<script type="text/html" id="operationTpl">
<!-- 操作列模板 -->
<script type="text/html" id="operationTpl">
<div class="layui-btn-group">
<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</button>
<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button>
</div>
</script>
<!-- 开关模板 -->
<script type="text/html" id="isShowTpl">
<!-- 开关模板 -->
<script type="text/html" id="isShowTpl">
<input type="checkbox" name="is_show" value="{{d.is_show}}" lay-skin="switch" lay-text="是|否" lay-filter="is_show" {{d.is_show == 1 ? 'checked' : ''}} data-id="{{d.id}}">
</script>
<script type="text/html" id="isFenleiTpl">
<script type="text/html" id="isFenleiTpl">
<input type="checkbox" name="is_fenlei" value="{{d.is_fenlei}}" lay-skin="switch" lay-text="是|否" lay-filter="is_fenlei" {{d.is_fenlei == 1 ? 'checked' : ''}} data-id="{{d.id}}">
</script>
<script>
layui.use(['table', 'form', 'layer'], function() {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var table = layui.table;
// 渲染表格
table.render({
elem: '#typeTable',
url: '{:url("goodstype/getTypeList")}', // 后端提供的数据接口
page: true, // 开启分页
height: 'full-100',
limit: 15, // 每页显示的条数
limits: [15, 30, 50, 100], // 每页条数的选择项
cols: [[ // 表头
{field: 'id', title: 'ID', width: 80, sort: true, fixed: 'left'},
{field: 'name', title: '类型名称', width: 150},
{field: 'value', title: '类型Key', width: 100},
{field: 'sort_order', title: '排序', width: 100, sort: true},
{field: 'is_show', title: '首页显示', width: 120, templet: '#isShowTpl'},
{field: 'is_fenlei', title: '分类显示', width: 120, templet: '#isFenleiTpl'},
{field: 'fl_name', title: '分类名称', width: 150},
{title: '支付方式', minWidth: 200, templet: function(d){
var html = '';
if(d.pay_wechat == 1) html += '<span class="layui-badge layui-bg-green">微信</span> ';
if(d.pay_balance == 1) html += '<span class="layui-badge layui-bg-blue">余额</span> ';
if(d.pay_currency == 1) html += '<span class="layui-badge layui-bg-orange">货币</span> ';
if(d.pay_currency2 == 1) html += '<span class="layui-badge layui-bg-cyan">货币2</span> ';
if(d.pay_coupon == 1) html += '<span class="layui-badge layui-bg-red">优惠券</span> ';
return html;
}},
{title: '支付类型', width: 100, templet: function(d){
if(d.is_deduction == 1) {
return '<span class="layui-badge layui-bg-blue">抵扣</span>';
} else {
return '<span class="layui-badge layui-bg-orange">支付</span>';
}
}},
{field: 'remark', title: '备注', width: 200},
{fixed: 'right', title: '操作', toolbar: '#operationTpl', width: 150}
]],
response: {
statusCode: 1 // 重新规定成功的状态码默认0
},
parseData: function(res) { // 将原始数据解析成 table 组件所规定的数据
return {
"code": res.status, // 解析接口状态
"msg": res.msg, // 解析提示文本
"count": res.data.count, // 解析数据长度
"data": res.data.list // 解析数据列表
};
}
});
// 监听工具条事件
table.on('tool(typeTable)', function(obj) {
var data = obj.data; // 获得当前行数据
var layEvent = obj.event; // 获得 lay-event 对应的值
if (layEvent === 'edit') { // 编辑
<script>
layui.use(['table', 'form', 'layer'], function () {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var table = layui.table;
// 渲染表格
table.render({
elem: '#typeTable',
url: '{:url("goodstype/getTypeList")}', // 后端提供的数据接口
page: true, // 开启分页
height: 'full-100',
limit: 20, // 每页显示的条数
limits: [20, 30, 50, 100], // 每页条数的选择项
cols: [[ // 表头
{ field: 'id', title: 'ID', width: 80, sort: true },
{ field: 'name', title: '类型名称', width: 150 },
{ field: 'value', title: '类型Key', width: 100 },
{ field: 'sort_order', title: '排序', width: 100, sort: true },
{ field: 'is_show', title: '首页显示', width: 120, templet: '#isShowTpl' },
{ field: 'is_fenlei', title: '分类显示', width: 120, templet: '#isFenleiTpl' },
{ field: 'fl_name', title: '分类名称', width: 150 },
{
title: '支付方式', minWidth: 200, templet: function (d) {
var html = '';
if (d.pay_wechat == 1) html += '<span class="layui-badge layui-bg-green">微信</span> ';
if (d.pay_balance == 1) html += '<span class="layui-badge layui-bg-blue">余额</span> ';
if (d.pay_currency == 1) html += '<span class="layui-badge layui-bg-orange">货币</span> ';
if (d.pay_currency2 == 1) html += '<span class="layui-badge layui-bg-cyan">货币2</span> ';
if (d.pay_coupon == 1) html += '<span class="layui-badge layui-bg-red">优惠券</span> ';
return html;
}
},
{
title: '支付类型', width: 100, templet: function (d) {
if (d.is_deduction == 1) {
return '<span class="layui-badge layui-bg-blue">抵扣</span>';
} else {
return '<span class="layui-badge layui-bg-orange">支付</span>';
}
}
},
{ field: 'remark', title: '备注', width: 200 },
{ fixed: 'right', title: '操作', toolbar: '#operationTpl', width: 150 }
]],
response: {
statusCode: 1 // 重新规定成功的状态码默认0
},
parseData: function (res) { // 将原始数据解析成 table 组件所规定的数据
return {
"code": res.status, // 解析接口状态
"msg": res.msg, // 解析提示文本
"count": res.data.count, // 解析数据长度
"data": res.data.list // 解析数据列表
};
}
});
// 监听工具条事件
table.on('tool(typeTable)', function (obj) {
var data = obj.data; // 获得当前行数据
var layEvent = obj.event; // 获得 lay-event 对应的值
if (layEvent === 'edit') { // 编辑
layer.open({
type: 2,
title: '编辑盒子类型',
area: ['80%', '85%'],
fixed: false,
maxmin: true,
content: '{:url("goodstype/edit")}?id=' + data.id,
end: function () {
// 弹窗关闭后刷新表格
table.reload('typeTable');
}
});
} else if (layEvent === 'del') { // 删除
layer.confirm('确定要删除此盒子类型吗?', function (index) {
$.ajax({
url: '{:url("goodstype/delete")}',
type: 'post',
data: { id: data.id },
success: function (res) {
if (res.status) {
layer.msg(res.msg, { icon: 1, time: 1000 });
// 删除成功后刷新表格
table.reload('typeTable');
} else {
layer.msg(res.msg, { icon: 2, time: 1500 });
}
}
});
layer.close(index);
});
}
});
// 新增类型
$('#add-type').on('click', function () {
layer.open({
type: 2,
title: '编辑盒子类型',
title: '添加盒子类型',
area: ['80%', '85%'],
fixed: false,
maxmin: true,
content: '{:url("goodstype/edit")}?id=' + data.id,
end: function() {
content: '{:url("goodstype/add")}',
end: function () {
// 弹窗关闭后刷新表格
table.reload('typeTable');
}
});
} else if (layEvent === 'del') { // 删除
layer.confirm('确定要删除此盒子类型吗?', function(index) {
$.ajax({
url: '{:url("goodstype/delete")}',
type: 'post',
data: {id: data.id},
success: function(res) {
if (res.status) {
layer.msg(res.msg, {icon: 1, time: 1000});
// 删除成功后刷新表格
table.reload('typeTable');
} else {
layer.msg(res.msg, {icon: 2, time: 1500});
}
});
// 监听首页显示开关
form.on('switch(is_show)', function (obj) {
var id = $(this).data('id');
var value = obj.elem.checked ? 1 : 0;
$.ajax({
url: '{:url("goodstype/status")}',
type: 'post',
data: { id: id, type: 'is_show', value: value },
success: function (res) {
if (res.status) {
layer.msg(res.msg, { icon: 1, time: 1000 });
} else {
layer.msg(res.msg, { icon: 2, time: 1500 }, function () {
obj.elem.checked = !obj.elem.checked;
form.render();
});
}
});
layer.close(index);
}
});
}
});
// 新增类型
$('#add-type').on('click', function() {
layer.open({
type: 2,
title: '添加盒子类型',
area: ['80%', '85%'],
fixed: false,
maxmin: true,
content: '{:url("goodstype/add")}',
end: function() {
// 弹窗关闭后刷新表格
table.reload('typeTable');
}
});
});
// 监听首页显示开关
form.on('switch(is_show)', function(obj) {
var id = $(this).data('id');
var value = obj.elem.checked ? 1 : 0;
$.ajax({
url: '{:url("goodstype/status")}',
type: 'post',
data: {id: id, type: 'is_show', value: value},
success: function(res) {
if (res.status) {
layer.msg(res.msg, {icon: 1, time: 1000});
} else {
layer.msg(res.msg, {icon: 2, time: 1500}, function() {
obj.elem.checked = !obj.elem.checked;
form.render();
});
// 监听分类显示开关
form.on('switch(is_fenlei)', function (obj) {
var id = $(this).data('id');
var value = obj.elem.checked ? 1 : 0;
$.ajax({
url: '{:url("goodstype/status")}',
type: 'post',
data: { id: id, type: 'is_fenlei', value: value },
success: function (res) {
if (res.status) {
layer.msg(res.msg, { icon: 1, time: 1000 });
} else {
layer.msg(res.msg, { icon: 2, time: 1500 }, function () {
obj.elem.checked = !obj.elem.checked;
form.render();
});
}
}
}
});
});
});
// 监听分类显示开关
form.on('switch(is_fenlei)', function(obj) {
var id = $(this).data('id');
var value = obj.elem.checked ? 1 : 0;
$.ajax({
url: '{:url("goodstype/status")}',
type: 'post',
data: {id: id, type: 'is_fenlei', value: value},
success: function(res) {
if (res.status) {
layer.msg(res.msg, {icon: 1, time: 1000});
} else {
layer.msg(res.msg, {icon: 2, time: 1500}, function() {
obj.elem.checked = !obj.elem.checked;
form.render();
});
}
}
});
});
});
</script>
</script>
</body>
</html>
</html>

View File

@ -430,8 +430,8 @@ class Infinite extends Base
$iszhifu = 0;
# 余额抵扣
if ($use_money_is == 1 && $goodsType['pay_balance'] == 1) {
# 余额抵扣
if ($use_money_is == 1 && $goodsType['pay_balance'] == 1) {
if ($goodsType['is_deduction'] == 1) {
# 抵扣模式
if ($user['money'] >= $price) {
@ -481,7 +481,7 @@ class Infinite extends Base
}
}
# 货币2抵扣
if ($use_money2_is == 1 && $goodsType['pay_currency2'] == 1) {
@ -847,6 +847,9 @@ class Infinite extends Base
if ($price > 0) {
$body = '购买盒子' . $goods['title'];
$attach = 'order_wxs';
if ($goods['type'] == 16) {
$attach = 'order_fbs';
}
$payRes = (new Pay())->wxCreateOrder($order_num, $price, $user['openid'], $body, $attach);
if ($payRes['status'] == 1) {
#结果集

View File

@ -295,7 +295,7 @@ class Notify extends Base
$tempOrder->save();
}
}
} elseif ($table == 'order_wxs') {#抽赏无限赏
} elseif ($table == 'order_wxs' || $table == 'order_fbs') {#抽赏无限赏
$orderInfo = Order::where('order_num', '=', $out_trade_no)
->where('status', '=', 0)
->find();
@ -1076,7 +1076,7 @@ class Notify extends Base
#分销奖励
#开奖==================================================
if ($num == 1) {
if ($order['order_type'] == 10) {
$res[] = $this->infinite_shangchengshang($order);
} else {
$res[] = $this->infinite_drawprize($order);

View File

@ -1,45 +0,0 @@
-- 创建奖励表
CREATE TABLE IF NOT EXISTS `reward` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`reward_type` tinyint(1) NOT NULL COMMENT '奖励类型(1:优惠券,2:钻石,3:货币1,4:货币2)',
`reward_id` int(11) DEFAULT NULL COMMENT '奖励ID(当reward_type=1时为优惠券ID)',
`reward_value` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '奖励值',
`title` varchar(100) DEFAULT NULL COMMENT '奖励标题',
`description` varchar(255) DEFAULT NULL COMMENT '奖励描述',
`icon` varchar(255) DEFAULT NULL COMMENT '奖励图标',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(0禁用,1启用)',
`create_time` int(11) DEFAULT NULL,
`update_time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='奖励表';
-- 创建签到配置表
CREATE TABLE IF NOT EXISTS `sign_config` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` tinyint(1) NOT NULL COMMENT '配置类型(1:累计签到配置,2:每日签到配置)',
`days` int(11) DEFAULT NULL COMMENT '累计天数(type=1时有效)',
`day` tinyint(1) DEFAULT NULL COMMENT '指定星期几(type=2时有效1-7代表周一到周日)',
`title` varchar(100) DEFAULT NULL COMMENT '配置标题',
`icon` varchar(255) DEFAULT NULL COMMENT '图标',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(0禁用,1启用)',
`sort` int(11) DEFAULT '0' COMMENT '排序',
`create_time` int(11) DEFAULT NULL,
`update_time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='签到配置表';
-- 创建签到配置奖励关联表
CREATE TABLE IF NOT EXISTS `sign_config_reward` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sign_config_id` int(11) NOT NULL COMMENT '签到配置ID',
`reward_id` int(11) NOT NULL COMMENT '奖励ID',
`create_time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_sign_config_id` (`sign_config_id`),
KEY `idx_reward_id` (`reward_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='签到配置奖励关联表';
-- 修改用户签到表添加month和year字段
ALTER TABLE `user_sign`
ADD COLUMN `month` int(11) DEFAULT NULL COMMENT '签到月份' AFTER `days`,
ADD COLUMN `year` int(11) DEFAULT NULL COMMENT '签到年份' AFTER `month`;

1908
table.sql Normal file

File diff suppressed because it is too large Load Diff