find($grade_id); } /** * 获取列表记录 */ public function getLists() { return $this->where('is_delete', '=', 0) ->field('grade_id,name') ->order(['weight' => 'asc', 'create_time' => 'asc']) ->select(); } /** * 获取可用的等级列表 */ public static function getUsableList($appId = null) { $model = new static; $appId = $appId ? $appId : $model::$app_id; return $model->where('is_delete', '=', '0') ->where('app_id', '=', $appId) ->order(['weight' => 'asc', 'create_time' => 'asc']) ->select(); } /** * 获取默认等级id */ public static function getDefaultGradeId(){ $grade = (new static())->where('is_default', '=', 1)->find(); return $grade['grade_id']; } /** * 设置用户的评论等级 */ public function setUserGrade($userId,$prodect_type=0) { // 用户模型 if($prodect_type == 0){ $user = DemandUserModel::detail($userId); }else{ $user = SupplyUserModel::detail($userId); } if(empty($user)){ return true; } // 获取所有等级 $list = self::getUsableList($user['app_id']); if ($list->isEmpty()) { return false; } //获取用户的好评条数 $num = EvaluateModel::getGoodsEvaluateNum($userId); // 遍历等级 $upgradeGrade = null; foreach ($list as $grade) { if($grade['upgrade_num'] > 0 && $num >=$grade['upgrade_num']){ $upgradeGrade = $grade; //满足条件,继续判断更高等级是否满足 continue; }else{ //第一个等级不满足,则更高的等级不需要再看了 break; } } //获取当前的等级权重 $cur_grade = self::detail($user['grade_id']); //两个等级权重对比 if(!empty($upgradeGrade) && $upgradeGrade['weight'] > $cur_grade['weight']){ // 修改等级 if($prodect_type == 0){ $user = (new DemandUserModel())->where('user_id','=',$user['user_id'])->update(['grade_id'=>$upgradeGrade['grade_id']]); }else{ $user = (new SupplyUserModel())->where('user_id','=',$user['user_id'])->update(['grade_id'=>$upgradeGrade['grade_id']]);; } } } }