selectDB('wekan'); //获取看板列表 function getboards($userid=null,$archived=false){ global $MYID,$wekan; if(isn($userid))$userid = $MYID; $docs = $wekan->boards->find(array('members.userId'=>$MYID,'archived'=>$archived)); $res = iterator_to_array($docs); return $res; } function getboardsByAdmin($admin){ global $MYID,$wekan; if($admin=='all'){ $docs = $wekan->boards->find(array('archived'=>false)); }else{ $docs = $wekan->boards->find(array('org'=>$admin,'archived'=>false)); } $res = iterator_to_array($docs); return $res; } function getorgs(){ global $wekan; $docs = $wekan->users->find(array(),array('org'=>1,'orgname'=>1)); $res = array(); $rss = iterator_to_array($docs); foreach($rss as $rs){ $res[ $rs['org'] ] = $rs['orgname']; } return $res; } function getcards($boardid,$lists=null){ global $MYID,$wekan; if($lists==null){ $docs = $wekan->cards->find(array('boardId'=>$boardid,'archived'=>false)); //'listId'=>$listid, }else{ $docs = $wekan->cards->find(array('boardId'=>$boardid,'listId'=>array('$in'=>$lists),'archived'=>false)); } $res = iterator_to_array($docs); return $res; } function getmycards(){ global $MYID,$wekan; $docs = $wekan->cards->find(array('members'=>$MYID,'archived'=>false)); //'listId'=>array('$in'=>$lists), $res = iterator_to_array($docs); return $res; } function getUserCards($uid, $st = null, $et = null) { global $MYID, $wekan; $mongostart = new MongoDate(strtotime($st)); // $mongostart = new MongoDate(1546272000); $mongoend = new MongoDate(strtotime($et)); // $mongoend = new MongoDate(1548950400); $docs = $wekan->cards->find(array( 'members' => $uid, // "createdAt" => array('$gte' => $mongostart) // "createdAt" => array('$gte' => $mongostart, '$lte' => $mongoend) "mem_time.{$uid}.start" => array('$gte' => strtotime($st)), "mem_time.{$uid}.end" => array('$lte' => strtotime($et)) ) ); //'listId'=>array('$in'=>$lists), $res = iterator_to_array($docs); return $res; } // 某个用户完成的单子 function getUserCards4Finish($uid, $st = null, $et = null) { global $MYID, $wekan; $mongostart = new MongoDate(strtotime($st)); // $mongostart = new MongoDate(1546272000); $mongoend = new MongoDate(strtotime($et)); // $mongoend = new MongoDate(1548950400); $docs = $wekan->cards->find(array( 'members' => $uid, '$or'=>array( array( //'qalabelIds'=>'gongnengyanfa', "mem_time.{$uid}.start" => array('$gte' => strtotime($st)), "mem_time.{$uid}.end" => array('$lte' => strtotime($et)) ), array( //'qalabelIds'=>array('$ne'=>'gongnengyanfa'), "finishAt" => array('$gte' => strtotime($st),'$lte' => strtotime($et)), ), ), // "createdAt" => array('$gte' => $mongostart) // "createdAt" => array('$gte' => $mongostart, '$lte' => $mongoend) ) ); //'listId'=>array('$in'=>$lists), $res = iterator_to_array($docs); $arr = array(); foreach($res as $id=>$val){ $qalabelIds = array(); if($val['qalabelIds']){ $qalabelIds = $val['qalabelIds']; } if( in_array('gongnengyanfa',$qalabelIds) ){ //功能研发单,则判断标记时间 if( $val['mem_time'][$uid] && $val['mem_time'][$uid]['start']>=strtotime($st) && $val['mem_time'][$uid]['end']<=strtotime($et) ){ }else{ continue; } } $arr[$id] = $val; } return $arr; } function getUserCards4New($uid, $st = null, $et = null) { global $MYID, $wekan; $mongostart = new MongoDate(strtotime($st)); $mongoend = new MongoDate(strtotime($et)); $docs = $wekan->cards->find(array( 'members' => $uid, "createdAt" => array('$gte' => ($mongostart),'$lte' => ($mongoend)) )); $res = iterator_to_array($docs); return $res; } function getcard($cardid){ global $MYID,$wekan; // $docs = $wekan->cards->find(array('_id'=>$cardid,'archived'=>false)); //'listId'=>$listid, $docs = $wekan->cards->find(array('_id'=>$cardid)); //'listId'=>$listid, $res = iterator_to_array($docs); return $res; } function getboardsettingcard($boardid,$cardtitle){ global $MYID,$wekan; $cardtitle = "__setting.".$cardtitle; $docs = $wekan->cards->find(array('boardId'=>$boardid,'title'=>$cardtitle,'archived'=>false)); //'listId'=>$listid, $res = iterator_to_array($docs); return $res; } function getlists($boardid){ global $MYID,$wekan; $docs = $wekan->lists->find(array('boardId'=>$boardid,'archived'=>false)); $res = iterator_to_array($docs); return $res; } function getlist($listid){ global $MYID,$wekan; $docs = $wekan->lists->find(array('_id'=>$listid)); $res = iterator_to_array($docs); return $res; } function getBoard($boardid){ global $MYID,$wekan; $docs = $wekan->boards->find(array('_id'=>$boardid)); $res = iterator_to_array($docs); return $res; } function getusers(){ global $MYID,$wekan; if(isn($userid))$userid = $MYID; $docs = $wekan->users->find(array(), array( 'username' => true, 'emails' => true, 'org'=>true, 'orgname'=>true, 'dduserid'=>true, 'profile.fullname' => true, 'profile.avatarUrl' => true, 'legulabel'=>true, 'legugroup'=>true, 'lastlogin'=>true, )); $res = iterator_to_array($docs); return $res; } function getUserInfo($userid){ global $MYID,$wekan; $docs = $wekan->users->find(array("_id"=>$userid)); $res = iterator_to_array($docs); return $res[$userid]; } function getcard_comments($cardid){ global $MYID,$wekan; $docs = $wekan->card_comments->find(array('cardId'=>$cardid))->sort(array('createdAt'=>-1)); $res = iterator_to_array($docs); return $res; } function initLables(){ $labels = array( array( "color" =>"legublue", "name" =>"策" ), array( "color" =>"legublue", "name" =>"策配" ), array( "color" =>"legublue", "name" =>"策验" ), array( "color" =>"legublue", "name" =>"审UI" ), array( "color" =>"legured", "name" =>"前程" ), array( "color" =>"legured", "name" =>"后程" ), array( "color" =>"legupurple", "name" =>"UI" ), array( "color" =>"legupurple", "name" =>"UI验" ), array( "color" =>"leguyellow", "name" =>"美" ), array( "color" =>"legugreen", "name" =>"美验" ), array( "color" =>"legublue", "name" =>"动效" ), array( "color" =>"legured", "name" =>"动验" ), array( "color" =>"legupink", "name" =>"QA" ), array( "color" =>"legugray", "name" =>"运营" ), array( "color" =>"legugray", "name" =>"打包" ) ); foreach($labels as $idx => $label){ $labels[$idx]['_id'] = uniqid().$idx; } //return $labels; return array(); } function getAllRiskLabels(){ global $MYID,$wekan; $docs = $wekan->risktags->find(array(), array( '_id' => false, 'issueId' => true, 'tagId' => true, 'tag' => true, 'reasonTag' => true, 'color' => true, 'description' => true, 'reason'=>true, 'department'=>true, 'issueColor'=>issueColor )); $labels = iterator_to_array($docs); $res = array(); foreach($labels as $val){ $res[ $val['tagId'] ][] = $val; } return $res; } function getRiskLabels(){ global $MYID,$wekan; $labels = $wekan->command ( array( "aggregate" => "risktags", "pipeline" => array( array( '$group' => array( "_id" => ['_id' =>'$tagId', 'name' => '$tag', 'color' => '$color'])), array( '$replaceRoot' => array( "newRoot" => '$_id' )) ), "cursor" => ['batchSize' => 200] ) ); $res = array(); foreach($labels['cursor']['firstBatch'] as $val){ $res[ $val['_id'] ] = $val; } return $res; } function initQALables(){ $labels = array( array( "_id"=>"bug", "color" =>"legured", "name" =>"BUG" ), array( "_id"=>"ziyuanqueshi", "color" =>"leguyellow", "name" =>"资源缺失" ), array( "_id"=>"geleiyouhua", "color" =>"legublue", "name" =>"各类优化" ), array( "_id"=>"gongnengyanfa", "color" =>"leguaqua", "name" =>"功能研发" ), array( "_id"=>"xingnengyouhua", "color" =>"legupurple", "name" =>"性能问题" ), array( "_id"=>"qita", "color" =>"legugray", "name" =>"其他" ), ); // foreach($labels as $idx => $label){ // $labels[$idx]['_id'] = uniqid().$idx; // } //return $labels; return array(); } function eventData($act,$data){ return json_encode(array( "_k"=>"EVENT", "act"=>$act, "data" => $data, )); } // 根据boardId获取看板的标签的名字数组 _id=>name function getBoardLabelIdNames($boardId){ global $wekan; $resBoards = $wekan->boards->find(array( "archived" => false, "_id" => $boardId, )); $boardData = iterator_to_array($resBoards); $board = $boardData[$boardId]; $boardLabels = $board['labels']; $boardLabelArr = array(); foreach ($boardLabels as $label){ $boardLabelArr[$label['_id']] = $label['name']; } return $boardLabelArr; } // 获取延期列表数据 部门对应用户 // 5ce68e49bd298 function getYanQiDepartmentUser(){ global $MYID,$wekan,$LEGUWORK_SETTING_LISTID,$LEGUWORK_BOARDID,$LEGUWORK_YANQI_LISTID; $cardData = $wekan->cards->find(array('archived'=>false,'boardId'=>$LEGUWORK_BOARDID,'listId'=>$LEGUWORK_YANQI_LISTID)); $cardData = iterator_to_array($cardData); $boardData = $wekan->boards->findOne(array( "_id" => $LEGUWORK_BOARDID, )); $boardLabels = $boardData['labels']; $labelNameIdArr = array(); $labelIdNameArr = array(); foreach ($boardLabels as $k => $v) { $labelNameIdArr[$v['name']] = $v['_id']; $labelIdNameArr[$v['_id']] = $v['name']; } $labelUserArr = array(); $labelIdUserArr = array(); foreach ($cardData as $k => $v) { // 延期成员在的部门 $labelIds = $v['labelIds']; $members = $v['members']; // var_dump($members); foreach ($labelIds as $labelID) { $labelIdUserArr[$labelID] = array( 'name'=>$labelIdNameArr[$labelID], 'user'=>$members ); } } return $labelIdUserArr; } $MYID = $_SESSION['leguworkUID']; //;// 'NNCQpGcDX9L2EexLQ';// $LEGUWORKUSER = $_SESSION['leguworkUser']; $DTALK_APPID = ""; if($LEGUWORKUSER){ $DTALK_APPID = $LEGUWORKUSER['appid']; } ?>