财务模块分佣统计、明细等

This commit is contained in:
Yao 2024-10-31 09:50:34 +08:00
parent c76d59ad79
commit ce5a8afee8
8 changed files with 1015 additions and 109 deletions

@ -0,0 +1,87 @@
<?php
namespace app\admin\controller\finance;
use app\common\basics\AdminBase;
use app\admin\logic\finance\BillionsLogic;
use app\common\server\JsonServer;
class Billions extends AdminBase
{
/**
* @notes 用户反补明细
* @return \think\response\Json|\think\response\View
* @author Yzt
* @date 2024/10/29 10:07 上午
*/
public function lists(){
if ($this->request->isAjax()) {
$get = $this->request->get();
$result = BillionsLogic::lists($get);
return JsonServer::success('', $result);
}
$summary = BillionsLogic::summary();
return view('',array(
'summary'=>$summary
)
);
}
/**
* @notes 用户反补需求列表
* @return \think\response\Json|\think\response\View
* @author Yzt
* @date 2024/10/29 10:07 上午
*/
public function userLists(){
$get = $this->request->get();
if ($this->request->isAjax()) {
$result = BillionsLogic::userList($get);
return JsonServer::success('', $result);
}
$summary = BillionsLogic::summary();
$today = [
date('Y-m-d H:i:s', strtotime(date("Y-m-d", time()))),
date('Y-m-d H:i:s', strtotime(date("Y-m-d", time())) + 86399)
];
$yesterday = [
date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-1 day")))),
date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-1 day"))) + 86399)
];
$days_ago7 = [
date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-7 day")))),
date('Y-m-d 23:59:59', time())
];
$days_ago30 = [
date('Y-m-d 00:00:00', strtotime("-30 day")),
date('Y-m-d 23:59:59', time())
];
return view('',array(
'user_id' => $get['user_id'],
'summary'=>$summary,
'today' => $today,
'yesterday' => $yesterday,
'days_ago7' => $days_ago7,
'days_ago30' => $days_ago30,
)
);
}
}

@ -0,0 +1,114 @@
<?php
namespace app\admin\logic\finance;
use app\common\basics\Logic;
use app\common\model\billions\Billions;
use app\common\model\goods\Goods;
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;
class BillionsLogic extends Logic
{
static protected $status_str = [
'0'=>'未补满',
'1'=>'手动结束',
'2'=>'自动结束',
'3'=>'强制结束'
];
static protected $shop_type = [
'1'=>'商品订单',
'2'=>'充值订单',
'3'=>'返充',
'4'=>'本地生活支付'
];
public static function lists($get)
{
$where = [];
if (!empty($get['nickname'])) {
$where[] = ['u.nickname', 'like', '%' . $get['nickname'] . '%'];
}
if (isset($get['state']) && $get['state'] != '') {
$where[] = ['b.state', '=', $get['state']];
}
$lists = Billions::alias('b')
->join('user u', 'b.user_id = u.id')
->where($where)
->order('billions_id', 'desc')
->group('user_id')
->field('b.*, u.id, u.nickname, u.avatar,u.sn')
->paginate([
'page' => $get['page'] ?? 1,
'list_rows' => $get['limit'] ?? 10,
'var_page' => 'page'
])->toArray();
foreach ($lists['data'] as &$v) {
$v['avatar'] = UrlServer::getFileUrl($v['avatar']);
$v['price_all'] = Billions::where('user_id',$v['user_id'])->sum('order_price');
$v['subsidy_all'] = Billions::where('user_id',$v['user_id'])->sum('subsidy_price');
}
return ['count' => $lists['total'],'lists' => $lists['data']];
}
public static function userList($get){
$where = [];
if (isset($get['start_time']) && $get['start_time'] && isset($get['end_time']) && $get['end_time']) {
$where[] = ['dtime', 'between', [$get['start_time'], $get['end_time']]];
}
if (isset($get['order_type']) && $get['order_type'] != '') {
$where[] = ['type', '=', $get['order_type']];
}
if (isset($get['state']) && $get['state'] != '') {
$where[] = ['state', '=', $get['state']];
}
$lists = Billions::where('user_id',$get['user_id'])
->field('*')
->where($where)
->paginate([
'page' => $get['page'] ?? 1,
'list_rows' => $get['limit'] ?? 10,
'var_page' => 'page'
])
->toArray();
foreach ($lists['data'] as &$item){
$item['state'] = self::$status_str[$item['state']];
$item['type'] = self::$shop_type[$item['type']];
}
return ['count' => $lists['total'],'lists' => $lists['data']];
}
public static function summary(){
$un_price = Billions::where('state',1)->sum('subsidy_price');
$art_price = Billions::where('state',2)->sum('subsidy_price');
$auto_price = Billions::where('state',3)->sum('subsidy_price');
return [
'un_price'=>$un_price,
'art_price'=>$art_price,
'auto_price'=>$auto_price
];
}
}

