|
@@ -12,11 +12,11 @@ require_once(BASE_ROOT_PATH . '/helper/room/proto_type.php');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/room/room_info.php');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/room/author.php');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/room/util.php');
|
|
|
-require_once(BASE_ROOT_PATH . '/helper/FileUploader.php');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/room/tpl_group_home.php');
|
|
|
require_once(BASE_ROOT_PATH . '/helper/room/tpl_chatwo_home.php');
|
|
|
-require_once(BASE_ROOT_PATH . '/helper/room/face_room.php');
|
|
|
+require_once(BASE_ROOT_PATH . '/helper/FileUploader.php');
|
|
|
|
|
|
+use room\proto_type;
|
|
|
|
|
|
class member_talkControl extends mbMemberControl
|
|
|
{
|
|
@@ -91,14 +91,16 @@ class member_talkControl extends mbMemberControl
|
|
|
usort($members,['member_info','alpha_compare']);
|
|
|
|
|
|
$uids = [];
|
|
|
+ $mem_desc = [];
|
|
|
foreach ($members as $member) {
|
|
|
if($member['member_id'] == session_helper::memberid()) continue;
|
|
|
$uids[] = $member['member_id'];
|
|
|
+ $mem_desc[] = $member;
|
|
|
}
|
|
|
|
|
|
return self::outsuccess(['friends' => $uids,
|
|
|
'count' => count($uids),
|
|
|
- 'mem_desc' => $members,
|
|
|
+ 'mem_desc' => $mem_desc,
|
|
|
'mobile_page' => mobile_page(1)]);
|
|
|
}
|
|
|
|
|
@@ -180,7 +182,7 @@ class member_talkControl extends mbMemberControl
|
|
|
{
|
|
|
foreach ($msgs as $msg)
|
|
|
{
|
|
|
- $msgtype = room\proto_type::from_msgtype(intval($msg['type']));
|
|
|
+ $msgtype = proto_type::from_msgtype(intval($msg['type']));
|
|
|
if($msgtype == false) continue;
|
|
|
|
|
|
$val = [];
|
|
@@ -229,9 +231,7 @@ class member_talkControl extends mbMemberControl
|
|
|
return ['uids' => [],'msgs' => []];
|
|
|
}
|
|
|
|
|
|
- $msgid = $msgid > $hide_msg ? $msgid : $hide_msg;
|
|
|
-
|
|
|
- $msgs = $mod_room->getRoomsgList(['room_id' => $room_id,'msg_id' => ['lt',$msgid],'msg_type' => 0], $this->page_size);
|
|
|
+ $msgs = $mod_room->getRoomsgList(['room_id' => $room_id,'msg_id' => [['gt',$hide_msg],['lt',$msgid]],'msg_type' => 0], $this->page_size);
|
|
|
|
|
|
$uids = [];
|
|
|
if($msgs)
|
|
@@ -278,7 +278,8 @@ class member_talkControl extends mbMemberControl
|
|
|
$invitees = explode(',', trim($_GET['invitees']));
|
|
|
if(!empty($invitees) && $room_id > 0)
|
|
|
{
|
|
|
- $ret = room\factory_client::instance()->invite($room_id,$creator,$invitees);
|
|
|
+ $_invitees = array_values(array_diff($invitees,[$creator]));
|
|
|
+ $ret = room\factory_client::instance()->invite($room_id,$creator,$_invitees);
|
|
|
if($ret == false) return self::outerr(errcode::ErrRoom,"邀请失败");
|
|
|
|
|
|
if(in_array($creator,$invitees)){
|
|
@@ -420,7 +421,9 @@ class member_talkControl extends mbMemberControl
|
|
|
return self::outerr(errcode::ErrParamter);
|
|
|
}
|
|
|
|
|
|
- $result = room\factory_client::instance()->invite($room_id,session_helper::memberid(),$invitees);
|
|
|
+ $inviter = session_helper::memberid();
|
|
|
+ $_invitees = array_values(array_diff($invitees,[$inviter]));
|
|
|
+ $result = room\factory_client::instance()->invite($room_id,$inviter,$_invitees);
|
|
|
if($result === false) {
|
|
|
return self::outerr(errcode::ErrRoom,"邀请失败");
|
|
|
}
|
|
@@ -841,7 +844,7 @@ class member_talkControl extends mbMemberControl
|
|
|
{
|
|
|
$msg = trim($_GET['msg']);
|
|
|
if(strlen($msg) >= 100){
|
|
|
- return self::outerr(errcode::ErrParamter,"消息过长");
|
|
|
+ return self::outerr(errcode::ErrParamter,"入群申请过长,请缩短一些");
|
|
|
}
|
|
|
$add = $mod_room->addApply($room_id,$member,$msg);
|
|
|
if($add){
|
|
@@ -938,6 +941,169 @@ class member_talkControl extends mbMemberControl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ ///////////////////////////////////////////////
|
|
|
+ public function room_sportsOp(){
|
|
|
+ return self::outsuccess(null,'talk/room_sports');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function ajax_room_sportsOp()
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ $room_id = intval($_GET['room_id']);
|
|
|
+ $mod_room = Model('room');
|
|
|
+ $userid = session_helper::memberid();
|
|
|
+ $item = $mod_room->getRoomParts(["room_id"=>$room_id,"member_id"=>$userid,"state"=>0],'room_id,member_id,sports',1);
|
|
|
+ if(empty($item)) return self::outerr(errcode::ErrParamter,"错误的群信息");
|
|
|
+
|
|
|
+ $user_sports = $this->user_sports($item[0]);
|
|
|
+
|
|
|
+ $sports = [];
|
|
|
+ $hasmore = false;
|
|
|
+ $per_page = 20;
|
|
|
+ $items = $mod_room->getRoomParts(["room_id"=>$room_id,"state"=>0],'member_id,sports',$per_page,'sports desc');
|
|
|
+ if(!empty($items))
|
|
|
+ {
|
|
|
+ foreach ($items as $k => $sport)
|
|
|
+ {
|
|
|
+ $info = new member_info($sport['member_id']);
|
|
|
+ $member = $info->filter();
|
|
|
+
|
|
|
+ $sports[$k]['member_id'] = $sport['member_id'];
|
|
|
+ $sports[$k]['sports'] = $sport['sports'];
|
|
|
+ $sports[$k]['avatar'] = $member['avatar'];
|
|
|
+ $sports[$k]['is_man'] = $member['is_man'];
|
|
|
+ $sports[$k]['nickname'] = $member['nickname'];
|
|
|
+ }
|
|
|
+ if(count($sports) >= $per_page) $hasmore = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ return self::outsuccess(["user"=>$user_sports,"sports"=>$sports,"mobile_page"=>["hasmore"=>$hasmore,"curpage"=>$this->cur_page]]);
|
|
|
+
|
|
|
+ } catch (Exception $ex) {
|
|
|
+ return self::outerr(errcode::ErrParamter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function user_sports($room_parti)
|
|
|
+ {
|
|
|
+ $info = new member_info($room_parti['member_id']);
|
|
|
+ $member = $info->filter();
|
|
|
+
|
|
|
+ $user_sports["member_id"] = $member['member_id'];
|
|
|
+ $user_sports['avatar'] = $member['avatar'];
|
|
|
+ $user_sports['is_man'] = $member['is_man'];
|
|
|
+ $user_sports['nickname'] = $member['nickname'];
|
|
|
+ $user_sports["sports"] = $room_parti['sports'];
|
|
|
+ $ranks = Model('room')->getRoomParts(["room_id"=>$room_parti['room_id'],"state"=>0,"sports"=>['gt',$room_parti['sports']]],'member_id',false,'sports desc');
|
|
|
+ $user_sports["ranking"] = count($ranks)+1;
|
|
|
+
|
|
|
+ return $user_sports;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function member_sportsOp(){
|
|
|
+ $mid = session_helper::memberid();
|
|
|
+ $info = new member_info($mid);
|
|
|
+ $member = $info->filter();
|
|
|
+
|
|
|
+ $today = strtotime(date('Y-m-d',time()));
|
|
|
+ $first = $today - 86400 * 6;
|
|
|
+
|
|
|
+ $mod_room = Model('room');
|
|
|
+ $items = $mod_room->roomSports(["member_id"=>$mid,"date_stamp"=>[['gt',$first-1],['lt',$today+1]]],'*',7);
|
|
|
+ $sports_info = [];
|
|
|
+ if(!empty($items)){
|
|
|
+ foreach ($items as $item){
|
|
|
+ $sports_info[$item['date_stamp']] = $item;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $charts = $this->sports_charts($first,$sports_info);
|
|
|
+
|
|
|
+ $room_sports = [];
|
|
|
+ $rooms = $mod_room->getRoomParts(["member_id"=>$mid,"state"=>0],'room_id',false);
|
|
|
+ if(!empty($rooms))
|
|
|
+ {
|
|
|
+ foreach ($rooms as $room) {
|
|
|
+ $params = $mod_room->getRoom($room['room_id']);
|
|
|
+ $rinfo = new room\room_info($params);
|
|
|
+ if($rinfo->type() !== proto_type::room_chat) continue;
|
|
|
+
|
|
|
+ $room['avatar'] = $rinfo->avatar();
|
|
|
+ $room['name'] = $rinfo->name();
|
|
|
+ $room['sports'] = $mod_room->totalRoomSports($room['room_id']);
|
|
|
+
|
|
|
+ $room_sports[] = $room;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return self::outsuccess([
|
|
|
+ "background"=>RESOURCE_SITE_URL. "/mobile/talk/images/cover.png",
|
|
|
+ "avatar"=>$member['avatar'],
|
|
|
+ "nickname"=>$member['nickname'],
|
|
|
+ "charts"=>$charts,
|
|
|
+ "room_sports"=>$room_sports],
|
|
|
+ 'talk/member_sports');
|
|
|
+ }
|
|
|
+
|
|
|
+ private function sports_charts($first_date,$sports_info)
|
|
|
+ {
|
|
|
+ $charts = [];
|
|
|
+ for ($i=0; $i<7; $i++ )
|
|
|
+ {
|
|
|
+ $key = $first_date + 86400 * $i;
|
|
|
+
|
|
|
+ if($i==0){
|
|
|
+ $month = date('n月',$key);
|
|
|
+ $charts["month"] = $month;
|
|
|
+ }
|
|
|
+
|
|
|
+ $charts["date"][] = date('d',$key);
|
|
|
+
|
|
|
+ if(isset($sports_info[$key])){
|
|
|
+ $charts["sports"][] = intval($sports_info[$key]['sports']);
|
|
|
+ }else{
|
|
|
+ $charts["sports"][] = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return $charts;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function donate_sportsOp()
|
|
|
+ {
|
|
|
+ $room_id = intval($_GET['room_id']);
|
|
|
+ $sports = intval($_GET['sports']);
|
|
|
+ if($room_id <=0 || $sports <=0 ) {
|
|
|
+ return self::outerr(errcode::ErrParamter,"错误的参数");
|
|
|
+ }
|
|
|
+
|
|
|
+ $user = session_helper::memberid();
|
|
|
+ $today = strtotime(date('Y-m-d',time()));
|
|
|
+
|
|
|
+ $mod_room = Model('room');
|
|
|
+ $room = $mod_room->getRoomParts(['room_id'=>$room_id,"member_id"=>$user,"state"=>0],'*',1);
|
|
|
+ if(empty($room)) {
|
|
|
+ return self::outerr(errcode::ErrParamter,"您不在此群中");
|
|
|
+ }
|
|
|
+
|
|
|
+ $item = $mod_room->findSports(['room_id'=>$room_id,"member_id"=>$user,"date_stamp"=>$today]);
|
|
|
+ if(empty($item)) {
|
|
|
+ $res = $mod_room->addSports($room_id,$user,$sports,$today);
|
|
|
+ } else {
|
|
|
+ $res = $mod_room->editSports($item['sports_id'],["sports"=>$sports]);
|
|
|
+ }
|
|
|
+
|
|
|
+ if($res)
|
|
|
+ {
|
|
|
+ $total_sports = $mod_room->totalSports($room_id,$user);
|
|
|
+ $mod_room->editRoomParts(['room_id'=>$room_id,"member_id"=>$user,"state"=>0],["sports"=>$total_sports]);
|
|
|
+ return self::outsuccess(null,"捐赠成功");
|
|
|
+ }else{
|
|
|
+ return self::outerr(errcode::ErrTalk,"捐赠失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
public function share_bonusOp()
|
|
|
{
|
|
@@ -952,8 +1118,14 @@ class member_talkControl extends mbMemberControl
|
|
|
return self::outerr(errcode::ErrParamter,"群信息有误");
|
|
|
}
|
|
|
|
|
|
+ $parts = new room\room_parts($room_id);
|
|
|
+ $uids = $parts->allparts();
|
|
|
+ if(!in_array(session_helper::memberid(),$uids)) {
|
|
|
+ return self::outerr(errcode::ErrParamter,"不可以偷看别人的共享资金哦");
|
|
|
+ }
|
|
|
+
|
|
|
$list = [];
|
|
|
- $items = $mod_room->getRoomsgList(["room_id"=>$room_id,"type"=>room\proto_type::msg_type_bonus]);
|
|
|
+ $items = $mod_room->getRoomsgList(["room_id"=>$room_id,"type"=>proto_type::msg_type_bonus]);
|
|
|
if(!empty($items))
|
|
|
{
|
|
|
$uids = [];
|
|
@@ -961,9 +1133,7 @@ class member_talkControl extends mbMemberControl
|
|
|
$uids[] = $item['member_id'];
|
|
|
}
|
|
|
$uids = array_unique($uids);
|
|
|
- if(!in_array(session_helper::memberid(),$uids)) {
|
|
|
- return self::outerr(errcode::ErrParamter,"不可以偷看别人的共享资金哦");
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
$info = [];
|
|
|
$members = member_info::get_members($uids);
|