public function __construct()
 {
     parent::__construct();
     require_once APP_PATH . "SDK/Payment/alipay_server/alipay.config.php";
     var_dump(GetSmallAvatar(1));
     $this->alipay_config = $alipay_config;
 }
 public function follow_get()
 {
     $follow = M("follow");
     $uid = I("get.uid", 0, 'intval');
     if ($uid <= 0) {
         $this->check_token();
         $uid = $this->uid;
     }
     $pageCount = 1;
     //构造sql
     //互相关注is_mutual
     $options = array('alias' => 'f', 'join' => array("LEFT JOIN follow f2 ON f2.to_member_id = f.from_member_id AND f2.from_member_id = f.to_member_id", "LEFT JOIN pillow_talk_time t ON ((t.member_id_s = f.to_member_id AND t.member_id_b = f.from_member_id) OR(t.member_id_b = f.to_member_id AND t.member_id_s = f.from_member_id))", "INNER JOIN member m on f.to_member_id = m.id"), 'where' => array("f.from_member_id" => $uid), 'field' => "UNIX_TIMESTAMP(f.add_time) as add_time,m.id AS to_member_id,m.id AS member_id,\r\n\t\t\tm.nickname AS from_member_nickname,m.nickname AS name,\r\n\t\t\tmax(t.time) AS last_pillow_talk_time, IF(f2.id IS NOT NULL, '1', '0') as is_mutual", 'order' => "is_mutual desc, t.time desc", 'group' => "f.id");
     $pageNum = intval(I("get.page", 1));
     if ($pageNum) {
         $follow->options = $options;
         unset($follow->options['group']);
         unset($follow->options['field']);
         $count = $follow->count();
         $_GET["p"] = max(1, $pageNum);
         $Page = new \Think\Page($count, $this->follow_page_size);
         $follow->limit($Page->firstRow . ',' . $Page->listRows);
         $pageCount = ceil($Page->totalRows / $Page->listRows);
     }
     $data = $follow->select($options);
     foreach ($data as &$value) {
         $value["avatar"] = GetSmallAvatar($value['to_member_id']);
         //$value["community"] = D("Community")->communities($value["to_member_id"]);
     }
     $data = array('list' => $data, 'count' => count($data), 'next_page' => null);
     if ($pageCount > 1 && $pageNum < $pageCount) {
         $data['next_page'] = $this->url("/v1/follow/page/" . ++$pageNum);
     }
     $this->success($data);
 }
Example #3
0
 /**
  * 获取群成员列表
  * @param $gid
  * @param $page_num
  * @param $page_size
  * @return array
  */
 public function getMembers($gid, $page_num = 1, $page_size = 10)
 {
     $group_member_model = M('group_member');
     $group_member_list = $group_member_model->alias('gm')->field('gm.member_id, m.nickname')->join('left join member m on m.id = gm.member_id')->where(array('group_id' => $gid))->order('m.nickname asc')->select();
     foreach ($group_member_list as &$member) {
         $member['avatar'] = GetSmallAvatar($member['member_id']);
     }
     return $group_member_list;
 }
