7e47ce238b
添加了管理后台所需的图片资源、Excel文件、安装程序以及设计相关的图片文件
1254 lines
45 KiB
PHP
1254 lines
45 KiB
PHP
<?php
|
|
header("Content-type: text/html; charset=utf-8");
|
|
if(THIS_IN!="edt_admin")
|
|
exit("错误的访问!");
|
|
//-------------------------------execute action
|
|
$db=_mysql_connect();
|
|
$msg_login_user=get_db_msg("select * from ".$table_pre."user where id='".$uid."'");
|
|
//权限判断
|
|
$priv=return_priv($_m,$msg_login_user["priv"]);
|
|
$json_data="{";
|
|
if($priv[0]=="n"){
|
|
//没有操作权限
|
|
$json_data.="\"error\":\"没有操作权限\",\"code\":0,\"msg\":\"\",\"count\":0,\"data\":[],";
|
|
}else{
|
|
//可选择字段
|
|
$arr_zd_kh=array(
|
|
"xh"=>"序号",
|
|
"price"=>"价格",
|
|
"title"=>"款式名",
|
|
"series"=>get_cate_title_no("arr_select","series"),
|
|
"season"=>get_cate_title_no("arr_select","season"),
|
|
"bc"=>get_cate_title_no("arr_select","bc"),
|
|
"category"=>get_cate_title_no("arr_select","category"),
|
|
"category1"=>get_cate_title_no("arr_select","category1"),
|
|
"designer"=>get_cate_title_no("arr_select","designer")
|
|
);
|
|
//---------priv
|
|
$priv=return_priv($_cid,$msg_login_user["priv"]);
|
|
//echo $priv[0]."-".$priv[1]."<br>";
|
|
$arr_report=array("top"=>"Top分析","ks_qs"=>"款式行为分析","client_qs"=>"客户行为分析","ms"=>"订货模式分析","client_active"=>"客户活跃度","ks_active"=>"款式活跃度","hd_active"=>"设备活跃度","detail"=>"客户行为明细");
|
|
$_a=$_a?$_a:"top";
|
|
$arr_con_time=array("day"=>"一天","half_day"=>"半天","hour"=>"小时");
|
|
$arr_zd=array("1"=>"订单量","2"=>"客户数");
|
|
switch($_a){
|
|
//ok
|
|
case "view_kh":
|
|
$json_data.="\"thiscase\":\"view_kh\",";
|
|
$json_data.="\"id\":\"".$id."\",";
|
|
$msg=get_db_msg("select * from ".$table_pre."kh where id='".$id."'");
|
|
//取得动作
|
|
$arr_action=array();
|
|
$q="select action from ".$table_pre."log_hd where iid='".$id."' group by action order by action";
|
|
$r=$db->query($q);
|
|
while($m=$db->fetch_array($r)){
|
|
$arr_action[$m["action"]]=get_main_value($arr_log_hd_action,$m["action"]);
|
|
}
|
|
//
|
|
$arrzd=$s_action?explode(",",$s_action):array();
|
|
$th_zd="";
|
|
foreach($arr_action as $k1 => $v1){
|
|
if(in_array($k1,$arrzd) || !$s_action){
|
|
$sign="y";
|
|
}else{
|
|
$sign="n";
|
|
}
|
|
$th_zd.="{\"no\":\"".$k1."\",\"title\":\"".$v1."\",\"sign\":\"".$sign."\"},";
|
|
}
|
|
$json_data.="\"th_zd\":[".substr($th_zd,0,-1)."],";
|
|
|
|
//查询店铺
|
|
$json_data.="\"s_username\":\"".$s_username."\",";
|
|
//表头
|
|
$thead_str="";
|
|
$thead_str.="{\"zd\":\"list\",\"title\":\"次序\"},";
|
|
$thead_str.="{\"zd\":\"kh\",\"title\":\"客户\"},";
|
|
$thead_str.="{\"zd\":\"client\",\"title\":\"客户端\"},";
|
|
$thead_str.="{\"zd\":\"ipaddress\",\"title\":\"IP地址\"},";
|
|
$thead_str.="{\"zd\":\"action1\",\"title\":\"动作\"},";
|
|
$thead_str.="{\"zd\":\"object1\",\"title\":\"对象\"},";
|
|
$thead_str.="{\"zd\":\"num\",\"title\":\"数量\"},";
|
|
$thead_str.="{\"zd\":\"lasttime\",\"title\":\"最后操作时间\"}";
|
|
$json_data.="\"thead_str\":[".$thead_str."],";
|
|
|
|
|
|
$pic=get_kh_picture($msg["no"],$msg["main_pic"],$msg["color"]);
|
|
$picarr=out_good_pic_set_arr($pic,200,200);
|
|
$json_data.="\"picsrc\":\"".$pic."\",";
|
|
$json_data.="\"picw\":\"".$picarr[0]."\",";
|
|
$json_data.="\"pich\":\"".$picarr[1]."\",";
|
|
|
|
//构建查询条件
|
|
$sql_con="";
|
|
if($s_username){
|
|
$tmp=get_db_msg("select id from ".$table_pre."client where username='".$s_username."'");
|
|
$sql_con.=" and uid='".$tmp["id"]."'";
|
|
}
|
|
if($s_action){
|
|
$tmp="";
|
|
for($i=0;$i<count($arrzd);$i++){
|
|
$tmp.=" action='".$arrzd[$i]."' or ";
|
|
}
|
|
if($tmp)
|
|
$sql_con.=" and (".substr($tmp,0,-3).")";
|
|
}
|
|
$q="select * from ".$table_pre."log_hd where iid='".$id."'".$sql_con." order by add_date,uid";
|
|
//echo $q."<br>";
|
|
$r=$db->query($q);
|
|
$i=0;
|
|
while($m=$db->fetch_array($r)){
|
|
$list=$i+1;
|
|
$m_client=get_db_msg("select * from ".$table_pre."client where id='".$m["uid"]."'");
|
|
$tmp=get_db_msg("select * from ".$table_pre."kh where id='".$m["iid"]."'");
|
|
$dx=$tmp["no"];
|
|
$tbody_str.="{";
|
|
$tbody_str.="\"list\":\"".$list."\",";
|
|
$tbody_str.="\"kh\":\"".$m_client["title"]."(".$m_client["username"].")\",";
|
|
$tbody_str.="\"client\":\"".$m["hd_type"]."\",";
|
|
$tbody_str.="\"ipaddress\":\"".$m["ip"]."\",";
|
|
$tbody_str.="\"action1\":\"".get_main_value($arr_log_hd_action,$m["action"])."\",";
|
|
$tbody_str.="\"object1\":\"".$dx."\",";
|
|
$tbody_str.="\"num\":\"".$m["num"]."\",";
|
|
$tbody_str.="\"lasttime\":\"".deel_add_date($m["add_date"])."\"";
|
|
$tbody_str.="},";
|
|
$i++;
|
|
}
|
|
$json_data.="\"tbody_str\":[".substr($tbody_str,0,-1)."],";
|
|
break;
|
|
//ok
|
|
case "view_client":
|
|
$json_data.="\"id\":\"".$id."\",";
|
|
$msg=get_db_msg("select * from ".$table_pre."client where id='".$id."'");
|
|
//取得动作
|
|
$arr_action=array();
|
|
$q="select action from ".$table_pre."log_hd where uid='".$id."' group by action order by action";
|
|
$r=$db->query($q);
|
|
while($m=$db->fetch_array($r)){
|
|
$arr_action[$m["action"]]=get_main_value($arr_log_hd_action,$m["action"]);
|
|
}
|
|
//
|
|
$arrzd=$s_action?explode(",",$s_action):array();
|
|
$th_zd="";
|
|
foreach($arr_action as $k1 => $v1){
|
|
if(in_array($k1,$arrzd) || !$s_action){
|
|
$sign="y";
|
|
}else{
|
|
$sign="n";
|
|
}
|
|
$th_zd.="{\"no\":\"".$k1."\",\"title\":\"".$v1."\",\"sign\":\"".$sign."\"},";
|
|
}
|
|
$json_data.="\"th_zd\":[".substr($th_zd,0,-1)."],";
|
|
|
|
|
|
//查询款号
|
|
$json_data.="\"thiscase\":\"view_client\",";
|
|
$json_data.="\"s_kh\":\"".$s_kh."\",";
|
|
|
|
//表头
|
|
$thead_str="";
|
|
$thead_str.="{\"zd\":\"list\",\"title\":\"次序\"},";
|
|
$thead_str.="{\"zd\":\"action1\",\"title\":\"动作\"},";
|
|
$thead_str.="{\"zd\":\"object1\",\"title\":\"对象\"},";
|
|
$thead_str.="{\"zd\":\"num\",\"title\":\"数量\"},";
|
|
$thead_str.="{\"zd\":\"lasttime\",\"title\":\"最后操作时间\"}";
|
|
$json_data.="\"thead_str\":[".$thead_str."],";
|
|
|
|
//构建查询条件
|
|
$sql_con="";
|
|
if($s_kh){
|
|
$tmp=get_db_msg("select id from ".$table_pre."kh where no='".$s_kh."'");
|
|
$sql_con.=" and iid='".$tmp["id"]."'";
|
|
}
|
|
if($s_action){
|
|
$tmp="";
|
|
for($i=0;$i<count($arrzd);$i++){
|
|
$tmp.=" action='".$arrzd[$i]."' or ";
|
|
}
|
|
if($tmp)
|
|
$sql_con.=" and (".substr($tmp,0,-3).")";
|
|
}
|
|
$q="select * from ".$table_pre."log_hd where uid='".$id."'".$sql_con." order by add_date,iid";
|
|
$r=$db->query($q);
|
|
$i=0;
|
|
while($m=$db->fetch_array($r)){
|
|
$list=$i+1;
|
|
$tmp=get_db_msg("select no from ".$table_pre."kh where id='".$m["iid"]."'");
|
|
$dx=$tmp["no"];
|
|
$tbody_str.="{";
|
|
$tbody_str.="\"list\":\"".$list."\",";
|
|
$tbody_str.="\"action1\":\"".get_main_value($arr_log_hd_action,$m["action"])."\",";
|
|
$tbody_str.="\"object1\":\"".$dx."\",";
|
|
$tbody_str.="\"num\":\"".$m["num"]."\",";
|
|
$tbody_str.="\"lasttime\":\"".deel_add_date($m["add_date"])."\"";
|
|
$tbody_str.="},";
|
|
$i++;
|
|
}
|
|
$json_data.="\"tbody_str\":[".substr($tbody_str,0,-1)."],";
|
|
|
|
break;
|
|
//ok
|
|
case "view_hd":
|
|
$json_data.="\"thiscase\":\"view_hd\",";
|
|
//表头
|
|
$thead_str="";
|
|
$thead_str.="{\"zd\":\"list\",\"title\":\"次序\"},";
|
|
$thead_str.="{\"zd\":\"kh\",\"title\":\"客户\"},";
|
|
$thead_str.="{\"zd\":\"client\",\"title\":\"客户端\"},";
|
|
$thead_str.="{\"zd\":\"action1\",\"title\":\"动作\"},";
|
|
$thead_str.="{\"zd\":\"object1\",\"title\":\"对象\"},";
|
|
$thead_str.="{\"zd\":\"num\",\"title\":\"数量\"},";
|
|
$thead_str.="{\"zd\":\"lasttime\",\"title\":\"最后操作时间\"}";
|
|
$json_data.="\"thead_str\":[".$thead_str."],";
|
|
|
|
$q="select * from ".$table_pre."log_hd where ip='".$ip."' order by add_date";
|
|
$r=$db->query($q);
|
|
$i=0;
|
|
while($m=$db->fetch_array($r)){
|
|
$list=$i+1;
|
|
$m_client=get_db_msg("select * from ".$table_pre."client where id='".$m["uid"]."'");
|
|
$m_=get_db_msg("select * from ".$table_pre."client where id='".$m["uid"]."'");
|
|
$tmp=get_db_msg("select * from ".$table_pre."kh where id='".$m["iid"]."'");
|
|
$dx=$tmp["no"];
|
|
|
|
$tbody_str.="{";
|
|
$tbody_str.="\"list\":\"".$list."\",";
|
|
$tbody_str.="\"kh\":\"".$m_client["title"]."(".$m_client["username"].")\",";
|
|
$tbody_str.="\"client\":\"".$m["hd_type"]."\",";
|
|
$tbody_str.="\"action1\":\"".get_main_value($arr_log_hd_action,$m["action"])."\",";
|
|
$tbody_str.="\"object1\":\"".$dx."\",";
|
|
$tbody_str.="\"num\":\"".$m["num"]."\",";
|
|
$tbody_str.="\"lasttime\":\"".deel_add_date($m["add_date"])."\"";
|
|
$tbody_str.="},";
|
|
$i++;
|
|
}
|
|
$json_data.="\"tbody_str\":[".substr($tbody_str,0,-1)."],";
|
|
break;
|
|
//ok
|
|
case "ks_qs":
|
|
$s_con_time=$s_con_time?$s_con_time:"day";
|
|
//$s_day=$s_day?$s_day:$default_day;
|
|
$json_data.="\"s_no\":\"".$s_no."\",";
|
|
//
|
|
$s_zd="";
|
|
foreach($arr_zd as $k => $v){
|
|
$var="zd_".$k;
|
|
if($$var=="on")
|
|
$s_zd.=$k.",";
|
|
}
|
|
$s_zd=deel_end($s_zd);
|
|
$s_zd=$s_zd?$s_zd:"1";
|
|
$arr_s_zd=explode(",",$s_zd);
|
|
//-----------------------tab
|
|
$str_tab="";
|
|
$i=0;
|
|
foreach($arr_report as $k => $v){
|
|
$str_tab.="{\"no\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$str_tab=deel_end($str_tab);
|
|
$json_data.="\"tab\":[".$str_tab."],";
|
|
//-----------------------/tab
|
|
$json_data.="\"s_cate\":\"".$_a."\",";
|
|
//时间条件选项
|
|
$tmp="";
|
|
foreach($arr_con_time as $k => $v){
|
|
$tmp.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"con_time\":[".deel_end($tmp)."],";
|
|
$json_data.="\"s_con_time\":\"".$s_con_time."\",";
|
|
//按照天的选项
|
|
$q="select substring(add_date,1,11) '_d' from ".$table_pre."log_hd where action>20 and action<25 group by _d order by _d";
|
|
$r=$db->query($q);
|
|
$tmp="";
|
|
while($m=$db->fetch_array($r)){
|
|
$tmp.="{\"val\":\"".$m["_d"]."\",\"title\":\"".deel_date_format("day",$m["_d"])."\"},";
|
|
}
|
|
$json_data.="\"con_day\":[".deel_end($tmp)."],";
|
|
$json_data.="\"s_day\":\"".$s_day."\",";
|
|
//数据选项
|
|
$tmp="";
|
|
foreach($arr_zd as $k => $v){
|
|
$tmp.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"con_zd\":[".deel_end($tmp)."],";
|
|
$json_data.="\"s_zd\":\"".$s_zd."\",";
|
|
//组合条件
|
|
if($s_con_time=="day"){
|
|
$sql_time="substring(add_date,1,11)";
|
|
$con_hour=" where action>20 and action<25";
|
|
}else if($s_con_time=="half_day"){
|
|
$sql_time="concat(substring(add_date,1,11),' ',case when substring(add_date,12,2)<13 then '1' when substring(add_date,12,2)<19 then '2' else '3' end)";
|
|
$con_hour=" where action>20 and action<25";
|
|
}else{
|
|
$sql_time="concat(substring(add_date,1,11),'',substring(add_date,12,2))";
|
|
$con_hour=" where action>20 and action<25 and substring(add_date,1,11)='".$s_day."'";
|
|
}
|
|
//取得时间段数据
|
|
$q="select ".$sql_time." as '_t' from ".$table_pre."log_hd".$con_hour." group by _t order by _t";
|
|
$r=$db->query($q);
|
|
$arr_sjd=array();
|
|
$tb_data_x="";
|
|
while($m=$db->fetch_array($r)){
|
|
$arr_sjd[]=$m["_t"];
|
|
$tb_data_x.=deel_date_format($s_con_time,$m["_t"]).",";
|
|
}
|
|
$tb_data_x=deel_end($tb_data_x);
|
|
//取得数据
|
|
$q="select b.iid 'iid',sum(case when b.action in (21,23) then b.num when b.action in (22,24) then -b.num else 0 end) 'num_1',count(distinct b.uid) 'num_2' from ".$table_pre."log_hd b where b.action>20 and b.action<25 group by b.iid order by num_1 desc";
|
|
$r=$db->query($q);
|
|
$i=0;
|
|
$total_num=0;
|
|
$arr_data_js=$arr_data_khs=array();
|
|
while($m=$db->fetch_array($r)){
|
|
//
|
|
$data_tb_v1=$data_tb_v2="";
|
|
for($i1=0;$i1<count($arr_sjd);$i1++){
|
|
$m1=get_db_msg("select sum(case when action in (21,23) then num when action in (22,24) then -num else 0 end) 'num_1',count(distinct uid) 'num_2' from ".$table_pre."log_hd where iid='".$m["iid"]."' and ".$sql_time."<='".$arr_sjd[$i1]."'");
|
|
$data_tb_v1.=add_0($m1["num_1"]).",";
|
|
$data_tb_v2.=add_0($m1["num_2"]).",";
|
|
}
|
|
$arr_data_js[$m["iid"]]=deel_end($data_tb_v1);
|
|
$arr_data_khs[$m["iid"]]=deel_end($data_tb_v2);
|
|
$i++;
|
|
}
|
|
//-----------------------输出数据
|
|
//表头
|
|
$thead="";
|
|
//第一行
|
|
$tr="{\"title\":\"圆牌号\",\"width\":80,\"align\":\"center\",\"rowspan\":2},{\"title\":\"款号\",\"width\":80,\"align\":\"center\",\"rowspan\":2},{\"title\":\"总订量\",\"width\":70,\"align\":\"center\",\"rowspan\":2},";
|
|
for($i=0;$i<count($arr_sjd);$i++){
|
|
$tr.="{\"title\":\"".deel_date_format($s_con_time,$arr_sjd[$i])."\"";
|
|
if(count($arr_s_zd)>1)
|
|
$tr.=",\"colspan\":".count($arr_s_zd).",\"align\":\"center\"";
|
|
$tr.="},";
|
|
}
|
|
$thead.="{\"row\":0,\"tr\":[".deel_end($tr)."]},";
|
|
//第二行
|
|
$tr="";
|
|
for($i=0;$i<count($arr_sjd);$i++){
|
|
for($j=0;$j<count($arr_s_zd);$j++){
|
|
$tr.="{\"title\":\"".get_main_value($arr_zd,$arr_s_zd[$j])."\",\"align\":\"center\"},";
|
|
}
|
|
}
|
|
$thead.="{\"row\":1,\"tr\":[".deel_end($tr)."]}";
|
|
$json_data.="\"thead\":[".$thead."],";
|
|
//计算标准差
|
|
$arr_pc=array();
|
|
$i=0;
|
|
foreach($arr_data_js as $iid => $str_data_js){
|
|
$arr_pc[$iid]=get_pc(explode(",",$str_data_js));
|
|
$i++;
|
|
}
|
|
arsort($arr_pc);
|
|
//内容
|
|
$i=0;
|
|
$hj_total_num=0;
|
|
$data="";
|
|
foreach($arr_pc as $iid => $pc){
|
|
$m_kh=get_db_msg("select no,id,main_pic,color,xh from ".$table_pre."kh where id='".$iid."'");
|
|
if(!$s_no || ($s_no && (strpos(" ".$m_kh["no"],$s_no)!=false))){
|
|
$tmp=get_db_msg("select sum(num) 'num' from ".$table_pre."order where ka<>'y' and iid='".$iid."' and _key='".$_key."'");
|
|
$tmp_total_num=$tmp["num"];
|
|
$hj_total_num+=$tmp_total_num;
|
|
//
|
|
$content1="";
|
|
$arr_tmp_js=explode(",",$arr_data_js[$iid]);
|
|
$arr_tmp_khs=explode(",",$arr_data_khs[$iid]);
|
|
for($i1=0;$i1<count($arr_tmp_js);$i1++){
|
|
$num_1=$arr_tmp_js[$i1];
|
|
$num_2=$arr_tmp_khs[$i1];
|
|
for($j=0;$j<count($arr_s_zd);$j++){
|
|
$var="num_".$arr_s_zd[$j];
|
|
$content1.=",\"num_".$i1."_".$j."\":\"".add_0($$var)."\"";
|
|
}
|
|
$v="hj_".$i1;
|
|
$$v+=$num_1;
|
|
}
|
|
$list=$i+1;
|
|
$tb_data_y="";
|
|
if(in_array("1",$arr_s_zd))
|
|
$tb_data_y.=get_main_value($arr_zd,"1").",".$arr_data_js[$iid]."|";
|
|
if(in_array("2",$arr_s_zd))
|
|
$tb_data_y.=get_main_value($arr_zd,"2").",".$arr_data_khs[$iid]."|";
|
|
$tb_data_y=deel_end($tb_data_y);
|
|
$pic=get_kh_picture($m_kh["no"],$m_kh["main_pic"],$m_kh["color"]);
|
|
$data.="{\"xh\":\"".get_kh_xh($m_kh)."\",\"id\":\"".$m_kh["id"]."\",\"pic\":\"".$pic."\",\"tb_data_y\":\"".$tb_data_y."\",\"kh\":\"".$m_kh["no"]."\",\"total_num\":\"".$tmp_total_num."\"".$content1."},";
|
|
$i++;
|
|
}
|
|
}
|
|
//合计
|
|
$data_tb_v1="";
|
|
$data_tb_v2="";
|
|
$content1="";
|
|
for($i1=0;$i1<count($arr_sjd);$i1++){
|
|
$var="hj_".$i1;
|
|
for($j1=0;$j1<count($arr_s_zd);$j1++){
|
|
if($arr_s_zd[$j1]==1){
|
|
if($i1==0)
|
|
$data_tb_v1.=get_main_value($arr_zd,"1").",";
|
|
$content1.=",\"num_".$i1."_".$j1."\":\"".add_0($$var)."\"";
|
|
$data_tb_v1.=add_0($$var).",";
|
|
}else if($arr_s_zd[$j1]==2){
|
|
if($i1==0)
|
|
$data_tb_v2.=get_main_value($arr_zd,"2").",";
|
|
$m1=get_db_msg("select count(distinct uid) 'num_2' from ".$table_pre."log_hd where action>20 and action<25 and ".$sql_time."<='".$arr_sjd[$i1]."'");
|
|
$content1.=",\"num_".$i1."_".$j1."\":\"".add_0($m1["num_2"])."\"";
|
|
$data_tb_v2.=add_0($m1["num_2"]).",";
|
|
}
|
|
}
|
|
}
|
|
//合计
|
|
$data.="{\"xh\":\"合计\",\"id\":\"0\",\"kh\":\"\",\"total_num\":\"".$hj_total_num."\"".$content1."},";
|
|
//输出表格数据
|
|
$json_data.="\"code\":0,\"msg\":\"\",\"count\":".$i.",\"data\":[".deel_end($data)."],";
|
|
//输出图表数据
|
|
$data_tb_v1=deel_end($data_tb_v1);
|
|
$data_tb_v2=deel_end($data_tb_v2);
|
|
$tb_data_y="";
|
|
if($data_tb_v1)
|
|
$tb_data_y.=$data_tb_v1."|";
|
|
if($data_tb_v2)
|
|
$tb_data_y.=$data_tb_v2."|";
|
|
$tb_data_y=deel_end($tb_data_y);
|
|
$json_data.="\"chart_title\":\"订单趋势图\",";
|
|
$json_data.="\"chart_type\":\"line\",";
|
|
$json_data.="\"chart_data_x\":\"".$tb_data_x."\",";
|
|
$json_data.="\"chart_data_y\":\"".$tb_data_y."\",";
|
|
//
|
|
break;
|
|
//ok
|
|
case "client_qs":
|
|
//-----------------------tab
|
|
$str_tab="";
|
|
$i=0;
|
|
foreach($arr_report as $k => $v){
|
|
$str_tab.="{\"no\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$str_tab=deel_end($str_tab);
|
|
$json_data.="\"tab\":[".$str_tab."],";
|
|
//-----------------------/tab
|
|
$json_data.="\"s_cate\":\"".$_a."\",";
|
|
|
|
$s_con_time=$s_con_time?$s_con_time:"day";
|
|
//
|
|
$s_zd="";
|
|
foreach($arr_zd as $k => $v){
|
|
$var="zd_".$k;
|
|
if($$var=="on")
|
|
$s_zd.=$k.",";
|
|
}
|
|
$s_zd=deel_end($s_zd);
|
|
$s_zd=$s_zd?$s_zd:"1";
|
|
$arr_s_zd=explode(",",$s_zd);
|
|
$json_data.="\"s_zd\":\"".$s_zd."\",";
|
|
//时间条件选项
|
|
$tmp="";
|
|
foreach($arr_con_time as $k => $v){
|
|
$tmp.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"con_time\":[".deel_end($tmp)."],";
|
|
$json_data.="\"s_con_time\":\"".$s_con_time."\",";
|
|
|
|
//按照天的选项
|
|
$q="select substring(add_date,1,11) '_d' from ".$table_pre."log_hd where action>20 and action<25 group by _d order by _d";
|
|
$r=$db->query($q);
|
|
$tmp="";
|
|
while($m=$db->fetch_array($r)){
|
|
$tmp.="{\"val\":\"".$m["_d"]."\",\"title\":\"".deel_date_format("day",$m["_d"])."\"},";
|
|
}
|
|
$json_data.="\"con_day\":[".deel_end($tmp)."],";
|
|
$json_data.="\"s_day\":\"".$s_day."\",";
|
|
|
|
$json_data.="\"s_username\":\"".$s_username."\",";
|
|
|
|
//组合条件
|
|
if($s_con_time=="day"){
|
|
$sql_time="substring(add_date,1,11)";
|
|
$con_hour=" where action>20 and action<25";
|
|
}else if($s_con_time=="half_day"){
|
|
$sql_time="concat(substring(add_date,1,11),' ',case when substring(add_date,12,2)<13 then '1' when substring(add_date,12,2)<19 then '2' else '3' end)";
|
|
$con_hour=" where action>20 and action<25";
|
|
}else{
|
|
$sql_time="concat(substring(add_date,1,11),'',substring(add_date,12,2))";
|
|
$con_hour=" where action>20 and action<25 and substring(add_date,1,11)='".$s_day."'";
|
|
}
|
|
|
|
//取得时间段数据
|
|
$q="select ".$sql_time." as '_t' from ".$table_pre."log_hd".$con_hour." group by _t order by _t";
|
|
$r=$db->query($q);
|
|
$arr_sjd=array();
|
|
$tb_data_x="";
|
|
while($m=$db->fetch_array($r)){
|
|
$arr_sjd[]=$m["_t"];
|
|
$tb_data_x.=deel_date_format($s_con_time,$m["_t"]).",";
|
|
}
|
|
$tb_data_x=deel_end($tb_data_x);
|
|
|
|
$con1="";
|
|
if($s_username){
|
|
$m1=get_db_msg("select id,face,path from ".$table_pre."client where username='".$s_username."'");
|
|
if($m1["id"]>0){
|
|
if($m1["face"]=="4")
|
|
$con1.=" and c.id='".$m1["id"]."'";
|
|
else
|
|
$con1.=" and c.path='".$m1["path"]."-".$m1["id"]."'";
|
|
}else{
|
|
$con1.=" and c.id='0'";
|
|
}
|
|
}
|
|
//取得数据
|
|
$q="select b.uid 'uid',sum(case when b.action in (21,23) then b.num when b.action in (22,24) then -b.num else 0 end) 'num_1' from ".$table_pre."log_hd b,".$table_pre."client c where c.face='4' and b.uid=c.id ".$con1." and b.action>20 and b.action<25 group by b.uid order by num_1 desc";
|
|
//echo $q."<br>";
|
|
$r=$db->query($q);
|
|
$i=0;
|
|
$total_num=0;
|
|
$arr_data_js=array();
|
|
while($m=$db->fetch_array($r)){
|
|
//
|
|
$data_tb_v1="";
|
|
for($i1=0;$i1<count($arr_sjd);$i1++){
|
|
$m1=get_db_msg("select sum(case when action in (21,23) then num when action in (22,24) then -num else 0 end) 'num_1' from ".$table_pre."log_hd where uid='".$m["uid"]."' and ".$sql_time."<='".$arr_sjd[$i1]."'");
|
|
if(in_array("1",$arr_s_zd))
|
|
$data_tb_v1.=add_0($m1["num_1"]).",";
|
|
}
|
|
$data_tb_v1=substr($data_tb_v1,0,-1);
|
|
$arr_data_js[$m["uid"]]=$data_tb_v1;
|
|
$i++;
|
|
}
|
|
|
|
//-----------------------输出数据
|
|
//表头
|
|
$thead="";
|
|
//第一行
|
|
$tr="{\"title\":\"序号\",\"width\":80,\"align\":\"center\",\"rowspan\":2},{\"title\":\"店铺\",\"width\":80,\"align\":\"center\",\"rowspan\":2},{\"title\":\"总订量\",\"width\":70,\"align\":\"center\",\"rowspan\":2},";
|
|
for($i=0;$i<count($arr_sjd);$i++){
|
|
$tr.="{\"title\":\"".deel_date_format($s_con_time,$arr_sjd[$i])."\"";
|
|
if(count($arr_s_zd)>1)
|
|
$tr.=",\"colspan\":".count($arr_s_zd).",\"align\":\"center\"";
|
|
$tr.="},";
|
|
}
|
|
$thead.="{\"row\":0,\"tr\":[".deel_end($tr)."]},";
|
|
//第二行
|
|
$tr="";
|
|
for($i=0;$i<count($arr_sjd);$i++){
|
|
for($j=0;$j<count($arr_s_zd);$j++){
|
|
$tr.="{\"title\":\"".get_main_value($arr_zd,$arr_s_zd[$j])."\",\"align\":\"center\"},";
|
|
}
|
|
}
|
|
$thead.="{\"row\":1,\"tr\":[".deel_end($tr)."]}";
|
|
$json_data.="\"thead\":[".$thead."],";
|
|
|
|
//计算标准差
|
|
$arr_pc=array();
|
|
$i=0;
|
|
foreach($arr_data_js as $iid => $str_data_js){
|
|
$arr_pc[$iid]=get_pc(explode(",",$str_data_js));
|
|
$i++;
|
|
}
|
|
arsort($arr_pc);
|
|
|
|
//内容
|
|
$i=0;
|
|
$hj_total_num=0;
|
|
$data="";
|
|
foreach($arr_pc as $uid => $pc){
|
|
$m_client=get_db_msg("select username,title from ".$table_pre."client where id='".$uid."'");
|
|
$tmp=get_db_msg("select sum(num) 'num' from ".$table_pre."order where ka<>'y' and uid='".$uid."' and _key='".$_key."'");
|
|
$tmp_total_num=$tmp["num"];
|
|
$hj_total_num+=$tmp_total_num;
|
|
//
|
|
$content1="";
|
|
$arr_tmp_js=explode(",",$arr_data_js[$iid]);
|
|
for($i1=0;$i1<count($arr_tmp_js);$i1++){
|
|
$num_1=$arr_tmp_js[$i1];
|
|
for($j=0;$j<count($arr_s_zd);$j++){
|
|
$var="num_".$arr_s_zd[$j];
|
|
$content1.=",\"num_".$i1."_".$j."\":\"".add_0($$var)."\"";
|
|
}
|
|
$v="hj_".$i1;
|
|
$$v+=$num_1;
|
|
}
|
|
$list=$i+1;
|
|
$tb_data_y="";
|
|
if(in_array("1",$arr_s_zd))
|
|
$tb_data_y.=get_main_value($arr_zd,"1").",".$arr_data_js[$iid]."|";
|
|
$tb_data_y=deel_end($tb_data_y);
|
|
$data.="{\"xh\":\"".$list."\",\"title\":\"".$m_client["title"]."(".$m_client["username"].")"."\",\"tb_data_y\":\"".$tb_data_y."\",\"total_num\":\"".$tmp_total_num."\"".$content1."},";
|
|
$i++;
|
|
|
|
}
|
|
//合计
|
|
$data_tb_v1="";
|
|
$content1="";
|
|
for($i1=0;$i1<count($arr_sjd);$i1++){
|
|
$var="hj_".$i1;
|
|
for($j1=0;$j1<count($arr_s_zd);$j1++){
|
|
if($arr_s_zd[$j1]==1){
|
|
if($i1==0)
|
|
$data_tb_v1.=get_main_value($arr_zd,"1").",";
|
|
$content1.=",\"num_".$i1."_".$j1."\":\"".add_0($$var)."\"";
|
|
$data_tb_v1.=add_0($$var).",";
|
|
}
|
|
}
|
|
}
|
|
//合计
|
|
$data.="{\"xh\":\"合计\",\"title\":\"\",\"total_num\":\"".$hj_total_num."\"".$content1."},";
|
|
//输出表格数据
|
|
$json_data.="\"code\":0,\"msg\":\"\",\"count\":".$i.",\"data\":[".deel_end($data)."],";
|
|
//输出图表数据
|
|
$data_tb_v1=deel_end($data_tb_v1);
|
|
$tb_data_y="";
|
|
if($data_tb_v1)
|
|
$tb_data_y.=$data_tb_v1."|";
|
|
$tb_data_y=deel_end($tb_data_y);
|
|
$json_data.="\"chart_title\":\"客户订单趋势\",";
|
|
$json_data.="\"chart_type\":\"line\",";
|
|
$json_data.="\"chart_data_x\":\"".$tb_data_x."\",";
|
|
$json_data.="\"chart_data_y\":\"".$tb_data_y."\",";
|
|
|
|
break;
|
|
//ok
|
|
case "ms":
|
|
//-----------------------tab
|
|
$str_tab="";
|
|
$i=0;
|
|
foreach($arr_report as $k => $v){
|
|
$str_tab.="{\"no\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$str_tab=deel_end($str_tab);
|
|
$json_data.="\"tab\":[".$str_tab."],";
|
|
//-----------------------/tab
|
|
$json_data.="\"s_cate\":\"ms\",";
|
|
|
|
$s_con_time=$s_con_time?$s_con_time:"day";
|
|
//
|
|
$s_zd="";
|
|
foreach($arr_zd as $k => $v){
|
|
$var="zd_".$k;
|
|
if($$var=="on")
|
|
$s_zd.=$k.",";
|
|
}
|
|
$s_zd=deel_end($s_zd);
|
|
$s_zd=$s_zd?$s_zd:"1";
|
|
$arr_s_zd=explode(",",$s_zd);
|
|
//时间条件选项
|
|
$tmp="";
|
|
foreach($arr_con_time as $k => $v){
|
|
$tmp.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"con_time\":[".deel_end($tmp)."],";
|
|
$json_data.="\"s_con_time\":\"".$s_con_time."\",";
|
|
|
|
//按照天的选项
|
|
$q="select substring(add_date,1,11) '_d' from ".$table_pre."log_hd where action>20 and action<25 group by _d order by _d";
|
|
$r=$db->query($q);
|
|
$tmp="";
|
|
while($m=$db->fetch_array($r)){
|
|
$tmp.="{\"val\":\"".$m["_d"]."\",\"title\":\"".deel_date_format("day",$m["_d"])."\"},";
|
|
}
|
|
$json_data.="\"con_day\":[".deel_end($tmp)."],";
|
|
$json_data.="\"s_day\":\"".$s_day."\",";
|
|
//数据选项
|
|
$tmp="";
|
|
foreach($arr_zd as $k => $v){
|
|
$tmp.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"con_zd\":[".deel_end($tmp)."],";
|
|
$json_data.="\"s_zd\":\"".$s_zd."\",";
|
|
|
|
//取得数据
|
|
$arr_data=array();
|
|
if($s_con_time=="day"){
|
|
$sql_time="substring(add_date,1,11)";
|
|
$con_hour=" where action>20 and action<25";
|
|
}else if($s_con_time=="half_day"){
|
|
$sql_time="concat(substring(add_date,1,11),' ',case when substring(add_date,12,2)<13 then '1' when substring(add_date,12,2)<19 then '2' else '3' end)";
|
|
$con_hour=" where action>20 and action<25";
|
|
}else{
|
|
$sql_time="concat(substring(add_date,1,11),'',substring(add_date,12,2))";
|
|
$con_hour=" where action>20 and action<25 and substring(add_date,1,11)='".$s_day."'";
|
|
}
|
|
//取得时间段数据
|
|
$q="select ".$sql_time." as '_t' from ".$table_pre."log_hd".$con_hour." group by _t order by _t";
|
|
$r=$db->query($q);
|
|
$arr_sjd=array();
|
|
$tb_data_x="";
|
|
while($m=$db->fetch_array($r)){
|
|
$arr_sjd[]=$m["_t"];
|
|
$tb_data_x.=deel_date_format($s_con_time,$m["_t"]).",";
|
|
}
|
|
$tb_data_x=deel_end($tb_data_x);
|
|
//内容
|
|
$q="select ms from ".$table_pre."log_hd where ms<>'' group by ms order by ms";
|
|
$r=$db->query($q);
|
|
$i=0;
|
|
$total_num=0;
|
|
$arr_data_js=$arr_data_khs=array();
|
|
while($m=$db->fetch_array($r)){
|
|
$data_tb_v1=$data_tb_v2="";
|
|
for($i1=0;$i1<count($arr_sjd);$i1++){
|
|
$m1=get_db_msg("select sum(case when action in (21,23) then num when action in (22,24) then -num else 0 end) 'num_1',count(distinct uid) 'num_2' from ".$table_pre."log_hd where ms='".$m["ms"]."' and ".$sql_time."<='".$arr_sjd[$i1]."'");
|
|
$data_tb_v1.=add_0($m1["num_1"]).",";
|
|
$data_tb_v2.=add_0($m1["num_2"]).",";
|
|
}
|
|
$arr_data_js[$m["ms"]]=deel_end($data_tb_v1);
|
|
$arr_data_khs[$m["ms"]]=deel_end($data_tb_v2);
|
|
$i++;
|
|
}
|
|
//表头
|
|
$thead="";
|
|
//第一行
|
|
$tr="{\"title\":\"模式\",\"width\":80,\"align\":\"center\",\"rowspan\":2},";
|
|
for($i=0;$i<count($arr_sjd);$i++){
|
|
$tr.="{\"title\":\"".deel_date_format($s_con_time,$arr_sjd[$i])."\"";
|
|
if(count($arr_s_zd)>1)
|
|
$tr.=",\"colspan\":".count($arr_s_zd).",\"align\":\"center\"";
|
|
$tr.="},";
|
|
}
|
|
$thead.="{\"row\":0,\"tr\":[".deel_end($tr)."]},";
|
|
//第二行
|
|
$tr="";
|
|
for($i=0;$i<count($arr_sjd);$i++){
|
|
for($j=0;$j<count($arr_s_zd);$j++){
|
|
$tr.="{\"title\":\"".get_main_value($arr_zd,$arr_s_zd[$j])."\",\"align\":\"center\"},";
|
|
}
|
|
}
|
|
$thead.="{\"row\":1,\"tr\":[".deel_end($tr)."]}";
|
|
$json_data.="\"thead\":[".$thead."],";
|
|
|
|
//计算标准差
|
|
$arr_pc=array();
|
|
$i=0;
|
|
foreach($arr_data_js as $iid => $str_data_js){
|
|
$arr_pc[$iid]=get_pc(explode(",",$str_data_js));
|
|
$i++;
|
|
}
|
|
arsort($arr_pc);
|
|
|
|
//内容
|
|
$i=0;
|
|
$data="";
|
|
foreach($arr_pc as $iid => $pc){
|
|
//
|
|
$content1="";
|
|
$arr_tmp_js=explode(",",$arr_data_js[$iid]);
|
|
$arr_tmp_khs=explode(",",$arr_data_khs[$iid]);
|
|
for($i1=0;$i1<count($arr_tmp_js);$i1++){
|
|
$num_1=$arr_tmp_js[$i1];
|
|
$num_2=$arr_tmp_khs[$i1];
|
|
for($j=0;$j<count($arr_s_zd);$j++){
|
|
$var="num_".$arr_s_zd[$j];
|
|
$content1.=",\"num_".$i1."_".$j."\":\"".add_0($$var)."\"";
|
|
}
|
|
$v="hj_".$i1;
|
|
$$v+=$num_1;
|
|
}
|
|
$list=$i+1;
|
|
$tb_data_y="";
|
|
if(in_array("1",$arr_s_zd))
|
|
$tb_data_y.=get_main_value($arr_zd,"1").",".$arr_data_js[$iid]."|";
|
|
if(in_array("2",$arr_s_zd))
|
|
$tb_data_y.=get_main_value($arr_zd,"2").",".$arr_data_khs[$iid]."|";
|
|
$tb_data_y=deel_end($tb_data_y);
|
|
$data.="{\"tb_data_y\":\"".$tb_data_y."\",\"ms\":\"".$iid."\"".$content1."},";
|
|
$i++;
|
|
}
|
|
|
|
//合计
|
|
$data_tb_v1="";
|
|
$data_tb_v2="";
|
|
$content1="";
|
|
for($i1=0;$i1<count($arr_sjd);$i1++){
|
|
$var="hj_".$i1;
|
|
for($j1=0;$j1<count($arr_s_zd);$j1++){
|
|
if($arr_s_zd[$j1]==1){
|
|
if($i1==0)
|
|
$data_tb_v1.=get_main_value($arr_zd,"1").",";
|
|
$content1.=",\"num_".$i1."_".$j1."\":\"".add_0($$var)."\"";
|
|
$data_tb_v1.=add_0($$var).",";
|
|
}else if($arr_s_zd[$j1]==2){
|
|
if($i1==0)
|
|
$data_tb_v2.=get_main_value($arr_zd,"2").",";
|
|
$m1=get_db_msg("select count(distinct uid) 'num_2' from ".$table_pre."log_hd where action>20 and action<25 and ".$sql_time."<='".$arr_sjd[$i1]."'");
|
|
$content1.=",\"num_".$i1."_".$j1."\":\"".add_0($m1["num_2"])."\"";
|
|
$data_tb_v2.=add_0($m1["num_2"]).",";
|
|
}
|
|
}
|
|
}
|
|
//合计
|
|
$data.="{\"ms\":\"合计\"".$content1."},";
|
|
//输出表格数据
|
|
$json_data.="\"code\":0,\"msg\":\"\",\"count\":".$i.",\"data\":[".deel_end($data)."],";
|
|
//输出图表数据
|
|
$data_tb_v1=deel_end($data_tb_v1);
|
|
$data_tb_v2=deel_end($data_tb_v2);
|
|
$tb_data_y="";
|
|
if($data_tb_v1)
|
|
$tb_data_y.=$data_tb_v1."|";
|
|
if($data_tb_v2)
|
|
$tb_data_y.=$data_tb_v2."|";
|
|
$tb_data_y=deel_end($tb_data_y);
|
|
$json_data.="\"chart_title\":\"订单模式趋势图\",";
|
|
$json_data.="\"chart_type\":\"line\",";
|
|
$json_data.="\"chart_data_x\":\"".$tb_data_x."\",";
|
|
$json_data.="\"chart_data_y\":\"".$tb_data_y."\",";
|
|
|
|
break;
|
|
//ok
|
|
case "delete":
|
|
$id=(is_array($id))?$id:array($id);
|
|
$num=count($id);
|
|
for($i=0;$i<$num;$i++){
|
|
$tmp=get_db_msg("select * from ".$table_pre."log_hd where id='".$id[$i]."'");
|
|
$db->query("delete from ".$table_pre."log_hd where id='".$id[$i]."'");
|
|
$lid.=$tmp["uid"]."|".$id[$i].", ";
|
|
}
|
|
$lid=substr($lid,0,-2);
|
|
set_log("删除客户行为",$lid);
|
|
$json_data.="\"code\":1,";
|
|
break;
|
|
//ok
|
|
case "ks_active":
|
|
//-----------------------tab
|
|
$str_tab="";
|
|
$i=0;
|
|
foreach($arr_report as $k => $v){
|
|
$str_tab.="{\"no\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$str_tab=deel_end($str_tab);
|
|
$json_data.="\"tab\":[".$str_tab."],";
|
|
//-----------------------/tab
|
|
$json_data.="\"s_cate\":\"ks_active\",";
|
|
//
|
|
$s_order_by=$s_order_by?$s_order_by:"num";
|
|
|
|
|
|
//排序
|
|
$arr_order_by=array("num"=>"活跃度","add_date"=>"最后操作时间");
|
|
$tmp_order_by="";
|
|
foreach($arr_order_by as $k=>$v){
|
|
$tmp_order_by.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"select_order_by\":[".deel_end($tmp_order_by)."],";
|
|
$json_data.="\"s_order_by\":\"".$s_order_by."\",";
|
|
//
|
|
$json_data.="\"s_xh\":\"".$s_xh."\",";
|
|
$json_data.="\"s_no\":\"".$s_no."\",";
|
|
//
|
|
$arrzd=$s_zd?explode(",",$s_zd):array("xh","bc","category");
|
|
$th_zd="";
|
|
$zd_ct=0;
|
|
foreach($arr_zd_kh as $k1 => $v1){
|
|
if(in_array($k1,$arrzd)){
|
|
$sign="y";
|
|
$zd_ct++;
|
|
}else{
|
|
$sign="n";
|
|
}
|
|
$th_zd.="{\"no\":\"".$k1."\",\"title\":\"".$v1."\",\"sign\":\"".$sign."\"},";
|
|
}
|
|
$json_data.="\"th_zd\":[".substr($th_zd,0,-1)."],";
|
|
|
|
//-----------------------/search
|
|
$thead_str="";
|
|
$thead_str.="{\"zd\":\"list\",\"title\":\"次序\"},";
|
|
$thead_str.="{\"zd\":\"no\",\"title\":\"款号\"},";
|
|
$colnum=0;
|
|
foreach($arr_zd_kh as $k1 => $v1){
|
|
if(in_array($k1,$arrzd)){
|
|
$thead_str.="{\"zd\":\"".$k1."\",\"title\":\"".get_main_value($arr_zd_kh,$k1)."\"},";
|
|
$colnum++;
|
|
}
|
|
}
|
|
$thead_str.="{\"zd\":\"hyd\",\"title\":\"活跃度\"},";
|
|
$thead_str.="{\"zd\":\"lasttime\",\"title\":\"最后操作时间\"}";
|
|
$json_data.="\"thead_str\":[".$thead_str."],";
|
|
|
|
$json_code="\"codeerr\":1,";
|
|
$sql_con="";
|
|
if($s_xh){
|
|
$tmp=get_db_msg("select id from ".$table_pre."kh where xh='".$s_xh."'");
|
|
if($tmp["id"]>0){
|
|
$sql_con.=" and a.iid='".$tmp["id"]."'";
|
|
}else{
|
|
$json_code="\"codeerr\":0,\"msgerr\":\"序号有误\",";
|
|
}
|
|
}
|
|
if($s_no){
|
|
$sql_con.=" and b.no like '%".$s_no."%'";
|
|
}
|
|
$json_data.=$json_code;
|
|
//
|
|
$query="select a.iid 'iid',count(a.iid) 'num',max(a.add_date) 'add_date',b.no 'no',b.xh 'xh' from ".$table_pre."log_hd a, ".$table_pre."kh b where a.iid=b.id and a.action<>'51' and a.iid>0".$sql_con." group by a.iid order by ".$s_order_by." desc";
|
|
//echo $query."<br>";
|
|
$res=$db->query($query);
|
|
$count=0;
|
|
$total_num=0;
|
|
while($m=$db->fetch_array($res)){
|
|
$list=$count+1;
|
|
$m1=get_db_msg("select * from ".$table_pre."kh where id='".$m["iid"]."'");
|
|
$total_num+=$m["num"];
|
|
//图片获取规则
|
|
$pic=get_kh_picture($m1["no"],$m1["main_pic"],$m1["color"]);
|
|
$tbody_str.="{";
|
|
$tbody_str.="\"id\":\"".$m["iid"]."\",";
|
|
$tbody_str.="\"list\":\"".$list."\",";
|
|
$tbody_str.="\"no\":\"".$m1["no"]."\",";
|
|
$tbody_str.="\"khpic\":\"".$pic."\",";
|
|
foreach($arr_zd_kh as $k1 => $v1){
|
|
if(in_array($k1,$arrzd)){
|
|
if($k1=="title" || $k1=="price" || $k1=="xh"){
|
|
$tbody_str.="\"".$k1."\":\"".deel_td($m1[$k1])."\",";
|
|
}else{
|
|
$tbody_str.="\"".$k1."\":\"".deel_td(get_cate_title_no($k1,$m1[$k1]))."\",";
|
|
}
|
|
}
|
|
}
|
|
$tbody_str.="\"hyd\":\"".$m["num"]."\",";
|
|
$tbody_str.="\"lasttime\":\"".deel_add_date($m["add_date"])."\"";
|
|
$tbody_str.="},";
|
|
$count++;
|
|
}
|
|
$json_data.="\"tbody_str\":[".substr($tbody_str,0,-1)."],";
|
|
$json_data.="\"total_num\":\"".$total_num."\",";
|
|
$json_data.="\"hjcol\":\"".($colnum+2)."\",";
|
|
break;
|
|
//ok
|
|
case "client_active":
|
|
//-----------------------tab
|
|
$str_tab="";
|
|
$i=0;
|
|
foreach($arr_report as $k => $v){
|
|
$str_tab.="{\"no\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$str_tab=deel_end($str_tab);
|
|
$json_data.="\"tab\":[".$str_tab."],";
|
|
//-----------------------/tab
|
|
$json_data.="\"s_cate\":\"client_active\",";
|
|
|
|
$s_order_by=$s_order_by?$s_order_by:"num";
|
|
//
|
|
$tmp_client_face="";
|
|
foreach($arr_client_face as $k=>$v){
|
|
$tmp_client_face.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"select_client_face\":[".deel_end($tmp_client_face)."],";
|
|
$json_data.="\"s_face\":\"".$s_face."\",";
|
|
//客户端
|
|
$arr_khd=array("ipad"=>"ipad","pad8"=>"pad8","mobile"=>"mobile");
|
|
$tmp_khd="";
|
|
foreach($arr_khd as $k=>$v){
|
|
$tmp_khd.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"select_khd\":[".deel_end($tmp_khd)."],";
|
|
$json_data.="\"s_khd\":\"".$s_khd."\",";
|
|
//排序
|
|
$arr_order_by=array("num"=>"活跃度","add_date"=>"最后操作时间");
|
|
$tmp_order_by="";
|
|
foreach($arr_order_by as $k=>$v){
|
|
$tmp_order_by.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"select_order_by\":[".deel_end($tmp_order_by)."],";
|
|
$json_data.="\"s_order_by\":\"".$s_order_by."\",";
|
|
//
|
|
$json_data.="\"s_username\":\"".$s_username."\",";
|
|
$json_data.="\"s_title\":\"".$s_title."\",";
|
|
//-----------------------/search
|
|
//表头
|
|
$thead_str="";
|
|
$thead_str.="{\"zd\":\"list\",\"title\":\"次序\"},";
|
|
$thead_str.="{\"zd\":\"kh\",\"title\":\"客户\"},";
|
|
$thead_str.="{\"zd\":\"juese\",\"title\":\"角色\"},";
|
|
$thead_str.="{\"zd\":\"client\",\"title\":\"客户端\"},";
|
|
$thead_str.="{\"zd\":\"hyd\",\"title\":\"活跃度\"},";
|
|
$thead_str.="{\"zd\":\"lasttime\",\"title\":\"最后操作时间\"},";
|
|
$json_data.="\"thead_str\":[".substr($thead_str,0,-1)."],";
|
|
|
|
$sql_con="";
|
|
if($s_username){
|
|
$sql_con.=" and b.username like '%".$s_username."%'";
|
|
}
|
|
if($s_title){
|
|
$sql_con.=" and b.title like '%".$s_title."%'";
|
|
}
|
|
if($s_khd){
|
|
$sql_con.=" and a.hd_type='".$s_khd."'";
|
|
}
|
|
if($s_face){
|
|
$sql_con.=" and b.face='".$s_face."'";
|
|
}
|
|
//
|
|
$tbody_str="";
|
|
$query="select a.uid 'uid',a.hd_type 'hd_type',count(a.uid) 'num',max(a.add_date) 'add_date',b.face 'face',b.username 'username',b.title 'title' from ".$table_pre."log_hd a, ".$table_pre."client b where a.uid=b.id".$sql_con." group by a.uid order by ".$s_order_by." desc";
|
|
//echo $query."<br>";
|
|
$res=$db->query($query);
|
|
$count=0;
|
|
$total_num=0;
|
|
while($m=$db->fetch_array($res)){
|
|
$list=$count+1;
|
|
$total_num+=$m["num"];
|
|
$tbody_str.="{";
|
|
$tbody_str.="\"id\":\"".$m["uid"]."\",";
|
|
$tbody_str.="\"list\":\"".$list."\",";
|
|
$tbody_str.="\"kh\":\"".$m["title"]."(".$m["username"].")\",";
|
|
$tbody_str.="\"juese\":\"".get_main_value($arr_client_face,$m["face"])."\",";
|
|
$tbody_str.="\"client\":\"".$m["hd_type"]."\",";
|
|
$tbody_str.="\"hyd\":\"".$m["num"]."\",";
|
|
$tbody_str.="\"lasttime\":\"".deel_add_date($m["add_date"])."\"";
|
|
$tbody_str.="},";
|
|
$count++;
|
|
}
|
|
$json_data.="\"tbody_str\":[".substr($tbody_str,0,-1)."],";
|
|
$json_data.="\"total_num\":\"".$total_num."\",";
|
|
break;
|
|
//ok
|
|
case "hd_active":
|
|
//-----------------------tab
|
|
$str_tab="";
|
|
$i=0;
|
|
foreach($arr_report as $k => $v){
|
|
$str_tab.="{\"no\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$str_tab=deel_end($str_tab);
|
|
$json_data.="\"tab\":[".$str_tab."],";
|
|
//-----------------------/tab
|
|
$json_data.="\"s_cate\":\"hd_active\",";
|
|
|
|
$s_order_by=$s_order_by?$s_order_by:"num";
|
|
|
|
//排序
|
|
$arr_order_by=array("num"=>"活跃度","add_date"=>"最后操作时间");
|
|
$tmp_order_by="";
|
|
foreach($arr_order_by as $k=>$v){
|
|
$tmp_order_by.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"select_order_by\":[".deel_end($tmp_order_by)."],";
|
|
$json_data.="\"s_order_by\":\"".$s_order_by."\",";
|
|
$json_data.="\"s_ip\":\"".$s_ip."\",";
|
|
//-----------------------/search
|
|
//表头
|
|
$thead_str="";
|
|
$thead_str.="{\"zd\":\"list\",\"title\":\"次序\"},";
|
|
$thead_str.="{\"zd\":\"ipaddress\",\"title\":\"IP地址\"},";
|
|
$thead_str.="{\"zd\":\"lx\",\"title\":\"类型\"},";
|
|
$thead_str.="{\"zd\":\"hyd\",\"title\":\"活跃度\"},";
|
|
$thead_str.="{\"zd\":\"lasttime\",\"title\":\"最后操作时间\"},";
|
|
$json_data.="\"thead_str\":[".substr($thead_str,0,-1)."],";
|
|
//
|
|
$sql_con="";
|
|
if($s_ip){
|
|
$sql_con.=" where ip like '%".$s_ip."%'";
|
|
}
|
|
$query="select ip,hd_type,count(ip) 'num',max(add_date) 'add_date' from ".$table_pre."log_hd ".$sql_con." group by ip order by ".$s_order_by." desc";
|
|
//echo $query."<br>";
|
|
$res=$db->query($query);
|
|
$count=0;
|
|
$total_num=0;
|
|
while($m=$db->fetch_array($res)){
|
|
$list=$count+1;
|
|
$total_num+=$m["num"];
|
|
|
|
$tbody_str.="{";
|
|
$tbody_str.="\"list\":\"".$list."\",";
|
|
$tbody_str.="\"ipaddress\":\"".$m["ip"]."\",";
|
|
$tbody_str.="\"lx\":\"".$m["hd_type"]."\",";
|
|
$tbody_str.="\"hyd\":\"".$m["num"]."\",";
|
|
$tbody_str.="\"lasttime\":\"".deel_add_date($m["add_date"])."\"";
|
|
$tbody_str.="},";
|
|
$count++;
|
|
|
|
}
|
|
$json_data.="\"tbody_str\":[".substr($tbody_str,0,-1)."],";
|
|
$json_data.="\"total_num\":\"".$total_num."\",";
|
|
break;
|
|
//ok
|
|
case "detail":
|
|
//-----------------------tab
|
|
$str_tab="";
|
|
$i=0;
|
|
foreach($arr_report as $k => $v){
|
|
$str_tab.="{\"no\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$str_tab=deel_end($str_tab);
|
|
$json_data.="\"tab\":[".$str_tab."],";
|
|
//-----------------------/tab
|
|
$json_data.="\"s_cate\":\"detail\",";
|
|
|
|
//
|
|
$page=$page>0?$page:1;
|
|
$limit=$limit>0?$limit:10;
|
|
$start=($page-1)*$limit;
|
|
$end=$limit;
|
|
//
|
|
$json_data.="\"s_username\":\"".$s_username."\",";
|
|
$json_data.="\"s_no\":\"".$s_no."\",";
|
|
$json_data.="\"s_ip\":\"".$s_ip."\",";
|
|
//
|
|
$tmp_client_face="";
|
|
foreach($arr_client_face as $k=>$v){
|
|
$tmp_client_face.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"select_client_face\":[".deel_end($tmp_client_face)."],";
|
|
$json_data.="\"s_face\":\"".$s_face."\",";
|
|
//客户端
|
|
$arr_khd=array("ipad"=>"ipad","pad8"=>"pad8","mobile"=>"mobile");
|
|
$tmp_khd="";
|
|
foreach($arr_khd as $k=>$v){
|
|
$tmp_khd.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"select_khd\":[".deel_end($tmp_khd)."],";
|
|
$json_data.="\"s_khd\":\"".$s_khd."\",";
|
|
//
|
|
$tmp_ms="";
|
|
$q="select ms from ".$table_pre."log_hd group by ms order by ms";
|
|
$r=$db->query($q);
|
|
while($m=$db->fetch_array($r)){
|
|
$tmp_ms.="{\"val\":\"".$m["ms"]."\",\"title\":\"".$m["ms"]."\"},";
|
|
}
|
|
$json_data.="\"select_ms\":[".deel_end($tmp_ms)."],";
|
|
$json_data.="\"s_ms\":\"".$s_ms."\",";
|
|
//
|
|
$tmp_action="";
|
|
foreach($arr_log_hd_action as $k=>$v){
|
|
$tmp_action.="{\"val\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$json_data.="\"select_action\":[".deel_end($tmp_action)."],";
|
|
$json_data.="\"s_action\":\"".$s_action."\",";
|
|
|
|
//
|
|
$sql_con="";
|
|
if($s_ip || $s_username || $s_no || $s_face || $s_khd || $s_ms || $s_action){
|
|
if($s_khd)
|
|
$sql_con.=" and a.hd_type='".$s_khd."'";
|
|
if($s_face)
|
|
$sql_con.=" and b.face='".$s_face."'";
|
|
if($s_ms)
|
|
$sql_con.=" and a.ms='".$s_ms."'";
|
|
if($s_action)
|
|
$sql_con.=" and a.action='".$s_action."'";
|
|
if($s_username)
|
|
$sql_con.=" and b.username='".$s_username."'";
|
|
if($s_no){
|
|
$tmp=get_db_msg("select id from ".$table_pre."kh where no like '%".$s_no."%' order by xh limit 0,1");
|
|
$sql_con.=" and a.iid='".$tmp["id"]."'";
|
|
}
|
|
if($s_ip)
|
|
$sql_con.=" and a.ip like '%".$s_ip."%'";
|
|
}
|
|
if($s_no && $s_username)
|
|
$sql_order="uid,iid,add_date";
|
|
else if($s_no)
|
|
$sql_order="uid,add_date";
|
|
else if($s_username)
|
|
$sql_order="iid,add_date";
|
|
else
|
|
$sql_order="add_date desc";
|
|
|
|
//取得总条数
|
|
$tmp=get_db_msg("select count(*) 'num' from ".$table_pre."log_hd a,".$table_pre."client b where a.uid=b.id ".$sql_con);
|
|
$total_num=$tmp["num"];
|
|
|
|
$json_data.="\"code\":0,\"msg\":\"\",\"count\":".$total_num.",\"data\":[";
|
|
//
|
|
$query="select a.id 'id',a.iid 'iid',a.action 'action',a.ms 'ms',a.num 'num',a.hd_type 'khd',a.ip 'ip',a.add_date 'add_date',b.face 'face',b.username 'username',b.title 'title' from ".$table_pre."log_hd a,".$table_pre."client b where a.uid=b.id ".$sql_con."order by ".$sql_order." limit ".$start.",".$end;
|
|
//echo $query."<br>";
|
|
$res=$db->query($query);
|
|
$count=1;
|
|
$str_tmp="";
|
|
while($msg=$db->fetch_array($res)){
|
|
$list=$count+$start;
|
|
$str_tmp.="{";
|
|
$str_tmp.="\"id\":\"".$msg["id"]."\",";
|
|
$str_tmp.="\"list\":\"".$list."\",";
|
|
$str_tmp.="\"juese\":\"".get_main_value($arr_client_face,$msg["face"])."\",";
|
|
$str_tmp.="\"kh\":\"".$msg["title"]."(".$msg["username"].")\",";
|
|
$str_tmp.="\"client\":\"".$msg["khd"]."\",";
|
|
$str_tmp.="\"ipaddress\":\"".$msg["ip"]."\",";
|
|
$str_tmp.="\"ms\":\"".$msg["ms"]."\",";
|
|
$str_tmp.="\"action1\":\"".get_main_value($arr_log_hd_action,$msg["action"])."\",";
|
|
if($msg["action"]=="21" || $msg["action"]=="22" || $msg["action"]=="23" || $msg["action"]=="24" || $msg["action"]=="61" || $msg["action"]=="62"){
|
|
$tmp=get_db_msg("select * from ".$table_pre."kh where id='".$msg["iid"]."'");
|
|
$str_tmp.="\"object1\":\"".$tmp["no"]."\",";
|
|
}else{
|
|
$str_tmp.="\"object1\":\" \",";
|
|
}
|
|
$str_tmp.="\"num\":\"".deel_0($msg["num"])."\",";
|
|
$str_tmp.="\"cztime\":\"".$msg["add_date"]."\"";
|
|
$str_tmp.="},";
|
|
$count++;
|
|
}
|
|
$json_data.=substr($str_tmp,0,-1)."],";
|
|
break;
|
|
//ok
|
|
case "top":
|
|
$s_con_time=$s_con_time?$s_con_time:"half_day";
|
|
$s_zd=$s_zd?$s_zd:array("1");
|
|
$json_data.="\"s_cate\":\"top\",";
|
|
$json_data.="\"s_con_time\":\"".$s_con_time."\",";
|
|
//-----------------------tab
|
|
$str_tab="";
|
|
$i=0;
|
|
foreach($arr_report as $k => $v){
|
|
$str_tab.="{\"no\":\"".$k."\",\"title\":\"".$v."\"},";
|
|
}
|
|
$str_tab=deel_end($str_tab);
|
|
$json_data.="\"tab\":[".$str_tab."],";
|
|
//-----------------------/tab
|
|
//取得数据
|
|
if($s_con_time=="day"){
|
|
$sql_time="substring(add_date,1,11)";
|
|
}else if($s_con_time=="half_day"){
|
|
$sql_time="concat(substring(add_date,1,11),' ',case when substring(add_date,12,2)<13 then '1' when substring(add_date,12,2)<19 then '2' else '3' end)";
|
|
}
|
|
//取得时间段数据
|
|
$q="select ".$sql_time." as '_t' from ".$table_pre."log_hd".$con_hour." group by _t order by _t";
|
|
$r=$db->query($q);
|
|
$arr_sjd=array();
|
|
$data_tb_l="";
|
|
while($m=$db->fetch_array($r)){
|
|
$arr_sjd[]=$m["_t"];
|
|
$data_tb_l.=deel_date_format($s_con_time,$m["_t"]).",";
|
|
}
|
|
if($data_tb_l)
|
|
$data_tb_l=substr($data_tb_l,0,-1);
|
|
//内容
|
|
$q="select sum(case when action in (21,23) then num when action in (22,24) then -num else 0 end) 'num_1',".$sql_time." '_d' from ".$table_pre."log_hd where action>20 and action<25 group by _d order by _d";
|
|
//echo $q."<br>";
|
|
$r=$db->query($q);
|
|
$total1=0;
|
|
$arr1=$arr_label=array();
|
|
$i=0;
|
|
while($m=$db->fetch_array($r)){
|
|
$arr_label[$i]=deel_date_format($s_con_time,$m["_d"]);
|
|
$arr1[$i]=$m["num_1"];
|
|
$total1+=$m["num_1"];
|
|
$i++;
|
|
}
|
|
$tb_data_x="";
|
|
$tb_data_y=",";
|
|
for($i=0;$i<count($arr1);$i++){
|
|
$tb_data_x.=$arr_label[$i].",";
|
|
$tb_data_y.=str_replace("%","",deel_bfb($arr1[$i],$total1)).",";
|
|
}
|
|
$tb_data_y=deel_end($tb_data_y);
|
|
$tb_data_x=deel_end($tb_data_x);
|
|
$json_data.="\"chart_title\":\"订单量分布\",";
|
|
$json_data.="\"chart_type\":\"pie\",";
|
|
$json_data.="\"chart_data_x\":\"".$tb_data_x."\",";
|
|
$json_data.="\"chart_data_y\":\"".$tb_data_y."\",";
|
|
$json_data.="\"code\":0,\"msg\":\"\",\"count\":4,\"data\":[";
|
|
$tmp=get_db_msg("select count(distinct(uid)) 'num' from ".$table_pre."log_hd");
|
|
$json_data.="{\"no\":\"1\",\"title\":\"累计使用系统人数".$tmp["num"]."人。\"},";
|
|
$tmp=get_db_msg("select substring(add_date,1,15) '_d',count(distinct(uid)) 'num' from ".$table_pre."log_hd group by _d order by num desc limit 0,1");
|
|
$json_data.="{\"no\":\"2\",\"title\":\"系统实时最高在线人数".$tmp["num"]."人,发生在".deel_date_format("minute",$tmp["_d"])."。\"},";
|
|
$tmp=get_db_msg("select substring(add_date,1,13) '_d',sum(case when action in (21,23) then num when action in (22,24) then -num else 0 end) 'num' from ".$table_pre."log_hd group by _d order by num desc limit 0,1");
|
|
$json_data.="{\"no\":\"3\",\"title\":\"小时最高订单量".$tmp["num"]."件,发生在".deel_date_format("hour",$tmp["_d"])."。\"},";
|
|
$tmp=get_db_msg("select concat(substring(add_date,1,11),' ',case when substring(add_date,12,2)<13 then '1' when substring(add_date,12,2)<19 then '2' else '3' end) '_d',sum(case when action in (21,23) then num when action in (22,24) then -num else 0 end) 'num' from ".$table_pre."log_hd group by _d order by num desc limit 0,1");
|
|
$json_data.="{\"no\":\"4\",\"title\":\"半天最高订单量".$tmp["num"]."件,发生在".deel_date_format("half_day",$tmp["_d"])."。\"}";
|
|
$json_data.="],";
|
|
//
|
|
break;
|
|
}
|
|
}
|
|
$json_data=substr($json_data,0,-1)."}";
|
|
echo $json_data;
|
|
?>
|