7e47ce238b
添加了管理后台所需的图片资源、Excel文件、安装程序以及设计相关的图片文件
204 lines
6.6 KiB
PHP
204 lines
6.6 KiB
PHP
<?php
|
|
//2维尺码占比分析
|
|
//可配置参数:zd1|sxz|横向维度1,zd2|category|横向维度2
|
|
//20181211 by hehe
|
|
//-----参数配置
|
|
//横向维度
|
|
$zd1=get_plugin_set("zd1","sxz");
|
|
$zd2=get_plugin_set("zd2","category");
|
|
//查询条件
|
|
$select_client_type="y";//dp:允许筛选店铺
|
|
$use_layui_datatable="n";//使用标准layui datatable格式数据
|
|
//尺码组
|
|
$arr_size_group=array("衣服","鞋子");
|
|
//
|
|
$con_other=" and ka<>'y'";//排除条件
|
|
$sys_size_num=get_max_size_num();
|
|
//
|
|
$tmp_arr=array();
|
|
for($i=0;$i<count($arr_sx);$i++){
|
|
$tmp_arr[$i]=$arr_sx[$i];
|
|
}
|
|
$tmp_arr[$i]=$zd1;
|
|
$i++;
|
|
$tmp_arr[$i]=$zd2;
|
|
//取得选项的值
|
|
for($i=0;$i<count($tmp_arr);$i++){
|
|
$v1=$tmp_arr[$i]."_title";
|
|
$v2=$tmp_arr[$i]."_arr";
|
|
//取得对应字段的名称
|
|
$$v1=get_cate_title_no("arr_select",$tmp_arr[$i]);
|
|
//取得字段的选项值
|
|
$q1="select no,title from ".$table_pre."keyword where cate='".$tmp_arr[$i]."' order by no";
|
|
$r1=$db->query($q1);
|
|
$arr_tmp1=array();
|
|
while($m1=$db->fetch_array($r1)){
|
|
$arr_tmp1[$m1["no"]]=$m1["title"];
|
|
}
|
|
$$v2=$arr_tmp1;
|
|
}
|
|
//店铺查询条件
|
|
$con="";
|
|
if($msg_client["face"]=="4"){
|
|
$s_username=$msg_client["username"];
|
|
$con=" and uid='".$msg_client["id"]."'";
|
|
}else{
|
|
if($s_username){
|
|
$m2=get_db_msg("select id,face,path from ".$table_pre."client where username='".$s_username."'");
|
|
if($m2["face"]=="4"){
|
|
$con=" and uid='".$m2["id"]."'";
|
|
}else{
|
|
$con=" and (upath='".$m2["path"]."-".$m2["id"]."' or upath like '".$m2["path"]."-".$m2["id"]."-%')";
|
|
}
|
|
}else if($msg_client["face"]=="2"){
|
|
//区经角色所有客户
|
|
$con=get_qj_ucon_all($msg_client["charge_path_real"]);
|
|
}else{
|
|
//代理角色所有客户
|
|
$con=" and (upath='".$msg_client["path"]."-".$msg_client["id"]."' or upath like '".$msg_client["path"]."-".$msg_client["id"]."-%')";
|
|
}
|
|
}
|
|
//----------------构建筛选条件
|
|
$q="select * from ".$table_pre."keyword where cate='arr_select' and flag_ka='y'";
|
|
$r=$db->query($q);
|
|
$con_sx="";
|
|
while($m=$db->fetch_array($r)){
|
|
$var1="s_".$m["no"];
|
|
if($$var1)
|
|
$con_sx.=" and ".$m["no"]."='".$$var1."'";
|
|
}
|
|
if($s_is_sp)
|
|
$con_sx.=" and is_sp='".$s_is_sp."'";
|
|
//
|
|
//----------------取得款号表数据
|
|
$arr_kh_data=array();
|
|
$q="select ".$zd1.",".$zd2.",count(*) 'ks',sum(price)/count(*) 'jj' from ".$table_pre."kh where ka<>'y'".$con_other.$con_sx." group by ".$zd1.",".$zd2;
|
|
//echo $q."<br>";
|
|
$r=$db->query($q);
|
|
while($m=$db->fetch_array($r)){
|
|
$arr_kh_data[$m[$zd1]][$m[$zd2]]=array($m["ks"]);
|
|
}
|
|
for($i1=0;$i1<count($arr_size_group);$i1++){
|
|
$tmp=get_db_msg("select id from ".$table_pre."keyword where cate='size' and title='".$arr_size_group[$i1]."'");
|
|
$this_size_group_id=$tmp["id"];
|
|
$q="select no,title from ".$table_pre."size where iid='".$this_size_group_id."' order by no";
|
|
$arr_size=array();
|
|
$r=$db->query($q);
|
|
while($m=$db->fetch_array($r)){
|
|
$arr_size[$m["no"]]=$m["title"];
|
|
}
|
|
if(count($arr_size)>0){
|
|
//----------------取得订单表数据
|
|
$max_size=get_max_size_num();
|
|
$arr_order_data=array();
|
|
$q="select ".get_size_sql("sum1").",size_group_id,".$zd1.",".$zd2.",sum(num) 'num' from ".$table_pre."order where size_group_id='".$this_size_group_id."'".$con_other.$con_sx.$con." group by ".$zd1.",".$zd2;
|
|
//echo $q."<br>";
|
|
$r=$db->query($q);
|
|
while($m=$db->fetch_array($r)){
|
|
$tmp_arr=array();
|
|
for($i=1;$i<=$max_size;$i++){
|
|
$tmp_arr[$i]=$m["num_".$i];
|
|
}
|
|
$tmp_arr["num"]=$m["num"];
|
|
$arr_order_data[$m[$zd1]][$m[$zd2]]=$tmp_arr;
|
|
}
|
|
//计算第一维度小计,用于计算占比
|
|
$var1=$zd1."_arr";
|
|
$var2=$zd2."_arr";
|
|
$arr_kh_data_xj=array();
|
|
$arr_order_date_xj=array();
|
|
$total_yd_sku=$total_yd_js=0;
|
|
$total_ks=$total_sku=0;
|
|
for($i=1;$i<=$max_size;$i++){
|
|
$var="total_".$i;
|
|
$$var=0;
|
|
}
|
|
foreach($$var1 as $k1=>$v1){
|
|
$xj1=0;
|
|
for($i=1;$i<=$max_size;$i++){
|
|
$var="xj1".$i;
|
|
$$var=0;
|
|
}
|
|
$xj_num=0;
|
|
foreach($$var2 as $k2=>$v2){
|
|
$xj1+=$arr_kh_data[$k1][$k2][0];
|
|
$total_ks+=$arr_kh_data[$k1][$k2][0];
|
|
for($i=1;$i<=$max_size;$i++){
|
|
$var="xj1".$i;
|
|
$$var+=$arr_order_data[$k1][$k2][$i];
|
|
$var="total_".$i;
|
|
$$var+=$arr_order_data[$k1][$k2][$i];
|
|
$total_yd_js+=$arr_order_data[$k1][$k2][$i];
|
|
}
|
|
$xj_num+=$arr_order_data[$k1][$k2]["num"];
|
|
}
|
|
$arr_kh_data_xj[$k1]=array($xj1);
|
|
$arr_tmp=array();
|
|
for($i=1;$i<=$max_size;$i++){
|
|
$var="xj1".$i;
|
|
$arr_tmp[$i]=$$var;
|
|
}
|
|
$arr_tmp["xj_num"]=$xj_num;
|
|
$arr_order_data_xj[$k1]=$arr_tmp;
|
|
}
|
|
//print_r($arr_order_data);
|
|
//print_r($arr_order_data_xj);
|
|
//echo "<br><br>";
|
|
$content_data.="<p align='left' style='font-size:16px;font-weight:bold;'>".$arr_size_group[$i1]."尺码</p>";
|
|
if($total_yd_js>0){
|
|
$content_data.="<table border='0' cellspacing='1' cellpadding='4' class='layui-table'><thead>";
|
|
//-----------------------------表头第一行
|
|
$var_t1=$zd1."_title";
|
|
$var_t2=$zd2."_title";
|
|
$content_data.="<tr>";
|
|
$content_data.="<th align='center'><strong>".$$var_t1."</strong></th><th align='center'><strong>".$$var_t2."</strong></th>";
|
|
foreach($arr_size as $k1 => $v1){
|
|
$content_data.="<th align='center'><strong>".$v1."占比</strong></th>";
|
|
}
|
|
$content_data.="</tr>";
|
|
$content_data.="</thead>";
|
|
//--------------------输出报表-----------------------------------------------
|
|
$content_data.="<tbody>";
|
|
$var1=$zd1."_arr";
|
|
$var2=$zd2."_arr";
|
|
$count=0;
|
|
foreach($$var1 as $k1 => $v1){
|
|
foreach($$var2 as $k2 => $v2){
|
|
if($arr_kh_data[$k1][$k2][0]>0){
|
|
if($arr_order_data_xj[$k1]["xj_num"]>0){
|
|
$content_data.="<tr>";
|
|
$content_data.="<td align='center'>".$v1."</td><td align='center'>".$v2."</td>";
|
|
foreach($arr_size as $size1 => $s_title1){
|
|
$content_data.="<td align='center'>".deel_bfb($arr_order_data[$k1][$k2][$size1],$arr_order_data[$k1][$k2]["num"])."</td>";
|
|
}
|
|
$content_data.="</tr>";
|
|
$count++;
|
|
}
|
|
}
|
|
}
|
|
if($arr_order_data_xj[$k1]["xj_num"]>0){
|
|
//小计
|
|
$content_data.="<tr><td align='center' colspan=2>".$v1."小计</td>";
|
|
foreach($arr_size as $size1 => $s_title1){
|
|
$content_data.="<td align='center'>".deel_bfb($arr_order_data_xj[$k1][$size1],$arr_order_data_xj[$k1]["xj_num"])."</td>";
|
|
}
|
|
$content_data.="</tr>";
|
|
}
|
|
}
|
|
$content_data.="<tr><td align='center' colspan='2'>合计</td>";
|
|
foreach($arr_size as $k1 => $v1){
|
|
$var="total_".$k1;
|
|
$content_data.="<td align='center'>".deel_bfb($$var,$total_yd_js)."</td>";
|
|
}
|
|
$content_data.="</tr>";
|
|
$content_data.="</tbody>";
|
|
$content_data.="</table><br><br>";
|
|
}else{
|
|
$content_data.="<p align='left'> 无订量!</p>";
|
|
}
|
|
}else{
|
|
$content_data.="<p align='left'>".$arr_size_group[$i1].",无尺码数据!</p>";
|
|
}
|
|
}
|
|
$json_data.="\"table_html\":\"".$content_data."\",";
|
|
?>
|