Example #4
0
 public function detail($id)
 {
     $this_user = $this->where(array('id' => $id))->find();
     $this_apps = M('member_bind')->field('type, keyid, info')->where(array('uid' => $id))->select();
     foreach ($this_apps as &$value) {
         $value['info'] = json_decode($value['info']);
     }
     $this_user['avator'] = GetSmallAvatar($id);
     $this_user['apps'] = $this_apps;
     return $this->filter($this_user);
 }
 /**
  * 获取发给某用户的未读信息
  * @param $uid
  * @param string|null $type
  * @param string|int|null $from_id
  * @param int $page_num
  * @param int $page_size
  * @return array
  */
 public function get_no_read($uid, $type = null, $from_id = null, $start_time = null, $page_num = 1, $page_size = 10)
 {
     $group_in = M('group_member')->where(array('member_id' => $uid))->getField('group_id', true);
     $single_condition = array('m.to_id' => $uid, 'm.is_to_group' => 0, 'm.is_read' => 0, 'm.type' => 1);
     $group_condition = array('m.to_id' => !empty($group_in) ? array('in', $group_in) : 'no_id', 'm.is_to_group' => 1, 'm.type' => 1, 'm.from_member_id' => array('neq', $uid), '_string' => 'm.add_time > gm.last_read_time or gm.last_read_time is null');
     $condition = null;
     if ($from_id) {
         $single_condition['m.from_member_id'] = array('eq', $from_id);
         $group_condition['m.to_id'] = array('eq', $from_id);
     }
     if ($type == 'single') {
         //获取用户发来的未读消息,或用户没有加入任何群
         $condition = $single_condition;
     } elseif ($type == 'group') {
         $condition = $group_condition;
     } else {
         $condition = array($single_condition, $group_condition, '_logic' => 'OR');
     }
     if (!empty($start_time)) {
         $condition = array($condition, 'm.add_time' => array('gt', $start_time));
     }
     $this->alias('m')->join("left join group_member gm on gm.group_id = m.to_id and gm.member_id = '{$uid}' and m.is_to_group = 1")->join('left join member mb on mb.id = m.from_member_id')->join('left join `group` grp on grp.id = m.to_id and m.is_to_group = 1')->where($condition);
     if ($page_num) {
         $this->page($page_num, $page_size);
     }
     $no_read = $this->field("m.id, m.mime_type, if(m.is_to_group = 1, '1','0') as is_to_group, if(m.is_read = 1, '1', '0') as is_read,\r\n        m.content,\r\n        m.from_member_id, m.to_id, m.add_time,\r\n        mb.nickname as name,\r\n        grp.name as group_name,\r\n        grp.image as group_image\r\n        ")->order('add_time desc')->select();
     //获取相关用户和群的信息
     foreach ($no_read as &$msg) {
         $from_member = M('member')->find($msg['from_member_id']);
         if (!empty($from_member)) {
             $from_member['avatar'] = GetSmallAvatar($from_member['id']);
         }
         $msg['from_member'] = $from_member;
     }
     return $no_read;
 }
 public function get_by_school($role, $demand_type, $province_id, $university_id, $college_id, $page_num = 1)
 {
     $condition = array('role_type' => $role, 'city' => $province_id, 'university' => $university_id, 'college' => $college_id, 'demand_type' => $demand_type);
     $condition['status'] = array('neq', -1);
     // if ($province_id == 0) {
     // unset($condition['city']);
     // unset($condition['university']);
     // unset($condition['college']);
     // } else {
     // $this_city = M('school')->where(array('id' => $province_id))->find();
     // if (!$this_city) {
     // return 3008;
     // }
     // if ($university_id == 0) {
     // unset($condition['university']);
     // unset($condition['college']);
     // } else {
     // $this_university = M('school')->where(array('id' =>
     // $university_id))->find();
     // if (!$this_university) {
     // return 3009;
     // }
     // if ($college_id == 0) {
     // unset($condition['college']);
     // } else {
     // $this_college = M('school')->where(array('id' =>
     // $college_id))->find();
     // if (!$this_college) {
     // return 3010;
     // }
     // }
     // }
     // }
     if (empty($province_id)) {
         unset($condition['city']);
     } else {
         $this_city = M('school')->where(array('id' => $province_id))->find();
         if (!$this_city) {
             return 3008;
         }
     }
     if (empty($university_id)) {
         unset($condition['university']);
     } else {
         $this_university = M('school')->where(array('id' => $university_id))->find();
         if (!$this_university) {
             return 3009;
         }
     }
     if ($college_id == 0) {
         unset($condition['college']);
     } else {
         $this_college = M('school')->where(array('id' => $college_id))->find();
         if (!$this_college) {
             return 3010;
         }
     }
     if (!in_array($role, array(0, 1, 2))) {
         return 3027;
     }
     if ($role == 0) {
         unset($condition['role_type']);
     }
     if (!in_array($demand_type, array(0, 1, 2, 3, 4))) {
         return 3012;
     }
     if ($demand_type == 0) {
         unset($condition['demand_type']);
     }
     $page_num = $page_num == 0 ? 1 : $page_num;
     $_GET["p"] = $page_num;
     $options = array('where' => $condition);
     $demand = M('demand');
     $demand->options = $options;
     $count = $demand->count();
     $page = new \Think\Page($count, $this->page_size);
     $options = array('where' => $condition, 'order' => 'id desc');
     $data = $demand->limit($page->firstRow . ',' . $page->listRows)->select($options);
     foreach ($data as &$demand) {
         $demand['city_string'] = M('school')->getFieldById($demand['city'], 'title_fix');
         $demand['university_string'] = M('school')->getFieldById($demand['university'], 'title_fix');
         $demand['college_string'] = M('school')->getFieldById($demand['college'], 'title_fix');
         $demand['major_string'] = M('school')->getFieldById($demand['major'], 'title_fix');
         $demand['member'] = M('member')->where(array('id' => $demand['member_id']))->find();
         $demand['avator'] = GetSmallAvatar($demand['member_id']);
         //备注
         $profes_type = $demand['profes_type'];
         if ($profes_type == 1) {
             $demand['memo'] = '非统考 ' . $demand['university_string'] . ' ' . $demand['college_string'] . ' ' . $demand['major_string'];
         } elseif ($profes_type == 2) {
             $demand['memo'] = '统考 ' . $demand['major_string'];
         } elseif ($profes_type == 3) {
             $demand['memo'] = '公共课';
         }
     }
     $page_count = ceil($page->totalRows / $page->listRows);
     $data = array('list' => $data, 'count' => count($data), 'next_page' => null);
     if ($page_count > 1 && $page_num < $page_count) {
         $data['next_page'] = $this->url('/v1/demands/by/school/role/' . $role . '/type/' . $demand_type . '/province/' . $province_id . '/university/' . $university_id . '/college/' . $college_id . '/page/' . ++$page_num);
     }
     return $data;
 }
 public function talk_mslist_get()
 {
     $page = intval(I('get.page'));
     $page = empty($page) ? 1 : $page;
     $mp = M("member_post");
     $lwhere = array("mp.pid" => 0, "mp.status" => array("neq", "-1"));
     $lwhere['_string'] = " m.is_vip_order>0 ";
     //提交了community_id(member_post字段community_id,实际为school的id)则只查询指定圈子的说说
     $school_id = $this->get_request_data('community_id');
     if ($school_id) {
         $lwhere['s.id'] = $school_id;
     }
     $options = array("alias" => "mp", "where" => $lwhere, "join" => array("inner join member m on m.id = mp.member_id and m.status = 1", "left join community c on c.id = mp.community_id", "left join school s on s.id = c.table_id and c.table_type = 'school'"), "field" => "mp.*, if(s.group_member_id != 0 and s.group_member_id = mp.member_id, '1', '0') as is_com_owner", "order" => "mp.time_announcement desc ,mp.time_top desc,mp.time_hot desc,mp.add_time desc");
     $_GET["p"] = $page;
     $mp->options = $options;
     $total = $mp->count();
     $pageCount = ceil($total / $this->pageSize);
     if ($pageCount < $_GET['p']) {
         $_GET['p'] = $pageCount;
     }
     $pageObj = new \Think\Page($total, $this->pageSize);
     $options['limit'] = $pageObj->firstRow . ',' . $pageObj->listRows;
     $data = $mp->select($options);
     // print_r($mp->_sql());
     foreach ($data as &$talk) {
         // 附件相关
         $att = M('attachments');
         $att = $att->where(array('table' => "member_post", 'table_id' => $talk['id'], 'status' => 1))->field('sha1')->select();
         foreach ($att as &$a) {
             $a = GetImage($a['sha1']);
         }
         $talk['attachments'] = $att;
         $talk["community"] = D("Community")->getcommunityInfo($talk["community_id"]);
         $talk["avatar"] = GetSmallAvatar($talk['member_id']);
         $c_where = array('mp.pid' => $talk["id"], 'mp.status' => 1);
         $talk['is_hot'] = $talk['time_hot'] > 0 ? 1 : 0;
         $talk['is_top'] = $talk['time_top'] > 0 ? 1 : 0;
         $talk['is_announcement'] = $talk['time_announcement'] > 0 ? 1 : 0;
         //如果在登陆状态,需要查询该用户是否赞过该说说
         if ($this->uid) {
             $is_praised = M('praise')->where(array('table_name' => 'member_post', 'member_id' => $this->uid, 'catid' => $talk['id'], 'status' => '1'))->count() ? '1' : '0';
             $talk['is_praised'] = $is_praised;
         }
         // if ($this->uid && $this->uid != $talk['member_id']) {
         // $_c_where = array();
         // $_c_where['mp.hide'] = 0;
         // $_c_where["mp.member_id"] = $this->uid;
         // $_c_where["_logic"] = "or";
         // $c_where["_complex"] = $_c_where;
         // } else {
         // $c_where['mp.hide'] = 0;
         // }
         // 回复相关
         // $comment = $mp
         // ->alias('mp')
         // ->join("left join member m on m.id=mp.member_id")
         // ->join("left join member_post_message mpm on mpm.new_id=mp.id and
         // mpm.type=2")
         // ->field("mp.*")
         // ->where($c_where)
         // ->order('mp.add_time desc')
         // ->select();
         // dump($mp->_sql());
         // foreach ($comment as &$c) {
         // $c['avatar'] = GetSmallAvatar($c['member_id']);
         // if ($c['type'] >= 2 && $c['to_member_id'] != $talk['member_id'])
         // {
         // $c['to'] = $c['to_member_id'];
         // } else {
         // $c['to'] = null;
         // }
         // unset($c['type']);
         // unset($c['to_member_id']);
         // }
         // $talk["comment"] = $comment;
     }
     $data = array('list' => $data, 'count' => $total, 'next_page' => null);
     if ($pageCount > 1 && $page < $pageCount) {
         $data['next_page'] = $this->url('/v1/talks/list/master/page/' . ++$page);
     }
     $this->success($data);
 }
 /**
  * 获取会员token(客户端)
  */
 public function token_post()
 {
     $auth = $this->get_request_data();
     // $auth['passwordCredentials']=array('username'=>'*****@*****.**','password'=>0);
     if ($auth && count($auth)) {
         $user = false;
         // 使用密码凭据登陆
         if (array_key_exists('passwordCredentials', $auth)) {
             // 凭据数据
             $user = $this->___passwordCredentials($auth['passwordCredentials']);
         } else {
             if (array_key_exists('qqCredentials', $auth)) {
                 // 凭据数据
                 $user = $this->__credentials($auth['qqCredentials'], 'Qq');
             } else {
                 if (array_key_exists("weiboCredentials", $auth)) {
                     $user = $this->__credentials($auth['weiboCredentials'], 'Weibo');
                 } else {
                     if (array_key_exists("weixinCredentials", $auth)) {
                         $user = $this->__credentials($auth['weixinCredentials'], 'weixin');
                     }
                 }
             }
         }
         if ($user) {
             $user['avatar'] = GetSmallAvatar($user['id']);
             $this->return_user_info($user);
         }
     }
     // 无效请求
     $this->error(1001);
 }
 /**
  * 获取好友列表
  */
 public function friend_list_get()
 {
     $follow_model = M('Follow');
     $uid = I("get.uid", 0, 'intval');
     if ($uid <= 0) {
         $this->check_token();
         $uid = $this->uid;
     }
     //构造sql
     //互相关注is_mutual
     $options = array('alias' => 'f', 'join' => array("LEFT JOIN follow f2 ON f2.to_member_id = f.from_member_id AND f2.from_member_id = f.to_member_id", "INNER JOIN member m on f.to_member_id = m.id"), 'where' => array("f.from_member_id" => $uid), 'field' => "UNIX_TIMESTAMP(f.add_time) as add_time,m.id AS member_id,m.nickname, IF(f2.id IS NOT NULL, '1', '0') as is_mutual", 'order' => "nickname desc");
     $page_num = I("get.page", 1, 'intval');
     $page_size = I('get.ps', 20, 'intval');
     $follow_model->options = $options;
     unset($follow_model->options['group']);
     unset($follow_model->options['field']);
     $total_rows = $follow_model->count();
     $total_pages = 1;
     if ($page_num) {
         $follow_model->page($page_num, $page_size);
         $total_pages = ceil($total_rows / $page_size);
     }
     $data = $follow_model->select($options);
     foreach ($data as &$value) {
         $value["avatar"] = GetSmallAvatar($value['to_member_id']);
         //$value["community"] = D("Community")->communities($value["to_member_id"]);
     }
     $data = array('list' => $data, 'count' => count($data), 'total_pages' => $total_pages, 'total_rows' => $total_rows, 'next_page' => null);
     if ($total_pages > 1 && $page_num < $total_pages) {
         $data['next_page'] = $this->url("/v1/follow/page/" . ($page_num + 1));
     }
     $this->success($data);
 }