@ -20,6 +20,7 @@ use app\common\model\shop\ShopWithdrawal;
use app\common\model\shop\ShopSettlement;
use app\common\model\WithdrawApply;
use app\common\model\LocalStoreOrder;
use app\common\model\UserBillions;
class FinanceLogic extends Logic
@ -30,9 +31,14 @@ class FinanceLogic extends Logic
public static function shop($form = [])
{
$where = $joinWhere = [];
$whereTwo = [];
if (!empty($form)) {
$where[] = ['create_time', '>=', strtotime($form['start_time'])];
$where[] = ['create_time', '<=', strtotime($form['end_time'])];
$whereTwo[] = ['dtime', '>=', strtotime($form['start_time'])];
$whereTwo[] = ['dtime', '<=', strtotime($form['end_time'])];
}
$model = new Order();
@ -232,6 +238,17 @@ class FinanceLogic extends Logic
['del', '=', 0]
])
->sum('earnings');
$user_billions = new UserBillions();
$all_subsidy = $user_billions
->where($whereTwo)
->sum('order_price');
$complete_subsidy = $user_billions
->where($whereTwo)
->sum('subsidy_price');
//总积分
@ -273,6 +290,8 @@ class FinanceLogic extends Logic
'all_integral' => $all_integral, //总积分
'sign_in_integral' => $sign_in_integral, //签到送出积分
'use_integral' => $use_integral, //使用积分
'all_subsidy' => $all_subsidy, //应反补总额
'complete_subsidy' => $complete_subsidy, //已反补总额
'consume_award_integral' => $consume_award_integral, //下单赠送积分
];
}

