huangdong %!s(int64=6) %!d(string=hai) anos
pai
achega
726813995c
Modificáronse 2 ficheiros con 105 adicións e 36 borrados
  1. 13 1
      data/model/room.model.php
  2. 92 35
      mobile/control/member_talk.php

+ 13 - 1
data/model/room.model.php

@@ -174,6 +174,18 @@ class roomModel extends Model
     }
     ////////////////////////////////////////////
     public function roomSports($cond,$field="*",$page=20,$order='sports_id desc') {
-        return $this->table('room_apply')->field($field)->where($cond)->page($page)->order($order)->limit($page)->select();
+        return $this->table('room_sports')->field($field)->where($cond)->page($page)->order($order)->limit($page)->select();
+    }
+    public function findSports($cond,$field="*"){
+        return $this->table('room_sports')->field($field)->where($cond)->find();
+    }
+    public function addSports($room,$member,$sports,$datetime){
+        return $this->table('room_sports')->insert(['room_id' => $room,'member_id' => $member,'sports' => $sports,"date_stamp"=>$datetime]);
+    }
+    public function editSports($cond,$updata){
+        return $this->table('room_sports')->where($cond)->update($updata);
+    }
+    public function totalSports($room,$member){
+       return $this->table('room_sports')->where(['room_id' => $room,'member_id' => $member])->sum('sports');
     }
 }

+ 92 - 35
mobile/control/member_talk.php

@@ -919,48 +919,73 @@ class member_talkControl extends mbMemberControl
 
     public function ajax_room_sportsOp()
     {
-        $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],'sports',1);
-        if(empty($item)){
-            return self::outerr(errcode::ErrParamter,"错误的群信息");
-        }
-        $info = new member_info($userid);
-        $member = $info->filter();
-
-        $user["member_id"] = $member['member_id'];
-        $user['avatar'] = $member['avatar'];
-        $user['is_man'] = $member['is_man'];
-        $user['nickname'] = $member['nickname'];
-        $user["sports"] = $item[0]['sports'];
-        $ranks = $mod_room->getRoomParts(["room_id"=>$room_id,"state"=>0,"sports"=>['gt',$user["sports"]]],'member_id',false,'sports desc');
-        $user["ranking"] = count($ranks);
-
-        $hasmore = false;
-        $per_page = 20;
-        $sports = [];
-        $items = $mod_room->getRoomParts(["room_id"=>$room_id,"state"=>0],'member_id,sports',20,'sports desc');
-        if(!empty($items))
+        try
         {
-            foreach ($items as $k => $sport)
+            $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))
             {
-                $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'];
+                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;
             }
-            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);
 
-        return self::outsuccess(["user"=>$user,"sports"=>$sports,"mobile_page"=>["hasmore"=>$hasmore,"curpage"=>$this->cur_page]]);
+        return $user_sports;
     }
 
     public function member_sportsOp(){
-        return self::outsuccess(null,'talk/member_sports');
+        $mid = session_helper::memberid();
+        $info = new member_info($mid);
+        $member = $info->filter();
+
+        $today = strtotime(date('Y-m-d',time()));
+        $last_week = $today - 86400*7;
+
+        $mod_room = Model('room');
+        $items = $mod_room->roomSports(["member_id"=>$mid,"date_stamp"=>[['gt',$last_week-1],['lt',$today+1]]],'*',7);
+
+
+
+        return self::outsuccess(["avatar"=>$member['avatar'],"nickname"=>$member['nickname']],'talk/member_sports');
     }
 
     public function ajax_member_sportsOp()
@@ -969,9 +994,41 @@ class member_talkControl extends mbMemberControl
         $mod_room = Model('room');
         $items = $mod_room->roomSports(["member_id"=>$member],'*',false);
 
+//        return self::outsuccess(["sports"=>$sports,"mobile_page"=>["hasmore"=>$hasmore,"curpage"=>$this->cur_page]]);
+    }
 
+    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,"错误的参数");
+        }
 
-//        return self::outsuccess(["sports"=>$sports,"mobile_page"=>["hasmore"=>$hasmore,"curpage"=>$this->cur_page]]);
+        $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()