Exemplo n.º 1
0
 public function __construct()
 {
     parent::__construct();
     $orderModel = new \Loan\Model\OrderModel();
     $this->_type = $orderModel->getType();
     $this->_status = $orderModel->getStatus();
 }
 public function __construct()
 {
     parent::__construct();
     $orderModel = new \Loan\Model\OrderModel();
     $this->_field_text_map['order_type'] = $this->_order_type = $orderModel->getType();
     $this->_field_text_map['status'] = $this->_status = $orderModel->getStatus();
 }
Exemplo n.º 3
0
 public function detail()
 {
     $orderModel = new \Loan\Model\OrderModel();
     // 商家类型
     $where = ['id' => I('id')];
     if ($this->_salesman['type_id'] == 3) {
         $where['_string'] = ' id in (select order_id from zj_loan_order_salesman where uid=' . $this->_user['uid'] . ') ';
     }
     $order = $orderModel->where($where)->find() or $this->error('找不到此订单信息!');
     int_to_string($order, ['type' => $orderModel->getType(), 'status' => $orderModel->getStatus()]);
     // 检查订单用户认证状态
     $where = ['uid' => $order['uid']];
     if (M('loan_user')->where($where)->count()) {
         $user_auth_text = '个人认证(已通过)';
     } else {
         $contract_status = M('loan_user_contract')->where($where)->getField('status');
         if ($contract_status === null) {
             $user_auth_text = '个人认证(未提交资料)';
         } elseif ($contract_status == 0) {
             // 检查提交资料是否完善
             $user_auth = M('loan_user_contract_auth')->where($where)->getField('auth_id', true);
             if ($user_auth) {
                 $auth_config = M('loan_config_auth')->where('type=1 and status=1 and is_required=1')->getField('id', true);
                 foreach ($auth_config as $key => $id) {
                     if (in_array($id, $user_auth)) {
                         unset($auth_config[$key]);
                     }
                 }
                 if ($auth_config) {
                     $user_auth_text = '个人认证(待完善资料)';
                 } else {
                     $user_auth_text = '个人认证(等待审核)';
                 }
             } else {
                 $user_auth_text = '个人认证(未提交资料)';
             }
         } elseif ($contract_status == 2) {
             $user_auth_text = '个人认证(审核不通过)';
         }
     }
     $this->assign('user_auth_text', $user_auth_text);
     // 检查订单签约状态
     $where = ['order_id' => $order['id']];
     $order_auth = M('loan_order_auth')->where($where)->getField('auth_id', true);
     if ($order_auth) {
         $auth_config = M('loan_config_auth')->where('type=2 and status=1 and is_required=1')->getField('id', true);
         if ($auth_config) {
             foreach ($auth_config as $key => $id) {
                 if (in_array($id, $order_auth)) {
                     unset($auth_config[$key]);
                 }
             }
             $order_auth_text = '订单签约(待完善资料)';
         } else {
             $order_auth_text = '订单签约(等待审核)';
         }
     } else {
         $order_auth_text = '订单签约(未提交资料)';
     }
     $this->assign('order_auth_text', $order_auth_text);
     // 验证特派的状态
     $order_salesman = M('loan_order_salesman')->where(['order_id' => $order['id']])->find();
     if ($order_salesman) {
         $order_salesman['uname'] = get_user($order_salesman['uid'])['uname'];
     }
     $this->assign('order_salesman', $order_salesman);
     $this->assign('order_salesman_status', $order_salesman ? $order_salesman['status'] : -1);
     // 是否允许转派给别人
     $this->assign('allow_special_salesman', $order['type'] == 2 && (!$order_salesman || $order_salesman['uid'] == $this->_user['uid']));
     // 是否允许关闭
     $this->assign('allowClose', false);
     $this->assign('order', $order);
     $this->assign('orderModel', $orderModel);
     $this->display();
 }
 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']);
 }