@ -0,0 +1,297 @@
{layout name="layout1" /}
<style>
.layui-table-cell {
height:auto;
}
.goods-content>div:not(:last-of-type) {
bcommission-bottom:1px solid #DCDCDC;
}
.goods-data::after{
display: block;
content: '';
clear: both;
}
.goods_name_hide{
overflow:hidden;
white-space:nowrap;
text-overflow: ellipsis;
}
.operation-btn {
margin: 5px;
}
.table-operate{
text-align: left;
font-size:14px;
padding:0 5px;
height:auto;
overflow:visible;
text-overflow:inherit;
white-space:normal;
word-break: break-all;
}
</style>
<div class="wrapper">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="bcommission:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*消费反补明细。</p>
</div>
</div>
</div>
<!-- 本地生活订单汇总-->
<div class="layui-form-item div-flex">
<fieldset class="layui-elem-field layui-field-title">
<legend>消费反补明细汇总</legend>
</fieldset>
</div>
<div class="layui-row layui-col-space15">
<div class="layui-col-sm6 layui-col-md3" >
<div class="layui-card" >
<div class="layui-card-header" >
未补满金额
</div>
<div class="layui-card-body layuiadmin-card-list" >
<p class="layuiadmin-big-font">¥{$summary.un_price}</p>
</div>
</div>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
手动结束
</div>
<div class="layui-card-body layuiadmin-card-list">
<p class="layuiadmin-big-font">¥{$summary.art_price}</p>
</div>
</div>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
自动结束
</div>
<div class="layui-card-body layuiadmin-card-list">
<p class="layuiadmin-big-font">¥{$summary.auto_price}</p>
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<div class="layui-card-body layui-form">
<div class="layui-form-item">
<div class="layui-row">
<div class="layui-inline">
<label class="layui-form-label">会员信息:</label>
<div class="layui-input-block">
<select name="search_key">
<option value="user_sn">会员编号</option>
<option value="nickname">会员昵称</option>
</select>
</div>
</div>
<div class="layui-inline">
<input type="text" name="keyword" id="keyword" placeholder="请输入搜索内容"
autocomplete="off" class="layui-input">
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm layuiadmin-btn-ad {$view_theme_color}" lay-submit
lay-filter="commission-search">查询
</button>
<button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
lay-filter="commission-clear-search">重置
</button>
</div>
</div>
</div>
</div>
<div class="layui-tab-item layui-show">
<div class="layui-card">
<div class="layui-card-body">
<table id="commission-lists" lay-filter="commission-lists"></table>
<!--会员信息-->
<script type="text/html" id="user">
<img src="{{d.avatar}}" style="height:60px;width: 60px" class="image-show">
<div class="layui-input-inline" style="text-align: left;">
<p>用户昵称:{{d.nickname}}</p>
</div>
</script>
<!--操作-->
<script type="text/html" id="withdraw-operation">
<a class="layui-btn layui-btn-primary layui-btn-sm" lay-event="detail">反补详情</a>
</script>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['form'], function(){
var $ = layui.$
, form = layui.form
, table = layui.table
, element = layui.element
, laydate = layui.laydate;
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src,400);
});
//监听搜索
form.on('submit(commission-search)', function (data) {
var field = data.field;
//执行重载
table.reload('commission-lists', {
where: field,
page: {
curr: 1
}
});
});
//清空查询
form.on('submit(commission-clear-search)', function () {
$('#keyword').val('');
form.render('select');
//刷新列表
table.reload('commission-lists', {
where: [],
page: {
curr: 1
}
});
});
// 导出
// form.on('submit(data-export)', function (data) {
// var field = data.field;
// field.status = $(".layui-tab-title li.layui-this").attr("data-source")
// like.ajax({
// url: '{:url("finance.User/withdrawalExport")}'
// , data: field
// , type: 'get'
// , success: function (res) {
// if (res.code == 1) {
// window.location.href = res.data.url;
// }
// }
// });
// });
//日期时间范围
laydate.render({
elem: '#start_time'
, type: 'datetime'
,theme: '#1E9FFF'
});
laydate.render({
elem: '#end_time'
, type: 'datetime'
,theme: '#1E9FFF'
});
//获取列表
getList('');
//切换列表
element.on('tab(tab-all)', function (data) {
$('#keyword').val('');
form.render('select');
if (type !== ''){
$('.commission_status').hide();
}else {
$('.commission_status').show();
}
});
function getList(type) {
table.render({
elem: '#commission-lists'
, url: '{:url("finance.billions/lists")}'
, cols: [[
, {field: 'user', title: '用户信息', align: 'center',templet:'#user',width:257}
, {field: 'price_all', title: '反补金额', align: 'center'}
, {field: 'subsidy_all', title: '已补贴金额', align: 'center'}
,{fixed: 'right' ,title: '操作', align: 'center',width:250, toolbar: '#withdraw-operation'}
]]
, page: true
, text: {none: '暂无数据!'}
,response: {
statusCode: 1
}
, parseData: function (res) {
return {
"code": res.code,
"msg": res.msg,
"count": res.data.count,
"data": res.data.lists,
};
}
,done: function(res, curr, count){
// 解决操作栏因为内容过多换行问题
$(".layui-table-main tr").each(function (index, val) {
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
$($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
});
}
});
}
//监听工具条
table.on('tool(commission-lists)', function (obj) {
var user_id = obj.data.user_id;
// 详情
if(obj.event === 'detail') {
window.location.href = '{:url("finance.billions/userLists")}?user_id=' + user_id; // 将 'withdraw.withdraw/lists' 替换为你想要跳转的页面地址
}
});
$('.day').click(function(){
$('.day').removeClass('layui-btn-normal');
$('.day').removeClass('layui-btn-primary');
$('.day').addClass('layui-btn-primary');
$(this).removeClass('layui-btn-primary');
$(this).addClass('layui-btn-normal');
});
});
layui.use('jquery', function() {
var $ = layui.jquery;
$('#shop-btn').on('click', function() {
window.location.href = '{:url("finance.order/lists")}'; // 将 'your-target-page.html' 替换为你想要跳转的页面地址
});
});
</script>

