93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						||
 | 
						||
namespace app\common\model\school\classes;
 | 
						||
 | 
						||
use app\common\model\BaseModel;
 | 
						||
use think\Model;
 | 
						||
 | 
						||
 | 
						||
class VisitDistribution extends BaseModel
 | 
						||
{
 | 
						||
 | 
						||
    
 | 
						||
 | 
						||
    
 | 
						||
 | 
						||
    // 表名
 | 
						||
    protected $name = 'school_visit_distribution';
 | 
						||
    
 | 
						||
    // 自动写入时间戳字段
 | 
						||
    protected $autoWriteTimestamp = 'integer';
 | 
						||
 | 
						||
    // 定义时间戳字段名
 | 
						||
    protected $createTime = 'createtime';
 | 
						||
    protected $updateTime = false;
 | 
						||
    protected $deleteTime = false;
 | 
						||
 | 
						||
    // 追加属性
 | 
						||
    protected $append = [
 | 
						||
        'index_text',
 | 
						||
        'statistics_time_text'
 | 
						||
    ];
 | 
						||
    
 | 
						||
 | 
						||
    
 | 
						||
    public function getIndexList()
 | 
						||
    {
 | 
						||
        return ['access_source_session_cnt' => __('Index access_source_session_cnt'), 'access_staytime_info' => __('Index access_staytime_info'), 'access_depth_info' => __('Index access_depth_info')];
 | 
						||
    }
 | 
						||
 | 
						||
 | 
						||
    public function getIndexTextAttr($value, $data)
 | 
						||
    {
 | 
						||
        $value = $value ? $value : (isset($data['index']) ? $data['index'] : '');
 | 
						||
        $list = $this->getIndexList();
 | 
						||
        return isset($list[$value]) ? $list[$value] : '';
 | 
						||
    }
 | 
						||
 | 
						||
 | 
						||
    public function getStatisticsTimeTextAttr($value, $data)
 | 
						||
    {
 | 
						||
        $value = $value ? $value : (isset($data['statistics_time']) ? $data['statistics_time'] : '');
 | 
						||
        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
 | 
						||
    }
 | 
						||
 | 
						||
    protected function setStatisticsTimeAttr($value)
 | 
						||
    {
 | 
						||
        return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
 | 
						||
    }
 | 
						||
 | 
						||
 | 
						||
    public static function setlog($begin_date,$end_date,$res){
 | 
						||
        if(!isset($res["ref_date"]) || !isset($res["list"]))return false;
 | 
						||
        //statistics_time = 开始时间的时间戳
 | 
						||
         //begin_date 和 end_date如果带字符串‘-’ 则去除
 | 
						||
        $begin_date = str_replace("-","",$begin_date);
 | 
						||
        $end_date = str_replace("-","",$end_date);
 | 
						||
        $data = [
 | 
						||
            "ref_date"=>$res["ref_date"],
 | 
						||
            "begin_date" =>$begin_date,
 | 
						||
            "end_date" =>$end_date,
 | 
						||
            "miniapp_id"=>config("site.wx_miniapp_id"),
 | 
						||
            "statistics_time" => strtotime($res["ref_date"]." 0:0:0"),
 | 
						||
        ];
 | 
						||
 | 
						||
       $list = $res["list"];
 | 
						||
        foreach ($list as $k=>$v){
 | 
						||
            if(isset($v['index']) && isset($v['item_list'])){
 | 
						||
                     foreach ($v['item_list'] as $kk=>$vv){
 | 
						||
                         $data["index"] = $v['index'];
 | 
						||
                         $data["key"] = $vv['key'];
 | 
						||
                         $data["value"] = $vv['value'];
 | 
						||
//                         var_dump(!self::where($data)->find());
 | 
						||
                         if(!self::where($data)->find()){
 | 
						||
 | 
						||
                             self::create($data);
 | 
						||
                         }
 | 
						||
                     }
 | 
						||
            }
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
}
 |