admin模块添加百亿返补功能

This commit is contained in:
wangxiaowei 2024-08-05 18:26:42 +08:00
parent 9b170d960e
commit dda4187357
3 changed files with 322 additions and 0 deletions

@ -0,0 +1,20 @@
<?php
namespace app\admin\controller;
use app\common\basics\AdminBase;
use app\admin\logic\BillionsLogic;
use app\common\server\JsonServer;
class Billions extends AdminBase
{
public function lists()
{
if ($this->request->isAjax()) {
$get = $this->request->get();
return JsonServer::success('获取成功', BillionsLogic::lists($get));
}
return view('');
}
}

@ -0,0 +1,69 @@
<?php
namespace app\admin\logic;
use app\common\basics\Logic;
use app\common\model\billions\Billions;
use app\common\model\order\Order;
use app\common\model\RechargeOrder;
use app\common\model\shop\Shop;
use app\common\model\UserBillionsRechargeBalance;
use app\common\server\UrlServer;
use app\common\model\goods\Goods;
class BillionsLogic extends Logic
{
public static function lists($get)
{
if (!empty($get['nickname'])) {
$where[] = ['u.nickname', 'like', '%' . $get['nickname'] . '%'];
}
if (isset($get['state']) && $get['state'] == 1) {
$where[] = ['b.state', '=', 1];
} else {
$where[] = ['b.state', '=', 0];
}
$lists = Billions::alias('b')
->join('user u', 'b.user_id = u.id')
->where($where)
->order('billions_id', 'desc')
->field('b.*, u.id, u.nickname, u.avatar')
->paginate([
'page' => $get['page'] ?? 1,
'list_rows' => $get['limit'] ?? 10,
'var_page' => 'page'
])->toArray();
foreach ($lists['data'] as &$v) {
if ($v['type'] == 1) {
$v['order_sn'] = Order::where('id', $v['order_id'])->value('order_sn');
$v['name'] = Shop::where('id',$v['shop_id'])->value('name');
} else if ($v['type'] == 2) {
$v['order_sn'] = RechargeOrder::where('id', $v['order_id'])->value('order_sn');
} else if ($v['type'] == 3) {
$v['order_sn'] = UserBillionsRechargeBalance::where('id', $v['order_id'])->value('order_sn');
}
if ($v['goods_id']) {
$v['goods_info'] = Goods::field('name, image')->find($v['goods_id']);
}
if ($v['avatar']) {
$v['avatar'] = UrlServer::getFileUrl($v['avatar']);
}
}
self::getRanking($lists['data']);
return ['count' => $lists['total'], 'lists' => $lists['data']];
}
public static function getRanking(&$data = []){
$where[] = ['state', '=', 0];
foreach ($data as &$v) {
$where[] = ['billions_id', '<=', $v['billions_id']];
$v['raking'] = Billions::where($where)->count();
}
}
}