@ -0,0 +1,311 @@
{layout name="layout1" /}
<style>
.layui-table-cell {
height:auto;
}
.goods-content>div:not(:last-of-type) {
bcommission-bottom:1px solid #DCDCDC;
}
.layui-table-header{
margin: 1px;
}
.layui-table-body.layui-table-main{
margin: 2px;
}
</style>
<div class="wrapper">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="bcommission:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*本地生活订单汇总。</p>
</div>
</div>
</div>
<!-- 本地生活订单汇总-->
<div class="layui-form-item div-flex">
<fieldset class="layui-elem-field layui-field-title">
<legend>本地生活订单汇总</legend>
</fieldset>
</div>
</div>
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<div class="layui-card-body layui-form">
<div class="layui-form-item">
<div class="layui-row">
<div class="layui-inline">
<label class="layui-form-label">类型:</label>
<div class="layui-input-block">
<select name="order_type" id="type">
<option value="">全部</option>
<option value="1">商品订单</option>
<option value="2">充值订单</option>
<option value="3">返充</option>
<option value="4">本地生活支付</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态:</label>
<div class="layui-input-block">
<select name="state" id="state">
<option value="">全部</option>
<option value="0">未补满</option>
<option value="1">手动结束</option>
<option value="2">自动结束</option>
<option value="3">强制结束</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">创建时间:</label>
<div class="layui-input-inline">
<div class="layui-input-inline">
<input type="text" name="start_time" class="layui-input" id="start_time"
placeholder="" autocomplete="off">
</div>
</div>
<div class="layui-input-inline" style="margin-right: 5px;width: 20px;">
<label class="layui-form-mid">至</label>
</div>
<div class="layui-input-inline">
<input type="text" name="end_time" class="layui-input" id="end_time"
placeholder="" autocomplete="off">
</div>
</div>
<div class="layui-inline">
<div class="layui-btn-group">
<button type="button" id="today" day="1" class="layui-btn layui-btn-sm layui-btn-primary day">今天</button>
<button type="button" day="-1" class="layui-btn layui-btn-sm layui-btn-primary day">昨天</button>
<button type="button" day="7" class="layui-btn layui-btn-sm layui-btn-primary day">近7天</button>
<button type="button" id = "day30" day="30" class="layui-btn layui-btn-sm layui-btn-normal day">近30天</button>
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm layuiadmin-btn-ad {$view_theme_color}" lay-submit
lay-filter="commission-search">查询
</button>
<button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
lay-filter="commission-clear-search">重置
</button>
</div>
</div>
</div>
</div>
<div class="layui-tab-item layui-show">
<div class="layui-card">
<div class="layui-card-body">
<table id="commission-lists" lay-filter="commission-lists"></table>
<!--操作-->
<script type="text/html" id="order-operation">
{{# if( (d.type == '商品订单') ){ }}
<a class="layui-btn layui-btn-primary layui-btn-sm operation-btn" lay-event="detail">查看订单</a>
{{# } }}
</script>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['form'], function(){
var $ = layui.$
, form = layui.form
, table = layui.table
, element = layui.element
, laydate = layui.laydate;
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src,400);
});
//监听搜索
form.on('submit(commission-search)', function (data) {
var field = data.field;
//执行重载
table.reload('commission-lists', {
where: field,
page: {
curr: 1
}
});
});
//清空查询
form.on('submit(commission-clear-search)', function () {
$('#state').val('');
$('#type').val('');
$('#keyword').val('');
$('#shopName').val('');
$('#start_time').val('{$days_ago30[0]}');
$('#end_time').val('{$days_ago30[1]}');
$('#day30').trigger("click");
form.render('select');
//刷新列表
table.reload('commission-lists', {
where: [],
page: {
curr: 1
}
});
});
// 导出
// form.on('submit(data-export)', function (data) {
// var field = data.field;
// field.status = $(".layui-tab-title li.layui-this").attr("data-source")
// like.ajax({
// url: '{:url("finance.User/withdrawalExport")}'
// , data: field
// , type: 'get'
// , success: function (res) {
// if (res.code == 1) {
// window.location.href = res.data.url;
// }
// }
// });
// });
//日期时间范围
laydate.render({
elem: '#start_time'
, type: 'datetime'
,theme: '#1E9FFF'
, value: "{$days_ago30[0]}"
});
laydate.render({
elem: '#end_time'
, type: 'datetime'
,theme: '#1E9FFF'
,value: "{$days_ago30[1]}"
});
//获取列表
getList('');
function getList(type) {
table.render({
elem: '#commission-lists'
, url: '{:url("finance.billions/userLists")}?source=' + '{$user_id}'+'&user_id=' + '{$user_id}'
, cols: [[
{field: 'billions_id', title: 'id', align: 'center'}
, {field: 'order_price', title: '补贴金额', align: 'center'}
, {field: 'subsidy_price', title: '已补贴金额', align: 'center'}
, {field: 'state', title: '状态', align: 'center'}
, {field: 'type', title: '订单类型', align: 'center'}
, {field: 'dtime', title: '创建时间', align: 'center'}
, {fixed: 'right', title: '操作', width: 300, align: 'center', toolbar: '#order-operation'}
]]
, page: true
, text: {none: '暂无数据!'}
,response: {
statusCode: 1
}
, parseData: function (res) {
return {
"code": res.code,
"msg": res.msg,
"count": res.data.count,
"data": res.data.lists,
};
}
,done: function(res, curr, count){
// 解决操作栏因为内容过多换行问题
$(".layui-table-main tr").each(function (index, val) {
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
$($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
});
}
});
}
//监听工具条
table.on('tool(commission-lists)', function (obj) {
var id = obj.data.order_id;
// 详情
if(obj.event === 'detail') {
layer.open({
type: 2
, title: '提现详情'
, content: '{:url("order.order/detail")}?id=' + id
, area: ['90%', '90%']
, yes: function (index, layero) {
table.reload('order-lists');
}
});
}
});
$('.day').click(function(){
$('.day').removeClass('layui-btn-normal');
$('.day').removeClass('layui-btn-primary');
$('.day').addClass('layui-btn-primary');
$(this).removeClass('layui-btn-primary');
$(this).addClass('layui-btn-normal');
var day = $(this).attr('day');
switch (day) {
case '-1':
$('#start_time').val('{$yesterday[0]}');
$('#end_time').val('{$yesterday[1]}');
break;
case '1':
$('#start_time').val('{$today[0]}');
$('#end_time').val('{$today[1]}');
break;
case '7':
$('#start_time').val('{$days_ago7[0]}');
$('#end_time').val('{$days_ago7[1]}');
break;
case '30':
$('#start_time').val('{$days_ago30[0]}');
$('#end_time').val('{$days_ago30[1]}');
break;
}
});
});
layui.use('jquery', function() {
var $ = layui.jquery;
$('#shop-btn').on('click', function() {
window.location.href = '{:url("finance.order/lists")}'; // 将 'your-target-page.html' 替换为你想要跳转的页面地址
});
});
</script>

@ -374,13 +374,57 @@
</div>
<br>
<br>
<!-- 积分汇总-->
<!-- 消费反补汇总-->
<div class="layui-form-item div-flex">
<fieldset class="layui-elem-field layui-field-title">
<legend>消费反补汇总</legend>
</fieldset>
</div>
<div class="layui-row layui-col-space15">
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
应反补总额
</div>
<div class="layui-card-body layuiadmin-card-list">
<p class="layuiadmin-big-font" id="all_subsidy">{$shop.all_subsidy}</p>
</div>
</div>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
已反补总额
</div>
<div class="layui-card-body layuiadmin-card-list">
<p class="layuiadmin-big-font" id="complete_subsidy">{$shop.complete_subsidy}</p>
</div>
</div>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
佣金反补明细
</div>
<button class=" layui-btn layui-bg-blue layui-btn layui-btn-sm" style="margin-left: 12px;" id="subsidy-btn" >查看明细</button>
</div>
</div>
</div>
<br>
<br>
<!-- 积分汇总-->
<div class="layui-form-item div-flex">
<fieldset class="layui-elem-field layui-field-title">
<legend>积分汇总</legend>
</fieldset>
</div>
<div class="layui-row layui-col-space15">
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
@ -512,6 +556,14 @@
});
});
layui.use('jquery', function() {
var $ = layui.jquery;
$('#subsidy-btn').on('click', function() {
window.location.href = '{:url("finance.billions/lists")}'; // 将 'finance.order/userMoneyLists' 替换为你想要跳转的页面地址
});
});
// 监听搜索

