Commit 5cb0494abcf5dc348eef633415a7e9ef0386cfc8

Authored by teemitop
1 parent e01808af

套餐统计

... ... @@ -108,7 +108,6 @@ class Index extends Common
if(Request::isAjax()) {
$arr = cache('time_total');
if(!$arr){
$arr = array();
$time = $this->GetDate();
... ... @@ -212,6 +211,22 @@ class Index extends Common
$arr['sms_price_total'] = $price_total ? $price_total[0]['total'] : '0.00';
$arr['seller_dv_total'] = $seller_dv_total ? $seller_dv_total[0]['total'] : 0;
//菜品套餐统计
$foods_total = Db::query("SELECT
`status`,
count(1) as total
FROM
`xt-member-two-LINE`.xt_dc_dz_user_food_orders
WHERE
( `status` = 2 OR `status` = 3 OR `status` = 4 OR `status` = 5 )
AND wechat_no > 0
AND sub_mchid > 0
GROUP BY `status`");
$arr['temp_foods_total'] = array();
//分别统计
foreach ($foods_total as $key => $value) {
$arr['temp_foods_total'][$value['status']] = $value['total'];
}
cache('time_total', $arr, 3600); //将数据集加入缓存
}
... ...
... ... @@ -203,740 +203,96 @@ class Package extends Common
return $result;
}
/**
* 创建优惠券-卡券类型选择
*/
public function cardtypelist(){
if(Request::isAjax()){
//商家基本数据
$rs = Db::query("SELECT
*
FROM
`xt-member-two-LINE`.xt_dc_dz_card_base ");
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'rel'=>2];
}
return $this->fetch();
}
/**
* 商家卡券-卡券投放-卡券列表
*/
public function cardput(){
//订单列表
public function orderlist(){
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']);
$rs[$key]['contributor_time'] = $value['contributor_time'] ? date("Y年m月d日",$value['contributor_time']) : '';
switch ($value['status']) {
case '1':
$rs[$key]['status_msg'] = '已投放';
break;
case '2':
$rs[$key]['status_msg'] = '未投放';
break;
case '3':
$rs[$key]['status_msg'] = '停止投放';
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();
}
/**
* 商家卡券-卡券投放- 停止投放
*/
public function cardstop(){
if(Request::isAjax()){
$data = Request::except('file');
$ups = Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_card_info set status = 3 where id = ".$data['id']);
if(!$ups){
$result['code'] = 1;
$result['msg'] = '该卡券已停止投放!';
}else{
$result['code'] = 0;
$result['msg'] = '请求错误,请联系管理员!';
}
return $result;
}
return view();
}
/**
* 商家卡券-卡券投放- 投放-弹层
*/
public function cardputin(){
$id = Request::except('file');
if(request()->isPost()){
$data = input('post.');
//商家基本数据
$end_time = Db::query("SELECT
end_time
FROM
`xt-member-two-LINE`.xt_dc_dz_card_info
WHERE id=".$data['cid']);
$arr = [];
$time = $data['date'] ? explode(' - ', $data['date']) : '';
$arr['receive_start_time'] = $time ? strtotime(date($time[0],time())) : '';
$arr['receive_end_time'] = $time ? strtotime(date($time[1],time())) : '';
$arr['total_limit'] = $data['total_limit']=='on' ? 1 : 0;
$arr['total'] = $data['total'] ? intval($data['total']) : 0;
$arr['totals'] = $data['total'] ? intval($data['total']) : 0;
$arr['receive_condition'] = $data['receive_condition'] ? intval($data['receive_condition']) : 0;
$arr['order_price'] = $data['order_price'] ? $data['order_price'] : 0;
$arr['contributor'] = $_SESSION['think']['username'];
$arr['contributor_time'] = time();
$arr['status'] = 1;
if(($end_time[0]['end_time']!=0) && ($end_time[0]['end_time'] < $arr['receive_end_time'])) {
$result['code'] = 0;
$result['msg'] = '领取期限必须在卡券有效期内!';
return $result;
}
$sql = "UPDATE `xt-member-two-LINE`.xt_dc_dz_card_info SET ";
foreach ($arr as $key=>$val){
$sql .= "".$key."='".$val."',";
}
$sql = substr( $sql,0, strlen($sql)-1 );
$sql .= ' where id = '.$data['cid'];
$ups = Db::query($sql);
if(!$ups){
$result['code'] = 1;
$result['msg'] = '已成功投放!';
}else{
$result['code'] = 0;
$result['msg'] = '请求错误,请联系管理员!';
}
return $result;
}
//商家基本数据
$rs = Db::query("SELECT
id,
sellername,
card_title,
end_time
FROM
`xt-member-two-LINE`.xt_dc_dz_card_info
WHERE id=".$id['id']);
$this->assign ( 'rs',$rs[0]);
$this->assign ( 'title','卡券投放');
return $this->fetch();
}
/**
* 平台卡券-优惠券-卡券列表
*/
public function platformcard(){
if(Request::isAjax()){
$data = Request::except('file');
$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
WHERE s.owner = 1 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
WHERE s.owner = 1");
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
}
$this->assign ( 'title','平台卡券');
return $this->fetch();
}
/**
* 创建优惠券-选择商户
*/
public function selectplatform(){
$this->assign ( 'title','创建卡券');
return $this->fetch();
}
/**
* 平台卡券-卡券投放-卡券列表
*/
public function cardputforplat(){
if(Request::isAjax()){
$data = Request::except('file');
$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
WHERE s.owner = 1 order by s.sid".$limit);
//格式化数据
foreach ($rs as $key => $value) {
$rs[$key]['create_time'] = date("Y年m月d日",$value['create_time']);
$rs[$key]['contributor_time'] = $value['contributor_time'] ? date("Y年m月d日",$value['contributor_time']) : '';
switch ($value['status']) {
case '1':
$rs[$key]['status_msg'] = '已投放';
break;
case '2':
$rs[$key]['status_msg'] = '未投放';
break;
case '3':
$rs[$key]['status_msg'] = '停止投放';
break;
default:
# code...
break;
}
}
//获取总条数
$total = Db::query("SELECT
s.id
FROM
`xt-member-two-LINE`.xt_dc_dz_card_info AS s
WHERE s.owner = 1");
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
}
$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==1) ? ' o.status in (2,3,4,5)' : " o.status in ($channel)";
$where .= $data['key'] ? ' and o.sellername like "%'.$data['key'].'%"' : "";
$where .= $data['share'] ? ' and re.main_name like "%'.$data['share'].'%"' : "";
$where .= $data['foodname'] ? ' and s.name like "%'.$data['foodname'].'%"' : "";
$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']) : '';
$stime = $time ? strtotime(date($time[0],time())) : strtotime(date('Y-m-d 00:00:00',time()));
$etime = $time ? strtotime(date($time[1],time())) : strtotime(date('Y-m-d 23:59:59',time()));
//日期
$time = $data['time'] ? explode(' - ', $data['time']) : '';
$start = $time ? strtotime(date($time[0],time())) : 0;
$end = $time ? strtotime(date($time[1],time())) : 0;
$where .= ' and o.create_time between '.$stime.' and '.$etime;
$where .= ' AND o.wechat_no > 0 AND o.sub_mchid > 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);
$sql ="SELECT
o.id,
o.sid,
o.sellername,
s.`name`,
o.actual_price,
w.nickname,
re.openid_main,
re.main_name,
re.openid_cover,
re.create_time as ctime,
o.pay_time,
o.use_time,
o.refund_time,
o.writeoff,
o.writeoff_name,
o.`status`
FROM
`xt-member-two-LINE`.xt_dc_dz_user_food_orders AS o
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_user_food_set AS s ON o.id = s.order_id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_wechat AS w ON o.openid = w.openid
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_share_code_rel AS re ON (o.openid = re.openid_cover and s.id = re.fid)
WHERE ".$where.$limit;
//套餐信息
$rs = Db::query($sql);
//格式化数据
foreach ($rs as $key => $value) {
$rs[$key]['contributor_time'] = date("Y年m月d日",$value['contributor_time']);
//查询关系
$rs[$key]['pay_time'] = $value['pay_time'] ? date("Y-m-d H:i:s",$value['pay_time']) : '';
$rs[$key]['use_time'] = $value['use_time'] ? date("Y-m-d H:i:s",$value['use_time']) : '';
$rs[$key]['refund_time'] = $value['refund_time'] ? date("Y-m-d H:i:s",$value['refund_time']) : '';
switch ($value['status']) {
case '1':
$rs[$key]['status'] = '已投放';
break;
case '2':
$rs[$key]['status'] = '未投放';
$rs[$key]['str_status'] = '已购买';
break;
case '3':
$rs[$key]['status'] = '停止投放';
$rs[$key]['str_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(){
$data = Request::except('file');
if(Request::isAjax()){
$where = '';
//证明是需要根据名称搜索,忽略隐藏域商家ID
$where .= ' AND s.id = '.$data['seller_id'].'';
//如果flag==1 则是查看平台红包
$where .= $data['flag']==1 ? ' AND i.owner = 1' : ' AND i.owner = 2';
$offset = ($data["page"] - 1) * $data["limit"];
$limit = " LIMIT $offset,".$data['limit'];
//订单信息
$rs = Db::query("SELECT
r.id,
r.sid,
r.tableinfo,
r.ddate,
r.ddate_solt,
r.rname,
r.sex,
s.sellername,
data_rel.cid,
data_rel.oid
FROM
`xt-member-two-LINE`.xt_dc_reserve AS r
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON r.sid = s.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_data_rel AS data_rel ON data_rel.rid = r.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_info AS i ON data_rel.cid = i.id
WHERE
data_rel.oid IS NOT NULL and data_rel.status = 1".$where.$limit);
//格式化数据
foreach ($rs as $key => $value) {
$rs[$key]['rname'] = $value['sex']==1 ? $value['rname'].'先生' : ($value['sex']==2 ? $value['rname'].'女士' : $value['rname']);
$rs[$key]['ddate'] = date("Y年m月d日",$value['ddate']);
if($value['tableinfo']){
$tableinfo = json_decode($value['tableinfo'],true);
$tableinfo = array_column($tableinfo, 'name');
$rs[$key]['tableinfo'] = implode('、', $tableinfo);
}else{
$rs[$key]['tableinfo'] = '';
}
switch ($value['ddate_solt']) {
case '1':
$rs[$key]['ddate_solt'] = '早餐';
break;
case '2':
$rs[$key]['ddate_solt'] = '午餐';
case '4':
$rs[$key]['str_status'] = '退款中';
break;
case '3':
$rs[$key]['ddate_solt'] = '晚餐';
case '5':
$rs[$key]['str_status'] = '已退款';
break;
default:
# code...
break;
}
//查询账单所牵扯的卡券
if($value['oid']) {
$card_title = Db::query("SELECT
i.card_title
FROM
`xt-member-two-LINE`.xt_dc_dz_discount_act act
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_data_rel rel ON act.cid = rel.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_info i ON rel.cid = i.id
WHERE
orderid = ".$value['oid']);
$rs[$key]['card_title'] = implode("<br/>", array_column($card_title, 'card_title'));
//查询提前买单账单金额
$price = Db::query("SELECT
should_price,
actual_price
FROM
`xt-member-two-LINE`.xt_dc_dz_seller_flowing_log
WHERE
rid = ".$value['id']);
$rs[$key]['should_price'] = $price ? $price[0]['should_price'] : '';
$rs[$key]['actual_price'] = $price ? $price[0]['actual_price'] : '';
if($value['status']==3){
$rs[$key]['writeoff_name'] = $value['writeoff_name'] ? $value['writeoff_name'] : $value['writeoff'];
}
}
//获取总条数
$total = Db::query("SELECT
r.id,
r.sid,
r.tableinfo,
r.ddate,
r.ddate_solt,
r.rname,
r.sex,
s.sellername,
data_rel.cid,
data_rel.oid
FROM
`xt-member-two-LINE`.xt_dc_reserve AS r
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON r.sid = s.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_data_rel AS data_rel ON data_rel.rid = r.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_info AS i ON data_rel.cid = i.id
WHERE
data_rel.oid IS NOT NULL and data_rel.status = 1 ".$where);
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
}
$msgs = $data['flag'] == 1 ? '平台卡券信息统计' : '商家卡券信息统计';
$this->assign ( 'sid',$data['id']);
$this->assign ( 'flag',$data['flag']);
$this->assign ( 'title',$msgs);
return $this->fetch();
}
/**
* 平台卡券-数据统计-统计列表
*/
public function platcarddatalist(){
if(Request::isAjax()){
$data = Request::except('file');
$where = '';
//日期
$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` = 1
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'];
//总金额:查询该卡券所牵扯的账单总金额
$price = Db::query("SELECT
sum(price) as price
FROM
`xt-member-two-LINE`.xt_dc_dz_advance_order
WHERE
id IN (
SELECT
orderid
FROM
`xt-member-two-LINE`.xt_dc_dz_discount_act
WHERE
cid IN ( SELECT id FROM `xt-member-two-LINE`.xt_dc_dz_card_data_rel WHERE cid = ".$value['id']." ))");
$rs[$key]['order_price_total'] = $price ? $price[0]['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` = 1
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 platcarddatalog(){
if(Request::isAjax()){
$data = Request::except('file');
$where = '';
$channel = $data['channel'] ? $data['channel'] : 1;
$where .= ($channel && $channel==4) ? ' AND re.type_id in (1,2,3)' : " AND re.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.id,
i.price,
o.sid,
o.sellername,
i.card_title,
rel.oid
FROM
`xt-member-two-LINE`.xt_dc_dz_card_data_rel AS rel
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_info AS i ON rel.cid = i.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_advance_order AS o ON rel.oid = o.id
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON o.sid = s.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
WHERE
i.`owner` = 1
AND rel.oid != 0
".$where."GROUP BY o.sid,i.id ".$limit);
//格式化数据
foreach ($rs as $key => $value) {
//核销人数
$write_off_people_number = Db::query("SELECT
count(
DISTINCT ( rel.openid )) AS total
FROM
`xt-member-two-LINE`.xt_dc_dz_card_data_rel AS rel
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_advance_order AS o ON rel.oid = o.id
WHERE
rel.STATUS = 1
AND rel.cid = ".$value['id']."
AND o.sid = ".$value['sid']);
$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 AS rel
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_advance_order AS o ON rel.oid = o.id
WHERE
rel.STATUS = 1
AND rel.cid = ".$value['id']."
AND o.sid = ".$value['sid']);
$rs[$key]['write_off_people_frequency'] = $write_off_people_frequency[0]['total'];
//订单总金额/红包总金额
$card_order_price = Db::query("SELECT
SUM(o.price) as order_price,
SUM(i.price) as card_price
FROM
`xt-member-two-LINE`.xt_dc_dz_card_data_rel AS rel
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_advance_order AS o ON rel.oid = o.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_info as i ON rel.cid = i.id
WHERE
rel.STATUS = 1
AND rel.cid = ".$value['id']."
AND o.sid = ".$value['sid']);
$rs[$key]['order_price_total'] = $card_order_price[0]['order_price'];
$rs[$key]['card_price_total'] = $card_order_price[0]['card_price'];
}
//获取总条数
$total = Db::query("SELECT
i.id,
i.price,
o.sid,
o.sellername,
i.card_title,
rel.oid
FROM
`xt-member-two-LINE`.xt_dc_dz_card_data_rel AS rel
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_info AS i ON rel.cid = i.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_advance_order AS o ON rel.oid = o.id
LEFT JOIN `xt-member-two-LINE`.xt_seller AS s ON o.sid = s.id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
WHERE
i.`owner` = 1
AND rel.oid != 0
".$where."GROUP BY o.sid,i.id ");
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
count(1) as total
FROM
`xt-member-two-LINE`.xt_dc_dz_user_food_orders AS o
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_user_food_set AS s ON o.id = s.order_id
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_wechat AS w ON o.openid = w.openid
LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_share_code_rel AS re ON (o.openid = re.openid_cover and s.id = re.fid)
WHERE ".$where."");
$new_total = $total ? $total[0]['total'] : 0;
return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>$new_total,'rel'=>1];
}
$this->assign ( 'title','平台卡券信息统计');
$this->assign ( 'title','订单列表');
return $this->fetch();
}
}
... ...
... ... @@ -10,9 +10,8 @@
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/bmap.min.js"></script>
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
<div class="layui-card" style="margin-bottom:-7px;">
<div class="layui-card-header">
用户量
<span class="layui-badge layui-bg-blue layuiadmin-badge">至今</span>
... ... @@ -21,9 +20,7 @@
<p class="layuiadmin-big-font" id="user_total"></p>
</div>
</div>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
<div class="layui-card" style="margin-top:7px;">
<div class="layui-card-header">
订单量
<span class="layui-badge layui-bg-cyan layuiadmin-badge">至今</span>
... ... @@ -33,8 +30,9 @@
</div>
</div>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
<div class="layui-card" style="margin-bottom:-7px;">
<div class="layui-card-header">
短信收入
<span class="layui-badge layui-bg-green layuiadmin-badge">至今</span>
... ... @@ -43,9 +41,8 @@
<p class="layuiadmin-big-font" id="sms_price_total"></p>
</div>
</div>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="layui-card">
<div class="layui-card" style="margin-top:7px;">
<div class="layui-card-header">
商家使用过设备
<span class="layui-badge layui-bg-orange layuiadmin-badge">至今</span>
... ... @@ -55,6 +52,47 @@
</div>
</div>
</div>
<!--套餐信息统计-->
<div class="layui-col-sm6 layui-col-md6">
<div class="layui-card">
<div class="layui-card-header">菜品套餐信息</div>
<div class="layui-card-body">
<div class="layui-carousel layadmin-carousel layadmin-backlog" lay-anim="" lay-indicator="inside" lay-arrow="none">
<div carousel-item="">
<ul class="layui-row layui-col-space10 layui-this">
<li class="layui-col-xs6">
<a lay-href="javascript:;" onclick="layer.tips('暂不跳转', this, {tips: 3});" class="layadmin-backlog-body">
<h3>交易成功</h3>
<p><cite id="total_2">0</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a lay-href="javascript:;" onclick="layer.tips('暂不跳转', this, {tips: 3});" class="layadmin-backlog-body">
<h3>已使用</h3>
<p><cite id="total_3">0</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a lay-href="javascript:;" onclick="layer.tips('暂不跳转', this, {tips: 3});" class="layadmin-backlog-body">
<h3>退款中</h3>
<p><cite id="total_4">0</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a href="javascript:;" onclick="layer.tips('暂不跳转', this, {tips: 3});" class="layadmin-backlog-body">
<h3>已退款</h3>
<p><cite id="total_5">0</cite></p>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!--套餐信息统计-->
</div>
</div>
... ... @@ -170,6 +208,25 @@ layui.use(['table', 'layer'], function(){
$('#res_total').html(data.data.res_total+' 单');
$('#sms_price_total').html(data.data.sms_price_total+' 元');
$('#seller_dv_total').html(data.data.seller_dv_total+' 家');
//套餐赋值:
$.each(data.data.temp_foods_total, function (i, item) {
switch (i) {
case "2":
$('#total_2').html(item);
break;
case "3":
$('#total_3').html(item);
break;
case "4":
$('#total_4').html(item);
break;
case "5":
$('#total_5').html(item);
break;
default:
break;
}
});
var myChart2 = echarts.init(document.getElementById('seller_main'));
var myChart = echarts.init(document.getElementById("container"),'light');
... ...
{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>
<div class="demoTable">
商家名称:<div class="layui-inline">
<input class="layui-input" name="key" id="key" placeholder="{:lang('pleaseEnter')}店铺名称" autocomplete="off">
</div>
分享人:<div class="layui-inline">
<input class="layui-input" name="share" id="share" placeholder="{:lang('pleaseEnter')}分享者" autocomplete="off">
</div>
套餐名称:<div class="layui-inline">
<input class="layui-input" name="foodname" id="foodname" placeholder="{:lang('pleaseEnter')}套餐名称" autocomplete="off">
</div>
日期范围:<div class="layui-input-inline" >
<input type="text" style = "width:300px"; class="layui-input" id="time" placeholder="默认为当天的统计情况">
</div>
订单状态:
<div class="layui-input-inline layui-form">
<div class="layui-input-8">
<select name="class" id="channel" lay-filter="myselect">
<option value="1" selected>全部</option>
<option value="2">已购买</option>
<option value="3">已使用</option>
<option value="4">退款中</option>
<option value="5">已退款</option>
</select>
</div>
</div>
<button class="layui-btn" id="search" data-type="reload">搜索</button>
</div>
<table class="layui-table" id="list" lay-filter="list"></table>
</div>
<!-- <script type="text/html" id="switchTpl">
<input type="checkbox" name="status" value="{{d.id}}" lay-skin="switch" lay-text="上架|下架" lay-filter="switchTpl" {{ d.status == 1 ? 'checked' : '' }}>
</script> -->
{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("orderlist")}',
method: 'post',
title: '卡券列表',
toolbar: '#toolbarDemo',
cols: [[
{field: 'main_name', title: '分享人微信', fixed: true, align: 'center'},
{field: 'sid', title: '商家编号', fixed: true, align: 'center'},
{field: 'sellername', title: '商家名称', align: 'center'},
{field: 'name', title: '套餐名称', align: 'center'},
{field: 'actual_price', title: '实付价格', align: 'center'},
{field: 'nickname', align: 'center',title: '购买人微信'},
{field: 'pay_time', align: 'center', title: '付款时间'},
{field: 'use_time', align: 'center', title: '核销时间'},
{field: 'writeoff_name', align: 'center', title: '核销人微信'},
{field: 'refund_time', align: 'center', title: '退款时间'},
{field: 'str_status', align: 'center', templet: '#switchTpl',title: '状态'}
]]
,id: 'cardReload'
,page: true
});
//日期时间范围
laydate.render({
elem: '#time'
,type: 'datetime'
,range: true
});
//监听单元格,上架/下架
/*form.on('switch(switchTpl)', function(obj){
loading =layer.load(1, {shade: [0.1,'#fff']});
var id = this.value;
var status = obj.elem.checked===true?1:0;
$.post('{:url("foodState")}',{'id':id,'status':status},function (res) {
layer.close(loading);
if (res.code==1) {
tableIn.reload();
}else{
layer.msg(res.msg,{time:1000,icon:2});
return false;
}
})
});*/
//搜索
$('#search').on('click', function() {
//关键字
var js_str = {
key: $('#key').val(),
share: $('#share').val(),
foodname: $('#foodname').val(),
channel: $('#channel').val(),
time: $('#time').val()
}
//传参
tableIn.reload({ page: {page: 1},where: js_str});
});
/*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()
}
}
});
}
};*/
})
</script>
\ No newline at end of file
... ...