Exemplo n.º 5
0
 public function report()
 {
     $where_base = [];
     $model = new \Loan\Model\OrderModel();
     // 搜索:类型
     $_type = $model->getType();
     unset($_type[0]);
     $_type = ['-1' => '所有类型'] + $_type;
     $order_type = I('get.order_type', -1, 'intval');
     if ($order_type >= 0) {
         $where_base['o.type'] = $order_type;
     }
     $this->assign('_type', $_type);
     $this->assign('_type_name', $_type[$order_type]);
     // 初始化城市信息
     list($city, $is_city_id) = $this->_initRegion();
     if ($city > 0) {
         // 判断是省还是区
         $where_base['campus_id'] = ['exp', ' in (select id from zj_university_campus where ' . ($is_city_id ? 'city_id' : 'province_id') . '=' . $city . ')'];
     }
     $this->meta_title = '订单报表';
     $where_order_status = ['check_status' => 1];
     $orderModel = new \Loan\Model\OrderModel();
     $page_type = I('type', 'base');
     if ($page_type == 'base') {
         $where_month_pre = ['created' => [['egt', strtotime(date('Y-m-01 00:00:00', strtotime('-1 month')))], ['lt', strtotime(date('Y-m-01 00:00:00'))]]];
         $where_month_cur = ['created' => [['egt', strtotime(date('Y-m-01 00:00:00'))], ['lt', strtotime(date('Y-m-01 00:00:00', strtotime('+1 month')))]]];
         $where_yesterday = ['created' => [['egt', strtotime(date('Y-m-d 00:00:00', strtotime('-1 day')))], ['lt', strtotime(date('Y-m-d 00:00:00'))]]];
         $where_today = ['created' => [['egt', strtotime(date('Y-m-d 00:00:00'))], ['lt', strtotime(date('Y-m-d 00:00:00', strtotime('+1 day')))]]];
         function bill_money($where)
         {
             if (isset($where['created'])) {
                 $where['p.created'] = $where['created'];
                 unset($where['created']);
             }
             return M('loan_bill_pay')->alias('p')->join('zj_loan_order o on o.id=p.order_id')->where($where)->sum('p.money');
         }
         function user_number($where)
         {
             unset($where['o.type']);
             return M('loan_user')->alias('lu')->join('zj_user_info i on i.uid=lu.uid')->where($where)->count();
         }
         function order_number($where, $sum_field = null)
         {
             $model = M('loan_order')->alias('o')->where($where);
             return $sum_field ? $model->sum($sum_field) : $model->count();
         }
         $data = ['user_yesterday' => user_number($where_base + $where_yesterday), 'user_today' => user_number($where_base + $where_today), 'user_month_pre' => user_number($where_base + $where_month_pre), 'user_month_cur' => user_number($where_base + $where_month_cur), 'user_month_total' => user_number($where_base), 'order_yesterday' => order_number($where_base + $where_order_status + $where_yesterday), 'order_today' => order_number($where_base + $where_order_status + $where_today), 'order_month_pre' => order_number($where_base + $where_order_status + $where_month_pre), 'order_month_cur' => order_number($where_base + $where_order_status + $where_month_cur), 'order_month_total' => order_number($where_base + $where_order_status), 'order_money_yesterday' => order_number($where_base + $where_order_status + $where_yesterday, 'loan_money'), 'order_money_today' => order_number($where_base + $where_order_status + $where_today, 'loan_money'), 'order_money_pre' => order_number($where_base + $where_order_status + $where_month_pre, 'loan_money'), 'order_money_cur' => order_number($where_base + $where_order_status + $where_month_cur, 'loan_money'), 'order_money_total' => order_number($where_base + $where_order_status, 'loan_money'), 'return_money_yesterday' => bill_money($where_base + $where_yesterday), 'return_money_today' => bill_money($where_base + $where_today), 'return_money_pre' => bill_money($where_base + $where_month_pre), 'return_money_cur' => bill_money($where_base + $where_month_cur), 'return_money_total' => bill_money($where_base)];
         debug('start');
         $where_breach = $where_base;
         $where_breach['o.status'] = ['neq', $orderModel::STATUS_CLOSED];
         // 已生成的账单的订单数
         $data['total_bill_order'] = M('loan_order')->alias('o')->join('zj_loan_order_contract c on c.order_id=o.id')->where($where_base + ['c.bill_make_day' => ['neq', '0000-00-00']])->count();
         // 已生成账单且未关闭的订单本金总金额
         $data['total_bill_order_money'] = M('loan_order')->alias('o')->join('zj_loan_order_contract c on c.order_id=o.id')->where($where_base + ['c.bill_make_day' => ['neq', '0000-00-00']])->sum('o.loan_money');
         // 违约订单数量(总数)
         $data['order_delay_total'] = M('loan_bill')->alias('b')->join('zj_loan_order o on o.id=b.order_id')->where($where_base + ['_string' => '(b.status=0 AND return_limit_time<' . strtotime(date('Y-m-d 00:00:00')) . ')'])->count('distinct(order_id)');
         // 已生成
         $data['order_delay_money_total'] = M('loan_bill')->alias('b')->join('zj_loan_order o on o.id=b.order_id')->where($where_base + ['_string' => '(b.status=0 AND return_limit_time<' . strtotime(date('Y-m-d 00:00:00')) . ')'])->sum('money_principal');
         // 违约订单,逾期15天及以上
         $fourteen_days = strtotime(date('Y-m-d 00:00:00')) - 86400 * 14;
         $data['order_delay_total_fifteen_days'] = M('loan_bill')->alias('b')->join('zj_loan_order o on o.id=b.order_id')->where($where_base + ['_string' => '((b.status=0 AND return_limit_time<' . $fourteen_days . '))'])->count('distinct(order_id)');
         $data['order_delay_money_total_fifteen_days'] = M('loan_bill')->alias('b')->join('zj_loan_order o on o.id=b.order_id')->where($where_base + ['_string' => '((b.status=0 AND return_limit_time<' . $fourteen_days . '))'])->sum('money_principal');
         $ids_15 = M('loan_bill')->alias('b')->join('zj_loan_order o on o.id=b.order_id')->where($where_base + ['_string' => '((b.status=0 AND return_limit_time<' . $fourteen_days . '))'])->distinct(true)->getField('order_id', true);
         // 违约订单,逾期14天及以下
         $today_limit = strtotime(date('Y-m-d 00:00:00')) - 1;
         $where_14 = ['_string' => '(b.status=0 AND return_limit_time BETWEEN ' . $fourteen_days . ' AND ' . $today_limit . ')'];
         if ($ids_15) {
             $where_14['o.id'] = ['not in', $ids_15];
         }
         $data['order_delay_total_fourteen_days'] = M('loan_bill')->alias('b')->join('zj_loan_order o on o.id=b.order_id')->where($where_base + $where_14)->count('distinct(order_id)');
         unset($where_14['o.id']);
         $data['order_delay_money_total_fourteen_days'] = M('loan_bill')->alias('b')->join('zj_loan_order o on o.id=b.order_id')->where($where_base + $where_14)->sum('money_principal');
         $this->assign('data', $data);
         // 等待操作
         // 等待审核
         $where_wait_check = ['status' => ['neq', $orderModel::STATUS_CLOSED], 'check_status' => 0, 'loan_money' => ['gt', 0]];
         // 审核失败
         $where_check_failure = ['status' => ['neq', $orderModel::STATUS_CLOSED], 'check_status' => 2];
         // 等待放款
         $where_wait_lend = ['status' => ['neq', $orderModel::STATUS_CLOSED], 'check_status' => 1, 'lend_status' => 0];
         // 打款失败
         $where_lend_failure = ['status' => ['neq', $orderModel::STATUS_CLOSED], 'lend_status' => 3];
         $wait_list = [['title' => '已下单,等待审核', 'total_order' => order_number($where_base + $where_wait_check), 'total_money' => order_number($where_base + $where_wait_check, 'loan_money')], ['title' => '审核通过,等待放款', 'total_order' => order_number($where_base + $where_wait_lend), 'total_money' => order_number($where_base + $where_wait_lend, 'loan_money')], ['title' => '审核不通过,等待修改', 'total_order' => order_number($where_base + $where_check_failure), 'total_money' => order_number($where_base + $where_check_failure, 'loan_money')], ['title' => '打款失败,等待确认', 'total_order' => order_number($where_base + $where_lend_failure), 'total_money' => order_number($where_base + $where_lend_failure, 'loan_money')]];
         $this->assign('_wait', $wait_list);
         $this->display();
         exit;
     }
     // 资产特征
     $where = $where_base + ['status' => ['neq', $orderModel::STATUS_CLOSED], 'check_status' => 1, 'month' => ['gt', 0]];
     $where_order = $where;
     foreach ($where_order as $key => $val) {
         if (substr($key, 0, 2) === 'o.') {
             continue;
         }
         $where_order['o.' . $key] = $val;
         unset($where_order[$key]);
     }
     $method = '_report_' . $page_type;
     $this->{$method}($where, $where_order);
     $this->display('report_' . $page_type);
 }