zoukankan      html  css  js  c++  java
  • 获取组织分类后群数据

    /**
         * 获取组织分类后群数据
         * @param UrlManager $urlManager
         * @param Request $request
         * @return IlluminateHttpJsonResponse
         */
        public function getOfficialGroupMy(UrlManager $urlManager,Request $request){
    //用户id
    $user_id = $request->user()->id;
    $in_group = ImCluster::where('affiliations','like',"%":"{$user_id}"}%") ->select(['cluster_id','id as im_group_id','name','description','affiliations_count', 'owner','member','deleted_at','group_level','privacy'] )->get()->toArray(); $push_config=ImGroupMessageConfig::where('user_id',$user_id)->get()->toArray(); $in_group_ids=[]; foreach ($in_group as $key =>$val){ $in_group_ids[]=$val['im_group_id']; $in_group[$key]['em_ignore_notification'] = false; foreach ($push_config as $key_push => $push){ if ($push['im_group_id'] == $val['im_group_id']){ $in_group[$key]['em_ignore_notification'] = (bool)$push['em_ignore_notification']; break; } } } //查出组织关联的群 $organize = ImOrganize::where('status',1)->select('id','name','sorts')->orderBy('sorts','desc')->get()->toArray(); $withs=ImGroupOrganize::whereIn('im_group_id',$in_group_ids)->get()->toArray(); $withs_ids=[]; foreach ($withs as $key =>$val){ $withs_ids[]=$val['organize_id']; } $withs_ids=array_unique($withs_ids); $group_with_org_ids = []; foreach ($organize as $key =>$org_group){ if(in_array($org_group['id'],$withs_ids)){ //如果$with_ids中包含有该遍历的 org_id $organize[$key]['group'] = []; foreach ($withs as $key_org =>$org){ //拿到相对应的群组id foreach ($in_group as $key_group =>$group){ if($org['organize_id'] == $org_group['id'] && $org['im_group_id'] == $group['im_group_id']){ array_push($organize[$key]['group'],$group); //记录已关联组织的群组id array_push($group_with_org_ids,$group['im_group_id']); } } } }else{ $organize[$key]['group'] = null; } } //拿到未与组织绑定的群组 $group_without_org_ids = array_diff($in_group_ids,$group_with_org_ids); //如果有未与组织绑定的群组,手动添加未选组织 if($group_without_org_ids){ $ssss['id']=null; $ssss['name']='未选组织'; $ssss['group'] = []; foreach ($group_without_org_ids as $key_group =>$group_id){ foreach ($in_group as $key_group =>$group){ if($group['im_group_id'] == $group_id){ array_push($ssss['group'],$group); break; } } } array_push($organize,$ssss); } return response()->json($organize)->setStatusCode(200); }
  • 相关阅读:
    【梅西加油!】梅西加油!!加油梅西!!
    [CQOI2014][bzoj3507] 通配符匹配 [字符串hash+dp]
    [NOI2011][bzoj2434] 阿狸的打字机 [AC自动机+dfs序+fail树+树状数组]
    [USACO12Jan][luogu3041] Video Game Combos [AC自动机+dp]
    [HNOI2004][bzoj1212] L语言 [Trie+dp]
    [POI2005][luogu3462] SZA-Template [fail树]
    [HNOI2008][bzoj1009] GT考试 [KMP+矩阵快速幂]
    [SDOI2008][luogu2463] Sandy的卡片 [kmp]
    [POI2006][luogu3435] OKR-Periods of Words [kmp+next数组]
    [NOI2014][bzoj3670] 动物园 [kmp+next数组应用]
  • 原文地址:https://www.cnblogs.com/sgm4231/p/10192397.html
Copyright © 2011-2022 走看看