public static function get_crm_res()
 {
     $result = array();
     $now = date('Y-m-d');
     $three_months_before = date('Y-m-d', strtotime('-3 months'));
     $filters = array('salesman' => $_SESSION['id']);
     $channel_service = new Channel();
     $channel_list = $channel_service->get_channel_ads($filters);
     $payment_list = $channel_service->get_channel_payment($filters, $three_months_before, $now);
     $quote_list = $channel_service->get_channel_quote($filters, $three_months_before, $now);
     $quantity_list = $channel_service->get_channel_ads_nums($filters, $three_months_before, $now);
     foreach ($quote_list as $key => $quote) {
         $total = 0;
         foreach ($quote as $item) {
             $quote_rmb = $item['quote_rmb'];
             $nums = $item['nums'];
             $total += (int) $quote_rmb * (int) $nums;
         }
         $result[$key] = array('total' => $total);
     }
     foreach ($payment_list as $key => $payment) {
         $cycle_total = 0;
         $rmb_total = 0;
         foreach ($payment as $item) {
             $paid_time = $item['paid_time'];
             $invoice_time = $item['invoice_time'];
             $cycle_days = Utils::calculate_date($paid_time, $invoice_time);
             $cycle_total += self::judge_days($cycle_days);
             $rmb_total += $item['rmb'];
         }
         $quote_nums = count($payment);
         $score_cycle = round((int) $cycle_total / (ChannelModel::$MAX_SCORES['cycle'] * $quote_nums), 2);
         $result[$key] = array_merge($result[$key], array('score_cycle' => $score_cycle, 'rmb' => $rmb_total));
         if (isset($result[$key]['total'])) {
             $payment_rate = round($result[$key]['rmb'] / $result[$key]['total'], 2);
             $score_payment_rate = round((int) self::judge_payment($payment_rate) / ChannelModel::$MAX_SCORES['payment_rate'], 2);
             $cut_rate = 1 - $payment_rate;
             $score_cut_rate = round((int) self::judge_payment($cut_rate) / ChannelModel::$MAX_SCORES['cut_rate'], 2);
             $result[$key] = array_merge($result[$key], array('payment_rate' => $score_payment_rate, 'cut_rate' => $score_cut_rate));
         }
     }
     foreach ($channel_list as $key => $channel) {
         $nums = 0;
         foreach ($channel as $item) {
             $feedback = $item['feedback'];
             $nums += $item['nums'];
             if (in_array($feedback, array_keys(ChannelModel::$FEEDBACK_SCORES))) {
                 $result[$key]['score_feedback'] += ChannelModel::$FEEDBACK_SCORES[$feedback] * $item['nums'];
             }
         }
         $result[$key]['nums'] = $nums;
         $score_nums = round((int) self::judge_nums($nums) / ChannelModel::$MAX_SCORES['nums'], 2);
         $score_feedback = round((int) $result[$key]['score_feedback'] / (ChannelModel::$MAX_SCORES['feedback'] * $nums), 2);
         $result[$key] = array_merge($result[$key], array('score_nums' => $score_nums, 'score_feedback' => $score_feedback));
     }
     foreach ($quantity_list as $key => $quantity) {
         $score = self::judge_quantity($quantity);
         if (isset($result[$key])) {
             $result[$key] = array_merge($result[$key], array('frequency' => round((int) $score / ChannelModel::$MAX_SCORES['quantity'], 2)));
         }
     }
     return $result;
 }