/**
  * 退出群组
  * @see <*****@*****.**>
  *
  *
  */
 public function OutMember($uid, $group_id)
 {
     $result = false;
     if (isset($uid) && isset($group_id)) {
         $isjoin = $this->find()->where(['uid' => $uid, 'group_id' => $group_id, 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT])->one();
         if ($isjoin) {
             $isjoin->gm_status = GroupMemberGroup::MEMBER_DELETE;
             if ($isjoin->save()) {
                 //添加统计数
                 $mGroup = new GroupGroup();
                 $groupinfo = $mGroup->findOne($group_id);
                 $groupinfo->member_num -= 1;
                 $result = $groupinfo->save() ? true : false;
             }
         }
     }
     return $result;
 }
Example #2
0
 /**
  * 群组关系- 建群
  * @see <*****@*****.**>
  *http://jira.chuangyejia.com:8090/pages/viewpage.action?pageId=3412828
  * @param int $uid 用户id
  * @param str $group_name    群组名称
  * @param int $group_check   群组权限
  * @param int $group_category 群组类型
  * @param int $group_data    群组简介
  * @param str $group_address 群组地址
  * @param str $group_avatar  群组头像
  * @param str $group_tag     群组标签
  * @param str $member_num    群人数 
  *
  * @param int $group_id      群组ID 更新群组信息必须 
  * 
  * @return json
  */
 public function actionSetgroup()
 {
     $params = Yii::$app->getRequest()->post();
     $params = array_map(function ($value) {
         $value = strval($value);
         return htmlentities($value);
     }, $params);
     if (!isset($params['uid']) || !isset($params['group_name'])) {
         return Yii::$app->util->responseArray('1101', 'params_missing_error', '参数缺失!');
     }
     $mGroup = new GroupGroup();
     //更新群组
     if (isset($params['group_id'])) {
         $obj = $mGroup->findOne(intval($params['group_id']));
         //群主才可以修改群信息
         if ($obj && $obj->uid == $params['uid']) {
             $old_check = $obj->group_check;
             $obj->attributes = $params;
             if ($obj->save()) {
                 //如果把群组权限 从 需要验证 变为 公开,处理已提交申请加入的用户请求
                 if (isset($params['group_check']) && $old_check == 1 && $obj->group_check == 2) {
                     //++TD 把请求记录表中未处理的请求 加入群成员表中
                     $mFriendRequest = new FriendRequestGroup();
                     $qlist = $mFriendRequest->find()->where(['accept_id' => $params['group_id'], 'request_status' => FriendRequestGroup::STATUS_SEND])->asArray()->all();
                     //添加群成员 ,更新请求记录
                     if ($qlist) {
                         $mGroupMember = new GroupMemberGroup();
                         foreach ($qlist as $key => $value) {
                             $membercont = ['uid' => $value['launch_id'], 'group_id' => $value['accept_id'], 'gm_role' => GroupMemberGroup::ROLE_PUBLIC, 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT];
                             $_mGroupMember = clone $mGroupMember;
                             $query = $_mGroupMember->JoinMember($membercont);
                             //更新请求记录
                             $qcont = ['request_id' => $value['request_id'], 'request_status' => FriendRequestGroup::STATUS_AGREE];
                             $qu = $mFriendRequest->addRequest($qcont);
                         }
                     }
                 }
                 //判断群主是否在群成员表中,如果没有增加
                 $mGroupMember = new GroupMemberGroup();
                 $res = $mGroupMember->find()->where(['uid' => $params['uid'], 'group_id' => $params['group_id'], 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT])->exists();
                 if (!$res) {
                     //添加群成员
                     $membercont = ['uid' => $params['uid'], 'group_id' => $params['group_id'], 'gm_role' => GroupMemberGroup::ROLE_ADMIN, 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT];
                     $mGroupMember->JoinMember($membercont);
                 }
                 return Yii::$app->util->responseArray('0', 'success', '更新成功', [$obj]);
             } else {
                 return Yii::$app->util->responseArray('4101', 'update_error', '更新失败');
             }
         } else {
             return Yii::$app->util->responseArray('2101', 'params_error', '参数不合法!');
         }
     } else {
         //创建群组
         $mGroup->attributes = $params;
         if ($mGroup->save()) {
             //添加群成员
             $membercont = ['uid' => $params['uid'], 'group_id' => $mGroup->group_id, 'gm_role' => GroupMemberGroup::ROLE_ADMIN, 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT];
             $mGroupMember = new GroupMemberGroup();
             $mGroupMember->JoinMember($membercont);
             return Yii::$app->util->responseArray('0', 'success', '创建成功', [$mGroup]);
         } else {
             return Yii::$app->util->responseArray('4102', 'create_error', '创建失败');
         }
     }
 }