checkSchoolId($data['school_id'])) { Helper::error('您没有权限操作此数据'); } $data['stall_imgs'] = Helper::formatImgsFiled($data['stall_imgs']); $school = DB::getInfoById('school', $data['school_id'], 'name'); $cri = DbCriteria::simpleCompare(['t.canteen_id' => $id]) ->setSelect('c.name,c.id') ->setAlias('t') ->setJoin('left join wx_company c on c.id=t.company_id'); $companyInfo = DB::getInfoWithCriteria('company_canteen_relation', $cri); $data['company_name'] = $companyInfo['name']?? ''; $data['company_id'] = $companyInfo['id']?? ''; $data['school_name'] = $school['name']?? ''; Helper::ok($data); } public function actionList() { $filter = ['is_del' => 0]; $schoolId = Helper::getPostString('school_id'); if ($schoolId) { if (!$this->checkSchoolId($schoolId)) { $filter['school_id'] = -1; } else { $filter['school_id'] = $schoolId; } } else { $filter['school_id'] = $this->getSchoolFilter(); } if ($name = Helper::getPostString('name')) { $filter['name'] = '%' . $name; } if ($company_id = Helper::getPostInt('company_id')) { $rs = Helper::arrayColumn( DB::getListWithCriteria( 'company_canteen_relation', DbCriteria::simpleCompare(['company_id' => $company_id]) ), 'canteen_id' ); $filter['id'] = $rs ?: [-1]; } $cri = DbCriteria::simpleCompareWithPage($filter)->setOrder('id desc'); if ($date = Helper::getPostDate('date')) { $cri->addBetweenCondition('create_date', $date, $date . ' 23:59:59'); } $data = DB::getListWithCriteria(self::$table, $cri); if (!empty($data['records'])) { $users = Helper::arrayColumn( DB::getListWithCriteria('useradmin', DbCriteria::simpleCompare(['id' => array_column($data['records'], 'last_user_id')])->setSelect('id, username')), 'username', 'id' ); $schools = Helper::arrayColumn( DB::getListWithCriteria('school', DbCriteria::simpleCompare(['id' => array_column($data['records'], 'school_id')])->setSelect('id, name')), 'name', 'id' ); $cri = DbCriteria::simpleCompare([['t.canteen_id' => array_column($data['records'], 'id')]]) ->setSelect('c.name,t.canteen_id') ->setAlias('t') ->setJoin('left join wx_company c on c.id=t.company_id'); $relations = Helper::arrayColumn( DB::getListWithCriteria('company_canteen_relation', $cri), 'name', 'canteen_id' ); $data['records'] = array_map(function ($item) use ($users, $schools, $relations) { $item['last_user_name'] = $users[$item['last_user_id']] ?? '-'; $item['school_name'] = $schools[$item['school_id']] ?? '-'; $item['company_name'] = $relations[$item['id']] ?? '-'; $item['stall_imgs'] = Helper::formatImgsFiled($item['stall_imgs']); return $item; }, $data['records']); } Helper::ok($data); } public function actionDelete() { $id = Helper::getPostInt('id'); if ($id < 1) { Helper::error('参数错误'); } $data = DB::getInfoById(self::$table, $id); if (!$data || !$this->checkSchoolId($data['school_id'])) { Helper::error('您没有权限操作此数据'); } Db::updateById(self::$table, ['is_del' => 1], $id); Helper::ok(); } public function actionAdd() { $this->_save(); } public function actionEdit() { $id = Helper::getPostInt('id'); if (!$id) { Helper::error('参数错误'); } $data = DB::getInfoById(self::$table, $id); if (!$data || !$this->checkSchoolId($data['school_id'])) { Helper::error('您没有权限操作此数据'); } $this->_save($id); } private function _save($id = 0) { $data = [ 'school_id' => Helper::getPostInt('school_id'), 'name' => Helper::getPostString('name'), 'stall_num' => Helper::getPostInt('stall_num'), 'is_direct' => Helper::getPostInt('is_direct'), 'stall_imgs' => Helper::getArrParam($_POST, 'stall_imgs', Helper::PARAM_KEY_TYPE['array_string']), 'username' => Helper::getPostString('username'), 'phone' => Helper::getPostString('phone'), 'weixin' => Helper::getPostString('weixin'), 'memo' => Helper::getPostString('memo'), ]; $company_id = Helper::getPostInt('company_id'); $notNullField = ["school_id","name","stall_num","is_direct","username","phone","weixin"]; $allowEmptyField = ["stall_num","is_direct",'weixin']; // 空字段检测 if (!Helper::checkEmptyKey($data, $notNullField, $allowEmptyField)) { Helper::error('参数错误'); } $name = $data['name']; // 检测名称重复 $cri = DbCriteria::simpleCompare(['name' => $name])->setSelect('id'); if ($id > 0) { $cri->addCondition('id!=' . $id); } if ($fid = DB::getScalerWithCriteria(self::$table, $cri)) { Helper::error('食堂名称已存在 ' . $fid); } $this->dobuleCheck(); $data['stall_imgs'] = $data['stall_imgs'] ? implode(',', $data['stall_imgs']) : ''; $trans = \Yii::app()->db->beginTransaction(); try { if ($id) { DB::updateById(self::$table, $data, $id); } else { DB::addData(self::$table, $data); } Db::deleteByCondition('company_canteen_relation', ['canteen_id' => $id]); if ($company_id) { Db::addData('company_canteen_relation', ['canteen_id' => $id, 'company_id' => $company_id, 'school_id' => $data['school_id']]); } $trans->commit(); } catch (\Exception $e) { $trans->rollback(); Helper::error($e->getMessage()); } Helper::ok(); } public function actionUpdateAttr() { $id = Helper::getPostInt('id'); $attr = Helper::getPostString('attr'); $value = Helper::getPostString('value'); if ($id <= 0 || !$attr) { Helper::error('参数错误'); } $data = DB::getInfoById(self::$table, $id); if (!$data || !$this->checkSchoolId($data['school_id'])) { Helper::error('您没有权限操作此数据'); } if (!in_array($attr, ['is_direct', 'stall_num'])) { Helper::error('参数错误2'); } if (DB::updateById(self::$table, [$attr => $value], $id) === false) { Helper::error('更新失败'); } Helper::ok(); } }