107 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace app\common\library;
 | 
						|
 | 
						|
use app\common\model\school\classes\VirtualHead;
 | 
						|
use app\common\model\school\classes\VirtualUser;
 | 
						|
 | 
						|
/**
 | 
						|
 *  虚拟数据工具类
 | 
						|
 */
 | 
						|
class Virtual
 | 
						|
{
 | 
						|
 | 
						|
    /** 获得虚拟昵称
 | 
						|
     * @return mixed|string
 | 
						|
     */
 | 
						|
    public function getNickName(){
 | 
						|
        $str = config("site.virtual_nickname");
 | 
						|
        $arr = explode("##",$str);
 | 
						|
        $r = rand(0,sizeof($arr));
 | 
						|
        return $arr[$r];
 | 
						|
    }
 | 
						|
 | 
						|
    public function getVirtualUser($num=10,$classes_lib_id = 0,$time=null,$set=false){
 | 
						|
        if(!is_numeric($time)) $time =  strtotime($time); //日期字符格式化时间戳
 | 
						|
 | 
						|
        $users = [];
 | 
						|
        if(!$time)$time = time();
 | 
						|
        //mysql随机查询$num个数据
 | 
						|
        $virtualHead  = VirtualHead::orderRaw("rand()")->limit($num)->select();
 | 
						|
        //随机获得$num个虚拟用户昵称和头像
 | 
						|
        foreach($virtualHead as $k=>$v) {
 | 
						|
            $nickname = $this->getNickName();
 | 
						|
            $head = $v->head_image;
 | 
						|
            $r = rand(($time - 86400*7),$time);
 | 
						|
 | 
						|
            $users[] = [
 | 
						|
                "nickname"=>$nickname,
 | 
						|
                "head_image"=>$head,
 | 
						|
                "time"=>$r,
 | 
						|
                "jointype" => "1",
 | 
						|
                "havetype" => "".($k % 2)
 | 
						|
            ];
 | 
						|
        }
 | 
						|
 | 
						|
        if(!$set){
 | 
						|
            return $users;
 | 
						|
        }else{
 | 
						|
 | 
						|
            $user_data=[];
 | 
						|
            foreach($users as $k=> $user) {
 | 
						|
                $r = rand(($time - 86400*7),$time);
 | 
						|
                $user_data[] = [
 | 
						|
                    "nickname"=>$user["nickname"],
 | 
						|
                    "head_image"=>$user["head_image"],
 | 
						|
                    "classes_lib_id"=>$classes_lib_id,
 | 
						|
                    "time"=>$r,
 | 
						|
                    "jointype" => "1",
 | 
						|
                    "havetype" => $user["havetype"]
 | 
						|
                ];
 | 
						|
            }
 | 
						|
            (new VirtualUser)->saveAll($user_data);
 | 
						|
 | 
						|
              \app\common\model\school\classes\ClassesLib::update_classes($classes_lib_id);
 | 
						|
            return $user_data;
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    public static function getWeekByTime($time){
 | 
						|
        $time = $time && !is_numeric($time) ? strtotime($time) : time();
 | 
						|
 | 
						|
        //得到当前日期所在周几
 | 
						|
        $week = date("w",$time);
 | 
						|
        $week = $week == 0 ? '7' : $week;
 | 
						|
        $sub =  abs(7-( 7-$week)) -1; //绝对值
 | 
						|
        $start_time = $time - ($sub*86400);
 | 
						|
//        var_dump( date("Y-m-d",$start_time));
 | 
						|
        $titles = ["周一","周二","周三","周四","周五","周六","周日"];
 | 
						|
        //循环7天
 | 
						|
        $week_arr = [];
 | 
						|
        for($i=0;$i<7;$i++){
 | 
						|
            $week_arr[$i]['active'] = false;
 | 
						|
            $week_arr[$i]['start_time'] = $start_time + ($i*86400);
 | 
						|
            $week_arr[$i]['end_time'] = strtotime("+1 day",$week_arr[$i]['start_time']) -1 ;
 | 
						|
 | 
						|
            $week_arr[$i]['start_date'] = date("Y/m/d H:i:s",$week_arr[$i]['start_time']);
 | 
						|
            $week_arr[$i]['end_date'] = date("Y/m/d H:i:s",$week_arr[$i]['end_time']);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
            $week_arr[$i]['day_text'] = date("m.d",$week_arr[$i]['start_time']);
 | 
						|
 | 
						|
 | 
						|
            $week_arr[$i]['week'] = $i+1;
 | 
						|
            $week_arr[$i]['week_text'] = $titles[$i];
 | 
						|
            if($week_arr[$i]['week'] == $week){
 | 
						|
                $week_arr[$i]['active'] = true;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        return  $week_arr;
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
} |