protected function _paySuccess($pay_id, $money, $alipay_trade_no) { // 验证是否重复操作 $payRow = M('loan_pay_alipay')->find($pay_id); if (!$payRow) { return '此交易记录不存在!'; } if ($payRow['is_action'] > 0) { return true; } if (bccomp($money, $payRow['money'], 2) != 0) { return '支付金额与记录不符!'; } if (!M('loan_pay_alipay')->where(['id' => $pay_id, 'is_action' => $payRow['is_action']])->setField('is_action', 1)) { return true; } $orderModel = new \Loan\Model\OrderModel(); $billModel = new \Loan\Model\BillModel(); $order_id = $payRow['order_id']; $month = $payRow['month']; $issue = $payRow['issue']; $money = $payRow['money']; $order = $orderModel->field('status')->where(['id' => $order_id])->field('status')->find(); if (!$order) { return '订单信息不存在!'; } if ($month == 1) { if ($issue == 0) { // 正常支付首付 if ($order['status'] == $orderModel::STATUS_CHECK_SUCCESS) { return true; } if ($orderModel->firstPay($order_id, 1, $alipay_trade_no)) { return true; } else { return $orderModel->getError(); } } else { // 正常支付指定账单 $bill = M('loan_bill')->field('issue,money_total,status')->where(['order_id' => $order_id, 'issue' => $issue])->find(); if (!$bill) { return '找不到此账单信息!'; } // 判断是否已经支付 if ($bill['status'] == 2) { return true; } if ($billModel->repay($order_id, $issue, $money, 1, $alipay_trade_no)) { return true; } else { return $billModel->getError(); } } } elseif ($month < 0) { return '未知month参数:' . $month; } else { if (!$billModel->repayAll($order_id, $month, $money, 1, $alipay_trade_no)) { return $billModel->getError(); } } return true; }
public function order() { $this->meta_title = '订单状态'; $model = new \Loan\Model\OrderModel(); if (I('type') == 'money') { $model->field('status,sum(loan_money) val'); } else { $model->field('status,count(1) val'); } $order = $model->group('status')->select(); int_to_string($order, ['status' => $model->getStatus()]); $list = []; foreach ($order as $vo) { $list[$vo['status_text']][] = $vo['val']; } $this->assign('legend', array_keys($list)); $this->assign('xtitle', date('Y-m-d')); $this->assign('list', $list); $this->display(); }