@ -1,32 +1,37 @@
{layout name="layout1" /}
<style>
.layui-table-cell {
height:auto;
height: auto;
}
.goods-content>div:not(:last-of-type) {
border-bottom:1px solid #DCDCDC;
.goods-content > div:not(:last-of-type) {
border-bottom: 1px solid #DCDCDC;
}
.goods-data::after{
.goods-data::after {
display: block;
content: '';
clear: both;
}
.goods_name_hide{
overflow:hidden;
white-space:nowrap;
.goods_name_hide {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.operation-btn {
margin: 5px;
}
.table-operate{
.table-operate {
text-align: left;
font-size:14px;
padding:0 5px;
height:auto;
overflow:visible;
text-overflow:inherit;
white-space:normal;
font-size: 14px;
padding: 0 5px;
height: auto;
overflow: visible;
text-overflow: inherit;
white-space: normal;
word-break: break-all;
}
</style>
@ -34,22 +39,23 @@
<div class="wrapper">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*会员商城下单列表。</p>
<p>*订单状态有待付款,待发货,待收货,已完成,已关闭。</p>
<p>*待付款订单取消后则为已关闭。待付款订单支付后则为待发货。待发货订单发货后则为待收货。待收货订单收货后则为已完成。</p>
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*会员商城下单列表。</p>
<p>*订单状态有待付款,待发货,待收货,已完成,已关闭。</p>
<p>
*待付款订单取消后则为已关闭。待付款订单支付后则为待发货。待发货订单发货后则为待收货。待收货订单收货后则为已完成。</p>
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<ul class="layui-tab-title">
<li data-type='' class="layui-this">商城订单({$all})</li>
<li data-type='' id = "local-shop">本地生活订单({$getLocalAll})</li>
<li data-type='' id="local-shop">本地生活订单({$getLocalAll})</li>
</ul>
<div class="layui-card-body layui-form">
<div class="layui-form-item">
@ -178,13 +184,13 @@
<div class="layui-card-body">
<table id="order-lists" lay-filter="order-lists"></table>
<script type="text/html" id="order-operation" >
<script type="text/html" id="order-operation">
<div class="table-operate">
<a class="layui-btn layui-btn-primary layui-btn-sm operation-btn" lay-event="detail">订单详情</a>
{{# if(d.order_status > 1 && d.shipping_status == 1 && d.delivery_type == 1){ }}
{{# if(d.order_status > 1 && d.shipping_status == 1 && d.delivery_type == 1){ }}
<a class="layui-btn layui-btn-primary layui-btn-sm operation-btn" lay-event="detail">查看内容</a>
{{# } }}
{{# } }}
</div>
</script>
@ -196,7 +202,7 @@
<!--商家信息-->
<script type="text/html" id="shop">
<img src="{{d.shop.logo}}" style="height:80px;width: 80px" class="image-show">
<div class="layui-input-inline" style="text-align: left;">
<div class="layui-input-inline" style="text-align: left;">
<p>商家编号:{{d.shop.id}}</p>
<p>商家名称:{{d.shop.name}}</p>
<p>商家类型:{{d.shop.type_desc}}</p>
@ -210,11 +216,11 @@
<p>订单类型:{{d.order_type_text}}</p>
<p>下单时间:{{d.create_time}}</p>
<p>支付时间:
{{# if(d.pay_time == '0'){ }}
未支付
{{# } else { }}
{{d.pay_time}}
{{# } }}
{{# if(d.pay_time == '0'){ }}
未支付
{{# } else { }}
{{d.pay_time}}
{{# } }}
</p>
<p>订单来源:{{d.order_source_text}}</p>
</div>
@ -223,9 +229,10 @@
<!--会员信息-->
<script type="text/html" id="user">
<img src="{{d.user.avatar}}" style="height:80px;width: 80px" class="image-show">
<div class="layui-input-inline" style="text-align: left;">
<div class="layui-input-inline" style="text-align: left;">
<p>会员编号:{{d.user.sn}}</p>
<p style="width: 180px;text-overflow:ellipsis;overflow: hidden">会员昵称:{{d.user.nickname}}</p>
<p style="width: 180px;text-overflow:ellipsis;overflow: hidden">
会员昵称:{{d.user.nickname}}</p>
<p>会员等级:{{d.user_level}}</p>
</div>
</script>
@ -254,9 +261,10 @@
<!--商品信息-->
<script type="text/html" id="goods">
<div class="goods-content">
{{# layui.each(d.order_goods, function(index, item){ }}
{{# layui.each(d.order_goods, function(index, item){ }}
<div style="text-align: left;" class="goods-data">
<img src="{{ item.image }}" style="height:80px;width: 80px" class="image-show layui-col-md4">
<img src="{{ item.image }}" style="height:80px;width: 80px"
class="image-show layui-col-md4">
<div class="layui-input-inline layui-col-md8">
<span class="layui-col-md7 goods_name_hide">{{ item.goods_name }}</span>
<span class="layui-col-md5">¥{{ item.goods_price }}</span>
@ -265,7 +273,7 @@
<span class="layui-col-md5">{{ item.goods_num }}件</span>
</div>
</div>
{{# }); }}
{{# }); }}
</div>
</script>
@ -280,10 +288,10 @@
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
layui.config({
version: "{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['form'], function(){
}).use(['form'], function () {
var $ = layui.$
, form = layui.form
, table = layui.table
@ -293,7 +301,7 @@
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src,400);
like.showImg(src, 400);
});
//监听搜索
@ -348,9 +356,9 @@
//日期时间范围
laydate.render({
elem: '#start_time'
,type: 'datetime'
,trigger: 'click'
,done: function (value, date, endDate) {
, type: 'datetime'
, trigger: 'click'
, done: function (value, date, endDate) {
var startDate = new Date(value).getTime();
var endTime = new Date($('#end_time').val()).getTime();
if (endTime < startDate) {
@ -363,9 +371,9 @@
laydate.render({
elem: '#end_time'
,type: 'datetime'
,trigger: 'click'
,done: function (value, date, endDate) {
, type: 'datetime'
, trigger: 'click'
, done: function (value, date, endDate) {
var startDate = new Date($('#start_time').val()).getTime();
var endTime = new Date(value).getTime();
console.log(startDate);
@ -392,9 +400,9 @@
form.render('select');
var type = $(this).attr('data-type');
getList(type);
if (type !== ''){
if (type !== '') {
$('.order_status').hide();
}else {
} else {
$('.order_status').show();
}
});
@ -404,23 +412,29 @@
elem: '#order-lists'
, url: '{:url("finance.order/lists")}'
, cols: [[
{field:'id',title: 'id',width:60,align: 'center'}
, {field: 'shop', title: '商家信息', align: 'center',templet:'#shop',width:230}
, {field: 'order', title: '订单信息', align: 'center',templet:'#order',width:230}
, {field: 'user', title: '会员信息', templet:'#user',width:300}
, {field: 'order_goods', title: '商品信息', align: 'center',templet:'#goods',width:300}
, {field: 'total_num', title: '商品数量', align: 'center',templet:'#goods_num',width:70}
, {field: 'total_amount', title: '订单金额', align: 'center',templet:'#amount',width:150}
, {field: 'delivery', title: '收货信息', align: 'center',templet:'#delivery',width:200}
, {field: 'pay_status_text', title: '支付状态', align: 'center',templet:'#pay_status',width:100}
, {field: 'order_status_text', title: '订单状态', align: 'center',templet:'#order_status',width:100}
{field: 'id', title: 'id', width: 60, align: 'center'}
, {field: 'shop', title: '商家信息', align: 'center', templet: '#shop', width: 230}
, {field: 'order', title: '订单信息', align: 'center', templet: '#order', width: 230}
, {field: 'user', title: '会员信息', templet: '#user', width: 300}
, {field: 'order_goods', title: '商品信息', align: 'center', templet: '#goods', width: 300}
, {field: 'total_num', title: '商品数量', align: 'center', templet: '#goods_num', width: 70}
, {field: 'total_amount', title: '订单金额', align: 'center', templet: '#amount', width: 150}
, {field: 'delivery', title: '收货信息', align: 'center', templet: '#delivery', width: 200}
, {field: 'pay_status_text', title: '支付状态', align: 'center', templet: '#pay_status', width: 100}
, {
field: 'order_status_text',
title: '订单状态',
align: 'center',
templet: '#order_status',
width: 100
}
, {fixed: 'right', title: '操作', width: 300, align: 'center', toolbar: '#order-operation'}
]]
, page: true
, text: {none: '暂无数据!'}
,response: {
statusCode: 1
}
, response: {
statusCode: 1
}
, parseData: function (res) {
return {
"code": res.code,
@ -429,7 +443,7 @@
"data": res.data.lists,
};
}
,done: function(res, curr, count){
, done: function (res, curr, count) {
// 解决操作栏因为内容过多换行问题
$(".layui-table-main tr").each(function (index, val) {
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
@ -442,23 +456,23 @@
//监听工具条
table.on('tool(order-lists)', function (obj) {
var id = obj.data.id;
if(obj.event === 'detail'){
if (obj.event === 'detail') {
layer.open({
type: 2
,title: '订单详情'
,content: '{:url("order.order/detail")}?id='+id
,area: ['90%', '90%']
,yes: function(index, layero){
, title: '订单详情'
, content: '{:url("order.order/detail")}?id=' + id
, area: ['90%', '90%']
, yes: function (index, layero) {
table.reload('order-lists');
}
})
}
//删除订单
if(obj.event === 'del'){
if (obj.event === 'del') {
layer.confirm('删除后订单将消失,确认删除订单吗?', {
btn: ['确认','取消'] //按钮
}, function(){
btn: ['确认', '取消'] //按钮
}, function () {
like.ajax({
url: '{:url("order.order/del")}'
, data: {'order_id': id}
@ -469,7 +483,7 @@
offset: '15px'
, icon: 1
, time: 1000
},function () {
}, function () {
table.reload('order-lists');
});
}
@ -479,10 +493,10 @@
}
//取消订单
if(obj.event === 'cancel'){
if (obj.event === 'cancel') {
layer.confirm('确认取消订单吗?', {
btn: ['确认','取消'] //按钮
}, function(){
btn: ['确认', '取消'] //按钮
}, function () {
like.ajax({
url: '{:url("order.order/cancel")}'
, data: {'order_id': id}
@ -493,7 +507,7 @@
offset: '15px'
, icon: 1
, time: 1000
},function () {
}, function () {
table.reload('order-lists');
});
}
@ -503,26 +517,26 @@
}
//发货
if(obj.event === 'delivery'){
if (obj.event === 'delivery') {
layer.open({
type: 2
,title: '订单发货'
,content: '{:url("order.order/delivery")}?id='+id
,area: ['90%', '90%']
,yes: function(index, layero){
, title: '订单发货'
, content: '{:url("order.order/delivery")}?id=' + id
, area: ['90%', '90%']
, yes: function (index, layero) {
}
})
}
//物流信息
if(obj.event === 'express'){
if (obj.event === 'express') {
layer.open({
type: 2
,title: '订单发货'
,content: '{:url("order.order/express")}?id='+id
,area: ['90%', '90%']
,yes: function(index, layero){
, title: '订单发货'
, content: '{:url("order.order/express")}?id=' + id
, area: ['90%', '90%']
, yes: function (index, layero) {
}
})
@ -530,10 +544,10 @@
//确认收货
if(obj.event === 'confirm'){
if (obj.event === 'confirm') {
layer.confirm('确认订单商品已收货吗?', {
btn: ['确认','取消'] //按钮
}, function(){
btn: ['确认', '取消'] //按钮
}, function () {
like.ajax({
url: '{:url("order.order/confirm")}'
, data: {'order_id': id}
@ -544,7 +558,7 @@
offset: '15px'
, icon: 1
, time: 1000
},function () {
}, function () {
table.reload('order-lists');
});
}
@ -554,7 +568,7 @@
}
//商家备注
if(obj.event === 'remarks') {
if (obj.event === 'remarks') {
like.ajax({
url: '{:url("order.order/remarks")}'
@ -562,11 +576,15 @@
, type: 'get'
, success: function (res) {
if (res.code === 1) {
layer.prompt({title: '备注信息', formType: 2, value: res.data.order_remarks}, function(value, index){
layer.prompt({
title: '备注信息',
formType: 2,
value: res.data.order_remarks
}, function (value, index) {
layer.close(index);
like.ajax({
url: '{:url("order.order/remarks")}'
, data: {'id': id, "order_remarks": value }
, data: {'id': id, "order_remarks": value}
, type: 'post'
, success: function (res) {
if (res.code === 1) {
@ -587,16 +605,14 @@
}
if(obj.event ==='print'){
layer.confirm('确定要打印订单吗?', function(index){
if (obj.event === 'print') {
layer.confirm('确定要打印订单吗?', function (index) {
like.ajax({
url:'{:url("order.order/orderPrint")}',
data:{id:id},
type:"post",
success:function(res)
{
if(res.code == 1)
{
url: '{:url("order.order/orderPrint")}',
data: {id: id},
type: "post",
success: function (res) {
if (res.code == 1) {
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
@ -616,10 +632,10 @@
});
});
layui.use('jquery', function() {
var $ = layui.jquery;
$('#local-shop').on('click', function() {
window.location.href = '{:url("finance.order/localLists")}'; // 将 'your-target-page.html' 替换为你想要跳转的页面地址
});
});
layui.use('jquery', function () {
var $ = layui.jquery;
$('#local-shop').on('click', function () {
window.location.href = '{:url("finance.order/localLists")}'; // 将 'your-target-page.html' 替换为你想要跳转的页面地址
});
});
</script>

@ -0,0 +1,10 @@
<?php
namespace app\common\model;
use app\common\basics\Models;
class UserBillions extends Models
{
protected $table = 'ls_user_billions';
}