* Date: 2019/6/19 * Time: 5:02 PM */ namespace app\controller; use app\BaseController; use app\common\ApiController; use app\model\EvaluationHistory; use app\service\EvaluationService; use app\util\ErrorCode; use app\util\ErrorResponse; use app\util\SuccessResponse; use think\facade\Config; use think\facade\Request; class Evaluation extends ApiController { protected $middleware = [ '\app\middleware\AdminApiCheck' => ['only' => ['login']], '\app\middleware\ApiCheck' => ['except' => ['search']], ]; /** * 用户创建评估记录 * @return \think\Response */ public function create() { $data = $this->request->post(array_keys($_POST)); if (empty($data)) { return ErrorResponse::createError( ErrorCode::ERROR_PARAM_REQUIRED, '评估数据缺失' ); } // 计算总分 $score_keys = array_keys(Config::get('app.evaluation.subject')); $total_score = 0; foreach ($score_keys as $key){ $total_score += intval($data[$key]); } $score_keys = array_keys(Config::get('app.evaluation.subject'));//['dizzy','gastrointestinal','headache','tired']; $evaluation = EvaluationHistory::create(array_merge([ 'uid' => $this->getCurrentUserInfo()->id, 'score' => $total_score ], $data)); if ($evaluation->id > 0) { return SuccessResponse::create(['id'=>$evaluation->id]); } return ErrorResponse::createError( ErrorCode::EVALUATION_SAVE_FAIL, '保存评估数据失败' ); } public function detail(int $id) { $evaluation = EvaluationService::findById($id); if(empty($evaluation)){ return ErrorResponse::createError( ErrorCode::EVALUATION_NOT_EXISTS, '评估数据不存在或已被删除' ); } return SuccessResponse::create($evaluation); } /** * 获取用户评估的所有项目 * @return \think\response\Json */ public function subjects() { $subjects = Config::get('app.evaluation.subject'); return json([ $subjects['headache'], $subjects['gastrointestinal'], $subjects['tired'], $subjects['dizzy'] ]); } private function queryByUid($uid) { return EvaluationService::findByUser($uid); } public function all() { return SuccessResponse::create( $this->queryByUid($this->getCurrentUserInfo()->id) ); } }