$project_id, ]; // 评分 $scoreType > 0 && $filter['score'] = $scoreType; return $this->with(['user']) ->where($filter) ->order(['create_time' => 'desc']) ->paginate($limit); } /** * 获取指定评分总数 */ public function getTotal($project_id) { return $this->field([ 'count(id) AS `all`', 'count(score = 10 OR NULL) AS `praise`', 'count(score = 20 OR NULL) AS `review`', 'count(score = 30 OR NULL) AS `negative`', ])->where([ 'project_id' => $project_id, ])->find(); } /** * 添加评论 */ public function evaluate($params) { //判断重复评论 $result = $this->where('user_id','=',$params["user_id"])->where('project_id','=',$params["project_id"])->find(); if(!empty($result)){ $this->error = '请勿重复评论'; return false; } //获取奖励的连盟币 $setting = Setting::getAll(); $setting = $setting['settlement']['values']; $money = empty($setting['eve_money']) ? 0 : $setting['eve_money']; return $this->transaction(function () use ($params,$money) { //奖励连盟币 if($money>0){ (new UserModel())->where('user_id', '=', $params['user_id'])->inc('points',$money)->update(); PointsLogModel::add([ 'user_id' => $params['user_id'], 'value' => $money, 'describe' => "评论奖励连盟币", 'app_id' => self::$app_id, ]); } $project = ProjectModel::detail($params["project_id"]); $data["user_id"] = $params["user_id"]; $data["project_user_id"] = $project["user_id"]; $data["project_id"] = $params["project_id"]; $data["evaluate_content"] = $params["evaluate_content"]; //$data["server_score"] = $params["server_score"]; $data["score"] = empty($params["score"]) ? 10 : $params["score"]; $data["image_list"] = json_encode($params["image_list"]); $data["app_id"] = self::$app_id; $this->save($data); //好评判断升级等级 if($params["score"] == 10){ (new GradeModel())->setUserGrade($project["user_id"],$project["project_type"]); } return true; }); } }