/** * 放款统计 -- 初审 * @return mixed */ public function LoanStatistice() { $where = array(); $param['regFrom']=input('channel',''); if(trim($param['regFrom']) != ''){ $where['regFrom']=$param['regFrom']; } //设置初始日期 $lastmonth = date('Y-m-d',strtotime('-1 month')); $day_difference = gettime_day($lastmonth,date('Y-m-d')); $data = model('Order')->LoanStatistice($where); foreach($data as $key=>&$val){ $time = $val['time']; $resu = model('Repay')->getOverdueMoney($time); $val['sum_getOverdueMoney'] = $resu['sum_getOverdueMoney']?$resu['sum_getOverdueMoney']:'0'; $val['today_proportion'] = $val['sum_getOverdueMoney']/$val['sum_borrowAmount']?round($val['sum_getOverdueMoney']/$val['sum_borrowAmount'],4)*100:'0'; } $sum_loanStatus = array_column($data,'sum_loanStatus','time'); $sum_borrowAmount = array_column($data,'sum_borrowAmount','time'); $sum_getOverdueMoney = array_column($data,'sum_getOverdueMoney','time'); $today_proportion = array_column($data,'today_proportion','time'); $result = ''; for($i=0;$i<=$day_difference;$i++){ $day_current = date('Y-m-d',strtotime('+'.$i.' day',strtotime($lastmonth))); if(isset($sum_loanStatus[$day_current])){ $result[$i]['sum_loanStatus'] = $sum_loanStatus[$day_current]; $result[$i]['sum_borrowAmount'] = $sum_borrowAmount[$day_current]; $result[$i]['sum_getOverdueMoney'] = $sum_getOverdueMoney[$day_current]; $result[$i]['today_proportion'] = $today_proportion[$day_current]; $result[$i]['time'] = $day_current; }else{ $result[$i]['sum_loanStatus'] = 0; $result[$i]['sum_borrowAmount'] = 0; $result[$i]['sum_getOverdueMoney'] = 0; $result[$i]['today_proportion'] = 0; $result[$i]['time'] = $day_current; } } $channel = model('channel')->where('release_status','1')->column('name','english_name'); $this->assign('channel',$channel); $this->assign('result',$result); $this->assign('regFrom',$param['regFrom']); return $this->fetch(); }
public function LoanStatistice() { //设置前一个月日期 $lastmonth = date('Y-m-d',strtotime('-1 month')); return $this->field('sum(loanStatus=1) sum_loanStatus ,sum(borrowAmount) sum_borrowAmount,left(createTime,10) time')->whereTime('createTime','>=',$lastmonth)->group('time')->select()->toArray(); }
首先 设置 一个 时间区间 例如 30 天 。然后 直接查询 30天数据 。
foreach处理数据 补充字段
array_column 获取我想要的字段key为 时间
接着 for循环 所有 时间 对比array_column 有的值 ,如果 没有 补空