Commit 21bdd5ea4f9b742036618d4f5db08e983ab5330e

Authored by teemitop
1 parent a737d6d1

数据统计

... ... @@ -446,7 +446,187 @@ class Card extends Common
WHERE s.owner = 1");
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
}
$this->assign ( 'title','商家卡券');
$this->assign ( 'title','平台卡券');
return $this->fetch();
}
/**
* 商家卡券-数据统计-统计列表
*/
public function sellercarddatalist(){
if(Request::isAjax()){
$data = Request::except('file');
$where = '';
$channel = $data['channel'] ? $data['channel'] : 1;
$where .= ($channel && $channel==4) ? ' AND rel.type_id in (1,2,3)' : " AND rel.type_id in ($channel)";
$where .= $data['key'] ? ' AND s.sellername like "%'.$data['key'].'%"' : "";
//日期
$time = $data['time'] ? explode(' - ', $data['time']) : '';
$start = $time ? strtotime(date($time[0],time())) : 0;
$end = $time ? strtotime(date($time[1],time())) : 0;
$where .= $data['time'] ? ' AND i.contributor_time BETWEEN '.$start.' AND '.$end : '';
$offset = ($data["page"] - 1) * $data["limit"];
$limit = " LIMIT $offset,".$data['limit'];
//卡券信息
$rs = Db::query("SELECT
i.*,
s.sellername
FROM
`xt-member-two-LINE`.xt_dc_dz_card_info AS i
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON i.sid = s.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel as rel ON rel.sid = s.id
WHERE
i.`owner` = 2
AND i.STATUS IN (1,3)
".$where.$limit);
//格式化数据
foreach ($rs as $key => $value) {
$rs[$key]['contributor_time'] = date("Y年m月d日",$value['contributor_time']);
switch ($value['status']) {
case '1':
$rs[$key]['status'] = '已投放';
break;
case '2':
$rs[$key]['status'] = '未投放';
break;
case '3':
$rs[$key]['status'] = '停止投放';
break;
default:
# code...
break;
}
//领取人数
$receive_people_number = Db::query("SELECT
count(
DISTINCT ( openid )) AS total
FROM
`xt-member-two-LINE`.xt_dc_dz_card_data_rel
WHERE
cid = ".$value['id']);
$rs[$key]['receive_people_number'] = $receive_people_number[0]['total'];
//领取次数
$receive_frequency = Db::query("SELECT
count(1) as total
FROM
`xt-member-two-LINE`.xt_dc_dz_card_data_rel
WHERE
cid = ".$value['id']);
$rs[$key]['receive_frequency'] = $receive_frequency[0]['total'];
//核销人数
$write_off_people_number = Db::query("SELECT
count(
DISTINCT ( openid )) AS total
FROM
`xt-member-two-LINE`.xt_dc_dz_card_data_rel
WHERE
status = 1 and cid = ".$value['id']);
$rs[$key]['write_off_people_number'] = $write_off_people_number[0]['total'];
//核销次数
$write_off_people_frequency = Db::query("SELECT
count(1) as total
FROM
`xt-member-two-LINE`.xt_dc_dz_card_data_rel
WHERE
status = 1 and cid = ".$value['id']);
$rs[$key]['write_off_people_frequency'] = $write_off_people_frequency[0]['total'];
//应收金额: 需要先查询出该卡券都在哪些账单中核销,并计算该卡券所牵扯账单的总的应收金额
$amount_receivable = Db::query("SELECT
SUM(should_price) as should_price,
SUM(actual_price) as actual_price
FROM
`xt-member-two-LINE`.xt_dc_dz_seller_flowing_log
WHERE
rid IN (
SELECT
rid
FROM
`xt-member-two-LINE`.xt_dc_dz_card_data_rel
WHERE
STATUS = 1
AND cid = ".$value['id'].")");
$rs[$key]['amount_receivable'] = $amount_receivable[0]['should_price'];
$rs[$key]['paid_in_amount'] = $amount_receivable[0]['actual_price'];
}
//获取总条数
$total = Db::query("SELECT
i.*,
s.sellername
FROM
`xt-member-two-LINE`.xt_dc_dz_card_info AS i
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON i.sid = s.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel as rel ON rel.sid = s.id
WHERE
i.`owner` = 2
AND i.STATUS IN (1,3)
".$where."");
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
}
$this->assign ( 'title','商家卡券信息统计');
return $this->fetch();
}
/**
* 商家卡券-数据统计-统计列表
*/
public function sellercarddatalog(){
if(Request::isAjax()){
$data = Request::except('file');
$where = '';
$channel = $data['channel'] ? $data['channel'] : 1;
$where .= ($channel && $channel==4) ? ' re.type_id in (1,2,3)' : " re.type_id in ($channel)";
$where .= $data['key'] ? ' and s.sellername like "%'.$data['key'].'%"' : "";
$offset = ($data["page"] - 1) * $data["limit"];
$limit = " LIMIT $offset,".$data['limit'];
//卡券信息
$rs = Db::query("SELECT
s.*
FROM
`xt-member-two-LINE`.xt_dc_dz_card_info AS s
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.sid
WHERE s.owner = 2 AND
".$where." order by s.sid".$limit);
//格式化数据
foreach ($rs as $key => $value) {
$rs[$key]['create_time'] = date("Y年m月d日",$value['create_time']);
switch ($value['status']) {
case '1':
$rs[$key]['status'] = '已投放';
break;
case '2':
$rs[$key]['status'] = '未投放';
break;
case '3':
$rs[$key]['status'] = '停止投放';
break;
default:
# code...
break;
}
}
//获取总条数
$total = Db::query("SELECT
s.id
FROM
`xt-member-two-LINE`.xt_dc_dz_card_info AS s
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.sid
WHERE s.owner = 2 AND
".$where."");
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
}
$this->assign ( 'title','商家卡券信息统计');
return $this->fetch();
}
}
... ...
... ... @@ -13,7 +13,7 @@
<a href="{:url('card/cardwriteoff')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 卡券核销
</a>
<a href="{:url('card/carddata')}" class="layui-btn layui-btn-lg">
<a href="{:url('card/sellercarddatalist')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 数据统计
</a>
</blockquote>
... ...
{include file="common/head"/}
<div class="admin-main layui-anim layui-anim-upbit">
<fieldset class="layui-elem-field layui-field-title">
<legend>{:$title}</legend>
</fieldset>
<blockquote class="layui-elem-quote">
<a href="{:url('card/sellercard')}" class="layui-btn">
<i class="fa fa-file-image-o"></i> 优惠券
</a>
<a href="{:url('card/cardput')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 卡券投放
</a>
<a href="{:url('card/cardwriteoff')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 卡券核销
</a>
<a href="{:url('card/sellercarddatalist')}" class="layui-btn layui-btn-lg layui-btn-danger">
<i class="fa fa-file-image-o"></i> 数据统计
</a>
</blockquote>
<blockquote class="layui-elem-quote">
<a href="{:url('card/sellercarddatalist')}" class="layui-btn layui-btn-sm layui-btn-danger">
<i class="fa fa-file-image-o"></i> 卡券数据
</a>
<a href="{:url('card/sellercarddatalog')}" class="layui-btn layui-btn-sm">
<i class="fa fa-file-image-o"></i> 使用记录
</a>
</blockquote>
<div class="demoTable">
商家名称:<div class="layui-inline">
<input class="layui-input" name="key" id="key" placeholder="{:lang('pleaseEnter')}店铺名称" autocomplete="off">
</div>
商家来源:
<div class="layui-input-inline layui-form">
<div class="layui-input-8">
<select name="class" id="channel" lay-filter="myselect">
<option value="4">全部</option>
<option value="1" selected>合作</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">
<input type="text" class="layui-input" id="time" placeholder="默认查询所有">
</div>
</div>
<button class="layui-btn" id="search" data-type="reload">查询统计</button>
</div>
<table class="layui-table" id="list" lay-filter="list"></table>
</div>
{include file="common/foot"/}
<script>
layui.use(['table','form','laydate'], function() {
var table = layui.table,laydate = layui.laydate,form = layui.form,$ = layui.jquery,layer = layui.layer;
var tableIn = table.render({
elem: '#list',
url: '{:url("sellercarddatalist")}',
method: 'post',
title: '卡券列表',
cols: [[
{field: 'id', title: '商家卡券编号',hide:true, fixed: true},
{field: 'sid', title: '商家编号', fixed: true},
{field: 'sellername', title: '商家名称'},
{field: 'card_title', title: '卡券名称'},
{field: 'price', align: 'center',title: '金额'},
{field: 'contributor_time', align: 'center', title: '投放日期'},
{field: 'status', align: 'center',title: '状态'},
{field: 'receive_people_number', align: 'center', title: '领取人数'},
{field: 'receive_frequency', align: 'center', title: '领取次数'},
{field: 'write_off_people_number', align: 'center', title: '核销人数'},
{field: 'write_off_people_frequency', align: 'center', title: '核销次数'},
{field: 'amount_receivable', align: 'center', title: '应收金额'},
{field: 'paid_in_amount', align: 'center', title: '实收金额'}
]]
,id: 'cardReload'
,page: true
});
//搜索
$('#search').on('click', function() {
//关键字
var key = $('#key').val();
var channel = $('#channel').val();
//查询日期
var time = $('#time').val();
//传参
tableIn.reload({ page: {page: 1},where: {key: key,channel: channel,time:time}});
});
var $ = layui.$, active = {
reload: function(){
var channel = $('#channel');
var key = $('#key');
//执行重载
table.reload('cardReload', {
page: {
curr: 1 //重新从第 1 页开始
}
,where: {
key: {
id: key.val(),
channel: channel.val()
}
}
});
}
};
//日期插件
laydate.render({
elem: '#time'
,range: true
})
})
</script>
\ No newline at end of file
... ...
{include file="common/head"/}
<div class="admin-main layui-anim layui-anim-upbit">
<fieldset class="layui-elem-field layui-field-title">
<legend>{:$title}</legend>
</fieldset>
<blockquote class="layui-elem-quote">
<a href="{:url('card/sellercard')}" class="layui-btn">
<i class="fa fa-file-image-o"></i> 优惠券
</a>
<a href="{:url('card/cardput')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 卡券投放
</a>
<a href="{:url('card/cardwriteoff')}" class="layui-btn layui-btn-lg">
<i class="fa fa-file-image-o"></i> 卡券核销
</a>
<a href="{:url('card/sellercarddatalist')}" class="layui-btn layui-btn-lg layui-btn-danger">
<i class="fa fa-file-image-o"></i> 数据统计
</a>
</blockquote>
<blockquote class="layui-elem-quote">
<a href="{:url('card/sellercarddatalist')}" class="layui-btn layui-btn-sm">
<i class="fa fa-file-image-o"></i> 卡券数据
</a>
<a href="{:url('card/sellercarddatalog')}" class="layui-btn layui-btn-sm layui-btn-danger">
<i class="fa fa-file-image-o"></i> 使用记录
</a>
</blockquote>
<div class="demoTable">
商家名称:<div class="layui-inline">
<input class="layui-input" name="key" id="key" placeholder="{:lang('pleaseEnter')}店铺名称" autocomplete="off">
</div>
商家来源:
<div class="layui-input-inline layui-form">
<div class="layui-input-8">
<select name="class" id="channel" lay-filter="myselect">
<option value="4">全部</option>
<option value="1" selected>合作</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">
<input type="text" class="layui-input" id="start" placeholder="yyyy-MM-dd">
</div>至
<div class="layui-input-inline">
<input type="text" class="layui-input" id="end" placeholder="yyyy-MM-dd">
</div>
</div>
<button class="layui-btn" id="search" data-type="reload">查询统计</button>
</div>
<table class="layui-table" id="list" lay-filter="list"></table>
</div>
{include file="common/foot"/}
<script>
layui.use(['table','form','laydate'], function() {
var table = layui.table,laydate = layui.laydate,form = layui.form,$ = layui.jquery,layer = layui.layer;
var tableIn = table.render({
elem: '#list',
url: '{:url("sellercarddatalist")}',
method: 'post',
title: '卡券列表',
toolbar: '#toolbarDemo',
cols: [[
{field: 'id', title: '商家卡券编号',hide:true, fixed: true},
{field: 'sid', title: '商家编号', fixed: true},
{field: 'sellername', title: '商家名称'},
{field: 'card_title', title: '卡券名称'},
{field: 'price', align: 'center',title: '金额'},
{field: 'create_time', align: 'center', title: '创建日期'},
{field: 'creator', align: 'center', title: '创建人'},
{field: 'status', align: 'center',title: '状态'}
]]
,id: 'cardReload'
,page: true
});
//搜索
$('#search').on('click', function() {
//关键字
var key = $('#key').val();
var channel = $('#channel').val();
//查询日期
var start = $('#start').val();
var date_start = new Date(start);
var end = $('#end').val();
var date_end = new Date(end);
var time_start = date_start.getTime();
var time_end = date_end.getTime();
if(time_end < time_start)
layer.msg('结束日期不能小于开始日期!',{time:1000,icon:2});return;
//传参
tableIn.reload({ page: {page: 1},where: {key: key,channel: channel,start:start,end:end}});
});
var $ = layui.$, active = {
reload: function(){
var channel = $('#channel');
var key = $('#key');
//执行重载
table.reload('cardReload', {
page: {
curr: 1 //重新从第 1 页开始
}
,where: {
key: {
id: key.val(),
channel: channel.val()
}
}
});
}
};
//开启公历节日
laydate.render({
elem: '#start'
,calendar: true
});
laydate.render({
elem: '#end'
,calendar: true
});
})
</script>
\ No newline at end of file
... ...