@ -0,0 +1,233 @@
{layout name="layout1" /}
<div class="wrapper">
<div class="layui-card">
<!-- 操作提示 -->
<div class="layui-card-body">
<div class="layui-collapse" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*本地生活商家入驻信息列表。</p>
</div>
</div>
</div>
</div>
<!-- 搜索区域 -->
<div class="layui-card-body layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label for="nickname" class="layui-form-label" style="width: 100px;">微信昵称:</label>
<div class="layui-input-inline">
<input type="text" id="nickname" name="nickname" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
<a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
</div>
</div>
</div>
<!-- 主体区域 -->
<div class="layui-card-body">
<table id="like-table-lists" lay-filter="like-table-lists"></table>
<script type="text/html" id="wx-nickname">
{{# if(d.nickname){ }}
{{d.nickname}}
{{# } }}
</script>
<script type="text/html" id="wx-image">
{{# if(d.avatar){ }}
<img src="{{d.avatar}}" alt="微信头像" style="width: 200px;height: 200px;object-fit: contain;"
class="image-show">
{{# } }}
</script>
<script type="text/html" id="raking">
{{# if(d.raking){ }}
<span style="font-weight: bold">{{d.raking}}</span>
{{# } }}
</script>
<script type="text/html" id="subsidy-price">
{{# if(d.subsidy_price){ }}
¥{{d.subsidy_price}}
{{# } }}
</script>
<script type="text/html" id="order-price">
{{# if(d.order_price){ }}
¥ {{d.order_price}}
{{# } }}
</script>
<script type="text/html" id="goods-name">
{{# if(d.goods_info){ }}
{{d.goods_info.name}}
{{# } }}
</script>
<script type="text/html" id="storeState-operation">
{{# if(d.store_state == 0){ }}
待审核
{{# } else if(d.store_state == 1) { }}
审核通过
{{# } else if(d.store_state == 2) { }}
审核失败
{{# } }}
</script>
<script type="text/html" id="localstore-operation">
<a class="layui-btn layui-btn-info layui-btn-sm" lay-event="download">下载二维码</a>
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
</script>
</div>
</div>
</div>
<script>
layui.use(["table", "form"], function () {
var table = layui.table;
var form = layui.form;
like.tableLists("#like-table-lists", "{:url()}", [
{field: "nickname", width: 120, align: "center", title: "微信昵称", templet: '#wx-nickname'}
, {field: "wx_image", width: 120, align: "center", title: "头像", templet: '#wx-image'}
, {field: "raking", width: 120, align: "center", title: "排名", templet: '#raking'}
, {field: "subsidy_price", width: 120, align: "center", title: "商家已发补贴", templet: '#subsidy-price'}
, {field: "order_price", width: 120, align: "center", title: "消费订单金额", templet: '#order-price'}
, {field: "name", width: 300, align: "center", title: "商品名称", templet: '#goods-name'}
, {field: "order_sn", width: 200, align: "center", title: "订单号"}
// , {fixed: 'right', title: '操作', width: 280, align: 'center', toolbar: '#localstore-operation'}
]);
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src, 600);
});
var active = {
add: function () {
layer.open({
type: 2
, title: "新增本地生活商家"
, content: "{:url('shop.LocalStore/add')}"
, area: ['90%', '90%']
, btn: ["确定", "取消"]
, yes: function (index, layero) {
var iframeWindow = window["layui-layer-iframe" + index];
var submit = layero.find("iframe").contents().find("#addSubmit");
iframeWindow.layui.form.on("submit(addSubmit)", function (data) {
like.ajax({
url: "{:url('shop.Category/add')}",
data: data.field,
type: "POST",
success: function (res) {
if (res.code === 1) {
layui.layer.msg(res.msg);
layer.close(index);
table.reload("like-table-lists", {
where: {},
page: {cur: 1}
});
}
}
});
});
submit.trigger("click");
}
});
},
edit: function (obj) {
layer.open({
type: 2
, title: "编辑本地生活"
, content: "{:url('shop.LocalStore/edit')}?id=" + obj.data.lstore_id
, area: ['90%', '90%']
, btn: ["确定", "取消"]
, yes: function (index, layero) {
var iframeWindow = window["layui-layer-iframe" + index];
var submit = layero.find("iframe").contents().find("#addSubmit");
iframeWindow.layui.form.on("submit(addSubmit)", function (data) {
data.field['id'] = obj.data.id;
like.ajax({
url: "{:url('shop.Category/edit')}",
data: data.field,
type: "POST",
success: function (res) {
if (res.code === 1) {
layui.layer.msg(res.msg);
layer.close(index);
table.reload("like-table-lists", {
where: {},
page: {cur: 1}
});
}
}
});
});
submit.trigger("click");
}
});
},
del: function (obj) {
layer.confirm("是否删除? ", function (index) {
like.ajax({
url: "{:url('shop.LocalStore/del')}",
data: {id: obj.data.lstore_id},
type: "POST",
success: function (res) {
if (res.code === 1) {
layui.layer.msg(res.msg);
layer.close(index);
obj.del();
}
}
});
layer.close(index);
})
},
download: function(obj) {
like.ajax({
url: "{:url('shop.LocalStore/downloadErCode')}",
data: obj.data,
type: "POST",
success:function(res) {
if(res.code == 1) {
window.location.href = res.data.url;
}
}
});
}
};
like.eventClick(active);
form.on("submit(search)", function (data) {
table.reload("like-table-lists", {
where: data.field,
page: {
curr: 1
}
});
});
form.on("submit(clear-search)", function () {
$("#merconat").val("");
form.render("select");
table.reload("like-table-lists", {
where: {},
page: {
curr: 1
}
});
});
})
</script>