dataLists(new ApproveLists()); } public function approveType() { $list = Approve::where(['status' => 1])->field(['id,name'])->select()->toArray(); $this->success('成功', $list); } /** * 前台通用审批接口 审批后的业务逻辑, */ public function audit() { try { $params = $this->request->param(); // id check_status remark $approve = Approve::find($params['id']); if (!$approve) { throw new Exception('数据不存在'); } Db::startTrans(); // 拒绝通过 if ($params['check_status'] == 3) { $this->refuse($approve, $params); } // 修改任务完成状态 if ($params['check_status'] == 2) { $this->pass($approve); } // 回调商城,通知审核状态 if (in_array($approve['type'], [2, 3])) { $shopMerchantInfo = json_decode($approve['extend']); self::shopCallBack($approve, $shopMerchantInfo, $params); } Db::commit(); return $this->fail('操作成功'); } catch (Exception $exception) { Db::rollback(); return $this->fail('审核失败'); } } private static function pass(Approve $approve) { $approve->check_status = 2; $approve->save(); } private static function refuse(Approve $approve, $params) { $approve->check_status = 3; $approve->remard = $params['remark']; $approve->save(); } private static function shopCallBack(Approve $approve, $shopMerchantInfo, $params) { $status = $params['check_status'] == 2? 1: 2; if ($params['check_status'] == 3) { $status = 2; } // 通知商城审批状态 $requestResponse = HttpClient::create()->request('POST', env('url.shop_prefix') . '/api/merchant/syncStatus/'.$shopMerchantInfo['mer_intention_id'], [ 'body' => ['status' => $status, 'type' => $approve['type']] ]); } }