request->input('city_id',0); $limit = (int)$this->request->input('limit',10); if (empty($cityId)) return $this->return->success('success',['list' => []]); $list = $this ->catererModel ->leftJoin('admin_user', 'admin_user.id', '=', 'caterer.user_id') ->where('admin_user.is_del',UserCode::IS_NO_DEL) ->where('admin_user.status',UserCode::ENABLE) ->whereIn('admin_user.role_id',[RoleCode::MEAL_CATERING,RoleCode::OPTION_CATERING]) ->where('admin_user.city_id', $cityId) ->paginate($limit,['admin_user.id','admin_user.chinese_name','caterer.kitchen_id','caterer.type','admin_user.role_id','admin_user.status']) ->toArray(); if (empty($list['data'])) return $this->return->success('success',['list' => []]); $kitchenIds = array_unique(array_column($list['data'],'kitchen_id')); $kitchenList = $this->kitchenModel->getDataByIds($kitchenIds); $kitchenList = array_column($kitchenList,null,'id'); foreach ($list['data'] as &$item){ $item['kitchen_name'] = $kitchenList[$item['kitchen_id']]['name'] ?? ''; } return $this->return->success('success',['list' => $list]); } /** * @return array */ public function catererList() { $cityId = (int)$this->request->input('city_id',0); if ($cityId <= 0) return $this->return->success('success',['list' => []]); $roleId = (int)$this->request->input('role_id',RoleCode::OPTION_CATERING); $list = $this ->adminUserModel ->leftJoin('caterer', 'admin_user.id', '=', 'caterer.user_id') ->where('admin_user.is_del',UserCode::IS_NO_DEL) ->where('admin_user.status',UserCode::ENABLE) ->where('admin_user.role_id',$roleId) ->where('admin_user.city_id', $cityId) ->orderBy('admin_user.id') ->get(['admin_user.id','admin_user.chinese_name','caterer.type','caterer.kitchen_id']); if ($list->isEmpty()) return $this->return->success('success',['list' => []]); return $this->return->success('success',['list' => $list->toArray()]); } /** * @return array */ public function edit(): array { $userId = (int)$this->request->input('user_id'); $kitchenId = (int)$this->request->input('kitchen_id'); $kitchenInfo = $this->kitchenModel->getInfoById($kitchenId); if (empty($kitchenInfo)) throw new ErrException('该厨房信息为空'); $info = $this->catererModel->where('user_id',$userId)->first(); if (empty($info)) throw new ErrException('该用户信息为空'); $info->kitchen_id = $kitchenId; if (!$info->save()) throw new ErrException('设置配餐信息失败'); return $this->return->success(); } }