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(); }
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']); }
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); }