private function searchConditions()
 {
     $conditions = [];
     if (!$this->isNationWideBid()) {
         $bid = $this->getOperatorBid();
         $conditions[] = '{User}.bid=' . $bid;
     }
     $post = $this->request->get();
     if (isset($post['keyword']) and !empty($post['keyword'])) {
         $keyword = $post['keyword'];
         if (preg_match('/^\\d+$/', $keyword)) {
             $conditions[] = '{User}.uid = ' . intval($keyword);
         }
         if (\Util\Validator::isCh($keyword)) {
             $conditions[] = '{User}.realname = \'' . $keyword . '\'';
         }
     }
     if (isset($post['deal']) and in_array($post['deal'], [1, -1])) {
         if ($post['deal'] == 1) {
             $conditions[] = '{Loan}.bank!=\'\'';
             $conditions[] = '{Loan}.status>=' . \App\LoanStatus::getStatusRcAgree();
         } else {
             $conditions[] = '{Loan}.status=' . \App\LoanStatus::getStatusRcAgree();
         }
     }
     return $conditions;
 }
Beispiel #2
0
    public static function rclist($condition = '', $limit = [10, 0])
    {
        $baseCondition = 'LoanSketch.status=' . \App\LoanStatus::getStatusRc();
        $condition = empty($condition) ? $baseCondition : $baseCondition . ' and ' . $condition;
        $columns = ['U.bid, B.name bname, LoanSketch.uid, LoanSketch.loan_type, LoanSketch.use_type,
			LoanSketch.amount, LoanSketch.deadline, LoanSketch.deadline_type, LoanSketch.days,
			LoanSketch.repay_method, LoanSketch.repay_source, LoanSketch.addtime'];
        $condition = self::formatConditions($condition);
        $query = self::query()->leftJoin('User', 'U.uid=LoanSketch.uid', 'U')->leftJoin('Branch', 'B.bid=U.bid', 'B')->where($condition)->orderBy('LoanSketch.addtime desc')->columns($columns);
        $count = $query->execute()->count();
        $list = $query->limit($limit[0], $limit[1])->execute();
        $list = $list ? $list->toArray() : [];
        return ['list' => Loan::format($list), 'count' => $count];
    }
 private function searchConditions()
 {
     $conditions = [];
     if (!$this->isNationWideBid()) {
         $bid = $this->getOperatorBid();
         $conditions[] = '{User}.bid=' . $bid;
     }
     $post = $this->request->get();
     if (isset($post['keyword']) and !empty($post['keyword'])) {
         $keyword = $post['keyword'];
         if (preg_match('/^\\d+$/', $keyword)) {
             $conditions[] = '{User}.uid = ' . intval($keyword);
         }
         if (\Util\Validator::isCh($keyword)) {
             $conditions[] = '{User}.realname = \'' . $keyword . '\'';
         }
     }
     $conditions[] = '{Loan}.status=' . \App\LoanStatus::getStatusRepay();
     if (isset($post['deal']) and in_array($post['deal'], [1, -1])) {
         $conditions[] = '{Loan}.remit_certify' . ($post['deal'] == 1 ? '!=\'\'' : '=\'0\'');
     }
     $conditions[] = '{Loan}.contract=1 and {Loan}.gps=1';
     return $conditions;
 }
Beispiel #4
0
 public static function advise($uid, $foid, $adviseType, $reason, $loan = false)
 {
     $isLoanSketch = false;
     switch ($adviseType) {
         case 'loansketch':
             $status = \App\LoanStatus::getStatusSketch();
             $oid = User::findFirst("uid={$uid}")->oid;
             $isLoanSketch = true;
             break;
         case 'visit':
             $status = \App\LoanStatus::getStatusCarAssess();
             $oid = Visit::findFirst("uid={$uid}")->oid;
             $isLoanSketch = true;
             break;
         case 'car':
             $status = \App\LoanStatus::getStatusVisit();
             $oid = Car::findFirst("uid={$uid}")->oid;
             $isLoanSketch = true;
             break;
         case 'face':
             $status = \App\LoanStatus::getStatusChecked();
             $oid = Face::findFirst("uid={$uid}")->oid;
             $isLoanSketch = true;
             break;
     }
     if (empty($oid)) {
         return false;
     }
     if ($isLoanSketch) {
         $model = LoanSketch::findFirst("uid={$uid}");
         $model->status = $status;
         $model->update();
     }
     Advise::add($uid, $oid, $foid, $adviseType, $reason);
     return true;
 }
Beispiel #5
0
 private function canModifyActions($uid, $status)
 {
     $advises = Advise::formatByType(Advise::getAdvisesByUid($uid));
     $actions = ['loansketch' => 0, 'visit' => 0, 'car' => 0, 'face' => 0, 'rc' => 0];
     $advises_undo = array_intersect_key($advises, $actions);
     if ($advises_undo) {
         $this->view->setVars(['advises' => $advises_undo]);
     } else {
         if (\App\LoanStatus::needRc($status)) {
             $actions['rc'] = true;
         }
     }
     return $actions;
 }
Beispiel #6
0
 /**
  * 获取当前操作者所具有的面审、车评、外访等权限
  * 判断是否有待处理任务、和贷款状态
  */
 private function canModifyActions($uid, $status, $type = null)
 {
     $apply = $this->authHasAction('apply');
     $face = $this->authHasAction('face');
     $visit = $this->authHasAction('visit');
     $car = $this->authHasAction('car');
     $actions = ['apply' => false, 'face' => false, 'visit' => false, 'car' => false, 'reface' => false];
     $advises = Advise::formatByType(Advise::getAdvisesByUid($uid));
     if (array_key_exists('loansketch', $advises)) {
         $do = 'apply';
     } else {
         if (\App\LoanStatus::needVisit($status) || \App\LoanStatus::needCarAssess($status) || array_key_exists('visit', $advises) || array_key_exists('car', $advises)) {
             $do = ['visit', 'car'];
         } else {
             if (\App\LoanStatus::needReface($status) || array_key_exists('face', $advises)) {
                 $do = 'reface';
             } else {
                 if (\App\LoanStatus::needFace($status) || array_key_exists('face', $advises)) {
                     $do = 'face';
                 } else {
                     if (\App\LoanStatus::needRc($status)) {
                         $do = 'rc';
                     }
                 }
             }
         }
     }
     if ($apply and $status == \App\LoanStatus::getStatusSketch()) {
         $actions['apply'] = true;
     }
     if ($face and $do == 'face') {
         $actions['face'] = true;
     } else {
         if ($visit || $car and $do == ['visit', 'car']) {
             $actions['visit'] = $visit;
             $actions['car'] = $car;
         } else {
             if ($face and $do == 'reface') {
                 $actions['reface'] = true;
             }
         }
     }
     if ($type) {
         return array_key_exists($type, $actions) ? $actions[$type] : false;
     }
     $this->view->setVars(['advises' => $advises, 'do' => $do]);
     return $actions;
 }
Beispiel #7
-2
 /**
  * 确认放款
  */
 public function confirmAction($uid)
 {
     if ($this->isAjax()) {
         !$uid and $this->error('参数错误');
         if (Loan::updateStatus($uid, \App\LoanStatus::getStatusRunConfirm())) {
             Log::add($uid, $this->getOperatorId(), \App\Config\Log::loanOperate('runconfirm'));
             $this->success('操作成功');
         }
         $this->error('操作失败');
     }
     $loan = Loan::findByUid($uid);
     $user = User::findFirst($uid)->toArray();
     $this->view->setVars(['loan' => $loan, 'user' => $user]);
     $this->view->pick('run/detail');
 }