123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- namespace App\Services;
- use App\Models\Answer;
- use App\Models\Problem;
- use App\Models\User;
- class ProblemService
- {
- public static function problems(array $list)
- {
- $ids = array_column($list, 'id');
- $answer = Answer::getList($ids);
- return self::mergeProblem($list, $answer);
- }
- public static function mergeProblem(array $list,array $answer){
- $answer = array_column($answer, null,'problem_id');
- foreach ($list as &$item){
- if (strtotime($item['created_at']) < strtotime('-3 days')){
- $item['is_new'] = 0;
- }else{
- $item['is_new'] = 1;
- }
- if (isset($answer[$item['problem_id']])){
- $item['answer'] = $answer[$item['problem_id']];
- }else{
- $item['answer'] = new class {};
- }
- }
- return $list;
- }
- public static function getProblemRecommendList(int $limit,int $page)
- {
- $list = Problem::getList($page,$limit);
- $userList = array_column($list,'user_id');
- $atUserList = array_column($list,'at_user_id');
- $userList = array_unique(array_merge($userList,$atUserList));
- $userInfoList = User::getUserListInUserIds($userList);
- return ['list'=>$list,'userList'=>$userInfoList];
- }
- }
|