#
#
#
#
#
#
#
#
#
#
require "../settings.php";
require "../libs/ext.lib.php";
if (div_isset("DEBT_AGE", "mon")) {
    $OUTPUT = printAgeAge();
} elseif (isset($_POST["xls"])) {
    $OUTPUT = excel($_POST);
} else {
    $OUTPUT = printAgeInv($_POST);
}
require "../template.php";
# Age analysis by date
function printAgeInv($_POST, $pure = TRUE)
{
    extract($_POST);
    # Set up table to display in
    global $PRDMON;
    $from = getMonthName($PRDMON[1]) . " " . getYearOfFinMon($PRDMON[1]);
    $to = getMonthName($PRDMON[12]) . " " . getYearOfFinMon($PRDMON[12]);
    $sel1 = "";
    $sel2 = "";
    $sel3 = "";
 public function _excel()
 {
     $where = $this->_getWhere();
     $model = M()->table('zj_loan_order_salesman s')->join('zj_loan_order o on o.id=s.order_id');
     $model->join('zj_user u on u.uid=s.uid');
     $model->join('zj_university_campus c on c.id=o.campus_id');
     $fields = 's.*,o.seller_name,o.realname order_realname,o.created,o.status,o.loan_money,o.type,o.title,o.realname,o.seller_name,u.realname,u.mobile,c.city,c.university_name,c.name campus_name';
     $list = $model->where($where)->order('lend_time')->field($fields)->select();
     $orderModel = new \Loan\Model\OrderModel();
     int_to_string($list, ['type' => $orderModel->getType(), 'status' => $orderModel->getStatus()]);
     foreach ($list as $key => $vo) {
         $list[$key]['created'] = time_format($vo['created']);
         $list[$key]['lend_time'] = time_format($vo['lend_time']);
     }
     excel('业绩数据', $list, ['城市' => 'city', '类型' => 'type_text', '学校' => 'university_name', '校区' => 'campus_name', '订单号' => 'order_id', '放款时间' => 'lend_time', '下单时间' => 'created', '学生姓名' => 'order_realname', '订单标题' => 'title', '订单状态' => 'status_text', '贷款金额' => 'loan_money', '业务员姓名' => 'realname', '业务员手机号' => 'mobile', '商家店名' => 'seller_name']);
 }
<?php

require "settings.php";
if (isset($_REQUEST["button"])) {
    list($button) = array_keys($_REQUEST["button"]);
    switch ($button) {
        case "excel":
            $OUTPUT = excel();
            break;
    }
} elseif (isset($_REQUEST["key"])) {
    switch ($_REQUEST["key"]) {
        case "select":
            $OUTPUT = select();
            break;
        case "display":
            $OUTPUT = display();
            break;
    }
} else {
    $OUTPUT = display();
}
require "template.php";
function select()
{
    extract($_REQUEST);
    // Retrieve stores
    $sql = "SELECT whid, whno, whname FROM exten.warehouses ORDER BY whno ASC";
    $stores_rslt = db_exec($sql) or errDie("Unable to retrieve stores.");
    $stores_sel = "<select name='whid' style='width: 100%' />";
    while ($stores_data = pg_fetch_array($stores_rslt)) {
 public function stat()
 {
     $type = I('get.type');
     $cash_id = '39,83';
     $where_config = ['cash' => ['o.goods_id' => ['in', $cash_id]], 'offline' => ['o.goods_id' => 0], 'online' => ['o.goods_id' => ['not in', '0,' . $cash_id]]];
     // 放款统计
     if ($type == 'lend') {
         function model()
         {
             return M()->table('zj_loan_money m')->join('zj_loan_order o on o.id=m.order_id');
         }
         $total = $today = [];
         $where = ['m.type' => -1];
         $where_today = ['m.created' => ['between', strtotime(I('get.date', date('Y-m-d')) . ' 00:00:00') . ',' . strtotime(I('get.date', date('Y-m-d')) . ' 23:59:59')]];
         foreach ($where_config as $key => $where_type) {
             $total[$key] = model()->where($where + $where_type)->sum('m.money') ?: '0.00';
             $total[$key . '_order'] = model()->where($where + $where_type)->count('distinct(o.id)') ?: 0;
             $today[$key] = model()->where($where + $where_type + $where_today)->sum('m.money') ?: '0.00';
             $today[$key . '_order'] = model()->where($where + $where_type + $where_today)->count('distinct(o.id)') ?: 0;
         }
         $this->assign('today', $today);
         $this->assign('total', $total);
         $this->assign('meta_title', '放款统计');
         $this->display('stat_lend');
         exit;
     }
     // 回款统计
     if ($type == 'income') {
         $start = I('get.start', date('Y-m-01'));
         $end = I('get.end', date('Y-m-d'));
         $this->assign('start', $start);
         $this->assign('end', $end);
         function model()
         {
             return M()->table('zj_loan_money m')->join('zj_loan_order o on o.id=m.order_id');
         }
         $total = $today = [];
         $where = ['type' => ['in', '1,2,3']];
         $where_today = ['created' => ['between', strtotime($start . ' 00:00:00') . ',' . strtotime($end . ' 23:59:59')]];
         $total = M('loan_money')->where($where)->group('type')->getField('type,sum(money)');
         $today = M('loan_money')->where($where + $where_today)->group('type')->getField('type,sum(money)');
         for ($i = 1; $i <= 3; $i++) {
             $total[$i] = isset($total[$i]) ? $total[$i] : '0.00';
             $today[$i] = isset($today[$i]) ? $today[$i] : '0.00';
         }
         debug($today);
         $this->assign('today', $today);
         $this->assign('total', $total);
         $this->assign('meta_title', '回款统计');
         $this->display('stat_income');
         exit;
     }
     // 还款统计
     if ($type == 'repay') {
         $method = I('get.method');
         $field = 'u.uid,u.realname,university_name,campus_name,city,total_money_loan,total_money_return';
         $model = M()->field($field)->table('zj_loan_user u')->join('zj_loan_user_contract c on c.uid=u.uid');
         if ($method == 'excel') {
             $users = $model->field($field)->where('total_money_loan>0')->order('u.created desc')->select();
         } else {
             $users = $this->lists($model, 'total_money_loan>0', 'u.created desc', $field);
         }
         $uids = array_column($users, 'uid');
         // 用户的金额统计
         $moneys = [];
         foreach ($where_config as $key => $where) {
             $model = M()->table('zj_loan_order_finance f')->join('zj_loan_order o on o.id=f.order_id');
             $model->where($where)->field('uid,sum(lend_money-return_money) money')->group('o.uid');
             $moneys[$key] = array_column($model->select(), 'money', 'uid');
         }
         // 用户的订单数统计
         $orders = [];
         foreach ($where_config as $key => $where) {
             $model = M()->table('zj_loan_order_finance f')->join('zj_loan_order o on o.id=f.order_id');
             $model->where($where)->field('uid,count(1) total')->group('o.uid');
             $orders[$key] = array_column($model->select(), 'total', 'uid');
         }
         foreach ($users as $key => $user) {
             $uid = $user['uid'];
             foreach ($where_config as $type => $where) {
                 $users[$key][$type] = isset($moneys[$type][$uid]) ? $moneys[$type][$uid] : '0.00';
                 $users[$key][$type . '_order'] = isset($orders[$type][$uid]) ? $orders[$type][$uid] : 0;
             }
         }
         if ($method == 'excel') {
             foreach ($users as $key => $vo) {
                 $users[$key]['campus'] = $vo['university_name'] . ' ' . $vo['campus_name'];
                 $users[$key]['total_money_no_return'] = $vo['total_money_loan'] - $vo['total_money_return'];
             }
             $config = ['学生姓名' => 'realname', '所属校区' => 'campus', '所属城市' => 'city', '应急包' => ['field' => 'cash', 'type' => 'f'], '线下购物' => ['field' => 'offline', 'type' => 'f'], '线上购物' => ['field' => 'online', 'type' => 'f'], '小计' => ['field' => 'total_money_loan', 'type' => 'f'], '已回款金额' => ['field' => 'total_money_return', 'type' => 'f'], '未回款金额' => ['field' => 'total_money_no_return', 'type' => 'f'], '应急包签约数' => ['field' => 'cash_order', 'type' => 'i'], '线下购物签约数' => ['field' => 'offline_order', 'type' => 'i'], '线上购物签约数' => ['field' => 'online_order', 'type' => 'i']];
             excel('收款统计', $users, $config);
         }
         $this->assign('_list', $users);
         $this->assign('meta_title', '收款统计');
         $this->display('stat_repay');
         exit;
     }
     $this->error('未知统计类型!');
 }
示例#5
0
 public function apply()
 {
     $job_id = I('id', 0, 'intval');
     $this->assign('job_id', $job_id);
     $status = I('status', -5, 'intval');
     $model = M()->table('zj_job_apply a')->join('zj_user u on u.uid=a.uid', 'left')->join('zj_user_info i on i.uid=a.uid', 'left');
     $model->join('zj_loan_user_contract luc on luc.uid=a.uid', 'left')->join('zj_job j on j.id=a.job_id', 'left');
     // 状态查找
     $fieldMap = array('status' => array(-5 => '全部', -2 => '已取消', -1 => '审核不通过', 1 => '审核通过', 0 => '待审核'));
     $status_name = $fieldMap['status'][$status];
     $where_map = [];
     if ($job_id) {
         $where_map['a.job_id'] = $job_id;
     }
     if ($status_name != '全部') {
         $where_map['a.status'] = $status;
     }
     // 城市查找
     $city_map = $this->_getRegion();
     $_region = [0 => '不限城市'] + $city_map;
     $city = I('city', 0, 'intval');
     isset($_region[$city]) or $this->error('无此城市信息:' . $city);
     $this->assign('_region', $_region);
     $this->assign('_region_name', $_region[$city]);
     if ($city > 0) {
         // 判断是省还是区
         $is_city_id = strpos($_region[$city], ' - ') === 0;
         $where_map['j.city_id'] = ['exp', ' in (select id from zj_common_region where ' . ($is_city_id ? 'id' : 'parent_id') . '=' . $city . ')'];
     }
     // 学校查找
     $university_map = M('university')->where('status=1')->order('sort DESC')->getField('id,name');
     $_university = [0 => '不限城市'] + $university_map;
     $university = I('university', 0, 'intval');
     isset($_university[$university]) or $this->error('无此学校信息:' . $university);
     $this->assign('_university', $_university);
     $this->assign('_university_name', $_university[$university]);
     if ($university > 0) {
         $where_map['i.university_id'] = $university;
     }
     // 姓名
     $uname = I('uname', '');
     if ($uname) {
         $where_map['a.uname'] = ['like', '%' . $uname . '%'];
     }
     $fields = 'a.*,j.category_name,j.title,u.mobile,i.university_name,i.campus_name,luc.realname';
     if (I('method') == 'excel') {
         $list = $model->where($where_map)->order('id')->field($fields)->select();
         foreach ($list as $key => $vo) {
             $list[$key]['created'] = date('Y-m-d H:i:s', $vo['created']);
             $list[$key]['is_have_order'] = $vo['is_have_order'] > 0 ? '是' : '否';
         }
         excel('兼职报名名单', $list, ['编号' => 'id', '兼职分类' => 'category_name', '兼职标题' => 'title', '报名时间' => 'created', '真实姓名' => 'realname', '手机号' => 'mobile', '有兼职换购' => 'is_have_order', '学校' => 'university_name', '校区' => 'campus_name']);
     }
     $list = $this->lists($model, $where_map, 'id DESC', $fields);
     if ($list) {
         // 判断是否有兼职换购的订单
         $orders = M('loan_order')->where(['uid' => ['in', array_column($list, 'uid')], 'status' => ['not in', [OrderModel::STATUS_CHECK_FAILURE, OrderModel::STATUS_BREACH_CONTRACT, OrderModel::STATUS_FINISH_SUCCESS, OrderModel::STATUS_CLOSED]], 'is_support_job' => 1])->getField('uid', true);
         foreach ($list as $key => $vo) {
             $list[$key]['is_have_order'] = in_array($vo['uid'], $orders);
         }
     }
     $this->assign('_status', $fieldMap['status']);
     $this->assign('status_name', $status_name);
     $this->assign('status', $status);
     int_to_string($list, $fieldMap);
     $this->assign('_list', $list);
     $this->meta_title = '待审核报名信息';
     $this->display();
 }
 public function export_stat()
 {
     $sql_total_order = M('loan_order')->where(['company_id' => ['exp', '=c.id'], 'status' => ['neq', \Loan\Model\OrderModel::STATUS_CLOSED]])->field('count(1)')->buildSql();
     $sql_total_order_money = M('loan_order')->where(['company_id' => ['exp', '=c.id'], 'status' => ['neq', \Loan\Model\OrderModel::STATUS_CLOSED]])->field('sum(money)')->buildSql();
     $sql_total_order_breach = M('loan_order')->where(['company_id' => ['exp', '=c.id'], 'status' => \Loan\Model\OrderModel::STATUS_BREACH_CONTRACT])->field('count(1)')->buildSql();
     $field = ['id', 'uid', 'name', 'city_name', 'type', 'contact_user', $sql_total_order . ' AS total_order', $sql_total_order_money . ' AS total_order_money', $sql_total_order_breach . ' AS total_order_breach'];
     $model = M('loan_company')->alias('c')->order('c.id');
     $list = $model->field($field)->select();
     int_to_string($list, ['type' => $this->_type]);
     $list = array_map(function ($item) {
         // 使用intval,floatval直接过滤null
         $item['total_order_money'] = floatval($item['total_order_money']);
         $item['total_order'] = intval($item['total_order']);
         $item['total_order_breach'] = intval($item['total_order_breach']);
         // 违约率
         $item['total_order_breach_rate'] = floatval($item['total_order_breach'] / $item['total_order']);
         return $item;
     }, $list);
     excel('商铺业绩', $list, ['城市' => 'city_name', '类型' => 'type_text', '商铺名称' => 'name', '对接人(招商专员)' => 'contact_user', '销售额' => 'total_order_money', '出单笔数' => 'total_order', '违约笔数' => 'total_order_breach', '违约率(违约笔数/出单量)' => 'total_order_breach_rate']);
 }