model = new \app\admin\model\Withdraw; $typeList = [ 'statusList' => $this->model->getStatusList(), 'typeList' => $this->model->getTypeList(), ]; $this->view->assign($typeList); $this->assignconfig($typeList); } public function import() { parent::import(); } /** * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 */ /** * 查看 */ public function index() { //当前是否为关联查询 $this->relationSearch = true; //设置过滤方法 $this->request->filter(['strip_tags', 'trim']); if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('keyField')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $list = $this->model ->with(['user']) ->where($where) ->order($sort, $order) ->paginate($limit); foreach ($list as $row) { $row->getRelation('user')->visible(['nickname','money']); } $result = array("total" => $list->total(), "rows" => $list->items()); return json($result); } return $this->view->fetch(); } /** * 编辑 */ public function edit($ids = null) { $row = $this->model->get($ids); if (!$row) { $this->error(__('No Results were found')); } $adminIds = $this->getDataLimitAdminIds(); if (is_array($adminIds)) { if (!in_array($row[$this->dataLimitField], $adminIds)) { $this->error(__('You have no permission')); } } if ($this->request->isPost()) { $params = $this->request->post("row/a"); if (!$params) { $this->error(__('Parameter %s can not be empty', '')); } $params = $this->preExcludeFields($params); $result = false; try { //是否采用模型验证 if ($this->modelValidate) { $name = str_replace("\\model\\", "\\validate\\", get_class($this->model)); $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate; $row->validateFailException(true)->validate($validate); } //状态:created=申请中,successed=成功,rejected=已拒绝 $remark = ''; if ($params['status'] == 'rejected') {//返回金额 $user = model('User')->find($row['user_id']); $before = $user['money']; $remark = '提现'.$row['money'].'驳回'; $res = model('Wallet')->lockChangeAccountRemain($row['user_id'],$row['money'],'+',$before,$remark,105,'money'); if (!$res['status']) { throw new Exception($res['status']); } } elseif ($params['status'] == 'successed') { $remark = '提现'.$row['money'].'通过'; //通过提现到用户账户 if (isset($params['type']) && $params['type'] == 'alipay') { $moneyService = new MoneyService(); $withdrawParams = [ 'money' => $params['real_money'], 'alipay_account' => $params['account'], 'name' => $params['name'], 'out_biz_no' => $row['orderid'], ]; $withdrawRes = $moneyService->withdrawTransfer($withdrawParams); if (!$withdrawRes['status']) { throw new Exception($withdrawRes['msg']); } } } if (!empty($remark)) { //审核结果消息通知 $messageModel = new Message(); $messageModel->addMessage($row['user_id'],'提现审核通知',$remark); } $result = $row->allowField(true)->save($params); } catch (ValidateException|PDOException|Exception $e) { $this->error($e->getMessage()); } if ($result == false) { $this->error(__('No rows were updated')); } $this->success(); } $this->view->assign("row", $row); return $this->view->fetch(); } }